From 82c77b22605d691884be4c4e1e6bae8d66598d02 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 10 Aug 2025 21:37:15 +0300 Subject: make tests actually useful + Apparently quite a few components are currently broken, didn't even remember --- tests/simple_torus3d/sim.c | 70 ++++++++++++++++++++---------------------- tests/simple_torus3d/source.mk | 25 ++++++--------- 2 files changed, 43 insertions(+), 52 deletions(-) (limited to 'tests/simple_torus3d') diff --git a/tests/simple_torus3d/sim.c b/tests/simple_torus3d/sim.c index c996c42..c53eed6 100644 --- a/tests/simple_torus3d/sim.c +++ b/tests/simple_torus3d/sim.c @@ -41,42 +41,40 @@ static stat build_torus3d(struct clock_domain *clk, uint8_t x, uint8_t y, assert(pes); for (size_t i = 0; i < x; ++i) - for (size_t j = 0; j < y; ++j) - for (size_t k = 0; k < z; ++k) { - struct component *node = create_torus3d_node(i, - j, - k); - clock_domain_add(clk, node); - grid[idx_1d(i, j, k, x, y, z)] = node; - - if (i == 0 && j == 0 && k == 0) - continue; - - if (i == 0 && j == 0 && k == 1) - continue; - - struct component *imem = - create_simple_mem(4096); - init_simple_mem(imem, 0, - build_tests_simple_torus3d_test_bin_len, - build_tests_simple_torus3d_test_bin); - - uint64_t rcv = torus3d_addr(i, j, k, 0); - struct component *rv64 = - create_simple_riscv64(rcv, 0, imem, - node); - simple_riscv64_set_reg(rv64, 10, i); /* a0 */ - simple_riscv64_set_reg(rv64, 11, j); /* a1 */ - simple_riscv64_set_reg(rv64, 12, k); /* a2 */ - simple_riscv64_set_reg(rv64, 13, x); /* a3 */ - simple_riscv64_set_reg(rv64, 14, y); /* a4 */ - simple_riscv64_set_reg(rv64, 15, z); /* a5 */ - - clock_domain_add(clk, rv64); - clock_domain_add(clk, imem); - - pes[idx_1d(i, j, k, x, y, z)] = rv64; - } + for (size_t j = 0; j < y; ++j) + for (size_t k = 0; k < z; ++k) { + struct component *node = create_torus3d_node(i, j, k); + clock_domain_add(clk, node); + grid[idx_1d(i, j, k, x, y, z)] = node; + + if (i == 0 && j == 0 && k == 0) + continue; + + if (i == 0 && j == 0 && k == 1) + continue; + + struct component *imem = + create_simple_mem(4096); + init_simple_mem(imem, 0, + build_tests_simple_torus3d_test_inc_bin_len, + build_tests_simple_torus3d_test_inc_bin); + + uint64_t rcv = torus3d_addr(i, j, k, 0); + struct component *rv64 = + create_simple_riscv64(rcv, 0, imem, + node); + simple_riscv64_set_reg(rv64, 10, i); /* a0 */ + simple_riscv64_set_reg(rv64, 11, j); /* a1 */ + simple_riscv64_set_reg(rv64, 12, k); /* a2 */ + simple_riscv64_set_reg(rv64, 13, x); /* a3 */ + simple_riscv64_set_reg(rv64, 14, y); /* a4 */ + simple_riscv64_set_reg(rv64, 15, z); /* a5 */ + + clock_domain_add(clk, rv64); + clock_domain_add(clk, imem); + + pes[idx_1d(i, j, k, x, y, z)] = rv64; + } struct component *uart = create_simple_uart(); clock_domain_add(clk, uart); diff --git a/tests/simple_torus3d/source.mk b/tests/simple_torus3d/source.mk index e045a3c..d376d05 100644 --- a/tests/simple_torus3d/source.mk +++ b/tests/simple_torus3d/source.mk @@ -1,18 +1,11 @@ -TORUS3D_TEST_OBJ != ./scripts/gen-deps --sources "tests/simple_torus3d/sim.c" -TEST_PROGS += build/tests/simple_torus3d/sim +SIMPLE_TORUS3D := tests/simple_torus3d +SIMPLE_TORUS3D_SIM := $(SIMPLE_TORUS3D)/sim.c -build/tests/simple_torus3d/test.inc: tests/simple_torus3d/test.c - riscv64-unknown-elf-gcc -O2 -Wall -Wextra -ffreestanding -nostdlib \ - -march=rv64i -mabi=lp64 \ - -o build/tests/simple_torus3d/test \ - tests/simple_torus3d/test.c - riscv64-unknown-elf-objcopy -Obinary \ - build/tests/simple_torus3d/test \ - build/tests/simple_torus3d/test.bin - xxd -i build/tests/simple_torus3d/test.bin \ - > build/tests/simple_torus3d/test.inc +TESTS += $(SIMPLE_TORUS3D)/sim -build/tests/simple_torus3d/sim.o: build/tests/simple_torus3d/test.inc - -build/tests/simple_torus3d/sim: $(TORUS3D_TEST_OBJ) $(OBJS) - $(COMPILE) $(TORUS3D_TEST_OBJ) $(OBJS) -o $@ +.PHONY: $(SIMPLE_TORUS3D)/sim +$(SIMPLE_TORUS3D)/sim: $(SIMPLE_TORUS3D_SIM) libgran.a + mkdir -p build/$(SIMPLE_TORUS3D) + ./scripts/gen-rv64-fw -d build -o $(SIMPLE_TORUS3D)/test.inc $(SIMPLE_TORUS3D)/test.c + $(COMPILE_TEST) $(SIMPLE_TORUS3D_SIM) libgran.a -o build/$@ + ./scripts/gen-report -d build $@ -- cgit v1.3