From c4126e4410dd143b7e0099ee1640530979521951 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 28 Oct 2024 11:17:48 +0100 Subject: [PATCH] Rust: add tests for Definitions.qll --- .../rust/internal}/Definitions.qll | 0 .../localDefinitions.ql | 2 +- .../ide-contextual-queries/localReferences.ql | 2 +- .../definitions/Definitions.expected | 23 +++++++++++++++++++ .../library-tests/definitions/Definitions.ql | 5 ++++ .../ql/test/library-tests/definitions/main.rs | 12 ++++++++++ 6 files changed, 42 insertions(+), 2 deletions(-) rename rust/ql/lib/{ide-contextual-queries => codeql/rust/internal}/Definitions.qll (100%) create mode 100644 rust/ql/test/library-tests/definitions/Definitions.expected create mode 100644 rust/ql/test/library-tests/definitions/Definitions.ql create mode 100644 rust/ql/test/library-tests/definitions/main.rs diff --git a/rust/ql/lib/ide-contextual-queries/Definitions.qll b/rust/ql/lib/codeql/rust/internal/Definitions.qll similarity index 100% rename from rust/ql/lib/ide-contextual-queries/Definitions.qll rename to rust/ql/lib/codeql/rust/internal/Definitions.qll diff --git a/rust/ql/lib/ide-contextual-queries/localDefinitions.ql b/rust/ql/lib/ide-contextual-queries/localDefinitions.ql index 092842b0ce8..677a876987b 100644 --- a/rust/ql/lib/ide-contextual-queries/localDefinitions.ql +++ b/rust/ql/lib/ide-contextual-queries/localDefinitions.ql @@ -8,7 +8,7 @@ */ import codeql.IDEContextual -import Definitions +import codeql.rust.internal.Definitions external string selectedSourceFile(); diff --git a/rust/ql/lib/ide-contextual-queries/localReferences.ql b/rust/ql/lib/ide-contextual-queries/localReferences.ql index 1fb6f4e5423..87e4cc5ca84 100644 --- a/rust/ql/lib/ide-contextual-queries/localReferences.ql +++ b/rust/ql/lib/ide-contextual-queries/localReferences.ql @@ -8,7 +8,7 @@ */ import codeql.IDEContextual -import Definitions +import codeql.rust.internal.Definitions external string selectedSourceFile(); diff --git a/rust/ql/test/library-tests/definitions/Definitions.expected b/rust/ql/test/library-tests/definitions/Definitions.expected new file mode 100644 index 00000000000..e61816a0e9b --- /dev/null +++ b/rust/ql/test/library-tests/definitions/Definitions.expected @@ -0,0 +1,23 @@ +| main.rs:2:9:2:13 | width | main.rs:5:29:5:33 | width | local variable | +| main.rs:2:9:2:13 | width | main.rs:6:41:6:45 | width | local variable | +| main.rs:2:9:2:13 | width | main.rs:7:36:7:40 | width | local variable | +| main.rs:3:9:3:17 | precision | main.rs:5:36:5:44 | precision | local variable | +| main.rs:3:9:3:17 | precision | main.rs:6:48:6:56 | precision | local variable | +| main.rs:4:9:4:13 | value | main.rs:6:34:6:38 | value | local variable | +| main.rs:4:9:4:13 | value | main.rs:7:29:7:33 | value | local variable | +| main.rs:5:50:5:54 | value | main.rs:5:22:5:26 | value | format argument | +| main.rs:6:34:6:38 | value | main.rs:6:22:6:22 | 0 | format argument | +| main.rs:6:41:6:45 | width | main.rs:6:25:6:25 | 1 | format argument | +| main.rs:6:48:6:56 | precision | main.rs:6:28:6:28 | 2 | format argument | +| main.rs:7:29:7:33 | value | main.rs:7:21:7:22 | {} | format argument | +| main.rs:7:36:7:40 | width | main.rs:7:24:7:25 | {} | format argument | +| main.rs:8:9:8:14 | people | main.rs:9:22:9:27 | people | local variable | +| main.rs:10:31:10:31 | 1 | main.rs:10:19:10:20 | {} | format argument | +| main.rs:10:31:10:31 | 1 | main.rs:10:23:10:23 | 0 | format argument | +| main.rs:10:34:10:34 | 2 | main.rs:10:16:10:16 | 1 | format argument | +| main.rs:10:34:10:34 | 2 | main.rs:10:26:10:27 | {} | format argument | +| main.rs:11:5:11:60 | left_val | main.rs:11:5:11:60 | left_val | local variable | +| main.rs:11:5:11:60 | left_val | main.rs:11:5:11:60 | left_val | local variable | +| main.rs:11:5:11:60 | right_val | main.rs:11:5:11:60 | right_val | local variable | +| main.rs:11:5:11:60 | right_val | main.rs:11:5:11:60 | right_val | local variable | +| main.rs:11:40:11:42 | "x" | main.rs:11:31:11:35 | {:<5} | format argument | diff --git a/rust/ql/test/library-tests/definitions/Definitions.ql b/rust/ql/test/library-tests/definitions/Definitions.ql new file mode 100644 index 00000000000..021d5f07e4a --- /dev/null +++ b/rust/ql/test/library-tests/definitions/Definitions.ql @@ -0,0 +1,5 @@ +import codeql.rust.internal.Definitions + +from Definition def, Use use, string kind +where def = definitionOf(use, kind) +select def, use, kind diff --git a/rust/ql/test/library-tests/definitions/main.rs b/rust/ql/test/library-tests/definitions/main.rs new file mode 100644 index 00000000000..a0ee6288280 --- /dev/null +++ b/rust/ql/test/library-tests/definitions/main.rs @@ -0,0 +1,12 @@ +fn main() { + let width = 4; + let precision = 2; + let value = 10; + println!("Value {value:#width$.precision$}", value = 10.5); + println!("Value {0:#1$.2$}", value, width, precision); + println!("Value {} {}", value, width); + let people = "Rustaceans"; + println!("Hello {people}!"); + println!("{1} {} {0} {}", 1, 2); + assert_eq!(format!("Hello {:<5}!", "x"), "Hello x !"); +}