* Initial moving * Initial package __init__.py * Use relative imports * Correct imports for tests * Rename main.py -> __main__.py * Use relative imports in main * Refactor cli to be used with setuptools * Add basic setup.py * Fix test_memory import * Fix test_cpu_manual imports * Correct iterpickle import * Use manticore console_script installed by setuptools * Make travis install our package for integration cli tests * Refactor model hooks dynamic import for being in pkg * Correct import * Rm empty line * Fix coverage test paths
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
import unittest
|
|
|
|
from manticore.core.cpu.arm import Armv7RegisterFile as RF
|
|
from manticore.core.cpu.arm import *
|
|
|
|
from capstone.arm import *
|
|
|
|
class Armv7RF(unittest.TestCase):
|
|
def setUp(self):
|
|
self.r = RF()
|
|
|
|
def test_init_state(self):
|
|
self.assertEqual(self.r.read(ARM_REG_R0), 0)
|
|
|
|
def test_write_read(self):
|
|
self.r.write(ARM_REG_R0, 1)
|
|
self.assertEqual(self.r.read(ARM_REG_R0), 1)
|
|
|
|
def test_write_read_sp(self):
|
|
self.r.write(ARM_REG_SP, 1)
|
|
self.assertEqual(self.r.read(ARM_REG_SP), 1)
|
|
|
|
def test_flag_wr(self):
|
|
self.r.write(ARM_REG_APSR_Z, True)
|
|
self.assertEqual(self.r.read(ARM_REG_APSR_Z), True)
|
|
|
|
def test_flag_wr_f(self):
|
|
self.r.write(ARM_REG_APSR_Z, False)
|
|
self.assertEqual(self.r.read(ARM_REG_APSR_Z), False)
|
|
|
|
def test_bad_flag_write(self):
|
|
with self.assertRaises(AssertionError) as e:
|
|
self.r.write(ARM_REG_APSR_Z, 2)
|
|
|
|
def test_reg_name(self):
|
|
self.assertEqual(self.r.reg_name(ARM_REG_R0), 'R0')
|
|
|
|
def test_bad_reg_name(self):
|
|
with self.assertRaises(KeyError):
|
|
nonexistant_id = 9999
|
|
self.r.reg_name(nonexistant_id)
|
|
|
|
def test_reg_id(self):
|
|
self.assertEqual(self.r.reg_id('R0'), ARM_REG_R0)
|
|
|
|
def test_bad_reg_id(self):
|
|
with self.assertRaises(KeyError):
|
|
self.r.reg_id('XXX')
|