Skip to content

Commit 520f598

Browse files
authored
Merge pull request #7301 from hvitved/ruby/cfg-disjunct-test
Ruby: Add CFG test for `||`
2 parents f2800ab + 50dd4e7 commit 520f598

File tree

3 files changed

+62
-1
lines changed

3 files changed

+62
-1
lines changed

ruby/ql/test/library-tests/controlflow/graph/Cfg.expected

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3661,7 +3661,7 @@ ifs.rb:
36613661
#-----| -> b
36623662

36633663
# 46| empty_else
3664-
#-----| -> exit ifs.rb (normal)
3664+
#-----| -> disjunct
36653665

36663666
# 46| exit empty_else
36673667

@@ -3698,6 +3698,58 @@ ifs.rb:
36983698
# 51| "done"
36993699
#-----| -> call to puts
37003700

3701+
# 54| enter disjunct
3702+
#-----| -> b1
3703+
3704+
# 54| disjunct
3705+
#-----| -> exit ifs.rb (normal)
3706+
3707+
# 54| exit disjunct
3708+
3709+
# 54| exit disjunct (normal)
3710+
#-----| -> exit disjunct
3711+
3712+
# 54| b1
3713+
#-----| -> b2
3714+
3715+
# 54| b2
3716+
#-----| -> b1
3717+
3718+
# 55| if ...
3719+
#-----| -> exit disjunct (normal)
3720+
3721+
# 55| [false] ( ... )
3722+
#-----| false -> if ...
3723+
3724+
# 55| [true] ( ... )
3725+
#-----| true -> self
3726+
3727+
# 55| [false] ... || ...
3728+
#-----| false -> [false] ( ... )
3729+
3730+
# 55| [true] ... || ...
3731+
#-----| true -> [true] ( ... )
3732+
3733+
# 55| b1
3734+
#-----| true -> [true] ... || ...
3735+
#-----| false -> b2
3736+
3737+
# 55| b2
3738+
#-----| false -> [false] ... || ...
3739+
#-----| true -> [true] ... || ...
3740+
3741+
# 55| then ...
3742+
#-----| -> if ...
3743+
3744+
# 56| call to puts
3745+
#-----| -> then ...
3746+
3747+
# 56| self
3748+
#-----| -> "b1 or b2"
3749+
3750+
# 56| "b1 or b2"
3751+
#-----| -> call to puts
3752+
37013753
loops.rb:
37023754
# 1| enter m1
37033755
#-----| -> x

ruby/ql/test/library-tests/controlflow/graph/Nodes.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,9 @@ positionalArguments
241241
| ifs.rb:38:12:38:17 | ... == ... | ifs.rb:38:17:38:17 | 2 |
242242
| ifs.rb:48:5:48:15 | call to puts | ifs.rb:48:10:48:15 | "true" |
243243
| ifs.rb:51:3:51:13 | call to puts | ifs.rb:51:8:51:13 | "done" |
244+
| ifs.rb:55:7:55:14 | [false] ... \|\| ... | ifs.rb:55:13:55:14 | b2 |
245+
| ifs.rb:55:7:55:14 | [true] ... \|\| ... | ifs.rb:55:13:55:14 | b2 |
246+
| ifs.rb:56:5:56:19 | call to puts | ifs.rb:56:10:56:19 | "b1 or b2" |
244247
| loops.rb:2:9:2:14 | ... >= ... | loops.rb:2:14:2:14 | 0 |
245248
| loops.rb:3:5:3:10 | call to puts | loops.rb:3:10:3:10 | x |
246249
| loops.rb:4:7:4:8 | ... - ... | loops.rb:4:10:4:10 | 1 |

ruby/ql/test/library-tests/controlflow/graph/ifs.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,10 @@ def empty_else b
4949
else
5050
end
5151
puts "done"
52+
end
53+
54+
def disjunct (b1, b2)
55+
if (b1 || b2) then
56+
puts "b1 or b2"
57+
end
5258
end

0 commit comments

Comments
 (0)