better tests

This commit is contained in:
anon
2024-07-08 19:34:19 +02:00
parent 52a12f806a
commit 843dc44921
19 changed files with 149 additions and 58 deletions

2
.gitignore vendored
View File

@ -7,6 +7,8 @@ eaxcc
.gdb_history
*.pp
library/tommyds/
tmp-*
.cmdtest-filter
# temp
test_me_please

View File

@ -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}

View File

@ -1,5 +0,0 @@
program main
u8 a
u8 a
begin
end program

View File

@ -1,7 +0,0 @@
program a
begin
end program
program b
begin
end program

View File

View File

@ -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

View File

@ -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

View File

@ -1,6 +0,0 @@
program main
u8 a = 10
u8 b = 10000
u8 c = -200
begin
end program

View File

@ -1,2 +0,0 @@
program a
u8 var = [

View File

@ -1,4 +0,0 @@
/*
reeeeeeee
reeeeeeeee
reeeeee

View File

@ -1,5 +0,0 @@
unix
program main
begin
exit 1
end rpogram

View File

@ -1,8 +0,0 @@
procedure a
nop
end procedure
unix
program main
wigglecall a
end program

145
test/CMDTEST_eaxhla.rb Normal file
View File

@ -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