From 102b36fbfea43934c8dbfe1daa8da6a705ad0f7c Mon Sep 17 00:00:00 2001 From: Ben Pfaff <blp@cs.stanford.edu> Date: Sat, 25 Sep 2010 16:38:27 -0700 Subject: [PATCH] tests: Convert erase.sh test to use Autotest. --- tests/automake.mk | 2 +- tests/command/erase.sh | 105 -------------------------------------- tests/language/command.at | 27 ++++++++++ 3 files changed, 28 insertions(+), 106 deletions(-) delete mode 100755 tests/command/erase.sh create mode 100644 tests/language/command.at diff --git a/tests/automake.mk b/tests/automake.mk index a873a726..2ba62d58 100644 --- a/tests/automake.mk +++ b/tests/automake.mk @@ -10,7 +10,6 @@ TESTS_ENVIRONMENT += LC_ALL=C TESTS_ENVIRONMENT += EXEEXT=$(EXEEXT) dist_TESTS = \ - tests/command/erase.sh \ tests/command/examine.sh \ tests/command/examine-extremes.sh \ tests/command/examine-percentiles.sh \ @@ -392,6 +391,7 @@ EXTRA_DIST += \ TESTSUITE_AT = \ tests/data/calendar.at \ tests/data/data-in.at \ + tests/language/command.at \ tests/language/control/do-if.at \ tests/language/control/do-repeat.at \ tests/language/data-io/add-files.at \ diff --git a/tests/command/erase.sh b/tests/command/erase.sh deleted file mode 100755 index 20fe9276..00000000 --- a/tests/command/erase.sh +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/sh - -# This program tests the ERASE command. - -TEMPDIR=/tmp/pspp-tst-$$ -TESTFILE=$TEMPDIR/`basename $0`.sps - -# ensure that top_builddir are absolute -if [ -z "$top_builddir" ] ; then top_builddir=. ; fi -if [ -z "$top_srcdir" ] ; then top_srcdir=. ; fi -top_builddir=`cd $top_builddir; pwd` -PSPP=$top_builddir/src/ui/terminal/pspp$EXEEXT - -# ensure that top_srcdir is absolute -top_srcdir=`cd $top_srcdir; pwd` - -STAT_CONFIG_PATH=$top_srcdir/config -export STAT_CONFIG_PATH - - -cleanup() -{ - if [ x"$PSPP_TEST_NO_CLEANUP" != x ] ; then - echo "NOT cleaning $TEMPDIR" - return ; - fi - cd / - rm -rf $TEMPDIR -} - - -fail() -{ - echo $activity - echo FAILED - cleanup; - exit 1; -} - - -no_result() -{ - echo $activity - echo NO RESULT; - cleanup; - exit 2; -} - -pass() -{ - cleanup; - exit 0; -} - -mkdir -p $TEMPDIR - -cd $TEMPDIR - -activity="create file" -cat > $TEMPDIR/foobar <<EOF -xyzzy -EOF -if [ $? -ne 0 ] ; then no_result ; fi - -activity="check for file 1" -if [ ! -f $TEMPDIR/foobar ] ; then no_result ; fi - - -activity="create program 1" -cat > $TESTFILE <<EOF -set safer on - -erase FILE='foobar'. - -EOF -if [ $? -ne 0 ] ; then no_result ; fi - -# foobar must still exist -activity="check for file 2" -if [ ! -f $TEMPDIR/foobar ] ; then fail ; fi - -# This command must fail -activity="run prog 1" -$SUPERVISOR $PSPP -o pspp.csv -e /dev/null $TESTFILE -if [ $? -eq 0 ] ; then fail ; fi - - -activity="create program 2" -cat > $TESTFILE <<EOF - -erase FILE='foobar'. - -EOF -if [ $? -ne 0 ] ; then no_result ; fi - - -activity="run prog 2" -$SUPERVISOR $PSPP -o pspp.csv $TESTFILE -if [ $? -ne 0 ] ; then fail ; fi - -# foobar should now be gone -if [ -f $TEMPDIR/foobar ] ; then fail ; fi - - -pass; diff --git a/tests/language/command.at b/tests/language/command.at new file mode 100644 index 00000000..5636caff --- /dev/null +++ b/tests/language/command.at @@ -0,0 +1,27 @@ +AT_BANNER([ERASE]) + +AT_SETUP([ERASE -- safer mode]) +AT_DATA([foobar], [contents +]) +AT_DATA([erase.sps], [dnl +set safer on + +erase FILE='foobar'. +]) +AT_CHECK([pspp -O format=csv erase.sps], [1], [dnl +erase.sps:3: error: ERASE: This command not allowed when the SAFER option is set. +]) +AT_CHECK([cat foobar], [0], [contents +]) +AT_CLEANUP + +AT_SETUP([ERASE -- not safer mode]) +AT_DATA([foobar], [contents +]) +AT_CHECK([test -e foobar]) +AT_DATA([erase.sps], [dnl +erase FILE='foobar'. +]) +AT_CHECK([pspp -O format=csv erase.sps]) +AT_CHECK([test ! -e foobar]) +AT_CLEANUP -- 2.30.2