diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/arch/raw.py | 32 | 
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/arch/raw.py b/tests/arch/raw.py new file mode 100644 index 0000000..05d7435 --- /dev/null +++ b/tests/arch/raw.py @@ -0,0 +1,32 @@ +#!/usr/bin/python3-dbg +# -*- coding: utf-8 -*- + + +import pychrysalide +from chrysacase import ChrysalideTestCase +from pychrysalide.analysis import BinContent +from pychrysalide.analysis.contents import MemoryContent +from pychrysalide.arch import vmpa +from pychrysalide.arch.instructions import RawInstruction + + +class TestRawInstruction(ChrysalideTestCase): +    """TestCase for arch.instructions.RawInstruction.""" + +    def testConstructors(self): +        """Build some raw instructions to check their constructors.""" + +        instr = RawInstruction(vmpa(0), BinContent.MemoryDataSize._32_BITS_UNSIGNED, value=123) +        self.assertIsNotNone(instr) + +        data  = b'\x01\x02\x03\x04\x05\x06\x07\x08' +        cnt = MemoryContent(data) + +        instr = RawInstruction(vmpa(0), BinContent.MemoryDataSize._32_BITS_UNSIGNED, +                               content=cnt, count=2, endian=BinContent.SourceEndian.LITTLE) +        self.assertIsNotNone(instr) + +        with self.assertRaisesRegex(Exception, 'Unable to build the object with the given parameters.'): + +            instr = RawInstruction(vmpa(0), BinContent.MemoryDataSize._32_BITS_UNSIGNED, +                                   content=cnt, count=3, endian=BinContent.SourceEndian.LITTLE)  | 
