ref: f7bc61e874ebde2e29dad4075ab3834d78998df6
parent: 8d5a53f52950638b4234ce411529ca45f04aad16
author: Jakub Kądziołka <kuba@kadziolka.net>
date: Wed Jun 5 16:48:27 EDT 2019
Automatic tests for input from stdin
--- /dev/null
+++ b/test/asm/divzero-instr.out.pipe
@@ -1,0 +1,2 @@
+ERROR: -(2):
+ Division by zero
--- /dev/null
+++ b/test/asm/divzero-section-bank.out.pipe
@@ -1,0 +1,4 @@
+ERROR: -(1):
+ Invalid integer constant
+ERROR: -(1):
+ Division by zero
--- /dev/null
+++ b/test/asm/label-redefinition.out.pipe
@@ -1,0 +1,3 @@
+ERROR: -(7):
+ 'Sym' already defined in m(6)
+error: Assembly aborted (1 errors)!
--- /dev/null
+++ b/test/asm/line-continuation.out.pipe
@@ -1,0 +1,2 @@
+ERROR: -(2) -> @(-1):
+ Macro '@' not defined
--- /dev/null
+++ b/test/asm/local-wrong-parent.out.pipe
@@ -1,0 +1,3 @@
+ERROR: -(5):
+ Not currently in the scope of 'WrongParent'
+error: Assembly aborted (1 errors)!
--- /dev/null
+++ b/test/asm/macro-@.out.pipe
@@ -1,0 +1,2 @@
+ERROR: -(1) -> @(-1):
+ Macro '@' not defined
--- /dev/null
+++ b/test/asm/null-in-macro.out.pipe
@@ -1,0 +1,2 @@
+ERROR: -(1):
+ Unterminated MACRO definition.
--- /dev/null
+++ b/test/asm/reference-undefined-sym.out.pipe
@@ -1,0 +1,3 @@
+ERROR: -(4):
+ 'X' already referenced at -(2)
+error: Assembly aborted (1 errors)!
--- /dev/null
+++ b/test/asm/remote-local-noexist.out.pipe
@@ -1,0 +1,2 @@
+ERROR: -(7):
+ 'Parent.child.fail' is a nonsensical reference to a nested local symbol
--- /dev/null
+++ b/test/asm/strlen.out.pipe
@@ -1,0 +1,2 @@
+$3
+$4
--- /dev/null
+++ b/test/asm/strsub.out.pipe
@@ -1,0 +1,31 @@
+warning: -(13) -> xstrsub(1):
+ STRSUB: Length too big: 32
+warning: -(14) -> xstrsub(1):
+ STRSUB: Length too big: 300
+warning: -(15) -> xstrsub(1):
+ STRSUB: Position starts at 1
+warning: -(15) -> xstrsub(1):
+ STRSUB: Length too big: 300
+warning: -(16) -> xstrsub(1):
+ STRSUB: Position 4 is past the end of the string
+warning: -(17) -> xstrsub(1):
+ STRSUB: Position 4 is past the end of the string
+warning: -(17) -> xstrsub(1):
+ STRSUB: Length too big: 1
+warning: -(20) -> xstrsub(1):
+ STRSUB: Length too big: 10
+A
+B
+C
+AB
+BC
+BC
+BC
+ABC
+
+
+カタ
+カナ
+カナ
+g
+g̈
--- a/test/asm/test.sh
+++ b/test/asm/test.sh
@@ -6,18 +6,25 @@
rc=0
for i in *.asm; do
- ../../rgbasm -o $o $i > $after 2>&1
- diff -u ${i%.asm}.out $after
- rc=$(($? || $rc))
- bin=${i%.asm}.out.bin
- if [ -f $bin ]; then
- ../../rgblink -o $gb $o > $after 2>&1
- head -c $(wc -c < $bin) $gb > $after 2>&1
- hexdump -C $after > $before && mv $before $after
- hexdump -C $bin > $before
- diff -u $before $after
+ for variant in '' '.pipe'; do
+ if [ -z "$variant" ]; then
+ ../../rgbasm -o $o $i > $after 2>&1
+ else
+ cat $i | ../../rgbasm -o $o - > $after 2>&1
+ fi
+
+ diff -u ${i%.asm}.out$variant $after
rc=$(($? || $rc))
- fi
+ bin=${i%.asm}.out.bin
+ if [ -f $bin ]; then
+ ../../rgblink -o $gb $o > $after 2>&1
+ head -c $(wc -c < $bin) $gb > $after 2>&1
+ hexdump -C $after > $before && mv $before $after
+ hexdump -C $bin > $before
+ diff -u $before $after
+ rc=$(($? || $rc))
+ fi
+ done
done
rm -f $o $gb $before $after
--- /dev/null
+++ b/test/asm/undefined-dot.out.pipe
@@ -1,0 +1,1 @@
+error: -(3) : '.' not defined