# Test script for Language::Basic. # Uses tools from testbasic.pl, which allow it to run under Test::Harness # $code is a BASIC program, $expected is its expected output (including \n's!) # Call &setup_test for each $code,$expected pair. # Then call &perform_tests at the end. # Include subs push @INC, "t"; do 'testbasic.pl'; my ($code, $expected); # one program & its expected outpt # Use single quotes because of "$" et al. $code =<<'ENDCODE'; 25 REM IF with THEN but no else 30 if 2>1 then print "Not "; 40 print "Incorrect"; 50 print " IF with THEN" ENDCODE $expected = "Not Incorrect IF with THEN\n"; &setup_test($code, $expected); $code =<<'ENDCODE'; 5 REM IF with THEN and ELSE 10 if 2>1 then print "Correct"; else print "Incorrect"; 20 print " IF with THEN/ELSE" ENDCODE $expected = "Correct IF with THEN/ELSE\n"; &setup_test($code, $expected); $code =<<'ENDCODE'; 10 REM implied goto 20 if 2>1 then 40 30 print "Incorrect"; 35 goto 50 40 print "Correct"; 45 print " and "; 50 if 1>2 then goto 110 else 90 70 print "not "; 90 print "correct implied goto" 100 end 110 print "If we got here, there's a problem with IF" ENDCODE $expected = "Correct and correct implied goto\n"; &setup_test($code, $expected); &perform_tests;