()
| 3873 | |
| 3874 | #[test] |
| 3875 | fn test_if_errors() { |
| 3876 | do_error_test("IF\n", "1:3: No expression in IF statement"); |
| 3877 | do_error_test("IF 3 + 1", "1:9: No THEN in IF statement"); |
| 3878 | do_error_test("IF 3 + 1\n", "1:9: No THEN in IF statement"); |
| 3879 | do_error_test("IF 3 + 1 PRINT foo\n", "1:10: Unexpected value in expression"); |
| 3880 | do_error_test("IF 3 + 1\nPRINT foo\n", "1:9: No THEN in IF statement"); |
| 3881 | do_error_test("IF 3 + 1 THEN", "1:1: IF without END IF"); |
| 3882 | |
| 3883 | do_error_test("IF 1 THEN\n", "1:1: IF without END IF"); |
| 3884 | do_error_test("IF 1 THEN\nELSEIF 1 THEN\n", "1:1: IF without END IF"); |
| 3885 | do_error_test("IF 1 THEN\nELSE\n", "1:1: IF without END IF"); |
| 3886 | do_error_test("REM\n IF 1 THEN\n", "2:4: IF without END IF"); |
| 3887 | |
| 3888 | do_error_test("IF 1 THEN\nELSEIF\n", "2:7: No expression in ELSEIF statement"); |
| 3889 | do_error_test("IF 1 THEN\nELSEIF 3 + 1", "2:13: No THEN in ELSEIF statement"); |
| 3890 | do_error_test("IF 1 THEN\nELSEIF 3 + 1\n", "2:13: No THEN in ELSEIF statement"); |
| 3891 | do_error_test( |
| 3892 | "IF 1 THEN\nELSEIF 3 + 1 PRINT foo\n", |
| 3893 | "2:14: Unexpected value in expression", |
| 3894 | ); |
| 3895 | do_error_test("IF 1 THEN\nELSEIF 3 + 1\nPRINT foo\n", "2:13: No THEN in ELSEIF statement"); |
| 3896 | do_error_test("IF 1 THEN\nELSEIF 3 + 1 THEN", "2:18: Expecting newline after THEN"); |
| 3897 | |
| 3898 | do_error_test("IF 1 THEN\nELSE", "2:5: Expecting newline after ELSE"); |
| 3899 | do_error_test("IF 1 THEN\nELSE foo", "2:6: Expecting newline after ELSE"); |
| 3900 | |
| 3901 | do_error_test("IF 1 THEN\nEND", "1:1: IF without END IF"); |
| 3902 | do_error_test("IF 1 THEN\nEND\n", "1:1: IF without END IF"); |
| 3903 | do_error_test("IF 1 THEN\nEND IF foo", "2:8: Expected newline but found foo"); |
| 3904 | do_error_test("IF 1 THEN\nEND SELECT\n", "2:1: END SELECT without SELECT"); |
| 3905 | do_error_test("IF 1 THEN\nEND SELECT\nEND IF\n", "2:1: END SELECT without SELECT"); |
| 3906 | |
| 3907 | do_error_test( |
| 3908 | "IF 1 THEN\nELSE\nELSEIF 2 THEN\nEND IF", |
| 3909 | "3:1: Unexpected ELSEIF after ELSE", |
| 3910 | ); |
| 3911 | do_error_test("IF 1 THEN\nELSE\nELSE\nEND IF", "3:1: Duplicate ELSE after ELSE"); |
| 3912 | |
| 3913 | do_error_test_no_reset("ELSEIF 1 THEN\nEND IF", "1:1: Unexpected ELSEIF in statement"); |
| 3914 | do_error_test_no_reset("ELSE 1\nEND IF", "1:1: Unexpected ELSE in statement"); |
| 3915 | |
| 3916 | do_error_test("IF 1 THEN\nEND 3 IF", "2:7: Unexpected keyword in expression"); |
| 3917 | do_error_test("END 3 IF", "1:7: Unexpected keyword in expression"); |
| 3918 | do_error_test("END IF", "1:1: END IF without IF"); |
| 3919 | |
| 3920 | do_error_test("IF TRUE THEN PRINT ELSE ELSE", "1:25: Unexpected ELSE in uniline IF branch"); |
| 3921 | } |
| 3922 | |
| 3923 | #[test] |
| 3924 | fn test_if_uniline_then() { |
nothing calls this directly
no test coverage detected