diff options
Diffstat (limited to 'tests/format/program.py')
-rw-r--r-- | tests/format/program.py | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/tests/format/program.py b/tests/format/program.py new file mode 100644 index 0000000..7027cdf --- /dev/null +++ b/tests/format/program.py @@ -0,0 +1,89 @@ + +from chrysacase import ChrysalideTestCase +from pychrysalide import SourceEndian +from pychrysalide.analysis.contents import MemoryContent +#from pychrysalide.arch import vmpa, mrange +from pychrysalide.format import ProgramFormat +#from pychrysalide.format import BinSymbol + + +# class SimpleFormat(BinFormat): +# pass + + +class TestProgramFormat(ChrysalideTestCase): + """TestCase for format.ProgramFormat.""" + + + def testCustomInstance(self): + """Validate a full custom ProgramFormat implementation.""" + + data = b'\x00\x00\x00\xef' + cnt = MemoryContent(data) + + + class CustomFormat(ProgramFormat): + + def _get_endianness(self): + return SourceEndian.BIG + + cf = CustomFormat(cnt) + + self.assertEqual(cf.endianness, SourceEndian.BIG) + + + class EmptyCustomFormat(ProgramFormat): + pass + + cf = EmptyCustomFormat(cnt) + + self.assertEqual(cf.endianness, SourceEndian.LITTLE) + + + + + + + # def create_fake_symbol(self, index): + # saddr = vmpa(index * 0x10, vmpa.VMPA_NO_VIRTUAL) + # srange = mrange(saddr, 0x3) + # symbol = BinSymbol(BinSymbol.STP_ENTRY_POINT, srange) + # return symbol + + + # def testBasicSymbolOperations(self): + # """Deal with the basic operations related to symbols in a binary format.""" + + # sf = SimpleFormat() + + # self.assertTrue(len(list(sf.symbols)) == 0) + + # symbols = [ self.create_fake_symbol(i) for i in range(4) ] + # s0, s1, s2, s3 = symbols + + # for s in symbols: + # sf.add_symbol(s) + + # self.assertTrue(len(list(sf.symbols)) == len(symbols)) + + # sf.remove_symbol(s2) + + # self.assertTrue(list(sf.symbols) == [s0, s1, s3]) + + + # def testBadParamsForAdding(self): + # """Check if bad parameters fail for adding a new symbol.""" + + # sf = SimpleFormat() + + # with self.assertRaises(TypeError): + # sf.add_symbol('s') + + + # def testWrongRemoval(self): + # """Try to remove a wrong symbol from a format.""" + + # sf = SimpleFormat() + + # s23 = self.create_fake_symbol(23) + # sf.remove_symbol(s23) |