mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-08 12:56:48 +00:00
53 lines
1.7 KiB
Makefile
53 lines
1.7 KiB
Makefile
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
LTP_DIR ?= /opt/ltp
|
|
MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
|
CUR_DIR := $(patsubst %/,%,$(dir $(MKFILE_PATH)))
|
|
INITRAMFS ?= $(CUR_DIR)/../../build/initramfs
|
|
TARGET_DIR := $(INITRAMFS)/opt/ltp
|
|
RUN_BASH := $(CUR_DIR)/run_ltp_test.sh
|
|
ALL_TESTS := $(CUR_DIR)/testcases/all.txt
|
|
EXT2_BLOCKLIST := $(CUR_DIR)/testcases/blocked/ext2.txt
|
|
EXFAT_BLOCKLIST := $(CUR_DIR)/testcases/blocked/exfat.txt
|
|
|
|
.PHONY: all
|
|
all: $(TARGET_DIR)
|
|
|
|
$(TARGET_DIR): $(RUN_BASH) $(ALL_TESTS) $(EXT2_BLOCKLIST) $(EXFAT_BLOCKLIST)
|
|
@rm -rf $@ && mkdir -p $@
|
|
@# Prepare tests dir for test binaries
|
|
@mkdir -p $@/testcases/bin
|
|
@mkdir -p $@/runtest
|
|
@awk '!/^#/ && NF' $(ALL_TESTS) > $@/all.txt
|
|
@if [ "$(SYSCALL_TEST_WORKDIR)" = "/ext2" ]; then \
|
|
grep -vxF -f $(EXT2_BLOCKLIST) $@/all.txt > $@/filtered.txt; \
|
|
elif [ "$(SYSCALL_TEST_WORKDIR)" = "/exfat" ]; then \
|
|
grep -vxF -f $(EXFAT_BLOCKLIST) $@/all.txt > $@/filtered.txt; \
|
|
else \
|
|
cp -f $@/all.txt $@/filtered.txt; \
|
|
fi;
|
|
@# Process syscall testcases and copy binaries
|
|
@while read -r syscall binary params; do \
|
|
if grep -q "^$$syscall$$" $@/filtered.txt; then \
|
|
if [ -f $(LTP_DIR)/testcases/bin/$$binary ]; then \
|
|
cp -f $(LTP_DIR)/testcases/bin/$$binary $@/testcases/bin; \
|
|
echo "$$syscall $$binary $$params" >> $@/runtest/syscalls; \
|
|
else \
|
|
echo "Warning: $$binary not found (skipping)"; \
|
|
fi; \
|
|
fi; \
|
|
done < $(LTP_DIR)/runtest/syscalls
|
|
@# Remove intermediate files
|
|
@rm -f $@/all.txt $@/filtered.txt
|
|
@# Copy bash scripts
|
|
@cp -r $(LTP_DIR)/bin $@
|
|
@cp -f $(LTP_DIR)/runltp $@
|
|
@cp -f $(LTP_DIR)/Version $@
|
|
@cp -f $(LTP_DIR)/ver_linux $@
|
|
@cp -f $(LTP_DIR)/IDcheck.sh $@
|
|
@cp -f $(RUN_BASH) $@
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
@rm -rf $(TARGET_DIR)
|