fixed some build file flaws
This commit is contained in:
86
t/h-003.hawk
Normal file
86
t/h-003.hawk
Normal file
@ -0,0 +1,86 @@
|
||||
@pragma entry main
|
||||
@pragma implicit off
|
||||
|
||||
@include "tap.inc";
|
||||
|
||||
function are_files_identical(a, b)
|
||||
{
|
||||
@local f1, f2, x, y, diff;
|
||||
|
||||
f1 = sys::open(a, sys::O_RDONLY);
|
||||
if (f1 <= -1)
|
||||
{
|
||||
printf ("ERROR: unable to open %s\n", a);
|
||||
return -1;
|
||||
}
|
||||
|
||||
f2 = sys::open(b, sys::O_RDONLY);
|
||||
if (f2 <= -1)
|
||||
{
|
||||
sys::close (a);
|
||||
printf ("ERROR: unable to open %s\n", b);
|
||||
return -1;
|
||||
}
|
||||
|
||||
diff = 0;
|
||||
while (sys::read(f1, x, 1) > 0)
|
||||
{
|
||||
if (sys::read(f2, y, 1) <= 0 || x !== y)
|
||||
{
|
||||
diff = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (sys::read(f2, y, 1) > 0) diff = 1;
|
||||
|
||||
sys::close (f2);
|
||||
sys::close (f1);
|
||||
return !diff;
|
||||
}
|
||||
|
||||
function run_test (x, more_opts, in_name, set_out_name, out_name)
|
||||
{
|
||||
@local cmd, inf, expf, outf, same;
|
||||
|
||||
if (hawk::isnil(in_name)) in_name = x;
|
||||
if (hawk::isnil(out_name)) out_name = x;
|
||||
|
||||
inf = sprintf("%s/%s.in", TDIR, in_name);
|
||||
expf = sprintf("%s/%s.out", TDIR, out_name);
|
||||
outf = sprintf("/tmp/%s.%d.out", out_name, sys::getpid());
|
||||
##print TDIR, inf, expf, outf;
|
||||
|
||||
if (set_out_name)
|
||||
{
|
||||
cmd=sprintf("%s %s -vT_OUT_NAME=%s -f %s/%s.hawk --modlibdirs=%s %s", ARGV[0], more_opts, outf, TDIR, x, hawk::modlibdirs(), inf);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmd=sprintf("%s %s -f %s/%s.hawk --modlibdirs=%s %s > %s", ARGV[0], more_opts, TDIR, x, hawk::modlibdirs(), inf, outf);
|
||||
}
|
||||
##print cmd;
|
||||
system (cmd);
|
||||
|
||||
same = are_files_identical(expf, outf);
|
||||
if (same <= 0)
|
||||
{
|
||||
## don't delete the output file for review.
|
||||
tap_fail (sprintf("%s[%d] %s - %s and %s differ", @SCRIPTNAME, @SCRIPTLINE, x, expf, outf));
|
||||
}
|
||||
else
|
||||
{
|
||||
tap_ok (sprintf("%s[%d]", @SCRIPTNAME, @SCRIPTLINE));
|
||||
sys::unlink (outf);
|
||||
}
|
||||
}
|
||||
|
||||
function main()
|
||||
{
|
||||
run_test ("journal-toc", "", @nil, 0, @nil);
|
||||
run_test ("journal-toc", "-vHTML=1", "journal-toc", 0, "journal-toc-html");
|
||||
run_test ("bibtex-to-html", "", "journal-toc", 1, "bibtex-to-html");
|
||||
|
||||
tap_end ();
|
||||
}
|
||||
|
Reference in New Issue
Block a user