test runner
This commit is contained in:
@@ -114,8 +114,34 @@ extern fread
|
||||
extern rewind
|
||||
extern system
|
||||
extern exit
|
||||
extern gettimeofday
|
||||
copystr equ strdup
|
||||
|
||||
nth:
|
||||
movzx rax, byte [rdi + rsi]
|
||||
ret
|
||||
|
||||
set:
|
||||
mov [rdi + rsi], dl
|
||||
ret
|
||||
|
||||
time:
|
||||
push rbx
|
||||
sub rsp, 16
|
||||
mov rbx, rsp
|
||||
mov rdi, rbx
|
||||
xor esi, esi
|
||||
call gettimeofday
|
||||
imul rcx, qword [rbx], 1000
|
||||
mov rax, qword [rbx+8]
|
||||
mov esi, 1000
|
||||
cqo
|
||||
idiv rsi
|
||||
add rax, rcx
|
||||
add rsp, 16
|
||||
pop rbx
|
||||
ret
|
||||
|
||||
isqrt:
|
||||
xor rax, rax
|
||||
mov rcx, 1
|
||||
@@ -146,14 +172,6 @@ isqrt:
|
||||
jmp .isqrt.2
|
||||
.isqrt.5:
|
||||
ret
|
||||
|
||||
nth:
|
||||
movzx rax, byte [rdi + rsi]
|
||||
ret
|
||||
|
||||
set:
|
||||
mov [rdi + rsi], dl
|
||||
ret
|
||||
",
|
||||
);
|
||||
Ok(())
|
||||
|
||||
21
test.py
21
test.py
@@ -1,21 +0,0 @@
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
os.system("cargo build --release")
|
||||
|
||||
for x in os.listdir("examples/"):
|
||||
print(
|
||||
"\033[93mBuilding %s...\033[0m" % x,
|
||||
end="",
|
||||
flush=True,
|
||||
)
|
||||
t = time.time()
|
||||
if os.system("./target/release/zern examples/" + x) != 0:
|
||||
sys.exit(1)
|
||||
print(" %sms" % round((time.time() - t) * 1000, 2))
|
||||
|
||||
t = time.time()
|
||||
if os.system("./out") != 0:
|
||||
sys.exit(1)
|
||||
print("\033[93mRunning %s...\033[0m %sms" % (x, round((time.time() - t) * 1000, 2)))
|
||||
40
test.zr
Normal file
40
test.zr
Normal file
@@ -0,0 +1,40 @@
|
||||
func run_test[x: String] : I64
|
||||
printf("[93mBuilding %s...[0m", x)
|
||||
let cmd: String = concat("./target/release/zern examples/", x)
|
||||
|
||||
let build_start_time: I64 = time()
|
||||
if system(cmd) != 0
|
||||
exit(1)
|
||||
let build_end_time: I64 = time()
|
||||
|
||||
free(cmd)
|
||||
printf(" %ldms\n", build_end_time - build_start_time)
|
||||
|
||||
let run_start_time: I64 = time()
|
||||
if system("./out") != 0
|
||||
exit(1)
|
||||
let run_end_time: I64 = time()
|
||||
|
||||
printf("[93mRunning %s...[0m %ldms\n", x, run_end_time - run_start_time)
|
||||
|
||||
func main[] : I64
|
||||
system("cargo build --release")
|
||||
|
||||
// TODO
|
||||
run_test("euler1.zr")
|
||||
run_test("euler2.zr")
|
||||
run_test("euler3.zr")
|
||||
run_test("euler4.zr")
|
||||
run_test("euler5.zr")
|
||||
run_test("euler6.zr")
|
||||
run_test("euler7.zr")
|
||||
run_test("euler8.zr")
|
||||
run_test("euler9.zr")
|
||||
run_test("euler10.zr")
|
||||
run_test("euler12.zr")
|
||||
run_test("euler13.zr")
|
||||
run_test("euler14.zr")
|
||||
run_test("euler15.zr")
|
||||
run_test("fib.zr")
|
||||
run_test("hello.zr")
|
||||
run_test("strings.zr")
|
||||
Reference in New Issue
Block a user