CLOSE FILE HANDLE: Fix bugs and add test.
[pspp] / tests / language / commands / file-handle.at
index 74989ba490e6cc7b4b95ccd5ee26c52dc0427d83..5088a3fb7f4aee8c6f2863dc69aa50fb21ebfd08 100644 (file)
@@ -145,4 +145,75 @@ AT_CHECK([pspp --testing-mode -O format=csv insert.sps], [1], [dnl
    20 | FILE HANDLE y/NAME='x.txt'/MODE=FIXED.
       |                                 ^~~~~"
 ])
-AT_CLEANUP
\ No newline at end of file
+AT_CLEANUP
+
+AT_SETUP([CLOSE FILE HANDLE])
+AT_DATA([wiggle.txt], [dnl
+1
+2
+5
+109
+])
+AT_DATA([wobble.txt], [dnl
+7
+8
+9
+])
+AT_DATA([file-handle.sps], [dnl
+FILE HANDLE myhandle /NAME='wiggle.txt'.
+DATA LIST LIST FILE=myhandle /x *.
+LIST.
+
+CLOSE FILE HANDLE myhandle.
+
+FILE HANDLE myhandle /NAME='wobble.txt'.
+DATA LIST LIST FILE=myhandle /x *.
+LIST.
+])
+AT_CHECK([pspp -O format=csv file-handle.sps], [0], [dnl
+Table: Reading free-form data from myhandle.
+Variable,Format
+x,F8.0
+
+Table: Data List
+x
+1.00
+2.00
+5.00
+109.00
+
+Table: Reading free-form data from myhandle.
+Variable,Format
+x,F8.0
+
+Table: Data List
+x
+7.00
+8.00
+9.00
+])
+AT_CLEANUP
+
+AT_SETUP([CLOSE FILE HANDLE syntax errors])
+AT_DATA([wiggle.txt], [dnl
+1
+2
+5
+109
+])
+AT_DATA([file-handle.sps], [dnl
+FILE HANDLE myhandle /NAME='wiggle.txt'.
+CLOSE FILE HANDLE myhandle **.
+CLOSE FILE HANDLE myhandle.
+CLOSE FILE HANDLE myhandle.
+CLOSE FILE HANDLE **.
+])
+AT_DATA([insert.sps], [dnl
+INSERT FILE='file-handle.sps' ERROR=IGNORE.
+])
+AT_CHECK([pspp -O format=csv insert.sps], [1], [dnl
+"insert.sps:1.37-1.42: error: INSERT: Syntax error expecting CONTINUE or STOP.
+    1 | INSERT FILE='file-handle.sps' ERROR=IGNORE.
+      |                                     ^~~~~~"
+])
+AT_CLEANUP