blob: 9c95404c8365fad821df411cd8a8b532a78910d5 [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 Timibd0006b2019-12-25 16:22:04 +010040def golden_testrunner_with_3_testsuites():
41 template = open('{}/test/templates/testrunner_with_3_testsuite.gold'.format(os.environ['SVUNIT_INSTALL']))
42 with open('testrunner.gold', 'w') as output:
43 for line in template:
44 output.write(line)
45
Tudor Timi02cc3c12019-12-25 11:15:45 +010046def golden_testrunner_with_4_testsuites():
47 template = open('{}/test/templates/testrunner_with_4_testsuite.gold'.format(os.environ['SVUNIT_INSTALL']))
48 with open('testrunner.gold', 'w') as output:
49 for line in template:
50 output.write(line)
51
Tudor Timi2c270442019-12-23 19:14:29 +010052
53def verify_file(file0, file1):
54 result = subprocess.run(['diff', '-wbB', file0, file1], stdout=subprocess.PIPE)
55 assert result.returncode in [0, 1]
56 if result.returncode == 1:
57 assert result.stdout == b''
58
59def verify_testsute(testsuite, dir=''):
60 PWD = '_'
61 file = open(testsuite)
62 with open('.{}'.format(testsuite), 'w') as output:
63 for line in file:
64 output.write(line.replace('PWD', "{}{}".format(PWD, dir)))
65 verify_file(output.name, '.{}{}_testsuite.sv'.format(PWD, dir))
66
67def verify_testrunner(testrunner, ts0, ts1='', ts2='', ts3='', tr=''):
68 if tr == '':
69 tr = '.testrunner.sv'
70 file = open(testrunner)
71 with open('.{}'.format(testrunner), 'w') as output:
72 for line in file:
73 output.write(line.replace('TS0', ts0).replace('TS1', ts1).replace('TS2', ts2).replace('TS3', ts3))
74 verify_file(output.name, tr)