comparison paraspace/tests/dexfile_test.py @ 124:8e42b2816893

Fixing compute_size() and sizeof() for DEX types. - Prevent compute_size() and sizeof() of depend_* to include size of depend-on.
author Thinker K.F. Li <thinker@codemud.net>
date Sun, 07 Aug 2011 22:07:08 +0800
parents 6e4b6414789b
children ff6f869273b7
comparison
equal deleted inserted replaced
123:78357afb4a9d 124:8e42b2816893
277 assert isinstance(clazz_def.annotationsOffRef.value, 277 assert isinstance(clazz_def.annotationsOffRef.value,
278 dexfile._DEX_AnnotationsDirectoryItem) 278 dexfile._DEX_AnnotationsDirectoryItem)
279 pass 279 pass
280 280
281 281
282 def update_offset_test():
283 from paraspace.dex_deptracker import collect_all_dep_decls
284 from paraspace.dex_deptracker import build_dependencies
285 from paraspace.dex_deptracker import _install_markers
286 from paraspace.dex_deptracker import _patch_dex_type_markers
287 from paraspace.dex_deptracker import update_offset
288
289 _install_dexfile_4_deptracker()
290
291 all_dep_decls = collect_all_dep_decls()
292 _install_markers(all_dep_decls)
293 _patch_dex_type_markers(all_dep_decls)
294
295 srcdir = os.path.dirname(__file__)
296 srcroot = os.path.join(srcdir, '..', '..')
297 testdatapath = os.path.join(srcroot, 'data', 'testdata1.dex')
298 dex = dexfile.DEXFile.open(testdatapath)
299
300 build_dependencies(dex, all_dep_decls)
301
302 offset0 = dex.typeLists.items[0].value.data_offset
303 dex.typeLists.items[0].value.data_offset = 0
304 offset1 = dex.typeLists.items[1].value.data_offset
305 dex.typeLists.items[1].value.data_offset = 0
306
307 update_offset(dex, all_dep_decls)
308
309 assert dex.typeLists.items[0].value.data_offset == offset0
310 assert dex.typeLists.items[1].value.data_offset == offset1
311 pass
312
313
314 def restore_dependencies_test(): 282 def restore_dependencies_test():
315 from paraspace.dex_deptracker import collect_all_dep_decls 283 from paraspace.dex_deptracker import collect_all_dep_decls
316 from paraspace.dex_deptracker import build_dependencies 284 from paraspace.dex_deptracker import build_dependencies
317 from paraspace.dex_deptracker import _install_markers 285 from paraspace.dex_deptracker import _install_markers
318 from paraspace.dex_deptracker import _patch_dex_type_markers 286 from paraspace.dex_deptracker import _patch_dex_type_markers