Mercurial > paraspace
annotate paraspace/tests/dexfile_test.py @ 25:670167ed06bb
test dex_deptracker._link_dependencies()
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Tue, 07 Jun 2011 00:21:17 +0800 |
parents | fff40aabefab |
children | b30a0d29a62f |
rev | line source |
---|---|
16 | 1 from paraspace import dexfile |
2 import os | |
3 | |
4 def block_sizes_test(): | |
5 srcdir = os.path.dirname(__file__) | |
6 srcroot = os.path.join(srcdir, '..', '..') | |
7 testdatapath = os.path.join(srcroot, 'data', 'testdata1.dex') | |
8 dex = dexfile.DEXFile.open(testdatapath) | |
9 assert dex.stringIds.data_size == 5384 | |
10 assert dex.typeIds.data_size == 704 | |
11 assert dex.protoIds.data_size == 1776 | |
12 assert dex.fieldIds.data_size == 1944 | |
13 assert dex.methodIds.data_size == 3552 | |
14 assert dex.classDefs.data_size == 1600 | |
15 assert dex.classDatas.data_size == 2052 | |
16 assert dex.typeLists.data_size == 838 | |
17 assert dex.codeItems.data_size == 30688 | |
18 assert dex.annotationSetItems.data_size == 412 | |
19 assert dex.annotationsDirectoryItems.data_size == 792 | |
20 assert dex.annotationItems.data_size == 642 | |
21 assert dex.encodedArrayItems.data_size == 139 | |
22 assert dex.debugInfoItems.data_size == 6353 | |
23 assert dex.stringDataItems.data_size == 23492 | |
24 pass | |
25 | |
26 | |
20
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
27 def dependencies_test(): |
25
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
28 from paraspace import dex_deptracker |
23
fff40aabefab
Move collect_dependencies() to dex_deptracker.py
Thinker K.F. Li <thinker@codemud.net>
parents:
20
diff
changeset
|
29 |
25
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
30 deps = dex_deptracker.collect_all_dep_decls() |
20
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
31 assert deps['_DEX_AnnotationItem.typeIdx'][0] == dexfile.depend_idx |
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
32 assert deps['_DEX_AnnotationItem.typeIdx'][1] == 'DEXFile.typeIds' |
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
33 assert deps['_DEX_FieldId.typeIdx'][0] == dexfile.depend_idx |
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
34 assert deps['_DEX_FieldId.typeIdx'][1] == 'DEXFile.typeIds' |
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
35 assert deps['_DEX_ClassDef.staticValuesOff'][0] == dexfile.depend_off |
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
36 assert deps['_DEX_ClassDef.staticValuesOff'][1] == '_DEX_EncodedArrayItem' |
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
37 assert deps['_DEX_Try.handlerOff'][0] == dexfile.depend_off_rel |
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
38 assert deps['_DEX_Try.handlerOff'][1] == '_DEX_Catch' |
25
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
39 assert deps['_DEX_Try.handlerOff'][2] == '_DEX_Code.handlers_size' |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
40 pass |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
41 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
42 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
43 def resolve_name_path_test(): |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
44 from paraspace.dex_deptracker import _resolve_name_path |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
45 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
46 obj, parent = _resolve_name_path('_DEX_ClassData.staticFields.items') |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
47 assert obj == list |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
48 obj, parent = _resolve_name_path('_DEX_ClassData.staticFields.items.*') |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
49 assert obj == dexfile._DEX_Field |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
50 obj, parent = _resolve_name_path('_DEX_ClassData.staticFields.items.1') |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
51 assert obj == dexfile._DEX_Field |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
52 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
53 obj, parent = _resolve_name_path('_DEX_Catch.catchAllHandler.value') |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
54 assert obj == dexfile._DEX_CatchAllHandler |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
55 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
56 key = dexfile._DEX_AnnotationMember_noname.kDexAnnotationNull |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
57 obj, parent = _resolve_name_path('_DEX_AnnotationMember_noname.value.' + |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
58 repr(key)) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
59 assert isinstance(obj, dexfile.abs_value) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
60 pass |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
61 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
62 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
63 def find_dep_decls_from_clazz_test(): |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
64 from paraspace.dex_deptracker import _find_dep_decls_from_clazz |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
65 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
66 dex_types = dict([(dex_type_name, getattr(dexfile, dex_type_name)) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
67 for dex_type_name in dir(dexfile) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
68 if dex_type_name.startswith('_DEX_')]) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
69 deps = _find_dep_decls_from_clazz('_DEX_ProtoId', dexfile._DEX_ProtoId, |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
70 dex_types) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
71 assert len(deps) == 3 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
72 assert '_DEX_ProtoId.shortyIdx' in deps |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
73 assert deps['_DEX_ProtoId.shortyIdx'][0] == dexfile.depend_idx |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
74 assert deps['_DEX_ProtoId.shortyIdx'][1] == 'DEXFile.stringIds' |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
75 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
76 assert deps['_DEX_ProtoId.parametersOff'][1] == '_DEX_TypeList' |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
77 pass |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
78 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
79 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
80 def find_dep_decls_from_clazz__array_test(): |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
81 from paraspace.dex_deptracker import _find_dep_decls_from_clazz |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
82 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
83 dex_types = dict([(dex_type_name, getattr(dexfile, dex_type_name)) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
84 for dex_type_name in dir(dexfile) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
85 if dex_type_name.startswith('_DEX_')]) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
86 deps = _find_dep_decls_from_clazz('_DEX_AnnotationSetItem', |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
87 dexfile._DEX_AnnotationSetItem, |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
88 dex_types) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
89 assert len(deps) == 1 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
90 name_path = '_DEX_AnnotationSetItem.annotationOffs.items.*' |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
91 assert name_path in deps |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
92 assert deps[name_path][0] == dexfile.depend_off |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
93 assert deps[name_path][1] == '_DEX_AnnotationItem' |
20
265f39947b36
Unit test for dependencies of dexfile.py
Thinker K.F. Li <thinker@codemud.net>
parents:
16
diff
changeset
|
94 pass |
25
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
95 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
96 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
97 def travel_dex_relocatable__array_test(): |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
98 from paraspace.dex_deptracker import _travel_dex_relocatable |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
99 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
100 srcdir = os.path.dirname(__file__) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
101 srcroot = os.path.join(srcdir, '..', '..') |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
102 testdatapath = os.path.join(srcroot, 'data', 'testdata1.dex') |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
103 dex = dexfile.DEXFile.open(testdatapath) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
104 dexroot = dex.typeLists.items[0] |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
105 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
106 itr = _travel_dex_relocatable(dexroot) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
107 pathes = [v[2] for v in itr] |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
108 assert len(pathes) == 6 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
109 assert '_DEX_TypeList' in pathes |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
110 assert '_DEX_TypeList.padding' in pathes |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
111 assert '_DEX_TypeList.num' in pathes |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
112 assert '_DEX_TypeList.typeItems' in pathes |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
113 assert '_DEX_TypeList.typeItems.items' in pathes |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
114 assert '_DEX_TypeList.typeItems.items.0' in pathes |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
115 pass |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
116 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
117 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
118 def _install_dexfile_4_deptracker(): |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
119 global dexfile |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
120 import imp |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
121 from paraspace import dex_deptracker |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
122 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
123 try: |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
124 new_dexfile = imp.load_compiled('dexfile', dexfile.__file__) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
125 except ImportError: |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
126 new_dexfile = imp.load_source('dexfile', dexfile.__file__) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
127 pass |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
128 dex_deptracker.dexfile = new_dexfile |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
129 dexfile = new_dexfile |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
130 pass |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
131 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
132 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
133 def install_markers_test(): |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
134 from paraspace.dex_deptracker import collect_all_dep_decls |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
135 from paraspace.dex_deptracker import _install_markers, _idx_marker |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
136 from paraspace.dex_deptracker import _offset_marker, _rel_offset_marker |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
137 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
138 _install_dexfile_4_deptracker() |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
139 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
140 all_dep_decls = collect_all_dep_decls() |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
141 _install_markers(all_dep_decls) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
142 assert isinstance(dexfile.DEXFile.typeIds, _idx_marker) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
143 assert isinstance(dexfile._DEX_Code.back_type.handlers_size, |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
144 _rel_offset_marker) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
145 assert dexfile._DEX_TypeList.__class__ == _offset_marker |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
146 pass |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
147 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
148 def link_dependencies_test(): |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
149 from paraspace.dex_deptracker import collect_all_dep_decls |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
150 from paraspace.dex_deptracker import _link_dependencies |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
151 from paraspace.dex_deptracker import _install_markers, _idx_marker |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
152 from paraspace.dex_deptracker import _offset_marker, _rel_offset_marker |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
153 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
154 _install_dexfile_4_deptracker() |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
155 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
156 all_dep_decls = collect_all_dep_decls() |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
157 _install_markers(all_dep_decls) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
158 assert isinstance(dexfile.DEXFile.typeIds, _idx_marker) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
159 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
160 srcdir = os.path.dirname(__file__) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
161 srcroot = os.path.join(srcdir, '..', '..') |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
162 testdatapath = os.path.join(srcroot, 'data', 'testdata1.dex') |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
163 dex = dexfile.DEXFile.open(testdatapath) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
164 |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
165 _link_dependencies(dex, all_dep_decls) |
670167ed06bb
test dex_deptracker._link_dependencies()
Thinker K.F. Li <thinker@codemud.net>
parents:
23
diff
changeset
|
166 pass |