manticore/test/test_armv7rf.py
Mark Mossberg 05f5fcf045 Port to real python package structure (#6)
* 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
2017-02-15 12:32:08 -05:00

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')