From 1ef7a1a11b44e5be8d5382bac2ffd3f0c472d207 Mon Sep 17 00:00:00 2001 From: Chen Chengjun Date: Fri, 31 Oct 2025 02:32:51 +0000 Subject: [PATCH] Enable some pipe gvisor tests --- .github/workflows/test_x86.yml | 2 ++ test/src/syscall/gvisor/Makefile | 6 ++++- .../syscall/gvisor/blocklists.exfat/pipe_test | 2 ++ .../syscall/gvisor/blocklists.ext2/pipe_test | 2 ++ test/src/syscall/gvisor/blocklists/pipe_test | 23 +++++++++++++++++++ 5 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 test/src/syscall/gvisor/blocklists.exfat/pipe_test create mode 100644 test/src/syscall/gvisor/blocklists.ext2/pipe_test create mode 100644 test/src/syscall/gvisor/blocklists/pipe_test diff --git a/.github/workflows/test_x86.yml b/.github/workflows/test_x86.yml index 439420724..43e839fdd 100644 --- a/.github/workflows/test_x86.yml +++ b/.github/workflows/test_x86.yml @@ -49,10 +49,12 @@ jobs: # Syscall Test at Ext2 (MicroVM) - test_id: 'syscall-ext2-microvm' scheme: 'microvm' + extra_blocklists: 'blocklists.ext2' syscall_test_workdir: '/ext2' # Syscall Test at Ext2 (IOMMU) (Debug Build) - test_id: 'syscall-ext2-iommu-debug' scheme: 'iommu' + extra_blocklists: 'blocklists.ext2' syscall_test_workdir: '/ext2' release: false # Syscall Test at Exfat (Multiboot2) (without KVM enabled) diff --git a/test/src/syscall/gvisor/Makefile b/test/src/syscall/gvisor/Makefile index 142883149..323c7c218 100644 --- a/test/src/syscall/gvisor/Makefile +++ b/test/src/syscall/gvisor/Makefile @@ -30,6 +30,7 @@ TESTS ?= \ msync_test \ open_create_test \ open_test \ + pipe_test \ ppoll_test \ prctl_setuid_test \ pread64_test \ @@ -93,6 +94,7 @@ INITRAMFS ?= $(CUR_DIR)/../../../build/initramfs TARGET_DIR := $(INITRAMFS)/opt/gvisor RUN_BASH := $(CUR_DIR)/run_gvisor_test.sh BLOCK_LIST := $(CUR_DIR)/blocklists +EXT2_BLOCK_LIST := $(CUR_DIR)/blocklists.ext2 EXFAT_BLOCK_LIST := $(CUR_DIR)/blocklists.exfat .PHONY: all @@ -116,12 +118,14 @@ $(SRC_DIR): @cd $@ && git clone -b 20200921.0 https://github.com/asterinas/gvisor.git . endif -$(TARGET_DIR): $(RUN_BASH) $(BLOCK_LIST) $(EXFAT_BLOCK_LIST) +$(TARGET_DIR): $(RUN_BASH) $(BLOCK_LIST) $(EXT2_BLOCK_LIST) $(EXFAT_BLOCK_LIST) @rm -rf $@ && mkdir -p $@ @# Prepare tests dir for test binaries @mkdir $@/tests @# Copy blocklists @cp -rf $(BLOCK_LIST) $@ + @# Copy ext2 specific blocklists + @cp -rf $(EXT2_BLOCK_LIST) $@ @# Copy exFAT specific blocklists @cp -rf $(EXFAT_BLOCK_LIST) $@ @# Copy bash script diff --git a/test/src/syscall/gvisor/blocklists.exfat/pipe_test b/test/src/syscall/gvisor/blocklists.exfat/pipe_test new file mode 100644 index 000000000..63189dfe7 --- /dev/null +++ b/test/src/syscall/gvisor/blocklists.exfat/pipe_test @@ -0,0 +1,2 @@ +# TODO: Support pipe file in exfat filesystem. +* \ No newline at end of file diff --git a/test/src/syscall/gvisor/blocklists.ext2/pipe_test b/test/src/syscall/gvisor/blocklists.ext2/pipe_test new file mode 100644 index 000000000..0ebb273bf --- /dev/null +++ b/test/src/syscall/gvisor/blocklists.ext2/pipe_test @@ -0,0 +1,2 @@ +# TODO: Support pipe file in ext2 filesystem. +* \ No newline at end of file diff --git a/test/src/syscall/gvisor/blocklists/pipe_test b/test/src/syscall/gvisor/blocklists/pipe_test new file mode 100644 index 000000000..451732148 --- /dev/null +++ b/test/src/syscall/gvisor/blocklists/pipe_test @@ -0,0 +1,23 @@ +# TODO: Support `fstatfs` syscall for pipe files. +PipeTest.StatFS +# TODO: Support opening pipe files via `/proc/self/fd` path. +Pipes/PipeTest.OpenViaProcSelfFDWithWrites/pipe +# TODO: Deal with more flags in `pipe2` syscall. +Pipe2Test.* +Pipes/PipeTest.*/pipe2blocking +Pipes/PipeTest.*/pipe2nonblocking +# TODO: Support `F_SETPIPE_SZ/F_GETPIPE_SZ` for `fcntl` syscall. +Pipes/PipeTest.*/smallbuffer +Pipes/PipeTest.BlockWriteClosed/* +Pipes/PipeTest.BlockPartialWriteClosed/* +Pipes/PipeTest.Streaming/* +Pipes/PipeTest.SizeChange* +# TODO: Support seek operation on pipe files. +Pipes/PipeTest.Seek/* +Pipes/PipeTest.OffsetCalls/* +# TODO: Support `O_LARGEFILE` flag. +Pipes/PipeTest.Flags/* +# TODO: Support ioctl for pipe files. +Pipes/PipeTest.FionRead/* +# TODO: Support fdinfo in procfs. +Pipes/PipeTest.ProcFDInfoReleasesFile/* \ No newline at end of file