1 AT_BANNER([system file reader - positive])
3 AT_SETUP([variable labels and missing values])
4 AT_KEYWORDS([sack synthetic system file positive])
5 AT_DATA([sys-file.sack], [dnl
7 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
9 28; dnl Nominal case size
14 "01 Jan 11"; "20:53:52";
15 "PSPP synthetic test file: "; i8 244; i8 245; i8 246; i8 248; s34 "";
18 dnl Numeric variable, no label or missing values.
19 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
21 dnl Numeric variable, variable label.
22 2; 0; 1; 0; 0x050800 *2; s8 "NUM2";
23 32; "Numeric variable 2's label ("; i8 249; i8 250; i8 251; ")";
25 dnl Numeric variable, one missing value.
26 2; 0; 0; 1; 0x050800 *2; s8 "NUM3";
29 dnl Numeric variable, variable label and missing value.
30 2; 0; 1; 1; 0x050800 *2; s8 "NUM4";
31 30; "Another numeric variable label"; i8 0 * 2;
34 dnl Numeric variable, two missing values.
35 2; 0; 0; 2; 0x050800 *2; s8 "NUM5"; 1.0; 2.0;
37 dnl Numeric variable, three missing values.
38 2; 0; 0; 3; 0x050800 *2; s8 "NUM6"; 1.0; 2.0; 3.0;
40 dnl Numeric variable, range of missing values.
41 2; 0; 0; -2; 0x050800 *2; s8 "NUM7"; 1.0; 3.0;
43 dnl Numeric variables, range of missing values plus discrete value.
44 2; 0; 0; -3; 0x050800 *2; s8 "NUM8"; 1.0; 3.0; 5.0;
45 2; 0; 0; -3; 0x050800 *2; s8 "NUM9"; 1.0; HIGHEST; -5.0;
46 2; 0; 0; -3; 0x050800 *2; "NUM"; i8 192; i8 200; i8 204; i8 209; i8 210;
49 dnl String variable, no label or missing values.
50 2; 4; 0; 0; 0x010400 *2; s8 "STR1";
52 dnl String variable, variable label.
53 2; 4; 1; 0; 0x010400 *2; s8 "STR2";
54 25; "String variable 2's label"; i8 0 * 3;
56 dnl String variable, one missing value.
57 2; 4; 0; 1; 0x010400 *2; s8 "STR3"; s8 "MISS";
59 dnl String variable, variable label and missing value.
60 2; 4; 1; 1; 0x010400 *2; s8 "STR4";
61 29; "Another string variable label"; i8 0 * 3;
64 dnl String variable, two missing values.
65 2; 4; 0; 2; 0x010400 *2; s8 "STR5"; s8 "MISS"; s8 "OTHR";
67 dnl String variable, three missing values.
68 2; 4; 0; 3; 0x010400 *2; s8 "STR6"; s8 "MISS"; s8 "OTHR"; s8 "MORE";
70 dnl Long string variable, one missing value.
71 dnl (This is not how SPSS represents missing values for long strings--it
72 dnl uses a separate record as shown later below--but old versions of PSPP
73 dnl did use this representation so we continue supporting it for backward
75 2; 11; 0; 1; 0x010b00 *2; s8 "STR7"; "first8by";
76 2; -1; 0; 0; 0; 0; s8 "";
78 dnl Long string variables that will have missing values added with a
80 2; 9; 0; 0; 0x010900 *2; s8 "STR8";
81 2; -1; 0; 0; 0; 0; s8 "";
82 2; 10; 0; 0; 0x010a00 *2; s8 "STR9";
83 2; -1; 0; 0; 0; 0; s8 "";
84 2; 11; 0; 0; 0x010b00 *2; s8 "STR10";
85 2; -1; 0; 0; 0; 0; s8 "";
87 dnl Long string variable, value label.
88 2; 25; 1; 0; 0x011900 *2; s8 "STR11"; 14; "25-byte string"; i8 0 * 2;
89 ( 2; -1; 0; 0; 0; 0; s8 ""; ) * 2;
90 dnl Variable label fields on continuation records have been spotted in system
91 dnl files created by "SPSS Power Macintosh Release 6.1".
92 2; -1; 1; 0; 0; 0; s8 ""; 20; "dummy variable label";
94 dnl Machine integer info record.
95 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
97 dnl Machine floating-point info record.
98 7; 4; 8; 3; SYSMIS; HIGHEST; LOWEST;
100 dnl Long string variable missing values record.
102 dnl One missing value for STR8.
103 COUNT("STR8"); i8 1; 8; "abcdefgh";
105 dnl Two missing values for STR9.
106 COUNT("STR9"); i8 2; 8; "abcdefgh"; 8; "01234567";
108 dnl Three missing values for STR9.
109 COUNT("STR10"); i8 3; 8; "abcdefgh"; 8; "01234567"; 8; "0 ";
112 dnl Character encoding record.
113 7; 20; 1; 12; "windows-1252";
115 dnl Dictionary termination record.
119 1.0; 2.0; 3.0; 4.0; 5.0; 6.0; 7.0; 8.0; 9.0; 10.0;
120 s8 "abcd"; s8 "efgh"; s8 "ijkl"; s8 "mnop"; s8 "qrst"; s8 "uvwx";
121 s16 "yzABCDEFGHI"; s16 "JKLMNOPQR"; s16 "STUVWXYZ01";
122 s16 "23456789abc"; s32 "defghijklmnopqstuvwxyzABC";
124 for variant in be le; do
125 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
126 AT_DATA([sys-file.sps], [dnl
127 GET FILE='sys-file.sav'.
132 AT_CHECK([pspp -o pspp.csv sys-file.sps])
133 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
134 File label: PSPP synthetic test file: ôõöø
136 Variable,Description,,Position
138 num2,Label: Numeric variable 2's label (ùúû),,2
142 num4,Label: Another numeric variable label,,4
146 ,Missing Values: 1; 2,,
148 ,Missing Values: 1; 2; 3,,
150 ,Missing Values: 1 THRU 3,,
152 ,Missing Values: 1 THRU 3; 5,,
154 ,Missing Values: 1 THRU HIGHEST; -5,,
155 numàèìñò,Format: F8.0,,10
156 ,Missing Values: LOWEST THRU 1; 5,,
158 str2,Label: String variable 2's label,,12
161 ,"Missing Values: ""MISS""",,
162 str4,Label: Another string variable label,,14
164 ,"Missing Values: ""OTHR""",,
166 ,"Missing Values: ""MISS""; ""OTHR""",,
168 ,"Missing Values: ""MISS""; ""OTHR""; ""MORE""",,
170 ,"Missing Values: ""first8by""",,
172 ,"Missing Values: ""abcdefgh""",,
174 ,"Missing Values: ""abcdefgh""; ""01234567""",,
175 str10,Format: A11,,20
176 ,"Missing Values: ""abcdefgh""; ""01234567""; ""0 """,,
177 str11,Label: 25-byte string,,21
181 num1,num2,num3,num4,num5,num6,num7,num8,num9,numàèìñò,str1,str2,str3,str4,str5,str6,str7,str8,str9,str10,str11
182 1,2,3,4,5,6,7,8,9,10,abcd,efgh,ijkl,mnop,qrst,uvwx,yzABCDEFGHI,JKLMNOPQR,STUVWXYZ01,23456789abc,defghijklmnopqstuvwxyzABC
187 AT_SETUP([unspecified number of variable positions])
188 AT_KEYWORDS([sack synthetic system file positive])
189 AT_DATA([sys-file.sack], [dnl
191 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
193 -1; dnl Nominal case size (unspecified)
194 0; dnl Not compressed
198 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
201 dnl Numeric variable, no label or missing values.
202 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
204 dnl Numeric variable, variable label.
205 2; 0; 1; 0; 0x050800 *2; s8 "NUM2";
206 26; "Numeric variable 2's label"; i8 0 *2;
208 dnl Character encoding record.
209 7; 20; 1; 12; "windows-1252";
211 dnl Dictionary termination record.
217 for variant in be le; do
218 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
219 AT_DATA([sys-file.sps], [dnl
220 GET FILE='sys-file.sav'.
224 AT_CHECK([pspp -o pspp.csv sys-file.sps])
225 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
226 Variable,Description,,Position
228 num2,Label: Numeric variable 2's label,,2
238 AT_SETUP([wrong number of variable positions but version 13])
239 AT_KEYWORDS([sack synthetic system file positive])
240 AT_DATA([sys-file.sack], [dnl
242 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
244 -1; dnl Nominal case size (unspecified)
245 0; dnl Not compressed
249 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
252 dnl Numeric variable, no label or missing values.
253 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
255 dnl Numeric variable, variable label.
256 2; 0; 1; 0; 0x050800 *2; s8 "NUM2";
257 26; "Numeric variable 2's label"; i8 0 *2;
259 dnl Machine integer info record (SPSS 13).
260 7; 3; 4; 8; 13; 2; 3; -1; 1; 1; ENDIAN; 1252;
262 dnl Character encoding record.
263 7; 20; 1; 12; "windows-1252";
265 dnl Dictionary termination record.
271 for variant in be le; do
272 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
273 AT_DATA([sys-file.sps], [dnl
274 GET FILE='sys-file.sav'.
278 AT_CHECK([pspp -o pspp.csv sys-file.sps])
279 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
280 Variable,Description,,Position
282 num2,Label: Numeric variable 2's label,,2
292 AT_SETUP([value labels])
293 AT_KEYWORDS([sack synthetic system file positive])
294 AT_DATA([sys-file.sack], [dnl
296 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
298 22; dnl Nominal case size
299 0; dnl Not compressed
303 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
306 dnl Numeric variables.
307 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
308 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
309 2; 0; 0; 0; 0x050800 *2; s8 "NUM3";
310 2; 0; 0; 0; 0x050800 *2; s8 "NUM4";
311 2; 0; 0; 0; 0x050800 *2; s8 "NUM5";
313 dnl String variables.
314 2; 1; 0; 0; 0x010100 *2; s8 "STR1"; dnl index 6
315 2; 2; 0; 0; 0x010200 *2; s8 "STR2"; dnl index 7
316 2; 3; 0; 0; 0x010300 *2; s8 "STR3"; dnl index 8
317 2; 4; 0; 0; 0x010400 *2; s8 "STR4"; dnl index 9
318 2; 4; 0; 0; 0x010400 *2; s8 "STR5"; dnl index 10
319 2; 6; 0; 0; 0x010600 *2; s8 "STR6"; dnl index 11
320 2; 7; 0; 0; 0x010700 *2; s8 "STR7"; dnl index 12
321 2; 8; 0; 0; 0x010800 *2; s8 "STR8"; dnl index 13
322 2; 9; 0; 0; 0x010900 *2; "STR9"; i8 230; s3 ""; dnl index 14
323 2; -1; 0; 0; 0; 0; s8 "";
324 2; 12; 0; 0; 0x010c00 *2; s8 "STR12"; dnl index 16
325 2; -1; 0; 0; 0; 0; s8 "";
326 2; 16; 0; 0; 0x011000 *2; s8 "STR16"; dnl index 18
327 2; -1; 0; 0; 0; 0; s8 "";
328 2; 17; 0; 0; 0x011100 *2; s8 "STR17"; dnl index 20
329 ( 2; -1; 0; 0; 0; 0; s8 ""; ) * 2;
331 dnl One value label for NUM1.
332 3; 1; 1.0; i8 17; i8 238; i8 228; i8 232; i8 237; s19 " (in Russian)"; 4; 1; 1;
334 dnl Two value labels for NUM2, as a single pair of type 3 and type 4 records.
335 3; 2; 1.0; i8 3; s7 "one"; 2.0; i8 3; s7 "two"; 4; 1; 2;
337 dnl Two value labels for NUM3, as two pairs of type 3 and type 4 records.
338 3; 1; 3.0; i8 5; s7 "three"; 4; 1; 3;
339 3; 1; 4.0; i8 4; s7 "four"; 4; 1; 3;
341 dnl Two common value labels for NUM4 and NUM5, plus two different ones for each.
342 3; 1; 5.0; i8 4; s7 "five"; 4; 1; 4;
343 3; 1; 6.0; i8 3; s7 "six"; 4; 1; 5;
344 3; 2; 7.0; i8 5; s7 "seven"; 8.0; i8 5; s7 "eight"; 4; 2; 4; 5;
345 3; 1; 9.0; i8 4; s7 "nine"; 4; 1; 4;
346 3; 1; 10.0; i8 3; s7 "ten"; 4; 1; 5;
348 dnl One value label for STR1.
349 3; 1; s8 "a"; i8 19; s23 "value label for `a'"; 4; 1; 6;
351 dnl Two value labels for STR2, as a single pair of type 3 and type 4 records.
353 s8 "bc"; i8 20; s23 "value label for `bc'";
354 s8 "de"; i8 20; s23 "value label for `de'";
357 dnl Two value labels for STR3, as two pairs of type 3 and type 4 records.
358 3; 1; s8 "fgh"; i8 21; s23 "value label for `fgh'"; 4; 1; 8;
359 3; 1; s8 "ijk"; i8 21; s23 "value label for `ijk'"; 4; 1; 8;
361 dnl Two common value labels for STR4 and STR5, plus two different ones for each.
362 3; 1; s8 "lmno"; i8 22; s23 "value label for `lmno'"; 4; 1; 9;
363 3; 1; s8 "pqrs"; i8 22; s23 "value label for `pqrs'"; 4; 1; 10;
365 s8 "tuvw"; i8 22; s23 "value label for `tuvw'";
366 s8 "xyzA"; i8 22; s23 "value label for `xyzA'";
368 3; 1; s8 "BCDE"; i8 22; s23 "value label for `BCDE'"; 4; 1; 9;
369 3; 1; s8 "FGHI"; i8 22; s23 "value label for `FGHI'"; 4; 1; 10;
371 dnl One value label for STR6, STR7, STR8.
372 3; 1; s8 "JKLMNO"; i8 24; s31 "value label for `JKLMNO'"; 4; 1; 11;
373 3; 1; s8 "JKLMNOP"; i8 25; s31 "value label for `JKLMNOP'"; 4; 1; 12;
374 3; 1; s8 "JKLMNOPQ"; i8 26; s31 "value label for `JKLMNOPQ'"; 4; 1; 13;
376 dnl Machine integer info record.
377 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1251;
379 dnl Character encoding record.
380 7; 20; 1; 12; "windows-1251";
383 dnl One value label for STR9ж,
384 COUNT("STR9"; i8 230); 9; 1; COUNT("RSTUVWXYZ"); COUNT("value label for `RSTUVWXYZ'");
386 dnl Two value labels for STR12.
387 COUNT("STR12"); 12; 2;
388 COUNT("0123456789ab"); COUNT("value label for `0123456789ab'");
389 COUNT("cdefghijklmn"); COUNT("value label for `cdefghijklmn'");
391 dnl Three value labels for STR16.
392 COUNT("STR16"); 16; 3;
393 COUNT("opqrstuvwxyzABCD"); COUNT("value label for `opqrstuvwxyzABCD'");
394 COUNT("EFGHIJKLMNOPQRST"); COUNT("value label for `EFGHIJKLMNOPQRST'");
395 COUNT("UVWXYZ0123456789"); COUNT("value label for `UVWXYZ0123456789' with Cyrillic letters: `"; i8 244; i8 245; i8 246; "'");
397 dnl One value label for STR17.
398 COUNT("STR17"); 17; 1;
399 COUNT("abcdefghijklmnopq"); COUNT("value label for `abcdefghijklmnopq'");
402 dnl Dictionary termination record.
405 for variant in be le; do
406 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
407 AT_DATA([sys-file.sps], [dnl
408 GET FILE='sys-file.sav'.
411 AT_CHECK([pspp -o pspp.csv sys-file.sps])
412 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
413 Variable,Description,,Position
415 ,1,один (in Russian),
433 ,a,value label for `a',
435 ,bc,value label for `bc',
436 ,de,value label for `de',
438 ,fgh,value label for `fgh',
439 ,ijk,value label for `ijk',
441 ,BCDE,value label for `BCDE',
442 ,lmno,value label for `lmno',
443 ,tuvw,value label for `tuvw',
444 ,xyzA,value label for `xyzA',
446 ,FGHI,value label for `FGHI',
447 ,pqrs,value label for `pqrs',
448 ,tuvw,value label for `tuvw',
449 ,xyzA,value label for `xyzA',
451 ,JKLMNO,value label for `JKLMNO',
453 ,JKLMNOP,value label for `JKLMNOP',
455 ,JKLMNOPQ,value label for `JKLMNOPQ',
457 ,RSTUVWXYZ,value label for `RSTUVWXYZ',
458 str12,Format: A12,,15
459 ,0123456789ab,value label for `0123456789ab',
460 ,cdefghijklmn,value label for `cdefghijklmn',
461 str16,Format: A16,,16
462 ,EFGHIJKLMNOPQRST,value label for `EFGHIJKLMNOPQRST',
463 ,UVWXYZ0123456789,value label for `UVWXYZ0123456789' with Cyrillic letters: `фхц',
464 ,opqrstuvwxyzABCD,value label for `opqrstuvwxyzABCD',
465 str17,Format: A17,,17
466 ,abcdefghijklmnopq,value label for `abcdefghijklmnopq',
471 AT_SETUP([documents])
472 AT_KEYWORDS([sack synthetic system file positive])
473 AT_DATA([sys-file.sack], [dnl
475 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
477 1; dnl Nominal case size
478 0; dnl Not compressed
482 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
485 dnl Numeric variable, no label or missing values.
486 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
488 dnl Machine integer info record.
489 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
493 s80 "First line of documents";
494 s80 "Second line of documents";
495 "abb"; i8 233; " appliqu"; i8 233; " attach"; i8 233; " blas"; i8 233; " caf"; i8 233; " canap"; i8 233; " clich"; i8 233; " consomm"; i8 233;
498 s80 "Last line of documents";
500 dnl Character encoding record.
501 7; 20; 1; 12; "windows-1252";
503 dnl Dictionary termination record.
509 for variant in be le; do
510 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
511 AT_DATA([sys-file.sps], [dnl
512 GET FILE='sys-file.sav'.
516 AT_CHECK([pspp -o pspp.csv sys-file.sps])
517 AT_CHECK([cat pspp.csv], [0], [dnl
518 Documents in the active dataset:
520 First line of documents
522 Second line of documents
524 abbé appliqué attaché blasé café canapé cliché consommé
528 Last line of documents
537 AT_SETUP([multiple response sets])
538 AT_KEYWORDS([sack synthetic system file positive])
539 AT_DATA([sys-file.sack], [dnl
541 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
543 16; dnl Nominal case size
544 0; dnl Not compressed
548 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
552 2; 0; 0; 0; 0x050800 *2; i8 0x82; i8 0xa0; s6 "";
553 2; 0; 0; 0; 0x050800 *2; s8 "B";
554 2; 0; 0; 0; 0x050800 *2; s8 "C";
557 2; 0; 0; 0; 0x050800 *2; s8 "D";
558 2; 0; 0; 0; 0x050800 *2; s8 "E";
559 2; 0; 0; 0; 0x050800 *2; s8 "F";
560 2; 0; 0; 0; 0x050800 *2; s8 "G";
563 2; 4; 0; 0; 0x010400 *2; s8 "H";
564 2; 4; 0; 0; 0x010400 *2; s8 "I";
565 2; 4; 0; 0; 0x010400 *2; s8 "J";
568 2; 0; 0; 0; 0x050800 *2; s8 "K";
569 2; 0; 0; 0; 0x050800 *2; s8 "L";
570 2; 0; 0; 0; 0x050800 *2; s8 "M";
573 2; 6; 0; 0; 0x010600 *2; s8 "N";
574 2; 6; 0; 0; 0x010600 *2; s8 "O";
575 2; 6; 0; 0; 0x010600 *2; s8 "P";
577 dnl Machine integer info record.
578 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 932;
582 "$a=C 10 my mcgroup "; i8 0x82; i8 0xa0; " b c"; i8 10;
583 "$b=D2 55 0 g e f d"; i8 10; i8 10;
584 "$c=D4 "; i8 0x82; i8 0xcd; i8 0x82; i8 0xa2; " 10 mdgroup #2 h i j"; i8 10);
589 "$d=E 1 2 34 13 third mdgroup k l m"; i8 10;
590 "$e=E 11 6 choice 0 n o p"; i8 10; i8 10; i8 10; i8 10);
592 dnl Character encoding record.
593 7; 20; 1; 9; "shift_jis";
595 dnl Dictionary termination record.
598 for variant in be le; do
599 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
600 AT_DATA([sys-file.sps], [dnl
601 GET FILE='sys-file.sav'.
602 MRSETS /DISPLAY NAME=ALL.
604 AT_CHECK([pspp -o pspp.csv sys-file.sps])
605 AT_CHECK([cat pspp.csv], [0], [dnl
606 Table: Multiple Response Sets
607 Name,Variables,Details
611 ","Multiple category set
618 ","Multiple dichotomy set
620 Category label source: Variable labels
625 ","Multiple dichotomy set
627 Label source: Provided by user
629 Category label source: Variable labels
634 ","Multiple dichotomy set
636 Label source: Provided by user
638 Category label source: Value labels of counted value
643 ","Multiple dichotomy set
644 Label source: First variable label among variables
645 Counted value: `choice'
646 Category label source: Value labels of counted value
652 dnl Also checks for handling of CR-only line ends in file label and
653 dnl extra product info.
654 AT_SETUP([extra product info])
655 AT_KEYWORDS([sack synthetic system file positive])
656 AT_DATA([sys-file.sack], [dnl
658 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
660 4; dnl Nominal case size
661 0; dnl Not compressed
665 "01 Jan 11"; "20:53:52"; "PSPP synthetic"; i8 13; s49 "test file";
668 dnl Numeric variables.
669 2; 0; 0; 0; 0x050800 *2; s8 "A";
670 2; 0; 0; 0; 0x050800 *2; s8 "B";
671 2; 0; 0; 0; 0x050800 *2; s8 "C";
672 2; 0; 0; 0; 0x050800 *2; s8 "D";
674 dnl Extra product info.
675 7; 10; 1; COUNT ("Extra product info"; i8 13; "another line"; i8 13; "blah");
677 dnl Character encoding record.
678 7; 20; 1; 12; "windows-1252";
680 dnl Dictionary termination record.
683 for variant in be le; do
684 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
685 AT_DATA([sys-file.sps], [dnl
686 SYSFILE INFO FILE='sys-file.sav'.
688 AT_CHECK([pspp -o pspp.csv sys-file.sps])
689 AT_CHECK([sed 7q pspp.csv], [0], [dnl
691 Label:,"PSPP synthetic
693 Created:,01 Jan 11 20:53:52 by $(@%:@) SPSS DATA FILE PSPP synthetic test file
694 Product:,"Extra product info
701 AT_SETUP([variable display parameters, without width])
702 AT_KEYWORDS([sack synthetic system file positive])
703 AT_DATA([sys-file.sack], [dnl
705 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
707 19; dnl Nominal case size
708 0; dnl Not compressed
712 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
715 dnl Numeric variables.
716 2; 0; 0; 0; 0x050800 *2; s8 "A";
717 2; 0; 0; 0; 0x050800 *2; s8 "B";
718 2; 0; 0; 0; 0x050800 *2; s8 "C";
719 2; 0; 0; 0; 0x050800 *2; s8 "D";
721 dnl Short string variables.
722 2; 3; 0; 0; 0x010300 *2; s8 "H";
723 2; 3; 0; 0; 0x010300 *2; s8 "I";
724 2; 3; 0; 0; 0x010300 *2; s8 "J";
725 2; 3; 0; 0; 0x010300 *2; s8 "K";
727 dnl Long string variables.
728 2; 9; 0; 0; 0x010900 *2; s8 "L";
729 2; -1; 0; 0; 0; 0; s8 "";
730 2; 10; 0; 0; 0x010a00 *2; s8 "M";
731 2; -1; 0; 0; 0; 0; s8 "";
732 2; 17; 0; 0; 0x011100 *2; s8 "N";
733 ( 2; -1; 0; 0; 0; 0; s8 "" ) * 2;
734 2; 25; 0; 0; 0x011900 *2; s8 "O";
735 ( 2; -1; 0; 0; 0; 0; s8 "" ) * 3;
737 dnl Variable display parameters
752 dnl Character encoding record.
753 7; 20; 1; 12; "windows-1252";
755 dnl Dictionary termination record.
758 for variant in be le; do
759 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
760 AT_DATA([sys-file.sps], [dnl
761 GET FILE='sys-file.sav'.
764 AT_CHECK([pspp -o pspp.csv sys-file.sps])
765 AT_CHECK([cat pspp.csv], [0], [dnl
766 Variable,Description,,Position
769 ,Display Alignment: Left,,
773 ,Display Alignment: Left,,
777 ,Display Alignment: Left,,
781 ,Display Alignment: Right,,
785 ,Display Alignment: Right,,
789 ,Display Alignment: Right,,
793 ,Display Alignment: Center,,
797 ,Display Alignment: Center,,
801 ,Display Alignment: Center,,
805 ,Display Alignment: Left,,
809 ,Display Alignment: Right,,
813 ,Display Alignment: Center,,
819 AT_SETUP([variable display parameters, with width])
820 AT_KEYWORDS([sack synthetic system file positive])
821 AT_DATA([sys-file.sack], [dnl
823 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
825 19; dnl Nominal case size
826 0; dnl Not compressed
830 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
833 dnl Numeric variables.
834 2; 0; 0; 0; 0x050800 *2; s8 "A";
835 2; 0; 0; 0; 0x050800 *2; s8 "B";
836 2; 0; 0; 0; 0x050800 *2; s8 "C";
837 2; 0; 0; 0; 0x050800 *2; s8 "D";
839 dnl Short string variables.
840 2; 3; 0; 0; 0x010300 *2; s8 "H";
841 2; 3; 0; 0; 0x010300 *2; s8 "I";
842 2; 3; 0; 0; 0x010300 *2; s8 "J";
843 2; 3; 0; 0; 0x010300 *2; s8 "K";
845 dnl Long string variables.
846 2; 9; 0; 0; 0x010900 *2; s8 "L";
847 2; -1; 0; 0; 0; 0; s8 "";
848 2; 10; 0; 0; 0x010a00 *2; s8 "M";
849 2; -1; 0; 0; 0; 0; s8 "";
850 2; 17; 0; 0; 0x011100 *2; s8 "N";
851 ( 2; -1; 0; 0; 0; 0; s8 "" ) * 2;
852 2; 25; 0; 0; 0x011900 *2; s8 "O";
853 ( 2; -1; 0; 0; 0; 0; s8 "" ) * 3;
855 dnl Variable display parameters
870 dnl Character encoding record.
871 7; 20; 1; 12; "windows-1252";
873 dnl Dictionary termination record.
876 for variant in be le; do
877 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
878 AT_DATA([sys-file.sps], [dnl
879 GET FILE='sys-file.sav'.
882 AT_CHECK([pspp -o pspp.csv sys-file.sps])
883 AT_CHECK([cat pspp.csv], [0], [dnl
884 Variable,Description,,Position
887 ,Display Alignment: Left,,
891 ,Display Alignment: Left,,
895 ,Display Alignment: Left,,
899 ,Display Alignment: Right,,
903 ,Display Alignment: Right,,
907 ,Display Alignment: Right,,
911 ,Display Alignment: Center,,
915 ,Display Alignment: Center,,
919 ,Display Alignment: Center,,
923 ,Display Alignment: Left,,
927 ,Display Alignment: Right,,
931 ,Display Alignment: Center,,
937 AT_SETUP([long variable names])
938 AT_KEYWORDS([sack synthetic system file positive])
939 AT_DATA([sys-file.sack], [dnl
941 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
943 7; dnl Nominal case size
944 0; dnl Not compressed
948 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
951 dnl Numeric variables.
952 2; 0; 0; 0; 0x050800 *2; s8 "LONGVARI";
953 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_A";
954 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_B";
955 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_C";
956 2; 0; 0; 0; 0x050800 *2; "CO"; i8 214; "RDINA";
957 2; 0; 0; 0; 0x050800 *2; "CO"; i8 214; "RDI_A";
958 2; 0; 0; 0; 0x050800 *2; "CO"; i8 214; "RDI_B";
960 dnl Machine integer info record.
961 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
963 dnl Machine floating-point info record.
964 7; 4; 8; 3; SYSMIS; HIGHEST; LOWEST;
966 dnl Long variable names.
968 "LONGVARI=LongVariableName1"; i8 9;
969 "LONGVA_A=LongVariableName2"; i8 9;
970 "LONGVA_B=LongVariableName3"; i8 9;
971 "LONGVA_C=LongVariableName4"; i8 9;
972 "CO"; i8 214; "RDINA=Co"; i8 246; "rdinate_X"; i8 9;
973 "CO"; i8 214; "RDI_A=Co"; i8 246; "rdinate_Y"; i8 9;
974 "CO"; i8 214; "RDI_B=Co"; i8 246; "rdinate_Z";
977 dnl Character encoding record.
978 7; 20; 1; 12; "windows-1252";
980 dnl Dictionary termination record.
983 for variant in be le; do
984 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
985 AT_DATA([sys-file.sps], [dnl
986 GET FILE='sys-file.sav'.
989 AT_CHECK([pspp -o pspp.csv sys-file.sps])
990 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
991 Variable,Description,,Position
992 LongVariableName1,Format: F8.0,,1
993 LongVariableName2,Format: F8.0,,2
994 LongVariableName3,Format: F8.0,,3
995 LongVariableName4,Format: F8.0,,4
996 Coördinate_X,Format: F8.0,,5
997 Coördinate_Y,Format: F8.0,,6
998 Coördinate_Z,Format: F8.0,,7
1003 AT_SETUP([very long strings])
1004 AT_KEYWORDS([sack synthetic system file positive])
1005 AT_DATA([sys-file.sack], [dnl
1007 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1009 109; dnl Nominal case size
1010 0; dnl Not compressed
1014 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1017 dnl 256-byte string.
1018 2; 255; 0; 0; 0x01FF00 *2; "S"; i8 201; s6 "Q256";
1019 (2; -1; 0; 0; 0; 0; s8 "") * 31;
1020 2; 4; 0; 0; 0x010400 *2; "S"; i8 201; "Q256_1";
1022 dnl 600-byte string.
1023 2; 255; 0; 0; 0x01FF00 *2; s8 "STR600";
1024 (2; -1; 0; 0; 0; 0; s8 "") * 31;
1025 2; 255; 0; 0; 0x01FF00 *2; s8 "STR600_1";
1026 (2; -1; 0; 0; 0; 0; s8 "") * 31;
1027 2; 96; 0; 0; 0x016000 *2; s8 "STR600_2";
1028 (2; -1; 0; 0; 0; 0; s8 "") * 11;
1030 dnl Machine integer info record.
1031 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
1033 dnl Very long string record.
1035 "S"; i8 201; "Q256=00256"; i8 0; i8 9;
1036 "STR600=00600"; i8 0; i8 9;
1039 dnl Character encoding record.
1040 7; 20; 1; 12; "windows-1252";
1042 dnl Dictionary termination record.
1046 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#" * 4;
1048 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#" * 9;
1049 "abcdefghijklmnopqrstuvwxyzABCDEF";
1051 for variant in be le; do
1052 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1053 AT_DATA([sys-file.sps], [dnl
1054 GET FILE='sys-file.sav'.
1058 AT_CHECK([pspp -o pspp.csv sys-file.sps])
1059 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1060 Variable,Description,,Position
1061 séq256,Format: A256,,1
1062 str600,Format: A600,,2
1066 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@a,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyz
1071 AT_SETUP([data file and variable attributes])
1072 AT_KEYWORDS([sack synthetic system file positive])
1073 AT_DATA([sys-file.sack], [dnl
1075 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1077 2; dnl Nominal case size
1078 0; dnl Not compressed
1082 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1086 2; 0; 0; 0; 0x050800 *2; s8 "FIRSTVAR";
1087 2; 0; 0; 0; 0x050800 *2; s8 "SECONDVA";
1089 dnl Machine integer info record.
1090 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
1092 dnl Long variable names.
1094 "FIRSTVAR=FirstVariable"; i8 9;
1095 "SECONDVA=S"; i8 233; "condVariable"; i8 9;
1098 dnl Data file attributes record.
1100 "Attr1('Value1'"; i8 10; "''d"; i8 233; "claration''"; i8 10; ")";
1101 "S"; i8 233; "condAttr('123'"; i8 10; "'456'"; i8 10; ")";
1104 dnl Variable attributes record.
1107 "ad"; i8 232; "le('23'"; i8 10; "'34'"; i8 10; ")";
1108 "bert('123'"; i8 10; ")";
1109 "$@Role('1'"; i8 10; ")";
1110 "/S"; i8 233; "condVariable:";
1111 "xyzzy('quux'"; i8 10; ")";
1115 dnl Character encoding record.
1116 7; 20; 1; 12; "windows-1252";
1118 dnl Dictionary termination record.
1121 for variant in be le; do
1122 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1123 AT_DATA([sys-file.sps], [dnl
1124 GET FILE='sys-file.sav'.
1125 DISPLAY @ATTRIBUTES.
1127 AT_CHECK([pspp -o pspp.csv sys-file.sps])
1128 AT_CHECK([cat pspp.csv], [0],
1129 [[Variable,Description,
1130 FirstVariable,Custom attributes:,
1135 SécondVariable,Custom attributes:,
1138 Table: Custom data file attributes.
1141 Attr1[2],'déclaration'
1145 AT_DATA([sys-file.sps], [dnl
1146 GET FILE='sys-file.sav'.
1149 AT_CHECK([pspp -o pspp.csv sys-file.sps])
1150 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0],
1151 [[Variable,Description,,Position
1152 FirstVariable,Format: F8.0,,1
1154 ,Custom attributes:,,
1158 SécondVariable,Format: F8.0,,2
1159 ,Custom attributes:,,
1162 Table: Custom data file attributes.
1165 Attr1[2],'déclaration'
1172 AT_SETUP([variable roles])
1173 AT_KEYWORDS([sack synthetic system file positive])
1174 AT_DATA([sys-file.sack], [dnl
1176 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1178 7; dnl Nominal case size
1179 0; dnl Not compressed
1183 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1187 2; 0; 0; 0; 0x050800 *2; s8 "I";
1188 2; 0; 0; 0; 0x050800 *2; s8 "O";
1189 2; 0; 0; 0; 0x050800 *2; s8 "B";
1190 2; 0; 0; 0; 0x050800 *2; s8 "N";
1191 2; 0; 0; 0; 0x050800 *2; s8 "P";
1192 2; 0; 0; 0; 0x050800 *2; s8 "S";
1193 2; 0; 0; 0; 0x050800 *2; s8 "X";
1195 dnl Machine integer info record.
1196 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
1198 dnl Variable attributes record.
1200 "I:$@Role('0'"; i8 10; ")";
1201 "/O:$@Role('1'"; i8 10; ")";
1202 "/B:$@Role('2'"; i8 10; ")";
1203 "/N:$@Role('3'"; i8 10; ")";
1204 "/P:$@Role('4'"; i8 10; ")";
1205 "/S:$@Role('5'"; i8 10; ")";
1206 "/X:$@Role('6'"; i8 10; ")";
1209 dnl Character encoding record.
1210 7; 20; 1; 12; "windows-1252";
1212 dnl Dictionary termination record.
1215 for variant in be le; do
1216 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1217 AT_DATA([sys-file.sps], [dnl
1218 GET FILE='sys-file.sav'.
1221 AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [dnl
1222 warning: `sys-file.sav': Invalid role for variable x.
1224 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1225 warning: `sys-file.sav': Invalid role for variable x.
1227 Variable,Description,,Position
1244 AT_SETUP([compressed data])
1245 AT_KEYWORDS([sack synthetic system file positive])
1246 AT_DATA([sys-file.sack], [dnl
1248 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1250 6; dnl Nominal case size
1251 1; dnl Simple compression
1253 -1; dnl Unspecified number of cases.
1255 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1258 dnl Numeric variables.
1259 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1260 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
1262 dnl String variable.
1263 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
1264 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
1265 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
1266 2; -1; 0; 0; 0; 0; s8 "";
1268 dnl Character encoding record.
1269 7; 20; 1; 12; "windows-1252";
1271 dnl Dictionary termination record.
1274 dnl Compressed data.
1275 i8 1 100 254 253 254 253; i8 255 251; "abcdefgh"; s8 "0123";
1276 i8 253 253 253 254; i8 101 102 253 253; s8 "jklm"; s8 "nopqrstu";
1277 s8 "vwxyzABC"; s8 "DEFG"; s8 "HIJKLMNO";
1278 i8 254 253 252 0 0 0 0 0; s8 "PQRSTUVW";
1281 for variant in be le; do
1282 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1283 AT_DATA([sys-file.sps], [dnl
1284 GET FILE='sys-file.sav'.
1288 AT_CHECK([pspp -o pspp.csv sys-file.sps])
1289 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1290 Variable,Description,,Position
1291 num1,Format: F8.0,,1
1292 num2,Format: F8.0,,2
1295 str15,Format: A15,,5
1298 num1,num2,str4,str8,str15
1299 -99,0,,abcdefgh,0123 @&t@
1300 .,151,jklm,nopqrstu,vwxyzABC @&t@
1301 1,2,DEFG,HIJKLMNO,PQRSTUV
1306 AT_SETUP([compressed data, zero bias])
1307 AT_KEYWORDS([sack synthetic system file positive])
1308 AT_DATA([sys-file.sack], [dnl
1310 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1312 6; dnl Nominal case size
1313 1; dnl Simple compression.
1315 -1; dnl Unspecified number of cases.
1317 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1320 dnl Numeric variables.
1321 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1322 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
1324 dnl String variable.
1325 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
1326 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
1327 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
1328 2; -1; 0; 0; 0; 0; s8 "";
1330 dnl Character encoding record.
1331 7; 20; 1; 12; "windows-1252";
1333 dnl Dictionary termination record.
1336 dnl Compressed data.
1337 i8 1 100 254 253 254 253; i8 255 251; "abcdefgh"; s8 "0123";
1338 i8 253 253 253 254; i8 101 102 253 253; s8 "jklm"; s8 "nopqrstu";
1339 s8 "vwxyzABC"; s8 "DEFG"; s8 "HIJKLMNO";
1340 i8 254 253 252 0 0 0 0 0; s8 "PQRSTUVW";
1343 for variant in be le; do
1344 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1345 AT_DATA([sys-file.sps], [dnl
1346 GET FILE='sys-file.sav'.
1350 AT_CHECK([pspp -o pspp.csv sys-file.sps], [0])
1351 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1352 Variable,Description,,Position
1353 num1,Format: F8.0,,1
1354 num2,Format: F8.0,,2
1357 str15,Format: A15,,5
1360 num1,num2,str4,str8,str15
1361 1,100,,abcdefgh,0123 @&t@
1362 .,251,jklm,nopqrstu,vwxyzABC @&t@
1363 101,102,DEFG,HIJKLMNO,PQRSTUV
1368 AT_SETUP([compressed data, other bias])
1369 AT_KEYWORDS([sack synthetic system file positive])
1370 AT_DATA([sys-file.sack], [dnl
1372 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1374 6; dnl Nominal case size
1375 1; dnl Simple compression.
1377 -1; dnl Unspecified number of cases.
1379 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1382 dnl Numeric variables.
1383 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1384 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
1386 dnl String variable.
1387 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
1388 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
1389 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
1390 2; -1; 0; 0; 0; 0; s8 "";
1392 dnl Character encoding record.
1393 7; 20; 1; 12; "windows-1252";
1395 dnl Dictionary termination record.
1398 dnl Compressed data.
1399 i8 1 100 254 253 254 253; i8 255 251; "abcdefgh"; s8 "0123";
1400 i8 253 253 253 254; i8 101 102 253 253; s8 "jklm"; s8 "nopqrstu";
1401 s8 "vwxyzABC"; s8 "DEFG"; s8 "HIJKLMNO";
1402 i8 254 253 252 0 0 0 0 0; s8 "PQRSTUVW";
1405 for variant in be le; do
1406 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1407 AT_DATA([sys-file.sps], [dnl
1408 GET FILE='sys-file.sav'.
1412 AT_CHECK([pspp -o pspp.csv sys-file.sps], [0],
1413 [warning: `sys-file.sav' near offset 0x54: Compression bias is not the usual value of 100, or system file uses unrecognized floating-point format.
1415 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1416 "warning: `sys-file.sav' near offset 0x54: Compression bias is not the usual value of 100, or system file uses unrecognized floating-point format."
1418 Variable,Description,,Position
1419 num1,Format: F8.0,,1
1420 num2,Format: F8.0,,2
1423 str15,Format: A15,,5
1426 num1,num2,str4,str8,str15
1427 -49,50,,abcdefgh,0123 @&t@
1428 .,201,jklm,nopqrstu,vwxyzABC @&t@
1429 51,52,DEFG,HIJKLMNO,PQRSTUV
1434 m4_divert_push([PREPARE_TESTS])
1435 zcompressed_sack () {
1438 "$FL3"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1440 6; dnl Nominal case size
1441 2; dnl zlib compressed
1443 -1; dnl Unspecified number of cases.
1445 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1448 dnl Numeric variables.
1449 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1450 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
1452 dnl String variable.
1453 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
1454 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
1455 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
1456 2; -1; 0; 0; 0; 0; s8 "";
1458 dnl Character encoding record.
1459 7; 20; 1; 12; "windows-1252";
1461 dnl Dictionary termination record.
1464 dnl ZLIB data header.
1465 i64 0x194; # zheader_ofs
1466 i64 0x205; # ztrailer_ofs
1467 i64 48; # ztrailer_len
1469 dnl ZLIB data block.
1471 dnl This is the compressed form of:
1473 dnl 01 64 fe fd fe fd ff fb 61 62 63 64 65 66 67 68 |.d......abcdefgh|
1474 dnl 30 31 32 33 20 20 20 20 fd fd fd fe 65 66 fd fd |0123 ....ef..|
1475 dnl 6a 6b 6c 6d 20 20 20 20 6e 6f 70 71 72 73 74 75 |jklm nopqrstu|
1476 dnl 76 77 78 79 7a 41 42 43 44 45 46 47 20 20 20 20 |vwxyzABCDEFG |
1477 dnl 48 49 4a 4b 4c 4d 4e 4f fe fd fc 00 00 00 00 00 |HIJKLMNO........|
1478 dnl 50 51 52 53 54 55 56 57 |PQRSTUVW|
1480 dnl which is the data from the "compressed data" test.
1481 hex "78 01 63 4c f9 f7 f7 df df ff bf 13 93 92 53 52";
1482 hex "d3 d2 33 0c 0c 8d 8c 15 80 e0 ef df bf ff 52 d3";
1483 hex "fe fe cd ca ce c9 05 f1 f3 f2 0b 0a 8b 8a 4b 4a";
1484 hex "cb ca 2b 2a ab 1c 9d 9c 5d 5c dd dc 41 e2 1e 9e";
1485 hex "5e de 3e be 7e fe ff fe fe 61 00 81 80 c0 a0 e0";
1486 hex "90 d0 b0 70 00 0f 3f 23 d7";
1488 dnl ZLIB data trailer fixed header:
1489 i64 -100; # ztrailer_bias
1490 i64 0; # ztrailer_zero
1491 0x3ff000; # block_size
1494 dnl ZLIB block descriptor:
1495 i64 0x194; # uncompressed_ofs
1496 i64 0x1ac; # compressed_ofs
1497 88; # uncompressed_size
1498 89; # compressed_size
1501 m4_divert_pop([PREPARE_TESTS])
1503 AT_SETUP([zcompressed data])
1504 AT_KEYWORDS([sack synthetic system file positive zlib])
1505 zcompressed_sack > sys-file.sack
1506 for variant in be le; do
1507 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1508 AT_DATA([sys-file.sps], [dnl
1509 GET FILE='sys-file.sav'.
1513 AT_CHECK([pspp -o pspp.csv sys-file.sps])
1514 AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1515 Variable,Description,,Position
1516 num1,Format: F8.0,,1
1517 num2,Format: F8.0,,2
1520 str15,Format: A15,,5
1523 num1,num2,str4,str8,str15
1524 -99,0,,abcdefgh,0123 @&t@
1525 .,151,jklm,nopqrstu,vwxyzABC @&t@
1526 1,2,DEFG,HIJKLMNO,PQRSTUV
1531 AT_BANNER([system file reader - negative])
1533 AT_SETUP([unspecified character encoding])
1534 AT_KEYWORDS([sack synthetic system file positive])
1535 AT_DATA([sys-file.sack], [dnl
1537 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1539 4; dnl Nominal case size
1540 0; dnl Not compressed
1544 "01 Jan 11"; "20:53:52";
1545 "PSPP synthetic test file: "; i8 244; i8 245; i8 246; i8 248; s34 "";
1548 dnl Numeric variables.
1549 2; 0; 0; 0; 0x050800 *2; s8 "A";
1550 2; 0; 0; 0; 0x050800 *2; s8 "B";
1551 2; 0; 0; 0; 0x050800 *2; s8 "C";
1552 2; 0; 0; 0; 0x050800 *2; s8 "D";
1554 dnl Dictionary termination record.
1557 for variant in be le; do
1558 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1559 AT_DATA([sys-file.sps], [dnl
1562 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [stdout])
1563 AT_CHECK([sed 's/default encoding.*For/default encoding. For/' stdout], [0], [dnl
1564 "warning: `sys-file.sav': This system file does not indicate its own character encoding. Using default encoding. For best results, specify an encoding explicitly. Use SYSFILE INFO with ENCODING=""DETECT"" to analyze the possible encodings."
1569 AT_SETUP([misplaced type 4 record])
1570 AT_KEYWORDS([sack synthetic system file negative])
1571 AT_DATA([sys-file.sack], [dnl
1573 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1574 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1576 dnl Numeric variable.
1577 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1582 for variant in be le; do
1583 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1584 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1586 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
1587 [error: `sys-file.sav' near offset 0xd4: Misplaced type 4 record.
1592 AT_SETUP([bad record type])
1593 AT_KEYWORDS([sack synthetic system file negative])
1594 AT_DATA([sys-file.sack], [dnl
1596 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1597 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1599 dnl Numeric variable.
1600 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1602 dnl Type 8 record (not a valid type).
1605 for variant in be le; do
1606 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1607 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1609 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
1610 [error: `sys-file.sav' near offset 0xd4: Unrecognized record type 8.
1615 AT_SETUP([wrong number of variable positions])
1616 AT_KEYWORDS([sack synthetic system file negative])
1617 AT_DATA([sys-file.sack], [dnl
1619 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1620 2; >>2<<; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1622 dnl Numeric variable.
1623 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1625 dnl Character encoding record.
1626 7; 20; 1; 12; "windows-1252";
1628 dnl End of dictionary.
1631 for variant in be le; do
1632 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1633 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1635 AT_CHECK([pspp -O format=csv sys-file.sps], [0],
1636 [warning: `sys-file.sav': File header claims 2 variable positions but 1 were read from file.
1641 AT_SETUP([variable name may not begin with `#'])
1642 AT_KEYWORDS([sack synthetic system file negative])
1643 AT_DATA([sys-file.sack], [dnl
1645 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1646 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1648 dnl Numeric variable.
1649 2; 0; 0; 0; 0x050800 *2; s8 >>"$UM1"<<;
1651 dnl Character encoding record.
1652 7; 20; 1; 12; "windows-1252";
1654 dnl End of dictionary.
1657 for variant in be le; do
1658 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1659 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1661 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
1662 [error: `sys-file.sav' near offset 0xb4: Invalid variable name `$UM1'.
1667 AT_SETUP([variable name may not be reserved word])
1668 AT_KEYWORDS([sack synthetic system file negative])
1669 AT_DATA([sys-file.sack], [dnl
1671 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1672 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1674 dnl Numeric variable.
1675 2; 0; 0; 0; 0x050800 *2; s8 >>"TO"<<;
1677 dnl Character encoding record.
1678 7; 20; 1; 12; "windows-1252";
1680 dnl End of dictionary.
1683 for variant in be le; do
1684 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1685 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1687 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
1688 [error: `sys-file.sav' near offset 0xb4: Invalid variable name `TO'.
1693 AT_SETUP([variable width must be between 0 and 255])
1694 AT_KEYWORDS([sack synthetic system file negative])
1695 AT_DATA([sys-file.sack], [dnl
1697 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1698 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1700 dnl String variable with invalid width 256.
1701 2; 256; 0; 0; 0x050800 *2; s8 "VAR1";
1703 dnl Character encoding record.
1704 7; 20; 1; 12; "windows-1252";
1706 dnl End of dictionary.
1709 for variant in be le; do
1710 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1711 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1713 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
1714 [error: `sys-file.sav' near offset 0xb4: Bad width 256 for variable VAR1.
1719 dnl SPSS-generated system file can contain duplicate variable names
1720 dnl (see bug #41475).
1721 AT_SETUP([duplicate variable name])
1722 AT_KEYWORDS([sack synthetic system file negative])
1723 AT_DATA([sys-file.sack], [dnl
1725 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1726 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1728 dnl Numeric variables.
1729 2; 0; 0; 0; 0x050800 *2; s8 "VAR1";
1730 2; 0; 0; 0; 0x050800 *2; s8 "VAR1";
1732 dnl Character encoding record.
1733 7; 20; 1; 12; "windows-1252";
1735 dnl End of dictionary.
1738 for variant in be le; do
1739 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1740 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1743 AT_CHECK([pspp -O format=csv sys-file.sps], [0],
1744 [warning: `sys-file.sav' near offset 0xd4: Renaming variable with duplicate name `VAR1' to `VAR001'.
1746 Variable,Description,,Position
1747 var1,Format: F8.0,,1
1749 ,Display Alignment: Right,,
1751 var001,Format: F8.0,,2
1753 ,Display Alignment: Right,,
1759 AT_SETUP([variable label indicator not 0 or 1])
1760 AT_KEYWORDS([sack synthetic system file negative])
1761 AT_DATA([sys-file.sack], [dnl
1763 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1764 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1766 dnl Numeric variable.
1767 2; 0; >>2<<; 0; 0x050800 *2; s8 "VAR1";
1769 dnl Character encoding record.
1770 7; 20; 1; 12; "windows-1252";
1772 dnl End of dictionary.
1775 for variant in be le; do
1776 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1777 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1779 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
1780 [error: `sys-file.sav' near offset 0xb4: Variable label indicator field is not 0 or 1.
1785 AT_SETUP([invalid numeric missing value indicator])
1786 AT_KEYWORDS([sack synthetic system file negative])
1787 AT_DATA([sys-file.sack], [dnl
1789 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1790 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1792 dnl Numeric variable.
1793 2; 0; 0; >>-1<<; 0x050800 *2; s8 "VAR1";
1795 dnl Character encoding record.
1796 7; 20; 1; 12; "windows-1252";
1798 dnl End of dictionary.
1801 for variant in be le; do
1802 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1803 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1805 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
1806 ["error: `sys-file.sav' near offset 0xb4: Numeric missing value indicator field is not -3, -2, 0, 1, 2, or 3."
1811 AT_SETUP([invalid string missing value indicator])
1812 AT_KEYWORDS([sack synthetic system file negative])
1813 AT_DATA([sys-file.sack], [dnl
1815 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1816 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1818 dnl String variable.
1819 2; 8; 0; >>4<<; 0x010800 *2; s8 "VAR1";
1821 dnl Character encoding record.
1822 7; 20; 1; 12; "windows-1252";
1824 dnl End of dictionary.
1827 for variant in be le; do
1828 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1829 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1831 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
1832 ["error: `sys-file.sav' near offset 0xb4: String missing value indicator field is not 0, 1, 2, or 3."
1837 AT_SETUP([missing string continuation record])
1838 AT_KEYWORDS([sack synthetic system file negative])
1839 AT_DATA([sys-file.sack], [dnl
1841 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1842 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1844 dnl String variable.
1845 2; 10; 0; 0; 0x010a00 *2; s8 "VAR1";
1846 >>2; 0; 0; 0; 0x050800 *2; s8 "VAR2";<<
1848 dnl Character encoding record.
1849 7; 20; 1; 12; "windows-1252";
1851 dnl End of dictionary.
1854 for variant in be le; do
1855 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1856 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1858 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
1859 [error: `sys-file.sav' near offset 0xb4: Missing string continuation record.
1864 AT_SETUP([invalid variable format])
1865 AT_KEYWORDS([sack synthetic system file negative])
1866 AT_DATA([sys-file.sack], [dnl
1868 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1869 2; 4; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1871 dnl Numeric variable, invalid format types.
1872 dnl No warning is issued for type 0 because it has been observed in real
1874 2; 0; 0; 0; >>0xff0800; 0<<; s8 "NUM1";
1876 dnl Numeric variable, string formats.
1877 2; 0; 0; 0; >>0x010800<<; >>0x021000<<; s8 "VAR1";
1879 dnl String variable, numeric formats.
1880 2; 4; 0; 0; >>0x050800<<; >>0x110a01<<; s8 "STR1";
1882 dnl String variable, wrong width formats.
1883 2; 4; 0; 0; >>0x010800<<; >>0x020400<<; s8 "STR2";
1885 dnl Character encoding record.
1886 7; 20; 1; 12; "windows-1252";
1888 dnl End of dictionary.
1891 for variant in be le; do
1892 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1893 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1895 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
1896 warning: `sys-file.sav' near offset 0xc0: Variable NUM1 with width 0 has invalid print format 0xff0800.
1898 warning: `sys-file.sav' near offset 0xe0: Variable VAR1 with width 0 has invalid print format 0x10800.
1900 warning: `sys-file.sav' near offset 0xe4: Variable VAR1 with width 0 has invalid write format 0x21000.
1902 warning: `sys-file.sav' near offset 0x100: Variable STR1 with width 4 has invalid print format 0x50800.
1904 warning: `sys-file.sav' near offset 0x104: Variable STR1 with width 4 has invalid write format 0x110a01.
1906 warning: `sys-file.sav' near offset 0x120: Variable STR2 with width 4 has invalid print format 0x10800.
1908 warning: `sys-file.sav' near offset 0x124: Variable STR2 with width 4 has invalid write format 0x20400.
1913 AT_SETUP([invalid long string missing values])
1914 AT_KEYWORDS([sack synthetic system file negative])
1915 AT_DATA([sys-file.sack], [dnl
1917 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1919 7; dnl Nominal case size
1920 0; dnl Not compressed
1924 "01 Jan 11"; "20:53:52";
1925 "PSPP synthetic test file: "; i8 244; i8 245; i8 246; i8 248; s34 "";
1928 dnl One numeric variable.
1929 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1931 dnl Long string variables that will have missing values added with a
1933 2; 9; 0; 0; 0x010900 *2; s8 "STR1";
1934 2; -1; 0; 0; 0; 0; s8 "";
1935 2; 10; 0; 0; 0x010a00 *2; s8 "STR2";
1936 2; -1; 0; 0; 0; 0; s8 "";
1937 2; 11; 0; 0; 0x010b00 *2; s8 "STR3";
1938 2; -1; 0; 0; 0; 0; s8 "";
1940 dnl Machine integer info record.
1941 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
1943 dnl Machine floating-point info record.
1944 7; 4; 8; 3; SYSMIS; HIGHEST; LOWEST;
1946 dnl Long string variable missing values record.
1948 dnl Zero missing values (not allowed) for STR1 .
1949 COUNT("STR1"); i8 >>0<<;
1951 dnl Four missing values (not allowed) for STR2.
1952 COUNT("STR2"); i8 4;
1953 8; "abcdefgh"; 8; "ijklmnop"; 8; "qrstuvwx"; 8; "yz012345";
1955 dnl Missing values for unknown variable
1956 COUNT(>>"Nonexistent"<<); i8 1; 8; "abcdefgh";
1958 dnl Missing values for numeric variable
1959 COUNT(>>"NUM1"<<); i8 1; 8; "abcdefgh";
1961 dnl Too long missing value
1962 COUNT("STR3"); i8 1; >>COUNT("abcdefghijkl")<<;
1965 dnl Character encoding record.
1966 7; 20; 1; 12; "windows-1252";
1968 dnl Dictionary termination record.
1970 s8 "abcd"; s8 "efgh"; s8 "ijkl"; s8 "mnop"; s8 "qrst"; s8 "uvwx";
1971 s16 "yzABCDEFGHI"; s16 "JKLMNOPQR"; s16 "STUVWXYZ01";
1972 s16 "23456789abc"; s32 "defghijklmnopqstuvwxyzABC";
1975 for variant in be le; do
1976 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
1977 AT_DATA([sys-file.sps], [dnl
1978 GET FILE='sys-file.sav'.
1981 AT_CHECK([pspp -O format=csv sys-file.sps], [0],
1982 ["warning: `sys-file.sav' near offset 0x1f8: Long string missing values record says variable STR1 has 0 missing values, but only 1 to 3 missing values are allowed."
1984 "warning: `sys-file.sav' near offset 0x201: Long string missing values record says variable STR2 has 4 missing values, but only 1 to 3 missing values are allowed."
1986 warning: `sys-file.sav' near offset 0x242: Ignoring long string missing value record for unknown variable Nonexistent.
1988 warning: `sys-file.sav' near offset 0x257: Ignoring long string missing value record for numeric variable NUM1.
1990 "warning: `sys-file.sav' near offset 0x270: Ignoring long string missing value 0 for variable str3, with width 11, that has bad value width 12."
1992 Variable,Description,,Position
1993 num1,Format: F8.0,,1
1995 ,Display Alignment: Right,,
1999 ,Display Alignment: Left,,
2003 ,Display Alignment: Left,,
2004 ,Display Width: 10,,
2005 ,"Missing Values: ""abcdefgh""; ""ijklmnop""; ""qrstuvwx""",,
2008 ,Display Alignment: Left,,
2009 ,Display Width: 11,,
2014 AT_SETUP([weighting variable must be numeric])
2015 AT_KEYWORDS([sack synthetic system file negative])
2016 AT_DATA([sys-file.sack], [dnl
2018 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2019 2; 2; 1; >>2<<; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2021 dnl Numeric variable.
2022 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2024 dnl String variable.
2025 2; 4; 0; 0; 0x010400 *2; s8 "STR1";
2027 dnl Character encoding record.
2028 7; 20; 1; 12; "windows-1252";
2030 dnl End of dictionary.
2033 for variant in be le; do
2034 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2035 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2038 AT_CHECK([pspp -O format=csv sys-file.sps], [0],
2039 [warning: `sys-file.sav': Ignoring string variable `STR1' set as weighting variable.
2041 Variable,Description,,Position
2042 num1,Format: F8.0,,1
2044 ,Display Alignment: Right,,
2048 ,Display Alignment: Left,,
2054 AT_SETUP([bad weighting variable index])
2055 AT_KEYWORDS([sack synthetic system file negative])
2056 AT_DATA([sys-file.sack], [dnl
2058 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2059 2; 2; 1; >>3<<; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2061 dnl Numeric variable.
2062 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2064 dnl String variable.
2065 2; 4; 0; 0; 0x010400 *2; s8 "STR1";
2067 dnl Character encoding record.
2068 7; 20; 1; 12; "windows-1252";
2070 dnl End of dictionary.
2073 for variant in be le; do
2074 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2075 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2077 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
2078 [error: `sys-file.sav' near offset 0x4c: Variable index 3 not in valid range 1...2.
2083 AT_SETUP([variable index is long string contination])
2084 AT_KEYWORDS([sack synthetic system file negative])
2085 AT_DATA([sys-file.sack], [dnl
2087 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2088 2; 3; 1; >>3<<; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2090 dnl Numeric variable.
2091 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2093 dnl Long string variable.
2094 2; 9; 0; 0; 0x010900 *2; s8 "STR1";
2095 (2; -1; 0; 0; 0; 0; s8 "");
2097 dnl Character encoding record.
2098 7; 20; 1; 12; "windows-1252";
2100 dnl End of dictionary.
2103 for variant in be le; do
2104 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2105 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2107 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
2108 [error: `sys-file.sav' near offset 0x4c: Variable index 3 refers to long string continuation.
2113 AT_SETUP([multiple documents records])
2114 AT_KEYWORDS([sack synthetic system file negative])
2115 AT_DATA([sys-file.sack], [dnl
2117 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2118 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2120 dnl Numeric variable, no label or missing values.
2121 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2123 dnl Two document records.
2124 (6; 1; s80 "One line of documents") >>* 2<<;
2126 dnl Dictionary termination record.
2129 dnl Character encoding record.
2130 7; 20; 1; 12; "windows-1252";
2135 for variant in be le; do
2136 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2137 AT_DATA([sys-file.sps], [dnl
2138 GET FILE='sys-file.sav'.
2140 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
2141 error: `sys-file.sav' near offset 0x12c: Duplicate type 6 (document) record.
2147 AT_SETUP([empty document record])
2148 AT_KEYWORDS([sack synthetic system file negative])
2149 AT_DATA([sys-file.sack], [dnl
2151 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2152 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2154 dnl Numeric variable, no label or missing values.
2155 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2157 dnl Empty document record.
2160 dnl Dictionary termination record.
2166 for variant in be le; do
2167 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2168 AT_DATA([sys-file.sps], [dnl
2169 GET FILE='sys-file.sav'.
2171 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
2172 error: `sys-file.sav' near offset 0xd4: Number of document lines (0) must be greater than 0 and less than 26843545.
2177 AT_SETUP([extension record too large])
2178 AT_KEYWORDS([sack synthetic system file negative])
2179 AT_DATA([sys-file.sack], [dnl
2181 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2182 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2184 dnl Numeric variable, no label or missing values.
2185 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2187 dnl Too-large extension record.
2188 7; 3; >>0xfffff000 * 2<<;
2190 for variant in be le; do
2191 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2192 AT_DATA([sys-file.sps], [dnl
2193 GET FILE='sys-file.sav'.
2195 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
2196 error: `sys-file.sav' near offset 0xd8: Record type 7 subtype 3 too large.
2201 AT_SETUP([unknown extension record])
2202 AT_KEYWORDS([sack synthetic system file negative])
2203 AT_DATA([sys-file.sack], [dnl
2205 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2206 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2208 dnl Numeric variable, no label or missing values.
2209 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2211 dnl Unknown extension record type.
2214 dnl Character encoding record.
2215 7; 20; 1; 12; "windows-1252";
2217 dnl End of dictionary.
2220 for variant in be le; do
2221 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2222 AT_DATA([sys-file.sps], [dnl
2223 GET FILE='sys-file.sav'.
2225 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2226 "warning: `sys-file.sav' near offset 0xd8: Unrecognized record type 7, subtype 30. Please send a copy of this file, and the syntax which created it to bug-gnu-pspp@gnu.org."
2231 AT_SETUP([bad machine integer info size])
2232 AT_KEYWORDS([sack synthetic system file negative])
2233 AT_DATA([sys-file.sack], [dnl
2235 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2236 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2238 dnl Numeric variable, no label or missing values.
2239 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2241 dnl Machine integer info record.
2242 7; 3; 4; >>9<<; 1; 2; 3; -1; 1; 1; ENDIAN; 1252; >>1234<<;
2244 dnl Character encoding record.
2245 7; 20; 1; 12; "windows-1252";
2247 dnl End of dictionary.
2250 for variant in be le; do
2251 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2252 AT_DATA([sys-file.sps], [dnl
2253 GET FILE='sys-file.sav'.
2255 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2256 "warning: `sys-file.sav' near offset 0xd8: Record type 7, subtype 3 has bad count 9 (expected 8)."
2261 AT_SETUP([bad machine integer info float format])
2262 AT_KEYWORDS([sack synthetic system file negative])
2263 AT_DATA([sys-file.sack], [dnl
2265 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2266 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2268 dnl Numeric variable, no label or missing values.
2269 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2271 dnl Machine integer info record.
2272 7; 3; 4; 8; 1; 2; 3; -1; >>2<<; 1; ENDIAN; 1252;
2274 dnl Character encoding record.
2275 7; 20; 1; 12; "windows-1252";
2277 dnl End of dictionary.
2280 for variant in be le; do
2281 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2282 AT_DATA([sys-file.sps], [dnl
2283 GET FILE='sys-file.sav'.
2285 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
2286 error: `sys-file.sav' near offset 0xd8: Floating-point representation indicated by system file (2) differs from expected (1).
2291 AT_SETUP([bad machine integer info endianness])
2292 AT_KEYWORDS([sack synthetic system file negative])
2293 AT_DATA([sys-file.sack], [dnl
2295 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2296 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2298 dnl Numeric variable, no label or missing values.
2299 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2301 dnl Machine integer info record.
2302 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; >>3<<; 1252;
2304 dnl Character encoding record.
2305 7; 20; 1; 12; "windows-1252";
2307 dnl End of dictionary.
2310 for variant in "be 1" "le 2"; do
2312 AT_CHECK([sack --$[1] sys-file.sack > sys-file.sav])
2313 AT_DATA([sys-file.sps], [dnl
2314 GET FILE='sys-file.sav'.
2317 AT_CHECK_UNQUOTED([pspp -O format=csv sys-file.sps], [0], [dnl
2318 warning: \`sys-file.sav' near offset 0xd8: Integer format indicated by system file (3) differs from expected ($[2]).
2320 Variable,Description,,Position
2321 num1,Format: F8.0,,1
2323 ,Display Alignment: Right,,
2330 AT_SETUP([bad machine floating-point info size])
2331 AT_KEYWORDS([sack synthetic system file negative])
2332 AT_DATA([sys-file.sack], [dnl
2334 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2335 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2337 dnl Numeric variable, no label or missing values.
2338 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2340 dnl Machine floating-point info record.
2341 7; 4; 8; >>4<<; SYSMIS; HIGHEST; LOWEST; 0.0;
2343 dnl Character encoding record.
2344 7; 20; 1; 12; "windows-1252";
2346 dnl End of dictionary.
2349 for variant in be le; do
2350 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2351 AT_DATA([sys-file.sps], [dnl
2352 GET FILE='sys-file.sav'.
2354 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2355 "warning: `sys-file.sav' near offset 0xd8: Record type 7, subtype 4 has bad count 4 (expected 3)."
2360 AT_SETUP([wrong special floating point values])
2361 AT_KEYWORDS([sack synthetic system file negative])
2362 AT_DATA([sys-file.sack], [dnl
2364 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2365 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2367 dnl Numeric variable, no label or missing values.
2368 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2370 dnl Machine floating-point info record.
2371 7; 4; 8; 3; >>0.0<<; >>1.0<<; >>2.0<<;
2373 dnl Character encoding record.
2374 7; 20; 1; 12; "windows-1252";
2376 dnl End of dictionary.
2379 for variant in be le; do
2380 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2381 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2383 AT_CHECK([pspp -O format=csv sys-file.sps | sed 's/ [(].*/.../'], [0], [dnl
2384 "warning: `sys-file.sav' near offset 0xd8: File specifies unexpected value 0...
2386 "warning: `sys-file.sav' near offset 0xd8: File specifies unexpected value 1...
2388 "warning: `sys-file.sav' near offset 0xd8: File specifies unexpected value 2...
2393 AT_SETUP([bad mrsets name])
2394 AT_KEYWORDS([sack synthetic system file negative multiple response])
2395 AT_DATA([sys-file.sack], [dnl
2397 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2399 16; dnl Nominal case size
2400 0; dnl Not compressed
2404 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
2408 2; 0; 0; 0; 0x050800 *2; i8 0x82; i8 0xa0; s6 "";
2409 2; 0; 0; 0; 0x050800 *2; s8 "B";
2410 2; 0; 0; 0; 0x050800 *2; s8 "C";
2413 2; 0; 0; 0; 0x050800 *2; s8 "D";
2414 2; 0; 0; 0; 0x050800 *2; s8 "E";
2415 2; 0; 0; 0; 0x050800 *2; s8 "F";
2416 2; 0; 0; 0; 0x050800 *2; s8 "G";
2419 2; 4; 0; 0; 0x010400 *2; s8 "H";
2420 2; 4; 0; 0; 0x010400 *2; s8 "I";
2421 2; 4; 0; 0; 0x010400 *2; s8 "J";
2424 2; 0; 0; 0; 0x050800 *2; s8 "K";
2425 2; 0; 0; 0; 0x050800 *2; s8 "L";
2426 2; 0; 0; 0; 0x050800 *2; s8 "M";
2429 2; 6; 0; 0; 0x010600 *2; s8 "N";
2430 2; 6; 0; 0; 0x010600 *2; s8 "O";
2431 2; 6; 0; 0; 0x010600 *2; s8 "P";
2433 dnl Machine integer info record.
2434 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 932;
2438 "$a=C 10 my mcgroup "; i8 0x82; i8 0xa0; " b c"; i8 10;
2439 "b=D2 55 0 g e f d"; i8 10;
2440 "$c=D4 "; i8 0x82; i8 0xcd; i8 0x82; i8 0xa2; " 10 mdgroup #2 h i j"; i8 10);
2444 "$d=E 1 2 34 13 third mdgroup k l m"; i8 10;
2445 "e=E 11 6 choice 0 n o p"; i8 10);
2447 dnl Character encoding record.
2448 7; 20; 1; 9; "shift_jis";
2450 dnl Dictionary termination record.
2453 for variant in be le; do
2454 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2455 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2456 MRSETS /DISPLAY NAME=ALL.
2458 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2459 warning: `sys-file.sav': Multiple response set name `b' does not begin with `$'.
2461 warning: `sys-file.sav': Multiple response set name `e' does not begin with `$'.
2463 Table: Multiple Response Sets
2464 Name,Variables,Details
2468 ","Multiple category set
2474 ","Multiple dichotomy set
2476 Label source: Provided by user
2478 Category label source: Variable labels
2483 ","Multiple dichotomy set
2484 Label: third mdgroup
2485 Label source: Provided by user
2487 Category label source: Value labels of counted value
2493 AT_SETUP([missing space after C in mrsets])
2494 AT_KEYWORDS([sack synthetic system file negative multiple response])
2495 AT_DATA([sys-file.sack], [dnl
2497 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2498 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2500 dnl Numeric variable, no label or missing values.
2501 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2503 dnl Multiple response sets.
2504 7; 7; 1; COUNT("$a=Cx");
2506 dnl Character encoding record.
2507 7; 20; 1; 12; "windows-1252";
2511 for variant in be le; do
2512 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2513 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2515 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2516 warning: `sys-file.sav' near offset 0xd8: Missing space following `C' at offset 4 in MRSETS record.
2521 AT_SETUP([missing space after E in mrsets])
2522 AT_KEYWORDS([sack synthetic system file negative multiple response])
2523 AT_DATA([sys-file.sack], [dnl
2525 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2526 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2528 dnl Numeric variable, no label or missing values.
2529 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2531 dnl Multiple response sets.
2532 7; 7; 1; COUNT("$a=Ex");
2534 dnl Character encoding record.
2535 7; 20; 1; 12; "windows-1252";
2539 for variant in be le; do
2540 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2541 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2543 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2544 warning: `sys-file.sav' near offset 0xd8: Missing space following `E' at offset 4 in MRSETS record.
2549 AT_SETUP([unexpected label source in mrsets])
2550 AT_KEYWORDS([sack synthetic system file negative multiple response])
2551 AT_DATA([sys-file.sack], [dnl
2553 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2554 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2556 dnl Numeric variable, no label or missing values.
2557 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2559 dnl Multiple response sets.
2560 7; 7; 1; COUNT("$a=E 2");
2562 dnl Character encoding record.
2563 7; 20; 1; 12; "windows-1252";
2567 for variant in be le; do
2568 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2569 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2571 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2572 warning: `sys-file.sav' near offset 0xd8: Unexpected label source value following `E' at offset 7 in MRSETS record.
2574 warning: `sys-file.sav' near offset 0xd8: Expecting digit at offset 7 in MRSETS record.
2579 AT_SETUP([bad type character in mrsets])
2580 AT_KEYWORDS([sack synthetic system file negative multiple response])
2581 AT_DATA([sys-file.sack], [dnl
2583 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2584 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2586 dnl Numeric variable, no label or missing values.
2587 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2589 dnl Multiple response sets.
2590 7; 7; 1; COUNT("$a=");
2592 dnl Character encoding record.
2593 7; 20; 1; 12; "windows-1252";
2597 for variant in be le; do
2598 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2599 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2601 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2602 "warning: `sys-file.sav' near offset 0xd8: Missing `C', `D', or `E' at offset 3 in MRSETS record."
2607 AT_SETUP([bad counted string length in mrsets])
2608 AT_KEYWORDS([sack synthetic system file negative multiple response])
2609 AT_DATA([sys-file.sack], [dnl
2611 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2612 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2614 dnl Numeric variable, no label or missing values.
2615 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2617 dnl Multiple response sets.
2618 7; 7; 1; COUNT("$a=Dx");
2620 dnl Character encoding record.
2621 7; 20; 1; 12; "windows-1252";
2625 for variant in be le; do
2626 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2627 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2629 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2630 warning: `sys-file.sav' near offset 0xd8: Expecting digit at offset 4 in MRSETS record.
2635 AT_SETUP([missing space in counted string in mrsets])
2636 AT_KEYWORDS([sack synthetic system file negative multiple response])
2637 AT_DATA([sys-file.sack], [dnl
2639 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2640 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2642 dnl Numeric variable, no label or missing values.
2643 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2645 dnl Multiple response sets.
2646 7; 7; 1; COUNT("$a=D1x");
2648 dnl Character encoding record.
2649 7; 20; 1; 12; "windows-1252";
2653 for variant in be le; do
2654 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2655 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2657 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2658 warning: `sys-file.sav' near offset 0xd8: Expecting space at offset 5 in MRSETS record.
2663 AT_SETUP([counted string too long in mrsets])
2664 AT_KEYWORDS([sack synthetic system file negative multiple response])
2665 AT_DATA([sys-file.sack], [dnl
2667 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2668 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2670 dnl Numeric variable, no label or missing values.
2671 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2673 dnl Multiple response sets.
2674 7; 7; 1; COUNT("$a=D4 abc");
2676 dnl Character encoding record.
2677 7; 20; 1; 12; "windows-1252";
2681 for variant in be le; do
2682 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2683 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2685 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2686 warning: `sys-file.sav' near offset 0xd8: 4-byte string starting at offset 6 exceeds record length 9.
2691 AT_SETUP([missing space after counted string in mrsets])
2692 AT_KEYWORDS([sack synthetic system file negative multiple response])
2693 AT_DATA([sys-file.sack], [dnl
2695 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2696 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2698 dnl Numeric variable, no label or missing values.
2699 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2701 dnl Multiple response sets.
2702 7; 7; 1; COUNT("$a=D3 abcx");
2704 dnl Character encoding record.
2705 7; 20; 1; 12; "windows-1252";
2709 for variant in be le; do
2710 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2711 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2713 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2714 warning: `sys-file.sav' near offset 0xd8: Expecting space at offset 9 following 3-byte string.
2719 AT_SETUP([missing newline after variable name in mrsets])
2720 AT_KEYWORDS([sack synthetic system file negative multiple response])
2721 AT_DATA([sys-file.sack], [dnl
2723 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2724 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2726 dnl Numeric variable, no label or missing values.
2727 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2729 dnl Multiple response sets.
2730 7; 7; 1; COUNT("$a=C 0 NUM1");
2732 dnl Character encoding record.
2733 7; 20; 1; 12; "windows-1252";
2737 for variant in be le; do
2738 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2739 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2741 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2742 warning: `sys-file.sav' near offset 0xd8: Missing new-line parsing variable names at offset 13 in MRSETS record.
2744 warning: `sys-file.sav': MRSET $a has only one variable.
2749 AT_SETUP([duplicate variable name in mrsets])
2750 AT_KEYWORDS([sack synthetic system file negative multiple response])
2751 AT_DATA([sys-file.sack], [dnl
2753 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2754 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2756 dnl Numeric variable, no label or missing values.
2757 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2759 dnl Multiple response sets.
2760 7; 7; 1; COUNT("$a=C 0 NUM1 NUM1"; i8 10);
2762 dnl Character encoding record.
2763 7; 20; 1; 12; "windows-1252";
2767 for variant in be le; do
2768 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2769 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2771 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2772 warning: `sys-file.sav': MRSET $a contains duplicate variable name NUM1.
2774 warning: `sys-file.sav': MRSET $a has only one variable.
2779 AT_SETUP([mixed variable types in mrsets])
2780 AT_KEYWORDS([sack synthetic system file negative multiple response])
2781 AT_DATA([sys-file.sack], [dnl
2783 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2784 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2787 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2788 2; 8; 0; 0; 0x010800 *2; s8 "STR1";
2790 dnl Multiple response sets.
2791 7; 7; 1; COUNT("$a=C 0 NUM1 STR1"; i8 10);
2793 dnl Character encoding record.
2794 7; 20; 1; 12; "windows-1252";
2798 for variant in be le; do
2799 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2800 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2802 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2803 warning: `sys-file.sav': MRSET $a contains both string and numeric variables.
2805 warning: `sys-file.sav': MRSET $a has only one variable.
2810 AT_SETUP([missing newline after variable name in mrsets])
2811 AT_KEYWORDS([sack synthetic system file negative multiple response])
2812 AT_DATA([sys-file.sack], [dnl
2814 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2815 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2817 dnl Numeric variable, no label or missing values.
2818 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2820 dnl Multiple response sets.
2821 7; 7; 1; COUNT("$a=C 0 NUM1"; i8 10);
2823 dnl Character encoding record.
2824 7; 20; 1; 12; "windows-1252";
2828 for variant in be le; do
2829 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2830 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2832 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2833 warning: `sys-file.sav': MRSET $a has only one variable.
2838 AT_SETUP([zero or one variable in mrset])
2839 AT_KEYWORDS([sack synthetic system file negative multiple response])
2840 AT_DATA([sys-file.sack], [dnl
2842 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2843 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2845 dnl Numeric variable, no label or missing values.
2846 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2848 dnl Multiple response sets.
2849 7; 7; 1; COUNT("$a=C 0 NUM1"; i8 10; "$b=C 0 "; i8 10);
2851 dnl Character encoding record.
2852 7; 20; 1; 12; "windows-1252";
2856 for variant in be le; do
2857 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2858 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2860 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2861 warning: `sys-file.sav': MRSET $a has only one variable.
2863 warning: `sys-file.sav': MRSET $b has no variables.
2868 AT_SETUP([wrong display parameter size])
2869 AT_KEYWORDS([sack synthetic system file negative])
2870 AT_DATA([sys-file.sack], [dnl
2872 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2873 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2875 dnl Numeric variable, no label or missing values.
2876 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2878 dnl Display parameters record.
2879 7; 11; >>8<<; 2; 1.0; 1.0;
2881 dnl Character encoding record.
2882 7; 20; 1; 12; "windows-1252";
2884 dnl End of dictionary.
2887 for variant in be le; do
2888 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2889 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2891 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2892 "warning: `sys-file.sav' near offset 0xd8: Record type 7, subtype 11 has bad size 8 (expected 4)."
2897 AT_SETUP([wrong display parameter count])
2898 AT_KEYWORDS([sack synthetic system file negative])
2899 AT_DATA([sys-file.sack], [dnl
2901 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2902 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2904 dnl Numeric variable, no label or missing values.
2905 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2907 dnl Display parameters record.
2908 7; 11; 4; >>4<<; 1; 1; 2; 2;
2910 dnl Character encoding record.
2911 7; 20; 1; 12; "windows-1252";
2913 dnl End of dictionary.
2916 for variant in be le; do
2917 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2918 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2920 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2921 warning: `sys-file.sav' near offset 0xd8: Extension 11 has bad count 4 (for 1 variables).
2926 AT_SETUP([wrong display measurement level])
2927 AT_KEYWORDS([sack synthetic system file negative])
2928 AT_DATA([sys-file.sack], [dnl
2930 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2931 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2933 dnl Numeric variable, no label or missing values.
2934 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2936 dnl Display parameters record.
2937 7; 11; 4; 2; >>4<<; 0;
2939 dnl Character encoding record.
2940 7; 20; 1; 12; "windows-1252";
2942 dnl End of dictionary.
2945 for variant in be le; do
2946 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2947 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2949 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2950 warning: `sys-file.sav' near offset 0xd8: Invalid variable display parameters for variable 0 (NUM1). Default parameters substituted.
2955 AT_SETUP([wrong display alignment])
2956 AT_KEYWORDS([sack synthetic system file negative])
2957 AT_DATA([sys-file.sack], [dnl
2959 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2960 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2962 dnl Numeric variable, no label or missing values.
2963 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2965 dnl Display parameters record.
2966 7; 11; 4; 2; 1; >>-1<<;
2968 dnl Character encoding record.
2969 7; 20; 1; 12; "windows-1252";
2971 dnl End of dictionary.
2974 for variant in be le; do
2975 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
2976 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2978 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2979 warning: `sys-file.sav' near offset 0xd8: Invalid variable display parameters for variable 0 (NUM1). Default parameters substituted.
2984 AT_SETUP([bad variable name in variable/value pair])
2985 AT_KEYWORDS([sack synthetic system file negative])
2986 AT_DATA([sys-file.sack], [dnl
2988 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2989 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2991 dnl Numeric variables.
2992 2; 0; 0; 0; 0x050800 *2; s8 "LONGVARI";
2994 dnl Long variable names.
2995 7; 13; 1; COUNT (>>"xyzzy"<<);
2997 dnl Character encoding record.
2998 7; 20; 1; 12; "windows-1252";
3000 dnl Dictionary termination record.
3003 for variant in be le; do
3004 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3005 AT_DATA([sys-file.sps], [dnl
3006 GET FILE='sys-file.sav'.
3008 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3009 warning: `sys-file.sav' near offset 0xde: Dictionary record refers to unknown variable xyzzy.
3014 AT_SETUP([duplicate long variable name])
3015 AT_KEYWORDS([sack synthetic system file negative])
3016 AT_DATA([sys-file.sack], [dnl
3018 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3019 2; 4; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3021 dnl Numeric variables.
3022 2; 0; 0; 0; 0x050800 *2; s8 "LONGVARI";
3023 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_A";
3024 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_B";
3025 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_C";
3027 dnl Long variable names.
3029 "LONGVARI=_Invalid"; i8 9;
3030 "LONGVA_A=LongVariableName"; i8 9;
3031 "LONGVA_B=LONGVARIABLENAME"; i8 9;
3034 dnl Character encoding record.
3035 7; 20; 1; 12; "windows-1252";
3037 dnl Dictionary termination record.
3040 for variant in be le; do
3041 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3042 AT_DATA([sys-file.sps], [dnl
3043 GET FILE='sys-file.sav'.
3045 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3046 warning: `sys-file.sav' near offset 0x138: Long variable mapping from LONGVARI to invalid variable name `_Invalid'.
3048 warning: `sys-file.sav' near offset 0x138: Duplicate long variable name `LONGVARIABLENAME'.
3053 AT_SETUP([bad very long string length])
3054 AT_KEYWORDS([sack synthetic system file negative])
3055 AT_DATA([sys-file.sack], [dnl
3057 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3058 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3060 dnl Numeric variable.
3061 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3063 dnl Very long string map.
3065 "NUM1=00000"; i8 0; i8 9;
3066 "NUM1=00255"; i8 0; i8 9;
3067 "NUM1=00256"; i8 0; i8 9;
3070 dnl Character encoding record.
3071 7; 20; 1; 12; "windows-1252";
3073 dnl Dictionary termination record.
3076 for variant in be le; do
3077 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3078 AT_DATA([sys-file.sps], [dnl
3079 GET FILE='sys-file.sav'.
3081 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3082 warning: `sys-file.sav' near offset 0xd8: NUM1 listed as string of invalid length 00000 in very long string record.
3084 "warning: `sys-file.sav' near offset 0xd8: NUM1 listed in very long string record with width 00255, which requires only one segment."
3086 error: `sys-file.sav' near offset 0xd8: Very long string NUM1 overflows dictionary.
3091 AT_SETUP([bad very long string segment width])
3092 AT_KEYWORDS([sack synthetic system file negative])
3093 AT_DATA([sys-file.sack], [dnl
3095 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3096 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3099 2; 255; 0; 0; 0x01ff00 *2; s8 "STR1";
3100 (2; -1; 0; 0; 0; 0; s8 "") * 31;
3101 2; >>9<<; 0; 0; 0x010900 *2; s8 "STR1_A";
3102 >>2; -1; 0; 0; 0; 0; s8 "";<<
3104 dnl Very long string map.
3106 "STR1=00256"; i8 0; i8 9;
3109 dnl Character encoding record.
3110 7; 20; 1; 12; "windows-1252";
3112 dnl Dictionary termination record.
3115 for variant in be le; do
3116 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3117 AT_DATA([sys-file.sps], [dnl
3118 GET FILE='sys-file.sav'.
3120 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3121 error: `sys-file.sav' near offset 0x4f8: Very long string with width 256 has segment 1 of width 9 (expected 4).
3126 AT_SETUP([too many value labels])
3127 dnl Skip the test if multiplying a small number by INT32_MAX would not
3128 dnl cause an overflow in size_t.
3129 AT_SKIP_IF([test $SIZEOF_SIZE_T -gt 4])
3130 AT_KEYWORDS([sack synthetic system file negative])
3131 AT_DATA([sys-file.sack], [dnl
3133 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3134 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3136 dnl Numeric variable.
3137 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3140 for variant in be le; do
3141 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3142 AT_DATA([sys-file.sps], [dnl
3143 GET FILE='sys-file.sav'.
3145 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3146 error: `sys-file.sav' near offset 0xd4: Invalid number of labels 2147483647.
3151 AT_SETUP([missing type 4 record])
3152 AT_KEYWORDS([sack synthetic system file negative])
3153 AT_DATA([sys-file.sack], [dnl
3155 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3156 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3158 dnl Numeric variable.
3159 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3161 dnl Value label with missing type 4 record.
3162 3; 1; 1.0; i8 3; s7 "one";
3164 dnl Character encoding record.
3165 7; 20; 1; 12; "windows-1252";
3167 dnl End of dictionary.
3170 for variant in be le; do
3171 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3172 AT_DATA([sys-file.sps], [dnl
3173 GET FILE='sys-file.sav'.
3175 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3176 error: `sys-file.sav' near offset 0xe8: Variable index record (type 4) does not immediately follow value label record (type 3) as it should.
3181 AT_SETUP([value label with no associated variables])
3182 AT_KEYWORDS([sack synthetic system file negative])
3183 AT_DATA([sys-file.sack], [dnl
3185 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3186 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3188 dnl Numeric variable.
3189 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3191 dnl Value label with no variables.
3192 3; 1; 1.0; i8 3; s7 "one"; 4; >>0<<;
3194 for variant in be le; do
3195 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3196 AT_DATA([sys-file.sps], [dnl
3197 GET FILE='sys-file.sav'.
3199 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3200 error: `sys-file.sav' near offset 0xec: Number of variables associated with a value label (0) is not between 1 and the number of variables (1).
3205 AT_SETUP([type 4 record names long string variable])
3206 AT_KEYWORDS([sack synthetic system file negative])
3207 AT_DATA([sys-file.sack], [dnl
3209 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3210 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3212 dnl Long string variable.
3213 2; 9; 0; 0; 0x010900 *2; s8 "STR1";
3214 2; -1; 0; 0; 0; 0; s8 "";
3216 dnl Value label that names long string variable.
3217 3; 1; s8 "xyzzy"; i8 3; s7 "one"; 4; 1; >>1<<;
3219 dnl Character encoding record.
3220 7; 20; 1; 12; "windows-1252";
3222 dnl End of dictionary.
3225 for variant in be le; do
3226 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3227 AT_DATA([sys-file.sps], [dnl
3228 GET FILE='sys-file.sav'.
3230 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3231 error: `sys-file.sav' near offset 0xf4: Value labels may not be added to long string variables (e.g. STR1) using records types 3 and 4.
3236 AT_SETUP([variables for value label must all be same type])
3237 AT_KEYWORDS([sack synthetic system file negative])
3238 AT_DATA([sys-file.sack], [dnl
3240 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3241 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3244 2; 6; 0; 0; 0x010600 *2; s8 "STR1";
3245 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3247 dnl Value label that names numeric and string variables.
3248 3; 1; s8 "xyzzy"; i8 3; s7 "one"; 4; 2; >>1; 2<<;
3250 dnl Character encoding record.
3251 7; 20; 1; 12; "windows-1252";
3253 dnl End of dictionary.
3256 for variant in be le; do
3257 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3258 AT_DATA([sys-file.sps], [dnl
3259 GET FILE='sys-file.sav'.
3261 AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3262 "error: `sys-file.sav' near offset 0xf4: Variables associated with value label are not all of identical type. Variable STR1 is string, but variable NUM1 is numeric."
3267 AT_SETUP([duplicate value labels type])
3268 AT_KEYWORDS([sack synthetic system file negative])
3269 AT_DATA([sys-file.sack], [dnl
3271 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3272 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3275 2; 6; 0; 0; 0x010600 *2; s8 "STR1";
3276 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3278 dnl Duplicate value labels.
3279 3; 1; s8 "xyzzy"; i8 3; s7 "one"; 4; 2; >>1; 1<<;
3280 3; 1; 1.0; i8 3; s7 "one"; 4; 2; >>2; 2<<;
3282 dnl Character encoding record.
3283 7; 20; 1; 12; "windows-1252";
3285 dnl End of dictionary.
3288 for variant in be le; do
3289 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3290 AT_DATA([sys-file.sps], [dnl
3291 GET FILE='sys-file.sav'.
3293 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3294 warning: `sys-file.sav' near offset 0xf4: Duplicate value label for `xyzzy ' on STR1.
3296 warning: `sys-file.sav' near offset 0x11c: Duplicate value label for 1 on NUM1.
3301 AT_SETUP([missing attribute value])
3302 AT_KEYWORDS([sack synthetic system file negative])
3303 AT_DATA([sys-file.sack], [dnl
3305 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3306 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3309 2; 0; 0; 0; 0x050800 *2; s8 "FIRSTVAR";
3311 dnl Data file attributes record.
3316 dnl Variable attributes record.
3322 dnl Character encoding record.
3323 7; 20; 1; 12; "windows-1252";
3325 dnl Dictionary termination record.
3328 for variant in be le; do
3329 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3330 AT_DATA([sys-file.sps], [dnl
3331 GET FILE='sys-file.sav'.
3333 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3334 warning: `sys-file.sav' near offset 0xde: Error parsing attribute value Attr1[[1]].
3336 warning: `sys-file.sav' near offset 0x101: Error parsing attribute value fred[[2]].
3341 AT_SETUP([unquoted attribute value])
3342 AT_KEYWORDS([sack synthetic system file negative])
3343 AT_DATA([sys-file.sack], [dnl
3345 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3346 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3349 2; 0; 0; 0; 0x050800 *2; s8 "FIRSTVAR";
3351 dnl Data file attributes record.
3353 "Attr1(value"; i8 10;
3357 dnl Variable attributes record.
3360 "fred(23"; i8 10; ")"
3363 dnl Character encoding record.
3364 7; 20; 1; 12; "windows-1252";
3366 dnl Dictionary termination record.
3369 for variant in be le; do
3370 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3371 AT_DATA([sys-file.sps], [dnl
3372 GET FILE='sys-file.sav'.
3374 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3375 warning: `sys-file.sav' near offset 0xe4: Attribute value Attr1[[1]] is not quoted: value.
3377 warning: `sys-file.sav' near offset 0x106: Attribute value fred[[1]] is not quoted: 23.
3382 AT_SETUP([bad variable name in long string value label])
3383 AT_KEYWORDS([sack synthetic system file negative])
3384 AT_DATA([sys-file.sack], [dnl
3386 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3387 2; 3; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3390 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3391 2; 14; 0; 0; 0x010e00 *2; s8 "STR14";
3392 2; -1; 0; 0; 0; 0; s8 "";
3395 dnl No variable named STR9.
3396 COUNT(>>"STR9"<<); 9;
3397 1; COUNT("RSTUVWXYZ"); COUNT("value label for `RSTUVWXYZ'");
3399 dnl NUM1 is numeric.
3400 COUNT(>>"NUM1"<<); 0;
3401 1; COUNT("xyz"); COUNT("value label for 1.0");
3403 dnl Wrong width for STR14.
3404 COUNT("STR14"); >>9<<;
3405 1; COUNT("RSTUVWXYZ"); COUNT("value label for `RSTUVWXYZ'");
3407 dnl Wrong width for value.
3409 1; COUNT(>>"RSTUVWXYZ"<<); COUNT("value label for `RSTUVWXYZ'");
3411 dnl Duplicate value label.
3412 COUNT("STR14"); 14; 2;
3413 COUNT("abcdefghijklmn"); COUNT("value label for `abcdefghijklmn'");
3414 >>COUNT("abcdefghijklmn"); COUNT("another value label for `abcdefghijklmn'")<<;
3417 dnl Character encoding record.
3418 7; 20; 1; 12; "windows-1252";
3420 dnl Dictionary termination record.
3423 for variant in be le; do
3424 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3425 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3427 AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3428 warning: `sys-file.sav' near offset 0x128: Ignoring long string value label record for unknown variable STR9.
3430 warning: `sys-file.sav' near offset 0x164: Ignoring long string value label record for numeric variable NUM1.
3432 warning: `sys-file.sav' near offset 0x193: Ignoring long string value label record for variable STR14 because the record's width (9) does not match the variable's width (14).
3434 "warning: `sys-file.sav' near offset 0x1d4: Ignoring long string value label 0 for variable str14, with width 14, that has bad value width 9."
3436 warning: `sys-file.sav' near offset 0x259: Duplicate value label for `abcdefghijklmn' on str14.
3441 AT_SETUP([fewer data records than indicated by file header])
3442 AT_KEYWORDS([sack synthetic system file negative])
3443 AT_DATA([sys-file.sack], [dnl
3445 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3446 2; 2; 0; 0; >>5<<; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3448 dnl Numeric variables.
3449 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3450 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
3452 dnl Character encoding record.
3453 7; 20; 1; 12; "windows-1252";
3461 dnl Missing record here.
3463 for variant in be le; do
3464 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3465 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3468 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
3469 [error: Error reading case from file `sys-file.sav'.
3481 AT_SETUP([partial data record between variables])
3482 AT_KEYWORDS([sack synthetic system file negative])
3483 AT_DATA([sys-file.sack], [dnl
3485 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3486 2; 2; 0; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3488 dnl Numeric variables.
3489 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3490 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
3492 dnl Character encoding record.
3493 7; 20; 1; 12; "windows-1252";
3500 for variant in be le; do
3501 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3502 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3505 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
3506 [error: `sys-file.sav' near offset 0x12c: File ends in partial case.
3515 AT_SETUP([partial data record within long string])
3516 AT_KEYWORDS([sack synthetic system file negative])
3517 AT_DATA([sys-file.sack], [dnl
3519 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3520 2; 2; 0; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3522 dnl Numeric variables.
3523 2; 14; 0; 0; 0x010e00 *2; s8 "STR14";
3524 2; -1; 0; 0; 0; 0; s8 "";
3526 dnl Character encoding record.
3527 7; 20; 1; 12; "windows-1252";
3531 s14 "one data item";
3534 for variant in be le; do
3535 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3536 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3539 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
3540 [error: `sys-file.sav' near offset 0x12a: Unexpected end of file.
3549 AT_SETUP([partial compressed data record])
3550 AT_KEYWORDS([sack synthetic system file positive])
3551 AT_DATA([sys-file.sack], [dnl
3553 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3555 6; dnl Nominal case size
3558 -1; dnl Unspecified number of cases.
3560 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
3563 dnl Numeric variables.
3564 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3565 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
3567 dnl String variable.
3568 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
3569 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
3570 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
3571 2; -1; 0; 0; 0; 0; s8 "";
3573 dnl Character encoding record.
3574 7; 20; 1; 12; "windows-1252";
3576 dnl Dictionary termination record.
3579 dnl Compressed data.
3580 i8 1 100 254 253 254 253; i8 255 251; "abcdefgh"; s8 "0123";
3582 for variant in be le; do
3583 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3584 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3587 AT_CHECK([pspp -O format=csv sys-file.sps], [1],
3588 [error: `sys-file.sav' near offset 0x1ac: File ends in partial case.
3591 num1,num2,str4,str8,str15
3592 -99,0,,abcdefgh,0123 @&t@
3597 AT_SETUP([zcompressed data - bad zheader_ofs])
3598 AT_KEYWORDS([sack synthetic system file negative zlib])
3599 zcompressed_sack | sed 's/.*zheader_ofs.*/>>i64 0<<;/' > sys-file.sack
3600 for variant in be le; do
3601 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3602 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3604 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x194: Wrong ZLIB data header offset 0 (expected 0x194).
3609 AT_SETUP([zcompressed data - bad ztrailer_ofs])
3610 AT_KEYWORDS([sack synthetic system file negative zlib])
3611 zcompressed_sack | sed 's/.*ztrailer_ofs.*/>>i64 0<<;/' > sys-file.sack
3612 for variant in be le; do
3613 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3614 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3616 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x194: Impossible ZLIB trailer offset 0x0.
3621 # ztrailer_len must be a multiple of 24 and at least 48,
3622 # so a value of 12 is impossible.
3623 AT_SETUP([zcompressed data - invalid ztrailer_len])
3624 AT_KEYWORDS([sack synthetic system file negative zlib])
3625 zcompressed_sack | sed 's/.*ztrailer_len.*/>>i64 12<<;/' > sys-file.sack
3626 for variant in be le; do
3627 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3628 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3630 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x194: Invalid ZLIB trailer length 12.
3635 # ztrailer_ofs + ztrailer_len must be the file size.
3636 AT_SETUP([zcompressed data - wrong ztrailer_len])
3637 AT_KEYWORDS([sack synthetic system file negative zlib])
3638 zcompressed_sack | sed 's/.*ztrailer_len.*/>>i64 72<<;/' > sys-file.sack
3639 for variant in be le; do
3640 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3641 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3643 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [warning: `sys-file.sav' near offset 0x1ac: End of ZLIB trailer (0x24d) is not file size (0x235).
3644 error: `sys-file.sav' near offset 0x21d: 72-byte ZLIB trailer specifies 1 data blocks (expected 2).
3649 AT_SETUP([zcompressed data - wrong ztrailer_bias])
3650 AT_KEYWORDS([sack synthetic system file negative zlib])
3651 zcompressed_sack | sed 's/.*ztrailer_bias.*/>>i64 0<<;/' > sys-file.sack
3652 for variant in be le; do
3653 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3654 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3656 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x20d: ZLIB trailer bias (0) differs from file header bias (100.00).
3661 AT_SETUP([zcompressed data - wrong ztrailer_zero])
3662 AT_KEYWORDS([sack synthetic system file negative zlib])
3663 zcompressed_sack | sed 's/.*ztrailer_zero.*/>>i64 100<<;/' > sys-file.sack
3664 for variant in be le; do
3665 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3666 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3668 AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [warning: `sys-file.sav' near offset 0x215: ZLIB trailer "zero" field has nonzero value 100.
3673 AT_SETUP([zcompressed data - wrong block_size])
3674 AT_KEYWORDS([sack synthetic system file negative zlib])
3675 zcompressed_sack | sed 's/.*block_size.*/>>0x1000<<;/' > sys-file.sack
3676 for variant in be le; do
3677 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3678 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3680 AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [warning: `sys-file.sav' near offset 0x219: ZLIB trailer specifies unexpected 4096-byte block size.
3685 AT_SETUP([zcompressed data - wrong n_blocks])
3686 AT_KEYWORDS([sack synthetic system file negative zlib])
3687 zcompressed_sack | sed 's/.*n_blocks.*/>>2<<;/' > sys-file.sack
3688 for variant in be le; do
3689 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3690 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3692 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x21d: 48-byte ZLIB trailer specifies 2 data blocks (expected 1).
3697 AT_SETUP([zcompressed data - wrong uncompressed_ofs])
3698 AT_KEYWORDS([sack synthetic system file negative zlib])
3699 zcompressed_sack | sed 's/.*uncompressed_ofs.*/i64 >>0x177<<;/' > sys-file.sack
3700 for variant in be le; do
3701 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3702 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3704 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x21d: ZLIB block descriptor 0 reported uncompressed data offset 0x177, when 0x194 was expected.
3709 AT_SETUP([zcompressed data - wrong compressed_ofs])
3710 AT_KEYWORDS([sack synthetic system file negative zlib])
3711 zcompressed_sack | sed 's/.*@%:@ compressed_ofs.*/i64 >>0x191<<;/' > sys-file.sack
3712 for variant in be le; do
3713 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3714 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3716 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x21d: ZLIB block descriptor 0 reported compressed data offset 0x191, when 0x1ac was expected.
3721 AT_SETUP([zcompressed data - compressed sizes don't add up])
3722 AT_KEYWORDS([sack synthetic system file negative zlib])
3723 AT_DATA([sys-file.sack], [dnl
3725 "$FL3"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3727 6; dnl Nominal case size
3728 2; dnl zlib compressed
3730 -1; dnl Unspecified number of cases.
3732 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
3735 dnl Numeric variables.
3736 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3737 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
3739 dnl String variable.
3740 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
3741 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
3742 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
3743 2; -1; 0; 0; 0; 0; s8 "";
3745 dnl Character encoding record.
3746 7; 20; 1; 12; "windows-1252";
3748 dnl Dictionary termination record.
3751 dnl ZLIB data header.
3752 i64 0x194; # zheader_ofs
3753 i64 0x1ac; # ztrailer_ofs
3754 i64 72; # ztrailer_len
3756 dnl This is where the ZLIB data blocks would go, but we don't need any to
3757 dnl provoke this message so we omit them.
3759 dnl ZLIB data trailer fixed header:
3760 i64 -100; # ztrailer_bias
3761 i64 0; # ztrailer_zero
3762 0x3ff000; # block_size
3765 dnl ZLIB block descriptor 1:
3766 i64 0x194; # uncompressed_ofs
3767 i64 0x1ac; # compressed_ofs
3768 0x100000; # uncompressed_size
3769 0x12345; # compressed_size
3771 dnl ZLIB block descriptor 2:
3772 i64 0x100194; # uncompressed_ofs
3773 i64 0x12421; # compressed_ofs
3774 0x100000; # uncompressed_size
3775 0x12345; # compressed_size
3777 for variant in be le; do
3778 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3779 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3781 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [warning: `sys-file.sav' near offset 0x1c4: ZLIB block descriptor 0 reported block size 0x100000, when 0x3ff000 was expected.
3782 error: `sys-file.sav' near offset 0x1dc: ZLIB block descriptor 1 reported compressed data offset 0x12421, when 0x124f1 was expected.
3787 AT_SETUP([zcompressed data - uncompressed_size > block_size])
3788 AT_KEYWORDS([sack synthetic system file negative zlib])
3789 zcompressed_sack | sed 's/.*uncompressed_size.*/>>0x400000<<;/' > sys-file.sack
3790 for variant in be le; do
3791 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3792 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3794 AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [warning: `sys-file.sav' near offset 0x21d: ZLIB block descriptor 0 reported block size 0x400000, when at most 0x3ff000 was expected.
3799 AT_SETUP([zcompressed data - compression expands data too much])
3800 AT_KEYWORDS([sack synthetic system file negative zlib])
3801 zcompressed_sack | sed 's/.*uncompressed_size.*/>>50<<;/
3802 s/.*@%:@ compressed_size.*/>>100<<;/' > sys-file.sack
3803 for variant in be le; do
3804 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3805 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3807 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x21d: ZLIB block descriptor 0 reports compressed size 100 and uncompressed size 50.
3812 AT_SETUP([zcompressed data - compressed sizes don't add up])
3813 AT_KEYWORDS([sack synthetic system file negative zlib])
3814 zcompressed_sack | sed 's/.*@%:@ compressed_size.*/>>88<<;/' > sys-file.sack
3815 for variant in be le; do
3816 AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
3817 AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3819 AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x235: ZLIB trailer is at offset 0x205 but 0x204 would be expected from block descriptors.