Rename cad3d to survexport
[survex.git] / tests / 3dtopos.tst
blobed586e2f3774c6ef1af978ca09ad1914866ec760
1 #!/bin/sh
3 # Survex test suite - 3d to pos tests
4 # Copyright (C) 1999-2003,2005,2010,2012,2018 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 : ${DIFFPOS="$testdir"/../src/diffpos}
31 : ${SURVEXPORT="$testdir"/../src/survexport}
33 : ${TESTS=${*:-"pos.pos v0 v0b v1 v2 v3"}}
35 vg_error=123
36 vg_log=vg.log
37 if [ -n "$VALGRIND" ] ; then
38   rm -f "$vg_log"
39   SURVEXPORT="$VALGRIND --log-file=$vg_log --error-exitcode=$vg_error $SURVEXPORT"
40   DIFFPOS="$VALGRIND --log-file=$vg_log --error-exitcode=$vg_error $DIFFPOS"
43 for file in $TESTS ; do
44   echo $file
45   case $file in
46   *.pos) input="$srcdir/$file" ;;
47   *) input="$srcdir/$file.3d" ;;
48   esac
49   rm -f tmp.pos diffpos.tmp
50   $SURVEXPORT "$input" tmp.pos
51   exitcode=$?
52   if [ -n "$VALGRIND" ] ; then
53     if [ $exitcode = "$vg_error" ] ; then
54       cat "$vg_log"
55       rm "$vg_log"
56       exit 1
57     fi
58     rm "$vg_log"
59   fi
60   test $exitcode = 0 || exit 1
61   $DIFFPOS "$input" tmp.pos > diffpos.tmp
62   exitcode=$?
63   if test -n "$VERBOSE" ; then
64     cat diffpos.tmp
65   fi
66   if [ -n "$VALGRIND" ] ; then
67     if [ $exitcode = "$vg_error" ] ; then
68       cat "$vg_log"
69       rm "$vg_log"
70       exit 1
71     fi
72     rm "$vg_log"
73   fi
74   test -s diffpos.tmp && exit 1
75   rm -f tmp.pos diffpos.tmp
76 done
77 test -n "$VERBOSE" && echo "Test passed"
78 exit 0