diff --git a/rust/ql/test/TestUtils.qll b/rust/ql/test/TestUtils.qll index 214928691c05..dfd0d95141ea 100644 --- a/rust/ql/test/TestUtils.qll +++ b/rust/ql/test/TestUtils.qll @@ -1,3 +1,10 @@ private import rust -predicate toBeTested(Element e) { any() } +predicate toBeTested(Element e) { not e instanceof CrateElement } + +class CrateElement extends Element { + CrateElement() { + this instanceof Crate or + any(Crate c).getModule() = this.(AstNode).getParentNode*() + } +} diff --git a/rust/ql/test/extractor-tests/utf8/ast.ql b/rust/ql/test/extractor-tests/utf8/ast.ql index 420f7e94eb9a..8e484aedad9b 100644 --- a/rust/ql/test/extractor-tests/utf8/ast.ql +++ b/rust/ql/test/extractor-tests/utf8/ast.ql @@ -1,3 +1,4 @@ import codeql.rust.elements +import TestUtils -select any(AstNode n) +select any(AstNode n | toBeTested(n)) diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.ql b/rust/ql/test/library-tests/path-resolution/path-resolution.ql index bce15517b570..f33e312af28a 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.ql +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.ql @@ -1,10 +1,11 @@ import rust import codeql.rust.elements.internal.PathResolution import utils.test.InlineExpectationsTest +import TestUtils -query predicate mod(Module m) { any() } +query predicate mod(Module m) { toBeTested(m) } -query predicate resolvePath(Path p, ItemNode i) { i = resolvePath(p) } +query predicate resolvePath(Path p, ItemNode i) { toBeTested(p) and i = resolvePath(p) } module ResolveTest implements TestSig { string getARelevantTag() { result = "item" }