X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fdata%2Fsys-file.at;h=5bd505c1ff6224f3c6271a9ec55d75a6c8133711;hb=a2979bf95f3eb83e88a3bd723c09f22548775de5;hp=e726d535404934a6396a640681904baa570f0c2b;hpb=52eef93a40a3a18c594c38d4697406eba83f4321;p=pspp diff --git a/tests/data/sys-file.at b/tests/data/sys-file.at index e726d53540..5bd505c1ff 100644 --- a/tests/data/sys-file.at +++ b/tests/data/sys-file.at @@ -55,14 +55,78 @@ GET FILE='com.sav'. LIST. ]) AT_CHECK([pspp -o pspp.csv sysfile.sps]) -dnl Make sure file really was compressd. -AT_CHECK([dd if=com.sav bs=1 skip=72 count=4 2> /dev/null | od | sed '1q' > com.txt]) -dnl Allow big- or little-endian format. +dnl Make sure file really was compressd, allowing big- or little-endian format. +AT_CHECK([dd if=com.sav bs=1 skip=72 count=4 2> /dev/null > com.sav.subset]) +od com.sav.subset AT_CHECK( - [(echo '0000000 000000 000001' | diff com.txt -) || - (echo '0000000 000001 000000' | diff com.txt -)], [0], + [(printf '\000\000\000\001' | cmp -l com.sav.subset -) || + (printf '\001\000\000\000' | cmp -l com.sav.subset -)], [0], [ignore]) -AT_CAPTURE_FILE([com.txt]) +AT_CLEANUP + +AT_SETUP([overwriting system file]) +AT_DATA([output.sav], [abcdef +]) +cp output.sav output.sav.backup +AT_DATA([sysfile.sps], [dnl +DATA LIST NOTABLE/x 1. +BEGIN DATA. +5 +END DATA. +SAVE OUTFILE='output.sav'. +]) +AT_CHECK([pspp -O format=csv sysfile.sps]) +AT_CHECK([cmp output.sav output.sav.backup], [1], [ignore]) +AT_CLEANUP + +AT_SETUP([overwriting system file atomically]) +AT_DATA([output.sav], [abcdef +]) +cp output.sav output.sav.backup +AT_DATA([sysfile.sps], +[[DATA LIST NOTABLE/x 1. +BEGIN DATA. +5 +END DATA. +XSAVE OUTFILE='output.sav'. +HOST COMMAND=['kill -TERM $PPID']. +]]) +AT_CHECK([pspp -O format=csv sysfile.sps], [143], [], [ignore]) +AT_CHECK([cmp output.sav output.sav.backup]) +AT_CHECK( + [for file in *.tmp*; do if test -e $file; then echo $file; exit 1; fi; done]) +AT_CLEANUP + + +AT_SETUP([write to same system file being read]) +AT_DATA([save.sps], [dnl +DATA LIST NOTABLE/x 1. +BEGIN DATA. +3 +END DATA. +SAVE OUTFILE='data.sav'. +]) +AT_CHECK([pspp -O format=csv save.sps]) +AT_CHECK([test -s data.sav]) +AT_CHECK( + [for file in *.tmp*; do if test -e $file; then echo $file; exit 1; fi; done]) +AT_DATA([save2.sps], [dnl +GET FILE='data.sav'. +COMPUTE y = x * 3. +SAVE OUTFILE='data.sav'. +]) +AT_CHECK([pspp -O format=csv save2.sps]) +AT_CHECK( + [for file in *.tmp*; do if test -e $file; then echo $file; exit 1; fi; done]) +AT_DATA([save3.sps], [dnl +GET FILE='data.sav'. +LIST. +]) +AT_CHECK([pspp -O format=csv save3.sps], [0], [dnl +Table: Data List +x,y +3,9.00 +]) AT_CLEANUP AT_SETUP([nonempty case_map doesn't crash])