mirror of
https://github.com/github/codeql.git
synced 2026-05-27 17:41:24 +02:00
115 lines
1.9 KiB
Python
115 lines
1.9 KiB
Python
"""If/elif/else control flow evaluation order."""
|
|
|
|
from timer import test, dead
|
|
|
|
|
|
@test
|
|
def test_if_true(t):
|
|
x = True @ t[0]
|
|
if x @ t[1]:
|
|
y = 1 @ t[2]
|
|
z = 0 @ t[3]
|
|
|
|
|
|
@test
|
|
def test_if_false(t):
|
|
x = False @ t[0]
|
|
if x @ t[1]:
|
|
y = 1 @ t[dead(2)]
|
|
z = 0 @ t[2]
|
|
|
|
|
|
@test
|
|
def test_if_else_true(t):
|
|
x = True @ t[0]
|
|
if x @ t[1]:
|
|
y = 1 @ t[2]
|
|
else:
|
|
y = 2 @ t[dead(2)]
|
|
z = 0 @ t[3]
|
|
|
|
|
|
@test
|
|
def test_if_else_false(t):
|
|
x = False @ t[0]
|
|
if x @ t[1]:
|
|
y = 1 @ t[dead(2)]
|
|
else:
|
|
y = 2 @ t[2]
|
|
z = 0 @ t[3]
|
|
|
|
|
|
@test
|
|
def test_if_elif_else_first(t):
|
|
x = 1 @ t[0]
|
|
if (x @ t[1] == 1 @ t[2]) @ t[3]:
|
|
y = "first" @ t[4]
|
|
elif (x @ t[dead(4)] == 2 @ t[dead(5)]) @ t[dead(6)]:
|
|
y = "second" @ t[dead(4)]
|
|
else:
|
|
y = "third" @ t[dead(4)]
|
|
z = 0 @ t[5]
|
|
|
|
|
|
@test
|
|
def test_if_elif_else_second(t):
|
|
x = 2 @ t[0]
|
|
if (x @ t[1] == 1 @ t[2]) @ t[3]:
|
|
y = "first" @ t[dead(7)]
|
|
elif (x @ t[4] == 2 @ t[5]) @ t[6]:
|
|
y = "second" @ t[7]
|
|
else:
|
|
y = "third" @ t[dead(7)]
|
|
z = 0 @ t[8]
|
|
|
|
|
|
@test
|
|
def test_if_elif_else_third(t):
|
|
x = 3 @ t[0]
|
|
if (x @ t[1] == 1 @ t[2]) @ t[3]:
|
|
y = "first" @ t[dead(7)]
|
|
elif (x @ t[4] == 2 @ t[5]) @ t[6]:
|
|
y = "second" @ t[dead(7)]
|
|
else:
|
|
y = "third" @ t[7]
|
|
z = 0 @ t[8]
|
|
|
|
|
|
@test
|
|
def test_nested_if_else(t):
|
|
x = True @ t[0]
|
|
y = True @ t[1]
|
|
if x @ t[2]:
|
|
if y @ t[3]:
|
|
z = 1 @ t[4]
|
|
else:
|
|
z = 2 @ t[dead(4)]
|
|
else:
|
|
z = 3 @ t[dead(4)]
|
|
w = 0 @ t[5]
|
|
|
|
|
|
@test
|
|
def test_if_compound_condition(t):
|
|
x = True @ t[0]
|
|
y = False @ t[1]
|
|
if (x @ t[2] and y @ t[3]) @ t[4]:
|
|
z = 1 @ t[dead(5)]
|
|
else:
|
|
z = 2 @ t[5]
|
|
w = 0 @ t[6]
|
|
|
|
|
|
@test
|
|
def test_if_pass(t):
|
|
x = True @ t[0]
|
|
if x @ t[1]:
|
|
pass
|
|
z = 0 @ t[2]
|
|
|
|
|
|
@test
|
|
|
|
|
|
@test
|