From 89ca6a325cbf286088cb688c62aa105f5cb6d139 Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Sun, 20 Jul 2025 13:37:43 -0400 Subject: [PATCH] Increase parser test coverage --- foo.asm | 1 - foo.inc | 1 - test/asm/assert.asm | 6 +++--- test/asm/assert.err | 2 ++ test/asm/bad-precision.asm | 1 + test/asm/bad-precision.err | 3 +++ test/asm/elif-outside-if.asm | 1 + test/asm/elif-outside-if.err | 2 ++ test/asm/else-outside-if.asm | 1 + test/asm/else-outside-if.err | 2 ++ 10 files changed, 15 insertions(+), 5 deletions(-) delete mode 100644 foo.asm delete mode 100644 foo.inc create mode 100644 test/asm/bad-precision.asm create mode 100644 test/asm/bad-precision.err create mode 100644 test/asm/elif-outside-if.asm create mode 100644 test/asm/elif-outside-if.err create mode 100644 test/asm/else-outside-if.asm create mode 100644 test/asm/else-outside-if.err diff --git a/foo.asm b/foo.asm deleted file mode 100644 index db07d9e6..00000000 --- a/foo.asm +++ /dev/null @@ -1 +0,0 @@ -println x diff --git a/foo.inc b/foo.inc deleted file mode 100644 index 7b2bde30..00000000 --- a/foo.inc +++ /dev/null @@ -1 +0,0 @@ -def x = 42 diff --git a/test/asm/assert.asm b/test/asm/assert.asm index fe943e61..301a0544 100644 --- a/test/asm/assert.asm +++ b/test/asm/assert.asm @@ -3,10 +3,10 @@ SECTION "fixed", ROM0[0] FixedBase: assert FixedBase ; This should eval (and fail) at compile time - ds 0 - static_assert @ == 0, "@ ain't 0 now? (Hint: it's {@})" + ds 1 + static_assert @ - FixedBase == 0, "@ ain't 0 now? (Hint: it's {@})" - ds 42 + ds 41 assert WARN, @ - FixedBase != 42 ; This should also eval at compile time SECTION "floating", ROM0 diff --git a/test/asm/assert.err b/test/asm/assert.err index d44d1fd5..6c1c081b 100644 --- a/test/asm/assert.err +++ b/test/asm/assert.err @@ -1,5 +1,7 @@ error: assert.asm(4): Assertion failed +error: assert.asm(7): + Assertion failed: @ ain't 0 now? (Hint: it's $1) warning: assert.asm(10): [-Wassert] Assertion failed error: assert.asm(18): diff --git a/test/asm/bad-precision.asm b/test/asm/bad-precision.asm new file mode 100644 index 00000000..79f47a3d --- /dev/null +++ b/test/asm/bad-precision.asm @@ -0,0 +1 @@ +assert round(3.6, 42) == 4.0 diff --git a/test/asm/bad-precision.err b/test/asm/bad-precision.err new file mode 100644 index 00000000..c60b6bc4 --- /dev/null +++ b/test/asm/bad-precision.err @@ -0,0 +1,3 @@ +error: bad-precision.asm(1): + Fixed-point precision must be between 1 and 31, not 42 +Assembly aborted with 1 error! diff --git a/test/asm/elif-outside-if.asm b/test/asm/elif-outside-if.asm new file mode 100644 index 00000000..67a242a6 --- /dev/null +++ b/test/asm/elif-outside-if.asm @@ -0,0 +1 @@ +ELIF 1 diff --git a/test/asm/elif-outside-if.err b/test/asm/elif-outside-if.err new file mode 100644 index 00000000..ff47a5f0 --- /dev/null +++ b/test/asm/elif-outside-if.err @@ -0,0 +1,2 @@ +FATAL: elif-outside-if.asm(1): + Found ELIF outside of an IF construct diff --git a/test/asm/else-outside-if.asm b/test/asm/else-outside-if.asm new file mode 100644 index 00000000..6006e3c2 --- /dev/null +++ b/test/asm/else-outside-if.asm @@ -0,0 +1 @@ +ELSE diff --git a/test/asm/else-outside-if.err b/test/asm/else-outside-if.err new file mode 100644 index 00000000..d60d5aaf --- /dev/null +++ b/test/asm/else-outside-if.err @@ -0,0 +1,2 @@ +FATAL: else-outside-if.asm(1): + Found ELSE outside of an IF construct