X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fdata%2Fsys-file.at;h=cd7fbb4f50a168897a0b84dc8328547e1a575738;hb=refs%2Fbuilds%2F20131017030503%2Fpspp;hp=721578e6a0aadf23048adaa846ba6ce35ca41502;hpb=a258e53c63a08b0ec48aea8f03808eb651729424;p=pspp diff --git a/tests/data/sys-file.at b/tests/data/sys-file.at index 721578e6a0..cd7fbb4f50 100644 --- a/tests/data/sys-file.at +++ b/tests/data/sys-file.at @@ -37,6 +37,57 @@ variable001,variable002,variable003,variable004 ]) AT_CLEANUP +AT_SETUP([write and read long string value labels and missing values]) +AT_DATA([sysfile.sps], [dnl +DATA LIST LIST NOTABLE/s1 s2 s3 (a9). +BEGIN DATA +a b c +END DATA. + +VALUE LABELS + /s1 'abc' 'First value label' + 'abcdefgh' 'Second value label' + 'abcdefghi' 'Third value label' + /s2 '0' 'Fourth value label' + '01234567' 'Fifth value label' + '012345678' 'Sixth value label'. + +MISSING VALUES + s1 ('0') + /s2 ('12' '123') + /s3 ('1234' '12345' '12345678'). + +SAVE /OUTFILE='foo.sav'. +GET /FILE='foo.sav'. +DISPLAY DICTIONARY. +]) +AT_CHECK([pspp -o pspp.csv sysfile.sps]) +AT_CHECK([cat pspp.csv], [0], [dnl +Variable,Description,,Position +s1,Format: A9,,1 +,Measure: Nominal,, +,Display Alignment: Left,, +,Display Width: 9,, +,"Missing Values: ""0 """,, +,abc ,First value label, +,abcdefgh ,Second value label, +,abcdefghi,Third value label, +s2,Format: A9,,2 +,Measure: Nominal,, +,Display Alignment: Left,, +,Display Width: 9,, +,"Missing Values: ""12 ""; ""123 """,, +,0 ,Fourth value label, +,01234567 ,Fifth value label, +,012345678,Sixth value label, +s3,Format: A9,,3 +,Measure: Nominal,, +,Display Alignment: Left,, +,Display Width: 9,, +,"Missing Values: ""1234 ""; ""12345 ""; ""12345678""",, +]) +AT_CLEANUP + AT_SETUP([write and read compressed files]) AT_KEYWORDS([SAVE GET system file]) AT_DATA([sysfile.sps], [dnl @@ -55,14 +106,13 @@ 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]) @@ -380,3 +430,78 @@ d,Format: A32767,,4 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. +]) +AT_CHECK([pspp -o pspp.csv get.sps]) +AT_CHECK([[sed 's/(Entered [^)]*)/(Entered )/' pspp.csv]], [0], [dnl +File label: clientèle confrère cortège crèche + +Documents in the active dataset: + +DOCUMENT coördinate smörgåsbord + +épée séance soufflé soirée + +jalapeño vicuña. + +(Entered ) + +Variable,Description,,Position +àéîöçxyzabc,Format: F8.2,,1 +,Measure: Scale,, +,Display Alignment: Right,, +,Display Width: 8,, +,1.00,éclair élan, +,Custom attributes:,, +,Atatürk,Düsseldorf Gewürztraminer, +roué,Provençal soupçon,,2 +,Format: A9,, +,Measure: Nominal,, +,Display Alignment: Left,, +,Display Width: 9,, +,abcdefghi,sauté précis, +croûton,Format: A1000,,3 +,Measure: Nominal,, +,Display Alignment: Left,, +,Display Width: 32,, + +Table: Custom data file attributes. +Attribute,Value +Furtwängler,kindergärtner +]) +AT_CLEANUP