Skip to content

Commit a5040fd

Browse files
committed
Ruby: Add data-flow test for reverse array stores
1 parent de16927 commit a5040fd

2 files changed

Lines changed: 41 additions & 1 deletion

File tree

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3401,6 +3401,22 @@ edges
34013401
| array_flow.rb:1604:10:1604:10 | c [array element] : | array_flow.rb:1604:10:1604:13 | ...[...] |
34023402
| array_flow.rb:1605:10:1605:10 | c [array element] : | array_flow.rb:1605:10:1605:13 | ...[...] |
34033403
| array_flow.rb:1605:10:1605:10 | c [array element] : | array_flow.rb:1605:10:1605:13 | ...[...] |
3404+
| array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : | array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : |
3405+
| array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : | array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : |
3406+
| array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : | array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : |
3407+
| array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : | array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : |
3408+
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : |
3409+
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : |
3410+
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : |
3411+
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : |
3412+
| array_flow.rb:1610:15:1610:27 | call to source : | array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : |
3413+
| array_flow.rb:1610:15:1610:27 | call to source : | array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : |
3414+
| array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : | array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : |
3415+
| array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : | array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : |
3416+
| array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : | array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : |
3417+
| array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : | array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : |
3418+
| array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : | array_flow.rb:1611:10:1611:16 | ...[...] |
3419+
| array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : | array_flow.rb:1611:10:1611:16 | ...[...] |
34043420
nodes
34053421
| array_flow.rb:2:9:2:20 | * ... : | semmle.label | * ... : |
34063422
| array_flow.rb:2:9:2:20 | * ... [array element 0] : | semmle.label | * ... [array element 0] : |
@@ -7049,6 +7065,22 @@ nodes
70497065
| array_flow.rb:1605:10:1605:10 | c [array element] : | semmle.label | c [array element] : |
70507066
| array_flow.rb:1605:10:1605:13 | ...[...] | semmle.label | ...[...] |
70517067
| array_flow.rb:1605:10:1605:13 | ...[...] | semmle.label | ...[...] |
7068+
| array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : | semmle.label | [post] a [array element 0, array element 0] : |
7069+
| array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : | semmle.label | [post] a [array element 0, array element 0] : |
7070+
| array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : | semmle.label | [post] a [array element, array element 0] : |
7071+
| array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : | semmle.label | [post] a [array element, array element 0] : |
7072+
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | semmle.label | [post] ...[...] [array element 0] : |
7073+
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | semmle.label | [post] ...[...] [array element 0] : |
7074+
| array_flow.rb:1610:15:1610:27 | call to source : | semmle.label | call to source : |
7075+
| array_flow.rb:1610:15:1610:27 | call to source : | semmle.label | call to source : |
7076+
| array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : | semmle.label | a [array element 0, array element 0] : |
7077+
| array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : | semmle.label | a [array element 0, array element 0] : |
7078+
| array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : | semmle.label | a [array element, array element 0] : |
7079+
| array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : | semmle.label | a [array element, array element 0] : |
7080+
| array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : | semmle.label | ...[...] [array element 0] : |
7081+
| array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : | semmle.label | ...[...] [array element 0] : |
7082+
| array_flow.rb:1611:10:1611:16 | ...[...] | semmle.label | ...[...] |
7083+
| array_flow.rb:1611:10:1611:16 | ...[...] | semmle.label | ...[...] |
70527084
subpaths
70537085
#select
70547086
| 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 : |
@@ -7735,3 +7767,4 @@ subpaths
77357767
| array_flow.rb:1604:10:1604:13 | ...[...] | array_flow.rb:1601:13:1601:25 | call to source : | array_flow.rb:1604:10:1604:13 | ...[...] | $@ | array_flow.rb:1601:13:1601:25 | call to source : | call to source : |
77367768
| array_flow.rb:1605:10:1605:13 | ...[...] | array_flow.rb:1600:16:1600:28 | call to source : | array_flow.rb:1605:10:1605:13 | ...[...] | $@ | array_flow.rb:1600:16:1600:28 | call to source : | call to source : |
77377769
| array_flow.rb:1605:10:1605:13 | ...[...] | array_flow.rb:1601:13:1601:25 | call to source : | array_flow.rb:1605:10:1605:13 | ...[...] | $@ | array_flow.rb:1601:13:1601:25 | call to source : | call to source : |
7770+
| array_flow.rb:1611:10:1611:16 | ...[...] | array_flow.rb:1610:15:1610:27 | call to source : | array_flow.rb:1611:10:1611:16 | ...[...] | $@ | array_flow.rb:1610:15:1610:27 | call to source : | call to source : |

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1603,4 +1603,11 @@ def m135
16031603
sink c[0] # $ hasValueFlow=135.1 $ hasValueFlow=135.2
16041604
sink c[1] # $ hasValueFlow=135.1 $ hasValueFlow=135.2
16051605
sink c[2] # $ hasValueFlow=135.1 $ hasValueFlow=135.2
1606-
end
1606+
end
1607+
1608+
def m136(i)
1609+
a = [[0]]
1610+
a[i][0] = source(136.1)
1611+
sink(a[0][0]) # $ hasValueFlow=136.1
1612+
sink(a[0][1])
1613+
end

0 commit comments

Comments
 (0)