summaryrefslogtreecommitdiff
path: root/tests/format
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2020-05-18 21:50:26 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2020-05-18 21:50:26 (GMT)
commit041056d04032d41a5c092c62cbfd67b199094991 (patch)
treea294afa55e307fe68617f80af3e9999ad7fa28b6 /tests/format
parent4f18f051936f633473c365d4c91ef7e77fa7feee (diff)
Updated the Python API for string symbols.
Diffstat (limited to 'tests/format')
-rw-r--r--tests/format/strsym.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/format/strsym.py b/tests/format/strsym.py
new file mode 100644
index 0000000..ba1d92f
--- /dev/null
+++ b/tests/format/strsym.py
@@ -0,0 +1,33 @@
+
+from chrysacase import ChrysalideTestCase
+from pychrysalide.analysis import BinContent
+from pychrysalide.analysis.contents import MemoryContent
+from pychrysalide.arch import vmpa, mrange
+from pychrysalide.format import FlatFormat, StrSymbol
+
+
+class TestBinarySymbols(ChrysalideTestCase):
+ """TestCase for format.StrSymbol."""
+
+ def testStringSymbolConstructors(self):
+ """Build string symbols."""
+
+ data = b'ABCD1234'
+
+ cnt = MemoryContent(data)
+ fmt = FlatFormat(cnt, 'xxx', BinContent.SourceEndian.LITTLE)
+
+ saddr = vmpa(0x0, vmpa.VmpaSpecialValue.NO_VIRTUAL)
+ srange = mrange(saddr, 0x5)
+
+ symbol = StrSymbol(StrSymbol.StringEncodingType.GUESS, fmt, srange)
+
+ self.assertEqual(symbol.raw, b'ABCD1')
+ self.assertEqual(symbol.utf8, 'ABCD1')
+ self.assertEqual(symbol.encoding, StrSymbol.StringEncodingType.ASCII)
+
+ symbol = StrSymbol(StrSymbol.StringEncodingType.GUESS, string='abcdef', addr=saddr)
+
+ self.assertEqual(symbol.raw, b'abcdef')
+ self.assertEqual(symbol.utf8, 'abcdef')
+ self.assertEqual(symbol.encoding, StrSymbol.StringEncodingType.ASCII)