mirror of
https://github.com/github/codeql.git
synced 2026-05-05 21:55:19 +02:00
aggregate the tests in library-tests/ClassNode into a single .ql file
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
| tst2.js:3:14:3:14 | x | tst2.js:7:5:7:10 | this.x |
|
||||
| tst2.js:3:14:3:14 | x | tst2.js:8:25:8:30 | this.x |
|
||||
| tst2.js:3:14:3:14 | x | tst2.js:12:12:12:17 | this.x |
|
||||
@@ -1,5 +0,0 @@
|
||||
import javascript
|
||||
|
||||
from DataFlow::Node pred, DataFlow::Node succ
|
||||
where DataFlow::localFieldStep(pred, succ)
|
||||
select pred, succ
|
||||
@@ -1,13 +0,0 @@
|
||||
| fields.ts:12:16:12:32 | (x: string) => {} | Foo.m | method |
|
||||
| namespace.js:5:32:5:44 | function() {} | Baz.method | method |
|
||||
| tst2.js:6:9:9:3 | () {\\n ... .x;\\n } | C.method | method |
|
||||
| tst2.js:11:13:13:3 | () {\\n ... .x;\\n } | C.getter | getter |
|
||||
| tst2.js:18:14:18:22 | (x) => {} | D.f | method |
|
||||
| tst.js:4:17:4:21 | () {} | A.instanceMethod | method |
|
||||
| tst.js:7:6:7:10 | () {} | A.bar | method |
|
||||
| tst.js:9:10:9:14 | () {} | A.baz | getter |
|
||||
| tst.js:17:19:17:31 | function() {} | B.foo | method |
|
||||
| tst.js:21:19:21:31 | function() {} | C.bar | method |
|
||||
| tst.js:25:13:25:17 | () {} | D.getter | getter |
|
||||
| tst.js:26:13:26:18 | (x) {} | D.setter | setter |
|
||||
| tst.js:27:4:27:8 | () {} | D.m | method |
|
||||
@@ -1,4 +0,0 @@
|
||||
import javascript
|
||||
|
||||
from DataFlow::ClassNode cls, string name, string kind
|
||||
select cls.getInstanceMember(name, kind), cls.getName() + "." + name, kind
|
||||
@@ -1,9 +0,0 @@
|
||||
| fields.ts:12:16:12:32 | (x: string) => {} | Foo.m |
|
||||
| namespace.js:5:32:5:44 | function() {} | Baz.method |
|
||||
| tst2.js:6:9:9:3 | () {\\n ... .x;\\n } | C.method |
|
||||
| tst2.js:18:14:18:22 | (x) => {} | D.f |
|
||||
| tst.js:4:17:4:21 | () {} | A.instanceMethod |
|
||||
| tst.js:7:6:7:10 | () {} | A.bar |
|
||||
| tst.js:17:19:17:31 | function() {} | B.foo |
|
||||
| tst.js:21:19:21:31 | function() {} | C.bar |
|
||||
| tst.js:27:4:27:8 | () {} | D.m |
|
||||
@@ -1,4 +0,0 @@
|
||||
import javascript
|
||||
|
||||
from DataFlow::ClassNode cls, string name
|
||||
select cls.getInstanceMethod(name), cls.getName() + "." + name
|
||||
@@ -1,4 +0,0 @@
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | Foo | fields.ts:1:1:3:1 | class B ... mber;\\n} | Base |
|
||||
| tst.js:13:1:13:21 | class A ... ds A {} | A2 | tst.js:3:1:10:1 | class A ... () {}\\n} | A |
|
||||
| tst.js:15:1:15:15 | function B() {} | B | tst.js:3:1:10:1 | class A ... () {}\\n} | A |
|
||||
| tst.js:19:1:19:15 | function C() {} | C | tst.js:15:1:15:15 | function B() {} | B |
|
||||
@@ -1,5 +0,0 @@
|
||||
import javascript
|
||||
|
||||
from DataFlow::ClassNode cls, DataFlow::ClassNode sup
|
||||
where sup = cls.getADirectSuperClass()
|
||||
select cls, cls.getName(), sup, sup.getName()
|
||||
@@ -1,21 +0,0 @@
|
||||
| fields.ts:1:1:3:1 | class B ... mber;\\n} | fields.ts:1:12:1:11 | this |
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | fields.ts:6:5:6:4 | this |
|
||||
| namespace.js:3:15:3:31 | function Baz() {} | namespace.js:3:15:3:14 | this |
|
||||
| namespace.js:3:15:3:31 | function Baz() {} | namespace.js:5:32:5:31 | this |
|
||||
| tst2.js:1:1:14:1 | class C ... ;\\n }\\n} | tst2.js:2:14:2:13 | this |
|
||||
| tst2.js:1:1:14:1 | class C ... ;\\n }\\n} | tst2.js:6:9:6:8 | this |
|
||||
| tst2.js:1:1:14:1 | class C ... ;\\n }\\n} | tst2.js:11:13:11:12 | this |
|
||||
| tst2.js:16:1:20:1 | class D ... ;\\n }\\n} | tst2.js:17:14:17:13 | this |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:3:9:3:8 | this |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:4:17:4:16 | this |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:7:6:7:5 | this |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:9:10:9:9 | this |
|
||||
| tst.js:13:1:13:21 | class A ... ds A {} | tst.js:13:20:13:19 | this |
|
||||
| tst.js:15:1:15:15 | function B() {} | tst.js:15:1:15:0 | this |
|
||||
| tst.js:15:1:15:15 | function B() {} | tst.js:17:19:17:18 | this |
|
||||
| tst.js:19:1:19:15 | function C() {} | tst.js:19:1:19:0 | this |
|
||||
| tst.js:19:1:19:15 | function C() {} | tst.js:21:19:21:18 | this |
|
||||
| tst.js:23:1:23:15 | function D() {} | tst.js:23:1:23:0 | this |
|
||||
| tst.js:23:1:23:15 | function D() {} | tst.js:25:13:25:12 | this |
|
||||
| tst.js:23:1:23:15 | function D() {} | tst.js:26:13:26:12 | this |
|
||||
| tst.js:23:1:23:15 | function D() {} | tst.js:27:4:27:3 | this |
|
||||
@@ -1,4 +0,0 @@
|
||||
import javascript
|
||||
|
||||
from DataFlow::ClassNode cls
|
||||
select cls, cls.getAReceiverNode()
|
||||
@@ -1,4 +0,0 @@
|
||||
| fields.ts:1:1:3:1 | class B ... mber;\\n} | baseField | fields.ts:2:16:2:21 | number |
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | x | fields.ts:6:27:6:32 | number |
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | y | fields.ts:6:46:6:51 | string |
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | z | fields.ts:10:8:10:15 | string[] |
|
||||
@@ -1,4 +0,0 @@
|
||||
import javascript
|
||||
|
||||
from DataFlow::ClassNode cls, string name
|
||||
select cls, name, cls.getFieldTypeAnnotation(name)
|
||||
60
javascript/ql/test/library-tests/ClassNode/tests.expected
Normal file
60
javascript/ql/test/library-tests/ClassNode/tests.expected
Normal file
@@ -0,0 +1,60 @@
|
||||
fieldStep
|
||||
| tst2.js:3:14:3:14 | x | tst2.js:7:5:7:10 | this.x |
|
||||
| tst2.js:3:14:3:14 | x | tst2.js:8:25:8:30 | this.x |
|
||||
| tst2.js:3:14:3:14 | x | tst2.js:12:12:12:17 | this.x |
|
||||
getAReceiverNode
|
||||
| fields.ts:1:1:3:1 | class B ... mber;\\n} | fields.ts:1:12:1:11 | this |
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | fields.ts:6:5:6:4 | this |
|
||||
| namespace.js:3:15:3:31 | function Baz() {} | namespace.js:3:15:3:14 | this |
|
||||
| namespace.js:3:15:3:31 | function Baz() {} | namespace.js:5:32:5:31 | this |
|
||||
| tst2.js:1:1:14:1 | class C ... ;\\n }\\n} | tst2.js:2:14:2:13 | this |
|
||||
| tst2.js:1:1:14:1 | class C ... ;\\n }\\n} | tst2.js:6:9:6:8 | this |
|
||||
| tst2.js:1:1:14:1 | class C ... ;\\n }\\n} | tst2.js:11:13:11:12 | this |
|
||||
| tst2.js:16:1:20:1 | class D ... ;\\n }\\n} | tst2.js:17:14:17:13 | this |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:3:9:3:8 | this |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:4:17:4:16 | this |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:7:6:7:5 | this |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:9:10:9:9 | this |
|
||||
| tst.js:13:1:13:21 | class A ... ds A {} | tst.js:13:20:13:19 | this |
|
||||
| tst.js:15:1:15:15 | function B() {} | tst.js:15:1:15:0 | this |
|
||||
| tst.js:15:1:15:15 | function B() {} | tst.js:17:19:17:18 | this |
|
||||
| tst.js:19:1:19:15 | function C() {} | tst.js:19:1:19:0 | this |
|
||||
| tst.js:19:1:19:15 | function C() {} | tst.js:21:19:21:18 | this |
|
||||
| tst.js:23:1:23:15 | function D() {} | tst.js:23:1:23:0 | this |
|
||||
| tst.js:23:1:23:15 | function D() {} | tst.js:25:13:25:12 | this |
|
||||
| tst.js:23:1:23:15 | function D() {} | tst.js:26:13:26:12 | this |
|
||||
| tst.js:23:1:23:15 | function D() {} | tst.js:27:4:27:3 | this |
|
||||
getFieldTypeAnnotation
|
||||
| fields.ts:1:1:3:1 | class B ... mber;\\n} | baseField | fields.ts:2:16:2:21 | number |
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | x | fields.ts:6:27:6:32 | number |
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | y | fields.ts:6:46:6:51 | string |
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | z | fields.ts:10:8:10:15 | string[] |
|
||||
instanceMember
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | m | method | fields.ts:12:16:12:32 | (x: string) => {} | Foo |
|
||||
| namespace.js:3:15:3:31 | function Baz() {} | method | method | namespace.js:5:32:5:44 | function() {} | Baz |
|
||||
| tst2.js:1:1:14:1 | class C ... ;\\n }\\n} | getter | getter | tst2.js:11:13:13:3 | () {\\n ... .x;\\n } | C |
|
||||
| tst2.js:1:1:14:1 | class C ... ;\\n }\\n} | method | method | tst2.js:6:9:9:3 | () {\\n ... .x;\\n } | C |
|
||||
| tst2.js:16:1:20:1 | class D ... ;\\n }\\n} | f | method | tst2.js:18:14:18:22 | (x) => {} | D |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | bar | method | tst.js:7:6:7:10 | () {} | A |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | baz | getter | tst.js:9:10:9:14 | () {} | A |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | instanceMethod | method | tst.js:4:17:4:21 | () {} | A |
|
||||
| tst.js:15:1:15:15 | function B() {} | foo | method | tst.js:17:19:17:31 | function() {} | B |
|
||||
| tst.js:19:1:19:15 | function C() {} | bar | method | tst.js:21:19:21:31 | function() {} | C |
|
||||
| tst.js:23:1:23:15 | function D() {} | getter | getter | tst.js:25:13:25:17 | () {} | D |
|
||||
| tst.js:23:1:23:15 | function D() {} | m | method | tst.js:27:4:27:8 | () {} | D |
|
||||
| tst.js:23:1:23:15 | function D() {} | setter | setter | tst.js:26:13:26:18 | (x) {} | D |
|
||||
instanceMethod
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | m | fields.ts:12:16:12:32 | (x: string) => {} | Foo |
|
||||
| namespace.js:3:15:3:31 | function Baz() {} | method | namespace.js:5:32:5:44 | function() {} | Baz |
|
||||
| tst2.js:1:1:14:1 | class C ... ;\\n }\\n} | method | tst2.js:6:9:9:3 | () {\\n ... .x;\\n } | C |
|
||||
| tst2.js:16:1:20:1 | class D ... ;\\n }\\n} | f | tst2.js:18:14:18:22 | (x) => {} | D |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | bar | tst.js:7:6:7:10 | () {} | A |
|
||||
| tst.js:3:1:10:1 | class A ... () {}\\n} | instanceMethod | tst.js:4:17:4:21 | () {} | A |
|
||||
| tst.js:15:1:15:15 | function B() {} | foo | tst.js:17:19:17:31 | function() {} | B |
|
||||
| tst.js:19:1:19:15 | function C() {} | bar | tst.js:21:19:21:31 | function() {} | C |
|
||||
| tst.js:23:1:23:15 | function D() {} | m | tst.js:27:4:27:8 | () {} | D |
|
||||
superClass
|
||||
| fields.ts:5:1:13:1 | class F ... > {};\\n} | fields.ts:1:1:3:1 | class B ... mber;\\n} | Foo | Base |
|
||||
| tst.js:13:1:13:21 | class A ... ds A {} | tst.js:3:1:10:1 | class A ... () {}\\n} | A2 | A |
|
||||
| tst.js:15:1:15:15 | function B() {} | tst.js:3:1:10:1 | class A ... () {}\\n} | B | A |
|
||||
| tst.js:19:1:19:15 | function C() {} | tst.js:15:1:15:15 | function B() {} | C | B |
|
||||
33
javascript/ql/test/library-tests/ClassNode/tests.ql
Normal file
33
javascript/ql/test/library-tests/ClassNode/tests.ql
Normal file
@@ -0,0 +1,33 @@
|
||||
import javascript
|
||||
|
||||
query predicate fieldStep(DataFlow::Node pred, DataFlow::Node succ) {
|
||||
DataFlow::localFieldStep(pred, succ)
|
||||
}
|
||||
|
||||
query predicate getAReceiverNode(DataFlow::ClassNode cls, DataFlow::SourceNode recv) {
|
||||
cls.getAReceiverNode() = recv
|
||||
}
|
||||
|
||||
query predicate getFieldTypeAnnotation(DataFlow::ClassNode cls, string name, TypeAnnotation ann) {
|
||||
ann = cls.getFieldTypeAnnotation(name)
|
||||
}
|
||||
|
||||
query predicate instanceMember(
|
||||
DataFlow::ClassNode cls, string name, string kind, DataFlow::FunctionNode inst, string clsName
|
||||
) {
|
||||
cls.getInstanceMember(name, kind) = inst and clsName = cls.getName()
|
||||
}
|
||||
|
||||
query predicate instanceMethod(
|
||||
DataFlow::ClassNode cls, string name, DataFlow::FunctionNode inst, string clsName
|
||||
) {
|
||||
cls.getInstanceMethod(name) = inst and clsName = cls.getName()
|
||||
}
|
||||
|
||||
query predicate superClass(
|
||||
DataFlow::ClassNode cls, DataFlow::ClassNode sup, string clsName, string supName
|
||||
) {
|
||||
sup = cls.getADirectSuperClass() and
|
||||
clsName = cls.getName() and
|
||||
supName = sup.getName()
|
||||
}
|
||||
Reference in New Issue
Block a user