Mercurial > paraspace
diff paraspace/tests/dexfile_test.py @ 27:15cb829ac442
travel_dex_type() recoganizes _dex_type correctly
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Tue, 07 Jun 2011 22:30:29 +0800 |
parents | b30a0d29a62f |
children | 5ce7ca1187b3 |
line wrap: on
line diff
--- a/paraspace/tests/dexfile_test.py Tue Jun 07 15:02:42 2011 +0800 +++ b/paraspace/tests/dexfile_test.py Tue Jun 07 22:30:29 2011 +0800 @@ -131,19 +131,51 @@ def travel_dex_type_test(): + from paraspace.dex_deptracker import collect_all_dep_decls + from paraspace.dex_deptracker import _install_markers from paraspace.dex_deptracker import _travel_dex_type + + _install_dexfile_4_deptracker() attr_infos = [attr_info for attr_info in \ _travel_dex_type(dexfile._DEX_AnnotationsDirectoryItem, '_DEX_AnnotationsDirectoryItem') ] - print attr_infos - assert len(attr_infos) == 10 + attr_names = set([attr_info[1] + for attr_info in attr_infos]) + print attr_names + assert '_DEX_AnnotationsDirectoryItem.classAnnotationsOff' in attr_names + assert '_DEX_AnnotationsDirectoryItem.fieldsSize' in attr_names + assert '_DEX_AnnotationsDirectoryItem.methodsSize' in attr_names + assert '_DEX_AnnotationsDirectoryItem.parametersSize' in attr_names + assert '_DEX_AnnotationsDirectoryItem.fieldAnnotationsItems' in attr_names + assert '_DEX_AnnotationsDirectoryItem.fieldAnnotationsItems.items.*' in attr_names + assert '_DEX_AnnotationsDirectoryItem.methodAnnotationsItems' in attr_names + assert '_DEX_AnnotationsDirectoryItem.parameterAnnotationsItems' in attr_names + + all_dep_decls = collect_all_dep_decls() + _install_markers(all_dep_decls) + + attr_infos = [attr_info + for attr_info in \ + _travel_dex_type(dexfile._DEX_AnnotationsDirectoryItem, + '_DEX_AnnotationsDirectoryItem') + ] + attr_names = set([attr_info[1] + for attr_info in attr_infos]) + assert '_DEX_AnnotationsDirectoryItem.classAnnotationsOff' in attr_names + assert '_DEX_AnnotationsDirectoryItem.fieldsSize' in attr_names + assert '_DEX_AnnotationsDirectoryItem.methodsSize' in attr_names + assert '_DEX_AnnotationsDirectoryItem.parametersSize' in attr_names + assert '_DEX_AnnotationsDirectoryItem.fieldAnnotationsItems' in attr_names + assert '_DEX_AnnotationsDirectoryItem.fieldAnnotationsItems.items.*' in attr_names + assert '_DEX_AnnotationsDirectoryItem.methodAnnotationsItems' in attr_names + assert '_DEX_AnnotationsDirectoryItem.parameterAnnotationsItems' in attr_names pass -def install_markers_test(): +def _install_markers_test(): from paraspace.dex_deptracker import collect_all_dep_decls from paraspace.dex_deptracker import _install_markers, _idx_marker from paraspace.dex_deptracker import _offset_marker, _rel_offset_marker @@ -159,13 +191,14 @@ assert dexfile._DEX_TypeList.__class__ == _offset_marker _patch_dex_type_markers(all_dep_decls) + assert isinstance(dexfile._DEX_TypeList, _offset_marker) print all_dep_decls.keys() print dexfile.DEXFile.typeLists.child_type assert isinstance(dexfile.DEXFile.typeLists.child_type, _offset_marker) pass -def link_dependencies_test(): +def _link_dependencies_test(): from paraspace.dex_deptracker import collect_all_dep_decls from paraspace.dex_deptracker import _link_dependencies from paraspace.dex_deptracker import _install_markers, _idx_marker