X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fdata-io%2Fprint.at;h=71259e0c68dc8566c8b84824c948f4c8d7647a07;hb=e195fccfab97205acb29f90fd1168488d49f1573;hp=f1fae5de67503050b3e1100e7ad939982a062c0f;hpb=736af120ae00b122994e9e023a29c43ad722a46e;p=pspp diff --git a/tests/language/data-io/print.at b/tests/language/data-io/print.at index f1fae5de67..71259e0c68 100644 --- a/tests/language/data-io/print.at +++ b/tests/language/data-io/print.at @@ -172,7 +172,7 @@ PRINT F8.2 LIST. ]) AT_CHECK([pspp -O format=csv print.sps], [1], [dnl -print.sps:7: error: PRINT: Syntax error at `F8.2': expecting a valid subcommand. +print.sps:7.7-7.10: error: PRINT: Syntax error at `F8.2': expecting a valid subcommand. Table: Data List a,b @@ -223,3 +223,82 @@ AT_CHECK([cat write.out], [0], [dnl ]) AT_CLEANUP + +AT_SETUP([PRINT overwrites file]) +AT_DATA([output.txt], [abcdef +]) +AT_DATA([print.sps], [dnl +DATA LIST NOTABLE/x 1. +BEGIN DATA. +5 +END DATA. +PRINT OUTFILE='output.txt'/x. +EXECUTE. +]) +AT_CHECK([pspp -O format=csv print.sps]) +AT_CHECK([cat output.txt], [0], [ 5 @&t@ +]) +AT_CLEANUP + +AT_SETUP([PRINT overwrites file atomically]) +AT_DATA([output.txt], [abcdef +]) +AT_DATA([print.sps], +[[DATA LIST NOTABLE/x 1. +BEGIN DATA. +5 +END DATA. +PRINT OUTFILE='output.txt'/x. +HOST COMMAND=['kill -TERM $PPID']. +]]) +AT_CHECK([pspp -O format=csv print.sps], [143], [], [ignore]) +AT_CHECK([cat output.txt], [0], [abcdef +]) +AT_CHECK( + [for file in *.tmp*; do if test -e $file; then echo $file; exit 1; fi; done]) +AT_CLEANUP + +AT_SETUP([PRINT to same file being read]) +AT_DATA([data.txt], [5 +]) +AT_DATA([print.sps], [dnl +DATA LIST FILE='data.txt' NOTABLE/x 1. +COMPUTE y = x + 1. +PRINT OUTFILE='data.txt'/y. +EXECUTE. +]) +AT_CHECK([pspp -O format=csv print.sps]) +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