# 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 $ /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)