dnl PSPP - a program for statistical analysis. dnl Copyright (C) 2017 Free Software Foundation, Inc. dnl dnl This program is free software: you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation, either version 3 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program. If not, see . dnl 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 echo ; do true; done) | pspp], [0], [ignore], [ignore]) 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