blob: 83f5466619f1ac0bfcd779efb11151cb14046814 [file] [log] [blame]
Tudor Timi2c270442019-12-23 19:14:29 +01001import os
Tudor Timi81be42d2019-12-23 19:17:57 +01002import pathlib
Tudor Timi2c270442019-12-23 19:14:29 +01003import subprocess
4
5
Tudor Timi81be42d2019-12-23 19:17:57 +01006def clean_paths(rm_paths):
7 for rm_path in rm_paths:
8 for p in pathlib.Path('.').glob(rm_path):
9 p.unlink()
10
11
Tudor Timi2c270442019-12-23 19:14:29 +010012def create_unit_test(name):
13 subprocess.check_call(['create_unit_test.pl', name])
14
15
16def golden_class_unit_test(FILE, MYNAME):
17 template = open('{}/test/templates/class_unit_test.gold'.format(os.environ['SVUNIT_INSTALL']))
18 with open('{}_unit_test.gold'.format(FILE), 'w') as output:
19 for line in template:
20 output.write(line.replace('FILE', FILE).replace('MYNAME', MYNAME))
21
Tudor Timi2c270442019-12-23 19:14:29 +010022def golden_testsuite_with_1_unittest(MYNAME):
23 template = open('{}/test/templates/testsuite_with_1_unittest.gold'.format(os.environ['SVUNIT_INSTALL']))
24 with open('testsuite.gold', 'w') as output:
25 for line in template:
26 output.write(line.replace('MYNAME', MYNAME))
27
28def golden_testrunner_with_1_testsuite():
29 template = open('{}/test/templates/testrunner_with_1_testsuite.gold'.format(os.environ['SVUNIT_INSTALL']))
30 with open('testrunner.gold', 'w') as output:
31 for line in template:
32 output.write(line)
33
Tudor Timi8f95e9b2019-12-24 14:42:04 +010034def golden_testrunner_with_2_testsuites():
35 template = open('{}/test/templates/testrunner_with_2_testsuite.gold'.format(os.environ['SVUNIT_INSTALL']))
36 with open('testrunner.gold', 'w') as output:
37 for line in template:
38 output.write(line)
39
Tudor Timi2c270442019-12-23 19:14:29 +010040
41def verify_file(file0, file1):
42 result = subprocess.run(['diff', '-wbB', file0, file1], stdout=subprocess.PIPE)
43 assert result.returncode in [0, 1]
44 if result.returncode == 1:
45 assert result.stdout == b''
46
47def verify_testsute(testsuite, dir=''):
48 PWD = '_'
49 file = open(testsuite)
50 with open('.{}'.format(testsuite), 'w') as output:
51 for line in file:
52 output.write(line.replace('PWD', "{}{}".format(PWD, dir)))
53 verify_file(output.name, '.{}{}_testsuite.sv'.format(PWD, dir))
54
55def verify_testrunner(testrunner, ts0, ts1='', ts2='', ts3='', tr=''):
56 if tr == '':
57 tr = '.testrunner.sv'
58 file = open(testrunner)
59 with open('.{}'.format(testrunner), 'w') as output:
60 for line in file:
61 output.write(line.replace('TS0', ts0).replace('TS1', ts1).replace('TS2', ts2).replace('TS3', ts3))
62 verify_file(output.name, tr)