58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
| """
 | |
| Test some ARM instruction emulation.
 | |
| """
 | |
| 
 | |
| import os, time
 | |
| import unittest2
 | |
| import lldb
 | |
| from lldbtest import *
 | |
| 
 | |
| class ARMEmulationTestCase(TestBase):
 | |
|     
 | |
|     mydir = "arm_emulation"
 | |
| 
 | |
|     def test_thumb_emulations (self):
 | |
|         current_dir = os.getcwd();
 | |
|         test_dir = os.path.join (current_dir, "new-test-files")
 | |
|         files = os.listdir (test_dir)
 | |
|         thumb_files = list()
 | |
|         for f in files:
 | |
|             if '-thumb.dat' in f:
 | |
|                 thumb_files.append (f)
 | |
|                 
 | |
|         for f in thumb_files:
 | |
|             test_file = os.path.join (test_dir, f)
 | |
|             self.run_a_single_test (test_file)
 | |
| 
 | |
| 
 | |
|     def test_arm_emulations (self):
 | |
|         current_dir = os.getcwd();
 | |
|         test_dir = os.path.join (current_dir, "new-test-files")
 | |
|         files = os.listdir (test_dir)
 | |
|         arm_files = list()
 | |
|         for f in files:
 | |
|             if '-arm.dat' in f:
 | |
|                 arm_files.append (f)
 | |
|                 
 | |
|         for f in arm_files:
 | |
|             test_file = os.path.join (test_dir, f)
 | |
|             self.run_a_single_test (test_file)
 | |
| 
 | |
|     def run_a_single_test (self, filename):
 | |
|         insn = lldb.SBInstruction ();
 | |
|         stream = lldb.SBStream ();
 | |
|         success = insn.TestEmulation (stream, filename);
 | |
|         output = stream.GetData();
 | |
|         if self.TraceOn():
 | |
|             print '\nRunning test ' + os.path.basename(filename)
 | |
|             print output
 | |
| 
 | |
|         self.assertTrue (success, 'Emulation test succeeded.')
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     import atexit
 | |
|     lldb.SBDebugger.Initialize()
 | |
|     atexit.register(lambda: lldb.SBDebugger.Terminate())
 | |
|     unittest2.main()
 | |
| 
 |