1# Utility functions and parameters for regression tests
2
3# Predefined directories you may need
4# Stupid CMU Facilities autoconf doesn't do @abs_top_builddir@
5builddir="@top_builddir@"
6sourcedir="@top_srcdir@"
7sbtests="@sphinxbase@/test"
8tests="$sourcedir/src/tests/regression"
9programs="$builddir/src/programs"
10hmmdir="$sourcedir/model/hmm"
11lmdir="$sourcedir/model/lm"
12hub4am="$hmmdir/hub4_cd_continuous_8gau_1s_c_d_dd"
13an4lm="$lmdir/an4"
14
15# Automatically report failures on exit
16failures=""
17trap "report_failures" 0
18
19run_program() {
20    program="$1"
21    shift
22    $builddir/libtool --mode=execute "$programs/$program" $@
23}
24
25debug_program() {
26    program="$1"
27    shift
28    $builddir/libtool --mode=execute gdb --args "$programs/$program" $@
29}
30
31memcheck_program() {
32    program="$1"
33    shift
34    $builddir/libtool --mode=execute valgrind --leak-check=full "$programs/$program" $@
35}
36
37pass() {
38    title="$1"
39    echo "$title PASSED"
40}
41
42fail() {
43    title="$1"
44    echo "$title FAILED"
45    failures="$failures,$title"
46}
47
48compare_table() {
49    title="$1"
50    shift
51    if perl "$sbtests/compare_table.pl" $@ | grep SUCCESS >/dev/null 2>&1; then
52	pass "$title"
53    else
54	fail "$title"
55    fi
56}
57
58report_failures() {
59    if test x"$failures" = x; then
60	echo "All sub-tests passed"
61	exit 0
62    else
63	echo "Sub-tests failed:$failures" | sed -e 's/,/ /g'
64	exit 1
65    fi
66}
67