Mercurial > paraspace
view paraspace/tests/dex_deptracker_test.py @ 123:78357afb4a9d
Test case for restore_dependencies()
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Sat, 06 Aug 2011 19:09:15 +0800 |
parents | |
children | 8e42b2816893 |
line wrap: on
line source
from paraspace.dexfile import DEXFile, DEXFile_linked from paraspace.dex_deptracker import prepare_dep_decls from paraspace.dex_deptracker import restore_dependencies import os def restore_dependencies_test(): from paraspace.dexfile import _DEX_StringId srcdir = os.path.dirname(__file__) srcroot = os.path.join(srcdir, '..', '..') datadir = os.path.join(srcroot, 'data') helloworld_path = os.path.join(datadir, 'helloworld.dex') decls = prepare_dep_decls() hello_dex = DEXFile.open(helloworld_path) strids_size_saved = hello_dex.header.stringIdsSize typeids_off_saved = hello_dex.header.typeIdsOff data_off_saved = hello_dex.header.dataOff map_off_saved = hello_dex.header.mapOff file_sz_saved = hello_dex.header.fileSize for map_item in hello_dex.maps.items.items: print '%d %x' % (map_item.type, map_item.offset) pass hello_linked = DEXFile_linked.build_dependencies(hello_dex, decls) first_strid = hello_linked.stringIds.items[0] strid = _DEX_StringId() strid.stringDataOff = first_strid.stringDataOff hello_linked.stringIds.items.append(strid) restore_dependencies(hello_linked, decls) print file_sz_saved, hello_linked.header.fileSize print map_off_saved, hello_linked.header.mapOff for map_item in hello_linked.maps.items.items: print '%d %x' % (map_item.type, map_item.offset) pass assert hello_linked.header.fileSize == (file_sz_saved + 4) assert hello_linked.header.stringIdsSize == (strids_size_saved + 1) assert hello_linked.header.typeIdsOff == (typeids_off_saved + 4) assert hello_linked.header.dataOff == (data_off_saved + 4) assert hello_linked.header.mapOff == (map_off_saved + 4) pass