Skip to content

Commit

Permalink
Update tests most of the way there using regex
Browse files Browse the repository at this point in the history
  • Loading branch information
MyNameIsTrez committed Jan 29, 2025
1 parent aa454f0 commit 040fccf
Show file tree
Hide file tree
Showing 157 changed files with 2,091 additions and 4,581 deletions.
4 changes: 2 additions & 2 deletions tests/err_runtime/division_by_0/input_macho64.s
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ global on_fns
on_fns:
dq on_a

global strings
strings:
on_fn_path:
db "tests/err_runtime/division_by_0/input.grug", 0
on_fn_name:
db "on_a", 0

align 8
Expand Down
50 changes: 16 additions & 34 deletions tests/ok/addition_as_argument/input.s
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ global on_fns
on_fns:
dq on_a

global strings
strings:
on_fn_path:
db "tests/ok/addition_as_argument/input.grug", 0
on_fn_name:
db "on_a", 0

align 8
Expand Down Expand Up @@ -49,54 +49,41 @@ init_globals:

%macro save_on_fn_name_and_path 0
mov rax, [rel grug_on_fn_path wrt ..got]
lea r11, strings[rel 0]
lea r11, [rel on_fn_path]
mov [rax], r11

mov rax, [rel grug_on_fn_name wrt ..got]
lea r11, strings[rel 41]
lea r11, [rel on_fn_name]
mov [rax], r11
%endmacro

%macro error_handling 0
mov rdi, [rel grug_runtime_error_jmp_buffer wrt ..got]
call setjmp wrt ..plt
test eax, eax
je strict $+0x33
je %%skip

dec eax
push rax
mov edi, eax
sub rsp, byte 0x8
call grug_get_runtime_error_reason wrt ..plt
add rsp, byte 0x8
mov rdi, rax

lea rcx, strings[rel 0]
lea rcx, [rel on_fn_path]

lea rdx, strings[rel 41]
lea rdx, [rel on_fn_name]

mov rsi, [rel grug_runtime_error_type wrt ..got]
mov esi, [rsi]
pop rsi

mov rax, [rel grug_runtime_error_handler wrt ..got]
call [rax]

mov rsp, rbp
pop rbp
ret
%endmacro

%macro block 0
xor edx, edx
mov rsi, [rel grug_block_mask wrt ..got]
xor edi, edi
call pthread_sigmask wrt ..plt
%endmacro

%macro unblock 0
push rax
xor edx, edx
mov rsi, [rel grug_block_mask wrt ..got]
mov edi, 1
sub rsp, byte 0x8
call pthread_sigmask wrt ..plt
add rsp, byte 0x8
pop rax
%%skip:
%endmacro

global on_a
Expand All @@ -109,15 +96,12 @@ on_a:
mov rax, [rel grug_on_fns_in_safe_mode wrt ..got]
mov al, [rax]
test al, al
je strict $+0xc1
je .fast

save_on_fn_name_and_path

error_handling

call grug_enable_on_fn_runtime_error_handling wrt ..plt

block
mov eax, 2
push rax
mov eax, 1
Expand All @@ -127,14 +111,12 @@ on_a:

pop rdi
call game_fn_initialize wrt ..plt
unblock

call grug_disable_on_fn_runtime_error_handling wrt ..plt

mov rsp, rbp
pop rbp
ret

.fast:
mov eax, 2
push rax
mov eax, 1
Expand Down
50 changes: 16 additions & 34 deletions tests/ok/addition_as_two_arguments/input.s
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ global on_fns
on_fns:
dq on_a

global strings
strings:
on_fn_path:
db "tests/ok/addition_as_two_arguments/input.grug", 0
on_fn_name:
db "on_a", 0

align 8
Expand Down Expand Up @@ -49,54 +49,41 @@ init_globals:

%macro save_on_fn_name_and_path 0
mov rax, [rel grug_on_fn_path wrt ..got]
lea r11, strings[rel 0]
lea r11, [rel on_fn_path]
mov [rax], r11

mov rax, [rel grug_on_fn_name wrt ..got]
lea r11, strings[rel 46]
lea r11, [rel on_fn_name]
mov [rax], r11
%endmacro

%macro error_handling 0
mov rdi, [rel grug_runtime_error_jmp_buffer wrt ..got]
call setjmp wrt ..plt
test eax, eax
je strict $+0x33
je %%skip

dec eax
push rax
mov edi, eax
sub rsp, byte 0x8
call grug_get_runtime_error_reason wrt ..plt
add rsp, byte 0x8
mov rdi, rax

lea rcx, strings[rel 0]
lea rcx, [rel on_fn_path]

lea rdx, strings[rel 46]
lea rdx, [rel on_fn_name]

mov rsi, [rel grug_runtime_error_type wrt ..got]
mov esi, [rsi]
pop rsi

mov rax, [rel grug_runtime_error_handler wrt ..got]
call [rax]

mov rsp, rbp
pop rbp
ret
%endmacro

%macro block 0
xor edx, edx
mov rsi, [rel grug_block_mask wrt ..got]
xor edi, edi
call pthread_sigmask wrt ..plt
%endmacro

%macro unblock 0
push rax
xor edx, edx
mov rsi, [rel grug_block_mask wrt ..got]
mov edi, 1
sub rsp, byte 0x8
call pthread_sigmask wrt ..plt
add rsp, byte 0x8
pop rax
%%skip:
%endmacro

global on_a
Expand All @@ -109,15 +96,12 @@ on_a:
mov rax, [rel grug_on_fns_in_safe_mode wrt ..got]
mov al, [rax]
test al, al
je strict $+0xd3
je .fast

save_on_fn_name_and_path

error_handling

call grug_enable_on_fn_runtime_error_handling wrt ..plt

block
mov eax, 2
push rax
mov eax, 1
Expand All @@ -135,14 +119,12 @@ on_a:
pop rsi
pop rdi
call game_fn_max wrt ..plt
unblock

call grug_disable_on_fn_runtime_error_handling wrt ..plt

mov rsp, rbp
pop rbp
ret

.fast:
mov eax, 2
push rax
mov eax, 1
Expand Down
32 changes: 16 additions & 16 deletions tests/ok/addition_i32_wraparound/input.s
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ global on_fns
on_fns:
dq on_a

global strings
strings:
on_fn_path:
db "tests/ok/addition_i32_wraparound/input.grug", 0
on_fn_name:
db "on_a", 0

align 8
Expand Down Expand Up @@ -49,36 +49,41 @@ init_globals:

%macro save_on_fn_name_and_path 0
mov rax, [rel grug_on_fn_path wrt ..got]
lea r11, strings[rel 0]
lea r11, [rel on_fn_path]
mov [rax], r11

mov rax, [rel grug_on_fn_name wrt ..got]
lea r11, strings[rel 44]
lea r11, [rel on_fn_name]
mov [rax], r11
%endmacro

%macro error_handling 0
mov rdi, [rel grug_runtime_error_jmp_buffer wrt ..got]
call setjmp wrt ..plt
test eax, eax
je strict $+0x33
je %%skip

dec eax
push rax
mov edi, eax
sub rsp, byte 0x8
call grug_get_runtime_error_reason wrt ..plt
add rsp, byte 0x8
mov rdi, rax

lea rcx, strings[rel 0]
lea rcx, [rel on_fn_path]

lea rdx, strings[rel 44]
lea rdx, [rel on_fn_name]

mov rsi, [rel grug_runtime_error_type wrt ..got]
mov esi, [rsi]
pop rsi

mov rax, [rel grug_runtime_error_handler wrt ..got]
call [rax]

mov rsp, rbp
pop rbp
ret
%%skip:
%endmacro

%macro block 0
Expand Down Expand Up @@ -109,15 +114,12 @@ on_a:
mov rax, [rel grug_on_fns_in_safe_mode wrt ..got]
mov al, [rax]
test al, al
je strict $+0xc1
je .fast

save_on_fn_name_and_path

error_handling

call grug_enable_on_fn_runtime_error_handling wrt ..plt

block
mov eax, 1
push rax
mov eax, 2147483647
Expand All @@ -127,14 +129,12 @@ on_a:

pop rdi
call game_fn_initialize wrt ..plt
unblock

call grug_disable_on_fn_runtime_error_handling wrt ..plt

mov rsp, rbp
pop rbp
ret

.fast:
mov eax, 1
push rax
mov eax, 2147483647
Expand Down
Loading

0 comments on commit 040fccf

Please sign in to comment.