diff --git a/.gitignore b/.gitignore index c7b8925..81e258a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ eaxcc .gdb_history *.pp library/tommyds/ +tmp-* +.cmdtest-filter # temp test_me_please diff --git a/Makefile b/Makefile index 5d72a21..34b6cc5 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,8 @@ test: ${OUT} #${WRAP} ./${OUT} debug/artimetrics.eax #@echo -e "\033[31;1m --- ERROR TESTING BEGINS BELOW ---\033[0m" #debug/error_test.sh - ./${OUT} debug/heyo_world.eax + #./${OUT} debug/heyo_world.eax + ORIGIN="$$(realpath .)" PATH="$$(realpath .):${PATH}" cmdtest clean: -rm ${OUT} ${OBJECT} ${GENOBJECT} ${GENSOURCE} diff --git a/debug/double_declare.eax b/debug/double_declare.eax deleted file mode 100644 index 7088d82..0000000 --- a/debug/double_declare.eax +++ /dev/null @@ -1,5 +0,0 @@ -program main - u8 a - u8 a -begin -end program diff --git a/debug/double_program.eax b/debug/double_program.eax deleted file mode 100644 index 0a78697..0000000 --- a/debug/double_program.eax +++ /dev/null @@ -1,7 +0,0 @@ -program a -begin -end program - -program b -begin -end program diff --git a/debug/empty.eax b/debug/empty.eax deleted file mode 100644 index e69de29..0000000 diff --git a/debug/error_test.sh b/debug/error_test.sh deleted file mode 100755 index 22c80b2..0000000 --- a/debug/error_test.sh +++ /dev/null @@ -1,9 +0,0 @@ -./eaxhla debug/unclosed_program.eax -./eaxhla debug/unknown_instruction.eax -./eaxhla debug/multi_error.eax -./eaxhla debug/unclosed_comment.eax -./eaxhla debug/unclosed_artimetric.eax -./eaxhla debug/double_declare.eax -./eaxhla debug/empty.eax -./eaxhla debug/double_program.eax -./eaxhla debug/overflows.eax diff --git a/debug/multi_error.eax b/debug/multi_error.eax deleted file mode 100644 index ed18aee..0000000 --- a/debug/multi_error.eax +++ /dev/null @@ -1,11 +0,0 @@ -program main - k8 kek -begin - wigglecall func - xor $rsp rsp - xor rsp rsp - poke rsp - xor rsp rsp - xor rsp rsp - xor rsp rsp -end program diff --git a/debug/overflows.eax b/debug/overflows.eax deleted file mode 100644 index 06fbd55..0000000 --- a/debug/overflows.eax +++ /dev/null @@ -1,6 +0,0 @@ -program main - u8 a = 10 - u8 b = 10000 - u8 c = -200 -begin -end program diff --git a/debug/unclosed_artimetric.eax b/debug/unclosed_artimetric.eax deleted file mode 100644 index fc2e15a..0000000 --- a/debug/unclosed_artimetric.eax +++ /dev/null @@ -1,2 +0,0 @@ -program a - u8 var = [ diff --git a/debug/unclosed_comment.eax b/debug/unclosed_comment.eax deleted file mode 100644 index 441923c..0000000 --- a/debug/unclosed_comment.eax +++ /dev/null @@ -1,4 +0,0 @@ -/* - reeeeeeee - reeeeeeeee - reeeeee diff --git a/debug/unclosed_program.eax b/debug/unclosed_program.eax deleted file mode 100644 index df35de8..0000000 --- a/debug/unclosed_program.eax +++ /dev/null @@ -1,5 +0,0 @@ -unix -program main -begin - exit 1 -end rpogram diff --git a/debug/unknown_instruction.eax b/debug/unknown_instruction.eax deleted file mode 100644 index 9ec4ee8..0000000 --- a/debug/unknown_instruction.eax +++ /dev/null @@ -1,8 +0,0 @@ -procedure a - nop -end procedure - -unix -program main - wigglecall a -end program diff --git a/test/CMDTEST_eaxhla.rb b/test/CMDTEST_eaxhla.rb new file mode 100644 index 0000000..b59a9ff --- /dev/null +++ b/test/CMDTEST_eaxhla.rb @@ -0,0 +1,145 @@ +$default_output_file = "test_me_please" + +class CMDTEST_error_batch < Cmdtest::Testcase + def test_unknown_instruction + create_file "input.eax", <<-HEREDOC + procedure a + nop + end procedure + + unix + program main + wigglecall a + end program + HEREDOC + + cmd "eaxhla input.eax" do + stderr_equal /.+/ + exit_status 1 + end + end + + def test_unclosed_comment + create_file "input.eax", <<-HEREDOC + /* + reeeeeeee + reeeeeeeee + reeeeee + HEREDOC + + cmd "eaxhla input.eax" do + stderr_equal /.+/ + exit_status 1 + end + end + + def test_unclosed_artimetric + create_file "input.eax", <<-HEREDOC + program a + u8 var = [ + HEREDOC + + cmd "eaxhla input.eax" do + stderr_equal /.+/ + exit_status 1 + end + end + + def test_unclosed_program + create_file "input.eax", <<-HEREDOC + unix + program main + begin + exit 1 + end rpogram + HEREDOC + + cmd "eaxhla input.eax" do + stderr_equal /.+/ + exit_status 1 + end + end + + def test_double_declare + create_file "input.eax", <<-HEREDOC + program main + u8 a + u8 a + begin + end program + HEREDOC + + cmd "eaxhla input.eax" do + stderr_equal /.+/ + exit_status 1 + end + end + + def test_double_program + create_file "input.eax", <<-HEREDOC + program a + begin + end program + + program b + begin + end program + HEREDOC + + cmd "eaxhla input.eax" do + stderr_equal /.+/ + exit_status 1 + end + end + + def test_multi_error + create_file "input.eax", <<-HEREDOC + program main + k8 kek + begin + wigglecall func + xor $rsp rsp + xor rsp rsp + poke rsp + xor rsp rsp + xor rsp rsp + xor rsp rsp + end program + HEREDOC + + cmd "eaxhla input.eax" do + stderr_equal /.+\n(.|\n)+/m + exit_status 1 + end + end +end + +class CMDTEST_warning_batch < Cmdtest::Testcase + def test_overflows + create_file "input.eax", <<-HEREDOC + program main + u8 a = 10 + u8 b = 10000 + u8 c = -200 + begin + end program + HEREDOC + + ignore_file $default_output_file + + cmd "eaxhla input.eax" do + stderr_equal /.+/ + end + end + + def test_empty + create_file "input.eax", <<-HEREDOC + HEREDOC + + ignore_file $default_output_file + + cmd "eaxhla input.eax" do + stderr_equal /.+/ + end + end +end diff --git a/debug/artimetrics.eax b/test/artimetrics.eax similarity index 100% rename from debug/artimetrics.eax rename to test/artimetrics.eax diff --git a/debug/babys_first_hla.eax b/test/babys_first_hla.eax similarity index 100% rename from debug/babys_first_hla.eax rename to test/babys_first_hla.eax diff --git a/debug/comment_as_space.eax b/test/comment_as_space.eax similarity index 100% rename from debug/comment_as_space.eax rename to test/comment_as_space.eax diff --git a/debug/heyo_world.eax b/test/heyo_world.eax similarity index 100% rename from debug/heyo_world.eax rename to test/heyo_world.eax diff --git a/debug/test.hla b/test/test.hla similarity index 100% rename from debug/test.hla rename to test/test.hla diff --git a/debug/xop.eax b/test/xop.eax similarity index 100% rename from debug/xop.eax rename to test/xop.eax