Skip to content

Commit 9f59905

Browse files
committed
Rust: Add path resolution tests
1 parent 5d3b542 commit 9f59905

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

rust/ql/lib/utils/test/PathResolutionInlineExpectationsTest.qll

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,14 @@ private module ResolveTest implements TestSig {
2525

2626
private predicate item(ItemNode i, string value) {
2727
exists(string filepath, int line, boolean inMacro | itemAt(i, filepath, line, inMacro) |
28-
commmentAt(value, filepath, line) and inMacro = false
29-
or
30-
not (commmentAt(_, filepath, line) and inMacro = false) and
31-
value = i.getName()
28+
if i instanceof SourceFile
29+
then value = i.getFile().getBaseName()
30+
else (
31+
commmentAt(value, filepath, line) and inMacro = false
32+
or
33+
not (commmentAt(_, filepath, line) and inMacro = false) and
34+
value = i.getName()
35+
)
3236
)
3337
}
3438

rust/ql/test/library-tests/path-resolution/my2/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ pub use nested2::nested7::nested8::{ // $ item=I118
1515

1616
use nested2::nested5::nested6::f as nested6_f; // $ item=I116
1717

18+
use std::ops::Deref; // $ item=Deref
19+
1820
pub mod my3;
1921

2022
#[path = "renamed.rs"]

rust/ql/test/library-tests/path-resolution/my2/my3/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,7 @@ use super::super::h; // $ item=I25
88
use super::g; // $ item=I9
99

1010
use super::nested6_f; // $ item=I116
11+
12+
use super::*; // $ item=mod.rs
13+
14+
trait MyTrait: Deref {} // $ MISSING: item=Deref

rust/ql/test/library-tests/path-resolution/path-resolution.expected

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ mod
3232
| main.rs:627:1:695:1 | mod m24 |
3333
| main.rs:712:1:764:1 | mod associated_types |
3434
| my2/mod.rs:1:1:1:16 | mod nested2 |
35-
| my2/mod.rs:18:1:18:12 | mod my3 |
36-
| my2/mod.rs:20:1:21:10 | mod mymod |
35+
| my2/mod.rs:20:1:20:12 | mod my3 |
36+
| my2/mod.rs:22:1:23:10 | mod mymod |
3737
| my2/nested2.rs:1:1:11:1 | mod nested3 |
3838
| my2/nested2.rs:2:5:10:5 | mod nested4 |
3939
| my2/nested2.rs:13:1:19:1 | mod nested5 |
@@ -399,7 +399,7 @@ resolvePath
399399
| main.rs:793:5:793:14 | ...::f | my2/nested2.rs:15:9:17:9 | fn f |
400400
| main.rs:794:5:794:11 | nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 |
401401
| main.rs:794:5:794:14 | ...::f | my2/nested2.rs:23:9:25:9 | fn f |
402-
| main.rs:795:5:795:7 | my3 | my2/mod.rs:18:1:18:12 | mod my3 |
402+
| main.rs:795:5:795:7 | my3 | my2/mod.rs:20:1:20:12 | mod my3 |
403403
| main.rs:795:5:795:10 | ...::f | my2/my3/mod.rs:1:1:5:1 | fn f |
404404
| main.rs:796:5:796:12 | nested_f | my/my4/my5/mod.rs:1:1:3:1 | fn f |
405405
| main.rs:797:5:797:7 | m18 | main.rs:553:1:571:1 | mod m18 |
@@ -429,17 +429,21 @@ resolvePath
429429
| my2/mod.rs:16:5:16:20 | ...::nested5 | my2/nested2.rs:13:1:19:1 | mod nested5 |
430430
| my2/mod.rs:16:5:16:29 | ...::nested6 | my2/nested2.rs:14:5:18:5 | mod nested6 |
431431
| my2/mod.rs:16:5:16:32 | ...::f | my2/nested2.rs:15:9:17:9 | fn f |
432-
| my2/mod.rs:23:9:23:13 | mymod | my2/mod.rs:20:1:21:10 | mod mymod |
433-
| my2/mod.rs:23:9:23:16 | ...::f | my2/renamed.rs:1:1:1:13 | fn f |
432+
| my2/mod.rs:18:5:18:7 | std | {EXTERNAL LOCATION} | Crate(std@0.0.0) |
433+
| my2/mod.rs:18:5:18:12 | ...::ops | {EXTERNAL LOCATION} | mod ops |
434+
| my2/mod.rs:18:5:18:19 | ...::Deref | {EXTERNAL LOCATION} | trait Deref |
435+
| my2/mod.rs:25:9:25:13 | mymod | my2/mod.rs:22:1:23:10 | mod mymod |
436+
| my2/mod.rs:25:9:25:16 | ...::f | my2/renamed.rs:1:1:1:13 | fn f |
434437
| my2/my3/mod.rs:3:5:3:5 | g | my2/mod.rs:3:1:6:1 | fn g |
435438
| my2/my3/mod.rs:4:5:4:5 | h | main.rs:56:1:75:1 | fn h |
436-
| my2/my3/mod.rs:7:5:7:9 | super | my2/mod.rs:1:1:23:34 | SourceFile |
439+
| my2/my3/mod.rs:7:5:7:9 | super | my2/mod.rs:1:1:25:34 | SourceFile |
437440
| my2/my3/mod.rs:7:5:7:16 | ...::super | main.rs:1:1:805:2 | SourceFile |
438441
| my2/my3/mod.rs:7:5:7:19 | ...::h | main.rs:56:1:75:1 | fn h |
439-
| my2/my3/mod.rs:8:5:8:9 | super | my2/mod.rs:1:1:23:34 | SourceFile |
442+
| my2/my3/mod.rs:8:5:8:9 | super | my2/mod.rs:1:1:25:34 | SourceFile |
440443
| my2/my3/mod.rs:8:5:8:12 | ...::g | my2/mod.rs:3:1:6:1 | fn g |
441-
| my2/my3/mod.rs:10:5:10:9 | super | my2/mod.rs:1:1:23:34 | SourceFile |
444+
| my2/my3/mod.rs:10:5:10:9 | super | my2/mod.rs:1:1:25:34 | SourceFile |
442445
| my2/my3/mod.rs:10:5:10:20 | ...::nested6_f | my2/nested2.rs:15:9:17:9 | fn f |
446+
| my2/my3/mod.rs:12:5:12:9 | super | my2/mod.rs:1:1:25:34 | SourceFile |
443447
| my.rs:3:5:3:10 | nested | my.rs:1:1:1:15 | mod nested |
444448
| my.rs:3:5:3:13 | ...::g | my/nested.rs:19:1:22:1 | fn g |
445449
| my.rs:11:5:11:5 | g | my/nested.rs:19:1:22:1 | fn g |

0 commit comments

Comments
 (0)