mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Add a test case for overlapping IF/ENDC and REPT/ENDR
This trips an asserton in the Rust rewrite because of its different conditional stack design
This commit is contained in:
4
test/asm/misleading-indentation.asm
Normal file
4
test/asm/misleading-indentation.asm
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
IF 1
|
||||||
|
REPT 1
|
||||||
|
ENDC ; misleading indentation!
|
||||||
|
ENDR
|
||||||
2
test/asm/misleading-indentation.err
Normal file
2
test/asm/misleading-indentation.err
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
FATAL: Found `ENDC` outside of a conditional (not after an `IF`/`ELIF`/`ELSE` block)
|
||||||
|
at misleading-indentation.asm::REPT~1(3) <- misleading-indentation.asm(2)
|
||||||
@@ -62,7 +62,7 @@ fi
|
|||||||
|
|
||||||
for i in *.asm notexist.asm; do
|
for i in *.asm notexist.asm; do
|
||||||
flags=${i%.asm}.flags
|
flags=${i%.asm}.flags
|
||||||
RGBASMFLAGS="-Weverything -B collapse"
|
RGBASMFLAGS="-Weverything -Bcollapse"
|
||||||
if [ -f "$flags" ]; then
|
if [ -f "$flags" ]; then
|
||||||
RGBASMFLAGS="$RGBASMFLAGS $(head -n 1 "$flags")" # Allow other lines to serve as comments
|
RGBASMFLAGS="$RGBASMFLAGS $(head -n 1 "$flags")" # Allow other lines to serve as comments
|
||||||
fi
|
fi
|
||||||
@@ -163,7 +163,7 @@ done
|
|||||||
# These tests do their own thing
|
# These tests do their own thing
|
||||||
|
|
||||||
i="continues-after-missing-include"
|
i="continues-after-missing-include"
|
||||||
RGBASMFLAGS="-Weverything -B collapse -M - -MG -MC"
|
RGBASMFLAGS="-Weverything -Bcollapse -M - -MG -MC"
|
||||||
# Piping the .asm file to rgbasm would not make sense for dependency generation,
|
# Piping the .asm file to rgbasm would not make sense for dependency generation,
|
||||||
# so just test the normal variant
|
# so just test the normal variant
|
||||||
(( tests++ ))
|
(( tests++ ))
|
||||||
@@ -193,9 +193,9 @@ i="state-file"
|
|||||||
if which cygpath &>/dev/null; then
|
if which cygpath &>/dev/null; then
|
||||||
# MinGW translates path names before passing them as command-line arguments,
|
# MinGW translates path names before passing them as command-line arguments,
|
||||||
# but does not do so when they are prefixed, so we have to do it ourselves.
|
# but does not do so when they are prefixed, so we have to do it ourselves.
|
||||||
RGBASMFLAGS="-Weverything -B collapse -s all:$(cygpath -w "$o")"
|
RGBASMFLAGS="-Weverything -Bcollapse -s all:$(cygpath -w "$o")"
|
||||||
else
|
else
|
||||||
RGBASMFLAGS="-Weverything -B collapse -s all:$o"
|
RGBASMFLAGS="-Weverything -Bcollapse -s all:$o"
|
||||||
fi
|
fi
|
||||||
for variant in '' '.pipe'; do
|
for variant in '' '.pipe'; do
|
||||||
(( tests++ ))
|
(( tests++ ))
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ tryCmpRomSize () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
rgblinkQuiet () {
|
rgblinkQuiet () {
|
||||||
out="$(env "$RGBLINK" -Weverything -B collapse "$@")" || return $?
|
out="$(env "$RGBLINK" -Weverything -Bcollapse "$@")" || return $?
|
||||||
if [[ -n "$out" ]]; then
|
if [[ -n "$out" ]]; then
|
||||||
echo "$bold${red}Linking shouldn't produce anything on stdout!${rescolors}${resbold}"
|
echo "$bold${red}Linking shouldn't produce anything on stdout!${rescolors}${resbold}"
|
||||||
false
|
false
|
||||||
@@ -266,8 +266,8 @@ evaluateTest
|
|||||||
test="pipeline"
|
test="pipeline"
|
||||||
startTest
|
startTest
|
||||||
continueTest
|
continueTest
|
||||||
("$RGBASM" -Weverything -B collapse -o - - | \
|
("$RGBASM" -Weverything -Bcollapse -o - - | \
|
||||||
"$RGBLINK" -Weverything -B collapse -o - - | \
|
"$RGBLINK" -Weverything -Bcollapse -o - - | \
|
||||||
"$RGBFIX" -Weverything -v -p 0xff -) < "$test"/a.asm > "$gbtemp"
|
"$RGBFIX" -Weverything -v -p 0xff -) < "$test"/a.asm > "$gbtemp"
|
||||||
# This test does not trim its output with 'dd' because it needs to verify the correct output size
|
# This test does not trim its output with 'dd' because it needs to verify the correct output size
|
||||||
tryCmp "$test"/out.gb "$gbtemp"
|
tryCmp "$test"/out.gb "$gbtemp"
|
||||||
|
|||||||
Reference in New Issue
Block a user