pspp-dump-sav: More gracefully handle empty multiple response sets.
[pspp.git] / tests / data / sys-file-reader.at
blob26ac6431dbe32e19876cf3e7be7098459bae039a
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
6 dnl File header.
7 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
8 2; dnl Layout code
9 28; dnl Nominal case size
10 0; dnl Not compressed
11 0; dnl Not weighted
12 1; dnl 1 case.
13 100.0; dnl Bias.
14 "01 Jan 11"; "20:53:52";
15 "PSPP synthetic test file: "; i8 244; i8 245; i8 246; i8 248; s34 "";
16 i8 0 *3;
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";
27 1.0;
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;
32 1.0;
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;
47 LOWEST; 1.0; 5.0;
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;
62 s8 "OTHR";
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
74 dnl compatibility.
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
79 dnl later record.
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.
101 7; 22; 1; COUNT (
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.
116 999; 0;
118 dnl Data.
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 \
125         "be ae072375af73d628a544cc2230dd72c9" \
126         "le 039a21ab64f68c65b240e782a6b0f563"
128   set $variant
129   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
131   AT_DATA([sys-file.sps], [dnl
132 GET FILE='sys-file.sav'.
133 DISPLAY FILE LABEL.
134 DISPLAY DICTIONARY.
135 LIST.
137   AT_CHECK([pspp -o pspp.csv sys-file.sps])
138   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
139 File label: PSPP synthetic test file: ôõöø
141 Variable,Description,,Position
142 num1,Format: F8.0,,1
143 num2,Label: Numeric variable 2's label (ùúû),,2
144 ,Format: F8.0,,
145 num3,Format: F8.0,,3
146 ,Missing Values: 1,,
147 num4,Label: Another numeric variable label,,4
148 ,Format: F8.0,,
149 ,Missing Values: 1,,
150 num5,Format: F8.0,,5
151 ,Missing Values: 1; 2,,
152 num6,Format: F8.0,,6
153 ,Missing Values: 1; 2; 3,,
154 num7,Format: F8.0,,7
155 ,Missing Values: 1 THRU 3,,
156 num8,Format: F8.0,,8
157 ,Missing Values: 1 THRU 3; 5,,
158 num9,Format: F8.0,,9
159 ,Missing Values: 1 THRU HIGHEST; -5,,
160 numàèìñò,Format: F8.0,,10
161 ,Missing Values: LOWEST THRU 1; 5,,
162 str1,Format: A4,,11
163 str2,Label: String variable 2's label,,12
164 ,Format: A4,,
165 str3,Format: A4,,13
166 ,"Missing Values: ""MISS""",,
167 str4,Label: Another string variable label,,14
168 ,Format: A4,,
169 ,"Missing Values: ""OTHR""",,
170 str5,Format: A4,,15
171 ,"Missing Values: ""MISS""; ""OTHR""",,
172 str6,Format: A4,,16
173 ,"Missing Values: ""MISS""; ""OTHR""; ""MORE""",,
174 str7,Format: A11,,17
175 ,"Missing Values: ""first8by""",,
176 str8,Format: A9,,18
177 ,"Missing Values: ""abcdefgh""",,
178 str9,Format: A10,,19
179 ,"Missing Values: ""abcdefgh""; ""01234567""",,
180 str10,Format: A11,,20
181 ,"Missing Values: ""abcdefgh""; ""01234567""; ""0       """,,
182 str11,Label: 25-byte string,,21
183 ,Format: A25,,
185 Table: Data List
186 num1,num2,num3,num4,num5,num6,num7,num8,num9,numàèìñò,str1,str2,str3,str4,str5,str6,str7,str8,str9,str10,str11
187 1,2,3,4,5,6,7,8,9,10,abcd,efgh,ijkl,mnop,qrst,uvwx,yzABCDEFGHI,JKLMNOPQR,STUVWXYZ01,23456789abc,defghijklmnopqstuvwxyzABC
189 done
190 AT_CLEANUP
192 AT_SETUP([unspecified number of variable positions])
193 AT_KEYWORDS([sack synthetic system file positive])
194 AT_DATA([sys-file.sack], [dnl
195 dnl File header.
196 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
197 2; dnl Layout code
198 -1; dnl Nominal case size (unspecified)
199 0; dnl Not compressed
200 0; dnl Not weighted 
201 1; dnl 1 case.
202 100.0; dnl Bias.
203 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
204 i8 0 *3;
206 dnl Numeric variable, no label or missing values.
207 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
209 dnl Numeric variable, variable label.
210 2; 0; 1; 0; 0x050800 *2; s8 "NUM2";
211 26; "Numeric variable 2's label"; i8 0 *2;
213 dnl Dictionary termination record.
214 999; 0;
216 dnl Data.
217 1.0; 2.0; 
219 for variant in \
220         "be 413e7bc80a47fcd7e4c8020e8e120060" \
221         "le d7db9120b1ff28c83aa6fe9fc405d903"
223   set $variant
224   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
226   AT_DATA([sys-file.sps], [dnl
227 GET FILE='sys-file.sav'.
228 DISPLAY DICTIONARY.
229 LIST.
231   AT_CHECK([pspp -o pspp.csv sys-file.sps])
232   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
233 Variable,Description,,Position
234 num1,Format: F8.0,,1
235 num2,Label: Numeric variable 2's label,,2
236 ,Format: F8.0,,
238 Table: Data List
239 num1,num2
242 done
243 AT_CLEANUP
245 AT_SETUP([wrong number of variable positions but version 13])
246 AT_KEYWORDS([sack synthetic system file positive])
247 AT_DATA([sys-file.sack], [dnl
248 dnl File header.
249 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
250 2; dnl Layout code
251 -1; dnl Nominal case size (unspecified)
252 0; dnl Not compressed
253 0; dnl Not weighted 
254 1; dnl 1 case.
255 100.0; dnl Bias.
256 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
257 i8 0 *3;
259 dnl Numeric variable, no label or missing values.
260 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
262 dnl Numeric variable, variable label.
263 2; 0; 1; 0; 0x050800 *2; s8 "NUM2";
264 26; "Numeric variable 2's label"; i8 0 *2;
266 dnl Machine integer info record (SPSS 13).
267 7; 3; 4; 8; 13; 2; 3; -1; 1; 1; ENDIAN; 1252;
269 dnl Dictionary termination record.
270 999; 0;
272 dnl Data.
273 1.0; 2.0; 
275 for variant in \
276         "be 3d17aae7d99538dc73c5cb42692b1038" \
277         "le 8ad1000df598617d5258f323c882d749"
279   set $variant
280   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
282   AT_DATA([sys-file.sps], [dnl
283 GET FILE='sys-file.sav'.
284 DISPLAY DICTIONARY.
285 LIST.
287   AT_CHECK([pspp -o pspp.csv sys-file.sps])
288   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
289 Variable,Description,,Position
290 num1,Format: F8.0,,1
291 num2,Label: Numeric variable 2's label,,2
292 ,Format: F8.0,,
294 Table: Data List
295 num1,num2
298 done
299 AT_CLEANUP
301 AT_SETUP([value labels])
302 AT_KEYWORDS([sack synthetic system file positive])
303 AT_DATA([sys-file.sack], [dnl
304 dnl File header.
305 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
306 2; dnl Layout code
307 22; dnl Nominal case size
308 0; dnl Not compressed
309 0; dnl Not weighted 
310 1; dnl 1 case.
311 100.0; dnl Bias.
312 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
313 i8 0 *3;
315 dnl Numeric variables.
316 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
317 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
318 2; 0; 0; 0; 0x050800 *2; s8 "NUM3";
319 2; 0; 0; 0; 0x050800 *2; s8 "NUM4";
320 2; 0; 0; 0; 0x050800 *2; s8 "NUM5";
322 dnl String variables.
323 2; 1; 0; 0; 0x010100 *2; s8 "STR1"; dnl index 6
324 2; 2; 0; 0; 0x010200 *2; s8 "STR2"; dnl index 7
325 2; 3; 0; 0; 0x010300 *2; s8 "STR3"; dnl index 8
326 2; 4; 0; 0; 0x010400 *2; s8 "STR4"; dnl index 9
327 2; 4; 0; 0; 0x010400 *2; s8 "STR5"; dnl index 10
328 2; 6; 0; 0; 0x010600 *2; s8 "STR6"; dnl index 11
329 2; 7; 0; 0; 0x010700 *2; s8 "STR7"; dnl index 12
330 2; 8; 0; 0; 0x010800 *2; s8 "STR8"; dnl index 13
331 2; 9; 0; 0; 0x010900 *2; "STR9"; i8 230; s3 ""; dnl index 14
332 2; -1; 0; 0; 0; 0; s8 "";
333 2; 12; 0; 0; 0x010c00 *2; s8 "STR12"; dnl index 16
334 2; -1; 0; 0; 0; 0; s8 "";
335 2; 16; 0; 0; 0x011000 *2; s8 "STR16"; dnl index 18
336 2; -1; 0; 0; 0; 0; s8 "";
337 2; 17; 0; 0; 0x011100 *2; s8 "STR17"; dnl index 20
338 ( 2; -1; 0; 0; 0; 0; s8 ""; ) * 2;
340 dnl One value label for NUM1.
341 3; 1; 1.0; i8 17; i8 238; i8 228; i8 232; i8 237; s19 " (in Russian)"; 4; 1; 1;
343 dnl Two value labels for NUM2, as a single pair of type 3 and type 4 records.
344 3; 2; 1.0; i8 3; s7 "one"; 2.0; i8 3; s7 "two"; 4; 1; 2;
346 dnl Two value labels for NUM3, as two pairs of type 3 and type 4 records.
347 3; 1; 3.0; i8 5; s7 "three"; 4; 1; 3;
348 3; 1; 4.0; i8 4; s7 "four"; 4; 1; 3;
350 dnl Two common value labels for NUM4 and NUM5, plus two different ones for each.
351 3; 1; 5.0; i8 4; s7 "five"; 4; 1; 4;
352 3; 1; 6.0; i8 3; s7 "six"; 4; 1; 5;
353 3; 2; 7.0; i8 5; s7 "seven"; 8.0; i8 5; s7 "eight"; 4; 2; 4; 5;
354 3; 1; 9.0; i8 4; s7 "nine"; 4; 1; 4;
355 3; 1; 10.0; i8 3; s7 "ten"; 4; 1; 5;
357 dnl One value label for STR1.
358 3; 1; s8 "a"; i8 19; s23 "value label for `a'"; 4; 1; 6;
360 dnl Two value labels for STR2, as a single pair of type 3 and type 4 records.
361 3; 2;
362 s8 "bc"; i8 20; s23 "value label for `bc'";
363 s8 "de"; i8 20; s23 "value label for `de'";
364 4; 1; 7;
366 dnl Two value labels for STR3, as two pairs of type 3 and type 4 records.
367 3; 1; s8 "fgh"; i8 21; s23 "value label for `fgh'"; 4; 1; 8;
368 3; 1; s8 "ijk"; i8 21; s23 "value label for `ijk'"; 4; 1; 8;
370 dnl Two common value labels for STR4 and STR5, plus two different ones for each.
371 3; 1; s8 "lmno"; i8 22; s23 "value label for `lmno'"; 4; 1; 9;
372 3; 1; s8 "pqrs"; i8 22; s23 "value label for `pqrs'"; 4; 1; 10;
373 3; 2;
374 s8 "tuvw"; i8 22; s23 "value label for `tuvw'";
375 s8 "xyzA"; i8 22; s23 "value label for `xyzA'";
376 4; 2; 9; 10;
377 3; 1; s8 "BCDE"; i8 22; s23 "value label for `BCDE'"; 4; 1; 9;
378 3; 1; s8 "FGHI"; i8 22; s23 "value label for `FGHI'"; 4; 1; 10;
380 dnl One value label for STR6, STR7, STR8.
381 3; 1; s8 "JKLMNO"; i8 24; s31 "value label for `JKLMNO'"; 4; 1; 11;
382 3; 1; s8 "JKLMNOP"; i8 25; s31 "value label for `JKLMNOP'"; 4; 1; 12;
383 3; 1; s8 "JKLMNOPQ"; i8 26; s31 "value label for `JKLMNOPQ'"; 4; 1; 13;
385 dnl Machine integer info record.
386 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1251;
388 dnl Character encoding record.
389 7; 20; 1; 12; "windows-1251";
391 7; 21; 1; COUNT (
392 dnl One value label for STR9ж,
393 COUNT("STR9"; i8 230); 9; 1; COUNT("RSTUVWXYZ"); COUNT("value label for `RSTUVWXYZ'");
395 dnl Two value labels for STR12.
396 COUNT("STR12"); 12; 2;
397 COUNT("0123456789ab"); COUNT("value label for `0123456789ab'");
398 COUNT("cdefghijklmn"); COUNT("value label for `cdefghijklmn'");
400 dnl Three value labels for STR16.
401 COUNT("STR16"); 16; 3;
402 COUNT("opqrstuvwxyzABCD"); COUNT("value label for `opqrstuvwxyzABCD'");
403 COUNT("EFGHIJKLMNOPQRST"); COUNT("value label for `EFGHIJKLMNOPQRST'");
404 COUNT("UVWXYZ0123456789"); COUNT("value label for `UVWXYZ0123456789' with Cyrillic letters: `"; i8 244; i8 245; i8 246; "'");
406 dnl One value label for STR17.
407 COUNT("STR17"); 17; 1;
408 COUNT("abcdefghijklmnopq"); COUNT("value label for `abcdefghijklmnopq'");
411 dnl Dictionary termination record.
412 999; 0;
414 for variant in \
415         "be b27d766d8a5ad9e901c8b244591a5942" \
416         "le eb2e93f3cc29acd605b80e6c3af25ba6"
418   set $variant
419   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
421   AT_DATA([sys-file.sps], [dnl
422 GET FILE='sys-file.sav'.
423 DISPLAY DICTIONARY.
425   AT_CHECK([pspp -o pspp.csv sys-file.sps])
426   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
427 Variable,Description,,Position
428 num1,Format: F8.0,,1
429 ,1,один (in Russian),
430 num2,Format: F8.0,,2
431 ,1,one,
432 ,2,two,
433 num3,Format: F8.0,,3
434 ,3,three,
435 ,4,four,
436 num4,Format: F8.0,,4
437 ,5,five,
438 ,7,seven,
439 ,8,eight,
440 ,9,nine,
441 num5,Format: F8.0,,5
442 ,6,six,
443 ,7,seven,
444 ,8,eight,
445 ,10,ten,
446 str1,Format: A1,,6
447 ,a,value label for `a',
448 str2,Format: A2,,7
449 ,bc,value label for `bc',
450 ,de,value label for `de',
451 str3,Format: A3,,8
452 ,fgh,value label for `fgh',
453 ,ijk,value label for `ijk',
454 str4,Format: A4,,9
455 ,BCDE,value label for `BCDE',
456 ,lmno,value label for `lmno',
457 ,tuvw,value label for `tuvw',
458 ,xyzA,value label for `xyzA',
459 str5,Format: A4,,10
460 ,FGHI,value label for `FGHI',
461 ,pqrs,value label for `pqrs',
462 ,tuvw,value label for `tuvw',
463 ,xyzA,value label for `xyzA',
464 str6,Format: A6,,11
465 ,JKLMNO,value label for `JKLMNO',
466 str7,Format: A7,,12
467 ,JKLMNOP,value label for `JKLMNOP',
468 str8,Format: A8,,13
469 ,JKLMNOPQ,value label for `JKLMNOPQ',
470 str9ж,Format: A9,,14
471 ,RSTUVWXYZ,value label for `RSTUVWXYZ',
472 str12,Format: A12,,15
473 ,0123456789ab,value label for `0123456789ab',
474 ,cdefghijklmn,value label for `cdefghijklmn',
475 str16,Format: A16,,16
476 ,EFGHIJKLMNOPQRST,value label for `EFGHIJKLMNOPQRST',
477 ,UVWXYZ0123456789,value label for `UVWXYZ0123456789' with Cyrillic letters: `фхц',
478 ,opqrstuvwxyzABCD,value label for `opqrstuvwxyzABCD',
479 str17,Format: A17,,17
480 ,abcdefghijklmnopq,value label for `abcdefghijklmnopq',
482 done
483 AT_CLEANUP
485 AT_SETUP([documents])
486 AT_KEYWORDS([sack synthetic system file positive])
487 AT_DATA([sys-file.sack], [dnl
488 dnl File header.
489 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
490 2; dnl Layout code
491 1; dnl Nominal case size
492 0; dnl Not compressed
493 0; dnl Not weighted 
494 1; dnl 1 case.
495 100.0; dnl Bias.
496 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
497 i8 0 *3;
499 dnl Numeric variable, no label or missing values.
500 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
502 dnl Machine integer info record.
503 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
505 dnl Document record.
506 6; 5;
507 s80 "First line of documents";
508 s80 "Second line of documents";
509 "abb"; i8 233; " appliqu"; i8 233; " attach"; i8 233; " blas"; i8 233; " caf"; i8 233; " canap"; i8 233; " clich"; i8 233; " consomm"; i8 233;
510 s25 "";
511 s80 "";
512 s80 "Last line of documents";
514 dnl Character encoding record.
515 7; 20; 1; 12; "windows-1252";
517 dnl Dictionary termination record.
518 999; 0;
520 dnl Data.
521 1.0;
523 for variant in \
524         "be 3555f74f3e714a3a703de7df56ce6d24" \
525         "le ede5a0f805a1aab096ea86abf677ff34"
527   set $variant
528   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
530   AT_DATA([sys-file.sps], [dnl
531 GET FILE='sys-file.sav'.
532 DISPLAY DOCUMENTS.
533 LIST.
535   AT_CHECK([pspp -o pspp.csv sys-file.sps])
536   AT_CHECK([cat pspp.csv], [0], [dnl
537 Documents in the active dataset:
539 First line of documents
541 Second line of documents
543 abbé appliqué attaché blasé café canapé cliché consommé
547 Last line of documents
549 Table: Data List
550 num1
553 done
554 AT_CLEANUP
556 AT_SETUP([multiple response sets])
557 AT_KEYWORDS([sack synthetic system file positive])
558 AT_DATA([sys-file.sack], [dnl
559 dnl File header.
560 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
561 2; dnl Layout code
562 16; dnl Nominal case size
563 0; dnl Not compressed
564 0; dnl Not weighted 
565 0; dnl No cases.
566 100.0; dnl Bias.
567 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
568 i8 0 *3;
570 dnl $a
571 2; 0; 0; 0; 0x050800 *2; i8 0x82; i8 0xa0; s6 "";
572 2; 0; 0; 0; 0x050800 *2; s8 "B";
573 2; 0; 0; 0; 0x050800 *2; s8 "C";
575 dnl $b
576 2; 0; 0; 0; 0x050800 *2; s8 "D";
577 2; 0; 0; 0; 0x050800 *2; s8 "E";
578 2; 0; 0; 0; 0x050800 *2; s8 "F";
579 2; 0; 0; 0; 0x050800 *2; s8 "G";
581 dnl $c
582 2; 4; 0; 0; 0x010400 *2; s8 "H";
583 2; 4; 0; 0; 0x010400 *2; s8 "I";
584 2; 4; 0; 0; 0x010400 *2; s8 "J";
586 dnl $d
587 2; 0; 0; 0; 0x050800 *2; s8 "K";
588 2; 0; 0; 0; 0x050800 *2; s8 "L";
589 2; 0; 0; 0; 0x050800 *2; s8 "M";
591 dnl $e
592 2; 6; 0; 0; 0x010600 *2; s8 "N";
593 2; 6; 0; 0; 0x010600 *2; s8 "O";
594 2; 6; 0; 0; 0x010600 *2; s8 "P";
596 dnl Machine integer info record.
597 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 932;
599 7; 7; 1;
600 COUNT(
601   "$a=C 10 my mcgroup "; i8 0x82; i8 0xa0; " b c"; i8 10;
602   "$b=D2 55 0  g e f d"; i8 10; i8 10;
603   "$c=D4 "; i8 0x82; i8 0xcd; i8 0x82; i8 0xa2; " 10 mdgroup #2 h i j"; i8 10);
605 7; 19; 1;
606 COUNT(
607   i8 10;
608   "$d=E 1 2 34 13 third mdgroup k l m"; i8 10;
609   "$e=E 11 6 choice 0  n o p"; i8 10; i8 10; i8 10; i8 10);
611 dnl Character encoding record.
612 7; 20; 1; 9; "shift_jis";
614 dnl Dictionary termination record.
615 999; 0;
617 for variant in \
618         "be eab38c68398324ac1663161512a8516a" \
619         "le afc6173eed7f4c4e63dc4252bc18f6a2"
621   set $variant
622   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
624   AT_DATA([sys-file.sps], [dnl
625 GET FILE='sys-file.sav'.
626 MRSETS /DISPLAY NAME=ALL.
628   AT_CHECK([pspp -o pspp.csv sys-file.sps])
629   AT_CHECK([cat pspp.csv], [0], [dnl
630 Table: Multiple Response Sets
631 Name,Variables,Details
632 $a,"あ
635 ","Multiple category set
636 Label: my mcgroup
638 $b,"g
642 ","Multiple dichotomy set
643 Counted value: 55
644 Category label source: Variable labels
646 $c,"h
649 ","Multiple dichotomy set
650 Label: mdgroup #2
651 Label source: Provided by user
652 Counted value: `はい'
653 Category label source: Variable labels
655 $d,"k
658 ","Multiple dichotomy set
659 Label: third mdgroup
660 Label source: Provided by user
661 Counted value: 34
662 Category label source: Value labels of counted value
664 $e,"n
667 ","Multiple dichotomy set
668 Label source: First variable label among variables
669 Counted value: `choice'
670 Category label source: Value labels of counted value
673 done
674 AT_CLEANUP
676 dnl Also checks for handling of CR-only line ends in file label and
677 dnl extra product info.
678 AT_SETUP([extra product info])
679 AT_KEYWORDS([sack synthetic system file positive])
680 AT_DATA([sys-file.sack], [dnl
681 dnl File header.
682 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
683 2; dnl Layout code
684 4; dnl Nominal case size
685 0; dnl Not compressed
686 0; dnl Not weighted
687 0; dnl No cases.
688 100.0; dnl Bias.
689 "01 Jan 11"; "20:53:52"; "PSPP synthetic"; i8 13; s49 "test file";
690 i8 0 *3;
692 dnl Numeric variables.
693 2; 0; 0; 0; 0x050800 *2; s8 "A";
694 2; 0; 0; 0; 0x050800 *2; s8 "B";
695 2; 0; 0; 0; 0x050800 *2; s8 "C";
696 2; 0; 0; 0; 0x050800 *2; s8 "D";
698 dnl Extra product info.
699 7; 10; 1; COUNT ("Extra product info"; i8 13; "another line"; i8 13; "blah");
701 dnl Dictionary termination record.
702 999; 0;
704 for variant in \
705         "be 0e1cac77501322b012637dcaeb3858ab" \
706         "le ecffd25cae41bbc89c29487abe192016"
708   set $variant
709   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
711   AT_DATA([sys-file.sps], [dnl
712 SYSFILE INFO FILE='sys-file.sav'.
714   AT_CHECK([pspp -o pspp.csv sys-file.sps])
715   AT_CHECK([sed 7q pspp.csv], [0], [dnl
716 File:,sys-file.sav
717 Label:,"PSPP synthetic
718 test file"
719 Created:,01 Jan 11 20:53:52 by $(@%:@) SPSS DATA FILE PSPP synthetic test file
720 Product:,"Extra product info
721 another line
722 blah"
724 done
725 AT_CLEANUP
727 AT_SETUP([variable display parameters, without width])
728 AT_KEYWORDS([sack synthetic system file positive])
729 AT_DATA([sys-file.sack], [dnl
730 dnl File header.
731 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
732 2; dnl Layout code
733 19; dnl Nominal case size
734 0; dnl Not compressed
735 0; dnl Not weighted 
736 0; dnl No cases.
737 100.0; dnl Bias.
738 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
739 i8 0 *3;
741 dnl Numeric variables.
742 2; 0; 0; 0; 0x050800 *2; s8 "A";
743 2; 0; 0; 0; 0x050800 *2; s8 "B";
744 2; 0; 0; 0; 0x050800 *2; s8 "C";
745 2; 0; 0; 0; 0x050800 *2; s8 "D";
747 dnl Short string variables.
748 2; 3; 0; 0; 0x010300 *2; s8 "H";
749 2; 3; 0; 0; 0x010300 *2; s8 "I";
750 2; 3; 0; 0; 0x010300 *2; s8 "J";
751 2; 3; 0; 0; 0x010300 *2; s8 "K";
753 dnl Long string variables.
754 2; 9; 0; 0; 0x010900 *2; s8 "L";
755 2; -1; 0; 0; 0; 0; s8 "";
756 2; 10; 0; 0; 0x010a00 *2; s8 "M";
757 2; -1; 0; 0; 0; 0; s8 "";
758 2; 17; 0; 0; 0x011100 *2; s8 "N";
759 ( 2; -1; 0; 0; 0; 0; s8 "" ) * 2;
760 2; 25; 0; 0; 0x011900 *2; s8 "O";
761 ( 2; -1; 0; 0; 0; 0; s8 "" ) * 3;
763 dnl Variable display parameters
764 7; 11; 4; 24;
765 1; 0;
766 2; 0;
767 3; 0;
768 1; 1;
769 2; 1;
770 3; 1;
771 1; 2;
772 2; 2;
773 3; 2;
774 0; 0;
775 0; 1;
776 0; 2;
778 dnl Dictionary termination record.
779 999; 0;
781 for variant in \
782         "be c130d9345080579b8862b360924edbfa" \
783         "le 6fde96f5a7c7386bff6cca049cd84d6a"
785   set $variant
786   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
788   AT_DATA([sys-file.sps], [dnl
789 GET FILE='sys-file.sav'.
790 DISPLAY DICTIONARY.
792   AT_CHECK([pspp -o pspp.csv sys-file.sps])
793   AT_CHECK([cat pspp.csv], [0], [dnl
794 Variable,Description,,Position
795 a,Format: F8.0,,1
796 ,Measure: Nominal,,
797 ,Display Alignment: Left,,
798 ,Display Width: 8,,
799 b,Format: F8.0,,2
800 ,Measure: Ordinal,,
801 ,Display Alignment: Left,,
802 ,Display Width: 8,,
803 c,Format: F8.0,,3
804 ,Measure: Scale,,
805 ,Display Alignment: Left,,
806 ,Display Width: 8,,
807 d,Format: F8.0,,4
808 ,Measure: Nominal,,
809 ,Display Alignment: Right,,
810 ,Display Width: 8,,
811 h,Format: A3,,5
812 ,Measure: Ordinal,,
813 ,Display Alignment: Right,,
814 ,Display Width: 3,,
815 i,Format: A3,,6
816 ,Measure: Scale,,
817 ,Display Alignment: Right,,
818 ,Display Width: 3,,
819 j,Format: A3,,7
820 ,Measure: Nominal,,
821 ,Display Alignment: Center,,
822 ,Display Width: 3,,
823 k,Format: A3,,8
824 ,Measure: Ordinal,,
825 ,Display Alignment: Center,,
826 ,Display Width: 3,,
827 l,Format: A9,,9
828 ,Measure: Scale,,
829 ,Display Alignment: Center,,
830 ,Display Width: 9,,
831 m,Format: A10,,10
832 ,Measure: Nominal,,
833 ,Display Alignment: Left,,
834 ,Display Width: 10,,
835 n,Format: A17,,11
836 ,Measure: Nominal,,
837 ,Display Alignment: Right,,
838 ,Display Width: 17,,
839 o,Format: A25,,12
840 ,Measure: Nominal,,
841 ,Display Alignment: Center,,
842 ,Display Width: 25,,
844 done
845 AT_CLEANUP
847 AT_SETUP([variable display parameters, with width])
848 AT_KEYWORDS([sack synthetic system file positive])
849 AT_DATA([sys-file.sack], [dnl
850 dnl File header.
851 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
852 2; dnl Layout code
853 19; dnl Nominal case size
854 0; dnl Not compressed
855 0; dnl Not weighted 
856 0; dnl No cases.
857 100.0; dnl Bias.
858 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
859 i8 0 *3;
861 dnl Numeric variables.
862 2; 0; 0; 0; 0x050800 *2; s8 "A";
863 2; 0; 0; 0; 0x050800 *2; s8 "B";
864 2; 0; 0; 0; 0x050800 *2; s8 "C";
865 2; 0; 0; 0; 0x050800 *2; s8 "D";
867 dnl Short string variables.
868 2; 3; 0; 0; 0x010300 *2; s8 "H";
869 2; 3; 0; 0; 0x010300 *2; s8 "I";
870 2; 3; 0; 0; 0x010300 *2; s8 "J";
871 2; 3; 0; 0; 0x010300 *2; s8 "K";
873 dnl Long string variables.
874 2; 9; 0; 0; 0x010900 *2; s8 "L";
875 2; -1; 0; 0; 0; 0; s8 "";
876 2; 10; 0; 0; 0x010a00 *2; s8 "M";
877 2; -1; 0; 0; 0; 0; s8 "";
878 2; 17; 0; 0; 0x011100 *2; s8 "N";
879 ( 2; -1; 0; 0; 0; 0; s8 "" ) * 2;
880 2; 25; 0; 0; 0x011900 *2; s8 "O";
881 ( 2; -1; 0; 0; 0; 0; s8 "" ) * 3;
883 dnl Variable display parameters
884 7; 11; 4; 36;
885 1; 1; 0;
886 2; 2; 0;
887 3; 3; 0;
888 1; 4; 1;
889 2; 5; 1;
890 3; 6; 1;
891 1; 7; 2;
892 2; 8; 2;
893 3; 9; 2;
894 0; 10; 0;
895 0; 11; 1;
896 0; 12; 2;
898 dnl Dictionary termination record.
899 999; 0;
901 for variant in \
902         "be 3ace75689a0b7faa9360936bbfe26055" \
903         "le 6e93f35d19a9882eb53ffb1b067ef7cd"
905   set $variant
906   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
908   AT_DATA([sys-file.sps], [dnl
909 GET FILE='sys-file.sav'.
910 DISPLAY DICTIONARY.
912   AT_CHECK([pspp -o pspp.csv sys-file.sps])
913   AT_CHECK([cat pspp.csv], [0], [dnl
914 Variable,Description,,Position
915 a,Format: F8.0,,1
916 ,Measure: Nominal,,
917 ,Display Alignment: Left,,
918 ,Display Width: 1,,
919 b,Format: F8.0,,2
920 ,Measure: Ordinal,,
921 ,Display Alignment: Left,,
922 ,Display Width: 2,,
923 c,Format: F8.0,,3
924 ,Measure: Scale,,
925 ,Display Alignment: Left,,
926 ,Display Width: 3,,
927 d,Format: F8.0,,4
928 ,Measure: Nominal,,
929 ,Display Alignment: Right,,
930 ,Display Width: 4,,
931 h,Format: A3,,5
932 ,Measure: Ordinal,,
933 ,Display Alignment: Right,,
934 ,Display Width: 5,,
935 i,Format: A3,,6
936 ,Measure: Scale,,
937 ,Display Alignment: Right,,
938 ,Display Width: 6,,
939 j,Format: A3,,7
940 ,Measure: Nominal,,
941 ,Display Alignment: Center,,
942 ,Display Width: 7,,
943 k,Format: A3,,8
944 ,Measure: Ordinal,,
945 ,Display Alignment: Center,,
946 ,Display Width: 8,,
947 l,Format: A9,,9
948 ,Measure: Scale,,
949 ,Display Alignment: Center,,
950 ,Display Width: 9,,
951 m,Format: A10,,10
952 ,Measure: Nominal,,
953 ,Display Alignment: Left,,
954 ,Display Width: 10,,
955 n,Format: A17,,11
956 ,Measure: Nominal,,
957 ,Display Alignment: Right,,
958 ,Display Width: 11,,
959 o,Format: A25,,12
960 ,Measure: Nominal,,
961 ,Display Alignment: Center,,
962 ,Display Width: 12,,
964 done
965 AT_CLEANUP
967 AT_SETUP([long variable names])
968 AT_KEYWORDS([sack synthetic system file positive])
969 AT_DATA([sys-file.sack], [dnl
970 dnl File header.
971 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
972 2; dnl Layout code
973 7; dnl Nominal case size
974 0; dnl Not compressed
975 0; dnl Not weighted 
976 0; dnl No cases.
977 100.0; dnl Bias.
978 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
979 i8 0 *3;
981 dnl Numeric variables.
982 2; 0; 0; 0; 0x050800 *2; s8 "LONGVARI";
983 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_A";
984 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_B";
985 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_C";
986 2; 0; 0; 0; 0x050800 *2; "CO"; i8 214; "RDINA";
987 2; 0; 0; 0; 0x050800 *2; "CO"; i8 214; "RDI_A";
988 2; 0; 0; 0; 0x050800 *2; "CO"; i8 214; "RDI_B";
990 dnl Machine integer info record.
991 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
993 dnl Machine floating-point info record.
994 7; 4; 8; 3; SYSMIS; HIGHEST; LOWEST;
996 dnl Long variable names.
997 7; 13; 1; COUNT (
998 "LONGVARI=LongVariableName1"; i8 9;
999 "LONGVA_A=LongVariableName2"; i8 9;
1000 "LONGVA_B=LongVariableName3"; i8 9;
1001 "LONGVA_C=LongVariableName4"; i8 9;
1002 "CO"; i8 214; "RDINA=Co"; i8 246; "rdinate_X"; i8 9;
1003 "CO"; i8 214; "RDI_A=Co"; i8 246; "rdinate_Y"; i8 9;
1004 "CO"; i8 214; "RDI_B=Co"; i8 246; "rdinate_Z";
1007 dnl Character encoding record.
1008 7; 20; 1; 12; "windows-1252";
1010 dnl Dictionary termination record.
1011 999; 0;
1013 for variant in \
1014         "be 8ea5a72f3ae6e732371e92a7719c3951" \
1015         "le 02bcf02cf08b1e8fc80a858101ae22fc"
1017   set $variant
1018   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1020   AT_DATA([sys-file.sps], [dnl
1021 GET FILE='sys-file.sav'.
1022 DISPLAY DICTIONARY.
1024   AT_CHECK([pspp -o pspp.csv sys-file.sps])
1025   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1026 Variable,Description,,Position
1027 LongVariableName1,Format: F8.0,,1
1028 LongVariableName2,Format: F8.0,,2
1029 LongVariableName3,Format: F8.0,,3
1030 LongVariableName4,Format: F8.0,,4
1031 Coördinate_X,Format: F8.0,,5
1032 Coördinate_Y,Format: F8.0,,6
1033 Coördinate_Z,Format: F8.0,,7
1035 done
1036 AT_CLEANUP
1038 AT_SETUP([very long strings])
1039 AT_KEYWORDS([sack synthetic system file positive])
1040 AT_DATA([sys-file.sack], [dnl
1041 dnl File header.
1042 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1043 2; dnl Layout code
1044 109; dnl Nominal case size
1045 0; dnl Not compressed
1046 0; dnl Not weighted 
1047 1; dnl No cases.
1048 100.0; dnl Bias.
1049 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1050 i8 0 *3;
1052 dnl 256-byte string.
1053 2; 255; 0; 0; 0x01FF00 *2; "S"; i8 201; s6 "Q256";
1054 (2; -1; 0; 0; 0; 0; s8 "") * 31;
1055 2; 4; 0; 0; 0x010400 *2; "S"; i8 201; "Q256_1";
1057 dnl 600-byte string.
1058 2; 255; 0; 0; 0x01FF00 *2; s8 "STR600";
1059 (2; -1; 0; 0; 0; 0; s8 "") * 31;
1060 2; 255; 0; 0; 0x01FF00 *2; s8 "STR600_1";
1061 (2; -1; 0; 0; 0; 0; s8 "") * 31;
1062 2; 96; 0; 0; 0x016000 *2; s8 "STR600_2";
1063 (2; -1; 0; 0; 0; 0; s8 "") * 11;
1065 dnl Machine integer info record.
1066 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
1068 dnl Very long string record.
1069 7; 14; 1; COUNT (
1070 "S"; i8 201; "Q256=00256"; i8 0; i8 9;
1071 "STR600=00600"; i8 0; i8 9;
1074 dnl Character encoding record.
1075 7; 20; 1; 12; "windows-1252";
1077 dnl Dictionary termination record.
1078 999; 0;
1080 dnl Data.
1081 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#" * 4;
1082 "abcdefgh";
1083 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#" * 9;
1084 "abcdefghijklmnopqrstuvwxyzABCDEF";
1086 for variant in \
1087         "be 844a4704f669dfe292482e587d690133" \
1088         "le b76025f602bdff6a42c1e0795a8b62ff"
1090   set $variant
1091   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1093   AT_DATA([sys-file.sps], [dnl
1094 GET FILE='sys-file.sav'.
1095 DISPLAY DICTIONARY.
1096 LIST.
1098   AT_CHECK([pspp -o pspp.csv sys-file.sps])
1099   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1100 Variable,Description,,Position
1101 séq256,Format: A256,,1
1102 str600,Format: A600,,2
1104 Table: Data List
1105 séq256,str600
1106 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@a,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#abcdefghijklmnopqrstuvwxyz
1108 done
1109 AT_CLEANUP
1111 AT_SETUP([data file and variable attributes])
1112 AT_KEYWORDS([sack synthetic system file positive])
1113 AT_DATA([sys-file.sack], [dnl
1114 dnl File header.
1115 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1116 2; dnl Layout code
1117 2; dnl Nominal case size
1118 0; dnl Not compressed
1119 0; dnl Not weighted 
1120 0; dnl 1 case.
1121 100.0; dnl Bias.
1122 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1123 i8 0 *3;
1125 dnl Variables.
1126 2; 0; 0; 0; 0x050800 *2; s8 "FIRSTVAR";
1127 2; 0; 0; 0; 0x050800 *2; s8 "SECONDVA";
1129 dnl Machine integer info record.
1130 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
1132 dnl Long variable names.
1133 7; 13; 1; COUNT (
1134 "FIRSTVAR=FirstVariable"; i8 9;
1135 "SECONDVA=S"; i8 233; "condVariable"; i8 9;
1138 dnl Data file attributes record.
1139 7; 17; 1; COUNT (
1140 "Attr1('Value1'"; i8 10; "''d"; i8 233; "claration''"; i8 10; ")";
1141 "S"; i8 233; "condAttr('123'"; i8 10; "'456'"; i8 10; ")";
1144 dnl Variable attributes record.
1145 7; 18; 1; COUNT (
1146 "FirstVariable:";
1147   "ad"; i8 232; "le('23'"; i8 10; "'34'"; i8 10; ")";
1148   "bert('123'"; i8 10; ")";
1149   "$@Role('1'"; i8 10; ")";
1150 "/S"; i8 233; "condVariable:";
1151   "xyzzy('quux'"; i8 10; ")";
1155 dnl Character encoding record.
1156 7; 20; 1; 12; "windows-1252";
1158 dnl Dictionary termination record.
1159 999; 0;
1161 for variant in \
1162         "be 7fff0c04f697adf45f55d8be4aaa8712" \
1163         "le 7331339199344aa58bc60d7d05d538a7"
1165   set $variant
1166   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1168   AT_DATA([sys-file.sps], [dnl
1169 GET FILE='sys-file.sav'.
1170 DISPLAY @ATTRIBUTES.
1172   AT_CHECK([pspp -o pspp.csv sys-file.sps])
1173   AT_CHECK([cat pspp.csv], [0],
1174 [[Variable,Description,
1175 FirstVariable,Custom attributes:,
1176 ,$@Role,1
1177 ,adèle[1],23
1178 ,adèle[2],34
1179 ,bert,123
1180 SécondVariable,Custom attributes:,
1181 ,xyzzy,quux
1183 Table: Custom data file attributes.
1184 Attribute,Value
1185 Attr1[1],Value1
1186 Attr1[2],'déclaration'
1187 SécondAttr[1],123
1188 SécondAttr[2],456
1190   AT_DATA([sys-file.sps], [dnl
1191 GET FILE='sys-file.sav'.
1192 DISPLAY DICTIONARY.
1194   AT_CHECK([pspp -o pspp.csv sys-file.sps])
1195   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0],
1196 [[Variable,Description,,Position
1197 FirstVariable,Format: F8.0,,1
1198 ,Role: Output,,
1199 ,Custom attributes:,,
1200 ,adèle[1],23,
1201 ,adèle[2],34,
1202 ,bert,123,
1203 SécondVariable,Format: F8.0,,2
1204 ,Custom attributes:,,
1205 ,xyzzy,quux,
1207 Table: Custom data file attributes.
1208 Attribute,Value
1209 Attr1[1],Value1
1210 Attr1[2],'déclaration'
1211 SécondAttr[1],123
1212 SécondAttr[2],456
1214 done
1215 AT_CLEANUP
1217 AT_SETUP([variable roles])
1218 AT_KEYWORDS([sack synthetic system file positive])
1219 AT_DATA([sys-file.sack], [dnl
1220 dnl File header.
1221 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1222 2; dnl Layout code
1223 7; dnl Nominal case size
1224 0; dnl Not compressed
1225 0; dnl Not weighted
1226 0; dnl 1 case.
1227 100.0; dnl Bias.
1228 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1229 i8 0 *3;
1231 dnl Variables.
1232 2; 0; 0; 0; 0x050800 *2; s8 "I";
1233 2; 0; 0; 0; 0x050800 *2; s8 "O";
1234 2; 0; 0; 0; 0x050800 *2; s8 "B";
1235 2; 0; 0; 0; 0x050800 *2; s8 "N";
1236 2; 0; 0; 0; 0x050800 *2; s8 "P";
1237 2; 0; 0; 0; 0x050800 *2; s8 "S";
1238 2; 0; 0; 0; 0x050800 *2; s8 "X";
1240 dnl Machine integer info record.
1241 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
1243 dnl Variable attributes record.
1244 7; 18; 1; COUNT (
1245 "I:$@Role('0'"; i8 10; ")";
1246 "/O:$@Role('1'"; i8 10; ")";
1247 "/B:$@Role('2'"; i8 10; ")";
1248 "/N:$@Role('3'"; i8 10; ")";
1249 "/P:$@Role('4'"; i8 10; ")";
1250 "/S:$@Role('5'"; i8 10; ")";
1251 "/X:$@Role('6'"; i8 10; ")";
1254 dnl Character encoding record.
1255 7; 20; 1; 12; "windows-1252";
1257 dnl Dictionary termination record.
1258 999; 0;
1260 for variant in \
1261         "be b08b39cd005682f680d132d272f5158d" \
1262         "le 176e4ac91197f5cb8732258033cfabdc"
1264   set $variant
1265   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1267   AT_DATA([sys-file.sps], [dnl
1268 GET FILE='sys-file.sav'.
1269 DISPLAY DICTIONARY.
1271   AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [dnl
1272 warning: `sys-file.sav': Invalid role for variable x.
1274   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1275 warning: `sys-file.sav': Invalid role for variable x.
1277 Variable,Description,,Position
1278 i,Format: F8.0,,1
1279 o,Format: F8.0,,2
1280 ,Role: Output,,
1281 b,Format: F8.0,,3
1282 ,Role: Both,,
1283 n,Format: F8.0,,4
1284 ,Role: None,,
1285 p,Format: F8.0,,5
1286 ,Role: Partition,,
1287 s,Format: F8.0,,6
1288 ,Role: Split,,
1289 x,Format: F8.0,,7
1291 done
1292 AT_CLEANUP
1294 AT_SETUP([compressed data])
1295 AT_KEYWORDS([sack synthetic system file positive])
1296 AT_DATA([sys-file.sack], [dnl
1297 dnl File header.
1298 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1299 2; dnl Layout code
1300 6; dnl Nominal case size
1301 1; dnl Simple compression
1302 0; dnl Not weighted 
1303 -1; dnl Unspecified number of cases.
1304 100.0; dnl Bias.
1305 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1306 i8 0 *3;
1308 dnl Numeric variables.
1309 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1310 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
1312 dnl String variable.
1313 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
1314 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
1315 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
1316 2; -1; 0; 0; 0; 0; s8 "";
1318 dnl Dictionary termination record.
1319 999; 0;
1321 dnl Compressed data.
1322 i8 1 100 254 253 254 253; i8 255 251; "abcdefgh"; s8 "0123";
1323 i8 253 253 253 254; i8 101 102 253 253; s8 "jklm"; s8 "nopqrstu";
1324 s8 "vwxyzABC"; s8 "DEFG"; s8 "HIJKLMNO";
1325 i8 254 253 252 0 0 0 0 0; s8 "PQRSTUVW";
1328 for variant in \
1329         "be c0670e436b068f45710b98f6f7d01dc5" \
1330         "le 2e43a7f8861df4e714a192dfb3c8b2f4"
1332   set $variant
1333   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1335   AT_DATA([sys-file.sps], [dnl
1336 GET FILE='sys-file.sav'.
1337 DISPLAY DICTIONARY.
1338 LIST.
1340   AT_CHECK([pspp -o pspp.csv sys-file.sps])
1341   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1342 Variable,Description,,Position
1343 num1,Format: F8.0,,1
1344 num2,Format: F8.0,,2
1345 str4,Format: A4,,3
1346 str8,Format: A8,,4
1347 str15,Format: A15,,5
1349 Table: Data List
1350 num1,num2,str4,str8,str15
1351 -99,0,,abcdefgh,0123   @&t@
1352 .,151,jklm,nopqrstu,vwxyzABC       @&t@
1353 1,2,DEFG,HIJKLMNO,PQRSTUV
1355 done
1356 AT_CLEANUP
1358 AT_SETUP([compressed data, zero bias])
1359 AT_KEYWORDS([sack synthetic system file positive])
1360 AT_DATA([sys-file.sack], [dnl
1361 dnl File header.
1362 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1363 2; dnl Layout code
1364 6; dnl Nominal case size
1365 1; dnl Simple compression.
1366 0; dnl Not weighted 
1367 -1; dnl Unspecified number of cases.
1368 0.0; dnl Bias.
1369 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1370 i8 0 *3;
1372 dnl Numeric variables.
1373 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1374 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
1376 dnl String variable.
1377 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
1378 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
1379 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
1380 2; -1; 0; 0; 0; 0; s8 "";
1382 dnl Dictionary termination record.
1383 999; 0;
1385 dnl Compressed data.
1386 i8 1 100 254 253 254 253; i8 255 251; "abcdefgh"; s8 "0123";
1387 i8 253 253 253 254; i8 101 102 253 253; s8 "jklm"; s8 "nopqrstu";
1388 s8 "vwxyzABC"; s8 "DEFG"; s8 "HIJKLMNO";
1389 i8 254 253 252 0 0 0 0 0; s8 "PQRSTUVW";
1392 for variant in \
1393         "be 2f0d25704ee497ae833213a3e4ff5e8b" \
1394         "le 49f68a9e1ba02a2f7e9166686a0db9d9"
1396   set $variant
1397   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1399   AT_DATA([sys-file.sps], [dnl
1400 GET FILE='sys-file.sav'.
1401 DISPLAY DICTIONARY.
1402 LIST.
1404   AT_CHECK([pspp -o pspp.csv sys-file.sps], [0])
1405   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1406 Variable,Description,,Position
1407 num1,Format: F8.0,,1
1408 num2,Format: F8.0,,2
1409 str4,Format: A4,,3
1410 str8,Format: A8,,4
1411 str15,Format: A15,,5
1413 Table: Data List
1414 num1,num2,str4,str8,str15
1415 1,100,,abcdefgh,0123   @&t@
1416 .,251,jklm,nopqrstu,vwxyzABC       @&t@
1417 101,102,DEFG,HIJKLMNO,PQRSTUV
1419 done
1420 AT_CLEANUP
1422 AT_SETUP([compressed data, other bias])
1423 AT_KEYWORDS([sack synthetic system file positive])
1424 AT_DATA([sys-file.sack], [dnl
1425 dnl File header.
1426 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1427 2; dnl Layout code
1428 6; dnl Nominal case size
1429 1; dnl Simple compression.
1430 0; dnl Not weighted 
1431 -1; dnl Unspecified number of cases.
1432 50.0; dnl Bias.
1433 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1434 i8 0 *3;
1436 dnl Numeric variables.
1437 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1438 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
1440 dnl String variable.
1441 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
1442 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
1443 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
1444 2; -1; 0; 0; 0; 0; s8 "";
1446 dnl Dictionary termination record.
1447 999; 0;
1449 dnl Compressed data.
1450 i8 1 100 254 253 254 253; i8 255 251; "abcdefgh"; s8 "0123";
1451 i8 253 253 253 254; i8 101 102 253 253; s8 "jklm"; s8 "nopqrstu";
1452 s8 "vwxyzABC"; s8 "DEFG"; s8 "HIJKLMNO";
1453 i8 254 253 252 0 0 0 0 0; s8 "PQRSTUVW";
1456 for variant in \
1457         "be 668b85e3dee0797883e9933a096b8c18" \
1458         "le 5e7a9c4e88cd2dbc2322943da663868e"
1460   set $variant
1461   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1463   AT_DATA([sys-file.sps], [dnl
1464 GET FILE='sys-file.sav'.
1465 DISPLAY DICTIONARY.
1466 LIST.
1468   AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], 
1469     [warning: `sys-file.sav' near offset 0x54: Compression bias is not the usual value of 100, or system file uses unrecognized floating-point format.
1471   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1472 "warning: `sys-file.sav' near offset 0x54: Compression bias is not the usual value of 100, or system file uses unrecognized floating-point format."
1474 Variable,Description,,Position
1475 num1,Format: F8.0,,1
1476 num2,Format: F8.0,,2
1477 str4,Format: A4,,3
1478 str8,Format: A8,,4
1479 str15,Format: A15,,5
1481 Table: Data List
1482 num1,num2,str4,str8,str15
1483 -49,50,,abcdefgh,0123   @&t@
1484 .,201,jklm,nopqrstu,vwxyzABC       @&t@
1485 51,52,DEFG,HIJKLMNO,PQRSTUV
1487 done
1488 AT_CLEANUP
1490 m4_divert_push([PREPARE_TESTS])
1491 zcompressed_sack () {
1492     cat <<'EOF'
1493 dnl File header.
1494 "$FL3"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1495 2; dnl Layout code
1496 6; dnl Nominal case size
1497 2; dnl zlib compressed
1498 0; dnl Not weighted
1499 -1; dnl Unspecified number of cases.
1500 100.0; dnl Bias.
1501 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
1502 i8 0 *3;
1504 dnl Numeric variables.
1505 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1506 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
1508 dnl String variable.
1509 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
1510 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
1511 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
1512 2; -1; 0; 0; 0; 0; s8 "";
1514 dnl Dictionary termination record.
1515 999; 0;
1517 dnl ZLIB data header.
1518 i64 0x178;    # zheader_ofs
1519 i64 0x1e9;    # ztrailer_ofs
1520 i64 48;       # ztrailer_len
1522 dnl ZLIB data block.
1524 dnl This is the compressed form of:
1526 dnl 01 64 fe fd fe fd ff fb  61 62 63 64 65 66 67 68  |.d......abcdefgh|
1527 dnl 30 31 32 33 20 20 20 20  fd fd fd fe 65 66 fd fd  |0123    ....ef..|
1528 dnl 6a 6b 6c 6d 20 20 20 20  6e 6f 70 71 72 73 74 75  |jklm    nopqrstu|
1529 dnl 76 77 78 79 7a 41 42 43  44 45 46 47 20 20 20 20  |vwxyzABCDEFG    |
1530 dnl 48 49 4a 4b 4c 4d 4e 4f  fe fd fc 00 00 00 00 00  |HIJKLMNO........|
1531 dnl 50 51 52 53 54 55 56 57                           |PQRSTUVW|
1533 dnl which is the data from the "compressed data" test.
1534 hex "78 01 63 4c f9 f7 f7 df  df ff bf 13 93 92 53 52";
1535 hex "d3 d2 33 0c 0c 8d 8c 15  80 e0 ef df bf ff 52 d3";
1536 hex "fe fe cd ca ce c9 05 f1  f3 f2 0b 0a 8b 8a 4b 4a";
1537 hex "cb ca 2b 2a ab 1c 9d 9c  5d 5c dd dc 41 e2 1e 9e";
1538 hex "5e de 3e be 7e fe ff fe  fe 61 00 81 80 c0 a0 e0";
1539 hex "90 d0 b0 70 00 0f 3f 23  d7";
1541 dnl ZLIB data trailer fixed header:
1542 i64 -100;     # ztrailer_bias
1543 i64 0;        # ztrailer_zero
1544 0x3ff000;     # block_size
1545 1;            # n_blocks
1547 dnl ZLIB block descriptor:
1548 i64 0x178;    # uncompressed_ofs
1549 i64 0x190;    # compressed_ofs
1550 88;           # uncompressed_size
1551 89;           # compressed_size
1554 m4_divert_pop([PREPARE_TESTS])
1556 AT_SETUP([zcompressed data])
1557 AT_KEYWORDS([sack synthetic system file positive zlib])
1558 zcompressed_sack > sys-file.sack
1559 for variant in \
1560         "be 2d706c3ca0cc9be7f1721f09d0d42179" \
1561         "le 3f362f338d65b0a836b3c752cc3fc5bc"
1563   set $variant
1564   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1566   AT_DATA([sys-file.sps], [dnl
1567 GET FILE='sys-file.sav'.
1568 DISPLAY DICTIONARY.
1569 LIST.
1571   AT_CHECK([pspp -o pspp.csv sys-file.sps])
1572   AT_CHECK([grep -v Measure pspp.csv | grep -v Display], [0], [dnl
1573 Variable,Description,,Position
1574 num1,Format: F8.0,,1
1575 num2,Format: F8.0,,2
1576 str4,Format: A4,,3
1577 str8,Format: A8,,4
1578 str15,Format: A15,,5
1580 Table: Data List
1581 num1,num2,str4,str8,str15
1582 -99,0,,abcdefgh,0123   @&t@
1583 .,151,jklm,nopqrstu,vwxyzABC       @&t@
1584 1,2,DEFG,HIJKLMNO,PQRSTUV
1586 done
1587 AT_CLEANUP
1589 AT_BANNER([system file reader - negative])
1591 AT_SETUP([misplaced type 4 record])
1592 AT_KEYWORDS([sack synthetic system file negative])
1593 AT_DATA([sys-file.sack], [dnl
1594 dnl File header.
1595 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1596 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1598 dnl Numeric variable.
1599 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1601 dnl Type 4 record.
1602 >>4<<;
1604 for variant in \
1605         "be 6e0bb549fff1fd1af333d51b8a6e0f43" \
1606         "le 7b62734edcee2a1689c463f2866d11b8"
1608   set $variant
1609   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1611   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1613   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
1614    [error: `sys-file.sav' near offset 0xd4: Misplaced type 4 record.
1616 done
1617 AT_CLEANUP
1619 AT_SETUP([bad record type])
1620 AT_KEYWORDS([sack synthetic system file negative])
1621 AT_DATA([sys-file.sack], [dnl
1622 dnl File header.
1623 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1624 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1626 dnl Numeric variable.
1627 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1629 dnl Type 8 record (not a valid type).
1630 >>8<<;
1632 for variant in \
1633         "be dc8f078c23046ee7db74ec1003178a11" \
1634         "le dc7f111642f0629f4370630fd092eee3"
1636   set $variant
1637   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1639   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1641   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
1642    [error: `sys-file.sav' near offset 0xd4: Unrecognized record type 8.
1644 done
1645 AT_CLEANUP
1647 AT_SETUP([wrong number of variable positions])
1648 AT_KEYWORDS([sack synthetic system file negative])
1649 AT_DATA([sys-file.sack], [dnl
1650 dnl File header.
1651 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1652 2; >>2<<; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1654 dnl Numeric variable.
1655 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1657 dnl End of dictionary.
1658 999; 0;
1660 for variant in \
1661         "be c57e91aa426f61813c3ad91ea3a56dda" \
1662         "le 5d1a6c114b135b219473c8ad5bb44bda"
1664   set $variant
1665   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1667   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1669   AT_CHECK([pspp -O format=csv sys-file.sps], [0], 
1670    [warning: `sys-file.sav': File header claims 2 variable positions but 1 were read from file.
1672 done
1673 AT_CLEANUP
1675 AT_SETUP([variable name may not begin with `#'])
1676 AT_KEYWORDS([sack synthetic system file negative])
1677 AT_DATA([sys-file.sack], [dnl
1678 dnl File header.
1679 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1680 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1682 dnl Numeric variable.
1683 2; 0; 0; 0; 0x050800 *2; s8 >>"$UM1"<<;
1685 dnl End of dictionary.
1686 999; 0;
1688 for variant in \
1689         "be decb7ac6defa1ab3cc7a386d1843c1ae" \
1690         "le 5279b6275633bac55d167faebccfdb14"
1692   set $variant
1693   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1695   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1697   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
1698    [error: `sys-file.sav' near offset 0xb4: Invalid variable name `$UM1'.
1700 done
1701 AT_CLEANUP
1703 AT_SETUP([variable name may not be reserved word])
1704 AT_KEYWORDS([sack synthetic system file negative])
1705 AT_DATA([sys-file.sack], [dnl
1706 dnl File header.
1707 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1708 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1710 dnl Numeric variable.
1711 2; 0; 0; 0; 0x050800 *2; s8 >>"TO"<<;
1713 dnl End of dictionary.
1714 999; 0;
1716 for variant in \
1717         "be 57e6ad709668bbf538e2efee4af49916" \
1718         "le 523f14b611efa380bbadf7a16ea43fed"
1720   set $variant
1721   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1723   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1725   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
1726    [error: `sys-file.sav' near offset 0xb4: Invalid variable name `TO'.
1728 done
1729 AT_CLEANUP
1731 AT_SETUP([variable width must be between 0 and 255])
1732 AT_KEYWORDS([sack synthetic system file negative])
1733 AT_DATA([sys-file.sack], [dnl
1734 dnl File header.
1735 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1736 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1738 dnl String variable with invalid width 256.
1739 2; 256; 0; 0; 0x050800 *2; s8 "VAR1";
1741 dnl End of dictionary.
1742 999; 0;
1744 for variant in \
1745         "be 170bb18589ba264a0ed2d57b41fe77e1" \
1746         "le 9528b4b5936ef5630bbd3bdd60a123c3"
1748   set $variant
1749   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1751   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1753   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
1754    [error: `sys-file.sav' near offset 0xb4: Bad width 256 for variable VAR1.
1756 done
1757 AT_CLEANUP
1759 dnl SPSS-generated system file can contain duplicate variable names
1760 dnl (see bug #41475).
1761 AT_SETUP([duplicate variable name])
1762 AT_KEYWORDS([sack synthetic system file negative])
1763 AT_DATA([sys-file.sack], [dnl
1764 dnl File header.
1765 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1766 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1768 dnl Numeric variables.
1769 2; 0; 0; 0; 0x050800 *2; s8 "VAR1";
1770 2; 0; 0; 0; 0x050800 *2; s8 "VAR1";
1772 dnl End of dictionary.
1773 999; 0;
1775 for variant in \
1776         "be d8f5fd768ab1d641f9330a4840c71343" \
1777         "le f01e123d384cdaa7c2f7fc4791325ebf"
1779   set $variant
1780   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1782   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1783 DISPLAY DICTIONARY.
1785   AT_CHECK([pspp -O format=csv sys-file.sps], [0],
1786    [warning: `sys-file.sav' near offset 0xd4: Renaming variable with duplicate name `VAR1' to `VAR001'.
1788 Variable,Description,,Position
1789 var1,Format: F8.0,,1
1790 ,Measure: Scale,,
1791 ,Display Alignment: Right,,
1792 ,Display Width: 8,,
1793 var001,Format: F8.0,,2
1794 ,Measure: Scale,,
1795 ,Display Alignment: Right,,
1796 ,Display Width: 8,,
1798 done
1799 AT_CLEANUP
1801 AT_SETUP([variable label indicator not 0 or 1])
1802 AT_KEYWORDS([sack synthetic system file negative])
1803 AT_DATA([sys-file.sack], [dnl
1804 dnl File header.
1805 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1806 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1808 dnl Numeric variable.
1809 2; 0; >>2<<; 0; 0x050800 *2; s8 "VAR1";
1811 dnl End of dictionary.
1812 999; 0;
1814 for variant in \
1815         "be 3c5ff8d8f146457a385ca92d3d23ca8a" \
1816         "le 37e9f956d321ae57b0bf7fe2384e892b"
1818   set $variant
1819   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1821   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1823   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
1824    [error: `sys-file.sav' near offset 0xb4: Variable label indicator field is not 0 or 1.
1826 done
1827 AT_CLEANUP
1829 AT_SETUP([invalid numeric missing value indicator])
1830 AT_KEYWORDS([sack synthetic system file negative])
1831 AT_DATA([sys-file.sack], [dnl
1832 dnl File header.
1833 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1834 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1836 dnl Numeric variable.
1837 2; 0; 0; >>-1<<; 0x050800 *2; s8 "VAR1";
1839 dnl End of dictionary.
1840 999; 0;
1842 for variant in \
1843         "be d1d0d4aedf9f053452c4b1e658ade5e2" \
1844         "le df697575499fe12921185a3d23a5d61d"
1846   set $variant
1847   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1849   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1851   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
1852    ["error: `sys-file.sav' near offset 0xb4: Numeric missing value indicator field is not -3, -2, 0, 1, 2, or 3."
1854 done
1855 AT_CLEANUP
1857 AT_SETUP([invalid string missing value indicator])
1858 AT_KEYWORDS([sack synthetic system file negative])
1859 AT_DATA([sys-file.sack], [dnl
1860 dnl File header.
1861 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1862 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1864 dnl String variable.
1865 2; 8; 0; >>4<<; 0x010800 *2; s8 "VAR1";
1867 dnl End of dictionary.
1868 999; 0;
1870 for variant in \
1871         "be f833033be7b102fae19159989f62faa6" \
1872         "le 9704ba828bb7a36ef0262838f6b7936b"
1874   set $variant
1875   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1877   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1879   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
1880    ["error: `sys-file.sav' near offset 0xb4: String missing value indicator field is not 0, 1, 2, or 3."
1882 done
1883 AT_CLEANUP
1885 AT_SETUP([missing string continuation record])
1886 AT_KEYWORDS([sack synthetic system file negative])
1887 AT_DATA([sys-file.sack], [dnl
1888 dnl File header.
1889 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1890 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1892 dnl String variable.
1893 2; 10; 0; 0; 0x010a00 *2; s8 "VAR1";
1894 >>2; 0; 0; 0; 0x050800 *2; s8 "VAR2";<<
1896 dnl End of dictionary.
1897 999; 0;
1899 for variant in \
1900         "be c8f9ad2b2acd2918055e2b78c1e0b4b8" \
1901         "le 1afab4d6aee90a6fe8d2dbf229e06409"
1903   set $variant
1904   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1906   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1908   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
1909    [error: `sys-file.sav' near offset 0xb4: Missing string continuation record.
1911 done
1912 AT_CLEANUP
1914 AT_SETUP([invalid variable format])
1915 AT_KEYWORDS([sack synthetic system file negative])
1916 AT_DATA([sys-file.sack], [dnl
1917 dnl File header.
1918 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1919 2; 4; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
1921 dnl Numeric variable, invalid format types.
1922 dnl No warning is issued for type 0 because it has been observed in real
1923 dnl system files.
1924 2; 0; 0; 0; >>0xff0800; 0<<; s8 "NUM1";
1926 dnl Numeric variable, string formats.
1927 2; 0; 0; 0; >>0x010800<<; >>0x021000<<; s8 "VAR1";
1929 dnl String variable, numeric formats.
1930 2; 4; 0; 0; >>0x050800<<; >>0x110a01<<; s8 "STR1";
1932 dnl String variable, wrong width formats.
1933 2; 4; 0; 0; >>0x010800<<; >>0x020400<<; s8 "STR2";
1935 dnl End of dictionary.
1936 999; 0;
1938 for variant in \
1939         "be c6ef5d8fded46443aba89adfafe15cad" \
1940         "le fccaf1764c973892f2d5adbcc2c36fb7"
1942   set $variant
1943   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
1945   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
1947   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
1948 warning: `sys-file.sav' near offset 0xc0: Variable NUM1 with width 0 has invalid print format 0xff0800.
1950 warning: `sys-file.sav' near offset 0xe0: Variable VAR1 with width 0 has invalid print format 0x10800.
1952 warning: `sys-file.sav' near offset 0xe4: Variable VAR1 with width 0 has invalid write format 0x21000.
1954 warning: `sys-file.sav' near offset 0x100: Variable STR1 with width 4 has invalid print format 0x50800.
1956 warning: `sys-file.sav' near offset 0x104: Variable STR1 with width 4 has invalid write format 0x110a01.
1958 warning: `sys-file.sav' near offset 0x120: Variable STR2 with width 4 has invalid print format 0x10800.
1960 warning: `sys-file.sav' near offset 0x124: Variable STR2 with width 4 has invalid write format 0x20400.
1962 done
1963 AT_CLEANUP
1965 AT_SETUP([invalid long string missing values])
1966 AT_KEYWORDS([sack synthetic system file negative])
1967 AT_DATA([sys-file.sack], [dnl
1968 dnl File header.
1969 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
1970 2; dnl Layout code
1971 7; dnl Nominal case size
1972 0; dnl Not compressed
1973 0; dnl Not weighted
1974 1; dnl 1 case.
1975 100.0; dnl Bias.
1976 "01 Jan 11"; "20:53:52";
1977 "PSPP synthetic test file: "; i8 244; i8 245; i8 246; i8 248; s34 "";
1978 i8 0 *3;
1980 dnl One numeric variable.
1981 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
1983 dnl Long string variables that will have missing values added with a
1984 dnl later record.
1985 2; 9; 0; 0; 0x010900 *2; s8 "STR1";
1986 2; -1; 0; 0; 0; 0; s8 "";
1987 2; 10; 0; 0; 0x010a00 *2; s8 "STR2";
1988 2; -1; 0; 0; 0; 0; s8 "";
1989 2; 11; 0; 0; 0x010b00 *2; s8 "STR3";
1990 2; -1; 0; 0; 0; 0; s8 "";
1992 dnl Machine integer info record.
1993 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
1995 dnl Machine floating-point info record.
1996 7; 4; 8; 3; SYSMIS; HIGHEST; LOWEST;
1998 dnl Long string variable missing values record.
1999 7; 22; 1; COUNT (
2000 dnl Zero missing values (not allowed) for STR1 .
2001 COUNT("STR1"); i8 >>0<<;
2003 dnl Four missing values (not allowed) for STR2.
2004 COUNT("STR2"); i8 4;
2005 8; "abcdefgh"; 8; "ijklmnop"; 8; "qrstuvwx"; 8; "yz012345";
2007 dnl Missing values for unknown variable
2008 COUNT(>>"Nonexistent"<<); i8 1; 8; "abcdefgh";
2010 dnl Missing values for numeric variable
2011 COUNT(>>"NUM1"<<); i8 1; 8; "abcdefgh";
2013 dnl Too long missing value
2014 COUNT("STR3"); i8 1; >>COUNT("abcdefghijkl")<<;
2017 dnl Character encoding record.
2018 7; 20; 1; 12; "windows-1252";
2020 dnl Dictionary termination record.
2021 999; 0;
2022 s8 "abcd"; s8 "efgh"; s8 "ijkl"; s8 "mnop"; s8 "qrst"; s8 "uvwx";
2023 s16 "yzABCDEFGHI"; s16 "JKLMNOPQR"; s16 "STUVWXYZ01";
2024 s16 "23456789abc"; s32 "defghijklmnopqstuvwxyzABC";
2027 for variant in \
2028         "be 26e815cfb41eaedb435ea3c81b96215c" \
2029         "le 72d70456bd4dc88bb0a0fdb039ccdfa3"
2031   set $variant
2032   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2034   AT_DATA([sys-file.sps], [dnl
2035 GET FILE='sys-file.sav'.
2036 DISPLAY DICTIONARY.
2038   AT_CHECK([pspp -O format=csv sys-file.sps], [0],
2039    ["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."
2041 "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."
2043 warning: `sys-file.sav' near offset 0x242: Ignoring long string missing value record for unknown variable Nonexistent.
2045 warning: `sys-file.sav' near offset 0x257: Ignoring long string missing value record for numeric variable NUM1.
2047 "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."
2049 Variable,Description,,Position
2050 num1,Format: F8.0,,1
2051 ,Measure: Scale,,
2052 ,Display Alignment: Right,,
2053 ,Display Width: 8,,
2054 str1,Format: A9,,2
2055 ,Measure: Nominal,,
2056 ,Display Alignment: Left,,
2057 ,Display Width: 9,,
2058 str2,Format: A10,,3
2059 ,Measure: Nominal,,
2060 ,Display Alignment: Left,,
2061 ,Display Width: 10,,
2062 ,"Missing Values: ""abcdefgh""; ""ijklmnop""; ""qrstuvwx""",,
2063 str3,Format: A11,,4
2064 ,Measure: Nominal,,
2065 ,Display Alignment: Left,,
2066 ,Display Width: 11,,
2068 done
2069 AT_CLEANUP
2071 AT_SETUP([weighting variable must be numeric])
2072 AT_KEYWORDS([sack synthetic system file negative])
2073 AT_DATA([sys-file.sack], [dnl
2074 dnl File header.
2075 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2076 2; 2; 1; >>2<<; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2078 dnl Numeric variable.
2079 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2081 dnl String variable.
2082 2; 4; 0; 0; 0x010400 *2; s8 "STR1";
2084 dnl End of dictionary.
2085 999; 0;
2087 for variant in \
2088         "be 82d30105e46c4896c24f9dcec26c4749" \
2089         "le 32e235119be70050eb78bf4186a5a046"
2091   set $variant
2092   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2094   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2095 DISPLAY DICTIONARY.
2097   AT_CHECK([pspp -O format=csv sys-file.sps], [0],
2098    [warning: `sys-file.sav': Ignoring string variable `STR1' set as weighting variable.
2100 Variable,Description,,Position
2101 num1,Format: F8.0,,1
2102 ,Measure: Scale,,
2103 ,Display Alignment: Right,,
2104 ,Display Width: 8,,
2105 str1,Format: A4,,2
2106 ,Measure: Nominal,,
2107 ,Display Alignment: Left,,
2108 ,Display Width: 4,,
2110 done
2111 AT_CLEANUP
2113 AT_SETUP([bad weighting variable index])
2114 AT_KEYWORDS([sack synthetic system file negative])
2115 AT_DATA([sys-file.sack], [dnl
2116 dnl File header.
2117 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2118 2; 2; 1; >>3<<; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2120 dnl Numeric variable.
2121 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2123 dnl String variable.
2124 2; 4; 0; 0; 0x010400 *2; s8 "STR1";
2126 dnl End of dictionary.
2127 999; 0;
2129 for variant in \
2130         "be cd9af924ff20bc75834aa2c696254c97" \
2131         "le cbe0f2f514f5e95f27644d0b4314bc78"
2133   set $variant
2134   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2136   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2138   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
2139    [error: `sys-file.sav' near offset 0x4c: Variable index 3 not in valid range 1...2.
2141 done
2142 AT_CLEANUP
2144 AT_SETUP([variable index is long string contination])
2145 AT_KEYWORDS([sack synthetic system file negative])
2146 AT_DATA([sys-file.sack], [dnl
2147 dnl File header.
2148 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2149 2; 2; 1; >>3<<; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2151 dnl Numeric variable.
2152 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2154 dnl Long string variable.
2155 2; 9; 0; 0; 0x010900 *2; s8 "STR1";
2156 (2; -1; 0; 0; 0; 0; s8 "");
2158 dnl End of dictionary.
2159 999; 0;
2161 for variant in \
2162         "be 0c395354df56ea5ff374aafcc535d633" \
2163         "le d977f684ea9d4648ed40f8c6dddde9f7"
2165   set $variant
2166   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2168   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2170   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
2171    [error: `sys-file.sav' near offset 0x4c: Variable index 3 refers to long string continuation.
2173 done
2174 AT_CLEANUP
2176 AT_SETUP([multiple documents records])
2177 AT_KEYWORDS([sack synthetic system file negative])
2178 AT_DATA([sys-file.sack], [dnl
2179 dnl File header.
2180 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2181 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2183 dnl Numeric variable, no label or missing values.
2184 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2186 dnl Two document records.
2187 (6; 1; s80 "One line of documents") >>* 2<<;
2189 dnl Dictionary termination record.
2190 999; 0;
2192 dnl Data.
2193 1.0;
2195 for variant in \
2196         "be 18aa3348a216ed494efe28285b348fa8" \
2197         "le 19b21522bcef1dcc60af328f923f307e"
2199   set $variant
2200   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2202   AT_DATA([sys-file.sps], [dnl
2203 GET FILE='sys-file.sav'.
2205   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
2206 error: `sys-file.sav' near offset 0x12c: Duplicate type 6 (document) record.
2208 done
2209 AT_CLEANUP
2212 AT_SETUP([empty document record])
2213 AT_KEYWORDS([sack synthetic system file negative])
2214 AT_DATA([sys-file.sack], [dnl
2215 dnl File header.
2216 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2217 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2219 dnl Numeric variable, no label or missing values.
2220 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2222 dnl Empty document record.
2223 6; >>0<<;
2225 dnl Dictionary termination record.
2226 999; 0;
2228 dnl Data.
2229 1.0;
2231 for variant in \
2232         "be d8ef29c1b97f9ed226cbd938c9c49b6e" \
2233         "le f6a560c5b62e2c472429d85294f36e61"
2235   set $variant
2236   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2238   AT_DATA([sys-file.sps], [dnl
2239 GET FILE='sys-file.sav'.
2241   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
2242 error: `sys-file.sav' near offset 0xd4: Number of document lines (0) must be greater than 0 and less than 26843545.
2244 done
2245 AT_CLEANUP
2247 AT_SETUP([extension record too large])
2248 AT_KEYWORDS([sack synthetic system file negative])
2249 AT_DATA([sys-file.sack], [dnl
2250 dnl File header.
2251 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2252 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2254 dnl Numeric variable, no label or missing values.
2255 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2257 dnl Too-large extension record.
2258 7; 3; >>0xfffff000 * 2<<;
2260 for variant in \
2261         "be 5a6679dc41ac349b0b73fc430937c05c" \
2262         "le d4769c7f650cfbf160e0386d0d33be04"
2264   set $variant
2265   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2267   AT_DATA([sys-file.sps], [dnl
2268 GET FILE='sys-file.sav'.
2270   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
2271 error: `sys-file.sav' near offset 0xd8: Record type 7 subtype 3 too large.
2273 done
2274 AT_CLEANUP
2276 AT_SETUP([unknown extension record])
2277 AT_KEYWORDS([sack synthetic system file negative])
2278 AT_DATA([sys-file.sack], [dnl
2279 dnl File header.
2280 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2281 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2283 dnl Numeric variable, no label or missing values.
2284 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2286 dnl Unknown extension record type.
2287 7; 30; 1; 1; i8 0;
2289 dnl End of dictionary.
2290 999; 0;
2292 for variant in \
2293         "be ac8395e27677408189bcb8655e56cc0e" \
2294         "le e308bfcd51f1e3c28d7379c29271f9d6"
2296   set $variant
2297   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2299   AT_DATA([sys-file.sps], [dnl
2300 GET FILE='sys-file.sav'.
2302   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2303 "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."
2305 done
2306 AT_CLEANUP
2308 AT_SETUP([bad machine integer info size])
2309 AT_KEYWORDS([sack synthetic system file negative])
2310 AT_DATA([sys-file.sack], [dnl
2311 dnl File header.
2312 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2313 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2315 dnl Numeric variable, no label or missing values.
2316 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2318 dnl Machine integer info record.
2319 7; 3; 4; >>9<<; 1; 2; 3; -1; 1; 1; ENDIAN; 1252; >>1234<<;
2321 dnl End of dictionary.
2322 999; 0;
2324 for variant in \
2325         "be 21ec84826886b0a266d1360f8279d769" \
2326         "le 15dcba7b2b89b7d8a21ebcc872f515af"
2328   set $variant
2329   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore])
2330   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2332   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2333 "warning: `sys-file.sav' near offset 0xd8: Record type 7, subtype 3 has bad count 9 (expected 8)."
2335 done
2336 AT_CLEANUP
2338 AT_SETUP([bad machine integer info float format])
2339 AT_KEYWORDS([sack synthetic system file negative])
2340 AT_DATA([sys-file.sack], [dnl
2341 dnl File header.
2342 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2343 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2345 dnl Numeric variable, no label or missing values.
2346 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2348 dnl Machine integer info record.
2349 7; 3; 4; 8; 1; 2; 3; -1; >>2<<; 1; ENDIAN; 1252;
2351 dnl End of dictionary.
2352 999; 0;
2354 for variant in \
2355         "be d510ed28278649eee997fb6881a4c04f" \
2356         "le fbf1eca561a4e243b7ae844ed1677035"
2358   set $variant
2359   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore])
2360   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2362   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
2363 error: `sys-file.sav' near offset 0xd8: Floating-point representation indicated by system file (2) differs from expected (1).
2365 done
2366 AT_CLEANUP
2368 AT_SETUP([bad machine integer info endianness])
2369 AT_KEYWORDS([sack synthetic system file negative])
2370 AT_DATA([sys-file.sack], [dnl
2371 dnl File header.
2372 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2373 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2375 dnl Numeric variable, no label or missing values.
2376 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2378 dnl Machine integer info record.
2379 7; 3; 4; 8; 1; 2; 3; -1; 1; 1; >>3<<; 1252;
2381 dnl End of dictionary.
2382 999; 0;
2384 for variant in \
2385         "be 855123d16d5e1560b91d60753dad79ad 1" \
2386         "le d6626b4fa2e46a91f26c2fc609b2f1e0 2"
2388   set $variant
2389   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2391   AT_DATA([sys-file.sps], [dnl
2392 GET FILE='sys-file.sav'.
2393 DISPLAY DICTIONARY.
2395   AT_CHECK_UNQUOTED([pspp -O format=csv sys-file.sps], [0], [dnl
2396 warning: \`sys-file.sav' near offset 0xd8: Integer format indicated by system file (3) differs from expected ($[3]).
2398 Variable,Description,,Position
2399 num1,Format: F8.0,,1
2400 ,Measure: Scale,,
2401 ,Display Alignment: Right,,
2402 ,Display Width: 8,,
2404 done
2405 AT_CLEANUP
2408 AT_SETUP([bad machine floating-point info size])
2409 AT_KEYWORDS([sack synthetic system file negative])
2410 AT_DATA([sys-file.sack], [dnl
2411 dnl File header.
2412 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2413 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2415 dnl Numeric variable, no label or missing values.
2416 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2418 dnl Machine floating-point info record.
2419 7; 4; 8; >>4<<; SYSMIS; HIGHEST; LOWEST; 0.0;
2421 dnl End of dictionary.
2422 999; 0;
2424 for variant in \
2425         "be 29c9a173638fbb8bb1efe1176c4d670f" \
2426         "le 5cb49eb1084e5b9cd573a54705ff86a7"
2428   set $variant
2429   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore])
2430   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2432   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2433 "warning: `sys-file.sav' near offset 0xd8: Record type 7, subtype 4 has bad count 4 (expected 3)."
2435 done
2436 AT_CLEANUP
2438 AT_SETUP([wrong special floating point values])
2439 AT_KEYWORDS([sack synthetic system file negative])
2440 AT_DATA([sys-file.sack], [dnl
2441 dnl File header.
2442 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2443 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2445 dnl Numeric variable, no label or missing values.
2446 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2448 dnl Machine floating-point info record.
2449 7; 4; 8; 3; >>0.0<<; >>1.0<<; >>2.0<<;
2451 dnl End of dictionary.
2452 999; 0;
2454 for variant in \
2455         "be 1e7452d9bb0a2397bf6084a25437514e" \
2456         "le f59f9a83f723cde1611869ff6d91d325"
2458   set $variant
2459   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2461   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2463   AT_CHECK([pspp -O format=csv sys-file.sps | sed 's/ [(].*/.../'], [0], [dnl
2464 "warning: `sys-file.sav' near offset 0xd8: File specifies unexpected value 0...
2466 "warning: `sys-file.sav' near offset 0xd8: File specifies unexpected value 1...
2468 "warning: `sys-file.sav' near offset 0xd8: File specifies unexpected value 2...
2470 done
2471 AT_CLEANUP
2473 AT_SETUP([bad mrsets name])
2474 AT_KEYWORDS([sack synthetic system file negative multiple response])
2475 AT_DATA([sys-file.sack], [dnl
2476 dnl File header.
2477 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2478 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2480 dnl Numeric variable, no label or missing values.
2481 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2483 dnl Multiple response sets.
2484 7; 7; 1; COUNT("a=C");
2485 7; 19; 1; COUNT("xyz=D");
2487 999; 0;
2489 for variant in \
2490         "be 15a9bf44d0cd6186a60629b77079c5a5" \
2491         "le 161c99aca5e7a3684df096137e72ce5b"
2493   set $variant
2494   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2496   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2498   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2499 warning: `sys-file.sav' near offset 0xd8: `a' does not begin with `$' at offset 2 in MRSETS record.
2501 warning: `sys-file.sav' near offset 0xeb: `xyz' does not begin with `$' at offset 4 in MRSETS record.
2503 done
2504 AT_CLEANUP
2506 AT_SETUP([missing space after C in mrsets])
2507 AT_KEYWORDS([sack synthetic system file negative multiple response])
2508 AT_DATA([sys-file.sack], [dnl
2509 dnl File header.
2510 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2511 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2513 dnl Numeric variable, no label or missing values.
2514 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2516 dnl Multiple response sets.
2517 7; 7; 1; COUNT("$a=Cx");
2519 999; 0;
2521 for variant in \
2522         "be c5e5656ba3d74c3a967850f29ad89970" \
2523         "le 29f110509c3d6893a7d21ae2d66aad9d"
2525   set $variant
2526   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2528   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2530   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2531 warning: `sys-file.sav' near offset 0xd8: Missing space following `C' at offset 4 in MRSETS record.
2533 done
2534 AT_CLEANUP
2536 AT_SETUP([missing space after E in mrsets])
2537 AT_KEYWORDS([sack synthetic system file negative multiple response])
2538 AT_DATA([sys-file.sack], [dnl
2539 dnl File header.
2540 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2541 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2543 dnl Numeric variable, no label or missing values.
2544 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2546 dnl Multiple response sets.
2547 7; 7; 1; COUNT("$a=Ex");
2549 999; 0;
2551 for variant in \
2552         "be a9e1dc63e2524882a5e3d2949a2da9d4" \
2553         "le ac709ca1928f65f47a8c8efdd9454b50"
2555   set $variant
2556   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2558   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2560   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2561 warning: `sys-file.sav' near offset 0xd8: Missing space following `E' at offset 4 in MRSETS record.
2563 done
2564 AT_CLEANUP
2566 AT_SETUP([unexpected label source in mrsets])
2567 AT_KEYWORDS([sack synthetic system file negative multiple response])
2568 AT_DATA([sys-file.sack], [dnl
2569 dnl File header.
2570 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2571 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2573 dnl Numeric variable, no label or missing values.
2574 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2576 dnl Multiple response sets.
2577 7; 7; 1; COUNT("$a=E 2");
2579 999; 0;
2581 for variant in \
2582         "be 8c710e85a0a1609d0d03dec80aaf5f94" \
2583         "le 4682440b82f22d4bd2ac56afb7fa3152"
2585   set $variant
2586   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2588   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2590   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2591 warning: `sys-file.sav' near offset 0xd8: Unexpected label source value `2' following `E' at offset 7 in MRSETS record.
2593 warning: `sys-file.sav' near offset 0xd8: Expecting digit at offset 7 in MRSETS record.
2595 done
2596 AT_CLEANUP
2598 AT_SETUP([bad type character in mrsets])
2599 AT_KEYWORDS([sack synthetic system file negative multiple response])
2600 AT_DATA([sys-file.sack], [dnl
2601 dnl File header.
2602 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2603 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2605 dnl Numeric variable, no label or missing values.
2606 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2608 dnl Multiple response sets.
2609 7; 7; 1; COUNT("$a=");
2611 999; 0;
2613 for variant in \
2614         "be fc5e5200d8f56b9a5a713e4a95313a3b" \
2615         "le 578a61e8a06b20216612f566c2050879"
2617   set $variant
2618   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2620   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2622   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2623 "warning: `sys-file.sav' near offset 0xd8: Missing `C', `D', or `E' at offset 3 in MRSETS record."
2625 done
2626 AT_CLEANUP
2628 AT_SETUP([bad counted string length in mrsets])
2629 AT_KEYWORDS([sack synthetic system file negative multiple response])
2630 AT_DATA([sys-file.sack], [dnl
2631 dnl File header.
2632 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2633 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2635 dnl Numeric variable, no label or missing values.
2636 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2638 dnl Multiple response sets.
2639 7; 7; 1; COUNT("$a=Dx");
2641 999; 0;
2643 for variant in \
2644         "be 23d0e2f65c7c5f93bbedcc0f2b260c69" \
2645         "le c3860c1d80e08842264948056e72c0db"
2647   set $variant
2648   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2650   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2652   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2653 warning: `sys-file.sav' near offset 0xd8: Expecting digit at offset 4 in MRSETS record.
2655 done
2656 AT_CLEANUP
2658 AT_SETUP([missing space in counted string in mrsets])
2659 AT_KEYWORDS([sack synthetic system file negative multiple response])
2660 AT_DATA([sys-file.sack], [dnl
2661 dnl File header.
2662 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2663 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2665 dnl Numeric variable, no label or missing values.
2666 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2668 dnl Multiple response sets.
2669 7; 7; 1; COUNT("$a=D1x");
2671 999; 0;
2673 for variant in \
2674         "be c9ce001723763e0698878b7e43a887e8" \
2675         "le e258a1e4491d5a1d1e7d2272ef631a22"
2677   set $variant
2678   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2680   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2682   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2683 warning: `sys-file.sav' near offset 0xd8: Expecting space at offset 5 in MRSETS record.
2685 done
2686 AT_CLEANUP
2688 AT_SETUP([counted string too long in mrsets])
2689 AT_KEYWORDS([sack synthetic system file negative multiple response])
2690 AT_DATA([sys-file.sack], [dnl
2691 dnl File header.
2692 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2693 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2695 dnl Numeric variable, no label or missing values.
2696 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2698 dnl Multiple response sets.
2699 7; 7; 1; COUNT("$a=D4 abc");
2701 999; 0;
2703 for variant in \
2704         "be 196d1266fa0e8e315769dcbe3130e3df" \
2705         "le 23df1ba7b77a26da8ce1c2cfbcaadce0"
2707   set $variant
2708   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2710   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2712   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2713 warning: `sys-file.sav' near offset 0xd8: 4-byte string starting at offset 6 exceeds record length 9.
2715 done
2716 AT_CLEANUP
2718 AT_SETUP([missing space after counted string in mrsets])
2719 AT_KEYWORDS([sack synthetic system file negative multiple response])
2720 AT_DATA([sys-file.sack], [dnl
2721 dnl File header.
2722 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2723 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2725 dnl Numeric variable, no label or missing values.
2726 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2728 dnl Multiple response sets.
2729 7; 7; 1; COUNT("$a=D3 abcx");
2731 999; 0;
2733 for variant in \
2734         "be 86314bb0bbdfad48c10af8b8d8106d6e" \
2735         "le 2b8d05ff501ca78e51f7110ce88a2364"
2737   set $variant
2738   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2740   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2742   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2743 warning: `sys-file.sav' near offset 0xd8: Expecting space at offset 9 following 3-byte string.
2745 done
2746 AT_CLEANUP
2748 AT_SETUP([missing newline after variable name in mrsets])
2749 AT_KEYWORDS([sack synthetic system file negative multiple response])
2750 AT_DATA([sys-file.sack], [dnl
2751 dnl File header.
2752 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2753 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2755 dnl Numeric variable, no label or missing values.
2756 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2758 dnl Multiple response sets.
2759 7; 7; 1; COUNT("$a=C 0  NUM1");
2761 999; 0;
2763 for variant in \
2764         "be cea939cf3e6a5f88cb45e8fa871c5e13" \
2765         "le 52135afec082f50f37eafacadbb2cd65"
2767   set $variant
2768   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2770   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2772   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2773 warning: `sys-file.sav' near offset 0xd8: Missing new-line parsing variable names at offset 13 in MRSETS record.
2775 warning: `sys-file.sav' near offset 0xd8: MRSET $a has only 1 variables.
2777 done
2778 AT_CLEANUP
2780 AT_SETUP([duplicate variable name in mrsets])
2781 AT_KEYWORDS([sack synthetic system file negative multiple response])
2782 AT_DATA([sys-file.sack], [dnl
2783 dnl File header.
2784 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2785 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2787 dnl Numeric variable, no label or missing values.
2788 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2790 dnl Multiple response sets.
2791 7; 7; 1; COUNT("$a=C 0  NUM1 NUM1"; i8 10);
2793 999; 0;
2795 for variant in \
2796         "be 4b1b5fa2dc22cf0afdd35422290b0a29" \
2797         "le e4304b57976440a036f25f8dd8ac1404"
2799   set $variant
2800   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2802   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2804   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2805 warning: `sys-file.sav' near offset 0xd8: Duplicate variable name NUM1 at offset 18 in MRSETS record.
2807 warning: `sys-file.sav' near offset 0xd8: MRSET $a has only 1 variables.
2809 done
2810 AT_CLEANUP
2812 AT_SETUP([mixed variable types in mrsets])
2813 AT_KEYWORDS([sack synthetic system file negative multiple response])
2814 AT_DATA([sys-file.sack], [dnl
2815 dnl File header.
2816 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2817 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2819 dnl Variables.
2820 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2821 2; 8; 0; 0; 0x010800 *2; s8 "STR1";
2823 dnl Multiple response sets.
2824 7; 7; 1; COUNT("$a=C 0  NUM1 STR1"; i8 10);
2826 999; 0;
2828 for variant in \
2829         "be 0f130e967e4097823f85b8711eb20727" \
2830         "le 4dc987b4303fd115f1cae9be3963acc9"
2832   set $variant
2833   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2835   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2837   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2838 warning: `sys-file.sav' near offset 0xf8: MRSET $a contains both string and numeric variables.
2840 warning: `sys-file.sav' near offset 0xf8: MRSET $a has only 1 variables.
2842 done
2843 AT_CLEANUP
2845 AT_SETUP([missing newline after variable name in mrsets])
2846 AT_KEYWORDS([sack synthetic system file negative multiple response])
2847 AT_DATA([sys-file.sack], [dnl
2848 dnl File header.
2849 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2850 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2852 dnl Numeric variable, no label or missing values.
2853 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2855 dnl Multiple response sets.
2856 7; 7; 1; COUNT("$a=C 0  NUM1"; i8 10);
2858 999; 0;
2860 for variant in \
2861         "be 3a891e0a467afb3d622629c70f329ada" \
2862         "le 432998ec08370510411af4f5207c015e"
2864   set $variant
2865   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2867   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2869   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2870 warning: `sys-file.sav' near offset 0xd8: MRSET $a has only 1 variables.
2872 done
2873 AT_CLEANUP
2875 AT_SETUP([zero or one variable in mrset])
2876 AT_KEYWORDS([sack synthetic system file negative multiple response])
2877 AT_DATA([sys-file.sack], [dnl
2878 dnl File header.
2879 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2880 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2882 dnl Numeric variable, no label or missing values.
2883 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2885 dnl Multiple response sets.
2886 7; 7; 1; COUNT("$a=C 0  NUM1"; i8 10; "$b=C 0  "; i8 10);
2888 999; 0;
2890 for variant in \
2891         "be d94549fece75560fe5b47f32713b63a1" \
2892         "le 63028521d460df9e998b40a75a93c330"
2894   set $variant
2895   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2897   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2899   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2900 warning: `sys-file.sav' near offset 0xd8: MRSET $a has only 1 variables.
2902 warning: `sys-file.sav' near offset 0xd8: MRSET $b has only 0 variables.
2904 done
2905 AT_CLEANUP
2907 AT_SETUP([wrong display parameter size])
2908 AT_KEYWORDS([sack synthetic system file negative])
2909 AT_DATA([sys-file.sack], [dnl
2910 dnl File header.
2911 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2912 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2914 dnl Numeric variable, no label or missing values.
2915 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2917 dnl Display parameters record.
2918 7; 11; >>8<<; 2; 1.0; 1.0;
2920 dnl End of dictionary.
2921 999; 0;
2923 for variant in \
2924         "be 7c0f1ae47ae11e37d435c4abaceca226" \
2925         "le c29d05a1f8f15ed2201f31f8b787aaa0"
2927   set $variant
2928   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2930   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2932   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2933 "warning: `sys-file.sav' near offset 0xd8: Record type 7, subtype 11 has bad size 8 (expected 4)."
2935 done
2936 AT_CLEANUP
2938 AT_SETUP([wrong display parameter count])
2939 AT_KEYWORDS([sack synthetic system file negative])
2940 AT_DATA([sys-file.sack], [dnl
2941 dnl File header.
2942 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2943 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2945 dnl Numeric variable, no label or missing values.
2946 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2948 dnl Display parameters record.
2949 7; 11; 4; >>4<<; 1; 1; 2; 2;
2951 dnl End of dictionary.
2952 999; 0;
2954 for variant in \
2955         "be 372b57e73c69b05047b60bf6c596e2a1" \
2956         "le 2a550d8c5ceae4de7ced77df66e49d0f"
2958   set $variant
2959   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2961   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2963   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2964 warning: `sys-file.sav' near offset 0xd8: Extension 11 has bad count 4 (for 1 variables).
2966 done
2967 AT_CLEANUP
2969 AT_SETUP([wrong display measurement level])
2970 AT_KEYWORDS([sack synthetic system file negative])
2971 AT_DATA([sys-file.sack], [dnl
2972 dnl File header.
2973 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
2974 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
2976 dnl Numeric variable, no label or missing values.
2977 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
2979 dnl Display parameters record.
2980 7; 11; 4; 2; >>4<<; 0;
2982 dnl End of dictionary.
2983 999; 0;
2985 for variant in \
2986         "be d43e7616b03743339f37292dec6c2204" \
2987         "le 821533c29a070cefdd8f07f4e1741d2a"
2989   set $variant
2990   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
2992   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
2994   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
2995 warning: `sys-file.sav' near offset 0xd8: Invalid variable display parameters for variable 0 (NUM1).  Default parameters substituted.
2997 done
2998 AT_CLEANUP
3000 AT_SETUP([wrong display alignment])
3001 AT_KEYWORDS([sack synthetic system file negative])
3002 AT_DATA([sys-file.sack], [dnl
3003 dnl File header.
3004 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3005 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3007 dnl Numeric variable, no label or missing values.
3008 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3010 dnl Display parameters record.
3011 7; 11; 4; 2; 1; >>-1<<;
3013 dnl End of dictionary.
3014 999; 0;
3016 for variant in \
3017         "be c54bc48b5767e2ec3a9ef31df790cb7c" \
3018         "le a4d8b14af64221abe83adb417d110e10"
3020   set $variant
3021   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3023   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3025   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3026 warning: `sys-file.sav' near offset 0xd8: Invalid variable display parameters for variable 0 (NUM1).  Default parameters substituted.
3028 done
3029 AT_CLEANUP
3031 AT_SETUP([bad variable name in variable/value pair])
3032 AT_KEYWORDS([sack synthetic system file negative])
3033 AT_DATA([sys-file.sack], [dnl
3034 dnl File header.
3035 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3036 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3038 dnl Numeric variables.
3039 2; 0; 0; 0; 0x050800 *2; s8 "LONGVARI";
3041 dnl Long variable names.
3042 7; 13; 1; COUNT (>>"xyzzy"<<);
3044 dnl Dictionary termination record.
3045 999; 0;
3047 for variant in \
3048         "be b67b6e3c1900e5a9cc691055008f0447" \
3049         "le 26cc52e601f830f9087a0ea2bd9527df"
3051   set $variant
3052   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3054   AT_DATA([sys-file.sps], [dnl
3055 GET FILE='sys-file.sav'.
3057   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3058 warning: `sys-file.sav' near offset 0xde: Dictionary record refers to unknown variable xyzzy.
3060 done
3061 AT_CLEANUP
3063 AT_SETUP([duplicate long variable name])
3064 AT_KEYWORDS([sack synthetic system file negative])
3065 AT_DATA([sys-file.sack], [dnl
3066 dnl File header.
3067 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3068 2; 4; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3070 dnl Numeric variables.
3071 2; 0; 0; 0; 0x050800 *2; s8 "LONGVARI";
3072 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_A";
3073 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_B";
3074 2; 0; 0; 0; 0x050800 *2; s8 "LONGVA_C";
3076 dnl Long variable names.
3077 7; 13; 1; COUNT (
3078 "LONGVARI=_Invalid"; i8 9;
3079 "LONGVA_A=LongVariableName"; i8 9;
3080 "LONGVA_B=LONGVARIABLENAME"; i8 9;
3083 dnl Dictionary termination record.
3084 999; 0;
3086 for variant in \
3087         "be 9b4b4daa00084d984efb8f889bcb727c" \
3088         "le c1b1470d5cd615106e9ae507c9948d8e"
3090   set $variant
3091   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3093   AT_DATA([sys-file.sps], [dnl
3094 GET FILE='sys-file.sav'.
3096   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3097 warning: `sys-file.sav' near offset 0x138: Long variable mapping from LONGVARI to invalid variable name `_Invalid'.
3099 warning: `sys-file.sav' near offset 0x138: Duplicate long variable name `LONGVARIABLENAME'.
3101 done
3102 AT_CLEANUP
3104 AT_SETUP([bad very long string length])
3105 AT_KEYWORDS([sack synthetic system file negative])
3106 AT_DATA([sys-file.sack], [dnl
3107 dnl File header.
3108 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3109 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3111 dnl Numeric variable.
3112 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3114 dnl Very long string map.
3115 7; 14; 1; COUNT (
3116 "NUM1=00000"; i8 0; i8 9;
3117 "NUM1=00255"; i8 0; i8 9;
3118 "NUM1=00256"; i8 0; i8 9;
3121 dnl Dictionary termination record.
3122 999; 0;
3124 for variant in \
3125         "be 1309d8d9fb24bcf08952dce9b0f39a94" \
3126         "le 94a39de88f8034001b3e467c4cc04d0f"
3128   set $variant
3129   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3131   AT_DATA([sys-file.sps], [dnl
3132 GET FILE='sys-file.sav'.
3134   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3135 warning: `sys-file.sav' near offset 0xd8: NUM1 listed as string of invalid length 00000 in very long string record.
3137 "warning: `sys-file.sav' near offset 0xd8: NUM1 listed in very long string record with width 00255, which requires only one segment."
3139 error: `sys-file.sav' near offset 0xd8: Very long string NUM1 overflows dictionary.
3141 done
3142 AT_CLEANUP
3144 AT_SETUP([bad very long string segment width])
3145 AT_KEYWORDS([sack synthetic system file negative])
3146 AT_DATA([sys-file.sack], [dnl
3147 dnl File header.
3148 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3149 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3151 dnl Variables.
3152 2; 255; 0; 0; 0x01ff00 *2; s8 "STR1";
3153 (2; -1; 0; 0; 0; 0; s8 "") * 31;
3154 2; >>9<<; 0; 0; 0x010900 *2; s8 "STR1_A";
3155 >>2; -1; 0; 0; 0; 0; s8 "";<<
3157 dnl Very long string map.
3158 7; 14; 1; COUNT (
3159 "STR1=00256"; i8 0; i8 9;
3162 dnl Dictionary termination record.
3163 999; 0;
3165 for variant in \
3166         "be 1d09a44a46859e6eda28e053dd4b7a8b" \
3167         "le 63b9ac0b3953f3e0d5ee248ebe257794"
3169   set $variant
3170   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
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 0x4f8: Very long string with width 256 has segment 1 of width 9 (expected 4).
3178 done
3179 AT_CLEANUP
3181 AT_SETUP([too many value labels])
3182 dnl Skip the test if multiplying a small number by INT32_MAX would not
3183 dnl cause an overflow in size_t.
3184 AT_SKIP_IF([test $SIZEOF_SIZE_T -gt 4])
3185 AT_KEYWORDS([sack synthetic system file negative])
3186 AT_DATA([sys-file.sack], [dnl
3187 dnl File header.
3188 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3189 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3191 dnl Numeric variable.
3192 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3193 3; >>0x7fffffff<<;
3195 for variant in \
3196         "be 975b2668dde395ddf619977958b37412" \
3197         "le 0c14aa278cfc2a4b801f91c14321f03b"
3199   set $variant
3200   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3202   AT_DATA([sys-file.sps], [dnl
3203 GET FILE='sys-file.sav'.
3205   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3206 error: `sys-file.sav' near offset 0xd4: Invalid number of labels 2147483647.
3208 done
3209 AT_CLEANUP
3211 AT_SETUP([missing type 4 record])
3212 AT_KEYWORDS([sack synthetic system file negative])
3213 AT_DATA([sys-file.sack], [dnl
3214 dnl File header.
3215 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3216 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3218 dnl Numeric variable.
3219 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3221 dnl Value label with missing type 4 record.
3222 3; 1; 1.0; i8 3; s7 "one";
3224 dnl End of dictionary.
3225 >>999; 0<<;
3227 for variant in \
3228         "be 5e1286ac92e3f25ff98492bc5019d608" \
3229         "le b33c12f776bbcaa43aa3bfdd4799e0c0"
3231   set $variant
3232   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3234   AT_DATA([sys-file.sps], [dnl
3235 GET FILE='sys-file.sav'.
3237   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3238 error: `sys-file.sav' near offset 0xe8: Variable index record (type 4) does not immediately follow value label record (type 3) as it should.
3240 done
3241 AT_CLEANUP
3243 AT_SETUP([value label with no associated variables])
3244 AT_KEYWORDS([sack synthetic system file negative])
3245 AT_DATA([sys-file.sack], [dnl
3246 dnl File header.
3247 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3248 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3250 dnl Numeric variable.
3251 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3253 dnl Value label with no variables.
3254 3; 1; 1.0; i8 3; s7 "one"; 4; >>0<<;
3256 for variant in \
3257         "be b0dcec30a936cbcad21c4f3d6fe10fcf" \
3258         "le 3b9fdfce5c8c248048232fd6eac018e3"
3260   set $variant
3261   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3263   AT_DATA([sys-file.sps], [dnl
3264 GET FILE='sys-file.sav'.
3266   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3267 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).
3269 done
3270 AT_CLEANUP
3272 AT_SETUP([type 4 record names long string variable])
3273 AT_KEYWORDS([sack synthetic system file negative])
3274 AT_DATA([sys-file.sack], [dnl
3275 dnl File header.
3276 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3277 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3279 dnl Long string variable.
3280 2; 9; 0; 0; 0x010900 *2; s8 "STR1";
3281 2; -1; 0; 0; 0; 0; s8 "";
3283 dnl Value label that names long string variable.
3284 3; 1; s8 "xyzzy"; i8 3; s7 "one"; 4; 1; >>1<<;
3286 dnl End of dictionary.
3287 999; 0;
3289 for variant in \
3290         "be 14053a4f09de4c7c4c55281534dd66f4" \
3291         "le 8a61cc994c659fd66307d2f0fd64ce20"
3293   set $variant
3294   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore])
3295   AT_DATA([sys-file.sps], [dnl
3296 GET FILE='sys-file.sav'.
3298   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3299 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.
3301 done
3302 AT_CLEANUP
3304 AT_SETUP([variables for value label must all be same type])
3305 AT_KEYWORDS([sack synthetic system file negative])
3306 AT_DATA([sys-file.sack], [dnl
3307 dnl File header.
3308 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3309 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3311 dnl Variables.
3312 2; 6; 0; 0; 0x010600 *2; s8 "STR1";
3313 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3315 dnl Value label that names numeric and string variables.
3316 3; 1; s8 "xyzzy"; i8 3; s7 "one"; 4; 2; >>1; 2<<;
3318 dnl End of dictionary.
3319 999; 0;
3321 for variant in \
3322         "be 7577c456726a88f52bbef63a8b47bf1a" \
3323         "le 3ba5c6af9ad0ae5cc88f9f63e726e414"
3325   set $variant
3326   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [ignore])
3327   AT_DATA([sys-file.sps], [dnl
3328 GET FILE='sys-file.sav'.
3330   AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
3331 "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."
3333 done
3334 AT_CLEANUP
3336 AT_SETUP([duplicate value labels type])
3337 AT_KEYWORDS([sack synthetic system file negative])
3338 AT_DATA([sys-file.sack], [dnl
3339 dnl File header.
3340 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3341 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3343 dnl Variables.
3344 2; 6; 0; 0; 0x010600 *2; s8 "STR1";
3345 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3347 dnl Duplicate value labels.
3348 3; 1; s8 "xyzzy"; i8 3; s7 "one"; 4; 2; >>1; 1<<;
3349 3; 1; 1.0; i8 3; s7 "one"; 4; 2; >>2; 2<<;
3351 dnl End of dictionary.
3352 999; 0;
3354 for variant in \
3355         "be ef0f5b2ebddb5a3bfcda16c93a2508f4" \
3356         "le c00e27abd9a6c06bf29a108d7220435a"
3358   set $variant
3359   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3361   AT_DATA([sys-file.sps], [dnl
3362 GET FILE='sys-file.sav'.
3364   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3365 warning: `sys-file.sav' near offset 0xf4: Duplicate value label for `xyzzy ' on STR1.
3367 warning: `sys-file.sav' near offset 0x11c: Duplicate value label for 1 on NUM1.
3369 done
3370 AT_CLEANUP
3372 AT_SETUP([missing attribute value])
3373 AT_KEYWORDS([sack synthetic system file negative])
3374 AT_DATA([sys-file.sack], [dnl
3375 dnl File header.
3376 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3377 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3379 dnl Variables.
3380 2; 0; 0; 0; 0x050800 *2; s8 "FIRSTVAR";
3382 dnl Data file attributes record.
3383 7; 17; 1; COUNT (
3384 "Attr1("
3387 dnl Variable attributes record.
3388 7; 18; 1; COUNT (
3389 "FIRSTVAR:";
3390   "fred('23'"; i8 10
3393 dnl Dictionary termination record.
3394 999; 0;
3396 for variant in \
3397         "be 0fc71f5e3cdb6b7f2dd73d011d4885c2" \
3398         "le e519b44715400156a2bfe648eb5cff34"
3400   set $variant
3401   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3403   AT_DATA([sys-file.sps], [dnl
3404 GET FILE='sys-file.sav'.
3406   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3407 warning: `sys-file.sav' near offset 0xde: Error parsing attribute value Attr1[[1]].
3409 warning: `sys-file.sav' near offset 0x101: Error parsing attribute value fred[[2]].
3411 done
3412 AT_CLEANUP
3414 AT_SETUP([unquoted attribute value])
3415 AT_KEYWORDS([sack synthetic system file negative])
3416 AT_DATA([sys-file.sack], [dnl
3417 dnl File header.
3418 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3419 2; 1; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3421 dnl Variables.
3422 2; 0; 0; 0; 0x050800 *2; s8 "FIRSTVAR";
3424 dnl Data file attributes record.
3425 7; 17; 1; COUNT (
3426 "Attr1(value"; i8 10;
3430 dnl Variable attributes record.
3431 7; 18; 1; COUNT (
3432 "FIRSTVAR:";
3433   "fred(23"; i8 10; ")"
3436 dnl Dictionary termination record.
3437 999; 0;
3439 for variant in \
3440         "be 33dba37c2247e63c04bb74a7b472293d" \
3441         "le 041025a9d9d9e21a7fabd90ba7341934"
3443   set $variant
3444   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3446   AT_DATA([sys-file.sps], [dnl
3447 GET FILE='sys-file.sav'.
3449   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3450 warning: `sys-file.sav' near offset 0xe4: Attribute value Attr1[[1]] is not quoted: value.
3452 warning: `sys-file.sav' near offset 0x106: Attribute value fred[[1]] is not quoted: 23.
3454 done
3455 AT_CLEANUP
3457 AT_SETUP([bad variable name in long string value label])
3458 AT_KEYWORDS([sack synthetic system file negative])
3459 AT_DATA([sys-file.sack], [dnl
3460 dnl File header.
3461 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3462 2; 3; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3464 dnl Variables.
3465 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3466 2; 14; 0; 0; 0x010e00 *2; s8 "STR14";
3467 2; -1; 0; 0; 0; 0; s8 "";
3469 7; 21; 1; COUNT (
3470 dnl No variable named STR9.
3471 COUNT(>>"STR9"<<); 9;
3472 1; COUNT("RSTUVWXYZ"); COUNT("value label for `RSTUVWXYZ'");
3474 dnl NUM1 is numeric.
3475 COUNT(>>"NUM1"<<); 0;
3476 1; COUNT("xyz"); COUNT("value label for 1.0");
3478 dnl Wrong width for STR14.
3479 COUNT("STR14"); >>9<<;
3480 1; COUNT("RSTUVWXYZ"); COUNT("value label for `RSTUVWXYZ'");
3482 dnl Wrong width for value.
3483 COUNT("STR14"); 14;
3484 1; COUNT(>>"RSTUVWXYZ"<<); COUNT("value label for `RSTUVWXYZ'");
3486 dnl Duplicate value label.
3487 COUNT("STR14"); 14; 2;
3488 COUNT("abcdefghijklmn"); COUNT("value label for `abcdefghijklmn'");
3489 >>COUNT("abcdefghijklmn"); COUNT("another value label for `abcdefghijklmn'")<<;
3492 dnl Dictionary termination record.
3493 999; 0;
3495 for variant in \
3496         "be cf2e883dadb00e2c6404c09ea0a4e388" \
3497         "le 89c340faf0a7e4a8c834f9687684c091"
3499   set $variant
3500   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3502   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3504   AT_CHECK([pspp -O format=csv sys-file.sps], [0], [dnl
3505 warning: `sys-file.sav' near offset 0x128: Ignoring long string value label record for unknown variable STR9.
3507 warning: `sys-file.sav' near offset 0x164: Ignoring long string value label record for numeric variable NUM1.
3509 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).
3511 "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."
3513 warning: `sys-file.sav' near offset 0x259: Duplicate value label for `abcdefghijklmn' on str14.
3515 done
3516 AT_CLEANUP
3518 AT_SETUP([fewer data records than indicated by file header])
3519 AT_KEYWORDS([sack synthetic system file negative])
3520 AT_DATA([sys-file.sack], [dnl
3521 dnl File header.
3522 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3523 2; 2; 0; 0; >>5<<; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3525 dnl Numeric variables.
3526 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3527 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
3529 dnl Data.
3530 999; 0;
3531 1.0; 2.0;
3532 3.0; 4.0;
3533 5.0; 6.0;
3534 7.0; 8.0;
3535 dnl Missing record here.
3537 for variant in \
3538         "be 6ee097c3934055d0c4564641636f4b5a" \
3539         "le ae03fe1b888091d6938b5a436d44ac60"
3541   set $variant
3542   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3544   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3545 LIST.
3547   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
3548    [error: Error reading case from file `sys-file.sav'.
3550 Table: Data List
3551 num1,num2
3557 done
3558 AT_CLEANUP
3560 AT_SETUP([partial data record between variables])
3561 AT_KEYWORDS([sack synthetic system file negative])
3562 AT_DATA([sys-file.sack], [dnl
3563 dnl File header.
3564 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3565 2; 2; 0; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3567 dnl Numeric variables.
3568 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3569 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
3571 dnl Data.
3572 999; 0;
3573 1.0; 2.0;
3574 3.0;
3576 for variant in \
3577         "be 4bcc085d7d8f0f09c6a4ba8064ffe61c" \
3578         "le 7387fc5edd2740aff92c30ca688d6d9b"
3580   set $variant
3581   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3583   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3584 LIST.
3586   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
3587    [error: `sys-file.sav' near offset 0x110: File ends in partial case.
3589 Table: Data List
3590 num1,num2
3593 done
3594 AT_CLEANUP
3596 AT_SETUP([partial data record within long string])
3597 AT_KEYWORDS([sack synthetic system file negative])
3598 AT_DATA([sys-file.sack], [dnl
3599 dnl File header.
3600 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3601 2; 2; 0; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
3603 dnl Numeric variables.
3604 2; 14; 0; 0; 0x010e00 *2; s8 "STR14";
3605 2; -1; 0; 0; 0; 0; s8 "";
3607 dnl Data.
3608 999; 0;
3609 s14 "one data item";
3610 s8 "partial";
3612 for variant in \
3613         "be 4a9e84f9e679afb7bb71acd0bb7eab89" \
3614         "le 30752606f14ee2deec2854e8e6de4b3b"
3616   set $variant
3617   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3619   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3620 LIST.
3622   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
3623    [error: `sys-file.sav' near offset 0x10e: Unexpected end of file.
3625 Table: Data List
3626 str14
3627 one data item @&t@
3629 done
3630 AT_CLEANUP
3632 AT_SETUP([partial compressed data record])
3633 AT_KEYWORDS([sack synthetic system file positive])
3634 AT_DATA([sys-file.sack], [dnl
3635 dnl File header.
3636 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3637 2; dnl Layout code
3638 6; dnl Nominal case size
3639 1; dnl Compressed
3640 0; dnl Not weighted 
3641 -1; dnl Unspecified number of cases.
3642 100.0; dnl Bias.
3643 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
3644 i8 0 *3;
3646 dnl Numeric variables.
3647 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3648 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
3650 dnl String variable.
3651 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
3652 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
3653 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
3654 2; -1; 0; 0; 0; 0; s8 "";
3656 dnl Dictionary termination record.
3657 999; 0;
3659 dnl Compressed data.
3660 i8 1 100 254 253 254 253; i8 255 251; "abcdefgh"; s8 "0123";
3662 for variant in \
3663         "be ef01b16e2e397d979a3a7d20725ebe6d" \
3664         "le 51f7a61e9bc68992469d16c55d6ecd88"
3666   set $variant
3667   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3669   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3670 LIST.
3672   AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
3673    [error: `sys-file.sav' near offset 0x190: File ends in partial case.
3675 Table: Data List
3676 num1,num2,str4,str8,str15
3677 -99,0,,abcdefgh,0123   @&t@
3679 done
3680 AT_CLEANUP
3682 AT_SETUP([zcompressed data - bad zheader_ofs])
3683 AT_KEYWORDS([sack synthetic system file negative zlib])
3684 zcompressed_sack | sed 's/.*zheader_ofs.*/>>i64 0<<;/' > sys-file.sack
3685 for variant in \
3686         "be 6d5c32f34fa1bed6f9b8f7045d104fdc" \
3687         "le 1f67fbda4f0021143e141fe8403c5a97"
3689   set $variant
3690   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3692   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3694   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x178: Wrong ZLIB data header offset 0 (expected 0x178).
3696 done
3697 AT_CLEANUP
3699 AT_SETUP([zcompressed data - bad ztrailer_ofs])
3700 AT_KEYWORDS([sack synthetic system file negative zlib])
3701 zcompressed_sack | sed 's/.*ztrailer_ofs.*/>>i64 0<<;/' > sys-file.sack
3702 for variant in \
3703         "be e2c8dec0c62d3d798825ad5906370634" \
3704         "le c1cff4cdddeee80bf1580cbc26fa9fd5"
3706   set $variant
3707   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3709   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3711   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x178: Impossible ZLIB trailer offset 0x0.
3713 done
3714 AT_CLEANUP
3716 # ztrailer_len must be a multiple of 24 and at least 48,
3717 # so a value of 12 is impossible.
3718 AT_SETUP([zcompressed data - invalid ztrailer_len])
3719 AT_KEYWORDS([sack synthetic system file negative zlib])
3720 zcompressed_sack | sed 's/.*ztrailer_len.*/>>i64 12<<;/' > sys-file.sack
3721 for variant in \
3722         "be 27f5203463bc4c7644382f24ae87f84c" \
3723         "le 0035fa6ee7690720429715150ede85f4"
3725   set $variant
3726   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3728   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3730   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x178: Invalid ZLIB trailer length 12.
3732 done
3733 AT_CLEANUP
3735 # ztrailer_ofs + ztrailer_len must be the file size.
3736 AT_SETUP([zcompressed data - wrong ztrailer_len])
3737 AT_KEYWORDS([sack synthetic system file negative zlib])
3738 zcompressed_sack | sed 's/.*ztrailer_len.*/>>i64 72<<;/' > sys-file.sack
3739 for variant in \
3740         "be 2ba9ae97bc0a7f5dcfe36e2463b9d7cb" \
3741         "le d737ea0a53ca5c6f20be359027171d73"
3743   set $variant
3744   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3746   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3748   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [warning: `sys-file.sav' near offset 0x190: End of ZLIB trailer (0x231) is not file size (0x219).
3749 error: `sys-file.sav' near offset 0x201: 72-byte ZLIB trailer specifies 1 data blocks (expected 2).
3751 done
3752 AT_CLEANUP
3754 AT_SETUP([zcompressed data - wrong ztrailer_bias])
3755 AT_KEYWORDS([sack synthetic system file negative zlib])
3756 zcompressed_sack | sed 's/.*ztrailer_bias.*/>>i64 0<<;/' > sys-file.sack
3757 for variant in \
3758         "be a5b56ab5e799a3626de2cdd7bd8d7a03" \
3759         "le d7cd584c6d5a95df10ba640eb3f1f24f"
3761   set $variant
3762   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3764   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3766   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x1f1: ZLIB trailer bias (0) differs from file header bias (100.00).
3768 done
3769 AT_CLEANUP
3771 AT_SETUP([zcompressed data - wrong ztrailer_zero])
3772 AT_KEYWORDS([sack synthetic system file negative zlib])
3773 zcompressed_sack | sed 's/.*ztrailer_zero.*/>>i64 100<<;/' > sys-file.sack
3774 for variant in \
3775         "be 8d746abedb3e74cfdc22207f3455db92" \
3776         "le 79cea017365cab35d59c7a300cfa66c1"
3778   set $variant
3779   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3781   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3783   AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [warning: `sys-file.sav' near offset 0x1f9: ZLIB trailer "zero" field has nonzero value 100.
3785 done
3786 AT_CLEANUP
3788 AT_SETUP([zcompressed data - wrong block_size])
3789 AT_KEYWORDS([sack synthetic system file negative zlib])
3790 zcompressed_sack | sed 's/.*block_size.*/>>0x1000<<;/' > sys-file.sack
3791 for variant in \
3792         "be 8d5a1caa56be8892d453faf1047005ca" \
3793         "le 7daa1bd57b192893b313a351202e179b"
3795   set $variant
3796   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3798   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3800   AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [warning: `sys-file.sav' near offset 0x1fd: ZLIB trailer specifies unexpected 4096-byte block size.
3802 done
3803 AT_CLEANUP
3805 AT_SETUP([zcompressed data - wrong n_blocks])
3806 AT_KEYWORDS([sack synthetic system file negative zlib])
3807 zcompressed_sack | sed 's/.*n_blocks.*/>>2<<;/' > sys-file.sack
3808 for variant in \
3809         "be cd29596fd6bf4a2f651febe820a7955f" \
3810         "le 8fc1f718dfd2abac7c3442c1055d4cab"
3812   set $variant
3813   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3815   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3817   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x201: 48-byte ZLIB trailer specifies 2 data blocks (expected 1).
3819 done
3820 AT_CLEANUP
3822 AT_SETUP([zcompressed data - wrong uncompressed_ofs])
3823 AT_KEYWORDS([sack synthetic system file negative zlib])
3824 zcompressed_sack | sed 's/.*uncompressed_ofs.*/i64 >>0x177<<;/' > sys-file.sack
3825 for variant in \
3826         "be 5546120fe6161dc6ed20aec48d8e74a4" \
3827         "le 86fafd625ed5ceaa1bff4fc7f500b6ab"
3829   set $variant
3830   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3832   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3834   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x201: ZLIB block descriptor 0 reported uncompressed data offset 0x177, when 0x178 was expected.
3836 done
3837 AT_CLEANUP
3839 AT_SETUP([zcompressed data - wrong compressed_ofs])
3840 AT_KEYWORDS([sack synthetic system file negative zlib])
3841 zcompressed_sack | sed 's/.*@%:@ compressed_ofs.*/i64 >>0x191<<;/' > sys-file.sack
3842 for variant in \
3843         "be 652e28f8d3f8e4ce47ad18d0f30e7bb9" \
3844         "le ebf2c647f2d7c47858d4f5ed683526e6"
3846   set $variant
3847   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3849   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3851   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x201: ZLIB block descriptor 0 reported compressed data offset 0x191, when 0x190 was expected.
3853 done
3854 AT_CLEANUP
3856 AT_SETUP([zcompressed data - compressed sizes don't add up])
3857 AT_KEYWORDS([sack synthetic system file negative zlib])
3858 AT_DATA([sys-file.sack], [dnl
3859 dnl File header.
3860 "$FL3"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
3861 2; dnl Layout code
3862 6; dnl Nominal case size
3863 2; dnl zlib compressed
3864 0; dnl Not weighted
3865 -1; dnl Unspecified number of cases.
3866 100.0; dnl Bias.
3867 "01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
3868 i8 0 *3;
3870 dnl Numeric variables.
3871 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
3872 2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
3874 dnl String variable.
3875 2; 4; 0; 0; 0x010400 *2; s8 "STR4";
3876 2; 8; 0; 0; 0x010800 *2; s8 "STR8";
3877 2; 15; 0; 0; 0x010f00 *2; s8 "STR15";
3878 2; -1; 0; 0; 0; 0; s8 "";
3880 dnl Dictionary termination record.
3881 999; 0;
3883 dnl ZLIB data header.
3884 i64 0x178;    # zheader_ofs
3885 i64 0x190;    # ztrailer_ofs
3886 i64 72;       # ztrailer_len
3888 dnl This is where the ZLIB data blocks would go, but we don't need any to
3889 dnl provoke this message so we omit them.
3891 dnl ZLIB data trailer fixed header:
3892 i64 -100;     # ztrailer_bias
3893 i64 0;        # ztrailer_zero
3894 0x3ff000;     # block_size
3895 2;            # n_blocks
3897 dnl ZLIB block descriptor 1:
3898 i64 0x178;    # uncompressed_ofs
3899 i64 0x190;    # compressed_ofs
3900 0x100000;     # uncompressed_size
3901 0x12345;      # compressed_size
3903 dnl ZLIB block descriptor 2:
3904 i64 0x100178; # uncompressed_ofs
3905 i64 0x12405;  # compressed_ofs
3906 0x100000;     # uncompressed_size
3907 0x12345;      # compressed_size
3909 for variant in \
3910         "be 72ebf57bffa340afe16ed79959faac09" \
3911         "le 80b34e98f6b181dcc2e8ca4ba13f768d"
3913   set $variant
3914   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3916   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3918   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [warning: `sys-file.sav' near offset 0x1a8: ZLIB block descriptor 0 reported block size 0x100000, when 0x3ff000 was expected.
3919 error: `sys-file.sav' near offset 0x1c0: ZLIB block descriptor 1 reported compressed data offset 0x12405, when 0x124d5 was expected.
3921 done
3922 AT_CLEANUP
3924 AT_SETUP([zcompressed data - uncompressed_size > block_size])
3925 AT_KEYWORDS([sack synthetic system file negative zlib])
3926 zcompressed_sack | sed 's/.*uncompressed_size.*/>>0x400000<<;/' > sys-file.sack
3927 for variant in \
3928         "be 9bb74ef407fe0b79e43c388eedc28212" \
3929         "le 6f145fb5f820c513f50b6f81310cdad5"
3931   set $variant
3932   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3934   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3936   AT_CHECK([pspp -o pspp.csv sys-file.sps], [0], [warning: `sys-file.sav' near offset 0x201: ZLIB block descriptor 0 reported block size 0x400000, when at most 0x3ff000 was expected.
3938 done
3939 AT_CLEANUP
3941 AT_SETUP([zcompressed data - compression expands data too much])
3942 AT_KEYWORDS([sack synthetic system file negative zlib])
3943 zcompressed_sack | sed 's/.*uncompressed_size.*/>>50<<;/
3944 s/.*@%:@ compressed_size.*/>>100<<;/' > sys-file.sack
3945 for variant in \
3946         "be e11cadde5f0855c965a1cb388dedc36e" \
3947         "le 37953e71462b6554c5644fec8b539164"
3949   set $variant
3950   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3952   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3954   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x201: ZLIB block descriptor 0 reports compressed size 100 and uncompressed size 50.
3956 done
3957 AT_CLEANUP
3959 AT_SETUP([zcompressed data - compressed sizes don't add up])
3960 AT_KEYWORDS([sack synthetic system file negative zlib])
3961 zcompressed_sack | sed 's/.*@%:@ compressed_size.*/>>88<<;/' > sys-file.sack
3962 for variant in \
3963         "be 366eaf85be1f26fb6549e2f8ee393628" \
3964         "le a756e5125e6a908cb4990f66cc419bef"
3966   set $variant
3967   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
3969   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
3971   AT_CHECK([pspp -o pspp.csv sys-file.sps], [1], [error: `sys-file.sav' near offset 0x219: ZLIB trailer is at offset 0x1e9 but 0x1e8 would be expected from block descriptors.
3973 done
3974 AT_CLEANUP