From 1d9c629353183af8d76debda404f2999f0cedf14 Mon Sep 17 00:00:00 2001 From: Jan Laukemann Date: Wed, 11 Oct 2017 21:08:23 +0200 Subject: [PATCH] added first unittest for osaca --- osaca/osaca.py | 40 ++++++++++++++++--------------- tests/all_tests.py | 16 +++++++++++++ tests/test_osaca.py | 22 +++++++++++++++++ tests/test_osaca_iaca.out | 26 ++++++++++++++++++++ tests/testfiles/taxCalc-ivb-iaca | Bin 0 -> 23112 bytes tox.ini | 6 +++-- 6 files changed, 89 insertions(+), 21 deletions(-) create mode 100755 tests/all_tests.py create mode 100755 tests/test_osaca.py create mode 100644 tests/test_osaca_iaca.out create mode 100755 tests/testfiles/taxCalc-ivb-iaca diff --git a/osaca/osaca.py b/osaca/osaca.py index 27a6575..5f6634d 100755 --- a/osaca/osaca.py +++ b/osaca/osaca.py @@ -22,6 +22,7 @@ class Osaca(object): srcCode = None df = None instr_forms = None + file_output = '' # Variables for checking lines numSeps = 0 indentChar = '' @@ -41,10 +42,11 @@ class Osaca(object): + r'((,[ \t]*103[ \t]*((,[ \t]*144)|(\n\s*\.byte[ \t]+144)))|(\n\s*\.byte' + r'[ \t]+103[ \t]*((,[ \t]*144)|(\n\s*\.byte[ \t]+144))))') - def __init__(self, _arch, _filepath): + def __init__(self, _arch, _filepath, output=sys.stdout): self.arch = _arch self.filepath = _filepath self.instr_forms = [] + self.file_output = output # -----------------main functions depending on arguments-------------------- def include_ibench(self): @@ -63,7 +65,7 @@ class Osaca(object): self.df = self.read_csv() # Create sequence of numbers and their reciprokals for validate the measurements cyc_list, reci_list = self.create_sequences() - print('Everything seems fine! Let\'s start!') + print('Everything seems fine! Let\'s start!', file=self.file_output) new_data = [] added_vals = 0 for line in self.srcCode: @@ -113,10 +115,10 @@ class Osaca(object): if(not new and abs((val/np.float64(clk_cyc))-1) > 0.05): print('Different measurement for {} ({}): {}(old) vs. '.format(instr, clmn, val) + '{}(new)\nPlease check for correctness '.format(clk_cyc) - + '(no changes were made).') + + '(no changes were made).', file=self.file_output) txt_output = True if(txt_output): - print() + print('', file=self.file_output) txt_output = False # Now merge the DataFrames and write new csv file self.df = self.df.append(pd.DataFrame(new_data, columns=['instr', 'TP', 'LT', 'ports']), @@ -124,8 +126,8 @@ class Osaca(object): csv = self.df.to_csv(index=False) self.write_csv(csv) print('ibench output {} '.format(self.filepath.split('/')[-1]) - + 'successfully in database included.') - print('{} values were added.'.format(added_vals)) + + 'successfully in database included.', file=self.file_output) + print('{} values were added.'.format(added_vals), file=self.file_output) def inspect_binary(self): """ @@ -141,14 +143,14 @@ class Osaca(object): # Finally check for database for the chosen architecture self.read_csv() - print('Everything seems fine! Let\'s start checking!') + print('Everything seems fine! Let\'s start checking!', file=self.file_output) for i, line in enumerate(self.srcCode): if(i == 0): self.check_line(line, True) else: self.check_line(line) output = self.create_output() - print(output) + print(output, file=self.file_output) def inspect_with_iaca(self): """ @@ -173,13 +175,13 @@ class Osaca(object): # Finally check for database for the chosen architecture self.read_csv() - print('Everything seems fine! Let\'s start checking!') + print('Everything seems fine! Let\'s start checking!', file=self.file_output) if(binary_file): self.iaca_bin() else: self.iaca_asm() output = self.create_output() - print(output) + print(output, file=self.file_output) # -------------------------------------------------------------------------- @@ -262,7 +264,7 @@ class Osaca(object): try: f = open(self.filepath, 'r') except IOError: - print('IOError: file \'{}\' not found'.format(self.filepath)) + print('IOError: file \'{}\' not found'.format(self.filepath), file=self.file_output) self.srcCode = '' for line in f: self.srcCode += line @@ -296,7 +298,8 @@ class Osaca(object): try: f = open('data/'+self.arch.lower()+'_data.csv', 'w') except IOError: - print('IOError: file \'{}\' not found in ./data'.format(self.arch.lower()+'_data.csv')) + print('IOError: file \'{}\' not found in ./data'.format(self.arch.lower()+'_data.csv'), + file=self.file_output) f.write(csv) f.close() @@ -366,8 +369,8 @@ class Osaca(object): # No value close to an integer or its reciprocal found, we assume the # measurement is incorrect print('Your measurement for {} ({}) is probably wrong. '.format(instr, clmn) - + 'Please inspect your benchmark!') - print('The program will continue with the given value') + + 'Please inspect your benchmark!', file=self.file_output) + print('The program will continue with the given value', file=self.file_output) return clk_cyc def check_line(self, line, first_appearance=False): @@ -687,7 +690,7 @@ class Osaca(object): tp = self.df[self.df.instr == elem[0] + '-' + operands].TP.values[0] except IndexError: # Something went wrong - print('Error while fetching data from database') + print('Error while fetching data from database', file=self.file_output) continue # Did not found the exact instruction form. # Try to find the instruction form for register operands only @@ -703,9 +706,8 @@ class Osaca(object): op_ext_regs.append(False) if(True not in op_ext_regs): # No register in whole instr form. How can I find out what regsize we need? - print('test') - print('Feature not included yet: ', end='') - print(elem[0]+' for '+operands) + print('Feature not included yet: ', end='', file=self.file_output) + print(elem[0]+' for '+operands, file=self.file_output) tp = 0 not_found = True warning = True @@ -742,7 +744,7 @@ class Osaca(object): tp = self.df[self.df.instr == elem[0]+'-'+operands].TP.values[0] except IndexError: # Something went wrong - print('Error while fetching data from database') + print('Error while fetching data from database', file=self.file_output) continue # Did not found the register instruction form. Set warning and go on with # throughput 0 diff --git a/tests/all_tests.py b/tests/all_tests.py new file mode 100755 index 0000000..7666878 --- /dev/null +++ b/tests/all_tests.py @@ -0,0 +1,16 @@ +#!/usr//bin/env python + +import sys + +import unittest + + +sys.path[0:0] = ['.', '..'] +suite = unittest.TestLoader().loadTestsFromNames( + [ + 'test_osaca' + ] +) + +testresult = unittest.TextTestRunner(verbosity=2).run(suite) +sys.exit(0 if testresult.wasSuccessful() else 1) diff --git a/tests/test_osaca.py b/tests/test_osaca.py new file mode 100755 index 0000000..1662be7 --- /dev/null +++ b/tests/test_osaca.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 + +import sys +from io import StringIO +import os + +import unittest + +sys.path.insert(0, '..') +from osaca.osaca import Osaca + +class TestOsaca(unittest.TestCase): + def testIACABinary(self): + out = StringIO() + curr_dir = '/'.join(os.path.realpath(__file__).split('/')[:-1]) + osa = Osaca('IVB', curr_dir+'/testfiles/taxCalc-ivb-iaca', out) + osa.inspect_with_iaca() + result = out.getvalue() + result = '\n'.join(result.split('\n')[-27:]) + with open(curr_dir+'/test_osaca_iaca.out', encoding='utf-8') as f: + assertion = f.read() + self.assertEqual(result, assertion) diff --git a/tests/test_osaca_iaca.out b/tests/test_osaca_iaca.out new file mode 100644 index 0000000..61a832f --- /dev/null +++ b/tests/test_osaca_iaca.out @@ -0,0 +1,26 @@ +Port Binding in Cycles Per Iteration: +---------------------------------------------- +| Port | 0 | 1 | 2 | 3 | 4 | 5 | +---------------------------------------------- +| Cycles | 4.0 | 5.0 | 3.0 | 3.0 | 2.0 | 2.0 | +---------------------------------------------- + + + Ports Pressure in cycles +| 0 | 1 | 2 | 3 | 4 | 5 | +------------------------------------------- +| | | 1.00 | 1.00 | | | lea 0x1(%rax,%rax,1),%edx +| 0.50 | 1.00 | | | | 0.50 | vcvtsi2ss %edx,%xmm2,%xmm2 +| 1.00 | | | | | | vmulss %xmm2,%xmm0,%xmm3 +| | | 1.00 | 1.00 | | | lea 0x2(%rax,%rax,1),%ecx +| | 1.00 | | | | | vaddss %xmm3,%xmm1,%xmm4 +| 0.33 | 0.33 | | | | 0.33 | vxorps %xmm1,%xmm1,%xmm1 +| 0.50 | 1.00 | | | | 0.50 | vcvtsi2ss %ecx,%xmm1,%xmm1 +| 1.00 | | | | | | vmulss %xmm1,%xmm0,%xmm5 +| | | 0.50 | 0.50 | 1.00 | | vmovss %xmm4,0x4(%rsp,%rax,8) +| | 1.00 | | | | | vaddss %xmm5,%xmm4,%xmm1 +| | | 0.50 | 0.50 | 1.00 | | vmovss %xmm1,0x8(%rsp,%rax,8) +| 0.33 | 0.33 | | | | 0.33 | inc %rax +| 0.33 | 0.33 | | | | 0.33 | cmp $0x1f3,%rax +| | | | | | | jb 400bc2 +Total number of estimated throughput: 5.0 diff --git a/tests/testfiles/taxCalc-ivb-iaca b/tests/testfiles/taxCalc-ivb-iaca new file mode 100755 index 0000000000000000000000000000000000000000..5d7f82eb607b934e49a6ab9318d62567f6504c09 GIT binary patch literal 23112 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 literal 0 HcmV?d00001 diff --git a/tox.ini b/tox.ini index cac3bec..0fc572b 100644 --- a/tox.ini +++ b/tox.ini @@ -2,5 +2,7 @@ envlist = py35 [testenv] commands= - osaca --arch ivb --iaca examples/taxCalc-ivb-iaca - osaca --arch ivb --iaca examples/taxCalc-ivb-iaca.S + python tests/all_tests.py +# osaca --arch ivb --iaca examples/taxCalc-ivb-iaca +# osaca --arch ivb --iaca examples/taxCalc-ivb-iaca.S +# osaca --arch ivb examples/taxCalc-ivb