1 proc test_treelang_output
{ testname srcfiles
infile resfile
args } {
2 set comp_output
[treelang_target_compile $srcfiles $testname executable $
args]
3 if { [treelang_check_compile $testname $
args $testname $comp_output
] == 0 } {
7 verbose
"Expected output is in $resfile"
8 set id
[open $resfile r
]
10 append expected
[read $id
]
13 set output
[exec $testname $
infile]
14 regsub
-all
"\r" "$output" "" output
15 regsub
"\n*$" $expected "" expected
16 regsub
"\n*$" $output "" output
17 regsub
"^\n*" $expected "" expected
18 regsub
"^\n*" $output "" output
19 regsub
-all
"\[ \t\]\[ \t\]*" $expected " " expected
20 regsub
-all
"\[ \t\]*\n\n*" $expected "\n" expected
21 regsub
-all
"\[ \t\]\[ \t\]*" $output " " output
22 regsub
-all
"\[ \t\]*\n\n*" $output "\n" output
23 verbose
"expected is $expected"
24 verbose
"actual is $output"
26 if { $expected
== $output
} {
35 catch
{ lsort
[glob
-nocomplain $
{srcdir
}/$
{subdir
}/*.out
] } outfiles
36 verbose
"Output files are $outfiles"
40 regsub
"\\.out$" $x "" prefix
41 set bname
[file tail $prefix
]
43 if [file
exists $
{prefix
}.inp
] {
44 set inpfile $
{prefix
}.inp
49 verbose
"inpfile is $inpfile"
51 set srcfiles
[lsort
[glob
-nocomplain $
{prefix
}.
{c
,tree
}]]
52 verbose
"source files are $srcfiles"
53 test_treelang_output
"treelang/$bname" $srcfiles $inpfile $x ""