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([files handling]) AT_SETUP([Write error - directory exists]) mkdir foobar.sav AT_DATA([file.sps], [dnl DATA LIST NOTABLE/x 1. BEGIN DATA. 5 END DATA. SAVE OUTFILE='foobar.sav'. ]) AT_CHECK([pspp -O format=csv file.sps], [1], [dnl error: Opening foobar.sav for writing: Is a directory. error: Error opening `foobar.sav' for writing as a system file: Is a directory. ]) AT_CLEANUP AT_SETUP([Write error - no permission]) mkdir directory touch directory/foobar.sav chmod 000 directory AT_DATA([file.sps], [dnl DATA LIST NOTABLE/x 1. BEGIN DATA. 5 END DATA. SAVE OUTFILE='directory/foobar.sav'. ]) AT_CHECK([pspp -O format=csv file.sps], [1], [dnl error: Creating temporary file to replace directory/foobar.sav: Permission denied. error: Error opening `directory/foobar.sav' for writing as a system file: Permission denied. ]) chmod 700 directory AT_CLEANUP AT_SETUP([Write error - temp file disappeared]) AT_DATA([file.sps], [dnl DATA LIST NOTABLE/x 1. BEGIN DATA. 5 END DATA. XSAVE OUTFILE='foobar.sav'. HOST COMMAND=[['rm foobar.savtmp*']]. EXECUTE. ]) AT_CHECK([pspp -O format=csv file.sps], [1], [ignore]) AT_CLEANUP AT_SETUP([Write fifo]) dnl The Fifo feature is not available in w32 builds AT_SKIP_IF([$MINGW]) AT_DATA([file.sps], [dnl DATA LIST NOTABLE/x 1. BEGIN DATA. 5 END DATA. SAVE OUTFILE='foobar.sav'. ]) mkfifo foobar.sav cat foobar.sav > /dev/null & pid=$! AT_CHECK([pspp -O format=csv file.sps], [0], [ignore]) AT_CLEANUP AT_SETUP([Reading from pipe]) AT_DATA([pipe.sps], [dnl data list file='printf "1 2\n 3 4\n 5 6\n" |' notable list /x * y *. list. ]) AT_CHECK([pspp -O format=csv pipe.sps], [0], [dnl Table: Data List x,y 1.00,2.00 3.00,4.00 5.00,6.00 ]) AT_CLEANUP dnl This was seen to crash pspp AT_SETUP([Reusing inline file]) AT_DATA([inline-reuse.sps], [dnl get data /type=txt /file=inline /variables=A f7.2 . data list notable list /foo. begin data. end data. data list notable list /foo. ]) AT_CHECK([pspp inline-reuse.sps], [0], [ignore]) AT_CLEANUP