| 1 | # -*- shell-script -*- | 
|---|
| 2 | # @configure_input@ | 
|---|
| 3 | # Set variables and functions to use in tests. | 
|---|
| 4 | # This is copied from the TREMOLO project, credits Ralf Wildenhues, modified Frederik Heber. | 
|---|
| 5 | # | 
|---|
| 6 | case $VERBOSE in | 
|---|
| 7 | x*) set -x ;; | 
|---|
| 8 | esac | 
|---|
| 9 |  | 
|---|
| 10 | pathname=$0 | 
|---|
| 11 | # next two lines not portable | 
|---|
| 12 | basename=${pathname##*/} | 
|---|
| 13 | #testdir=${basename%.test} | 
|---|
| 14 | testdir=${basename%%.*} | 
|---|
| 15 | need_testdir="test -d @srcdir@/$testdir" | 
|---|
| 16 | testdir_exists="test -d $testdir" | 
|---|
| 17 | EXEEXT=@EXEEXT@ | 
|---|
| 18 | # next 2 lines not portable | 
|---|
| 19 | MOLECUILDER=${MOLECUILDER-"@abs_top_builddir@/src/molecuilder$EXEEXT"} | 
|---|
| 20 | exec_prefix="@prefix@/bin" | 
|---|
| 21 | DEBUG=${DEBUG-false} | 
|---|
| 22 | CLEANUP='rm -f stderr stdout' | 
|---|
| 23 |  | 
|---|
| 24 | if $need_testdir | 
|---|
| 25 | then | 
|---|
| 26 | if $testdir_exists; then | 
|---|
| 27 | rm -rf $testdir | 
|---|
| 28 | fi | 
|---|
| 29 | mkdir $testdir | 
|---|
| 30 | CLEANUP="$CLEANUP; rm -rf $testdir" | 
|---|
| 31 | cp -r @srcdir@/$testdir/* $testdir/ | 
|---|
| 32 | CLEANUP="rm -f stderr stdout diffstderr diffstdout; cd ..; $CLEANUP" | 
|---|
| 33 | CLEANUP="rm -f *.conf*; rm -f NonConvexEnvelope*; rm -f ${testdir}.xyz; rm -f ${testdir}.dbond; $CLEANUP" | 
|---|
| 34 | fi | 
|---|
| 35 |  | 
|---|
| 36 | # debug runs should keep results | 
|---|
| 37 | if $DEBUG; then :; else | 
|---|
| 38 | trap "eval \"$CLEANUP\"" 0 1 2 13 15 | 
|---|
| 39 | fi | 
|---|
| 40 |  | 
|---|
| 41 | # TREMOLO_run status [options...] | 
|---|
| 42 | # Run tremolo with OPTIONS, fail if it does not exit with STATUS. | 
|---|
| 43 | Tesselation_run () | 
|---|
| 44 | { | 
|---|
| 45 | # $1 is exit code | 
|---|
| 46 | # $2 is RADIUS | 
|---|
| 47 |  | 
|---|
| 48 | expected_exitcode=$1 | 
|---|
| 49 | mol=$testdir | 
|---|
| 50 | RADIUS=$2 | 
|---|
| 51 | FILENAME="NonConvexEnvelope" | 
|---|
| 52 | exitcode=0 | 
|---|
| 53 | cd $testdir/$RADIUS | 
|---|
| 54 | #echo "Current dir is `pwd`, calling $MOLECUILDER $mol.conf -e $exec_prefix -p ../$mol.xyz -N $RADIUS $FILENAME." | 
|---|
| 55 | if [ -e $mol.dbond ]; then | 
|---|
| 56 | $MOLECUILDER -i ../$mol.xyz -A $mol.dbond --select-molecule-by-id 0 -N $RADIUS --nonconvex-file $FILENAME 2>stderr >stdout || exitcode=$? | 
|---|
| 57 | else | 
|---|
| 58 | $MOLECUILDER -i ../$mol.xyz --select-molecule-by-id 0 -N $RADIUS --nonconvex-file $FILENAME 2>stderr >stdout || exitcode=$? | 
|---|
| 59 | fi | 
|---|
| 60 | #echo "Molecuilder done with exitcode $exitcode." | 
|---|
| 61 | cd ../.. | 
|---|
| 62 | #cat stderr | 
|---|
| 63 | #cat stdout | 
|---|
| 64 | grep -E "^[0-9]* [0-9]* [0-9]*$" @srcdir@/$mol/$2/${FILENAME}-$mol.dat | sort -n >$testdir/$RADIUS/reference-triangles.dat | 
|---|
| 65 | grep -E "^[0-9]* [0-9]* [0-9]*$" $testdir/$RADIUS/${FILENAME}.dat | sort -n >$testdir/$RADIUS/new-triangles.dat | 
|---|
| 66 | diff $testdir/$RADIUS/reference-triangles.dat $testdir/$RADIUS/new-triangles.dat 2>$testdir/$RADIUS/diffstderr >$testdir/$RADIUS/diffstdout || exitcode=$? | 
|---|
| 67 | #echo "Diff done with exitcode $exitcode." | 
|---|
| 68 | #cat diffstderr | 
|---|
| 69 | #cat diffstdout | 
|---|
| 70 | test $exitcode = $expected_exitcode || exit 1 | 
|---|
| 71 | } | 
|---|
| 72 |  | 
|---|
| 73 | # can use $LN_S | 
|---|
| 74 |  | 
|---|
| 75 | # vim:set ft=sh: | 
|---|