Update for 1.2.34
[survex.git] / tests / extend.tst
blobaa19f1816c4db00a5519dc131ef7f1158f239b67
1 #!/bin/sh
3 # Survex test suite - extend tests
4 # Copyright (C) 1999-2003,2010,2012 Olly Betts
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20 testdir=`echo $0 | sed 's!/[^/]*$!!' || echo '.'`
22 # allow us to run tests standalone more easily
23 : ${srcdir="$testdir"}
25 # force VERBOSE if we're run on a subset of tests
26 test -n "$*" && VERBOSE=1
28 test -x "$testdir"/../src/cavern || testdir=.
30 : ${CAVERN="$testdir"/../src/cavern}
31 : ${EXTEND="$testdir"/../src/extend}
32 : ${DIFFPOS="$testdir"/../src/diffpos}
34 : ${TESTS=${*:-"extend extend2names eswap eswap-break"}}
36 vg_error=123
37 vg_log=vg.log
38 if [ -n "$VALGRIND" ] ; then
39   rm -f "$vg_log"
40   CAVERN="$VALGRIND --log-file=$vg_log --error-exitcode=$vg_error $CAVERN"
41   EXTEND="$VALGRIND --log-file=$vg_log --error-exitcode=$vg_error $EXTEND"
42   DIFFPOS="$VALGRIND --log-file=$vg_log --error-exitcode=$vg_error $DIFFPOS"
45 for file in $TESTS ; do
46   echo $file
47   EXTEND_ARGS=""
48   test -f "$srcdir/$file.espec" && EXTEND_ARGS="--specfile $srcdir/$file.espec"
49   rm -f tmp.*
50   if test -n "$VERBOSE" ; then
51     $CAVERN "$srcdir/$file.svx" --output=tmp
52     exitcode=$?
53   else
54     $CAVERN "$srcdir/$file.svx" --output=tmp > /dev/null
55     exitcode=$?
56   fi
57   if [ -n "$VALGRIND" ] ; then
58     if [ $exitcode = "$vg_error" ] ; then
59       cat "$vg_log"
60       rm "$vg_log"
61       exit 1
62     fi
63     rm "$vg_log"
64   fi
65   [ "$exitcode" = 0 ] || exit 1
66   if test -n "$VERBOSE" ; then
67     $EXTEND $EXTEND_ARGS tmp.3d tmp.x.3d
68     exitcode=$?
69   else
70     $EXTEND $EXTEND_ARGS tmp.3d tmp.x.3d > /dev/null
71     exitcode=$?
72   fi
73   if [ -n "$VALGRIND" ] ; then
74     if [ $exitcode = "$vg_error" ] ; then
75       cat "$vg_log"
76       rm "$vg_log"
77       exit 1
78     fi
79     rm "$vg_log"
80   fi
81   [ "$exitcode" = 0 ] || exit 1
82   if test -n "$VERBOSE" ; then
83     $DIFFPOS tmp.x.3d "$srcdir/${file}x.3d"
84     exitcode=$?
85   else
86     $DIFFPOS tmp.x.3d "$srcdir/${file}x.3d" > /dev/null
87     exitcode=$?
88   fi
89   if [ -n "$VALGRIND" ] ; then
90     if [ $exitcode = "$vg_error" ] ; then
91       cat "$vg_log"
92       rm "$vg_log"
93       exit 1
94     fi
95     rm "$vg_log"
96   fi
97   [ "$exitcode" = 0 ] || exit 1
98   rm -f tmp.*
99 done
100 test -n "$VERBOSE" && echo "Test passed"
101 exit 0