2020f0a03446ccede4530c97f0477963e0993ac7
[pspp] / tests / data / por-file.at
1 AT_BANNER([portable files])
2
3 AT_SETUP([overwriting portable file])
4 AT_DATA([output.por], [abcdef
5 ])
6 cp output.por output.por.backup
7 AT_DATA([porfile.sps], [dnl
8 DATA LIST NOTABLE/x 1.
9 BEGIN DATA.
10 5
11 END DATA.
12 EXPORT OUTFILE='output.por'.
13 ])
14 AT_CHECK([pspp -O format=csv porfile.sps])
15 AT_CHECK([cmp output.por output.por.backup], [1], [ignore])
16 AT_CLEANUP
17
18 AT_SETUP([overwriting portable file atomically])
19 AT_DATA([output.por], [abcdef
20 ])
21 cp output.por output.por.backup
22 AT_DATA([porfile.sps],
23 [[DATA LIST NOTABLE/x 1.
24 BEGIN DATA.
25 5
26 END DATA.
27 XEXPORT OUTFILE='output.por'.
28 HOST COMMAND=['kill -TERM $PPID'].
29 ]])
30 AT_CHECK([pspp -O format=csv porfile.sps], [143], [], [ignore])
31 AT_CHECK([cmp output.por output.por.backup])
32 AT_CHECK(
33   [for file in *.tmp*; do if test -e $file; then echo $file; exit 1; fi; done])
34 AT_CLEANUP
35
36 AT_SETUP([write to same portable file being read])
37 AT_DATA([export.sps], [dnl
38 DATA LIST NOTABLE/x 1.
39 BEGIN DATA.
40 2
41 END DATA.
42 EXPORT OUTFILE='data.por'.
43 ])
44 AT_CHECK([pspp -O format=csv export.sps])
45 AT_CHECK([test -s data.por])
46 AT_CHECK(
47   [for file in *.tmp*; do if test -e $file; then echo $file; exit 1; fi; done])
48 AT_DATA([export2.sps], [dnl
49 IMPORT FILE='data.por'.
50 COMPUTE y = x * 2.
51 EXPORT OUTFILE='data.por'.
52 ])
53 AT_CHECK([pspp -O format=csv export2.sps])
54 AT_CHECK(
55   [for file in *.tmp*; do if test -e $file; then echo $file; exit 1; fi; done])
56 AT_DATA([export3.sps], [dnl
57 IMPORT FILE='data.por'.
58 LIST.
59 ])
60 AT_CHECK([pspp -O format=csv export3.sps], [0], [dnl
61 Table: Data List
62 X,Y
63 2,4.00
64 ])
65 AT_CLEANUP
66
67 dnl This checks for a bug in the portable file writer that caused an infinite
68 dnl loop in some cases, and other problems in other cases, when a variable
69 dnl had value labels.
70 AT_SETUP([write portable file with value labels])
71 AT_DATA([export.sps], [dnl
72 DATA LIST NOTABLE/var1 TO var5 1-5.
73 VALUE LABELS
74         /var1 1 'one'
75         /var2 2 'two'
76         /var3 3 'three'
77         /var4 4 'four'
78         /var5 5 'five'.
79 BEGIN DATA.
80 12345
81 END DATA.
82 EXPORT OUTFILE='data.por'.
83 ])
84 AT_CHECK([pspp -O format=csv export.sps])
85 AT_DATA([import.sps], [dnl
86 IMPORT FILE='data.por'.
87 DISPLAY DICTIONARY.
88 LIST.
89 ])
90 AT_CHECK([pspp -O format=csv import.sps], [0], [dnl
91 Variable,Description,,Position
92 VAR1,Format: F1.0,,1
93 ,Measure: Scale,,
94 ,Display Alignment: Right,,
95 ,Display Width: 8,,
96 ,1,one,
97 VAR2,Format: F1.0,,2
98 ,Measure: Scale,,
99 ,Display Alignment: Right,,
100 ,Display Width: 8,,
101 ,2,two,
102 VAR3,Format: F1.0,,3
103 ,Measure: Scale,,
104 ,Display Alignment: Right,,
105 ,Display Width: 8,,
106 ,3,three,
107 VAR4,Format: F1.0,,4
108 ,Measure: Scale,,
109 ,Display Alignment: Right,,
110 ,Display Width: 8,,
111 ,4,four,
112 VAR5,Format: F1.0,,5
113 ,Measure: Scale,,
114 ,Display Alignment: Right,,
115 ,Display Width: 8,,
116 ,5,five,
117
118 Table: Data List
119 VAR1,VAR2,VAR3,VAR4,VAR5
120 1,2,3,4,5
121 ])
122 AT_CLEANUP