diff --git a/test/asm/bank-noexist.err b/test/asm/bank-noexist.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/bracketed-symbols.err b/test/asm/bracketed-symbols.err new file mode 100644 index 00000000..14a9a9e6 --- /dev/null +++ b/test/asm/bracketed-symbols.err @@ -0,0 +1,4 @@ +ERROR: bracketed-symbols.asm(16): + Print types are only allowed for numbers +ERROR: bracketed-symbols.asm(20): + Expression must have a constant value diff --git a/test/asm/bracketed-symbols.out b/test/asm/bracketed-symbols.out index 5ebcd6d0..67af4944 100644 --- a/test/asm/bracketed-symbols.out +++ b/test/asm/bracketed-symbols.out @@ -1,7 +1,3 @@ -ERROR: bracketed-symbols.asm(16): - Print types are only allowed for numbers -ERROR: bracketed-symbols.asm(20): - Expression must have a constant value $2A 2a 2A diff --git a/test/asm/correct-line-number.err b/test/asm/correct-line-number.err new file mode 100644 index 00000000..02693638 --- /dev/null +++ b/test/asm/correct-line-number.err @@ -0,0 +1,4 @@ +warning: correct-line-number.asm(5): [-Wuser] + Am I geting ahead of myself? +warning: correct-line-number.asm(11): [-Wuser] + Hopefully not. diff --git a/test/asm/correct-line-number.out b/test/asm/correct-line-number.out index 02693638..e69de29b 100644 --- a/test/asm/correct-line-number.out +++ b/test/asm/correct-line-number.out @@ -1,4 +0,0 @@ -warning: correct-line-number.asm(5): [-Wuser] - Am I geting ahead of myself? -warning: correct-line-number.asm(11): [-Wuser] - Hopefully not. diff --git a/test/asm/divzero-instr.err b/test/asm/divzero-instr.err new file mode 100644 index 00000000..e1e0e3e2 --- /dev/null +++ b/test/asm/divzero-instr.err @@ -0,0 +1,2 @@ +ERROR: divzero-instr.asm(2): + Division by zero diff --git a/test/asm/divzero-instr.out b/test/asm/divzero-instr.out index e1e0e3e2..e69de29b 100644 --- a/test/asm/divzero-instr.out +++ b/test/asm/divzero-instr.out @@ -1,2 +0,0 @@ -ERROR: divzero-instr.asm(2): - Division by zero diff --git a/test/asm/divzero-section-bank.err b/test/asm/divzero-section-bank.err new file mode 100644 index 00000000..553b2800 --- /dev/null +++ b/test/asm/divzero-section-bank.err @@ -0,0 +1,4 @@ +ERROR: divzero-section-bank.asm(1): + Invalid integer constant +ERROR: divzero-section-bank.asm(1): + Division by zero diff --git a/test/asm/divzero-section-bank.out b/test/asm/divzero-section-bank.out index 553b2800..e69de29b 100644 --- a/test/asm/divzero-section-bank.out +++ b/test/asm/divzero-section-bank.out @@ -1,4 +0,0 @@ -ERROR: divzero-section-bank.asm(1): - Invalid integer constant -ERROR: divzero-section-bank.asm(1): - Division by zero diff --git a/test/asm/equ-charmap.err b/test/asm/equ-charmap.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/equs-recursion.err b/test/asm/equs-recursion.err new file mode 100644 index 00000000..c6180ed3 --- /dev/null +++ b/test/asm/equs-recursion.err @@ -0,0 +1,66 @@ +ERROR: equs-recursion.asm(2): + Recursion limit (64) exceeded +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" +while expanding symbol "recurse" diff --git a/test/asm/equs-recursion.out b/test/asm/equs-recursion.out index c6180ed3..e69de29b 100644 --- a/test/asm/equs-recursion.out +++ b/test/asm/equs-recursion.out @@ -1,66 +0,0 @@ -ERROR: equs-recursion.asm(2): - Recursion limit (64) exceeded -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" -while expanding symbol "recurse" diff --git a/test/asm/garbage_char.err b/test/asm/garbage_char.err new file mode 100644 index 00000000..b2a30cb7 --- /dev/null +++ b/test/asm/garbage_char.err @@ -0,0 +1,2 @@ +ERROR: garbage_char.asm(1): + Found garbage character: 0xFF diff --git a/test/asm/garbage_char.out b/test/asm/garbage_char.out index b2a30cb7..e69de29b 100644 --- a/test/asm/garbage_char.out +++ b/test/asm/garbage_char.out @@ -1,2 +0,0 @@ -ERROR: garbage_char.asm(1): - Found garbage character: 0xFF diff --git a/test/asm/include-recursion.err b/test/asm/include-recursion.err new file mode 100644 index 00000000..8a256e6b --- /dev/null +++ b/test/asm/include-recursion.err @@ -0,0 +1,2 @@ +ERROR: include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1): + Recursion limit (64) exceeded diff --git a/test/asm/include-recursion.out b/test/asm/include-recursion.out index 8a256e6b..e69de29b 100644 --- a/test/asm/include-recursion.out +++ b/test/asm/include-recursion.out @@ -1,2 +0,0 @@ -ERROR: include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1) -> include-recursion.asm(1): - Recursion limit (64) exceeded diff --git a/test/asm/label-macro-arg.err b/test/asm/label-macro-arg.err new file mode 100644 index 00000000..c1d8ae33 --- /dev/null +++ b/test/asm/label-macro-arg.err @@ -0,0 +1,5 @@ +ERROR: label-macro-arg.asm(45) -> label-macro-arg.asm::test_char(31): + Label "sizeof_" created outside of a SECTION +while expanding symbol "VAR_DEF" +ERROR: label-macro-arg.asm(45) -> label-macro-arg.asm::test_char(31): + Macro 'something' not defined diff --git a/test/asm/label-macro-arg.out b/test/asm/label-macro-arg.out index f0e94c5d..0a5d086f 100644 --- a/test/asm/label-macro-arg.out +++ b/test/asm/label-macro-arg.out @@ -1,8 +1,3 @@ -ERROR: label-macro-arg.asm(45) -> label-macro-arg.asm::test_char(31): - Label "sizeof_" created outside of a SECTION -while expanding symbol "VAR_DEF" -ERROR: label-macro-arg.asm(45) -> label-macro-arg.asm::test_char(31): - Macro 'something' not defined $5 $6 $7 diff --git a/test/asm/label-outside-section.err b/test/asm/label-outside-section.err new file mode 100644 index 00000000..6aa561cd --- /dev/null +++ b/test/asm/label-outside-section.err @@ -0,0 +1,3 @@ +ERROR: label-outside-section.asm(1): + Label "bad" created outside of a SECTION +error: Assembly aborted (1 errors)! diff --git a/test/asm/label-outside-section.out b/test/asm/label-outside-section.out index 757b3b6d..d6406617 100644 --- a/test/asm/label-outside-section.out +++ b/test/asm/label-outside-section.out @@ -1,4 +1 @@ -ERROR: label-outside-section.asm(1): - Label "bad" created outside of a SECTION -error: Assembly aborted (1 errors)! OK! diff --git a/test/asm/label-redefinition.err b/test/asm/label-redefinition.err new file mode 100644 index 00000000..09eb79b3 --- /dev/null +++ b/test/asm/label-redefinition.err @@ -0,0 +1,3 @@ +ERROR: label-redefinition.asm(7): + 'Sym' already defined in label-redefinition.asm::m(6) +error: Assembly aborted (1 errors)! diff --git a/test/asm/label-redefinition.out b/test/asm/label-redefinition.out index 09eb79b3..e69de29b 100644 --- a/test/asm/label-redefinition.out +++ b/test/asm/label-redefinition.out @@ -1,3 +0,0 @@ -ERROR: label-redefinition.asm(7): - 'Sym' already defined in label-redefinition.asm::m(6) -error: Assembly aborted (1 errors)! diff --git a/test/asm/line-continuation-macro.err b/test/asm/line-continuation-macro.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/line-continuation-rept.err b/test/asm/line-continuation-rept.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/line-continuation-whitespace.err b/test/asm/line-continuation-whitespace.err new file mode 100644 index 00000000..83122438 --- /dev/null +++ b/test/asm/line-continuation-whitespace.err @@ -0,0 +1,3 @@ +ERROR: line-continuation-whitespace.asm(7): + Label "foo" created outside of a SECTION +error: Assembly aborted (1 errors)! diff --git a/test/asm/line-continuation-whitespace.out b/test/asm/line-continuation-whitespace.out index 83122438..e69de29b 100644 --- a/test/asm/line-continuation-whitespace.out +++ b/test/asm/line-continuation-whitespace.out @@ -1,3 +0,0 @@ -ERROR: line-continuation-whitespace.asm(7): - Label "foo" created outside of a SECTION -error: Assembly aborted (1 errors)! diff --git a/test/asm/line-continuation.err b/test/asm/line-continuation.err new file mode 100644 index 00000000..4da7e2c1 --- /dev/null +++ b/test/asm/line-continuation.err @@ -0,0 +1,3 @@ +ERROR: line-continuation.asm(7): + Label "foo" created outside of a SECTION +error: Assembly aborted (1 errors)! diff --git a/test/asm/line-continuation.out b/test/asm/line-continuation.out index 4da7e2c1..e69de29b 100644 --- a/test/asm/line-continuation.out +++ b/test/asm/line-continuation.out @@ -1,3 +0,0 @@ -ERROR: line-continuation.asm(7): - Label "foo" created outside of a SECTION -error: Assembly aborted (1 errors)! diff --git a/test/asm/local-ref-without-parent.err b/test/asm/local-ref-without-parent.err new file mode 100644 index 00000000..fd784ef3 --- /dev/null +++ b/test/asm/local-ref-without-parent.err @@ -0,0 +1,2 @@ +ERROR: local-ref-without-parent.asm(3): + Local label reference '.test' in main scope diff --git a/test/asm/local-ref-without-parent.out b/test/asm/local-ref-without-parent.out index fd784ef3..e69de29b 100644 --- a/test/asm/local-ref-without-parent.out +++ b/test/asm/local-ref-without-parent.out @@ -1,2 +0,0 @@ -ERROR: local-ref-without-parent.asm(3): - Local label reference '.test' in main scope diff --git a/test/asm/local-without-parent.err b/test/asm/local-without-parent.err new file mode 100644 index 00000000..574d2972 --- /dev/null +++ b/test/asm/local-without-parent.err @@ -0,0 +1,2 @@ +ERROR: local-without-parent.asm(2): + Local label in main scope diff --git a/test/asm/local-without-parent.out b/test/asm/local-without-parent.out index 574d2972..e69de29b 100644 --- a/test/asm/local-without-parent.out +++ b/test/asm/local-without-parent.out @@ -1,2 +0,0 @@ -ERROR: local-without-parent.asm(2): - Local label in main scope diff --git a/test/asm/local-wrong-parent.err b/test/asm/local-wrong-parent.err new file mode 100644 index 00000000..5eb4776f --- /dev/null +++ b/test/asm/local-wrong-parent.err @@ -0,0 +1,3 @@ +ERROR: local-wrong-parent.asm(5): + Not currently in the scope of 'WrongParent' +error: Assembly aborted (1 errors)! diff --git a/test/asm/local-wrong-parent.out b/test/asm/local-wrong-parent.out index 5eb4776f..e69de29b 100644 --- a/test/asm/local-wrong-parent.out +++ b/test/asm/local-wrong-parent.out @@ -1,3 +0,0 @@ -ERROR: local-wrong-parent.asm(5): - Not currently in the scope of 'WrongParent' -error: Assembly aborted (1 errors)! diff --git a/test/asm/long-rpn-expression.err b/test/asm/long-rpn-expression.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/macro-@.err b/test/asm/macro-@.err new file mode 100644 index 00000000..1284eecb --- /dev/null +++ b/test/asm/macro-@.err @@ -0,0 +1,4 @@ +ERROR: macro-@.asm(1): + Label "foo" created outside of a SECTION +ERROR: macro-@.asm(1): + Macro '@' not defined diff --git a/test/asm/macro-@.out b/test/asm/macro-@.out index 1284eecb..e69de29b 100644 --- a/test/asm/macro-@.out +++ b/test/asm/macro-@.out @@ -1,4 +0,0 @@ -ERROR: macro-@.asm(1): - Label "foo" created outside of a SECTION -ERROR: macro-@.asm(1): - Macro '@' not defined diff --git a/test/asm/macro-recursion.err b/test/asm/macro-recursion.err new file mode 100644 index 00000000..e69c4c5f --- /dev/null +++ b/test/asm/macro-recursion.err @@ -0,0 +1,2 @@ +ERROR: macro-recursion.asm(4) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2): + Recursion limit (64) exceeded diff --git a/test/asm/macro-recursion.out b/test/asm/macro-recursion.out index e69c4c5f..e69de29b 100644 --- a/test/asm/macro-recursion.out +++ b/test/asm/macro-recursion.out @@ -1,2 +0,0 @@ -ERROR: macro-recursion.asm(4) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2) -> macro-recursion.asm::recurse(2): - Recursion limit (64) exceeded diff --git a/test/asm/multiple-charmaps.err b/test/asm/multiple-charmaps.err new file mode 100644 index 00000000..9649ac4e --- /dev/null +++ b/test/asm/multiple-charmaps.err @@ -0,0 +1,6 @@ +ERROR: multiple-charmaps.asm(100) -> multiple-charmaps.asm::new_(7): + Charmap 'map1' already exists +ERROR: multiple-charmaps.asm(102) -> multiple-charmaps.asm::set_(13): + Charmap 'map5' doesn't exist +ERROR: multiple-charmaps.asm(104) -> multiple-charmaps.asm::pop_(23): + No entries in the charmap stack diff --git a/test/asm/multiple-charmaps.out b/test/asm/multiple-charmaps.out index b1fc6857..810afdc5 100644 --- a/test/asm/multiple-charmaps.out +++ b/test/asm/multiple-charmaps.out @@ -1,9 +1,3 @@ -ERROR: multiple-charmaps.asm(100) -> multiple-charmaps.asm::new_(7): - Charmap 'map1' already exists -ERROR: multiple-charmaps.asm(102) -> multiple-charmaps.asm::set_(13): - Charmap 'map5' doesn't exist -ERROR: multiple-charmaps.asm(104) -> multiple-charmaps.asm::pop_(23): - No entries in the charmap stack main charmap $0 newcharmap map1 diff --git a/test/asm/narg-decreases-after-shift.err b/test/asm/narg-decreases-after-shift.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/nested-brackets.err b/test/asm/nested-brackets.err new file mode 100644 index 00000000..b3e00643 --- /dev/null +++ b/test/asm/nested-brackets.err @@ -0,0 +1,2 @@ +ERROR: nested-brackets.asm(5): + Missing } diff --git a/test/asm/nested-brackets.out b/test/asm/nested-brackets.out index feea079a..d86bac9d 100644 --- a/test/asm/nested-brackets.out +++ b/test/asm/nested-brackets.out @@ -1,3 +1 @@ -ERROR: nested-brackets.asm(5): - Missing } OK diff --git a/test/asm/nested-if.err b/test/asm/nested-if.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/null-in-macro.err b/test/asm/null-in-macro.err new file mode 100644 index 00000000..90943ee0 --- /dev/null +++ b/test/asm/null-in-macro.err @@ -0,0 +1,2 @@ +ERROR: null-in-macro.asm(2): + Found null character diff --git a/test/asm/null-in-macro.out b/test/asm/null-in-macro.out index 90943ee0..e69de29b 100644 --- a/test/asm/null-in-macro.out +++ b/test/asm/null-in-macro.out @@ -1,2 +0,0 @@ -ERROR: null-in-macro.asm(2): - Found null character diff --git a/test/asm/operator-precedence.err b/test/asm/operator-precedence.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/overflow.err b/test/asm/overflow.err new file mode 100644 index 00000000..4e8b8b29 --- /dev/null +++ b/test/asm/overflow.err @@ -0,0 +1,12 @@ +warning: overflow.asm(24): [-Wdiv] + Division of min value by -1 +warning: overflow.asm(25): [-Wdiv] + Division of min value by -1 +warning: overflow.asm(34): [-Wshift] + Left shift of negative value: -1 +warning: overflow.asm(35): [-Wshift] + Left shift of negative value: -1 +warning: overflow.asm(39): [-Wlarge-constant] + Integer constant '4294967296' is too large +warning: overflow.asm(42): [-Wlarge-constant] + Graphics constant '`333333333' is too long diff --git a/test/asm/overflow.out b/test/asm/overflow.out index ecb432c3..96f0efa3 100644 --- a/test/asm/overflow.out +++ b/test/asm/overflow.out @@ -1,15 +1,3 @@ -warning: overflow.asm(24): [-Wdiv] - Division of min value by -1 -warning: overflow.asm(25): [-Wdiv] - Division of min value by -1 -warning: overflow.asm(34): [-Wshift] - Left shift of negative value: -1 -warning: overflow.asm(35): [-Wshift] - Left shift of negative value: -1 -warning: overflow.asm(39): [-Wlarge-constant] - Integer constant '4294967296' is too large -warning: overflow.asm(42): [-Wlarge-constant] - Graphics constant '`333333333' is too long $80000000 $7FFFFFFF $80000000 diff --git a/test/asm/pc-bank.err b/test/asm/pc-bank.err new file mode 100644 index 00000000..b165f4ec --- /dev/null +++ b/test/asm/pc-bank.err @@ -0,0 +1,6 @@ +ERROR: pc-bank.asm(2): + Source address $2a00 not in $FF00 to $FFFF +ERROR: pc-bank.asm(11): + @'s bank is not known yet +ERROR: pc-bank.asm(11): + Non-constant expression diff --git a/test/asm/pc-bank.out b/test/asm/pc-bank.out index de66200b..140df672 100644 --- a/test/asm/pc-bank.out +++ b/test/asm/pc-bank.out @@ -1,8 +1,2 @@ -ERROR: pc-bank.asm(2): - Source address $2a00 not in $FF00 to $FFFF -ERROR: pc-bank.asm(11): - @'s bank is not known yet -ERROR: pc-bank.asm(11): - Non-constant expression @: $2A Str: $2A diff --git a/test/asm/pops-no-pushed-sections.err b/test/asm/pops-no-pushed-sections.err new file mode 100644 index 00000000..4f8c06c1 --- /dev/null +++ b/test/asm/pops-no-pushed-sections.err @@ -0,0 +1,2 @@ +ERROR: pops-no-pushed-sections.asm(1): + No entries in the section stack diff --git a/test/asm/pops-no-pushed-sections.out b/test/asm/pops-no-pushed-sections.out index 4f8c06c1..e69de29b 100644 --- a/test/asm/pops-no-pushed-sections.out +++ b/test/asm/pops-no-pushed-sections.out @@ -1,2 +0,0 @@ -ERROR: pops-no-pushed-sections.asm(1): - No entries in the section stack diff --git a/test/asm/pops-restore-no-section.err b/test/asm/pops-restore-no-section.err new file mode 100644 index 00000000..4eac4442 --- /dev/null +++ b/test/asm/pops-restore-no-section.err @@ -0,0 +1,4 @@ +ERROR: pops-restore-no-section.asm(9): + Label "DisallowedContent" created outside of a SECTION +ERROR: pops-restore-no-section.asm(10): + Code generation before SECTION directive diff --git a/test/asm/pops-restore-no-section.out b/test/asm/pops-restore-no-section.out index 4eac4442..e69de29b 100644 --- a/test/asm/pops-restore-no-section.out +++ b/test/asm/pops-restore-no-section.out @@ -1,4 +0,0 @@ -ERROR: pops-restore-no-section.asm(9): - Label "DisallowedContent" created outside of a SECTION -ERROR: pops-restore-no-section.asm(10): - Code generation before SECTION directive diff --git a/test/asm/pushs-outside-section.err b/test/asm/pushs-outside-section.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/reference-undefined-sym.err b/test/asm/reference-undefined-sym.err new file mode 100644 index 00000000..e55ee236 --- /dev/null +++ b/test/asm/reference-undefined-sym.err @@ -0,0 +1,3 @@ +ERROR: reference-undefined-sym.asm(4): + 'X' already referenced at reference-undefined-sym.asm(2) +error: Assembly aborted (1 errors)! diff --git a/test/asm/reference-undefined-sym.out b/test/asm/reference-undefined-sym.out index e55ee236..e69de29b 100644 --- a/test/asm/reference-undefined-sym.out +++ b/test/asm/reference-undefined-sym.out @@ -1,3 +0,0 @@ -ERROR: reference-undefined-sym.asm(4): - 'X' already referenced at reference-undefined-sym.asm(2) -error: Assembly aborted (1 errors)! diff --git a/test/asm/remote-local-explicit.err b/test/asm/remote-local-explicit.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/remote-local-noexist.err b/test/asm/remote-local-noexist.err new file mode 100644 index 00000000..f1fbac28 --- /dev/null +++ b/test/asm/remote-local-noexist.err @@ -0,0 +1,2 @@ +ERROR: remote-local-noexist.asm(7): + 'Parent.child.fail' is a nonsensical reference to a nested local symbol diff --git a/test/asm/remote-local-noexist.out b/test/asm/remote-local-noexist.out index f1fbac28..e69de29b 100644 --- a/test/asm/remote-local-noexist.out +++ b/test/asm/remote-local-noexist.out @@ -1,2 +0,0 @@ -ERROR: remote-local-noexist.asm(7): - 'Parent.child.fail' is a nonsensical reference to a nested local symbol diff --git a/test/asm/remote-local.err b/test/asm/remote-local.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/rept-line-no.err b/test/asm/rept-line-no.err new file mode 100644 index 00000000..8c259aef --- /dev/null +++ b/test/asm/rept-line-no.err @@ -0,0 +1,10 @@ +warning: rept-line-no.asm(2): [-Wuser] + Line 2 +warning: rept-line-no.asm(3) -> rept-line-no.asm::REPT~1(5): [-Wuser] + Line 5 +warning: rept-line-no.asm(3) -> rept-line-no.asm::REPT~2(5): [-Wuser] + Line 5 +warning: rept-line-no.asm(3) -> rept-line-no.asm::REPT~3(5): [-Wuser] + Line 5 +warning: rept-line-no.asm(8): [-Wuser] + Line 8 diff --git a/test/asm/rept-line-no.out b/test/asm/rept-line-no.out index 8c259aef..e69de29b 100644 --- a/test/asm/rept-line-no.out +++ b/test/asm/rept-line-no.out @@ -1,10 +0,0 @@ -warning: rept-line-no.asm(2): [-Wuser] - Line 2 -warning: rept-line-no.asm(3) -> rept-line-no.asm::REPT~1(5): [-Wuser] - Line 5 -warning: rept-line-no.asm(3) -> rept-line-no.asm::REPT~2(5): [-Wuser] - Line 5 -warning: rept-line-no.asm(3) -> rept-line-no.asm::REPT~3(5): [-Wuser] - Line 5 -warning: rept-line-no.asm(8): [-Wuser] - Line 8 diff --git a/test/asm/strlen.err b/test/asm/strlen.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/strsub.err b/test/asm/strsub.err new file mode 100644 index 00000000..c00a7b9a --- /dev/null +++ b/test/asm/strsub.err @@ -0,0 +1,16 @@ +warning: strsub.asm(13) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] + STRSUB: Length too big: 32 +warning: strsub.asm(14) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] + STRSUB: Length too big: 300 +warning: strsub.asm(15) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] + STRSUB: Position starts at 1 +warning: strsub.asm(15) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] + STRSUB: Length too big: 300 +warning: strsub.asm(16) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] + STRSUB: Position 4 is past the end of the string +warning: strsub.asm(17) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] + STRSUB: Position 4 is past the end of the string +warning: strsub.asm(17) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] + STRSUB: Length too big: 1 +warning: strsub.asm(20) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] + STRSUB: Length too big: 10 diff --git a/test/asm/strsub.out b/test/asm/strsub.out index 75a60663..aecbf596 100644 --- a/test/asm/strsub.out +++ b/test/asm/strsub.out @@ -1,19 +1,3 @@ -warning: strsub.asm(13) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] - STRSUB: Length too big: 32 -warning: strsub.asm(14) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] - STRSUB: Length too big: 300 -warning: strsub.asm(15) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] - STRSUB: Position starts at 1 -warning: strsub.asm(15) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] - STRSUB: Length too big: 300 -warning: strsub.asm(16) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] - STRSUB: Position 4 is past the end of the string -warning: strsub.asm(17) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] - STRSUB: Position 4 is past the end of the string -warning: strsub.asm(17) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] - STRSUB: Length too big: 1 -warning: strsub.asm(20) -> strsub.asm::xstrsub(4): [-Wbuiltin-args] - STRSUB: Length too big: 10 A B C diff --git a/test/asm/symbol-invalid-macro-arg.err b/test/asm/symbol-invalid-macro-arg.err new file mode 100644 index 00000000..ff94c3c2 --- /dev/null +++ b/test/asm/symbol-invalid-macro-arg.err @@ -0,0 +1,2 @@ +ERROR: symbol-invalid-macro-arg.asm(1): + Invalid macro argument '\0' in symbol diff --git a/test/asm/symbol-invalid-macro-arg.out b/test/asm/symbol-invalid-macro-arg.out index ff94c3c2..e69de29b 100644 --- a/test/asm/symbol-invalid-macro-arg.out +++ b/test/asm/symbol-invalid-macro-arg.out @@ -1,2 +0,0 @@ -ERROR: symbol-invalid-macro-arg.asm(1): - Invalid macro argument '\0' in symbol diff --git a/test/asm/symbol-override.err b/test/asm/symbol-override.err new file mode 100644 index 00000000..352ec342 --- /dev/null +++ b/test/asm/symbol-override.err @@ -0,0 +1,7 @@ +ERROR: symbol-override.asm(6): + 'W' already defined as constant at symbol-override.asm(5) +ERROR: symbol-override.asm(10): + 'X' already defined as constant at symbol-override.asm(9) +ERROR: symbol-override.asm(14): + 'Y' already defined as non-constant at symbol-override.asm(13) +error: Assembly aborted (3 errors)! diff --git a/test/asm/symbol-override.out b/test/asm/symbol-override.out index 551d2819..f9221eb5 100644 --- a/test/asm/symbol-override.out +++ b/test/asm/symbol-override.out @@ -1,8 +1 @@ -ERROR: symbol-override.asm(6): - 'W' already defined as constant at symbol-override.asm(5) -ERROR: symbol-override.asm(10): - 'X' already defined as constant at symbol-override.asm(9) -ERROR: symbol-override.asm(14): - 'Y' already defined as non-constant at symbol-override.asm(13) -error: Assembly aborted (3 errors)! V=$1 diff --git a/test/asm/test.sh b/test/asm/test.sh index 1f736f3e..e22bc1b1 100755 --- a/test/asm/test.sh +++ b/test/asm/test.sh @@ -3,15 +3,17 @@ export LC_ALL=C o=$(mktemp) gb=$(mktemp) -before=$(mktemp) -after=$(mktemp) +input=$(mktemp) +output=$(mktemp) +errput=$(mktemp) rc=0 for i in *.asm; do for variant in '' '.pipe'; do if [ -z "$variant" ]; then - ../../rgbasm -Weverything -o $o $i > $after 2>&1 + ../../rgbasm -Weverything -o $o $i > $output 2> $errput desired_output=${i%.asm}.out + desired_errput=${i%.asm}.err else # `include-recursion.asm` refers to its own name inside the test code. # Skip testing with stdin input for that file. @@ -23,27 +25,34 @@ for i in *.asm; do # stdin redirection makes the input an unseekable pipe - a scenario # that's harder to deal with and was broken when the feature was # first implemented. - cat $i | ../../rgbasm -Weverything -o $o - > $after 2>&1 + cat $i | ../../rgbasm -Weverything -o $o - > $output 2> $errput + # Use two otherwise unused files for temp storage + desired_output=$input + desired_errput=$gb # Escape regex metacharacters - desired_output=$before subst="$(printf '%s\n' "$i" | sed 's:[][\/.^$*]:\\&:g')" + # Replace the file name with a dash to match changed output sed "s/$subst/-/g" ${i%.asm}.out > $desired_output + sed "s/$subst/-/g" ${i%.asm}.err > $desired_errput fi - diff -u $desired_output $after + diff -u $desired_output $output rc=$(($? || $rc)) + diff -u $desired_errput $errput + rc=$(($? || $rc)) + bin=${i%.asm}.out.bin if [ -f $bin ]; then - ../../rgblink -o $gb $o > $after 2>&1 - dd if=$gb count=1 bs=$(printf %s $(wc -c < $bin)) > $after 2>/dev/null - hexdump -C $after > $before && mv $before $after - hexdump -C $bin > $before - diff -u $before $after + ../../rgblink -o $gb $o > $output 2>&1 + dd if=$gb count=1 bs=$(printf %s $(wc -c < $bin)) > $output 2>/dev/null + hexdump -C $output > $input && mv $input $output + hexdump -C $bin > $input + diff -u $input $output rc=$(($? || $rc)) fi done done -rm -f $o $gb $before $after +rm -f $o $gb $input $output exit $rc diff --git a/test/asm/undefined-dot.err b/test/asm/undefined-dot.err new file mode 100644 index 00000000..511659b7 --- /dev/null +++ b/test/asm/undefined-dot.err @@ -0,0 +1 @@ +error: undefined-dot.asm(3) : '.' not defined diff --git a/test/asm/undefined-dot.out b/test/asm/undefined-dot.out index 511659b7..e69de29b 100644 --- a/test/asm/undefined-dot.out +++ b/test/asm/undefined-dot.out @@ -1 +0,0 @@ -error: undefined-dot.asm(3) : '.' not defined diff --git a/test/asm/utf-8.err b/test/asm/utf-8.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/zero-byte-file.err b/test/asm/zero-byte-file.err new file mode 100644 index 00000000..e69de29b