1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/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)
|