Skip to content

Commit 994d990

Browse files
committed
Ruby: Add another data flow test
1 parent 3ab6f22 commit 994d990

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

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

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2120,6 +2120,20 @@ edges
21202120
| array_flow.rb:1668:25:1668:37 | call to source | array_flow.rb:1668:14:1668:41 | ...[...] [element 1] | provenance | |
21212121
| array_flow.rb:1670:14:1670:15 | a2 [element 1] | array_flow.rb:1670:14:1670:18 | ...[...] | provenance | |
21222122
| array_flow.rb:1672:14:1672:15 | a2 [element 1] | array_flow.rb:1672:14:1672:18 | ...[...] | provenance | |
2123+
| array_flow.rb:1677:5:1677:5 | a [element 2] | array_flow.rb:1678:9:1678:9 | a [element 2] | provenance | |
2124+
| array_flow.rb:1677:16:1677:28 | call to source | array_flow.rb:1677:5:1677:5 | a [element 2] | provenance | |
2125+
| array_flow.rb:1678:5:1678:5 | b [element] | array_flow.rb:1681:10:1681:10 | b [element] | provenance | |
2126+
| array_flow.rb:1678:9:1678:9 | a [element 2] | array_flow.rb:1678:9:1680:7 | call to map [element] | provenance | |
2127+
| array_flow.rb:1678:9:1680:7 | call to map [element] | array_flow.rb:1678:5:1678:5 | b [element] | provenance | |
2128+
| array_flow.rb:1681:10:1681:10 | b [element] | array_flow.rb:1681:10:1681:13 | ...[...] | provenance | |
2129+
| array_flow.rb:1685:5:1685:5 | a [element 2] | array_flow.rb:1686:18:1686:18 | a [element 2] | provenance | |
2130+
| array_flow.rb:1685:5:1685:5 | a [element 3] | array_flow.rb:1686:18:1686:18 | a [element 3] | provenance | |
2131+
| array_flow.rb:1685:16:1685:28 | call to source | array_flow.rb:1685:5:1685:5 | a [element 2] | provenance | |
2132+
| array_flow.rb:1685:31:1685:43 | call to source | array_flow.rb:1685:5:1685:5 | a [element 3] | provenance | |
2133+
| array_flow.rb:1686:11:1686:11 | z | array_flow.rb:1689:10:1689:10 | z | provenance | |
2134+
| array_flow.rb:1686:14:1686:14 | w | array_flow.rb:1690:10:1690:10 | w | provenance | |
2135+
| array_flow.rb:1686:18:1686:18 | a [element 2] | array_flow.rb:1686:11:1686:11 | z | provenance | |
2136+
| array_flow.rb:1686:18:1686:18 | a [element 3] | array_flow.rb:1686:14:1686:14 | w | provenance | |
21232137
nodes
21242138
| array_flow.rb:2:5:2:5 | a [element 0] | semmle.label | a [element 0] |
21252139
| array_flow.rb:2:9:2:20 | * ... [element 0] | semmle.label | * ... [element 0] |
@@ -4374,6 +4388,23 @@ nodes
43744388
| array_flow.rb:1670:14:1670:18 | ...[...] | semmle.label | ...[...] |
43754389
| array_flow.rb:1672:14:1672:15 | a2 [element 1] | semmle.label | a2 [element 1] |
43764390
| array_flow.rb:1672:14:1672:18 | ...[...] | semmle.label | ...[...] |
4391+
| array_flow.rb:1677:5:1677:5 | a [element 2] | semmle.label | a [element 2] |
4392+
| array_flow.rb:1677:16:1677:28 | call to source | semmle.label | call to source |
4393+
| array_flow.rb:1678:5:1678:5 | b [element] | semmle.label | b [element] |
4394+
| array_flow.rb:1678:9:1678:9 | a [element 2] | semmle.label | a [element 2] |
4395+
| array_flow.rb:1678:9:1680:7 | call to map [element] | semmle.label | call to map [element] |
4396+
| array_flow.rb:1681:10:1681:10 | b [element] | semmle.label | b [element] |
4397+
| array_flow.rb:1681:10:1681:13 | ...[...] | semmle.label | ...[...] |
4398+
| array_flow.rb:1685:5:1685:5 | a [element 2] | semmle.label | a [element 2] |
4399+
| array_flow.rb:1685:5:1685:5 | a [element 3] | semmle.label | a [element 3] |
4400+
| array_flow.rb:1685:16:1685:28 | call to source | semmle.label | call to source |
4401+
| array_flow.rb:1685:31:1685:43 | call to source | semmle.label | call to source |
4402+
| array_flow.rb:1686:11:1686:11 | z | semmle.label | z |
4403+
| array_flow.rb:1686:14:1686:14 | w | semmle.label | w |
4404+
| array_flow.rb:1686:18:1686:18 | a [element 2] | semmle.label | a [element 2] |
4405+
| array_flow.rb:1686:18:1686:18 | a [element 3] | semmle.label | a [element 3] |
4406+
| array_flow.rb:1689:10:1689:10 | z | semmle.label | z |
4407+
| array_flow.rb:1690:10:1690:10 | w | semmle.label | w |
43774408
subpaths
43784409
arrayLiteral
43794410
| array_flow.rb:9:9:9:25 | call to [] |
@@ -4564,6 +4595,8 @@ arrayLiteral
45644595
| array_flow.rb:1621:10:1621:12 | call to [] |
45654596
| array_flow.rb:1647:9:1647:32 | ...[...] |
45664597
| array_flow.rb:1668:14:1668:41 | ...[...] |
4598+
| array_flow.rb:1677:9:1677:29 | call to [] |
4599+
| array_flow.rb:1685:9:1685:44 | call to [] |
45674600
#select
45684601
| 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 |
45694602
| 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 |
@@ -5264,3 +5297,6 @@ arrayLiteral
52645297
| array_flow.rb:1651:10:1651:13 | ...[...] | array_flow.rb:1647:18:1647:28 | call to source | array_flow.rb:1651:10:1651:13 | ...[...] | $@ | array_flow.rb:1647:18:1647:28 | call to source | call to source |
52655298
| array_flow.rb:1670:14:1670:18 | ...[...] | array_flow.rb:1668:25:1668:37 | call to source | array_flow.rb:1670:14:1670:18 | ...[...] | $@ | array_flow.rb:1668:25:1668:37 | call to source | call to source |
52665299
| array_flow.rb:1672:14:1672:18 | ...[...] | array_flow.rb:1668:25:1668:37 | call to source | array_flow.rb:1672:14:1672:18 | ...[...] | $@ | array_flow.rb:1668:25:1668:37 | call to source | call to source |
5300+
| 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 |
5301+
| 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 |
5302+
| 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 |

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1672,3 +1672,20 @@ def m139(i)
16721672
sink(a2[i]) # $ hasValueFlow=139.2
16731673
end
16741674
end
1675+
1676+
def m139
1677+
a = [0, 1, source(139.1)]
1678+
b = a.map do |x|
1679+
x
1680+
end
1681+
sink b[2] # $ hasValueFlow=139.1
1682+
end
1683+
1684+
def m140
1685+
a = [0, 1, source(140.1), source(140.2)]
1686+
x, y, z, w = a
1687+
sink x
1688+
sink y
1689+
sink z # $ hasValueFlow=140.1
1690+
sink w # $ hasValueFlow=140.2
1691+
end

0 commit comments

Comments
 (0)