local obj_nokmain = {} for name in TableWalk(kernel_obj) do if not name:find('kmain') then table.insert(obj_nokmain, name) end end for _, name in pairs({ "breakpoint", "btree1", "btree2", "cmdline", "hashtbl1", "hashtbl2", "kmalloc", "region1" }) do local map = "build/tests/ktest_" .. name .. ".map" local test_config = TableDeepCopy(common_settings) test_config.cc.includes:Add("src/kernel/include", "src/tests/ktests/"..name) test_config.cc.flags:Add('-DBUILD_KERNEL_TEST') test_config.link.flags:Add("-T src/kernel/linker.ld", "-Xlinker -Map=" .. map) test_config.cc.extension = ".ktest_" .. name .. ".o" local kmain = Compile(test_config, "src/kernel/core/kmain.c") local bin = Link(test_config, "tests/ktest_"..name, {obj_nokmain, kmain, common_libkogata, common_libc, common_libalgo}) local out = "build/tests/ktest_"..name..".log" AddJob(out, "ktest " .. name, "./src/tests/ktests/run_qemu_test.sh " .. bin .. " " .. out .. " " .. map) AddDependency(out, bin) table.insert(tests, out) end