From 04db2bfa7924bb7d57444b31e0029ff6f7206738 Mon Sep 17 00:00:00 2001 From: JanLJL Date: Thu, 20 Feb 2020 12:07:20 +0100 Subject: [PATCH] added tests for asmbench import --- codecov.yml | 2 +- tests/test_base_parser.py | 2 +- tests/test_db_interface.py | 23 +++++++++++++++++-- tests/test_files/asmbench_import_aarch64.dat | 16 +++++++++++++ tests/test_files/asmbench_import_x86.dat | 12 ++++++++++ .../{kernel-AArch64.s => kernel_aarch64.s} | 0 .../test_files/{kernel-x86.s => kernel_x86.s} | 0 .../{triad-arm-iaca.s => triad_arm_iaca.s} | 0 .../{triad-x86-iaca.s => triad_x86_iaca.s} | 0 tests/test_frontend.py | 4 ++-- tests/test_marker_utils.py | 4 ++-- tests/test_parser_AArch64v81.py | 2 +- tests/test_parser_x86att.py | 2 +- tests/test_semantics.py | 4 ++-- 14 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 tests/test_files/asmbench_import_aarch64.dat create mode 100644 tests/test_files/asmbench_import_x86.dat rename tests/test_files/{kernel-AArch64.s => kernel_aarch64.s} (100%) rename tests/test_files/{kernel-x86.s => kernel_x86.s} (100%) rename tests/test_files/{triad-arm-iaca.s => triad_arm_iaca.s} (100%) rename tests/test_files/{triad-x86-iaca.s => triad_x86_iaca.s} (100%) diff --git a/codecov.yml b/codecov.yml index a2ab8b5..5d075d6 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,3 +1,3 @@ ignore: - - "tests/**/*" # ignore test folder and all its contents + - "tests" # ignore test folder and all its contents - "**/__init__.py" # ignore init files diff --git a/tests/test_base_parser.py b/tests/test_base_parser.py index 1ef8cea..7465c05 100755 --- a/tests/test_base_parser.py +++ b/tests/test_base_parser.py @@ -16,7 +16,7 @@ class TestBaseParser(unittest.TestCase): self.parser = BaseParser() except NotImplementedError: pass - with open(self._find_file('triad-x86-iaca.s')) as f: + with open(self._find_file('triad_x86_iaca.s')) as f: self.triad_code = f.read() ################## diff --git a/tests/test_db_interface.py b/tests/test_db_interface.py index e3c4461..c2ed6eb 100755 --- a/tests/test_db_interface.py +++ b/tests/test_db_interface.py @@ -85,13 +85,32 @@ class TestDBInterface(unittest.TestCase): def test_ibench_import(self): # only check import without dumping the DB file (takes too much time) with open(self._find_file('ibench_import_x86.dat')) as input_file: - entries = dbi._get_ibench_output(input_file, 'x86') + input_data = input_file.readlines() + entries = dbi._get_ibench_output(input_data, 'x86') self.assertEqual(len(entries), 3) for _, e in entries.items(): self.assertIsNotNone(e['throughput']) self.assertIsNotNone(e['latency']) with open(self._find_file('ibench_import_aarch64.dat')) as input_file: - entries = dbi._get_ibench_output(input_file, 'aarch64') + input_data = input_file.readlines() + entries = dbi._get_ibench_output(input_data, 'aarch64') + self.assertEqual(len(entries), 4) + for _, e in entries.items(): + self.assertIsNotNone(e['throughput']) + self.assertIsNotNone(e['latency']) + + def test_asmbench_import(self): + # only check import without dumping the DB file (takes too much time) + with open(self._find_file('asmbench_import_x86.dat')) as input_file: + input_data = input_file.readlines() + entries = dbi._get_asmbench_output(input_data, 'x86') + self.assertEqual(len(entries), 3) + for _, e in entries.items(): + self.assertIsNotNone(e['throughput']) + self.assertIsNotNone(e['latency']) + with open(self._find_file('asmbench_import_aarch64.dat')) as input_file: + input_data = input_file.readlines() + entries = dbi._get_asmbench_output(input_data, 'aarch64') self.assertEqual(len(entries), 4) for _, e in entries.items(): self.assertIsNotNone(e['throughput']) diff --git a/tests/test_files/asmbench_import_aarch64.dat b/tests/test_files/asmbench_import_aarch64.dat new file mode 100644 index 0000000..23a69d3 --- /dev/null +++ b/tests/test_files/asmbench_import_aarch64.dat @@ -0,0 +1,16 @@ +testinstr-i_d_v +Latency: 4.013 cy +Throughput: 0.501 cy + +testinstr2-mboi_v +Latency: 4.013 cy +Throughput: 0.501 cy + +testinstr3-mbisr_v +Latency: 4.013 cy +Throughput: 0.501 cy + +testinstr3-mboisp_v +Latency: 4.013 cy +Throughput: 0.501 cy + diff --git a/tests/test_files/asmbench_import_x86.dat b/tests/test_files/asmbench_import_x86.dat new file mode 100644 index 0000000..b5e2557 --- /dev/null +++ b/tests/test_files/asmbench_import_x86.dat @@ -0,0 +1,12 @@ +testinstr-i_r_x +Latency: 4.013 cy +Throughput: 0.251 cy + +testinstr2-mboi_x +Latency: 8.010 cy +Throughput: 0.501 cy + +testinstr3-mbis_y +Latency: 8.010 cy +Throughput: 0.334 cy + diff --git a/tests/test_files/kernel-AArch64.s b/tests/test_files/kernel_aarch64.s similarity index 100% rename from tests/test_files/kernel-AArch64.s rename to tests/test_files/kernel_aarch64.s diff --git a/tests/test_files/kernel-x86.s b/tests/test_files/kernel_x86.s similarity index 100% rename from tests/test_files/kernel-x86.s rename to tests/test_files/kernel_x86.s diff --git a/tests/test_files/triad-arm-iaca.s b/tests/test_files/triad_arm_iaca.s similarity index 100% rename from tests/test_files/triad-arm-iaca.s rename to tests/test_files/triad_arm_iaca.s diff --git a/tests/test_files/triad-x86-iaca.s b/tests/test_files/triad_x86_iaca.s similarity index 100% rename from tests/test_files/triad-x86-iaca.s rename to tests/test_files/triad_x86_iaca.s diff --git a/tests/test_frontend.py b/tests/test_frontend.py index 8bfd963..4ef43af 100755 --- a/tests/test_frontend.py +++ b/tests/test_frontend.py @@ -21,9 +21,9 @@ class TestFrontend(unittest.TestCase): # set up parser and kernels self.parser_x86 = ParserX86ATT() self.parser_AArch64 = ParserAArch64v81() - with open(self._find_file('kernel-x86.s')) as f: + with open(self._find_file('kernel_x86.s')) as f: code_x86 = f.read() - with open(self._find_file('kernel-AArch64.s')) as f: + with open(self._find_file('kernel_aarch64.s')) as f: code_AArch64 = f.read() self.kernel_x86 = self.parser_x86.parse_file(code_x86) self.kernel_AArch64 = self.parser_AArch64.parse_file(code_AArch64) diff --git a/tests/test_marker_utils.py b/tests/test_marker_utils.py index fc5e7f6..b3125eb 100755 --- a/tests/test_marker_utils.py +++ b/tests/test_marker_utils.py @@ -16,9 +16,9 @@ class TestMarkerUtils(unittest.TestCase): def setUpClass(self): self.parser_AArch = ParserAArch64v81() self.parser_x86 = ParserX86ATT() - with open(self._find_file('triad-arm-iaca.s')) as f: + with open(self._find_file('triad_arm_iaca.s')) as f: triad_code_arm = f.read() - with open(self._find_file('triad-x86-iaca.s')) as f: + with open(self._find_file('triad_x86_iaca.s')) as f: triad_code_x86 = f.read() self.parsed_AArch = self.parser_AArch.parse_file(triad_code_arm) self.parsed_x86 = self.parser_x86.parse_file(triad_code_x86) diff --git a/tests/test_parser_AArch64v81.py b/tests/test_parser_AArch64v81.py index bf87534..cf600f5 100755 --- a/tests/test_parser_AArch64v81.py +++ b/tests/test_parser_AArch64v81.py @@ -15,7 +15,7 @@ class TestParserAArch64v81(unittest.TestCase): @classmethod def setUpClass(self): self.parser = ParserAArch64v81() - with open(self._find_file('triad-arm-iaca.s')) as f: + with open(self._find_file('triad_arm_iaca.s')) as f: self.triad_code = f.read() ################## diff --git a/tests/test_parser_x86att.py b/tests/test_parser_x86att.py index 1a4c4e5..8c97b87 100755 --- a/tests/test_parser_x86att.py +++ b/tests/test_parser_x86att.py @@ -15,7 +15,7 @@ class TestParserX86ATT(unittest.TestCase): @classmethod def setUpClass(self): self.parser = ParserX86ATT() - with open(self._find_file('triad-x86-iaca.s')) as f: + with open(self._find_file('triad_x86_iaca.s')) as f: self.triad_code = f.read() ################## diff --git a/tests/test_semantics.py b/tests/test_semantics.py index 34ba97a..eb3b13a 100755 --- a/tests/test_semantics.py +++ b/tests/test_semantics.py @@ -29,9 +29,9 @@ class TestSemanticTools(unittest.TestCase): # set up parser and kernels self.parser_x86 = ParserX86ATT() self.parser_AArch64 = ParserAArch64v81() - with open(self._find_file('kernel-x86.s')) as f: + with open(self._find_file('kernel_x86.s')) as f: self.code_x86 = f.read() - with open(self._find_file('kernel-AArch64.s')) as f: + with open(self._find_file('kernel_aarch64.s')) as f: self.code_AArch64 = f.read() self.kernel_x86 = self.parser_x86.parse_file(self.code_x86) self.kernel_AArch64 = self.parser_AArch64.parse_file(self.code_AArch64)