X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fdata%2Fsys-file.at;h=86487173a066e8b5405d1924f802beb32d5ff988;hb=0200682d517fd4b7cfc4e333378de03bcf74be43;hp=e726d535404934a6396a640681904baa570f0c2b;hpb=52eef93a40a3a18c594c38d4697406eba83f4321;p=pspp diff --git a/tests/data/sys-file.at b/tests/data/sys-file.at index e726d53540..86487173a0 100644 --- a/tests/data/sys-file.at +++ b/tests/data/sys-file.at @@ -1,9 +1,28 @@ +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([system files]) # Also tests that long variable names are preserved by SAVE and GET. AT_SETUP([write and read numeric data]) AT_KEYWORDS([SAVE GET system file]) -AT_DATA([sysfile.sps], [dnl +for variant in 'UNCOMPRESSED $FL2' 'ZCOMPRESSED $FL3'; do + set $variant + compression=$1 magic=$2 + cat >sysfile.sps <sysfile.sps < /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]) @@ -131,21 +267,22 @@ LIST. ]) AT_CHECK([pspp -o pspp.csv get.sps]) AT_CHECK([cat pspp.csv], [0], [dnl -Variable,Label,,Position -cont,continents of the world,,1 -size,sq km,,2 -pop,population,,3 -count,number of countries,,4 +Table: Variables +Name,Position,Label +cont,1,continents of the world +size,2,sq km +pop,3,population +count,4,number of countries Table: Data List cont,size,pop,count -Asia ,44579000,3.7E+009,44.00 -Africa ,30065000,7.8E+008,53.00 -North America ,24256000,4.8E+008,23.00 -South America ,17819000,3.4E+008,12.00 -Antarctica ,13209000,.00,.00 -Europe ,9938000,7.3E+008,46.00 -Australia/Oceania ,7687000,31000000,14.00 +Asia,44579000,3.7E+009,44.00 +Africa,30065000,7.8E+008,53.00 +North America,24256000,4.8E+008,23.00 +South America,17819000,3.4E+008,12.00 +Antarctica,13209000,.00,.00 +Europe,9938000,7.3E+008,46.00 +Australia/Oceania,7687000,31000000,14.00 ]) AT_CLEANUP @@ -193,29 +330,18 @@ AT_BANNER([system files -- very long strings]) AT_SETUP([read very long strings written by SPSS 13]) AT_CHECK([cp $top_srcdir/tests/data/v13.sav .]) AT_DATA([sys-file.sps], [dnl -GET FILE='v13.sav'. +GET FILE='v13.sav' ENCODING='utf-8'. DISPLAY VARIABLES. LIST. ]) AT_CHECK([pspp -o pspp.csv sys-file.sps]) AT_CHECK([cat pspp.csv], [0], [dnl -Variable,Description,,Position -N,Format: F8.2,,1 -,Measure: Scale,, -,Display Alignment: Right,, -,Display Width: 10,, -A255,Format: A255,,2 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 32,, -A258,Format: A258,,3 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 32,, -A2000,Format: A2000,,4 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 32,, +Table: Variables +Name,Position,Print Format,Write Format +N,1,F8.2,F8.2 +A255,2,A255,A255 +A258,3,A258,A258 +A2000,4,A2000,A2000 Table: Data List N,A255,A258,A2000 @@ -227,29 +353,18 @@ AT_CLEANUP AT_SETUP([read very long strings written by SPSS 14]) AT_CHECK([cp $top_srcdir/tests/data/v14.sav .]) AT_DATA([sys-file.sps], [dnl -GET FILE='v14.sav'. +GET FILE='v14.sav' ENCODING='utf-8'. DISPLAY VARIABLES. LIST. ]) AT_CHECK([pspp -o pspp.csv sys-file.sps]) AT_CHECK([cat pspp.csv], [0], [dnl -Variable,Description,,Position -vl255,Format: A255,,1 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 26,, -vl256,Format: A256,,2 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 26,, -vl1335,Format: A1335,,3 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 26,, -vl2000,Format: A2000,,4 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 26,, +Table: Variables +Name,Position,Print Format,Write Format +vl255,1,A255,A255 +vl256,2,A256,A256 +vl1335,3,A1335,A1335 +vl2000,4,A2000,A2000 Table: Data List vl255,vl256,vl1335,vl2000 @@ -271,9 +386,9 @@ m4_define([VLS_WRITE], vls_gen_data AT_DATA([save.sps], [dnl DATA LIST FIXED NOTABLE FILE='data.txt' - /a 2-11 (a) - b (a256) - c (a200) + /a 2-11 (a) + b (a256) + c (a200) d (a32767). SAVE OUTFILE='foo.sav' /$1. @@ -285,7 +400,7 @@ GET FILE='foo.sav'. DISPLAY VARIABLES. PRINT OUTFILE='out.txt' - /a (a10) b (a256) c (a200) + /a (a10) b (a256) c (a200) d (a32767) . @@ -293,25 +408,80 @@ EXECUTE. ]) AT_CHECK([pspp -o pspp.csv get.sps]) AT_CHECK([cat pspp.csv], [0], [dnl -Variable,Description,,Position -a,Format: A10,,1 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 10,, -b,Format: A256,,2 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 32,, -c,Format: A200,,3 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 32,, -d,Format: A32767,,4 -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 32,, +Table: Variables +Name,Position,Print Format,Write Format +a,1,A10,A10 +b,2,A256,A256 +c,3,A200,A200 +d,4,A32767,A32767 ]) AT_CLEANUP]) VLS_WRITE([UNCOMPRESSED]) VLS_WRITE([COMPRESSED]) + +dnl This test writes non-ASCII characters to most of the string fields in +dnl a .sav file and demonstrates that they are properly read back in. +dnl XXX mrsets tests are missing. +AT_SETUP([system file character encoding]) +AT_CHECK([i18n-test supports_encodings windows-1252]) +AT_DATA([save.sps], [dnl +SET LOCALE='windows-1252'. +DATA LIST LIST NOTABLE /àéîöçxyzabc * roué (A9) croûton (A1000). +FILE LABEL 'clientèle confrère cortège crèche'. +DOCUMENT coördinate smörgåsbord +épée séance soufflé soirée +jalapeño vicuña. +VALUE LABEL + /àéîöçxyzabc 1 'éclair élan' + /roué 'abcdefghi' 'sauté précis'. +VARIABLE LABEL + roué 'Provençal soupçon'. +DATAFILE ATTRIBUTE + ATTRIBUTE=Furtwängler('kindergärtner'). +VARIABLE ATTRIBUTE + VARIABLES=àéîöçxyzabc + ATTRIBUTE=Atatürk('Düsseldorf Gewürztraminer'). +BEGIN DATA. +1 a x +2 b y +3 c z +END DATA. +SAVE OUTFILE='foo.sav'. +]) +AT_CHECK([pspp -O format=csv save.sps]) +AT_DATA([get.sps], [dnl +GET FILE='foo.sav'. +DISPLAY FILE LABEL. +DISPLAY DOCUMENTS. +DISPLAY DICTIONARY. +DISPLAY ATTRIBUTES. +]) +AT_CHECK([pspp -o pspp.csv get.sps]) +AT_CHECK([[sed 's/(Entered [^)]*)/(Entered )/' pspp.csv]], [0], [dnl +Table: File Label +Label,clientèle confrère cortège crèche + +Table: Documents +"DOCUMENT coördinate smörgåsbord +épée séance soufflé soirée +jalapeño vicuña. + (Entered )" + +Table: Variables +Name,Position,Label,Measurement Level,Role,Width,Alignment,Print Format,Write Format +àéîöçxyzabc,1,,Scale,Input,8,Right,F8.2,F8.2 +roué,2,Provençal soupçon,Nominal,Input,9,Left,A9,A9 +croûton,3,,Nominal,Input,32,Left,A1000,A1000 + +Table: Value Labels +Variable Value,,Label +àéîöçxyzabc,1.00,éclair élan +Provençal soupçon,abcdefghi,sauté précis + +Table: Variable and Dataset Attributes +Variable and Name,,Value +(dataset),Furtwängler,kindergärtner +àéîöçxyzabc,Atatürk,Düsseldorf Gewürztraminer +]) +AT_CLEANUP