Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package p

func emptyQualifierTarget() {} // $ hit[go/test/q1] hit[go/test/q2]

func repeatedQualifierTarget() {} // $ hit[go/test/q1] hit[go/test/q2]
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package p

func emptyQualifierTarget() {} // $ hit[]

func repeatedQualifierTarget() {} // $ hit[go/test/q1][go/test/q2]
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
| code.go:3:6:3:25 | emptyQualifierTarget |
| code.go:5:6:5:28 | repeatedQualifierTarget |
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/**
* @id go/test/q1
*/

private import go

query predicate hit(Function function) {
function.getName() = ["emptyQualifierTarget", "repeatedQualifierTarget"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
query: q1.ql
postprocess: utils/test/InlineExpectationsTestQuery.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
| code.go:3:6:3:25 | emptyQualifierTarget |
| code.go:5:6:5:28 | repeatedQualifierTarget |
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/**
* @id go/test/q2
*/

private import go

query predicate hit(Function function) {
function.getName() = ["emptyQualifierTarget", "repeatedQualifierTarget"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
query: q2.ql
postprocess: utils/test/InlineExpectationsTestQuery.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package p

func sharedTarget() {} // $ Alert unrelated=value
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| code.go:3:6:3:17 | sharedTarget | problem |
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* @kind problem
* @id go/test/problem-q1
*/

import go

from Function function
where function.getName() = "sharedTarget"
select function, "problem"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
query: q1.ql
postprocess: utils/test/InlineExpectationsTestQuery.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| code.go:3:6:3:17 | sharedTarget | problem |
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* @kind problem
* @id go/test/problem-q2
*/

import go

from Function function
where function.getName() = "sharedTarget"
select function, "problem"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
query: q2.ql
postprocess: utils/test/InlineExpectationsTestQuery.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package p

func sharedTarget() {} // $ hit

func qualifiedTarget() {} // $ hit[go/test/q1] hit[go/test/q2]

func valuedTarget() {} // $ mark[go/test/q1]=q1 mark[go/test/q2]=q2

func q1Target() {} // $ one[go/test/q1]

func q2Target() {} // $ two[go/test/q2]

func survivingSiblingTarget() {} // $ two[go/test/q2]

func foreignTarget() {} // $ hit hit[go/test/other]

func missingTarget() {} // $ MISSING: absent[go/test/q1] absent[go/test/q2]

func spuriousTarget() {} // $ SPURIOUS: spurious[go/test/q1]

func suppressedSiblingTarget() {} // $ hit[go/test/q2] SPURIOUS: hit[go/test/q1]

func namedMissingTarget() {} // $ hit[go/test/q1] MISSING: hit[go/test/q2]

func namedSpuriousTarget() {} // $ SPURIOUS: hit[go/test/q2]

func noteTarget() {} // $ hit // trailing note
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
hit
| code.go:3:6:3:17 | sharedTarget |
| code.go:5:6:5:20 | qualifiedTarget |
| code.go:15:6:15:18 | foreignTarget |
| code.go:21:6:21:28 | suppressedSiblingTarget |
| code.go:23:6:23:23 | namedMissingTarget |
| code.go:27:6:27:15 | noteTarget |
mark
| code.go:7:6:7:17 | valuedTarget | q1 |
one
| code.go:9:6:9:13 | q1Target |
spurious
| code.go:19:6:19:19 | spuriousTarget |
24 changes: 24 additions & 0 deletions go/ql/test/library-tests/inline-expectations/multi-query/q1.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/**
* @id go/test/q1
*/

private import go

private predicate isFixtureFunction(Function function, string name) { function.getName() = name }

query predicate hit(Function function) {
isFixtureFunction(function,
[
"sharedTarget", "qualifiedTarget", "foreignTarget", "suppressedSiblingTarget",
"namedMissingTarget", "noteTarget"
])
}

query predicate mark(Function function, string value) {
isFixtureFunction(function, "valuedTarget") and
value = "q1"
}

query predicate one(Function function) { isFixtureFunction(function, "q1Target") }

query predicate spurious(Function function) { isFixtureFunction(function, "spuriousTarget") }
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
query: q1.ql
postprocess: utils/test/InlineExpectationsTestQuery.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
hit
| code.go:3:6:3:17 | sharedTarget |
| code.go:5:6:5:20 | qualifiedTarget |
| code.go:15:6:15:18 | foreignTarget |
| code.go:21:6:21:28 | suppressedSiblingTarget |
| code.go:25:6:25:24 | namedSpuriousTarget |
| code.go:27:6:27:15 | noteTarget |
mark
| code.go:7:6:7:17 | valuedTarget | q2 |
two
| code.go:11:6:11:13 | q2Target |
| code.go:13:6:13:27 | survivingSiblingTarget |
24 changes: 24 additions & 0 deletions go/ql/test/library-tests/inline-expectations/multi-query/q2.ql
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/**
* @id go/test/q2
*/

private import go

private predicate isFixtureFunction(Function function, string name) { function.getName() = name }

query predicate hit(Function function) {
isFixtureFunction(function,
[
"sharedTarget", "qualifiedTarget", "foreignTarget", "suppressedSiblingTarget",
"namedSpuriousTarget", "noteTarget"
])
}

query predicate mark(Function function, string value) {
isFixtureFunction(function, "valuedTarget") and
value = "q2"
}

query predicate two(Function function) {
isFixtureFunction(function, ["q2Target", "survivingSiblingTarget"])
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
query: q2.ql
postprocess: utils/test/InlineExpectationsTestQuery.ql
Loading
Loading