X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fdata-io%2Finpt-pgm.at;h=f5498855a75ea63365540ca45a00d71e7bcf8f87;hb=d7ab350db46e9e410119723b14a6f2783279bd2a;hp=03f9a2a5108def99ab98bee502287d58631f316c;hpb=92e42986429596633f71457a585b3266209822dd;p=pspp diff --git a/tests/language/data-io/inpt-pgm.at b/tests/language/data-io/inpt-pgm.at index 03f9a2a510..f5498855a7 100644 --- a/tests/language/data-io/inpt-pgm.at +++ b/tests/language/data-io/inpt-pgm.at @@ -31,3 +31,52 @@ AT_CHECK([pspp -O format=csv input-program.sps], [1], [dnl error: DESCRIPTIVES: Syntax error at end of input: expecting BEGIN. ]) AT_CLEANUP + +dnl Tests for bug #38782, an infinite loop processing an empty input program. +AT_SETUP([INPUT PROGRAM infinite loop]) +AT_DATA([input-program.sps], [dnl +INPUT PROGRAM. +STRING firstname lastname (a24) / address (a80). +END INPUT PROGRAM. +EXECUTE. +]) +AT_CHECK([pspp -O format=csv input-program.sps], [1], [dnl +input-program.sps:3: error: Input program must contain DATA LIST or END FILE. + +input-program.sps:4: error: EXECUTE: EXECUTE is allowed only after the active dataset has been defined. +]) +AT_CLEANUP + +dnl Tests for bug #39097, a bug when an INPUT PROGRAM used VECTOR, was +dnl followed immediately by a call to proc_execute() (here via DATASET +dnl COPY), and then the input was actually used. +AT_SETUP([INPUT PROGRAM with VECTOR and EXECUTE]) +AT_DATA([input-program.sps], [dnl +INPUT PROGRAM. +VECTOR vec(5). +LOOP #c = 1 to 10. + LOOP #v = 1 to 5. + COMPUTE vec(#v) = #v. + END LOOP. + END CASE. +END LOOP. +END FILE. +END INPUT PROGRAM. +DATASET COPY x. +LIST. +]) +AT_CHECK([pspp -O format=csv input-program.sps], [0], [dnl +Table: Data List +vec1,vec2,vec3,vec4,vec5 +1.00,2.00,3.00,4.00,5.00 +1.00,2.00,3.00,4.00,5.00 +1.00,2.00,3.00,4.00,5.00 +1.00,2.00,3.00,4.00,5.00 +1.00,2.00,3.00,4.00,5.00 +1.00,2.00,3.00,4.00,5.00 +1.00,2.00,3.00,4.00,5.00 +1.00,2.00,3.00,4.00,5.00 +1.00,2.00,3.00,4.00,5.00 +1.00,2.00,3.00,4.00,5.00 +]) +AT_CLEANUP