| 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; $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 | grep -E "^[0-9]* [0-9]* [0-9]*$" @srcdir@/$mol/$2/${FILENAME}-$mol.dat | sort -n >$testdir/$RADIUS/reference-triangles.dat
|
|---|
| 63 | grep -E "^[0-9]* [0-9]* [0-9]*$" $testdir/$RADIUS/${FILENAME}.dat | sort -n >$testdir/$RADIUS/new-triangles.dat
|
|---|
| 64 | diff $testdir/$RADIUS/reference-triangles.dat $testdir/$RADIUS/new-triangles.dat 2>$testdir/$RADIUS/diffstderr >$testdir/$RADIUS/diffstdout || exitcode=$?
|
|---|
| 65 |
|
|---|
| 66 | if test $exitcode = $expected_exitcode; then
|
|---|
| 67 | :
|
|---|
| 68 | else
|
|---|
| 69 | CLEANUP=
|
|---|
| 70 | exit 1
|
|---|
| 71 | fi
|
|---|
| 72 | }
|
|---|
| 73 |
|
|---|
| 74 | # can use $LN_S
|
|---|
| 75 |
|
|---|
| 76 | # vim:set ft=sh:
|
|---|