summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2021-02-03 21:14:10 +0100
committer angelosa <lordkale4@gmail.com>2021-02-03 21:14:10 +0100
commitb8d21c8ea30d410d1a8c4796298c306837c6f55e (patch)
treeaa20f28045dab6a63f9e8fe076292aaa2ff8a39e
parent23fd8717102153bc13f90658f94d8df0ed9bee3e (diff)
Make some reorganization to assets folder, add romcmp tests
-rw-r--r--regtests/assets/romcmp/bin/fill00.binbin0 -> 4 bytes
-rw-r--r--regtests/assets/romcmp/bin/fill01.binbin0 -> 4 bytes
-rw-r--r--regtests/assets/romcmp/bin/fill10.binbin0 -> 4 bytes
-rw-r--r--regtests/assets/romcmp/bin/fill11.bin1
-rw-r--r--regtests/assets/romcmp/hash.txt9
-rw-r--r--regtests/assets/romcmp/normal.txt5
-rw-r--r--regtests/assets/romcmp/slower.txt183
-rw-r--r--regtests/assets/unidasm/asm/h6280.asm (renamed from regtests/assets/asm/h6280.asm)0
-rw-r--r--regtests/assets/unidasm/asm/m6502.asm (renamed from regtests/assets/asm/m6502.asm)0
-rw-r--r--regtests/assets/unidasm/asm/z80.asm (renamed from regtests/assets/asm/z80.asm)0
-rw-r--r--regtests/assets/unidasm/bin/h6280.bin (renamed from regtests/assets/bin/h6280.bin)bin10 -> 10 bytes
-rw-r--r--regtests/assets/unidasm/bin/m6502.bin (renamed from regtests/assets/bin/m6502.bin)bin8 -> 8 bytes
-rw-r--r--regtests/assets/unidasm/bin/z80.bin (renamed from regtests/assets/bin/z80.bin)bin9 -> 9 bytes
-rw-r--r--regtests/tool_tester/test_tools.py3
-rw-r--r--regtests/tool_tester/tool_tester/_selfexe.py8
-rw-r--r--regtests/tool_tester/tool_tester/romcmp.py31
-rw-r--r--regtests/tool_tester/tool_tester/unidasm.py20
17 files changed, 245 insertions, 15 deletions
diff --git a/regtests/assets/romcmp/bin/fill00.bin b/regtests/assets/romcmp/bin/fill00.bin
new file mode 100644
index 00000000000..593f4708db8
--- /dev/null
+++ b/regtests/assets/romcmp/bin/fill00.bin
Binary files differ
diff --git a/regtests/assets/romcmp/bin/fill01.bin b/regtests/assets/romcmp/bin/fill01.bin
new file mode 100644
index 00000000000..0b7cb3e94d8
--- /dev/null
+++ b/regtests/assets/romcmp/bin/fill01.bin
Binary files differ
diff --git a/regtests/assets/romcmp/bin/fill10.bin b/regtests/assets/romcmp/bin/fill10.bin
new file mode 100644
index 00000000000..8b5b45ff361
--- /dev/null
+++ b/regtests/assets/romcmp/bin/fill10.bin
Binary files differ
diff --git a/regtests/assets/romcmp/bin/fill11.bin b/regtests/assets/romcmp/bin/fill11.bin
new file mode 100644
index 00000000000..7bde8641b93
--- /dev/null
+++ b/regtests/assets/romcmp/bin/fill11.bin
@@ -0,0 +1 @@
+ÿÿÿÿ \ No newline at end of file
diff --git a/regtests/assets/romcmp/hash.txt b/regtests/assets/romcmp/hash.txt
new file mode 100644
index 00000000000..c569edefc4e
--- /dev/null
+++ b/regtests/assets/romcmp/hash.txt
@@ -0,0 +1,9 @@
+4 files
+fill00.bin [0x4] CRC(2144df1c) SHA1(9069ca78e7450a285173431b3e52c5c25299e473) SUM(0000)
+ FIXED BITS (00000000)
+fill01.bin [0x4] CRC(b2de047c) SHA1(c2a9054a363999348c1203115ea0eb9b07fd1e2d) SUM(01fe)
+ FIXED BITS (0000000011111111)
+fill10.bin [0x4] CRC(6c65249f) SHA1(5caed74cc67e9f33af94aa56d7cb1badb08f1942) SUM(01fe)
+ FIXED BITS (1111111100000000)
+fill11.bin [0x4] CRC(ffffffff) SHA1(d9be6524a5f5047db5866813acf3277892a7a30a) SUM(03fc)
+ FIXED BITS (11111111)
diff --git a/regtests/assets/romcmp/normal.txt b/regtests/assets/romcmp/normal.txt
new file mode 100644
index 00000000000..ca20e66b8da
--- /dev/null
+++ b/regtests/assets/romcmp/normal.txt
@@ -0,0 +1,5 @@
+4 files
+fill00.bin FIXED BITS (00000000)
+fill01.bin FIXED BITS (0000000011111111)
+fill10.bin FIXED BITS (1111111100000000)
+fill11.bin FIXED BITS (11111111)
diff --git a/regtests/assets/romcmp/slower.txt b/regtests/assets/romcmp/slower.txt
new file mode 100644
index 00000000000..01630e01562
--- /dev/null
+++ b/regtests/assets/romcmp/slower.txt
@@ -0,0 +1,183 @@
+4 files
+fill00.bin FIXED BITS (00000000)
+fill01.bin FIXED BITS (0000000011111111)
+fill10.bin FIXED BITS (1111111100000000)
+fill11.bin FIXED BITS (11111111)
+fill00.bin [1/2] fill01.bin [even] IDENTICAL
+fill00.bin [2/2] fill01.bin [even] IDENTICAL
+fill00.bin [1/4] fill01.bin [1/4] IDENTICAL
+fill00.bin [1/4] fill01.bin [3/4] IDENTICAL
+fill00.bin [1/4] fill01.bin [even 1/2] IDENTICAL
+fill00.bin [1/4] fill01.bin [even 2/2] IDENTICAL
+fill00.bin [2/4] fill01.bin [1/4] IDENTICAL
+fill00.bin [2/4] fill01.bin [3/4] IDENTICAL
+fill00.bin [2/4] fill01.bin [even 1/2] IDENTICAL
+fill00.bin [2/4] fill01.bin [even 2/2] IDENTICAL
+fill00.bin [3/4] fill01.bin [1/4] IDENTICAL
+fill00.bin [3/4] fill01.bin [3/4] IDENTICAL
+fill00.bin [3/4] fill01.bin [even 1/2] IDENTICAL
+fill00.bin [3/4] fill01.bin [even 2/2] IDENTICAL
+fill00.bin [4/4] fill01.bin [1/4] IDENTICAL
+fill00.bin [4/4] fill01.bin [3/4] IDENTICAL
+fill00.bin [4/4] fill01.bin [even 1/2] IDENTICAL
+fill00.bin [4/4] fill01.bin [even 2/2] IDENTICAL
+fill00.bin [even] fill01.bin [even] IDENTICAL
+fill00.bin [odd] fill01.bin [even] IDENTICAL
+fill00.bin [even 1/2] fill01.bin [1/4] IDENTICAL
+fill00.bin [even 1/2] fill01.bin [3/4] IDENTICAL
+fill00.bin [even 1/2] fill01.bin [even 1/2] IDENTICAL
+fill00.bin [even 1/2] fill01.bin [even 2/2] IDENTICAL
+fill00.bin [odd 1/2] fill01.bin [1/4] IDENTICAL
+fill00.bin [odd 1/2] fill01.bin [3/4] IDENTICAL
+fill00.bin [odd 1/2] fill01.bin [even 1/2] IDENTICAL
+fill00.bin [odd 1/2] fill01.bin [even 2/2] IDENTICAL
+fill00.bin [even 2/2] fill01.bin [1/4] IDENTICAL
+fill00.bin [even 2/2] fill01.bin [3/4] IDENTICAL
+fill00.bin [even 2/2] fill01.bin [even 1/2] IDENTICAL
+fill00.bin [even 2/2] fill01.bin [even 2/2] IDENTICAL
+fill00.bin [odd 2/2] fill01.bin [1/4] IDENTICAL
+fill00.bin [odd 2/2] fill01.bin [3/4] IDENTICAL
+fill00.bin [odd 2/2] fill01.bin [even 1/2] IDENTICAL
+fill00.bin [odd 2/2] fill01.bin [even 2/2] IDENTICAL
+fill00.bin [1/2] fill10.bin [odd] IDENTICAL
+fill00.bin [2/2] fill10.bin [odd] IDENTICAL
+fill00.bin [1/4] fill10.bin [2/4] IDENTICAL
+fill00.bin [1/4] fill10.bin [4/4] IDENTICAL
+fill00.bin [1/4] fill10.bin [odd 1/2] IDENTICAL
+fill00.bin [1/4] fill10.bin [odd 2/2] IDENTICAL
+fill00.bin [2/4] fill10.bin [2/4] IDENTICAL
+fill00.bin [2/4] fill10.bin [4/4] IDENTICAL
+fill00.bin [2/4] fill10.bin [odd 1/2] IDENTICAL
+fill00.bin [2/4] fill10.bin [odd 2/2] IDENTICAL
+fill00.bin [3/4] fill10.bin [2/4] IDENTICAL
+fill00.bin [3/4] fill10.bin [4/4] IDENTICAL
+fill00.bin [3/4] fill10.bin [odd 1/2] IDENTICAL
+fill00.bin [3/4] fill10.bin [odd 2/2] IDENTICAL
+fill00.bin [4/4] fill10.bin [2/4] IDENTICAL
+fill00.bin [4/4] fill10.bin [4/4] IDENTICAL
+fill00.bin [4/4] fill10.bin [odd 1/2] IDENTICAL
+fill00.bin [4/4] fill10.bin [odd 2/2] IDENTICAL
+fill00.bin [even] fill10.bin [odd] IDENTICAL
+fill00.bin [odd] fill10.bin [odd] IDENTICAL
+fill00.bin [even 1/2] fill10.bin [2/4] IDENTICAL
+fill00.bin [even 1/2] fill10.bin [4/4] IDENTICAL
+fill00.bin [even 1/2] fill10.bin [odd 1/2] IDENTICAL
+fill00.bin [even 1/2] fill10.bin [odd 2/2] IDENTICAL
+fill00.bin [odd 1/2] fill10.bin [2/4] IDENTICAL
+fill00.bin [odd 1/2] fill10.bin [4/4] IDENTICAL
+fill00.bin [odd 1/2] fill10.bin [odd 1/2] IDENTICAL
+fill00.bin [odd 1/2] fill10.bin [odd 2/2] IDENTICAL
+fill00.bin [even 2/2] fill10.bin [2/4] IDENTICAL
+fill00.bin [even 2/2] fill10.bin [4/4] IDENTICAL
+fill00.bin [even 2/2] fill10.bin [odd 1/2] IDENTICAL
+fill00.bin [even 2/2] fill10.bin [odd 2/2] IDENTICAL
+fill00.bin [odd 2/2] fill10.bin [2/4] IDENTICAL
+fill00.bin [odd 2/2] fill10.bin [4/4] IDENTICAL
+fill00.bin [odd 2/2] fill10.bin [odd 1/2] IDENTICAL
+fill00.bin [odd 2/2] fill10.bin [odd 2/2] IDENTICAL
+fill01.bin [1/4] fill10.bin [2/4] IDENTICAL
+fill01.bin [1/4] fill10.bin [4/4] IDENTICAL
+fill01.bin [1/4] fill10.bin [odd 1/2] IDENTICAL
+fill01.bin [1/4] fill10.bin [odd 2/2] IDENTICAL
+fill01.bin [2/4] fill10.bin [1/4] IDENTICAL
+fill01.bin [2/4] fill10.bin [3/4] IDENTICAL
+fill01.bin [2/4] fill10.bin [even 1/2] IDENTICAL
+fill01.bin [2/4] fill10.bin [even 2/2] IDENTICAL
+fill01.bin [3/4] fill10.bin [2/4] IDENTICAL
+fill01.bin [3/4] fill10.bin [4/4] IDENTICAL
+fill01.bin [3/4] fill10.bin [odd 1/2] IDENTICAL
+fill01.bin [3/4] fill10.bin [odd 2/2] IDENTICAL
+fill01.bin [4/4] fill10.bin [1/4] IDENTICAL
+fill01.bin [4/4] fill10.bin [3/4] IDENTICAL
+fill01.bin [4/4] fill10.bin [even 1/2] IDENTICAL
+fill01.bin [4/4] fill10.bin [even 2/2] IDENTICAL
+fill01.bin [even] fill10.bin [odd] IDENTICAL
+fill01.bin [odd] fill10.bin [even] IDENTICAL
+fill01.bin [even 1/2] fill10.bin [2/4] IDENTICAL
+fill01.bin [even 1/2] fill10.bin [4/4] IDENTICAL
+fill01.bin [even 1/2] fill10.bin [odd 1/2] IDENTICAL
+fill01.bin [even 1/2] fill10.bin [odd 2/2] IDENTICAL
+fill01.bin [odd 1/2] fill10.bin [1/4] IDENTICAL
+fill01.bin [odd 1/2] fill10.bin [3/4] IDENTICAL
+fill01.bin [odd 1/2] fill10.bin [even 1/2] IDENTICAL
+fill01.bin [odd 1/2] fill10.bin [even 2/2] IDENTICAL
+fill01.bin [even 2/2] fill10.bin [2/4] IDENTICAL
+fill01.bin [even 2/2] fill10.bin [4/4] IDENTICAL
+fill01.bin [even 2/2] fill10.bin [odd 1/2] IDENTICAL
+fill01.bin [even 2/2] fill10.bin [odd 2/2] IDENTICAL
+fill01.bin [odd 2/2] fill10.bin [1/4] IDENTICAL
+fill01.bin [odd 2/2] fill10.bin [3/4] IDENTICAL
+fill01.bin [odd 2/2] fill10.bin [even 1/2] IDENTICAL
+fill01.bin [odd 2/2] fill10.bin [even 2/2] IDENTICAL
+fill01.bin [2/4] fill11.bin [1/4] IDENTICAL
+fill01.bin [2/4] fill11.bin [2/4] IDENTICAL
+fill01.bin [2/4] fill11.bin [3/4] IDENTICAL
+fill01.bin [2/4] fill11.bin [4/4] IDENTICAL
+fill01.bin [2/4] fill11.bin [even 1/2] IDENTICAL
+fill01.bin [2/4] fill11.bin [odd 1/2] IDENTICAL
+fill01.bin [2/4] fill11.bin [even 2/2] IDENTICAL
+fill01.bin [2/4] fill11.bin [odd 2/2] IDENTICAL
+fill01.bin [4/4] fill11.bin [1/4] IDENTICAL
+fill01.bin [4/4] fill11.bin [2/4] IDENTICAL
+fill01.bin [4/4] fill11.bin [3/4] IDENTICAL
+fill01.bin [4/4] fill11.bin [4/4] IDENTICAL
+fill01.bin [4/4] fill11.bin [even 1/2] IDENTICAL
+fill01.bin [4/4] fill11.bin [odd 1/2] IDENTICAL
+fill01.bin [4/4] fill11.bin [even 2/2] IDENTICAL
+fill01.bin [4/4] fill11.bin [odd 2/2] IDENTICAL
+fill01.bin [odd] fill11.bin [1/2] IDENTICAL
+fill01.bin [odd] fill11.bin [2/2] IDENTICAL
+fill01.bin [odd] fill11.bin [even] IDENTICAL
+fill01.bin [odd] fill11.bin [odd] IDENTICAL
+fill01.bin [odd 1/2] fill11.bin [1/4] IDENTICAL
+fill01.bin [odd 1/2] fill11.bin [2/4] IDENTICAL
+fill01.bin [odd 1/2] fill11.bin [3/4] IDENTICAL
+fill01.bin [odd 1/2] fill11.bin [4/4] IDENTICAL
+fill01.bin [odd 1/2] fill11.bin [even 1/2] IDENTICAL
+fill01.bin [odd 1/2] fill11.bin [odd 1/2] IDENTICAL
+fill01.bin [odd 1/2] fill11.bin [even 2/2] IDENTICAL
+fill01.bin [odd 1/2] fill11.bin [odd 2/2] IDENTICAL
+fill01.bin [odd 2/2] fill11.bin [1/4] IDENTICAL
+fill01.bin [odd 2/2] fill11.bin [2/4] IDENTICAL
+fill01.bin [odd 2/2] fill11.bin [3/4] IDENTICAL
+fill01.bin [odd 2/2] fill11.bin [4/4] IDENTICAL
+fill01.bin [odd 2/2] fill11.bin [even 1/2] IDENTICAL
+fill01.bin [odd 2/2] fill11.bin [odd 1/2] IDENTICAL
+fill01.bin [odd 2/2] fill11.bin [even 2/2] IDENTICAL
+fill01.bin [odd 2/2] fill11.bin [odd 2/2] IDENTICAL
+fill10.bin [1/4] fill11.bin [1/4] IDENTICAL
+fill10.bin [1/4] fill11.bin [2/4] IDENTICAL
+fill10.bin [1/4] fill11.bin [3/4] IDENTICAL
+fill10.bin [1/4] fill11.bin [4/4] IDENTICAL
+fill10.bin [1/4] fill11.bin [even 1/2] IDENTICAL
+fill10.bin [1/4] fill11.bin [odd 1/2] IDENTICAL
+fill10.bin [1/4] fill11.bin [even 2/2] IDENTICAL
+fill10.bin [1/4] fill11.bin [odd 2/2] IDENTICAL
+fill10.bin [3/4] fill11.bin [1/4] IDENTICAL
+fill10.bin [3/4] fill11.bin [2/4] IDENTICAL
+fill10.bin [3/4] fill11.bin [3/4] IDENTICAL
+fill10.bin [3/4] fill11.bin [4/4] IDENTICAL
+fill10.bin [3/4] fill11.bin [even 1/2] IDENTICAL
+fill10.bin [3/4] fill11.bin [odd 1/2] IDENTICAL
+fill10.bin [3/4] fill11.bin [even 2/2] IDENTICAL
+fill10.bin [3/4] fill11.bin [odd 2/2] IDENTICAL
+fill10.bin [even] fill11.bin [1/2] IDENTICAL
+fill10.bin [even] fill11.bin [2/2] IDENTICAL
+fill10.bin [even] fill11.bin [even] IDENTICAL
+fill10.bin [even] fill11.bin [odd] IDENTICAL
+fill10.bin [even 1/2] fill11.bin [1/4] IDENTICAL
+fill10.bin [even 1/2] fill11.bin [2/4] IDENTICAL
+fill10.bin [even 1/2] fill11.bin [3/4] IDENTICAL
+fill10.bin [even 1/2] fill11.bin [4/4] IDENTICAL
+fill10.bin [even 1/2] fill11.bin [even 1/2] IDENTICAL
+fill10.bin [even 1/2] fill11.bin [odd 1/2] IDENTICAL
+fill10.bin [even 1/2] fill11.bin [even 2/2] IDENTICAL
+fill10.bin [even 1/2] fill11.bin [odd 2/2] IDENTICAL
+fill10.bin [even 2/2] fill11.bin [1/4] IDENTICAL
+fill10.bin [even 2/2] fill11.bin [2/4] IDENTICAL
+fill10.bin [even 2/2] fill11.bin [3/4] IDENTICAL
+fill10.bin [even 2/2] fill11.bin [4/4] IDENTICAL
+fill10.bin [even 2/2] fill11.bin [even 1/2] IDENTICAL
+fill10.bin [even 2/2] fill11.bin [odd 1/2] IDENTICAL
+fill10.bin [even 2/2] fill11.bin [even 2/2] IDENTICAL
+fill10.bin [even 2/2] fill11.bin [odd 2/2] IDENTICAL
diff --git a/regtests/assets/asm/h6280.asm b/regtests/assets/unidasm/asm/h6280.asm
index 73c34eff41a..73c34eff41a 100644
--- a/regtests/assets/asm/h6280.asm
+++ b/regtests/assets/unidasm/asm/h6280.asm
diff --git a/regtests/assets/asm/m6502.asm b/regtests/assets/unidasm/asm/m6502.asm
index d578baa7df1..d578baa7df1 100644
--- a/regtests/assets/asm/m6502.asm
+++ b/regtests/assets/unidasm/asm/m6502.asm
diff --git a/regtests/assets/asm/z80.asm b/regtests/assets/unidasm/asm/z80.asm
index e57d2dedf37..e57d2dedf37 100644
--- a/regtests/assets/asm/z80.asm
+++ b/regtests/assets/unidasm/asm/z80.asm
diff --git a/regtests/assets/bin/h6280.bin b/regtests/assets/unidasm/bin/h6280.bin
index 781727f523f..781727f523f 100644
--- a/regtests/assets/bin/h6280.bin
+++ b/regtests/assets/unidasm/bin/h6280.bin
Binary files differ
diff --git a/regtests/assets/bin/m6502.bin b/regtests/assets/unidasm/bin/m6502.bin
index 853a3d957d3..853a3d957d3 100644
--- a/regtests/assets/bin/m6502.bin
+++ b/regtests/assets/unidasm/bin/m6502.bin
Binary files differ
diff --git a/regtests/assets/bin/z80.bin b/regtests/assets/unidasm/bin/z80.bin
index 824587e3465..824587e3465 100644
--- a/regtests/assets/bin/z80.bin
+++ b/regtests/assets/unidasm/bin/z80.bin
Binary files differ
diff --git a/regtests/tool_tester/test_tools.py b/regtests/tool_tester/test_tools.py
index cdfc8e1e1f7..5ae0a1c1659 100644
--- a/regtests/tool_tester/test_tools.py
+++ b/regtests/tool_tester/test_tools.py
@@ -7,6 +7,7 @@ import sys
from os.path import join, dirname, realpath
import logging
from tool_tester.pngcmp import PngCmpTests
+from tool_tester.romcmp import RomCmpTests
from tool_tester.unidasm import UnidasmTests
if __name__ == "__main__":
@@ -26,7 +27,7 @@ if __name__ == "__main__":
chained_results = []
# TODO: point to $(regtests)\assets, configure if necessary
assets_folder = join(dirname(dirname(realpath(__file__))), "assets")
- for test_cls in [PngCmpTests, UnidasmTests]:
+ for test_cls in [PngCmpTests, RomCmpTests, UnidasmTests]:
test_fn = test_cls(assets_folder)
logging.info("Start test suite: %s", test_fn.identifier)
chained_results.append(test_fn.execute_tests(test_fn.compose_tests()))
diff --git a/regtests/tool_tester/tool_tester/_selfexe.py b/regtests/tool_tester/tool_tester/_selfexe.py
index d80a9262100..28f9c660616 100644
--- a/regtests/tool_tester/tool_tester/_selfexe.py
+++ b/regtests/tool_tester/tool_tester/_selfexe.py
@@ -47,9 +47,9 @@ class SelfExeTests(ABC):
"""
test_result = True
for test_handle, test_params in test_pool.items():
- logging.debug("Preparing %s-%s test ", self.identifier, test_handle)
+ __test_name = f"{self.identifier}-{test_handle}"
+ logging.debug("Preparing %s test ", __test_name)
try:
- logging.debug("Launching test %s", test_handle)
__launch_fullpath = [self._exec_path] + self._subprocess_args(test_handle, test_params)
logging.debug(__launch_fullpath)
launch_result = subprocess.run(
@@ -62,9 +62,9 @@ class SelfExeTests(ABC):
text=True,
shell=False
)
- logging.debug("Subprocess test %s pass", test_handle)
+ logging.debug("Subprocess test %s pass", __test_name)
self._assert_test_result(launch_result, test_handle, test_params)
- logging.info("Test %s passed", test_handle)
+ logging.info("Test %s passed", __test_name)
except (subprocess.CalledProcessError, AssertionError) as ex:
logging.exception(str(ex))
test_result = False
diff --git a/regtests/tool_tester/tool_tester/romcmp.py b/regtests/tool_tester/tool_tester/romcmp.py
new file mode 100644
index 00000000000..97971b69d30
--- /dev/null
+++ b/regtests/tool_tester/tool_tester/romcmp.py
@@ -0,0 +1,31 @@
+import os
+from subprocess import CompletedProcess
+from dataclasses import dataclass
+import logging
+from tool_tester._selfexe import SelfExeTests
+import difflib
+
+class RomCmpTests(SelfExeTests):
+ def __init__(self, assets_path: str):
+ super().__init__("romcmp", assets_path)
+ self._logs_folder = os.path.join(assets_path, self.identifier)
+ self._bin_test_folder = os.path.join(assets_path, self.identifier, "bin")
+ logging.debug(self._bin_test_folder)
+
+ def _collect_tests(self):
+ return {
+ "normal": [self._bin_test_folder],
+ "slower": ["-d", self._bin_test_folder],
+ "hash": ["-h", self._bin_test_folder]
+ }
+
+ def _subprocess_args(self, test_handle, test_params):
+ return test_params
+
+ def _assert_test_result(self, launch_result: CompletedProcess, test_handle, test_params):
+ assert launch_result.returncode == 0
+ # it prints a percentage to stderr
+ #assert launch_result.stderr == "", launch_result.stderr
+ with open(os.path.join(self._logs_folder,f"{test_handle}.txt"), "r", encoding="utf-8", newline="\n") as txt_h:
+ __expected_stdout = txt_h.read()
+ assert launch_result.stdout == __expected_stdout, launch_result.stdout
diff --git a/regtests/tool_tester/tool_tester/unidasm.py b/regtests/tool_tester/tool_tester/unidasm.py
index 2503786aa5c..432e8880f1f 100644
--- a/regtests/tool_tester/tool_tester/unidasm.py
+++ b/regtests/tool_tester/tool_tester/unidasm.py
@@ -9,7 +9,7 @@ import logging
from tool_tester._selfexe import SelfExeTests
@dataclass(frozen=True)
-class UnidasmMapper:
+class UnidasmFileMapper:
asm_filename: str
bin_filename: str
@@ -22,15 +22,15 @@ class UnidasmMapper:
class UnidasmTests(SelfExeTests):
"""Unidasm test collector
- For unidasm the strategy is to point at the static folder and
- derive unit tests based off what's in static directory itself.
+ For unidasm the strategy is to point at the asm/asm_bin folder and
+ derive unit tests from there.
To compose a new test for a given arch:
- 1. craft a new binary file and save it in static subfolder, name it <test_arch>.bin,
+ 1. craft a new binary file and save it in asm_bin subfolder, name it <test_arch>.bin,
where <test_arch> is the name as it is displayed by running unidasm.exe
with no additional params. Keep it simple & short, more sofisticated programs aren't really
the scope of this (we're just testing if the arch disassembles here).
- 2. run unidasm $(regtests)/static/<test_arch>.bin -arch <test_arch> > $(regtests)/static/<test_arch>.asm
+ 2. run unidasm $(regtests)/(asm_bin)/<test_arch>.bin -arch <test_arch> > $(regtests)/(asm)/<test_arch>.asm
Note: on windows the resulting asm file newlines must be converted to LF with this
(otherwise you get a diff error later on).
3. now run make tests or python $(modulepath)/test_tools.py and check if the new test gets captured.
@@ -41,21 +41,21 @@ class UnidasmTests(SelfExeTests):
def __init__(self, assets_path: str):
super().__init__("unidasm", assets_path)
- self._asm_test_folder = os.path.join(assets_path, "asm")
- self._bin_test_folder = os.path.join(assets_path, "bin")
+ self._asm_test_folder = os.path.join(assets_path, self.identifier, "asm")
+ self._bin_test_folder = os.path.join(assets_path, self.identifier, "bin")
logging.debug(self._asm_test_folder)
logging.debug(self._bin_test_folder)
def _collect_tests(self):
__static_tests = zip(os.listdir(self._asm_test_folder), os.listdir(self._bin_test_folder))
return {
- __asm.split(".")[0]: UnidasmMapper(asm_filename=__asm, bin_filename=__bin) for __asm, __bin in __static_tests
+ __asm.split(".")[0]: UnidasmFileMapper(asm_filename=__asm, bin_filename=__bin) for __asm, __bin in __static_tests
}
- def _subprocess_args(self, test_handle: str, test_params: UnidasmMapper):
+ def _subprocess_args(self, test_handle: str, test_params: UnidasmFileMapper):
return [os.path.join(self._bin_test_folder, test_params.bin_filename), "-arch", test_handle]
- def _assert_test_result(self, launch_result: CompletedProcess, test_handle: str, test_params: UnidasmMapper):
+ def _assert_test_result(self, launch_result: CompletedProcess, test_handle: str, test_params: UnidasmFileMapper):
__ret_code = launch_result.returncode
assert __ret_code == 0, f"{test_handle} return code == {__ret_code}"
__actual_stderr = launch_result.stderr