diff --git a/csharp/ql/test/utils/inline-tests/InlineTests.cs b/csharp/ql/test/utils/inline-tests/InlineTests.cs index 0ee2b019b49d..54fbe6252215 100644 --- a/csharp/ql/test/utils/inline-tests/InlineTests.cs +++ b/csharp/ql/test/utils/inline-tests/InlineTests.cs @@ -3,13 +3,13 @@ class C void Problems() { // correct expectation comment, but only for `problem-query` - var x = "Alert"; // $ Alert + var x = "Alert"; // $ Alert[problem-query] // irrelevant expectation comment, will be ignored x = "Not an alert"; // $ IrrelevantTag // incorrect expectation comment - x = "Also not an alert"; // $ Alert + x = "Also not an alert"; // $ MISSING: Alert[problem-query] // missing expectation comment, but only for `problem-query` x = "Alert"; diff --git a/csharp/ql/test/utils/inline-tests/PathProblemQuery.expected b/csharp/ql/test/utils/inline-tests/PathProblemQuery.expected index 39e82ef30588..2e725add9933 100644 --- a/csharp/ql/test/utils/inline-tests/PathProblemQuery.expected +++ b/csharp/ql/test/utils/inline-tests/PathProblemQuery.expected @@ -13,8 +13,6 @@ | InlineTests.cs:88:13:88:23 | "Alert:0:1" | InlineTests.cs:88:13:88:23 | "Alert:0:1" | InlineTests.cs:87:16:87:21 | "Sink" | This is a problem | edges testFailures -| InlineTests.cs:6:26:6:35 | // ... | Missing result: Alert | -| InlineTests.cs:12:34:12:43 | // ... | Missing result: Alert | | InlineTests.cs:37:28:37:38 | // ... | Missing result: Source | | InlineTests.cs:38:24:38:32 | // ... | Missing result: Sink | | InlineTests.cs:39:33:39:42 | // ... | Missing result: Alert | diff --git a/csharp/ql/test/utils/inline-tests/PathProblemQueryRelatedLocs.expected b/csharp/ql/test/utils/inline-tests/PathProblemQueryRelatedLocs.expected index a902691b839b..5ddc2909596f 100644 --- a/csharp/ql/test/utils/inline-tests/PathProblemQueryRelatedLocs.expected +++ b/csharp/ql/test/utils/inline-tests/PathProblemQueryRelatedLocs.expected @@ -3,8 +3,6 @@ | InlineTests.cs:100:13:100:25 | "Alert:3:2:1" | InlineTests.cs:97:18:97:25 | "Source" | InlineTests.cs:98:16:98:21 | "Sink" | This is a problem with $@ | InlineTests.cs:99:19:99:27 | "Related" | a related location | edges testFailures -| InlineTests.cs:6:26:6:35 | // ... | Missing result: Alert | -| InlineTests.cs:12:34:12:43 | // ... | Missing result: Alert | | InlineTests.cs:32:32:32:42 | // ... | Missing result: Source | | InlineTests.cs:33:28:33:36 | // ... | Missing result: Sink | | InlineTests.cs:34:30:34:39 | // ... | Missing result: Alert | diff --git a/csharp/ql/test/utils/inline-tests/ProblemQuery.expected b/csharp/ql/test/utils/inline-tests/ProblemQuery.expected index 09a7b4bafd46..a3fc6026c203 100644 --- a/csharp/ql/test/utils/inline-tests/ProblemQuery.expected +++ b/csharp/ql/test/utils/inline-tests/ProblemQuery.expected @@ -3,7 +3,6 @@ | InlineTests.cs:15:13:15:19 | "Alert" | This is a problem | | InlineTests.cs:18:13:18:19 | "Alert" | This is a problem | testFailures -| InlineTests.cs:12:34:12:43 | // ... | Missing result: Alert | | InlineTests.cs:15:13:15:19 | This is a problem | Unexpected result: Alert | | InlineTests.cs:34:30:34:39 | // ... | Missing result: Alert | | InlineTests.cs:39:33:39:42 | // ... | Missing result: Alert | diff --git a/csharp/ql/test/utils/inline-tests/ProblemQueryRelatedLocs.expected b/csharp/ql/test/utils/inline-tests/ProblemQueryRelatedLocs.expected index 757bf8fb44ce..1d485453f794 100644 --- a/csharp/ql/test/utils/inline-tests/ProblemQueryRelatedLocs.expected +++ b/csharp/ql/test/utils/inline-tests/ProblemQueryRelatedLocs.expected @@ -2,8 +2,6 @@ | InlineTests.cs:22:13:22:21 | "Alert:1" | This is a problem with $@ | InlineTests.cs:21:23:21:31 | "Related" | a related location | | InlineTests.cs:26:13:26:21 | "Alert:1" | This is a problem with $@ | InlineTests.cs:25:19:25:27 | "Related" | a related location | testFailures -| InlineTests.cs:6:26:6:35 | // ... | Missing result: Alert | -| InlineTests.cs:12:34:12:43 | // ... | Missing result: Alert | | InlineTests.cs:25:19:25:27 | "Related" | Unexpected result: RelatedLocation | | InlineTests.cs:34:30:34:39 | // ... | Missing result: Alert | | InlineTests.cs:39:33:39:42 | // ... | Missing result: Alert | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.expected b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.expected index af36477b9172..e2d7d450de6a 100644 --- a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.expected +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.expected @@ -30,7 +30,5 @@ nodes | BadMacUse.java:152:42:152:51 | ciphertext | semmle.label | ciphertext | subpaths testFailures -| BadMacUse.java:50:56:50:66 | // $ Source | Missing result: Source | -| BadMacUse.java:63:118:63:128 | // $ Source | Missing result: Source | | BadMacUse.java:92:31:92:35 | bytes : byte[] | Unexpected result: Source | | BadMacUse.java:146:95:146:105 | // $ Source | Missing result: Source | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.expected b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.expected index 6fcff81b7f6a..8c76564c9a6e 100644 --- a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.expected +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.expected @@ -31,7 +31,7 @@ nodes | BadMacUse.java:124:42:124:51 | ciphertext | semmle.label | ciphertext | subpaths testFailures -| BadMacUse.java:63:118:63:128 | // $ Source | Missing result: Source | +| BadMacUse.java:50:28:50:53 | doFinal(...) : byte[] | Fixed missing result: Source | | BadMacUse.java:92:16:92:36 | doFinal(...) : byte[] | Unexpected result: Source | | BadMacUse.java:124:42:124:51 | ciphertext | Unexpected result: Alert | | BadMacUse.java:146:95:146:105 | // $ Source | Missing result: Source | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.expected b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.expected index 2daa6405cd05..1944afe3a8cd 100644 --- a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.expected +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.expected @@ -45,7 +45,7 @@ nodes | BadMacUse.java:152:42:152:51 | ciphertext | semmle.label | ciphertext | subpaths testFailures -| BadMacUse.java:50:56:50:66 | // $ Source | Missing result: Source | +| BadMacUse.java:63:82:63:97 | plaintext : byte[] | Fixed missing result: Source | | BadMacUse.java:139:79:139:90 | input : byte[] | Unexpected result: Source | | BadMacUse.java:146:95:146:105 | // $ Source | Missing result: Source | | BadMacUse.java:152:42:152:51 | ciphertext | Unexpected result: Alert | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacUse.java b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacUse.java index 4c1ae5b36215..6d02ef15abe1 100644 --- a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacUse.java +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacUse.java @@ -47,7 +47,7 @@ public void BadDecryptThenMacOnPlaintextVerify(byte[] encryptionKeyBytes, byte[] SecretKey encryptionKey = new SecretKeySpec(encryptionKeyBytes, "AES"); Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); cipher.init(Cipher.DECRYPT_MODE, encryptionKey, new SecureRandom()); - byte[] plaintext = cipher.doFinal(ciphertext); // $ Source + byte[] plaintext = cipher.doFinal(ciphertext); // $ MISSING: Source // Now verify MAC (too late) SecretKey macKey = new SecretKeySpec(macKeyBytes, "HmacSHA256"); @@ -60,7 +60,7 @@ public void BadDecryptThenMacOnPlaintextVerify(byte[] encryptionKeyBytes, byte[] } } - public void BadMacOnPlaintext(byte[] encryptionKeyBytes, byte[] macKeyBytes, byte[] plaintext) throws Exception {// $ Source + public void BadMacOnPlaintext(byte[] encryptionKeyBytes, byte[] macKeyBytes, byte[] plaintext) throws Exception {// $ MISSING: Source // Create keys directly from provided byte arrays SecretKey encryptionKey = new SecretKeySpec(encryptionKeyBytes, "AES"); SecretKey macKey = new SecretKeySpec(macKeyBytes, "HmacSHA256"); diff --git a/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.expected b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.expected index 3ad1b08e4762..548298279752 100644 --- a/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.expected +++ b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.expected @@ -126,5 +126,3 @@ nodes | InsecureIVorNonceSource.java:202:54:202:55 | iv : byte[] | semmle.label | iv : byte[] | | InsecureIVorNonceSource.java:206:51:206:56 | ivSpec | semmle.label | ivSpec | subpaths -testFailures -| InsecureIVorNonceSource.java:42:21:42:21 | 1 : Number | Unexpected result: Source | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.java b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.java index f9474681d196..1382f716ba5c 100644 --- a/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.java +++ b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.java @@ -39,7 +39,7 @@ public byte[] encryptWithZeroStaticIvByteArray(byte[] key, byte[] plaintext) thr public byte[] encryptWithStaticIvByteArray(byte[] key, byte[] plaintext) throws Exception { byte[] iv = new byte[16]; for (byte i = 0; i < iv.length; i++) { - iv[i] = 1; + iv[i] = 1; // $ Source } IvParameterSpec ivSpec = new IvParameterSpec(iv); diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/Test.java b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/Test.java index 50bc113b9000..a3487c513470 100644 --- a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/Test.java +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/Test.java @@ -40,11 +40,11 @@ public void pbkdf2LowIteration(String password) throws Exception { * SAST/CBOM: - Parent: PBKDF2. - Iteration count is only 10, which is far * below acceptable security standards. - Flagged as insecure. */ - public void pbkdf2LowIteration(String password, int iterationCount) throws Exception { // $ Source + public void pbkdf2LowIteration(String password, int iterationCount) throws Exception { // $ MISSING: Source byte[] salt = generateSalt(16); - PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt, iterationCount, 256); // $ Alert[java/quantum/examples/unknown-kdf-iteration-count] + PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt, iterationCount, 256); SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); - byte[] key = factory.generateSecret(spec).getEncoded(); + byte[] key = factory.generateSecret(spec).getEncoded(); // $ Alert[java/quantum/examples/unknown-kdf-iteration-count] } /** diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.expected b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.expected index 192393ad0280..778cb1aa79e5 100644 --- a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.expected +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.expected @@ -1,5 +1 @@ -#select | Test.java:47:22:47:49 | KeyDerivation | Key derivation operation with unknown iteration: $@ | Test.java:43:53:43:70 | iterationCount | iterationCount | -testFailures -| Test.java:45:94:45:154 | // $ Alert[java/quantum/examples/unknown-kdf-iteration-count] | Missing result: Alert[java/quantum/examples/unknown-kdf-iteration-count] | -| Test.java:47:22:47:49 | Key derivation operation with unknown iteration: $@ | Unexpected result: Alert | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.expected b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.expected index cd19c73a6653..6918a04bece3 100644 --- a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.expected +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.expected @@ -12,5 +12,3 @@ nodes | Test.java:58:30:58:38 | 1_000_000 : Number | semmle.label | 1_000_000 : Number | | Test.java:59:72:59:85 | iterationCount | semmle.label | iterationCount | subpaths -testFailures -| Test.java:43:92:43:102 | // $ Source | Missing result: Source | diff --git a/python/ql/test/experimental/meta/inline-taint-test-demo/InlineTaintTest.expected b/python/ql/test/experimental/meta/inline-taint-test-demo/InlineTaintTest.expected index 400399346d8a..5972e4575b64 100644 --- a/python/ql/test/experimental/meta/inline-taint-test-demo/InlineTaintTest.expected +++ b/python/ql/test/experimental/meta/inline-taint-test-demo/InlineTaintTest.expected @@ -3,5 +3,5 @@ argumentToEnsureNotTaintedNotMarkedAsSpurious untaintedArgumentToEnsureTaintedNotMarkedAsMissing | taint_test.py:32:9:32:25 | taint_test.py:32 | ERROR, you should add `# $ MISSING: tainted` annotation | should_be_tainted | | taint_test.py:37:24:37:40 | taint_test.py:37 | ERROR, you should add `# $ MISSING: tainted` annotation | should_be_tainted | +| taint_test.py:41:24:41:40 | taint_test.py:41 | ERROR, you should add `# $ MISSING: tainted` annotation | should_be_tainted | testFailures -| taint_test.py:41:20:41:21 | ts | Fixed missing result: tainted | diff --git a/python/ql/test/experimental/meta/inline-taint-test-demo/taint_test.py b/python/ql/test/experimental/meta/inline-taint-test-demo/taint_test.py index f25b61bcf3a0..bc3fac965e26 100644 --- a/python/ql/test/experimental/meta/inline-taint-test-demo/taint_test.py +++ b/python/ql/test/experimental/meta/inline-taint-test-demo/taint_test.py @@ -38,7 +38,7 @@ def bad_usage(): # if you try to get around it by adding BOTH annotations, that results in a problem # from the default set of inline-test-expectation rules - ensure_tainted(ts, should_be_tainted) # $ tainted MISSING: tainted + ensure_tainted(ts, should_be_tainted) # $ tainted # simulating handling something we _want_ to treat at untainted, but we currently treat as tainted should_not_be_tainted = "pretend this is now safe" + ts diff --git a/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected b/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected index c8c1af17c536..8c6cda774f84 100644 --- a/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected @@ -28,7 +28,6 @@ nodes | string_flow.rb:227:10:227:10 | a | semmle.label | a | subpaths testFailures -| string_flow.rb:85:10:85:10 | a | Unexpected result: hasValueFlow=a | | string_flow.rb:227:10:227:10 | a | Unexpected result: hasValueFlow=a | #select | string_flow.rb:3:10:3:22 | call to new | string_flow.rb:2:9:2:18 | call to source | string_flow.rb:3:10:3:22 | call to new | $@ | string_flow.rb:2:9:2:18 | call to source | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/string-flow/string_flow.rb b/ruby/ql/test/library-tests/dataflow/string-flow/string_flow.rb index 5ec846bcedd7..30a2f1e98825 100644 --- a/ruby/ql/test/library-tests/dataflow/string-flow/string_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/string-flow/string_flow.rb @@ -82,7 +82,7 @@ def m_chomp def m_clear a = source "a" a.clear - sink a + sink a # $ hasValueFlow=a end # concat and prepend omitted because they clash with the summaries for diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/filter_flow.rb b/ruby/ql/test/library-tests/frameworks/action_controller/filter_flow.rb index 2cd382edb33c..761b63a4092a 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/filter_flow.rb +++ b/ruby/ql/test/library-tests/frameworks/action_controller/filter_flow.rb @@ -18,7 +18,7 @@ def b end def c - sink @foo + sink @foo # $ hasTaintFlow end end diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected index 8e2f3114d43b..237c0ed781c4 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected @@ -270,7 +270,6 @@ nodes | params_flow.rb:205:10:205:10 | a | semmle.label | a | subpaths testFailures -| filter_flow.rb:21:10:21:13 | @foo | Unexpected result: hasTaintFlow | | filter_flow.rb:38:10:38:13 | @foo | Unexpected result: hasTaintFlow | | filter_flow.rb:55:10:55:13 | @foo | Unexpected result: hasTaintFlow | | filter_flow.rb:71:10:71:17 | call to bar | Unexpected result: hasTaintFlow | diff --git a/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected b/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected index 3ebd5e566703..d2c6e6bbdb9c 100644 --- a/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected +++ b/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected @@ -497,7 +497,6 @@ nodes | hash_extensions.rb:126:10:126:19 | call to sole | semmle.label | call to sole | subpaths testFailures -| hash_extensions.rb:126:10:126:19 | call to sole | Unexpected result: hasValueFlow=b | #select | active_support.rb:182:10:182:13 | ...[...] | active_support.rb:180:10:180:17 | call to source | active_support.rb:182:10:182:13 | ...[...] | $@ | active_support.rb:180:10:180:17 | call to source | call to source | | active_support.rb:188:10:188:13 | ...[...] | active_support.rb:186:10:186:18 | call to source | active_support.rb:188:10:188:13 | ...[...] | $@ | active_support.rb:186:10:186:18 | call to source | call to source | diff --git a/ruby/ql/test/library-tests/frameworks/active_support/hash_extensions.rb b/ruby/ql/test/library-tests/frameworks/active_support/hash_extensions.rb index f386eba7022e..cf872dfa8776 100644 --- a/ruby/ql/test/library-tests/frameworks/active_support/hash_extensions.rb +++ b/ruby/ql/test/library-tests/frameworks/active_support/hash_extensions.rb @@ -123,7 +123,7 @@ def m_sole multi = [source("b"), source("c")] sink(empty.sole) sink(single.sole) # $ hasValueFlow=a - sink(multi.sole) # TODO: model that 'sole' does not return if the receiver has multiple elements + sink(multi.sole) # $ hasValueFlow=b # TODO: model that 'sole' does not return if the receiver has multiple elements end m_sole() diff --git a/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected b/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected index a33a21d03132..d37b2f6d8a8b 100644 --- a/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected +++ b/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected @@ -23,7 +23,6 @@ nodes | views/index.erb:2:10:2:12 | call to foo | semmle.label | call to foo | subpaths testFailures -| views/index.erb:2:10:2:12 | call to foo | Unexpected result: hasTaintFlow | #select | app.rb:95:10:95:14 | @user | app.rb:103:13:103:22 | call to source | app.rb:95:10:95:14 | @user | $@ | app.rb:103:13:103:22 | call to source | call to source | | views/index.erb:2:10:2:12 | call to foo | app.rb:75:12:75:17 | call to params | views/index.erb:2:10:2:12 | call to foo | $@ | app.rb:75:12:75:17 | call to params | call to params | diff --git a/ruby/ql/test/library-tests/frameworks/sinatra/views/index.erb b/ruby/ql/test/library-tests/frameworks/sinatra/views/index.erb index aed721833c0b..f8e1d0db39fd 100644 --- a/ruby/ql/test/library-tests/frameworks/sinatra/views/index.erb +++ b/ruby/ql/test/library-tests/frameworks/sinatra/views/index.erb @@ -1,2 +1,2 @@ <%= @foo %> -<%= sink foo %> \ No newline at end of file +<%= sink foo # $ hasTaintFlow %> \ No newline at end of file diff --git a/ruby/ql/test/query-tests/experimental/improper-memoization/ImproperMemoization.expected b/ruby/ql/test/query-tests/experimental/improper-memoization/ImproperMemoization.expected index 36c07e3e1050..b24a2e578a05 100644 --- a/ruby/ql/test/query-tests/experimental/improper-memoization/ImproperMemoization.expected +++ b/ruby/ql/test/query-tests/experimental/improper-memoization/ImproperMemoization.expected @@ -1,5 +1,4 @@ testFailures -| improper_memoization.rb:100:1:104:3 | m14 | Unexpected result: result=BAD | #select | improper_memoization.rb:50:1:55:3 | m7 | improper_memoization.rb:50:8:50:10 | arg | improper_memoization.rb:51:3:53:5 | ... \|\|= ... | | improper_memoization.rb:58:1:63:3 | m8 | improper_memoization.rb:58:8:58:10 | arg | improper_memoization.rb:59:3:61:5 | ... \|\|= ... | diff --git a/ruby/ql/test/query-tests/experimental/improper-memoization/improper_memoization.rb b/ruby/ql/test/query-tests/experimental/improper-memoization/improper_memoization.rb index 0b12fe2ad59d..41765021e646 100644 --- a/ruby/ql/test/query-tests/experimental/improper-memoization/improper_memoization.rb +++ b/ruby/ql/test/query-tests/experimental/improper-memoization/improper_memoization.rb @@ -101,4 +101,4 @@ def m14(arg) @m14 ||= {} key = "foo/#{arg}" @m14[key] ||= long_running_method(arg) -end +end # $ SPURIOUS: result=BAD