Skip to content

Commit 263a35a

Browse files
committed
Say how many bytes the assertion macros expected vs got
1 parent 1eb6f61 commit 263a35a

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

macros/asserts.asm

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,19 @@ MACRO table_width
2727
ENDM
2828

2929
MACRO assert_table_length
30-
DEF x = \1
31-
ASSERT x * CURRENT_TABLE_WIDTH == @ - {CURRENT_TABLE_START}, \
32-
"{CURRENT_TABLE_START}: expected {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes"
30+
DEF w = \1
31+
DEF x = w * CURRENT_TABLE_WIDTH
32+
DEF y = @ - {CURRENT_TABLE_START}
33+
ASSERT x == y, "{CURRENT_TABLE_START}: expected {d:w} entries, each {d:CURRENT_TABLE_WIDTH} " ++ \
34+
"bytes, for {d:x} total; but got {d:y} bytes"
3335
ENDM
3436

3537
MACRO assert_max_table_length
36-
DEF x = \1
37-
ASSERT x * CURRENT_TABLE_WIDTH >= @ - {CURRENT_TABLE_START}, \
38-
"{CURRENT_TABLE_START}: expected a maximum of {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes"
38+
DEF w = \1
39+
DEF x = w * CURRENT_TABLE_WIDTH
40+
DEF y = @ - {CURRENT_TABLE_START}
41+
ASSERT x >= y, "{CURRENT_TABLE_START}: expected a maximum of {d:w} entries, each " ++ \
42+
"{d:CURRENT_TABLE_WIDTH} bytes, for maximum {d:x} total; but got {d:y} bytes"
3943
ENDM
4044

4145
MACRO list_start
@@ -134,12 +138,13 @@ MACRO def_grass_wildmons
134138
ENDM
135139

136140
MACRO end_grass_wildmons
141+
DEF x = @ - {CURRENT_GRASS_WILDMONS_LABEL}
137142
IF CURRENT_GRASS_WILDMONS_RATE == 0
138-
ASSERT 1 == @ - {CURRENT_GRASS_WILDMONS_LABEL}, \
139-
"def_grass_wildmons {d:CURRENT_GRASS_WILDMONS_RATE}: expected 1 byte"
143+
ASSERT 1 == x, \
144+
"def_grass_wildmons {d:CURRENT_GRASS_WILDMONS_RATE}: expected 1 byte, got {d:x}"
140145
ELSE
141-
ASSERT WILDDATA_LENGTH == @ - {CURRENT_GRASS_WILDMONS_LABEL}, \
142-
"def_grass_wildmons {d:CURRENT_GRASS_WILDMONS_RATE}: expected {d:WILDDATA_LENGTH} bytes"
146+
ASSERT WILDDATA_LENGTH == x, \
147+
"def_grass_wildmons {d:CURRENT_GRASS_WILDMONS_RATE}: expected {d:WILDDATA_LENGTH} bytes, got {d:x}"
143148
ENDC
144149
ENDM
145150

@@ -152,11 +157,12 @@ MACRO def_water_wildmons
152157
ENDM
153158

154159
MACRO end_water_wildmons
160+
DEF x = @ - {CURRENT_WATER_WILDMONS_LABEL}
155161
IF CURRENT_WATER_WILDMONS_RATE == 0
156-
ASSERT 1 == @ - {CURRENT_WATER_WILDMONS_LABEL}, \
157-
"def_water_wildmons {d:CURRENT_WATER_WILDMONS_RATE}: expected 1 byte"
162+
ASSERT 1 == x, \
163+
"def_water_wildmons {d:CURRENT_WATER_WILDMONS_RATE}: expected 1 byte, got {d:x}"
158164
ELSE
159-
ASSERT WILDDATA_LENGTH == @ - {CURRENT_WATER_WILDMONS_LABEL}, \
160-
"def_water_wildmons {d:CURRENT_WATER_WILDMONS_RATE}: expected {d:WILDDATA_LENGTH} bytes"
165+
ASSERT WILDDATA_LENGTH == x, \
166+
"def_water_wildmons {d:CURRENT_WATER_WILDMONS_RATE}: expected {d:WILDDATA_LENGTH} bytes, got {d:x}"
161167
ENDC
162168
ENDM

0 commit comments

Comments
 (0)