1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 dnl GNU General Public License for more details.
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
17 AT_BANNER([DATASET commands])
19 AT_SETUP([DATASET COPY])
20 AT_DATA([dataset.pspp], [dnl
22 DATA LIST NOTABLE /x 1.
34 DATA LIST NOTABLE /y 1.
43 DATASET ACTIVATE clone.
47 DATASET ACTIVATE initial.
54 DATASET ACTIVATE clone.
59 DATASET CLOSE initial.
62 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
71 initial (active dataset)
74 clone (active dataset)
87 initial (active dataset)
102 unnamed dataset (active dataset)
106 unnamed dataset (active dataset)
110 AT_SETUP([DATASET DECLARE])
111 AT_DATA([dataset.pspp], [dnl
112 DATASET DECLARE second.
114 DATA LIST NOTABLE/x 1.
119 DATASET ACTIVATE second.
123 AT_CHECK([pspp -O format=csv dataset.pspp], [1], [dnl
125 unnamed dataset (active dataset)
133 second (active dataset)
135 "dataset.pspp:10.1-10.4: error: LIST: LIST is allowed only after the active dataset has been defined.
141 AT_SETUP([DATASET NAME deletes duplicate name])
142 AT_DATA([dataset.pspp], [dnl
152 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
163 AT_SETUP([DATASET ACTIVATE deletes unnamed dataset])
164 AT_DATA([dataset.pspp], [dnl
171 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
173 unnamed dataset (active dataset)
181 AT_SETUP([DATASET ACTIVATE executes pending transformations])
182 AT_DATA([dataset.pspp], [dnl
184 DATASET DECLARE another.
187 DATA LIST NOTABLE /x 1.
189 DATASET ACTIVATE another.
200 DATASET ACTIVATE one.
203 AT_CHECK([pspp -O format=csv dataset.pspp], [1], [dnl
218 "dataset.pspp:16.1-16.4: error: LIST: LIST is allowed only after the active dataset has been defined.
232 AT_SETUP([DATASET CLOSE])
233 AT_DATA([dataset.pspp], [dnl
248 DATASET DECLARE that.
249 DATASET DECLARE theother.
250 DATASET DECLARE yetanother.
256 DATASET DECLARE that.
257 DATASET DECLARE theother.
258 DATASET DECLARE yetanother.
263 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
265 unnamed dataset (active dataset)
268 unnamed dataset (active dataset)
271 this (active dataset)
274 unnamed dataset (active dataset)
277 this (active dataset)
280 unnamed dataset (active dataset)
283 unnamed dataset (active dataset)
289 unnamed dataset (active dataset)
294 this (active dataset)
298 unnamed dataset (active dataset)
304 dnl The bug for which the following test checks, is apparent only
305 dnl when compiled with -fsanitize=address or run under valgrind
306 AT_SETUP([DATASET heap overflow])
307 AT_DATA([dataset.pspp], [dnl
308 DATASET DECLARE initial.
318 DATASET ACTIVATE subsq.
323 AT_CHECK([pspp -O format=csv dataset.pspp], [0], [dnl
324 Table: Reading 1 record from INLINE.
325 Variable,Record,Columns,Format
328 Table: Reading 1 record from INLINE.
329 Variable,Record,Columns,Format
335 AT_SETUP([DATASET syntax errors])
336 AT_DATA([dataset.sps], [dnl
338 DATASET NAME xyzzy WINDOW **.
342 DATASET ACTIVATE xyzzy WINDOW **.
345 DATASET COPY quux WINDOW **.
348 DATASET DECLARE foo WINDOW **.
352 AT_CHECK([pspp dataset.sps], [1], [dnl
353 dataset.sps:1.14-1.15: error: DATASET NAME: Syntax error expecting identifier.
357 dataset.sps:2.27-2.28: error: DATASET NAME: Syntax error expecting ASIS or
359 2 | DATASET NAME xyzzy WINDOW **.
362 dataset.sps:5.18-5.19: error: DATASET ACTIVATE: Syntax error expecting
364 5 | DATASET ACTIVATE **.
367 dataset.sps:6.31-6.32: error: DATASET ACTIVATE: Syntax error expecting ASIS or
369 6 | DATASET ACTIVATE xyzzy WINDOW **.
372 dataset.sps:8.14-8.15: error: DATASET COPY: Syntax error expecting identifier.
376 dataset.sps:9.26-9.27: error: DATASET COPY: Syntax error expecting MINIMIZED,
378 9 | DATASET COPY quux WINDOW **.
381 dataset.sps:11.17-11.18: error: DATASET DECLARE: Syntax error expecting
383 11 | DATASET DECLARE **.
386 dataset.sps:12.28-12.29: error: DATASET DECLARE: Syntax error expecting
387 MINIMIZED, FRONT, or HIDDEN.
388 12 | DATASET DECLARE foo WINDOW **.
391 dataset.sps:14.15-14.16: error: DATASET CLOSE: Syntax error expecting
393 14 | DATASET CLOSE **.