Skip to content

Commit cb1b1da

Browse files
committed
Ruby: Add another array flow test
1 parent b0003c0 commit cb1b1da

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected

+24
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,16 @@ edges
23562356
| array_flow.rb:1686:14:1686:14 | w | array_flow.rb:1690:10:1690:10 | w | provenance | |
23572357
| array_flow.rb:1686:18:1686:18 | a [element 2] | array_flow.rb:1686:11:1686:11 | z | provenance | |
23582358
| array_flow.rb:1686:18:1686:18 | a [element 3] | array_flow.rb:1686:14:1686:14 | w | provenance | |
2359+
| array_flow.rb:1693:10:1693:14 | *args [element 1] | array_flow.rb:1694:17:1694:20 | args [element 1] | provenance | |
2360+
| array_flow.rb:1694:16:1694:20 | * ... [element 1] | array_flow.rb:1694:5:1694:21 | call to [] [element 1] | provenance | |
2361+
| array_flow.rb:1694:17:1694:20 | args [element 1] | array_flow.rb:1694:16:1694:20 | * ... [element 1] | provenance | |
2362+
| array_flow.rb:1697:13:1697:13 | y | array_flow.rb:1699:10:1699:10 | y | provenance | |
2363+
| array_flow.rb:1704:5:1704:5 | a [element 1] | array_flow.rb:1705:11:1705:11 | a [element 1] | provenance | |
2364+
| array_flow.rb:1704:9:1704:31 | call to m141 [element 1] | array_flow.rb:1704:5:1704:5 | a [element 1] | provenance | |
2365+
| array_flow.rb:1704:17:1704:27 | call to source | array_flow.rb:1693:10:1693:14 | *args [element 1] | provenance | |
2366+
| array_flow.rb:1704:17:1704:27 | call to source | array_flow.rb:1704:9:1704:31 | call to m141 [element 1] | provenance | |
2367+
| array_flow.rb:1705:10:1705:11 | * ... [element 1] | array_flow.rb:1697:13:1697:13 | y | provenance | |
2368+
| array_flow.rb:1705:11:1705:11 | a [element 1] | array_flow.rb:1705:10:1705:11 | * ... [element 1] | provenance | |
23592369
nodes
23602370
| array_flow.rb:2:5:2:5 | a [element 0] | semmle.label | a [element 0] |
23612371
| array_flow.rb:2:9:2:20 | * ... [element 0] | semmle.label | * ... [element 0] |
@@ -4849,11 +4859,23 @@ nodes
48494859
| array_flow.rb:1686:18:1686:18 | a [element 3] | semmle.label | a [element 3] |
48504860
| array_flow.rb:1689:10:1689:10 | z | semmle.label | z |
48514861
| array_flow.rb:1690:10:1690:10 | w | semmle.label | w |
4862+
| array_flow.rb:1693:10:1693:14 | *args [element 1] | semmle.label | *args [element 1] |
4863+
| array_flow.rb:1694:5:1694:21 | call to [] [element 1] | semmle.label | call to [] [element 1] |
4864+
| array_flow.rb:1694:16:1694:20 | * ... [element 1] | semmle.label | * ... [element 1] |
4865+
| array_flow.rb:1694:17:1694:20 | args [element 1] | semmle.label | args [element 1] |
4866+
| array_flow.rb:1697:13:1697:13 | y | semmle.label | y |
4867+
| array_flow.rb:1699:10:1699:10 | y | semmle.label | y |
4868+
| array_flow.rb:1704:5:1704:5 | a [element 1] | semmle.label | a [element 1] |
4869+
| array_flow.rb:1704:9:1704:31 | call to m141 [element 1] | semmle.label | call to m141 [element 1] |
4870+
| array_flow.rb:1704:17:1704:27 | call to source | semmle.label | call to source |
4871+
| array_flow.rb:1705:10:1705:11 | * ... [element 1] | semmle.label | * ... [element 1] |
4872+
| array_flow.rb:1705:11:1705:11 | a [element 1] | semmle.label | a [element 1] |
48524873
subpaths
48534874
| array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:30:251:30 | x | array_flow.rb:253:9:253:25 | call to [] [element 0] | array_flow.rb:251:9:254:7 | call to collect_concat [element] |
48544875
| array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:26:507:26 | x | array_flow.rb:509:9:509:9 | x | array_flow.rb:507:9:510:7 | call to filter_map [element] |
48554876
| array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:24:571:24 | x | array_flow.rb:573:9:573:25 | call to [] [element 0] | array_flow.rb:571:9:574:7 | call to flat_map [element] |
48564877
| array_flow.rb:1678:9:1678:9 | a [element 2] | array_flow.rb:1678:19:1678:19 | x | array_flow.rb:1679:9:1679:9 | x | array_flow.rb:1678:9:1680:7 | call to map [element] |
4878+
| array_flow.rb:1704:17:1704:27 | call to source | array_flow.rb:1693:10:1693:14 | *args [element 1] | array_flow.rb:1694:5:1694:21 | call to [] [element 1] | array_flow.rb:1704:9:1704:31 | call to m141 [element 1] |
48574879
testFailures
48584880
arrayLiteral
48594881
| array_flow.rb:9:9:9:25 | call to [] |
@@ -5046,6 +5068,7 @@ arrayLiteral
50465068
| array_flow.rb:1668:14:1668:41 | ...[...] |
50475069
| array_flow.rb:1677:9:1677:29 | call to [] |
50485070
| array_flow.rb:1685:9:1685:44 | call to [] |
5071+
| array_flow.rb:1694:5:1694:21 | call to [] |
50495072
#select
50505073
| array_flow.rb:3:10:3:13 | ...[...] | array_flow.rb:2:10:2:20 | call to source | array_flow.rb:3:10:3:13 | ...[...] | $@ | array_flow.rb:2:10:2:20 | call to source | call to source |
50515074
| array_flow.rb:5:10:5:13 | ...[...] | array_flow.rb:2:10:2:20 | call to source | array_flow.rb:5:10:5:13 | ...[...] | $@ | array_flow.rb:2:10:2:20 | call to source | call to source |
@@ -5749,3 +5772,4 @@ arrayLiteral
57495772
| array_flow.rb:1681:10:1681:13 | ...[...] | array_flow.rb:1677:16:1677:28 | call to source | array_flow.rb:1681:10:1681:13 | ...[...] | $@ | array_flow.rb:1677:16:1677:28 | call to source | call to source |
57505773
| array_flow.rb:1689:10:1689:10 | z | array_flow.rb:1685:16:1685:28 | call to source | array_flow.rb:1689:10:1689:10 | z | $@ | array_flow.rb:1685:16:1685:28 | call to source | call to source |
57515774
| array_flow.rb:1690:10:1690:10 | w | array_flow.rb:1685:31:1685:43 | call to source | array_flow.rb:1690:10:1690:10 | w | $@ | array_flow.rb:1685:31:1685:43 | call to source | call to source |
5775+
| array_flow.rb:1699:10:1699:10 | y | array_flow.rb:1704:17:1704:27 | call to source | array_flow.rb:1699:10:1699:10 | y | $@ | array_flow.rb:1704:17:1704:27 | call to source | call to source |

ruby/ql/test/library-tests/dataflow/array-flow/array_flow.rb

+15
Original file line numberDiff line numberDiff line change
@@ -1689,3 +1689,18 @@ def m140
16891689
sink z # $ hasValueFlow=140.1
16901690
sink w # $ hasValueFlow=140.2
16911691
end
1692+
1693+
def m141(*args)
1694+
::Array.[](*args)
1695+
end
1696+
1697+
def m142(x, y, z)
1698+
sink(x)
1699+
sink(y) # $ hasValueFlow=143
1700+
sink(z)
1701+
end
1702+
1703+
def m143
1704+
a = m141(0, source(143), 1)
1705+
m142(*a)
1706+
end

ruby/ql/test/library-tests/dataflow/array-flow/type-tracking-array-flow.expected

+1
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,5 @@ testFailures
6464
| array_flow.rb:1626:19:1626:70 | # $ hasValueFlow=136.2 $ SPURIOUS hasValueFlow=136.1 | Missing result:hasValueFlow=136.1 |
6565
| array_flow.rb:1626:19:1626:70 | # $ hasValueFlow=136.2 $ SPURIOUS hasValueFlow=136.1 | Missing result:hasValueFlow=136.2 |
6666
| array_flow.rb:1627:19:1627:40 | # $ hasValueFlow=136.1 | Missing result:hasValueFlow=136.1 |
67+
| array_flow.rb:1699:13:1699:32 | # $ hasValueFlow=143 | Missing result:hasValueFlow=143 |
6768
failures

0 commit comments

Comments
 (0)