17 proc = subprocess.Popen(args,
18 stdout=subprocess.PIPE,
19 stderr=subprocess.PIPE
21 out, err = proc.communicate()
22 return out, err, proc.returncode
70def run_output_test(case):
72 TEST_PRGS =
'./working_programs/test/'
73 TEST_DATA =
'./tests/data/'
76 OUT =
'./tests/bin/a.out'
83 note = f
" (note: {case[2]})"
84 print_start_test(casename)
87 INPUT_FILE = TEST_DATA + casename +
'.in'
88 OUTPUT_FILE = TEST_DATA + casename +
'.out'
89 create_exec(TEST_PRGS + filename)
90 out, err, _ = run_exec([INPUT_FILE] + case[3:]);
93 with open(OUTPUT_FILE,
'r')
as f:
94 stdout.write(REDO_LINE)
95 act = out.decode(
'ascii')
96 exp = f.read().replace(
'dev.plsr', INPUT_FILE)
98 print(f
"- \033[31;1mtest '{casename}' failed{note}\033[m")
99 print(out.decode(
'ascii'))
100 print(err.decode(
'ascii'))
102 print(f
"+ \033[32;1mtest '{casename}' passed{note}\033[m")
int main(int argc, const char *argv[])