X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fdata%2Fsys-file-reader.at;h=e181b26eb580d691ef3d54b99d5b8b1b9f4f6511;hb=c2b953d03cc404e6edfd57f9dce96493b5ea834a;hp=2706228eb62987edd3b1e517741e673003181aaa;hpb=ff85c7d77222c0ea90a9fc35b36eebd34eca52d2;p=pspp diff --git a/tests/data/sys-file-reader.at b/tests/data/sys-file-reader.at index 2706228eb6..e181b26eb5 100644 --- a/tests/data/sys-file-reader.at +++ b/tests/data/sys-file-reader.at @@ -121,13 +121,8 @@ s8 "abcd"; s8 "efgh"; s8 "ijkl"; s8 "mnop"; s8 "qrst"; s8 "uvwx"; s16 "yzABCDEFGHI"; s16 "JKLMNOPQR"; s16 "STUVWXYZ01"; s16 "23456789abc"; s32 "defghijklmnopqstuvwxyzABC"; ]) -for variant in \ - "be ae072375af73d628a544cc2230dd72c9" \ - "le 039a21ab64f68c65b240e782a6b0f563" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY FILE LABEL. @@ -140,11 +135,11 @@ File label: PSPP synthetic test file: ôõöø Variable,Description,,Position num1,Format: F8.0,,1 -num2,Numeric variable 2's label (ùúû),,2 +num2,Label: Numeric variable 2's label (ùúû),,2 ,Format: F8.0,, num3,Format: F8.0,,3 ,Missing Values: 1,, -num4,Another numeric variable label,,4 +num4,Label: Another numeric variable label,,4 ,Format: F8.0,, ,Missing Values: 1,, num5,Format: F8.0,,5 @@ -160,11 +155,11 @@ num9,Format: F8.0,,9 numàèìñò,Format: F8.0,,10 ,Missing Values: LOWEST THRU 1; 5,, str1,Format: A4,,11 -str2,String variable 2's label,,12 +str2,Label: String variable 2's label,,12 ,Format: A4,, str3,Format: A4,,13 ,"Missing Values: ""MISS""",, -str4,Another string variable label,,14 +str4,Label: Another string variable label,,14 ,Format: A4,, ,"Missing Values: ""OTHR""",, str5,Format: A4,,15 @@ -179,7 +174,7 @@ str9,Format: A10,,19 ,"Missing Values: ""abcdefgh""; ""01234567""",, str10,Format: A11,,20 ,"Missing Values: ""abcdefgh""; ""01234567""; ""0 """,, -str11,25-byte string,,21 +str11,Label: 25-byte string,,21 ,Format: A25,, Table: Data List @@ -216,13 +211,8 @@ dnl Dictionary termination record. dnl Data. 1.0; 2.0; ]) -for variant in \ - "be 413e7bc80a47fcd7e4c8020e8e120060" \ - "le d7db9120b1ff28c83aa6fe9fc405d903" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -232,7 +222,7 @@ LIST. AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl Variable,Description,,Position num1,Format: F8.0,,1 -num2,Numeric variable 2's label,,2 +num2,Label: Numeric variable 2's label,,2 ,Format: F8.0,, Table: Data List @@ -272,13 +262,8 @@ dnl Dictionary termination record. dnl Data. 1.0; 2.0; ]) -for variant in \ - "be 3d17aae7d99538dc73c5cb42692b1038" \ - "le 8ad1000df598617d5258f323c882d749" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -288,7 +273,7 @@ LIST. AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl Variable,Description,,Position num1,Format: F8.0,,1 -num2,Numeric variable 2's label,,2 +num2,Label: Numeric variable 2's label,,2 ,Format: F8.0,, Table: Data List @@ -411,13 +396,8 @@ COUNT("abcdefghijklmnopq"); COUNT("value label for `abcdefghijklmnopq'"); dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be b27d766d8a5ad9e901c8b244591a5942" \ - "le eb2e93f3cc29acd605b80e6c3af25ba6" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -520,13 +500,8 @@ dnl Dictionary termination record. dnl Data. 1.0; ]) -for variant in \ - "be 3555f74f3e714a3a703de7df56ce6d24" \ - "le ede5a0f805a1aab096ea86abf677ff34" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DOCUMENTS. @@ -599,13 +574,14 @@ dnl Machine integer info record. 7; 7; 1; COUNT( "$a=C 10 my mcgroup "; i8 0x82; i8 0xa0; " b c"; i8 10; - "$b=D2 55 0 g e f d"; i8 10; + "$b=D2 55 0 g e f d"; i8 10; i8 10; "$c=D4 "; i8 0x82; i8 0xcd; i8 0x82; i8 0xa2; " 10 mdgroup #2 h i j"; i8 10); 7; 19; 1; COUNT( + i8 10; "$d=E 1 2 34 13 third mdgroup k l m"; i8 10; - "$e=E 11 6 choice 0 n o p"; i8 10); + "$e=E 11 6 choice 0 n o p"; i8 10; i8 10; i8 10; i8 10); dnl Character encoding record. 7; 20; 1; 9; "shift_jis"; @@ -613,13 +589,8 @@ dnl Character encoding record. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be fdf260a05220e08c748967dcb90d8b15" \ - "le 4c9b0c0636bc0aa0cc16684c8188d1c7" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. MRSETS /DISPLAY NAME=ALL. @@ -700,13 +671,8 @@ dnl Extra product info. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 0e1cac77501322b012637dcaeb3858ab" \ - "le ecffd25cae41bbc89c29487abe192016" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl SYSFILE INFO FILE='sys-file.sav'. ]) @@ -777,13 +743,8 @@ dnl Variable display parameters dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be c130d9345080579b8862b360924edbfa" \ - "le 6fde96f5a7c7386bff6cca049cd84d6a" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -897,13 +858,8 @@ dnl Variable display parameters dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 3ace75689a0b7faa9360936bbfe26055" \ - "le 6e93f35d19a9882eb53ffb1b067ef7cd" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -1009,13 +965,8 @@ dnl Character encoding record. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 8ea5a72f3ae6e732371e92a7719c3951" \ - "le 02bcf02cf08b1e8fc80a858101ae22fc" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -1082,13 +1033,8 @@ dnl Data. "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#" * 9; "abcdefghijklmnopqrstuvwxyzABCDEF"; ]) -for variant in \ - "be 844a4704f669dfe292482e587d690133" \ - "le b76025f602bdff6a42c1e0795a8b62ff" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -1157,13 +1103,8 @@ dnl Character encoding record. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 7fff0c04f697adf45f55d8be4aaa8712" \ - "le 7331339199344aa58bc60d7d05d538a7" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY @ATTRIBUTES. @@ -1256,13 +1197,8 @@ dnl Character encoding record. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be b08b39cd005682f680d132d272f5158d" \ - "le 176e4ac91197f5cb8732258033cfabdc" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -1297,7 +1233,7 @@ dnl File header. "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file"; 2; dnl Layout code 6; dnl Nominal case size -1; dnl Not compressed +1; dnl Simple compression 0; dnl Not weighted -1; dnl Unspecified number of cases. 100.0; dnl Bias. @@ -1324,13 +1260,8 @@ s8 "vwxyzABC"; s8 "DEFG"; s8 "HIJKLMNO"; i8 254 253 252 0 0 0 0 0; s8 "PQRSTUVW"; ]) -for variant in \ - "be c0670e436b068f45710b98f6f7d01dc5" \ - "le 2e43a7f8861df4e714a192dfb3c8b2f4" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -1361,7 +1292,7 @@ dnl File header. "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file"; 2; dnl Layout code 6; dnl Nominal case size -1; dnl Not compressed +1; dnl Simple compression. 0; dnl Not weighted -1; dnl Unspecified number of cases. 0.0; dnl Bias. @@ -1388,13 +1319,8 @@ s8 "vwxyzABC"; s8 "DEFG"; s8 "HIJKLMNO"; i8 254 253 252 0 0 0 0 0; s8 "PQRSTUVW"; ]) -for variant in \ - "be 2f0d25704ee497ae833213a3e4ff5e8b" \ - "le 49f68a9e1ba02a2f7e9166686a0db9d9" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -1425,7 +1351,7 @@ dnl File header. "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file"; 2; dnl Layout code 6; dnl Nominal case size -1; dnl Not compressed +1; dnl Simple compression. 0; dnl Not weighted -1; dnl Unspecified number of cases. 50.0; dnl Bias. @@ -1452,13 +1378,8 @@ s8 "vwxyzABC"; s8 "DEFG"; s8 "HIJKLMNO"; i8 254 253 252 0 0 0 0 0; s8 "PQRSTUVW"; ]) -for variant in \ - "be 668b85e3dee0797883e9933a096b8c18" \ - "le 5e7a9c4e88cd2dbc2322943da663868e" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -1485,6 +1406,100 @@ num1,num2,str4,str8,str15 ]) done AT_CLEANUP + +m4_divert_push([PREPARE_TESTS]) +zcompressed_sack () { + cat <<'EOF' +dnl File header. +"$FL3"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file"; +2; dnl Layout code +6; dnl Nominal case size +2; dnl zlib compressed +0; dnl Not weighted +-1; dnl Unspecified number of cases. +100.0; dnl Bias. +"01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file"; +i8 0 *3; + +dnl Numeric variables. +2; 0; 0; 0; 0x050800 *2; s8 "NUM1"; +2; 0; 0; 0; 0x050800 *2; s8 "NUM2"; + +dnl String variable. +2; 4; 0; 0; 0x010400 *2; s8 "STR4"; +2; 8; 0; 0; 0x010800 *2; s8 "STR8"; +2; 15; 0; 0; 0x010f00 *2; s8 "STR15"; +2; -1; 0; 0; 0; 0; s8 ""; + +dnl Dictionary termination record. +999; 0; + +dnl ZLIB data header. +i64 0x178; # zheader_ofs +i64 0x1e9; # ztrailer_ofs +i64 48; # ztrailer_len + +dnl ZLIB data block. +dnl +dnl This is the compressed form of: +dnl +dnl 01 64 fe fd fe fd ff fb 61 62 63 64 65 66 67 68 |.d......abcdefgh| +dnl 30 31 32 33 20 20 20 20 fd fd fd fe 65 66 fd fd |0123 ....ef..| +dnl 6a 6b 6c 6d 20 20 20 20 6e 6f 70 71 72 73 74 75 |jklm nopqrstu| +dnl 76 77 78 79 7a 41 42 43 44 45 46 47 20 20 20 20 |vwxyzABCDEFG | +dnl 48 49 4a 4b 4c 4d 4e 4f fe fd fc 00 00 00 00 00 |HIJKLMNO........| +dnl 50 51 52 53 54 55 56 57 |PQRSTUVW| +dnl +dnl which is the data from the "compressed data" test. +hex "78 01 63 4c f9 f7 f7 df df ff bf 13 93 92 53 52"; +hex "d3 d2 33 0c 0c 8d 8c 15 80 e0 ef df bf ff 52 d3"; +hex "fe fe cd ca ce c9 05 f1 f3 f2 0b 0a 8b 8a 4b 4a"; +hex "cb ca 2b 2a ab 1c 9d 9c 5d 5c dd dc 41 e2 1e 9e"; +hex "5e de 3e be 7e fe ff fe fe 61 00 81 80 c0 a0 e0"; +hex "90 d0 b0 70 00 0f 3f 23 d7"; + +dnl ZLIB data trailer fixed header: +i64 -100; # ztrailer_bias +i64 0; # ztrailer_zero +0x3ff000; # block_size +1; # n_blocks + +dnl ZLIB block descriptor: +i64 0x178; # uncompressed_ofs +i64 0x190; # compressed_ofs +88; # uncompressed_size +89; # compressed_size +EOF +} +m4_divert_pop([PREPARE_TESTS]) + +AT_SETUP([zcompressed data]) +AT_KEYWORDS([sack synthetic system file positive zlib]) +zcompressed_sack > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [dnl +GET FILE='sys-file.sav'. +DISPLAY DICTIONARY. +LIST. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps]) + AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl +Variable,Description,,Position +num1,Format: F8.0,,1 +num2,Format: F8.0,,2 +str4,Format: A4,,3 +str8,Format: A8,,4 +str15,Format: A15,,5 + +Table: Data List +num1,num2,str4,str8,str15 +-99,0,,abcdefgh,0123 @&t@ +.,151,jklm,nopqrstu,vwxyzABC @&t@ +1,2,DEFG,HIJKLMNO,PQRSTUV +]) +done +AT_CLEANUP AT_BANNER([system file reader - negative]) @@ -1501,13 +1516,8 @@ dnl Numeric variable. dnl Type 4 record. >>4<<; ]) -for variant in \ - "be 6e0bb549fff1fd1af333d51b8a6e0f43" \ - "le 7b62734edcee2a1689c463f2866d11b8" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -1529,13 +1539,8 @@ dnl Numeric variable. dnl Type 8 record (not a valid type). >>8<<; ]) -for variant in \ - "be dc8f078c23046ee7db74ec1003178a11" \ - "le dc7f111642f0629f4370630fd092eee3" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -1557,13 +1562,8 @@ dnl Numeric variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be c57e91aa426f61813c3ad91ea3a56dda" \ - "le 5d1a6c114b135b219473c8ad5bb44bda" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], @@ -1585,13 +1585,8 @@ dnl Numeric variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be decb7ac6defa1ab3cc7a386d1843c1ae" \ - "le 5279b6275633bac55d167faebccfdb14" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -1613,13 +1608,8 @@ dnl Numeric variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 57e6ad709668bbf538e2efee4af49916" \ - "le 523f14b611efa380bbadf7a16ea43fed" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -1641,13 +1631,8 @@ dnl String variable with invalid width 256. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 170bb18589ba264a0ed2d57b41fe77e1" \ - "le 9528b4b5936ef5630bbd3bdd60a123c3" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -1656,6 +1641,8 @@ do done AT_CLEANUP +dnl SPSS-generated system file can contain duplicate variable names +dnl (see bug #41475). AT_SETUP([duplicate variable name]) AT_KEYWORDS([sack synthetic system file negative]) AT_DATA([sys-file.sack], [dnl @@ -1670,17 +1657,23 @@ dnl Numeric variables. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be d8f5fd768ab1d641f9330a4840c71343" \ - "le f01e123d384cdaa7c2f7fc4791325ebf" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +DISPLAY DICTIONARY. ]) - AT_CHECK([pspp -O format=csv sys-file.sps], [1], - [error: `sys-file.sav' near offset 0xd4: Duplicate variable name `VAR1'. + AT_CHECK([pspp -O format=csv sys-file.sps], [0], + [warning: `sys-file.sav' near offset 0xd4: Renaming variable with duplicate name `VAR1' to `VAR001'. + +Variable,Description,,Position +var1,Format: F8.0,,1 +,Measure: Scale,, +,Display Alignment: Right,, +,Display Width: 8,, +var001,Format: F8.0,,2 +,Measure: Scale,, +,Display Alignment: Right,, +,Display Width: 8,, ]) done AT_CLEANUP @@ -1698,13 +1691,8 @@ dnl Numeric variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 3c5ff8d8f146457a385ca92d3d23ca8a" \ - "le 37e9f956d321ae57b0bf7fe2384e892b" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -1726,13 +1714,8 @@ dnl Numeric variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be d1d0d4aedf9f053452c4b1e658ade5e2" \ - "le df697575499fe12921185a3d23a5d61d" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -1754,13 +1737,8 @@ dnl String variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be f833033be7b102fae19159989f62faa6" \ - "le 9704ba828bb7a36ef0262838f6b7936b" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -1783,13 +1761,8 @@ dnl String variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be c8f9ad2b2acd2918055e2b78c1e0b4b8" \ - "le 1afab4d6aee90a6fe8d2dbf229e06409" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -1822,13 +1795,8 @@ dnl String variable, wrong width formats. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be c6ef5d8fded46443aba89adfafe15cad" \ - "le fccaf1764c973892f2d5adbcc2c36fb7" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -1911,13 +1879,8 @@ s16 "yzABCDEFGHI"; s16 "JKLMNOPQR"; s16 "STUVWXYZ01"; s16 "23456789abc"; s32 "defghijklmnopqstuvwxyzABC"; ]) -for variant in \ - "be 26e815cfb41eaedb435ea3c81b96215c" \ - "le 72d70456bd4dc88bb0a0fdb039ccdfa3" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. @@ -1971,17 +1934,23 @@ dnl String variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 82d30105e46c4896c24f9dcec26c4749" \ - "le 32e235119be70050eb78bf4186a5a046" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +DISPLAY DICTIONARY. ]) - AT_CHECK([pspp -O format=csv sys-file.sps], [1], - [error: `sys-file.sav': Weighting variable must be numeric (not string variable `STR1'). + AT_CHECK([pspp -O format=csv sys-file.sps], [0], + [warning: `sys-file.sav': Ignoring string variable `STR1' set as weighting variable. + +Variable,Description,,Position +num1,Format: F8.0,,1 +,Measure: Scale,, +,Display Alignment: Right,, +,Display Width: 8,, +str1,Format: A4,,2 +,Measure: Nominal,, +,Display Alignment: Left,, +,Display Width: 4,, ]) done AT_CLEANUP @@ -2002,13 +1971,8 @@ dnl String variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be cd9af924ff20bc75834aa2c696254c97" \ - "le cbe0f2f514f5e95f27644d0b4314bc78" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -2022,7 +1986,7 @@ AT_KEYWORDS([sack synthetic system file negative]) AT_DATA([sys-file.sack], [dnl dnl File header. "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file"; -2; 2; 1; >>3<<; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3; +2; 3; 1; >>3<<; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3; dnl Numeric variable. 2; 0; 0; 0; 0x050800 *2; s8 "NUM1"; @@ -2034,13 +1998,8 @@ dnl Long string variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 0c395354df56ea5ff374aafcc535d633" \ - "le d977f684ea9d4648ed40f8c6dddde9f7" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], @@ -2068,13 +2027,8 @@ dnl Dictionary termination record. dnl Data. 1.0; ]) -for variant in \ - "be 18aa3348a216ed494efe28285b348fa8" \ - "le 19b21522bcef1dcc60af328f923f307e" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -2104,13 +2058,8 @@ dnl Dictionary termination record. dnl Data. 1.0; ]) -for variant in \ - "be d8ef29c1b97f9ed226cbd938c9c49b6e" \ - "le f6a560c5b62e2c472429d85294f36e61" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -2133,13 +2082,8 @@ dnl Numeric variable, no label or missing values. dnl Too-large extension record. 7; 3; >>0xfffff000 * 2<<; ]) -for variant in \ - "be 5a6679dc41ac349b0b73fc430937c05c" \ - "le d4769c7f650cfbf160e0386d0d33be04" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -2165,13 +2109,8 @@ dnl Unknown extension record type. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be ac8395e27677408189bcb8655e56cc0e" \ - "le e308bfcd51f1e3c28d7379c29271f9d6" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -2197,13 +2136,10 @@ dnl Machine integer info record. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 21ec84826886b0a266d1360f8279d769" \ - "le 15dcba7b2b89b7d8a21ebcc872f515af" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore]) - AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [dnl +GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl "warning: `sys-file.sav' near offset 0xd8: Record type 7, subtype 3 has bad count 9 (expected 8)." @@ -2227,13 +2163,10 @@ dnl Machine integer info record. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be d510ed28278649eee997fb6881a4c04f" \ - "le fbf1eca561a4e243b7ae844ed1677035" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore]) - AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [dnl +GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl error: `sys-file.sav' near offset 0xd8: Floating-point representation indicated by system file (2) differs from expected (1). @@ -2257,19 +2190,15 @@ dnl Machine integer info record. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 855123d16d5e1560b91d60753dad79ad 1" \ - "le d6626b4fa2e46a91f26c2fc609b2f1e0 2" -do +for variant in "be 1" "le 2"; do set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) + AT_CHECK([sack --$[1] sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. DISPLAY DICTIONARY. ]) AT_CHECK_UNQUOTED([pspp -O format=csv sys-file.sps], [0], [dnl -warning: \`sys-file.sav' near offset 0xd8: Integer format indicated by system file (3) differs from expected ($[3]). +warning: \`sys-file.sav' near offset 0xd8: Integer format indicated by system file (3) differs from expected ($[2]). Variable,Description,,Position num1,Format: F8.0,,1 @@ -2297,13 +2226,10 @@ dnl Machine floating-point info record. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 29c9a173638fbb8bb1efe1176c4d670f" \ - "le 5cb49eb1084e5b9cd573a54705ff86a7" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore]) - AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [dnl +GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl "warning: `sys-file.sav' near offset 0xd8: Record type 7, subtype 4 has bad count 4 (expected 3)." @@ -2327,13 +2253,8 @@ dnl Machine floating-point info record. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 1e7452d9bb0a2397bf6084a25437514e" \ - "le f59f9a83f723cde1611869ff6d91d325" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps | sed 's/ [(].*/.../'], [0], [dnl @@ -2351,30 +2272,97 @@ AT_KEYWORDS([sack synthetic system file negative multiple response]) AT_DATA([sys-file.sack], [dnl dnl File header. "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file"; -2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3; +2; dnl Layout code +16; dnl Nominal case size +0; dnl Not compressed +0; dnl Not weighted +0; dnl No cases. +100.0; dnl Bias. +"01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file"; +i8 0 *3; -dnl Numeric variable, no label or missing values. -2; 0; 0; 0; 0x050800 *2; s8 "NUM1"; +dnl $a +2; 0; 0; 0; 0x050800 *2; i8 0x82; i8 0xa0; s6 ""; +2; 0; 0; 0; 0x050800 *2; s8 "B"; +2; 0; 0; 0; 0x050800 *2; s8 "C"; -dnl Multiple response sets. -7; 7; 1; COUNT("a=C"); -7; 19; 1; COUNT("xyz=D"); +dnl $b +2; 0; 0; 0; 0x050800 *2; s8 "D"; +2; 0; 0; 0; 0x050800 *2; s8 "E"; +2; 0; 0; 0; 0x050800 *2; s8 "F"; +2; 0; 0; 0; 0x050800 *2; s8 "G"; + +dnl $c +2; 4; 0; 0; 0x010400 *2; s8 "H"; +2; 4; 0; 0; 0x010400 *2; s8 "I"; +2; 4; 0; 0; 0x010400 *2; s8 "J"; + +dnl $d +2; 0; 0; 0; 0x050800 *2; s8 "K"; +2; 0; 0; 0; 0x050800 *2; s8 "L"; +2; 0; 0; 0; 0x050800 *2; s8 "M"; + +dnl $e +2; 6; 0; 0; 0x010600 *2; s8 "N"; +2; 6; 0; 0; 0x010600 *2; s8 "O"; +2; 6; 0; 0; 0x010600 *2; s8 "P"; + +dnl Machine integer info record. +7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 932; + +7; 7; 1; +COUNT( + "$a=C 10 my mcgroup "; i8 0x82; i8 0xa0; " b c"; i8 10; + "b=D2 55 0 g e f d"; i8 10; + "$c=D4 "; i8 0x82; i8 0xcd; i8 0x82; i8 0xa2; " 10 mdgroup #2 h i j"; i8 10); +7; 19; 1; +COUNT( + "$d=E 1 2 34 13 third mdgroup k l m"; i8 10; + "e=E 11 6 choice 0 n o p"; i8 10); + +dnl Character encoding record. +7; 20; 1; 9; "shift_jis"; + +dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 15a9bf44d0cd6186a60629b77079c5a5" \ - "le 161c99aca5e7a3684df096137e72ce5b" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +MRSETS /DISPLAY NAME=ALL. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl -warning: `sys-file.sav' near offset 0xd8: `a' does not begin with `$' at offset 2 in MRSETS record. +warning: `sys-file.sav': Multiple response set name `b' does not begin with `$'. -warning: `sys-file.sav' near offset 0xeb: `xyz' does not begin with `$' at offset 4 in MRSETS record. +warning: `sys-file.sav': Multiple response set name `e' does not begin with `$'. + +Table: Multiple Response Sets +Name,Variables,Details +$a,"あ +b +c +","Multiple category set +Label: my mcgroup +" +$c,"h +i +j +","Multiple dichotomy set +Label: mdgroup #2 +Label source: Provided by user +Counted value: `はい' +Category label source: Variable labels +" +$d,"k +l +m +","Multiple dichotomy set +Label: third mdgroup +Label source: Provided by user +Counted value: 34 +Category label source: Value labels of counted value +" ]) done AT_CLEANUP @@ -2394,13 +2382,8 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be c5e5656ba3d74c3a967850f29ad89970" \ - "le 29f110509c3d6893a7d21ae2d66aad9d" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2424,13 +2407,8 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be a9e1dc63e2524882a5e3d2949a2da9d4" \ - "le ac709ca1928f65f47a8c8efdd9454b50" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2454,17 +2432,12 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be 8c710e85a0a1609d0d03dec80aaf5f94" \ - "le 4682440b82f22d4bd2ac56afb7fa3152" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl -warning: `sys-file.sav' near offset 0xd8: Unexpected label source value `2' following `E' at offset 7 in MRSETS record. +warning: `sys-file.sav' near offset 0xd8: Unexpected label source value following `E' at offset 7 in MRSETS record. warning: `sys-file.sav' near offset 0xd8: Expecting digit at offset 7 in MRSETS record. ]) @@ -2486,13 +2459,8 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be fc5e5200d8f56b9a5a713e4a95313a3b" \ - "le 578a61e8a06b20216612f566c2050879" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2516,13 +2484,8 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be 23d0e2f65c7c5f93bbedcc0f2b260c69" \ - "le c3860c1d80e08842264948056e72c0db" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2546,13 +2509,8 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be c9ce001723763e0698878b7e43a887e8" \ - "le e258a1e4491d5a1d1e7d2272ef631a22" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2576,13 +2534,8 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be 196d1266fa0e8e315769dcbe3130e3df" \ - "le 23df1ba7b77a26da8ce1c2cfbcaadce0" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2606,13 +2559,8 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be 86314bb0bbdfad48c10af8b8d8106d6e" \ - "le 2b8d05ff501ca78e51f7110ce88a2364" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2636,19 +2584,14 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be cea939cf3e6a5f88cb45e8fa871c5e13" \ - "le 52135afec082f50f37eafacadbb2cd65" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl warning: `sys-file.sav' near offset 0xd8: Missing new-line parsing variable names at offset 13 in MRSETS record. -warning: `sys-file.sav' near offset 0xd8: MRSET $a has only 1 variables. +warning: `sys-file.sav': MRSET $a has only one variable. ]) done AT_CLEANUP @@ -2668,19 +2611,14 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be 4b1b5fa2dc22cf0afdd35422290b0a29" \ - "le e4304b57976440a036f25f8dd8ac1404" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl -warning: `sys-file.sav' near offset 0xd8: Duplicate variable name NUM1 at offset 18 in MRSETS record. +warning: `sys-file.sav': MRSET $a contains duplicate variable name NUM1. -warning: `sys-file.sav' near offset 0xd8: MRSET $a has only 1 variables. +warning: `sys-file.sav': MRSET $a has only one variable. ]) done AT_CLEANUP @@ -2701,19 +2639,14 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be 0f130e967e4097823f85b8711eb20727" \ - "le 4dc987b4303fd115f1cae9be3963acc9" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl -warning: `sys-file.sav' near offset 0xf8: MRSET $a contains both string and numeric variables. +warning: `sys-file.sav': MRSET $a contains both string and numeric variables. -warning: `sys-file.sav' near offset 0xf8: MRSET $a has only 1 variables. +warning: `sys-file.sav': MRSET $a has only one variable. ]) done AT_CLEANUP @@ -2733,22 +2666,17 @@ dnl Multiple response sets. 999; 0; ]) -for variant in \ - "be 3a891e0a467afb3d622629c70f329ada" \ - "le 432998ec08370510411af4f5207c015e" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl -warning: `sys-file.sav' near offset 0xd8: MRSET $a has only 1 variables. +warning: `sys-file.sav': MRSET $a has only one variable. ]) done AT_CLEANUP -AT_SETUP([only one variable in mrset]) +AT_SETUP([zero or one variable in mrset]) AT_KEYWORDS([sack synthetic system file negative multiple response]) AT_DATA([sys-file.sack], [dnl dnl File header. @@ -2759,21 +2687,18 @@ dnl Numeric variable, no label or missing values. 2; 0; 0; 0; 0x050800 *2; s8 "NUM1"; dnl Multiple response sets. -7; 7; 1; COUNT("$a=C 0 NUM1"; i8 10); +7; 7; 1; COUNT("$a=C 0 NUM1"; i8 10; "$b=C 0 "; i8 10); 999; 0; ]) -for variant in \ - "be 3a891e0a467afb3d622629c70f329ada" \ - "le 432998ec08370510411af4f5207c015e" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl -warning: `sys-file.sav' near offset 0xd8: MRSET $a has only 1 variables. +warning: `sys-file.sav': MRSET $a has only one variable. + +warning: `sys-file.sav': MRSET $b has no variables. ]) done AT_CLEANUP @@ -2794,13 +2719,8 @@ dnl Display parameters record. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 7c0f1ae47ae11e37d435c4abaceca226" \ - "le c29d05a1f8f15ed2201f31f8b787aaa0" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2825,13 +2745,8 @@ dnl Display parameters record. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 372b57e73c69b05047b60bf6c596e2a1" \ - "le 2a550d8c5ceae4de7ced77df66e49d0f" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2856,13 +2771,8 @@ dnl Display parameters record. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be d43e7616b03743339f37292dec6c2204" \ - "le 821533c29a070cefdd8f07f4e1741d2a" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2887,13 +2797,8 @@ dnl Display parameters record. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be c54bc48b5767e2ec3a9ef31df790cb7c" \ - "le a4d8b14af64221abe83adb417d110e10" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -2918,13 +2823,8 @@ dnl Long variable names. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be b67b6e3c1900e5a9cc691055008f0447" \ - "le 26cc52e601f830f9087a0ea2bd9527df" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -2957,13 +2857,8 @@ dnl Long variable names. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 9b4b4daa00084d984efb8f889bcb727c" \ - "le c1b1470d5cd615106e9ae507c9948d8e" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -2995,13 +2890,8 @@ dnl Very long string map. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 1309d8d9fb24bcf08952dce9b0f39a94" \ - "le 94a39de88f8034001b3e467c4cc04d0f" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3036,13 +2926,8 @@ dnl Very long string map. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 1d09a44a46859e6eda28e053dd4b7a8b" \ - "le 63b9ac0b3953f3e0d5ee248ebe257794" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3066,13 +2951,8 @@ dnl Numeric variable. 2; 0; 0; 0; 0x050800 *2; s8 "NUM1"; 3; >>0x7fffffff<<; ]) -for variant in \ - "be 975b2668dde395ddf619977958b37412" \ - "le 0c14aa278cfc2a4b801f91c14321f03b" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3098,13 +2978,8 @@ dnl Value label with missing type 4 record. dnl End of dictionary. >>999; 0<<; ]) -for variant in \ - "be 5e1286ac92e3f25ff98492bc5019d608" \ - "le b33c12f776bbcaa43aa3bfdd4799e0c0" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3127,13 +3002,8 @@ dnl Numeric variable. dnl Value label with no variables. 3; 1; 1.0; i8 3; s7 "one"; 4; >>0<<; ]) -for variant in \ - "be b0dcec30a936cbcad21c4f3d6fe10fcf" \ - "le 3b9fdfce5c8c248048232fd6eac018e3" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3160,12 +3030,8 @@ dnl Value label that names long string variable. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 14053a4f09de4c7c4c55281534dd66f4" \ - "le 8a61cc994c659fd66307d2f0fd64ce20" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3192,12 +3058,8 @@ dnl Value label that names numeric and string variables. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be 7577c456726a88f52bbef63a8b47bf1a" \ - "le 3ba5c6af9ad0ae5cc88f9f63e726e414" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3225,13 +3087,8 @@ dnl Duplicate value labels. dnl End of dictionary. 999; 0; ]) -for variant in \ - "be ef0f5b2ebddb5a3bfcda16c93a2508f4" \ - "le c00e27abd9a6c06bf29a108d7220435a" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3267,13 +3124,8 @@ dnl Variable attributes record. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 0fc71f5e3cdb6b7f2dd73d011d4885c2" \ - "le e519b44715400156a2bfe648eb5cff34" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3310,13 +3162,8 @@ dnl Variable attributes record. dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be 33dba37c2247e63c04bb74a7b472293d" \ - "le 041025a9d9d9e21a7fabd90ba7341934" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [dnl GET FILE='sys-file.sav'. ]) @@ -3366,13 +3213,8 @@ COUNT("abcdefghijklmn"); COUNT("value label for `abcdefghijklmn'"); dnl Dictionary termination record. 999; 0; ]) -for variant in \ - "be cf2e883dadb00e2c6404c09ea0a4e388" \ - "le 89c340faf0a7e4a8c834f9687684c091" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. ]) AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl @@ -3408,13 +3250,8 @@ dnl Data. 7.0; 8.0; dnl Missing record here. ]) -for variant in \ - "be 6ee097c3934055d0c4564641636f4b5a" \ - "le ae03fe1b888091d6938b5a436d44ac60" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. LIST. ]) @@ -3447,13 +3284,8 @@ dnl Data. 1.0; 2.0; 3.0; ]) -for variant in \ - "be 4bcc085d7d8f0f09c6a4ba8064ffe61c" \ - "le 7387fc5edd2740aff92c30ca688d6d9b" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. LIST. ]) @@ -3483,13 +3315,8 @@ dnl Data. s14 "one data item"; s8 "partial"; ]) -for variant in \ - "be 4a9e84f9e679afb7bb71acd0bb7eab89" \ - "le 30752606f14ee2deec2854e8e6de4b3b" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. LIST. ]) @@ -3533,13 +3360,8 @@ dnl Dictionary termination record. dnl Compressed data. i8 1 100 254 253 254 253; i8 255 251; "abcdefgh"; s8 "0123"; ]) -for variant in \ - "be ef01b16e2e397d979a3a7d20725ebe6d" \ - "le 51f7a61e9bc68992469d16c55d6ecd88" -do - set $variant - AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2] -]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. LIST. ]) @@ -3553,3 +3375,226 @@ num1,num2,str4,str8,str15 done AT_CLEANUP +AT_SETUP([zcompressed data - bad zheader_ofs]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*zheader_ofs.*/>>i64 0<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x178: Wrong ZLIB data header offset 0 (expected 0x178). +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - bad ztrailer_ofs]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*ztrailer_ofs.*/>>i64 0<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x178: Impossible ZLIB trailer offset 0x0. +]) +done +AT_CLEANUP + +# ztrailer_len must be a multiple of 24 and at least 48, +# so a value of 12 is impossible. +AT_SETUP([zcompressed data - invalid ztrailer_len]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*ztrailer_len.*/>>i64 12<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x178: Invalid ZLIB trailer length 12. +]) +done +AT_CLEANUP + +# ztrailer_ofs + ztrailer_len must be the file size. +AT_SETUP([zcompressed data - wrong ztrailer_len]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*ztrailer_len.*/>>i64 72<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [warning: `sys-file.sav' near offset 0x190: End of ZLIB trailer (0x231) is not file size (0x219). +error: `sys-file.sav' near offset 0x201: 72-byte ZLIB trailer specifies 1 data blocks (expected 2). +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - wrong ztrailer_bias]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*ztrailer_bias.*/>>i64 0<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x1f1: ZLIB trailer bias (0) differs from file header bias (100.00). +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - wrong ztrailer_zero]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*ztrailer_zero.*/>>i64 100<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [warning: `sys-file.sav' near offset 0x1f9: ZLIB trailer "zero" field has nonzero value 100. +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - wrong block_size]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*block_size.*/>>0x1000<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [warning: `sys-file.sav' near offset 0x1fd: ZLIB trailer specifies unexpected 4096-byte block size. +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - wrong n_blocks]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*n_blocks.*/>>2<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x201: 48-byte ZLIB trailer specifies 2 data blocks (expected 1). +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - wrong uncompressed_ofs]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*uncompressed_ofs.*/i64 >>0x177<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x201: ZLIB block descriptor 0 reported uncompressed data offset 0x177, when 0x178 was expected. +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - wrong compressed_ofs]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*@%:@ compressed_ofs.*/i64 >>0x191<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x201: ZLIB block descriptor 0 reported compressed data offset 0x191, when 0x190 was expected. +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - compressed sizes don't add up]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +AT_DATA([sys-file.sack], [dnl +dnl File header. +"$FL3"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file"; +2; dnl Layout code +6; dnl Nominal case size +2; dnl zlib compressed +0; dnl Not weighted +-1; dnl Unspecified number of cases. +100.0; dnl Bias. +"01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file"; +i8 0 *3; + +dnl Numeric variables. +2; 0; 0; 0; 0x050800 *2; s8 "NUM1"; +2; 0; 0; 0; 0x050800 *2; s8 "NUM2"; + +dnl String variable. +2; 4; 0; 0; 0x010400 *2; s8 "STR4"; +2; 8; 0; 0; 0x010800 *2; s8 "STR8"; +2; 15; 0; 0; 0x010f00 *2; s8 "STR15"; +2; -1; 0; 0; 0; 0; s8 ""; + +dnl Dictionary termination record. +999; 0; + +dnl ZLIB data header. +i64 0x178; # zheader_ofs +i64 0x190; # ztrailer_ofs +i64 72; # ztrailer_len + +dnl This is where the ZLIB data blocks would go, but we don't need any to +dnl provoke this message so we omit them. + +dnl ZLIB data trailer fixed header: +i64 -100; # ztrailer_bias +i64 0; # ztrailer_zero +0x3ff000; # block_size +2; # n_blocks + +dnl ZLIB block descriptor 1: +i64 0x178; # uncompressed_ofs +i64 0x190; # compressed_ofs +0x100000; # uncompressed_size +0x12345; # compressed_size + +dnl ZLIB block descriptor 2: +i64 0x100178; # uncompressed_ofs +i64 0x12405; # compressed_ofs +0x100000; # uncompressed_size +0x12345; # compressed_size +]) +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [warning: `sys-file.sav' near offset 0x1a8: ZLIB block descriptor 0 reported block size 0x100000, when 0x3ff000 was expected. +error: `sys-file.sav' near offset 0x1c0: ZLIB block descriptor 1 reported compressed data offset 0x12405, when 0x124d5 was expected. +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - uncompressed_size > block_size]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*uncompressed_size.*/>>0x400000<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [warning: `sys-file.sav' near offset 0x201: ZLIB block descriptor 0 reported block size 0x400000, when at most 0x3ff000 was expected. +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - compression expands data too much]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*uncompressed_size.*/>>50<<;/ +s/.*@%:@ compressed_size.*/>>100<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x201: ZLIB block descriptor 0 reports compressed size 100 and uncompressed size 50. +]) +done +AT_CLEANUP + +AT_SETUP([zcompressed data - compressed sizes don't add up]) +AT_KEYWORDS([sack synthetic system file negative zlib]) +zcompressed_sack | sed 's/.*@%:@ compressed_size.*/>>88<<;/' > sys-file.sack +for variant in be le; do + AT_CHECK([sack --$variant sys-file.sack > sys-file.sav]) + AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'. +]) + AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x219: ZLIB trailer is at offset 0x1e9 but 0x1e8 would be expected from block descriptors. +]) +done +AT_CLEANUP