1 AT_BANNER([system files])
3 # Also tests that long variable names are preserved by SAVE and GET.
4 AT_SETUP([write and read numeric data])
5 AT_KEYWORDS([SAVE GET system file])
6 AT_DATA([sysfile.sps], [dnl
7 DATA LIST LIST NOTABLE / variable001 * variable002 * variable003 * variable004 * .
19 SAVE /OUTFILE='foo.sav'.
25 AT_CHECK([pspp -o pspp.csv sysfile.sps])
26 AT_CHECK([cat pspp.csv], [0], [dnl
28 variable001,variable002,variable003,variable004
40 # Test that system files can be read properly, even when the case_size
41 # header value is -1 (Some 3rd party products do this).
42 AT_SETUP([system files with -1 case_size])
43 AT_KEYWORDS([SAVE GET])
44 AT_DATA([save.sps], [dnl
45 DATA LIST LIST NOTABLE /cont (A32) size pop count.
47 cont 'continents of the world'
50 count 'number of countries'.
51 SAVE OUTFILE='cont.sav'.
53 Asia, 44579000, 3.7E+009, 44.00
54 Africa, 30065000, 7.8E+008, 53.00
55 "North America", 24256000, 4.8E+008, 23.00
56 "South America", 17819000, 3.4E+008, 12.00
57 Antarctica, 13209000, .00, .00
58 Europe, 9938000, 7.3E+008, 46.00
59 Australia/Oceania, 7687000, 31000000, 14.00
62 AT_CHECK([pspp -O format=csv save.sps])
63 AT_CHECK([test -f cont.sav])
65 dnl case_size is a 4-byte field at offset 68.
66 dnl Make a new copy with its value changed to -1.
68 [(dd if=cont.sav bs=1 count=68;
69 printf '\377\377\377\377';
70 dd if=cont.sav bs=1 skip=72) > cont2.sav], [0], [], [ignore])
71 AT_CHECK([cmp cont.sav cont2.sav], [1],
72 [cont.sav cont2.sav differ: char 69, line 1
75 AT_DATA([get.sps], [dnl
80 AT_CHECK([pspp -o pspp.csv get.sps])
81 AT_CHECK([cat pspp.csv], [0], [dnl
82 Variable,Label,,Position
83 cont,continents of the world,,1
86 count,number of countries,,4
90 Asia ,44579000,3.7E+009,44.00
91 Africa ,30065000,7.8E+008,53.00
92 North America ,24256000,4.8E+008,23.00
93 South America ,17819000,3.4E+008,12.00
94 Antarctica ,13209000,.00,.00
95 Europe ,9938000,7.3E+008,46.00
96 Australia/Oceania ,7687000,31000000,14.00
100 AT_SETUP([write v2 system file])
102 AT_DATA([sysfile.sps], [dnl
103 DATA LIST LIST NOTABLE / X * variable001 * variable002 * variable003 * .
115 SAVE /OUTFILE='foo.sav'
123 AT_CHECK([pspp -O format=csv sysfile.sps], [0], [dnl
125 x,variable,variab_a,variab_b
135 dnl Ensure that the written file has no long name table
136 AT_CHECK([grep 'X=X' foo.sav], [1], [ignore-nolog])