From 1135bf6bcd012e37b8fbddaac49f1b503ec5cd6d Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Sun, 6 Oct 2024 13:13:55 +0200 Subject: [PATCH] Rust: improve QL test script --- .../generated/Module/Module.expected | 1 - .../generated/Module/Module_getName.expected | 1 - .../extractor-tests/generated/Name/Name.expected | 1 - .../generated/Name/Name_getText.expected | 1 - .../generated/SourceFile/SourceFile.expected | 2 +- .../SourceFile/SourceFile_getItem.expected | 3 +-- .../CONSISTENCY/ExtractionConsistency.expected | 10 +++++----- rust/ql/test/extractor-tests/utf8/ast.expected | 14 ++++++-------- .../query-tests/diagnostics/LinesOfCode.expected | 2 +- .../diagnostics/LinesOfUserCode.expected | 2 +- .../diagnostics/LinesOfUserCodeInFiles.expected | 2 +- .../query-tests/diagnostics/SummaryStats.expected | 6 +++--- rust/tools/qltest.sh | 15 ++++++++++++++- 13 files changed, 33 insertions(+), 27 deletions(-) diff --git a/rust/ql/test/extractor-tests/generated/Module/Module.expected b/rust/ql/test/extractor-tests/generated/Module/Module.expected index eceff2ab4f4..2020ab72dc1 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module.expected +++ b/rust/ql/test/extractor-tests/generated/Module/Module.expected @@ -1,4 +1,3 @@ | gen_module.rs:3:1:4:8 | Module | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | | gen_module.rs:5:1:7:1 | Module | getNumberOfAttrs: | 0 | hasItemList: | yes | hasName: | yes | hasVisibility: | no | | lib.rs:2:1:2:15 | Module | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | -| lib.rs:3:1:3:8 | Module | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getName.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getName.expected index eefe68515f0..3a8692beec6 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getName.expected +++ b/rust/ql/test/extractor-tests/generated/Module/Module_getName.expected @@ -1,4 +1,3 @@ | gen_module.rs:3:1:4:8 | Module | gen_module.rs:4:5:4:7 | Name | | gen_module.rs:5:1:7:1 | Module | gen_module.rs:5:5:5:7 | Name | | lib.rs:2:1:2:15 | Module | lib.rs:2:5:2:14 | Name | -| lib.rs:3:1:3:8 | Module | lib.rs:3:5:3:7 | Name | diff --git a/rust/ql/test/extractor-tests/generated/Name/Name.expected b/rust/ql/test/extractor-tests/generated/Name/Name.expected index 5a4e3270939..556c1dff2dd 100644 --- a/rust/ql/test/extractor-tests/generated/Name/Name.expected +++ b/rust/ql/test/extractor-tests/generated/Name/Name.expected @@ -1,3 +1,2 @@ | gen_name.rs:3:4:3:12 | Name | hasText: | yes | | lib.rs:2:5:2:12 | Name | hasText: | yes | -| lib.rs:3:5:3:7 | Name | hasText: | yes | diff --git a/rust/ql/test/extractor-tests/generated/Name/Name_getText.expected b/rust/ql/test/extractor-tests/generated/Name/Name_getText.expected index 70cc00fa56b..89623f2108e 100644 --- a/rust/ql/test/extractor-tests/generated/Name/Name_getText.expected +++ b/rust/ql/test/extractor-tests/generated/Name/Name_getText.expected @@ -1,3 +1,2 @@ | gen_name.rs:3:4:3:12 | Name | test_name | | lib.rs:2:5:2:12 | Name | gen_name | -| lib.rs:3:5:3:7 | Name | lib | diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected index 4abf0fd0df1..5c1ad52bfc3 100644 --- a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected +++ b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected @@ -1,2 +1,2 @@ | gen_source_file.rs:1:1:6:2 | SourceFile | getNumberOfAttrs: | 0 | getNumberOfItems: | 1 | -| lib.rs:1:1:3:9 | SourceFile | getNumberOfAttrs: | 0 | getNumberOfItems: | 2 | +| lib.rs:1:1:2:21 | SourceFile | getNumberOfAttrs: | 0 | getNumberOfItems: | 1 | diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.expected b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.expected index 10429cbab43..aba10e75baa 100644 --- a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.expected +++ b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.expected @@ -1,3 +1,2 @@ | gen_source_file.rs:1:1:6:2 | SourceFile | 0 | gen_source_file.rs:3:1:6:1 | test_source_file | -| lib.rs:1:1:3:9 | SourceFile | 0 | lib.rs:2:1:2:20 | Module | -| lib.rs:1:1:3:9 | SourceFile | 1 | lib.rs:3:1:3:8 | Module | +| lib.rs:1:1:2:21 | SourceFile | 0 | lib.rs:2:1:2:20 | Module | diff --git a/rust/ql/test/extractor-tests/utf8/CONSISTENCY/ExtractionConsistency.expected b/rust/ql/test/extractor-tests/utf8/CONSISTENCY/ExtractionConsistency.expected index 54fb69c6814..44971e7dcf3 100644 --- a/rust/ql/test/extractor-tests/utf8/CONSISTENCY/ExtractionConsistency.expected +++ b/rust/ql/test/extractor-tests/utf8/CONSISTENCY/ExtractionConsistency.expected @@ -1,5 +1,5 @@ -| lib.rs:3:9:3:8 | expected `;` or `{` | -| lib.rs:3:9:3:8 | expected an item | -| lib.rs:3:10:3:21 | macro expansion failed: could not resolve macro 'identifiers' | -| lib.rs:3:21:3:20 | expected BANG | -| lib.rs:3:21:3:20 | expected `{`, `[`, `(` | +| lib.rs:2:9:2:8 | expected `;` or `{` | +| lib.rs:2:9:2:8 | expected an item | +| lib.rs:2:10:2:21 | macro expansion failed: could not resolve macro 'identifiers' | +| lib.rs:2:21:2:20 | expected BANG | +| lib.rs:2:21:2:20 | expected `{`, `[`, `(` | diff --git a/rust/ql/test/extractor-tests/utf8/ast.expected b/rust/ql/test/extractor-tests/utf8/ast.expected index 5f353287fbb..39fb19f1b04 100644 --- a/rust/ql/test/extractor-tests/utf8/ast.expected +++ b/rust/ql/test/extractor-tests/utf8/ast.expected @@ -1,12 +1,10 @@ -| lib.rs:1:1:3:22 | SourceFile | +| lib.rs:1:1:2:22 | SourceFile | | lib.rs:2:1:2:8 | Module | -| lib.rs:2:5:2:7 | Name | -| lib.rs:3:1:3:8 | Module | -| lib.rs:3:5:3:8 | Name | -| lib.rs:3:10:3:20 | NameRef | -| lib.rs:3:10:3:20 | Path | -| lib.rs:3:10:3:20 | PathSegment | -| lib.rs:3:10:3:21 | MacroCall | +| lib.rs:2:5:2:8 | Name | +| lib.rs:2:10:2:20 | NameRef | +| lib.rs:2:10:2:20 | Path | +| lib.rs:2:10:2:20 | PathSegment | +| lib.rs:2:10:2:21 | MacroCall | | utf8-identifiers.rs:1:1:4:6 | foo | | utf8-identifiers.rs:1:1:12:2 | SourceFile | | utf8-identifiers.rs:1:4:1:6 | Name | diff --git a/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected b/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected index bf709e1ddc4..6facd293859 100644 --- a/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected +++ b/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected @@ -1 +1 @@ -| 61 | +| 59 | diff --git a/rust/ql/test/query-tests/diagnostics/LinesOfUserCode.expected b/rust/ql/test/query-tests/diagnostics/LinesOfUserCode.expected index bf709e1ddc4..6facd293859 100644 --- a/rust/ql/test/query-tests/diagnostics/LinesOfUserCode.expected +++ b/rust/ql/test/query-tests/diagnostics/LinesOfUserCode.expected @@ -1 +1 @@ -| 61 | +| 59 | diff --git a/rust/ql/test/query-tests/diagnostics/LinesOfUserCodeInFiles.expected b/rust/ql/test/query-tests/diagnostics/LinesOfUserCodeInFiles.expected index b93473f7e04..fe63f68abd8 100644 --- a/rust/ql/test/query-tests/diagnostics/LinesOfUserCodeInFiles.expected +++ b/rust/ql/test/query-tests/diagnostics/LinesOfUserCodeInFiles.expected @@ -1,7 +1,7 @@ | my_struct.rs:0:0:0:0 | my_struct.rs | 20 | | comments.rs:0:0:0:0 | comments.rs | 13 | | main.rs:0:0:0:0 | main.rs | 8 | -| lib.rs:0:0:0:0 | lib.rs | 7 | | my_macro.rs:0:0:0:0 | my_macro.rs | 7 | +| lib.rs:0:0:0:0 | lib.rs | 5 | | does_not_compile.rs:0:0:0:0 | does_not_compile.rs | 3 | | error.rs:0:0:0:0 | error.rs | 3 | diff --git a/rust/ql/test/query-tests/diagnostics/SummaryStats.expected b/rust/ql/test/query-tests/diagnostics/SummaryStats.expected index 8367d199669..03f12b16d8d 100644 --- a/rust/ql/test/query-tests/diagnostics/SummaryStats.expected +++ b/rust/ql/test/query-tests/diagnostics/SummaryStats.expected @@ -1,5 +1,5 @@ -| Elements extracted | 380 | +| Elements extracted | 376 | | Elements unextracted | 0 | | Files extracted | 7 | -| Lines of code extracted | 61 | -| Lines of user code extracted | 61 | +| Lines of code extracted | 59 | +| Lines of user code extracted | 59 | diff --git a/rust/tools/qltest.sh b/rust/tools/qltest.sh index 09c3c9ab131..58c08a41e01 100755 --- a/rust/tools/qltest.sh +++ b/rust/tools/qltest.sh @@ -9,7 +9,13 @@ QLTEST_LOG="$CODEQL_EXTRACTOR_RUST_LOG_DIR"/qltest.log EXTRACTOR="$CODEQL_EXTRACTOR_RUST_ROOT/tools/$CODEQL_PLATFORM/extractor" echo > lib.rs for src in *.rs; do - echo "mod ${src%.rs};" >> lib.rs + if [[ "$src" == "lib.rs" ]]; then + continue + elif [[ "$src" == "main.rs" ]]; then + continue + else + echo "mod ${src%.rs};" >> lib.rs + fi done cat > Cargo.toml << EOF [workspace] @@ -20,6 +26,13 @@ edition="2021" [lib] path="lib.rs" EOF +if [[ -f "main.rs" ]]; then +cat >> Cargo.toml << EOF +[[bin]] +name = "main" +path = "main.rs" +EOF +fi "$EXTRACTOR" *.rs >> "$QLTEST_LOG" if [[ "$?" != 0 ]]; then cat "$QLTEST_LOG" # Show compiler errors on extraction failure