#!/usr/bin/python3-dbg # -*- coding: utf-8 -*- # Tests pour valider la gestion des symboles from chrysacase import ChrysalideTestCase from pychrysalide.arch import vmpa, mrange from pychrysalide.format import BinSymbol class TestBinarySymbols(ChrysalideTestCase): """TestCase for format.BinSymbol.""" def testSymbolDefaultStatus(self): """Validate the default status for symbols.""" saddr = vmpa(0x10, vmpa.VMPA_NO_VIRTUAL) srange = mrange(saddr, 0x3) symbol = BinSymbol(BinSymbol.STP_ENTRY_POINT, srange) self.assertEqual(symbol.status, BinSymbol.SymbolStatus.INTERNAL) self.assertEqual(str(symbol.status), 'SymbolStatus.INTERNAL') def testSymbolComparison(self): """Compare symbols and check the result.""" saddr = vmpa(0x100, vmpa.VMPA_NO_VIRTUAL) srange = mrange(saddr, 0x3) symbol0 = BinSymbol(BinSymbol.STP_ENTRY_POINT, srange) saddr = vmpa(0x10, vmpa.VMPA_NO_VIRTUAL) srange = mrange(saddr, 0x3) symbol1 = BinSymbol(BinSymbol.STP_ENTRY_POINT, srange) saddr = vmpa(0x100, vmpa.VMPA_NO_VIRTUAL) srange = mrange(saddr, 0x30) symbol2 = BinSymbol(BinSymbol.STP_ENTRY_POINT, srange) self.assertTrue(symbol0 == symbol0) self.assertTrue(symbol0 > symbol1) self.assertTrue(symbol1 < symbol2) self.assertTrue(symbol0 == symbol2)