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