diff paraspace/tests/dexfile_test.py @ 104:61cef1662035

Redirect types
author Thinker K.F. Li <thinker@codemud.net>
date Thu, 28 Jul 2011 00:06:54 +0800
parents 7fcd555d802b
children 2833c1337dc0
line wrap: on
line diff
--- a/paraspace/tests/dexfile_test.py	Wed Jul 27 12:09:19 2011 +0800
+++ b/paraspace/tests/dexfile_test.py	Thu Jul 28 00:06:54 2011 +0800
@@ -401,3 +401,32 @@
     method_name = dexfile.DEXFile_linked.get_method_name(fakefile_cstr)
     assert method_name == '<init>'
     pass
+
+
+def find_typeid_test():
+    from paraspace.dex_deptracker import prepare_dep_decls
+    
+    _install_dexfile_4_deptracker()
+    
+    all_dep_decls = prepare_dep_decls()
+    
+    srcdir = os.path.dirname(__file__)
+    srcroot = os.path.join(srcdir, '..', '..')
+    
+    fakefile_fn = os.path.join(srcroot, 'data', 'fakefile.dex')
+    fakefile_dex = dexfile.DEXFile.open(fakefile_fn)
+    fakefile_linked = \
+        dexfile.DEXFile_linked. \
+        build_dependencies(fakefile_dex, all_dep_decls)
+    
+    File_typeid = fakefile_linked.find_typeid_name('Ljava/io/File;')
+    assert File_typeid
+
+    File_name = dexfile.DEXFile_linked.get_typeid_name(File_typeid)
+    assert File_name == 'Ljava/io/File;'
+
+    idx = fakefile_linked.get_idx_typeid(File_typeid)
+    assert idx >= 0
+    File_typeid_idx = fakefile_linked.find_typeid_idx(idx)
+    assert File_typeid == File_typeid_idx
+    pass