tests: Convert test for overwriting a special file to Autotest framework.
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 10 Oct 2010 21:03:33 +0000 (14:03 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 10 Oct 2010 21:03:33 +0000 (14:03 -0700)
tests/automake.mk
tests/bugs/overwrite-special-file.sh [deleted file]
tests/language/data-io/print.at

index 3a15635101d18d4f9d153dcd6d45c8292e688a29..fc6a2cb0b0fd442d938411efcd3f5f654b141452 100644 (file)
@@ -27,7 +27,6 @@ dist_TESTS = \
        tests/formats/wkday-in.sh \
        tests/formats/wkday-out.sh \
        tests/formats/360.sh \
-       tests/bugs/overwrite-special-file.sh \
        tests/bugs/shbang.sh \
        tests/bugs/signals.sh \
        tests/bugs/temporary.sh \
diff --git a/tests/bugs/overwrite-special-file.sh b/tests/bugs/overwrite-special-file.sh
deleted file mode 100755 (executable)
index dad9157..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/sh
-
-# This program tests that simultaneous input and output to a single
-# file properly coexist, with the output atomically replacing the
-# input if successful.
-
-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
-
-# This test only works on systems that have a /dev/null device...
-test -c /dev/null || no_result
-
-# ...and that are able to make a symbolic link to it...
-ln -s /dev/null foo.out || no_result
-
-# ...that is still /dev/null.
-test -c /dev/null || no_result
-
-activity="create program 1"
-cat > $TESTFILE <<EOF
-DATA LIST /x 1.
-BEGIN DATA.
-1
-2
-3
-4
-5
-END DATA.
-PRINT OUTFILE='foo.out'/x.
-PRINT OUTFILE='foo2.out'/x.
-EXECUTE.
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-activity="run program 1"
-$SUPERVISOR $PSPP -o pspp.csv $TESTFILE
-if [ $? -ne 0 ] ; then no_result ; fi
-
-activity="check that foo2.out was created"
-diff -b foo2.out - << EOF
- 1
- 2
- 3
- 4
- 5
-EOF
-if [ $? -ne 0 ] ; then fail ; fi
-
-activity="check that foo.out is unchanged"
-test -c /dev/null || fail
-
-pass;
index c589c02da57bfa2b60b134d013eb9ad014e40e10..9381d7da4547e7706fde4453d37bf366c3bbc46b 100644 (file)
@@ -273,3 +273,32 @@ AT_CHECK([cat data.txt], [0], [     6.00 @&t@
 AT_CHECK(
   [for file in *.tmp*; do if test -e $file; then echo $file; exit 1; fi; done])
 AT_CLEANUP
+
+AT_SETUP([PRINT to special file])
+AT_SKIP_IF([test ! -c /dev/null])
+AT_CHECK([ln -s /dev/null foo.out || exit 77])
+AT_SKIP_IF([test ! -c foo.out])
+AT_DATA([print.sps], [dnl
+DATA LIST NOTABLE /x 1.
+BEGIN DATA.
+1
+2
+3
+4
+5
+END DATA.
+PRINT OUTFILE='foo.out'/x.
+PRINT OUTFILE='foo2.out'/x.
+EXECUTE.
+])
+AT_CHECK([pspp -O format=csv print.sps])
+AT_CHECK([cat foo2.out], [0], [dnl
+ 1 @&t@
+ 2 @&t@
+ 3 @&t@
+ 4 @&t@
+ 5 @&t@
+])
+ls -l foo.out foo2.out
+AT_CHECK([test -c foo.out])
+AT_CLEANUP