AT_BANNER([command parser]) dnl Tests for a bug which crashed pspp when given certain invalid input. AT_SETUP([command parser crash bug]) AT_DATA([command.sps], [dnl DATA rubbish. EXECUTE. ]) AT_CHECK([pspp -O format=csv command.sps], [1], [dnl command.sps:1: error: Unknown command `DATA rubbish'. command.sps:2: error: EXECUTE: EXECUTE is allowed only after the active dataset has been defined. ]) AT_CLEANUP dnl Tests for a bug where FINISH or EXIT wasn't executed until the lexer dnl read the first token of the next command. dnl dnl (If this reecurs, the the test will run forever.) AT_SETUP([FINISH executes immediately]) AT_CHECK([(echo "FINISH."; while :; do echo; done) | pspp]) AT_CLEANUP 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 AT_BANNER([N OF CASES]) AT_SETUP([N OF CASES]) AT_DATA([n-of-cases.sps], [dnl INPUT PROGRAM. LOOP #i = 1 TO 100. COMPUTE x=#i. END CASE. END LOOP. END FILE. END INPUT PROGRAM. N OF CASES 15. LIST. ]) AT_CHECK([pspp -O format=csv n-of-cases.sps], [0], [dnl Table: Data List x 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 ]) AT_CLEANUP AT_BANNER([COMMENT]) dnl Tests for a bug wherein a comment just before end-of-file caused an dnl infinite loop. AT_SETUP([COMMENT at end of file]) AT_DATA([comment.sps], [dnl COMMENT this is a comment at end of file. ]) AT_CHECK([pspp -O format=csv comment.sps]) AT_CLEANUP