1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
AT_BANNER([INSERT])
dnl Create a file "batch.sps" that is valid syntax only in batch mode.
m4_define([CREATE_BATCH_SPS],
[AT_DATA([batch.sps], [dnl
input program
loop #i = 1 to 5
+ compute z = #i
+ end case
end loop
end file
end input program
])])
AT_SETUP([INSERT SYNTAX=INTERACTIVE])
CREATE_BATCH_SPS
AT_DATA([insert.sps], [dnl
INSERT
FILE='batch.sps'
SYNTAX=interactive.
LIST.
])
AT_CHECK([pspp -o pspp.csv insert.sps], [1], [dnl
batch.sps:2.1-2.4: error: INPUT PROGRAM: Syntax error at `loop': expecting end of command.
batch.sps:3: error: COMPUTE: COMPUTE is allowed only after the active dataset has been defined or inside INPUT PROGRAM.
batch.sps:4: error: END CASE: END CASE is allowed only inside INPUT PROGRAM.
insert.sps:4: error: LIST: LIST is allowed only after the active dataset has been defined.
])
AT_CLEANUP
AT_SETUP([INSERT SYNTAX=BATCH])
CREATE_BATCH_SPS
AT_DATA([insert.sps], [dnl
INSERT
FILE='batch.sps'
SYNTAX=BATCH.
LIST.
])
AT_CHECK([pspp -o pspp.csv insert.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
Table: Data List
z
1.00
2.00
3.00
4.00
5.00
])
AT_CLEANUP
AT_SETUP([INSERT CD=NO])
AT_DATA([insert.sps], [INSERT FILE='Dir1/foo.sps'.
LIST.
])
mkdir Dir1
AT_DATA([Dir1/foo.sps], [INSERT FILE='bar.sps' CD=NO.
])
AT_DATA([Dir1/bar.sps],
[DATA LIST LIST /x *.
BEGIN DATA.
1
2
3
END DATA.
])
AT_CHECK([pspp -o pspp.csv insert.sps], [1], [dnl
Dir1/foo.sps:1: error: INSERT: Can't find `bar.sps' in include file search path.
insert.sps:2: error: LIST: LIST is allowed only after the active dataset has been defined.
])
AT_CLEANUP
AT_SETUP([INSERT CD=YES])
AT_DATA([insert.sps], [INSERT FILE='Dir1/foo.sps' CD=YES.
LIST.
])
mkdir Dir1
AT_DATA([Dir1/foo.sps], [INSERT FILE='bar.sps'.
])
AT_DATA([Dir1/bar.sps],
[DATA LIST LIST /x *.
BEGIN DATA.
1
2
3
END DATA.
])
AT_CHECK([pspp -o pspp.csv insert.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
Table: Reading free-form data from INLINE.
Variable,Format
x,F8.0
Table: Data List
x
1.00
2.00
3.00
])
AT_CLEANUP
m4_define([CREATE_ERROR_SPS],
[AT_DATA([error.sps], [dnl
DATA LIST NOTABLE LIST /x *.
BEGIN DATA.
1
2
3
END DATA.
* The following line is erroneous
DISPLAY AKSDJ.
LIST.
])])
AT_SETUP([INSERT ERROR=STOP])
CREATE_ERROR_SPS
AT_DATA([insert.sps], [INSERT FILE='error.sps' ERROR=STOP.
])
AT_CHECK([pspp -o pspp.csv insert.sps], [1], [dnl
error.sps:10: error: DISPLAY: AKSDJ is not a variable name.
warning: Error encountered while ERROR=STOP is effective.
])
AT_CLEANUP
AT_SETUP([INSERT ERROR=CONTINUE])
CREATE_ERROR_SPS
AT_DATA([insert.sps], [INSERT FILE='error.sps' ERROR=CONTINUE.
])
AT_CHECK([pspp -o pspp.csv insert.sps], [1], [dnl
error.sps:10: error: DISPLAY: AKSDJ is not a variable name.
])
AT_CHECK([cat pspp.csv], [0], [dnl
error.sps:10: error: DISPLAY: AKSDJ is not a variable name.
Table: Data List
x
1.00
2.00
3.00
])
AT_CLEANUP
dnl Test for regression against bug #24569 in which PSPP crashed
dnl upon attempt to insert a nonexistent file.
AT_SETUP([INSERT nonexistent file])
AT_DATA([insert.sps], [dnl
INSERT
FILE='nonexistent'
ERROR=CONTINUE.
.
LIST.
])
AT_CHECK([pspp -O format=csv insert.sps], [1], [dnl
insert.sps:2: error: INSERT: Can't find `nonexistent' in include file search path.
insert.sps:6: error: LIST: LIST is allowed only after the active dataset has been defined.
])
AT_CLEANUP
|