mirror of
https://github.com/github/codeql.git
synced 2026-03-06 23:56:48 +01:00
- "Normal" instead of "NonSpecial" - "NonLibrary" instead of "2" I could not find a good replacement for "NonLibrary", nor for "Source", but I added QLDocs in a few places to help the reading.
38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
# A very basic test of DataFlowCall
|
|
#
|
|
# see `coverage/argumentRoutingTest.ql` for a more in depth test of argument routing
|
|
# handling.
|
|
|
|
def func(arg):
|
|
pass
|
|
|
|
|
|
class MyClass(object):
|
|
def __init__(self, arg):
|
|
pass
|
|
|
|
def my_method(self, arg):
|
|
pass
|
|
|
|
def __getitem__(self, key):
|
|
pass
|
|
|
|
|
|
func("foo") # $ call=func(..) qlclass=FunctionCall arg_0="foo"
|
|
x = MyClass(1) # $ call=MyClass(..) qlclass=ClassCall arg_0=[pre]MyClass(..) arg_1=1
|
|
x.my_method(2) # $ call=x.my_method(..) qlclass=MethodCall arg_0=x arg_1=2
|
|
mm = x.my_method
|
|
mm(2) # $ call=mm(..) qlclass=MethodCall arg_1=2 MISSING: arg_0=x
|
|
x[3] # $ call=x[3] qlclass=SpecialCall arg_0=x arg_1=3
|
|
|
|
|
|
try:
|
|
# These are included to show how we handle absent things with points-to where
|
|
# `mypkg.foo` is a `missing module variable`, but `mypkg.subpkg.bar` is compeltely
|
|
# ignored.
|
|
import mypkg
|
|
mypkg.foo(42) # $ call=mypkg.foo(..) qlclass=NormalCall
|
|
mypkg.subpkg.bar(43) # $ call=mypkg.subpkg.bar(..) qlclass=NormalCall
|
|
except:
|
|
pass
|