def test_pySym_complicated(): b = ast_parse.parse(test5).body p = Path(b, source=test5) pg = PathGroup(p) assert pg.explore(find=19) assert pg.found[0].state.any_int('z') == 26
def test_pySym_functionNestingTwo(): # More intense nesting b = ast_parse.parse(test7).body p = Path(b, source=test7) pg = PathGroup(p) pg.explore() assert pg.completed[0].state.any_int('x') == 7
def test_longer_one(): b = ast_parse.parse(test).body p = Path(b, source=test) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('CRC_POLY') == [ 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1 ] assert pg.completed[0].state.any_list('INNER') == [ 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0 ] assert pg.completed[0].state.any_list('PLAIN_1_BITS') == [ 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0 ]
def test_pyObjectManager_List_setitem(): b = ast_parse.parse(test1).body p = Path(b, source=test1) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 l = pg.completed[0].state.getVar('l') s = pg.completed[0].state # Base check assert l[1].count == 0 assert type(l[1]) == Real # Assign an Int l[1] = Int(varName='x', ctx=0, state=s) assert l[1].count == 1 assert type(l[1]) == Int # Assign back to Real l[1] = Real(varName='x', ctx=0, state=s) assert l[1].count == 2 assert type(l[1]) == Real # Assign to BitVec l[1] = BitVec(varName='x', ctx=0, size=32, state=s) assert l[1].count == 3 assert type(l[1]) == BitVec # Assign List l[1] = List(varName='x', ctx=0, state=s) #assert l[1].count == 4 assert type(l[1]) == List
def test_pyState_GeneratorExp_General(): b = ast_parse.parse(test1).body p = Path(b,source=test1) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_str('x') == "".join(str(i) for i in range(5))
def test_function_String_rstrip_Char(): b = ast_parse.parse(test5).body p = Path(b,source=test5) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 2 assert set([p.state.any_str('x') for p in pg.completed]) == {"m","mee"}
def test_pyState_Subscript_AssignToVar(): b = ast_parse.parse(test1).body p = Path(b, source=test1) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_int('x') == 2
def test_pyState_ListComp_StringCmp(): b = ast_parse.parse(test7).body p = Path(b, source=test7) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == ["b"]
def test_pySym_AugAssign_BitStuff(): b = ast_parse.parse(test3).body p = Path(b, source=test3) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_int('e') == 38776701190144
def test_pySym_BinOp_Xor(): b = ast_parse.parse(test4).body p = Path(b,source=test4) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_int('d') == 13
def test_pySym_BinOp_BitStuff(): b = ast_parse.parse(test5).body p = Path(b,source=test5) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_int('e') == 57065549561856
def test_pySym_BinOp_ListConcat(): b = ast_parse.parse(test11).body p = Path(b,source=test11) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == [1,2,3] + [4,5,6]
def test_pySym_BinOp_StringMult(): b = ast_parse.parse(test14).body p = Path(b,source=test14) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_str('x') == "A" * 4
def test_pySym_nestedFor(): b = ast_parse.parse(test2).body p = Path(b, source=test2) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_int('out') == 290
def test_pySym_variableSlice(): b = ast_parse.parse(test4).body p = Path(b, source=test4) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_int('out') == 104
def test_pyState_nestedSlice(): b = ast_parse.parse(test11).body p = Path(b, source=test11) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_int('x') == 3
def test_pyState_ListComp_MoreFunctions(): b = ast_parse.parse(test8).body p = Path(b, source=test8) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == [str(i) for i in range(10)]
def test_pyState_Subscript_MultiDimentional(): b = ast_parse.parse(test3).body p = Path(b, source=test3) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_int('x') == 4
def test_pyState_ListComp_outputModifier(): b = ast_parse.parse(test6).body p = Path(b, source=test6) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == [x**2 for x in range(5)]
def test_getZ3Object(): b = ast_parse.parse("x = 12").body p = Path(b, source="x = 12") pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 x = pg.completed[0].state.getVar('x') assert type(x) is Int
def test_function_List_append(): b = ast_parse.parse(test1).body p = Path(b, source=test1) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == [1, 2.3, [1, 2.2, 3]]
def test_pyObjectManager_List_NestedList(): b = ast_parse.parse(test2).body p = Path(b, source=test2) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == [1, 2.2, [3, [4, 5], 6]]
def test_pyObjectManager_List_FunctionCalls(): b = ast_parse.parse(test10).body p = Path(b, source=test10) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == [1, 12, [24]]
def test_pyObjectManager_List_BasicAssign(): b = ast_parse.parse(test1).body p = Path(b, source=test1) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == [1, 2.2, 3]
def test_fnuction_len_statesplit(): b = ast_parse.parse(test2).body p = Path(b, source=test2) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 8 assert set([p.state.any_int('x') for p in pg.completed]) == set(range(8))
def test_pyObjectManager_List_StateSplit(): b = ast_parse.parse(test12).body p = Path(b, source=test12) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 8 assert set([p.state.any_list('l')[1] for p in pg.completed]) == set(range(8))
def test_pyState_ListComp_MultipleFor_ReturnList(): b = ast_parse.parse(test5).body p = Path(b, source=test5) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == [[x, y] for x in [1, 2, 3] for y in [1]]
def test_pyObjectManager_String_Assign(): b = ast_parse.parse(test1).body p = Path(b, source=test1) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_str('s') == "Test"
def test_pyObjectManager_String_ListComp(): b = ast_parse.parse(test2).body p = Path(b, source=test2) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 1 assert pg.completed[0].state.any_list('l') == [x for x in "Test"]
def test_pySym_Compare_Symbolic_String(): b = ast_parse.parse(compare4).body p = Path(b, source=compare4) pg = PathGroup(p) pg.explore() assert len(pg.completed) == 2 assert pg.completed[1].state.any_str('s')[2] == "t"