Module Expr Str Import alias Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Import alias Import alias Import alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ClassDef bases AttributeLoad NameLoad attr body FunctionDef arguments args NameParam NameParam NameParam defaults NameLoad body Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr keyword NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr keyword NameLoad Assign NameStore ListLoad Assign NameStore NameLoad For NameStore NameLoad body Assign TupleStore NameStore NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad NameLoad AugAssignAdd NameStore Num Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore ListLoad NameLoad Assign NameStore Num For TupleStore NameStore NameStore NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr BinOpMod Str NameLoad NameLoad NameLoad AugAssignAdd NameStore Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad Return NameLoad decorator_list Expr Str FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str TupleLoad ListLoad Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str NameLoad Assign NameStore Dict NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad ListLoad NameLoad ListLoad NameLoad NameLoad ListLoad NameLoad ListLoad NameLoad NameLoad ListLoad NameLoad NameLoad ListLoad NameLoad ListLoad NameLoad ListLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad For TupleStore NameStore NameStore Call AttributeLoad NameLoad attr body For NameStore NameLoad body Expr Call AttributeLoad SubscriptLoad NameLoad Index NameLoad attr NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad ListLoad attr NameLoad Expr Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad ListLoad attr NameLoad decorator_list Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr ListLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr Lambda arguments args NameParam defaults SubscriptLoad NameLoad Index NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr Lambda arguments args NameParam defaults Call AttributeLoad NameLoad attr NameLoad ListLoad Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad With Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Str NameStore body Assign NameStore Call AttributeLoad NameLoad attr keyword Str Assign NameStore Call AttributeLoad NameLoad attr keyword Str For NameStore TupleLoad NameLoad NameLoad body Assign AttributeStore AttributeLoad NameLoad attr attr ListLoad Assign AttributeStore NameLoad attr ListLoad NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Call NameLoad ListLoad Str Str Assign NameStore Dict NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Call NameLoad ListLoad Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Num Num Num Call NameLoad ListLoad Num Num Num Num Num Num Num Num Call NameLoad ListLoad Num Num Num Num Num Num Num Num Assign NameStore Dict NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Call NameLoad ListLoad Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Num Num Call NameLoad ListLoad Num Num Num Num Num Num Num Num Call NameLoad ListLoad Num Num Num Num Num Num Num Num Assign NameStore Dict Str Str Str Str Str Call NameLoad ListLoad Num Call NameLoad ListLoad Num Call NameLoad ListLoad Num Num Call NameLoad ListLoad Num Num Call NameLoad ListLoad Num Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str TupleLoad ListLoad Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str Str Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr ListLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Assign NameStore AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Dict Str Str Str Str Str Call NameLoad ListLoad Num Call NameLoad ListLoad Num Call NameLoad ListLoad Num Num Call NameLoad ListLoad Num Num Call NameLoad ListLoad Num Num Assign AttributeStore NameLoad attr Dict NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Dict Str Str Call NameLoad ListLoad Num Call NameLoad ListLoad Num Dict Dict Str Call NameLoad ListLoad Num Dict Dict Dict Str Call NameLoad ListLoad Num Dict Str Call NameLoad ListLoad Num Dict Str Call NameLoad ListLoad Num Dict Assign AttributeStore NameLoad attr Dict NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Call NameLoad ListLoad Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Num Num Num Num Num Call NameLoad ListLoad Num Num Num Num Num Num Num Num Assign NameStore Dict TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num ListLoad Num ListLoad Num ListLoad Num Num Num Num Num ListLoad Num ListLoad Num Num Num Num Num ListLoad Num ListLoad Num Assign NameStore Dict TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Num Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad NameLoad For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad decorator_list Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Str FunctionDef arguments args NameParam NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Num TupleLoad ListLoad Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Num Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Num Num Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Num Num TupleLoad ListLoad Num Num Num Assign NameStore Call AttributeLoad NameLoad attr Str Num ListLoad TupleLoad ListLoad Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr ListLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Assign NameStore AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Dict Num Num Num Num Call NameLoad ListLoad Num Num Num Num Call NameLoad ListLoad Num Call NameLoad ListLoad Num Call NameLoad ListLoad Num Assign AttributeStore NameLoad attr Dict NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Dict Num Call NameLoad ListLoad Num Dict Dict Dict Num Call NameLoad ListLoad Num Dict Num Call NameLoad ListLoad Num Dict Num Num Call NameLoad ListLoad Num Call NameLoad ListLoad Num Dict Assign AttributeStore NameLoad attr Dict NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Call NameLoad ListLoad Num Num Call NameLoad ListLoad Num Num Num Call NameLoad ListLoad Num Num Num Call NameLoad ListLoad Num Num Num Call NameLoad ListLoad Num Num Num Call NameLoad ListLoad Num Num Num Call NameLoad ListLoad Num Num Num Num Num Num Assign NameStore Dict TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num ListLoad Num Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Num ListLoad Num Num Assign NameStore Dict TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num ListLoad Num ListLoad Num ListLoad Num Num Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Str FunctionDef arguments args NameParam defaults body Assign NameStore Dict TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num ListLoad Num ListLoad Num ListLoad Num Num Num Num Num ListLoad Num ListLoad Num Num Num Num Num ListLoad Num ListLoad Num Assign NameStore Dict TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num TupleLoad Str Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Num Assign NameStore Dict Str Str Str Str Str ListLoad TupleLoad ListLoad Num ListLoad Num ListLoad TupleLoad ListLoad Num ListLoad Num ListLoad TupleLoad ListLoad Num Num ListLoad Num Num Num Num Num ListLoad TupleLoad ListLoad Num ListLoad Num Num Num Num Num ListLoad TupleLoad ListLoad Num Num ListLoad Num Assign NameStore Call AttributeLoad NameLoad attr ListLoad Str Str Str Str Str NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num ListLoad Num Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Num ListLoad Num Num Assign NameStore Dict TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num ListLoad Num ListLoad Num ListLoad Num Num Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Assign NameStore Call AttributeLoad NameLoad attr ListLoad Num Num Num Num NameLoad NameLoad Assign NameStore Dict Num Num Num Num ListLoad TupleLoad ListLoad Num ListLoad Num Num TupleLoad ListLoad Num Num Num ListLoad Num ListLoad TupleLoad ListLoad Num ListLoad Num ListLoad TupleLoad ListLoad Num ListLoad Num Num ListLoad TupleLoad ListLoad Num ListLoad Num Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore Dict Str Str Str Str Str ListLoad TupleLoad ListLoad Num ListLoad Num ListLoad TupleLoad ListLoad Num ListLoad Num ListLoad TupleLoad ListLoad Num Num ListLoad Num Num Num Num Num ListLoad TupleLoad ListLoad Num ListLoad Num Num Num Num Num ListLoad TupleLoad ListLoad Num Num ListLoad Num Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr ListLoad Num Num Num Num Num AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Str FunctionDef arguments args NameParam NameParam defaults body Assign NameStore Dict Num Num Num Num ListLoad TupleLoad ListLoad Num ListLoad Num Num TupleLoad ListLoad Num Num Num ListLoad Num ListLoad TupleLoad ListLoad Num ListLoad Num ListLoad TupleLoad ListLoad Num ListLoad Num Num ListLoad TupleLoad ListLoad Num ListLoad Num Num Assign AttributeStore NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Dict Num Num Num Num NameLoad NameLoad NameLoad NameLoad Assign NameStore Dict TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num ListLoad Num Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Num ListLoad Num Num Assign NameStore Dict TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num ListLoad Num ListLoad Num ListLoad Num Num Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Assign NameStore Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad Assign NameStore Dict TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num ListLoad Num ListLoad Num Num ListLoad Num Num ListLoad Num Num ListLoad Num ListLoad Num ListLoad Num Assign NameStore Dict TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num ListLoad Num Num Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Str decorator_list If CompareEq NameLoad Str body Expr Call AttributeLoad NameLoad attr
N/A N/A Tests for def_use. N/A sys N/A N/A N/A N/A sys path append . N/A collections N/A mock N/A unittest androguard.decompiler.dad dataflow androguard.decompiler.dad graph androguard.decompiler.dad node androguard.decompiler.dad instruction androguard.decompiler.dad basic_blocks DataflowTest N/A N/A unittest TestCase N/A _CreateMockIns N/A N/A self uses lhs N/A None N/A N/A mock_ins N/A N/A mock create_autospec N/A instruction IRForm N/A N/A N/A mock_ins get_used_vars return_value uses N/A N/A N/A mock_ins get_lhs return_value lhs N/A mock_ins N/A _CreateMockNode N/A N/A self node_name start_ins_idx lins N/A N/A N/A mock_node N/A N/A mock create_autospec N/A basic_blocks BasicBlock _name node_name N/A N/A mock_node __repr__ N/A N/A mock Mock return_value node_name N/A loc_ins N/A N/A ins_idx start_ins_idx N/A ins lins N/A N/A N/A uses lhs ins N/A mock_ins N/A N/A self _CreateMockIns uses N/A N/A N/A mock_ins get_lhs return_value lhs N/A N/A N/A loc_ins append N/A ins_idx mock_ins N/A ins_idx 1 N/A N/A N/A mock_node get_loc_with_ins return_value loc_ins N/A mock_node N/A _CreateMockGraph N/A N/A self lparams lidx_ins N/A N/A N/A entry N/A N/A mock create_autospec N/A basic_blocks BasicBlock N/A rpo N/A entry N/A node_num 1 N/A N/A idx lins lidx_ins N/A N/A N/A N/A rpo append N/A N/A self _CreateMockNode N/A n%d node_num idx lins N/A node_num 1 N/A G N/A N/A mock create_autospec N/A graph Graph N/A N/A G rpo rpo N/A G N/A N/A 
      This tests the reach def analysis with:
            int GCD(int a, int b){
          node1:
            0.     int c = a;
            1.     int d = b;
          node2:
            2.     if(c == 0)
          node3:
            3.       ret = d; (goto 9.)
          node4:
            4.     while(d != 0){
          node5
            5.       if(c > d)
          node6:
            6.         c = c - d;
          node7:     else
            7.         d = d - c;
          node8:   }
            8.     ret = c;
          node9:
            9.     return ret;
            }
     testReachDefGCD N/A N/A self N/A N/A N/A n1 N/A N/A self _CreateMockNode n1 0 N/A N/A N/A a c N/A N/A b d N/A n2 N/A N/A self _CreateMockNode n2 2 N/A N/A N/A c None N/A n3 N/A N/A self _CreateMockNode n3 3 N/A N/A N/A d ret N/A n4 N/A N/A self _CreateMockNode n4 4 N/A N/A N/A d None N/A n5 N/A N/A self _CreateMockNode n5 5 N/A N/A N/A c d None N/A n6 N/A N/A self _CreateMockNode n6 6 N/A N/A N/A c d c N/A n7 N/A N/A self _CreateMockNode n7 7 N/A N/A N/A c d d N/A n8 N/A N/A self _CreateMockNode n8 8 N/A N/A N/A c ret N/A n9 N/A N/A self _CreateMockNode n9 9 N/A N/A N/A ret None N/A sucs N/A n1 n2 n3 n4 n5 n6 n7 n8 N/A n2 N/A n3 n4 N/A n9 N/A n5 n8 N/A n6 n7 N/A n8 N/A n8 N/A n9 N/A preds N/A N/A collections defaultdict list N/A N/A pred lsucs N/A N/A sucs iteritems N/A N/A suc lsucs N/A N/A N/A N/A N/A preds N/A suc append pred add_edge N/A N/A x y N/A N/A N/A N/A N/A N/A N/A sucs setdefault x N/A append y N/A N/A N/A N/A N/A preds setdefault y N/A append x N/A N/A graph_mock N/A N/A mock create_autospec N/A graph Graph N/A N/A graph_mock entry n1 N/A N/A graph_mock exit n9 N/A N/A graph_mock rpo N/A n1 n2 n3 n4 n5 n6 n7 n8 n9 N/A N/A N/A graph_mock all_preds side_effect N/A N/A N/A x N/A N/A preds N/A x N/A N/A N/A graph_mock all_sucs side_effect N/A N/A N/A x N/A N/A N/A sucs get x N/A N/A N/A N/A graph_mock add_edge side_effect add_edge N/A N/A N/A N/A mock patch object dataflow DummyNode dummynode_mock N/A N/A dummy_entry_mock N/A N/A mock Mock name entry N/A dummy_exit_mock N/A N/A mock Mock name exit N/A dummy_mock N/A dummy_entry_mock dummy_exit_mock N/A N/A N/A N/A dummy_mock get_loc_with_ins return_value N/A N/A N/A dummynode_mock side_effect N/A dummy_entry_mock dummy_exit_mock N/A analysis N/A N/A dataflow reach_def_analysis graph_mock N/A set N/A a b N/A expected_A N/A dummy_entry_mock n1 n2 n3 n4 n5 n6 n7 n8 n9 dummy_exit_mock N/A set N/A -2 -1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 3 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 1 6 N/A set N/A -2 -1 0 7 N/A set N/A -2 -1 0 1 6 7 8 N/A set N/A -2 -1 0 1 3 6 7 8 N/A set N/A -2 -1 0 1 3 6 7 8 N/A expected_R N/A n1 n2 n3 n4 n5 n6 n7 n8 n9 dummy_exit_mock N/A set N/A -2 -1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 6 7 N/A set N/A -2 -1 0 1 3 6 7 8 N/A set N/A -2 -1 0 1 3 6 7 8 N/A expected_def_to_loc N/A a b c d ret N/A set N/A -1 N/A set N/A -2 N/A set N/A 0 6 N/A set N/A 1 7 N/A set N/A 3 8 N/A N/A N/A self assertDictEqual N/A analysis A expected_A N/A N/A N/A self assertDictEqual N/A analysis R expected_R N/A N/A N/A self assertDictEqual N/A analysis def_to_loc expected_def_to_loc N/A testDefUseGCD N/A N/A self mock_reach_def N/A N/A N/A Test def use with the GCD function above. N/A n1 N/A N/A self _CreateMockNode n1 0 N/A N/A N/A a c N/A N/A b d N/A n2 N/A N/A self _CreateMockNode n2 2 N/A N/A N/A c None N/A n3 N/A N/A self _CreateMockNode n3 3 N/A N/A N/A d ret N/A n4 N/A N/A self _CreateMockNode n4 4 N/A N/A N/A d None N/A n5 N/A N/A self _CreateMockNode n5 5 N/A N/A N/A c d None N/A n6 N/A N/A self _CreateMockNode n6 6 N/A N/A N/A c d c N/A n7 N/A N/A self _CreateMockNode n7 7 N/A N/A N/A c d d N/A n8 N/A N/A self _CreateMockNode n8 8 N/A N/A N/A c ret N/A n9 N/A N/A self _CreateMockNode n9 9 N/A N/A N/A ret None N/A graph_mock N/A N/A mock create_autospec N/A graph Graph N/A N/A graph_mock rpo N/A n1 n2 n3 n4 n5 n6 n7 n8 n9 N/A mock_analysis N/A mock_reach_def return_value N/A N/A mock_analysis def_to_loc N/A a b c d ret N/A set N/A -1 N/A set N/A -2 N/A set N/A 0 6 N/A set N/A 1 7 N/A set N/A 3 8 N/A N/A mock_analysis defs N/A n1 n2 n3 n4 n5 n6 n7 n8 n9 N/A c d N/A set N/A 0 N/A set N/A 1 N/A N/A ret N/A set N/A 3 N/A N/A N/A c N/A set N/A 6 N/A d N/A set N/A 7 N/A ret N/A set N/A 8 N/A N/A N/A mock_analysis R N/A n1 n2 n3 n4 n5 n6 n7 n8 n9 N/A set N/A -2 -1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 N/A set N/A -2 -1 0 1 6 7 N/A set N/A -2 -1 0 1 3 6 7 8 N/A expected_du N/A N/A a -1 N/A b -2 N/A c 0 N/A c 6 N/A d 1 N/A ret 3 N/A ret 8 N/A 0 N/A 1 N/A 2 5 6 7 8 N/A 8 N/A 3 4 5 6 7 N/A 9 N/A 9 N/A expected_ud N/A N/A a 0 N/A b 1 N/A c 2 N/A c 5 N/A c 6 N/A c 7 N/A c 8 N/A d 3 N/A d 4 N/A d 5 N/A d 6 N/A d 7 N/A ret 9 N/A -1 N/A -2 N/A 0 N/A 0 N/A 0 N/A 0 N/A 0 6 N/A 1 N/A 1 N/A 1 N/A 1 N/A 1 N/A 3 8 N/A N/A ud du N/A N/A dataflow build_def_use graph_mock N/A mock sentinel N/A N/A N/A self assertItemsEqual du expected_du N/A entry du N/A N/A N/A N/A self assertItemsEqual N/A du N/A entry N/A expected_du N/A entry N/A N/A N/A self assertItemsEqual ud expected_ud N/A entry ud N/A N/A N/A N/A self assertItemsEqual N/A ud N/A entry N/A expected_ud N/A entry N/A N/A N/A N/A mock patch object dataflow reach_def_analysis testDefUseIfBool N/A N/A self mock_reach_def N/A N/A N/A n1 N/A N/A self _CreateMockNode n1 0 N/A N/A N/A 0 N/A N/A 2 None N/A n2 N/A N/A self _CreateMockNode n1 2 N/A N/A N/A 3 None N/A n3 N/A N/A self _CreateMockNode n3 3 N/A N/A N/A 3 None N/A n4 N/A N/A self _CreateMockNode n4 4 N/A N/A N/A 0 N/A n5 N/A N/A self _CreateMockNode n5 5 N/A N/A N/A 0 0 N/A n6 N/A N/A self _CreateMockNode n6 6 N/A N/A N/A 2 1 N/A N/A 0 1 0 N/A n7 N/A N/A self _CreateMockNode n7 8 N/A N/A N/A 0 None N/A graph_mock N/A N/A mock create_autospec N/A graph Graph N/A N/A graph_mock rpo N/A n1 n2 n3 n4 n5 n6 n7 N/A mock_analysis N/A mock_reach_def return_value N/A N/A mock_analysis def_to_loc N/A 0 1 2 3 N/A set N/A 0 4 5 7 N/A set N/A 6 N/A set N/A -1 N/A set N/A -2 N/A N/A mock_analysis defs N/A n1 n2 n3 n4 n5 n6 n7 N/A 0 N/A set N/A 0 N/A N/A N/A 0 N/A set N/A 4 N/A 0 N/A set N/A 5 N/A 0 1 N/A set N/A 7 N/A set N/A 6 N/A N/A N/A mock_analysis R N/A n1 n2 n3 n4 n5 n6 n7 N/A set N/A -1 -2 N/A set N/A 0 -2 -1 N/A set N/A 0 -1 -2 N/A set N/A 0 -2 -1 N/A set N/A 0 -2 -1 N/A set N/A 0 -1 -2 N/A set N/A 4 -1 6 7 -2 5 N/A expected_du N/A N/A 0 0 N/A 0 4 N/A 0 5 N/A 0 7 N/A 1 6 N/A 2 -1 N/A 3 -2 N/A 7 5 N/A 8 N/A 8 N/A 8 N/A 7 N/A 6 1 N/A 2 3 N/A expected_ud N/A N/A 0 5 N/A 0 7 N/A 0 8 N/A 1 7 N/A 2 1 N/A 2 6 N/A 3 2 N/A 3 3 N/A 0 N/A 0 N/A 4 5 7 N/A 6 N/A -1 N/A -1 N/A -2 N/A -2 N/A N/A ud du N/A N/A dataflow build_def_use graph_mock N/A mock sentinel N/A N/A N/A self assertEqual du expected_du N/A N/A N/A self assertEqual ud expected_ud N/A N/A N/A N/A mock patch object dataflow reach_def_analysis testGroupVariablesGCD N/A N/A self N/A N/A N/A du N/A N/A a -1 N/A b -2 N/A c 0 N/A c 6 N/A d 1 N/A ret 3 N/A ret 8 N/A 0 N/A 1 N/A 2 5 6 7 8 N/A 8 N/A 3 4 5 6 7 N/A 9 N/A 9 N/A ud N/A N/A a 0 N/A b 1 N/A c 2 N/A c 5 N/A c 6 N/A c 7 N/A c 8 N/A d 3 N/A d 4 N/A d 5 N/A d 6 N/A d 7 N/A ret 9 N/A -1 N/A -2 N/A 0 N/A 0 N/A 0 N/A 0 N/A 0 6 N/A 1 N/A 1 N/A 1 N/A 1 N/A 1 N/A 3 8 N/A expected_groups N/A a b c d ret N/A N/A N/A -1 N/A 0 N/A N/A N/A -2 N/A 1 N/A N/A N/A 0 6 N/A 8 2 5 6 7 N/A N/A N/A 1 N/A 3 4 5 6 7 N/A N/A N/A 3 8 N/A 9 N/A groups N/A N/A dataflow group_variables N/A a b c d ret du ud N/A N/A N/A self assertEqual groups expected_groups N/A testGroupVariablesIfBool N/A N/A self N/A N/A N/A du N/A N/A 0 0 N/A 0 4 N/A 0 5 N/A 0 7 N/A 1 6 N/A 2 -1 N/A 3 -2 N/A 7 5 N/A 8 N/A 8 N/A 8 N/A 7 N/A 6 1 N/A 2 3 N/A ud N/A N/A 0 5 N/A 0 7 N/A 0 8 N/A 1 7 N/A 2 1 N/A 2 6 N/A 3 2 N/A 3 3 N/A 0 N/A 0 N/A 4 5 7 N/A 6 N/A -1 N/A -1 N/A -2 N/A -2 N/A groups N/A N/A dataflow group_variables N/A 0 1 2 3 du ud N/A expected_groups N/A 0 1 2 3 N/A N/A N/A 0 N/A 5 7 N/A N/A 4 5 7 N/A 8 N/A N/A N/A 6 N/A 7 N/A N/A N/A -1 N/A 1 6 N/A N/A N/A -2 N/A 2 3 N/A N/A N/A self assertItemsEqual groups expected_groups N/A entry groups N/A N/A N/A N/A self assertItemsEqual N/A groups N/A entry N/A expected_groups N/A entry N/A testSplitVariablesGCD N/A N/A self group_variables_mock N/A N/A N/A group N/A a b c d ret N/A N/A N/A -1 N/A 0 N/A N/A N/A -2 N/A 1 N/A N/A N/A 0 6 N/A 2 5 6 7 8 N/A N/A N/A 1 N/A 3 4 5 6 7 N/A N/A N/A 3 8 N/A 9 N/A N/A group_variables_mock return_value group N/A N/A N/A dataflow split_variables N/A mock sentinel N/A 0 1 2 3 4 N/A mock sentinel N/A mock sentinel N/A N/A N/A N/A mock patch object dataflow group_variables testSplitVariablesIfBool N/A N/A self group_variables_mock N/A N/A N/A group N/A 0 1 2 3 N/A N/A N/A 0 N/A 5 7 N/A N/A 4 5 7 N/A 8 N/A N/A N/A 6 N/A 7 N/A N/A N/A -1 N/A 1 6 N/A N/A N/A -2 N/A 2 3 N/A N/A group_variables_mock return_value group N/A param1_mock N/A N/A mock Mock N/A param2_mock N/A N/A mock Mock N/A var0_mock N/A N/A mock Mock N/A var1_mock N/A N/A mock Mock N/A lvars N/A 0 1 2 3 var0_mock var1_mock param1_mock param2_mock N/A du N/A N/A 0 0 N/A 0 4 N/A 0 5 N/A 0 7 N/A 1 6 N/A 2 -1 N/A 3 -2 N/A 7 5 N/A 8 N/A 8 N/A 8 N/A 7 N/A 6 1 N/A 2 3 N/A ud N/A N/A 0 5 N/A 0 7 N/A 0 8 N/A 1 7 N/A 2 1 N/A 2 6 N/A 3 2 N/A 3 3 N/A 0 N/A 0 N/A 4 5 7 N/A 6 N/A -1 N/A -1 N/A -2 N/A -2 N/A graph_mock N/A N/A mock Mock N/A N/A N/A dataflow split_variables graph_mock lvars du ud N/A expected_du N/A N/A 1 6 N/A 2 -1 N/A 3 -2 N/A 4 0 N/A 5 4 N/A 5 5 N/A 5 7 N/A 7 N/A 6 1 N/A 2 3 N/A 7 5 N/A 8 N/A 8 N/A 8 N/A expected_ud N/A N/A 1 7 N/A 2 1 N/A 2 6 N/A 3 2 N/A 3 3 N/A 4 5 N/A 4 7 N/A 5 8 N/A 6 N/A -1 N/A -1 N/A -2 N/A -2 N/A 0 N/A 0 N/A 4 5 7 N/A N/A N/A self assertEqual du expected_du N/A N/A N/A self assertEqual ud expected_ud N/A N/A N/A N/A mock patch object dataflow group_variables N/A N/A N/A __name__ __main__ N/A N/A N/A N/A unittest main