READ negative tests
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 6 Nov 2021 18:42:26 +0000 (11:42 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 6 Nov 2021 18:42:26 +0000 (11:42 -0700)
src/language/stats/matrix.c
tests/language/stats/matrix.at

index ab58a51104955e97f5fe04aa1b26a071a9b2b072..28ad99ba12241eb31f81fef526c32dfc47f362b9 100644 (file)
@@ -4630,6 +4630,7 @@ matrix_parse_read (struct matrix_state *s)
       else if (lex_match_id (s->lexer, "SIZE"))
         {
           lex_match (s->lexer, T_EQUALS);
+          matrix_expr_destroy (read->size);
           read->size = matrix_parse_exp (s);
           if (!read->size)
             goto error;
index 154231ed3b863b3332044fc44c18dfebf5fdd74f..9b86dc874bf2fcaaa3ecaec5cd2031837a5acfdb 100644 (file)
@@ -2601,3 +2601,34 @@ y
   41  43  47  53
 ])
 AT_CLEANUP
+
+AT_SETUP([MATRIX - READ - negative])
+AT_DATA([matrix.sps], [dnl
+MATRIX.
+READ ().
+READ x/FILE=().
+READ x/ENCODING=().
+READ x/FIELD=().
+READ x/FIELD=1 ().
+READ x/FIELD=1 TO ().
+READ x/FIELD=1 TO 0.
+READ x/FIELD=1 TO 10 BY ().
+READ x/FIELD=1 TO 10 BY 6.
+READ x/SIZE=().
+READ x/MODE=().
+READ x/FORMAT=().
+READ x/FORMAT=F8.2/FORMAT=F8.2.
+READ x/FORMAT='5XYZZY'.
+READ x/FORMAT=XYZZY.
+READ x/().
+READ x.
+READ x/FIELD=1 TO 10.
+READ x/FIELD=1 TO 10/SIZE={1,2}.
+READ x/FIELD=1 TO 10/SIZE={1,2}/FILE='xyzzy.txt'/FORMAT='15F'.
+READ x/FIELD=1 TO 10 BY 2/SIZE={1,2}/FILE='xyzzy.txt'/FORMAT=F5.
+READ x/FIELD=1 TO 10 BY 2/SIZE={1,2}/FILE='xyzzy.txt'/FORMAT='2F'.
+END MATRIX.
+])
+AT_CHECK([pspp matrix.sps], [0], [])
+AT_CLEANUP
+