mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-08 21:06:48 +00:00
120 lines
2.6 KiB
Makefile
120 lines
2.6 KiB
Makefile
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
# A list of enabled system call test suites from Gvisor.
|
|
# Each test suite consists of multiple test cases,
|
|
# some of which are disabled by the blocklists.
|
|
#
|
|
# Please keep the list sorted by name.
|
|
TESTS ?= \
|
|
access_test \
|
|
chown_test \
|
|
creat_test \
|
|
dup_test \
|
|
epoll_test \
|
|
eventfd_test \
|
|
fallocate_test \
|
|
fcntl_test \
|
|
flock_test \
|
|
fsync_test \
|
|
futex_test \
|
|
getdents_test \
|
|
ioctl_test \
|
|
link_test \
|
|
lseek_test \
|
|
mkdir_test \
|
|
mknod_test \
|
|
mmap_test \
|
|
mount_test \
|
|
open_create_test \
|
|
open_test \
|
|
ppoll_test \
|
|
prctl_setuid_test \
|
|
pread64_test \
|
|
preadv2_test \
|
|
proc_test \
|
|
pselect_test \
|
|
pwrite64_test \
|
|
pwritev2_test \
|
|
pty_test \
|
|
read_test \
|
|
readv_test \
|
|
rename_test \
|
|
rlimits_test \
|
|
sched_test \
|
|
sched_yield_test \
|
|
semaphore_test \
|
|
sendfile_test \
|
|
sigaction_test \
|
|
sigaltstack_test \
|
|
signalfd_test \
|
|
socket_netlink_route_test \
|
|
stat_test \
|
|
stat_times_test \
|
|
statfs_test \
|
|
symlink_test \
|
|
sync_test \
|
|
sysinfo_test \
|
|
tcp_socket_test \
|
|
timerfd_test \
|
|
timers_test \
|
|
truncate_test \
|
|
uidgid_test \
|
|
unlink_test \
|
|
utimes_test \
|
|
vdso_clock_gettime_test \
|
|
vfork_test \
|
|
write_test \
|
|
xattr_test \
|
|
# The end of the list
|
|
|
|
MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
|
CUR_DIR := $(patsubst %/,%,$(dir $(MKFILE_PATH)))
|
|
BUILD_DIR ?= $(CUR_DIR)/../../build
|
|
ifdef ASTER_PREBUILT_SYSCALL_TEST
|
|
BIN_DIR := $(ASTER_PREBUILT_SYSCALL_TEST)
|
|
else
|
|
BIN_DIR := $(BUILD_DIR)/syscall_test_bins
|
|
SRC_DIR := $(BUILD_DIR)/gvisor_src
|
|
endif
|
|
INITRAMFS ?= $(CUR_DIR)/../../build/initramfs
|
|
TARGET_DIR := $(INITRAMFS)/opt/gvisor
|
|
RUN_BASH := $(CUR_DIR)/run_gvisor_test.sh
|
|
BLOCK_LIST := $(CUR_DIR)/blocklists
|
|
EXFAT_BLOCK_LIST := $(CUR_DIR)/blocklists.exfat
|
|
|
|
.PHONY: all
|
|
all: $(TESTS)
|
|
|
|
$(TESTS): $(BIN_DIR) $(TARGET_DIR)
|
|
@cp -f $</$@ $(TARGET_DIR)/tests
|
|
|
|
ifndef ASTER_PREBUILT_SYSCALL_TEST
|
|
$(BIN_DIR): $(SRC_DIR)
|
|
@if ! type bazel > /dev/null; then \
|
|
echo "bazel is not installed, please run tools/install_bazel.sh with sudo permission to install it."; \
|
|
exit 1; \
|
|
fi
|
|
@rm -rf $@ && mkdir -p $@
|
|
@cd $(SRC_DIR) && bazel build --test_tag_filters=native //test/syscalls/...
|
|
@cp $(SRC_DIR)/bazel-bin/test/syscalls/linux/*_test $@
|
|
|
|
$(SRC_DIR):
|
|
@rm -rf $@ && mkdir -p $@
|
|
@cd $@ && git clone -b 20200921.0 https://github.com/asterinas/gvisor.git .
|
|
endif
|
|
|
|
$(TARGET_DIR): $(RUN_BASH) $(BLOCK_LIST) $(EXFAT_BLOCK_LIST)
|
|
@rm -rf $@ && mkdir -p $@
|
|
@# Prepare tests dir for test binaries
|
|
@mkdir $@/tests
|
|
@# Copy blocklists
|
|
@cp -rf $(BLOCK_LIST) $@
|
|
@# Copy exFAT specific blocklists
|
|
@cp -rf $(EXFAT_BLOCK_LIST) $@
|
|
@# Copy bash script
|
|
@cp -f $(RUN_BASH) $@
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
@rm -rf $(TARGET_DIR)
|