| [4fc93f] | 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 | 
|---|
| [bdedb1] | 26 | if $testdir_exists; then | 
|---|
|  | 27 | rm -rf $testdir | 
|---|
| [4fc93f] | 28 | fi | 
|---|
| [bdedb1] | 29 | mkdir $testdir | 
|---|
|  | 30 | CLEANUP="$CLEANUP; rm -rf $testdir" | 
|---|
|  | 31 | cp -r @srcdir@/$testdir/* $testdir/ | 
|---|
| [4fc93f] | 32 | CLEANUP="rm -f stderr stdout diffstderr diffstdout; cd ..; $CLEANUP" | 
|---|
| [491876] | 33 | CLEANUP="rm -f *.conf*; rm -f NonConvexEnvelope*; rm -f ${testdir}.xyz; rm -f ${testdir}.dbond; $CLEANUP" | 
|---|
| [4fc93f] | 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 | 
|---|
| [318cea] | 53 | cd $testdir/$RADIUS | 
|---|
| [bdedb1] | 54 | #echo "Current dir is `pwd`, calling $MOLECUILDER $mol.conf -e $exec_prefix -p ../$mol.xyz -N $RADIUS $FILENAME." | 
|---|
| [4fc93f] | 55 | if [ -e $mol.dbond ]; then | 
|---|
| [1bab08] | 56 | $MOLECUILDER -i ../$mol.xyz -A $mol.dbond --select-molecule-by-id 0 -N $RADIUS --nonconvex-file $FILENAME 2>stderr >stdout || exitcode=$? | 
|---|
| [4fc93f] | 57 | else | 
|---|
| [1bab08] | 58 | $MOLECUILDER -i ../$mol.xyz --select-molecule-by-id 0 -N $RADIUS --nonconvex-file $FILENAME 2>stderr >stdout || exitcode=$? | 
|---|
| [4fc93f] | 59 | fi | 
|---|
| [bdedb1] | 60 | #echo "Molecuilder done with exitcode $exitcode." | 
|---|
| [be97a8] | 61 | cd ../.. | 
|---|
| [4fc93f] | 62 | #cat stderr | 
|---|
|  | 63 | #cat stdout | 
|---|
| [be97a8] | 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=$? | 
|---|
| [bdedb1] | 67 | #echo "Diff done with exitcode $exitcode." | 
|---|
|  | 68 | #cat diffstderr | 
|---|
|  | 69 | #cat diffstdout | 
|---|
| [4fc93f] | 70 | test $exitcode = $expected_exitcode || exit 1 | 
|---|
|  | 71 | } | 
|---|
|  | 72 |  | 
|---|
|  | 73 | # can use $LN_S | 
|---|
|  | 74 |  | 
|---|
|  | 75 | # vim:set ft=sh: | 
|---|