From 2f4753bdfa6a7b92dd1aa0d6140b00f525a4b859 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sat, 27 Dec 2025 19:42:24 +0700 Subject: [PATCH 1/2] Add single test run in check script --- Makefile | 4 ++++ check.sh | 14 ++++++++++++++ tests/Makefile | 6 ++++++ 3 files changed, 24 insertions(+) diff --git a/Makefile b/Makefile index 0c350fd996..946ecec987 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ CARGO_COMMON_FLAGS=-Z build-std=core,alloc,compiler_builtins CARGOFLAGS?=$(CARGO_COMMON_FLAGS) CC_WRAPPER?= RUSTCFLAGS?= +TESTBIN?= export OBJCOPY?=objcopy export CARGO_TARGET_DIR?=$(shell pwd)/target @@ -115,6 +116,9 @@ test: sysroot/$(TARGET) # $(CARGO_TEST) test $(MAKE) -C tests run +test-once: sysroot/$(TARGET) + $(MAKE) -C tests run-once TESTBIN=$(TESTBIN) + $(BUILD)/$(PROFILE)/libc.so: $(BUILD)/$(PROFILE)/librelibc.a $(BUILD)/openlibm/libopenlibm.a $(CC) -nostdlib \ diff --git a/check.sh b/check.sh index d62ef11833..604a2d8eb8 100755 --- a/check.sh +++ b/check.sh @@ -12,6 +12,7 @@ show_help() { echo "" echo "Options:" echo " --test Run 'make test' instead of 'make all'" + echo " --test= Run single 'make test'" echo " --cargo Run 'cargo check' / 'cargo test' instead" echo " (note: cargo test is currently not maintained for relibc)" echo " --host Run the command on host (linux) target" @@ -54,6 +55,7 @@ CHECK_ALL=false CMD_ACTION="make" CARGO_ACTION="check" MAKE_ACTION="all" +TEST_BIN="" IS_HOST=0 while [[ $# -gt 0 ]]; do @@ -65,6 +67,10 @@ while [[ $# -gt 0 ]]; do MAKE_ACTION="test" CARGO_ACTION="test" ;; + --test=*) + TEST_BIN="${1#*=}" + MAKE_ACTION="test-once" + ;; --cargo) CMD_ACTION="cargo" ;; @@ -104,6 +110,14 @@ run_redoxer() { REDOXER_ENV="" fi + if [ "$TEST_BIN" != "" ]; then + if [ "$IS_HOST" -eq 0 ]; then + MAKE_ACTION="$MAKE_ACTION TESTBIN=bins_dynamic/$TEST_BIN" + else + MAKE_ACTION="$MAKE_ACTION TESTBIN=bins_static/$TEST_BIN" + fi + fi + if [ "$CMD_ACTION" == "make" ]; then CMD_OPT="-j $(nproc) $MAKE_ACTION" else diff --git a/tests/Makefile b/tests/Makefile index a01d99ff5a..7d2a7f9169 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -335,6 +335,12 @@ run: bins_verify/relibc-tests $(BINS) $(EXPECT_BINS) $(EXPECT_INPUT_BINS) expect "$$(readlink -e $${exp}.exp)" "$$(readlink -e $${exp})" test args || exit $$?; \ done +run-once: bins_verify/relibc-tests $(BUILD)/$(TESTBIN) + @echo "\033[1;36;49mRunning single test $(TESTBIN) $*\033[0m" + @if [ -f "expected/$(TESTBIN).stdout" ]; then \ + $(TEST_RUNNER) $< $(TESTBIN); \ + else $(TEST_RUNNER) $< -s$(TESTBIN); fi + bins_verify/relibc-tests: src/main.rs $(CARGO_TEST) build --release --bin relibc-tests --out-dir bins_verify -Z unstable-options From 5bd0515c6a8771f491eeda411cc1f243bfcdfa88 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sat, 27 Dec 2025 19:42:55 +0700 Subject: [PATCH 2/2] Add link flag for boostrapping --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 946ecec987..a52e280493 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ CARGO_COMMON_FLAGS=-Z build-std=core,alloc,compiler_builtins CARGOFLAGS?=$(CARGO_COMMON_FLAGS) CC_WRAPPER?= RUSTCFLAGS?= +LINKFLAGS?=-lgcc TESTBIN?= export OBJCOPY?=objcopy @@ -129,7 +130,7 @@ $(BUILD)/$(PROFILE)/libc.so: $(BUILD)/$(PROFILE)/librelibc.a $(BUILD)/openlibm/l -Wl,--allow-multiple-definition \ -Wl,--whole-archive $^ -Wl,--no-whole-archive \ -Wl,-soname,libc.so.6 \ - -lgcc \ + $(LINKFLAGS) \ -o $@ # Debug targets