TEST minu(), improved test outputs, default to only showing full output on failure

This commit is contained in:
2025-07-21 16:20:44 +02:00
parent f8dc652501
commit 621de1c3db

View File

@@ -5,7 +5,7 @@
var db NL,"TEST ",func,"()",NL,EOS var db NL,"TEST ",func,"()",NL,EOS
;addTest(var, msg) ;addTest(var, msg)
%define addTest(var, msg) \ %define addTest(var, msg) \
var db TAB,msg,":",NL,EOS var db TAB,msg,NL,EOS
;printTestHeader var ;printTestHeader var
%macro printTestHeader 1 %macro printTestHeader 1
lea rdi, [rel %1] lea rdi, [rel %1]
@@ -14,7 +14,7 @@
;printTest var ;printTest var
%macro printTest 1 %macro printTest 1
lea rdi, [rel %1] lea rdi, [rel %1]
call printf call print
%endmacro %endmacro
;assert value, jmp instruction, testMsg_X ;assert value, jmp instruction, testMsg_X
%macro assert 3 %macro assert 3
@@ -71,7 +71,7 @@ section .rodata
;;; ;;;
;;; enable/disable tests ;;; enable/disable tests
;;; ;;;
TESTS_PRINT_ALL_OUTPUTS equ 1 ;If set to 0, only print expected/got and FAIL if failed. Otherwise always print outputs. TESTS_PRINT_ALL_OUTPUTS equ 0 ;If set to 0, only print expected/got and FAIL if failed. Otherwise always print outputs.
;Note: when set to 0, tests are silent (ie it prints the current test and does not print any output, not even OK) ;Note: when set to 0, tests are silent (ie it prints the current test and does not print any output, not even OK)
;core.asm ;core.asm
TEST_islower equ 1 TEST_islower equ 1
@@ -150,6 +150,13 @@ section .rodata
addTest(min3, "min(MIN_UINT64, MAX_UINT64)") addTest(min3, "min(MIN_UINT64, MAX_UINT64)")
addTest(min4, "min(-1, 0)") addTest(min4, "min(-1, 0)")
addTest(min5, "min(MIN_UINT64, MIN_INT8)") addTest(min5, "min(MIN_UINT64, MIN_INT8)")
;minu()
addTestHeader(_minu, "minu")
addTest(minu1, "minu(-1337, 1337)")
addTest(minu2, "minu(MIN_INT64, MAX_INT64)")
addTest(minu3, "minu(MIN_UINT64, MAX_UINT64)")
addTest(minu4, "minu(-1, 0)")
addTest(minu5, "minu(MIN_UINT64, MIN_INT8)")
section .data section .data
@@ -291,6 +298,42 @@ _start:
assert MIN_INT8, je, testMsg_assertIEqual assert MIN_INT8, je, testMsg_assertIEqual
%endif %endif
;--- minu()
%if TEST_minu
printTestHeader(_minu)
; TEST 1: minu(-1337, 1337)
printTest(minu1)
mov rdi, -1337
mov rsi, 1337
call minu
assert 1337, je, testMsg_assertIEqual
; TEST 2: minu(MIN_INT64, MAX_INT64)
printTest(minu2)
mov rdi, MIN_INT64
mov rsi, MAX_INT64
call minu
assert MAX_INT64, je, testMsg_assertIEqual
; TEST 3: minu(MIN_UINT64, MAX_UINT64)
printTest(minu3)
mov rdi, MIN_UINT64
mov rsi, MAX_UINT64
call minu
assert MIN_UINT64, je, testMsg_assertIEqual
; TEST 4: minu(-1, 0)
printTest(minu4)
mov rdi, -1
xor rsi, rsi
call minu
assert 0, je, testMsg_assertIEqual
; TEST 5: minu(MIN_UINT64, MIN_INT8)
printTest(minu5)
mov rdi, MIN_UINT64
mov rsi, MIN_INT8
call minu
assert MIN_UINT64, je, testMsg_assertIEqual
%endif
;;; ;;;
;;; TEST RESULTS ;;; TEST RESULTS
;;; ;;;