Mercurial > paraspace
comparison paraspace/tests/dexfile_test.py @ 43:5cea19126a11
Fix issue of _build_refs()
- _build_refs() does not handle dexfile.cond well when traveling.
- fix it
- Move from ref.get_value() to ref.set_value().
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Sun, 19 Jun 2011 19:36:36 +0800 |
parents | 8ca4a6bc6b79 |
children | 8fc294b06e22 |
comparison
equal
deleted
inserted
replaced
42:8ca4a6bc6b79 | 43:5cea19126a11 |
---|---|
220 build_dependencies(dex, all_dep_decls) | 220 build_dependencies(dex, all_dep_decls) |
221 | 221 |
222 code_item = dex.codeItems.items[0] | 222 code_item = dex.codeItems.items[0] |
223 assert code_item.debugInfoOff.__class__.__name__ == '_DEX_DebugInfoItem' | 223 assert code_item.debugInfoOff.__class__.__name__ == '_DEX_DebugInfoItem' |
224 pass | 224 pass |
225 | |
226 | |
227 def link_dependencies_cond_value_ref_test(): | |
228 from paraspace.dex_deptracker import collect_all_dep_decls | |
229 from paraspace.dex_deptracker import build_dependencies | |
230 from paraspace.dex_deptracker import _install_markers, _idx_marker | |
231 from paraspace.dex_deptracker import _offset_marker, _rel_offset_marker | |
232 from paraspace.dex_deptracker import _patch_dex_type_markers | |
233 | |
234 _install_dexfile_4_deptracker() | |
235 | |
236 all_dep_decls = collect_all_dep_decls() | |
237 _install_markers(all_dep_decls) | |
238 assert isinstance(dexfile.DEXFile.typeIds, _idx_marker) | |
239 _patch_dex_type_markers(all_dep_decls) | |
240 | |
241 srcdir = os.path.dirname(__file__) | |
242 srcroot = os.path.join(srcdir, '..', '..') | |
243 testdatapath = os.path.join(srcroot, 'data', 'testdata1.dex') | |
244 dex = dexfile.DEXFile.open(testdatapath) | |
245 | |
246 build_dependencies(dex, all_dep_decls) | |
247 | |
248 code_item = dex.codeItems.items[0] | |
249 assert code_item.debugInfoOff.__class__.__name__ == '_DEX_DebugInfoItem' | |
250 | |
251 anno_dir_item = dex.annotationsDirectoryItems.items[0] | |
252 assert isinstance(anno_dir_item.classAnnotationsOffRef.value, | |
253 dexfile._DEX_AnnotationSetItem) | |
254 | |
255 anno_dir_item = dex.annotationsDirectoryItems.items[1] | |
256 assert isinstance(anno_dir_item.classAnnotationsOffRef.value, | |
257 dexfile._DEX_AnnotationSetItem) | |
258 pass |