diff --git a/Makefile b/Makefile index 8b1d8ea42..668ae8021 100644 --- a/Makefile +++ b/Makefile @@ -99,13 +99,9 @@ CARGO_OSDK_BUILD_ARGS += --kcmd-args="EXTRA_BLOCKLISTS_DIRS=$(EXTRA_BLOCKLISTS_D CARGO_OSDK_BUILD_ARGS += --init-args="/opt/syscall_test/run_syscall_test.sh" else ifeq ($(AUTO_TEST), regression) ENABLE_REGRESSION_TEST := true - ifneq ($(SMP), 1) - CARGO_OSDK_BUILD_ARGS += --kcmd-args="BLOCK_UNSUPPORTED_SMP_TESTS=1" - endif CARGO_OSDK_BUILD_ARGS += --kcmd-args="INTEL_TDX=$(INTEL_TDX)" CARGO_OSDK_BUILD_ARGS += --init-args="/test/run_regression_test.sh" else ifeq ($(AUTO_TEST), boot) -ENABLE_REGRESSION_TEST := true CARGO_OSDK_BUILD_ARGS += --init-args="/test/boot_hello.sh" else ifeq ($(AUTO_TEST), vsock) ENABLE_REGRESSION_TEST := true diff --git a/test/initramfs/Makefile b/test/initramfs/Makefile index f5a1cc545..7e0bd9a21 100644 --- a/test/initramfs/Makefile +++ b/test/initramfs/Makefile @@ -9,7 +9,7 @@ ENABLE_REGRESSION_TEST ?= false # Specify platform macros when building regression tests (supported: asterinas, linux). # - asterinas: Define both `__asterinas__` and `__linux__`. Tests may fail in Linux. # - linux: Define only `__linux__`. Tests may fail in Asterinas. -BASIC_TEST_PLATFORM ?= asterinas +TEST_PLATFORM ?= asterinas DNS_SERVER ?= none # Set Nix's cached tarballs to be live for a longer period of time (30 days) to avoid network traffics. # Nix's default value is rather small (1 hour or 3600 seconds). @@ -65,9 +65,9 @@ $(INITRAMFS_IMAGE): $(INITRAMFS) @nix-build \ --tarball-ttl $(NIXPKGS_CACHE_TTL) \ --argstr target $(OSDK_TARGET_ARCH) \ - --arg enableRegressionTest $(ENABLE_REGRESSION_TEST) \ - --argstr basicTestPlatform $(BASIC_TEST_PLATFORM) \ + --argstr testPlatform $(TEST_PLATFORM) \ --arg enableBenchmark $(ENABLE_BENCHMARK) \ + --arg enableRegressionTest $(ENABLE_REGRESSION_TEST) \ --arg enableSyscallTest $(ENABLE_SYSCALL_TEST) \ --argstr syscallTestSuite $(SYSCALL_TEST_SUITE) \ --argstr syscallTestWorkDir $(SYSCALL_TEST_WORKDIR) \ @@ -82,9 +82,9 @@ $(INITRAMFS): @nix-build \ --tarball-ttl $(NIXPKGS_CACHE_TTL) \ --argstr target $(OSDK_TARGET_ARCH) \ - --arg enableRegressionTest $(ENABLE_REGRESSION_TEST) \ - --argstr basicTestPlatform $(BASIC_TEST_PLATFORM) \ + --argstr testPlatform $(TEST_PLATFORM) \ --arg enableBenchmark $(ENABLE_BENCHMARK) \ + --arg enableRegressionTest $(ENABLE_REGRESSION_TEST) \ --arg enableSyscallTest $(ENABLE_SYSCALL_TEST) \ --argstr syscallTestSuite $(SYSCALL_TEST_SUITE) \ --argstr syscallTestWorkDir $(SYSCALL_TEST_WORKDIR) \ @@ -133,14 +133,6 @@ riscv64_pkgs: -A regression.package \ -A syscall.ltp -general_pkgs: - @nix-build \ - nix/default.nix \ - --tarball-ttl $(NIXPKGS_CACHE_TTL) \ - $(NIX_QUIET) \ - --out-link /nix/var/nix/gcroots/auto/general \ - -A regression.mongoose_src - install_host_pkgs: @nix-env \ --file nix/default.nix \ diff --git a/test/initramfs/README.md b/test/initramfs/README.md index c0ed8fd36..239bf0557 100644 --- a/test/initramfs/README.md +++ b/test/initramfs/README.md @@ -5,18 +5,18 @@ This directory contains the test suites of Asterinas running in initramfs, inclu ## Directory Structure ``` -test/ +initramfs/ ├── src/ -│ ├── regression/ # Regression tests │ ├── benchmark/ # Supported benchmark test suites +│ ├── regression/ # Regression tests │ ├── etc/ # Configuration files │ └── syscall/ # Syscall test suites │ ├── ltp/ # LTP syscall test suite │ └── gvisor/ # Gvisor syscall test suite ├── nix/ │ ├── benchmark/ # Nix expressions for `benchmark` +│ ├── regression/ # Nix expressions for `regression` │ ├── syscall/ # Nix expressions for `syscall` -│ ├── regression.nix # Nix expression for `regression` │ └── initramfs.nix # Nix expression for packaging initramfs ├── Makefile └── README.md diff --git a/test/initramfs/nix/default.nix b/test/initramfs/nix/default.nix index b701adba8..1ad2e1bfd 100644 --- a/test/initramfs/nix/default.nix +++ b/test/initramfs/nix/default.nix @@ -1,8 +1,7 @@ -{ target ? "x86_64", enableRegressionTest ? false -, basicTestPlatform ? "asterinas", enableBenchmark ? false -, enableSyscallTest ? false, syscallTestSuite ? "ltp" -, syscallTestWorkDir ? "/tmp", dnsServer ? "none", smp ? 1 -, initramfsCompressed ? true, }: +{ target ? "x86_64", testPlatform ? "asterinas", enableBenchmark ? false +, enableRegressionTest ? false, enableSyscallTest ? false +, syscallTestSuite ? "ltp", syscallTestWorkDir ? "/tmp", dnsServer ? "none" +, smp ? 1, initramfsCompressed ? true, }: let crossSystem.config = if target == "x86_64" then "x86_64-unknown-linux-gnu" @@ -24,10 +23,9 @@ let }; in rec { # Packages needed by initramfs - regression = - pkgs.callPackage ./regression.nix { testPlatform = basicTestPlatform; }; busybox = pkgs.busybox; benchmark = pkgs.callPackage ./benchmark { }; + regression = pkgs.callPackage ./regression { inherit testPlatform; }; syscall = pkgs.callPackage ./syscall { inherit smp; testSuite = syscallTestSuite; diff --git a/test/initramfs/nix/initramfs.nix b/test/initramfs/nix/initramfs.nix index c199d13da..b23dca95d 100644 --- a/test/initramfs/nix/initramfs.nix +++ b/test/initramfs/nix/initramfs.nix @@ -1,6 +1,7 @@ { lib, stdenvNoCC, fetchFromGitHub, hostPlatform, writeClosure, busybox , regression, benchmark, syscall, dnsServer, pkgs }: let + boot_hello = builtins.path { path = ./../src/boot_hello.sh; }; etc = lib.fileset.toSource { root = ./../src/etc; fileset = ./../src/etc; @@ -37,6 +38,8 @@ in stdenvNoCC.mkDerivation { cp -r ${etc}/* $out/etc/ + cp ${boot_hello} $out/test/boot_hello.sh + cp ${resolv_conf}/resolv.conf $out/etc/ ${lib.optionalString (regression != null) '' diff --git a/test/initramfs/nix/regression.nix b/test/initramfs/nix/regression.nix deleted file mode 100644 index 89f3cc4d8..000000000 --- a/test/initramfs/nix/regression.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, hostPlatform, glibc, libnl, callPackage -, testPlatform, }: rec { - - tdxAttest = lib.optionalAttrs (builtins.getEnv "INTEL_TDX" == "1") - (callPackage ./tdx-attest.nix { }); - - mongoose_src = fetchFromGitHub { - owner = "cesanta"; - repo = "mongoose"; - rev = "7.13"; - sha256 = "sha256-9XHUE8SVOG/X7SIB52C8EImPx4XZ7B/5Ojwmb0PkiuI"; - }; - - package = stdenv.mkDerivation { - pname = "regression"; - version = "0.1.0"; - src = lib.fileset.toSource { - root = ./../src; - fileset = ./../src/regression; - }; - - MONGOOSE_DIR = "${mongoose_src}"; - - INTEL_TDX = builtins.getEnv "INTEL_TDX"; - TDX_ATTEST_DIR = lib.optionalString (builtins.getEnv "INTEL_TDX" == "1") - "${tdxAttest}/QuoteGeneration"; - - HOST_PLATFORM = "${hostPlatform.system}"; - CC = "${stdenv.cc.targetPrefix}cc"; - C_FLAGS = "-I${libnl.dev}/include/libnl3" - + (if testPlatform == "asterinas" then " -D__asterinas__" else ""); - # FIXME: Excluding `glibc` allows the build to succeed, but causes some tests to fail. - buildInputs = [ glibc glibc.static libnl ]; - buildCommand = '' - BUILD_DIR=$(mktemp -d) - mkdir -p $BUILD_DIR - cp -r $src/regression $BUILD_DIR/ - - pushd $BUILD_DIR - make --no-print-directory -C regression - popd - - mkdir -p $out - mv build/initramfs/test/* $out/ - ''; - }; -} diff --git a/test/initramfs/nix/regression/common.nix b/test/initramfs/nix/regression/common.nix new file mode 100644 index 000000000..cb82d56eb --- /dev/null +++ b/test/initramfs/nix/regression/common.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, glibc, hostPlatform, dir, testPlatform ? "asterinas" +, extraEnv ? { }, extraBuildInputs ? [ ] }: +stdenv.mkDerivation ({ + pname = "${dir}-test"; + version = "0.1.0"; + src = lib.fileset.toSource { + root = ./../../src/regression; + fileset = lib.fileset.unions [ + ./../../src/regression/common + ./../../src/regression/${dir} + ]; + }; + + HOST_PLATFORM = "${hostPlatform.system}"; + TEST_PLATFORM = "${testPlatform}"; + + CC = "${stdenv.cc.targetPrefix}cc"; + + buildInputs = [ glibc glibc.static ] ++ extraBuildInputs; + buildCommand = '' + mkdir -p $out + make --no-print-directory BUILD_DIR=$(mktemp -d) OUTPUT_DIR=$out -C "$src/${dir}" + ''; +} // extraEnv) diff --git a/test/initramfs/nix/regression/default.nix b/test/initramfs/nix/regression/default.nix new file mode 100644 index 000000000..45a8603eb --- /dev/null +++ b/test/initramfs/nix/regression/default.nix @@ -0,0 +1,42 @@ +{ lib, pkgs, stdenv, callPackage, testPlatform ? "asterinas", }: rec { + scripts = lib.fileset.toSource { + root = ./../../src/regression/scripts; + fileset = lib.fileset.fileFilter (file: file.hasExt "sh") + ./../../src/regression/scripts; + }; + + allPkgs = lib.listToAttrs (map (dir: { + name = dir; + value = callPackage ./common.nix { inherit dir testPlatform; }; + }) [ "device" "fs" "hello_world" "io" "ipc" "memory" "process" "security" ]) + // { + network = callPackage ./common.nix { + dir = "network"; + inherit testPlatform; + extraEnv = { C_FLAGS = " -I${pkgs.libnl.dev}/include/libnl3"; }; + extraBuildInputs = [ pkgs.libnl ]; + }; + } // lib.optionalAttrs (pkgs.hostPlatform.system == "x86_64-linux") { + intel_tdx = callPackage ./common.nix { + dir = "intel_tdx"; + inherit testPlatform; + extraEnv = { + TDX_ATTEST_DIR = + "${callPackage ./tdx-attest.nix { }}/QuoteGeneration"; + }; + }; + }; + + package = stdenv.mkDerivation { + pname = "regression"; + version = "0.1.0"; + buildCommand = '' + mkdir -p $out + cp ${scripts}/* $out + + ${lib.concatMapStringsSep "\n" + (name: "ln -s ${toString allPkgs.${name}}/${name} $out/${name}") + (lib.attrNames allPkgs)} + ''; + }; +} diff --git a/test/initramfs/nix/tdx-attest.nix b/test/initramfs/nix/regression/tdx-attest.nix similarity index 100% rename from test/initramfs/nix/tdx-attest.nix rename to test/initramfs/nix/regression/tdx-attest.nix diff --git a/test/initramfs/src/regression/scripts/boot_hello.sh b/test/initramfs/src/boot_hello.sh similarity index 100% rename from test/initramfs/src/regression/scripts/boot_hello.sh rename to test/initramfs/src/boot_hello.sh diff --git a/test/initramfs/src/regression/Makefile b/test/initramfs/src/regression/Makefile index be353857a..3ee5db326 100644 --- a/test/initramfs/src/regression/Makefile +++ b/test/initramfs/src/regression/Makefile @@ -7,70 +7,37 @@ MAKEFLAGS += --no-builtin-rules MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) CUR_DIR := $(patsubst %/,%,$(dir $(MKFILE_PATH))) +BUILD_DIR ?= $(CUR_DIR)/../../build +OUTPUT_DIR ?= $(BUILD_DIR)/initramfs/test -INITRAMFS ?= $(CUR_DIR)/../../build/initramfs -TEST_BUILD_DIR ?= $(INITRAMFS)/test - -# These test apps are sorted by name -TEST_APPS := \ - alarm \ - capability \ - chroot \ - clone3 \ - cpu_affinity \ - devfs \ - epoll \ - eventfd2 \ - execve \ - exit \ - ext2 \ - fdatasync \ - file_io \ - fork_c \ - getcpu \ - getpid \ - hello_pie \ - inotify \ - itimer \ - mmap \ - mongoose \ - namespace \ - network \ - pipe \ - prctl \ - process \ - procfs \ - pseudofs \ - pthread \ - pty \ - sched \ - shm \ - vsock \ - -# TODO: Refactor those tests for target CPU arch using C macro-based conditional compilation. -ifeq ($(HOST_PLATFORM), x86_64-linux) -TEST_APPS += \ - fork \ - hello_c \ +SUBDIRS := \ + device \ + fs \ hello_world \ - signal_c + io \ + ipc \ + memory \ + network \ + process \ + scripts \ + security \ + +ifeq ($(HOST_PLATFORM), x86_64-linux) +SUBDIRS += intel_tdx endif -ifeq ($(INTEL_TDX), 1) -TEST_APPS += generate_tdx_quote -endif - -# The C head and source files of all the apps, excluding the downloaded mongoose files -C_SOURCES := \ - $(shell find . -type f \( -name "*.c" -or -name "*.h" \) \ - ! -name "mongoose.c" ! -name "mongoose.h") +# The C head and source files of all testcases. +C_SOURCES := $(shell find . -type f \( -name "*.c" -or -name "*.h" \)) .PHONY: all -all: $(TEST_APPS) scripts +all: $(SUBDIRS) -.PHONY: $(TEST_APPS) -$(TEST_APPS): - @make --no-print-directory -C $@ +$(OUTPUT_DIR): + @mkdir -p $@ + +.PHONY: $(SUBDIRS) +$(SUBDIRS): $(OUTPUT_DIR) + @make --no-print-directory BUILD_DIR=$(BUILD_DIR) OUTPUT_DIR=$(OUTPUT_DIR) -C $@ .PHONY: format format: @@ -81,10 +48,3 @@ format: check: @echo "Checking code format for regression tests..." @clang-format --dry-run --Werror $(C_SOURCES) - -$(TEST_BUILD_DIR): - @mkdir -p $@ - -.PHONY: scripts -scripts: | $(TEST_BUILD_DIR) - @make --no-print-directory BUILD_DIR=$(TEST_BUILD_DIR) -C scripts diff --git a/test/initramfs/src/regression/capability/Makefile b/test/initramfs/src/regression/capability/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/capability/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/chroot/Makefile b/test/initramfs/src/regression/chroot/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/chroot/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/clone3/Makefile b/test/initramfs/src/regression/clone3/Makefile deleted file mode 100644 index 9a664a9ad..000000000 --- a/test/initramfs/src/regression/clone3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/common/Makefile b/test/initramfs/src/regression/common/Makefile new file mode 100644 index 000000000..388f16991 --- /dev/null +++ b/test/initramfs/src/regression/common/Makefile @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: MPL-2.0 + +MAIN_MAKEFILE := $(firstword $(MAKEFILE_LIST)) +INCLUDE_MAKEFILE := $(lastword $(MAKEFILE_LIST)) +CUR_DIR := $(shell dirname $(realpath $(MAIN_MAKEFILE))) +INCLUDE_MAKEFILE_DIR := $(shell dirname $(realpath $(INCLUDE_MAKEFILE))) +COMMON_PREFIX := $(shell dirname $(INCLUDE_MAKEFILE_DIR)) +CUR_DIR_NAME := $(subst $(COMMON_PREFIX)/,,$(CUR_DIR)) + +BUILD_DIR ?= $(INCLUDE_MAKEFILE_DIR)/../../../build +OUTPUT_DIR ?= $(BUILD_DIR)/initramfs/test +OBJ_OUTPUT_DIR := $(OUTPUT_DIR)/$(CUR_DIR_NAME) +DEP_OUTPUT_DIR := $(BUILD_DIR)/dep/$(CUR_DIR_NAME) +C_SRCS := $(wildcard *.c) +C_OBJS := $(addprefix $(OBJ_OUTPUT_DIR)/,$(C_SRCS:%.c=%)) +C_DEPS := $(addprefix $(DEP_OUTPUT_DIR)/,$(C_SRCS:%.c=%.d)) +ASM_SRCS := $(wildcard *.S) +ASM_OBJS := $(addprefix $(OBJ_OUTPUT_DIR)/,$(ASM_SRCS:%.S=%)) +SCRIPTS := $(addprefix $(OBJ_OUTPUT_DIR)/, $(wildcard *.sh)) + +CC ?= gcc +C_FLAGS += -Wall -Werror + +HOST_PLATFORM ?= x86_64-linux +TEST_PLATFORM ?= asterinas + +ifeq ($(TEST_PLATFORM),asterinas) +C_FLAGS += -D__asterinas__ +endif + +ifneq ($(C_OBJS_FILTER),) + FILTERED_C_OBJS := $(addprefix $(OBJ_OUTPUT_DIR)/,$(C_OBJS_FILTER)) + C_OBJS := $(filter-out $(FILTERED_C_OBJS),$(C_OBJS)) +endif + +ifneq ($(ASM_OBJS_FILTER),) + FILTERED_ASM_OBJS := $(addprefix $(OBJ_OUTPUT_DIR)/,$(ASM_OBJS_FILTER)) + ASM_OBJS := $(filter-out $(FILTERED_ASM_OBJS),$(ASM_OBJS)) +endif + +ifneq ($(SCRIPTS_FILTER),) + FILTERED_SCRIPTS := $(addprefix $(OBJ_OUTPUT_DIR)/,$(SCRIPTS_FILTER)) + SCRIPTS := $(filter-out $(FILTERED_SCRIPTS),$(SCRIPTS)) +endif + +ifneq ($(SUBDIRS_FILTER),) + SUBDIRS := $(filter-out $(SUBDIRS_FILTER),$(SUBDIRS)) +endif + +.PHONY: all +all: $(C_OBJS) $(ASM_OBJS) $(SUBDIRS) $(SCRIPTS) + +$(OBJ_OUTPUT_DIR) $(DEP_OUTPUT_DIR): + @mkdir -p $@ + +$(OBJ_OUTPUT_DIR)/%: %.c | $(OBJ_OUTPUT_DIR) $(DEP_OUTPUT_DIR) + @$(CC) $(C_FLAGS) $< -o $@ $(EXTRA_C_FLAGS) \ + -MMD -MF $(DEP_OUTPUT_DIR)/$*.d + @echo "CC <= $@" + +-include $(C_DEPS) + +$(OBJ_OUTPUT_DIR)/%: %.S | $(OBJ_OUTPUT_DIR) + @$(CC) $(C_FLAGS) $(EXTRA_C_FLAGS) $< -o $@ + @echo "CC <= $@" + +$(OBJ_OUTPUT_DIR)/%.sh: %.sh | $(OBJ_OUTPUT_DIR) + @cp $< $@ + +.PHONY: $(SUBDIRS) +$(SUBDIRS): + @make --no-print-directory -C $@ diff --git a/test/initramfs/src/regression/test.h b/test/initramfs/src/regression/common/test.h similarity index 100% rename from test/initramfs/src/regression/test.h rename to test/initramfs/src/regression/common/test.h diff --git a/test/initramfs/src/regression/cpu_affinity/Makefile b/test/initramfs/src/regression/cpu_affinity/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/cpu_affinity/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/devfs/Makefile b/test/initramfs/src/regression/devfs/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/devfs/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/device/Makefile b/test/initramfs/src/regression/device/Makefile new file mode 100644 index 000000000..65c63847f --- /dev/null +++ b/test/initramfs/src/regression/device/Makefile @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: MPL-2.0 + +SUBDIRS := pty + +include ../common/Makefile diff --git a/test/initramfs/src/regression/devfs/evdev.c b/test/initramfs/src/regression/device/evdev.c similarity index 98% rename from test/initramfs/src/regression/devfs/evdev.c rename to test/initramfs/src/regression/device/evdev.c index 2236466fb..fe63666b7 100644 --- a/test/initramfs/src/regression/devfs/evdev.c +++ b/test/initramfs/src/regression/device/evdev.c @@ -9,7 +9,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" #define INPUT_DIR "/dev/input" #define MAX_EVDEV_DEVICES 16 diff --git a/test/initramfs/src/regression/devfs/framebuffer.c b/test/initramfs/src/regression/device/framebuffer.c similarity index 99% rename from test/initramfs/src/regression/devfs/framebuffer.c rename to test/initramfs/src/regression/device/framebuffer.c index 3e28ec908..5300b9e20 100644 --- a/test/initramfs/src/regression/devfs/framebuffer.c +++ b/test/initramfs/src/regression/device/framebuffer.c @@ -15,7 +15,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" #define FB_DEVICE "/dev/fb0" #define PAGE_SIZE 4096 diff --git a/test/initramfs/src/regression/devfs/full.c b/test/initramfs/src/regression/device/full.c similarity index 98% rename from test/initramfs/src/regression/devfs/full.c rename to test/initramfs/src/regression/device/full.c index 7ea168b09..a47b1942d 100644 --- a/test/initramfs/src/regression/devfs/full.c +++ b/test/initramfs/src/regression/device/full.c @@ -6,7 +6,7 @@ #include #include #include -#include "../test.h" +#include "../common/test.h" #define DEVICE_PATH "/dev/full" #define READ_SIZE 100 diff --git a/test/initramfs/src/regression/ext2/Makefile b/test/initramfs/src/regression/device/pty/Makefile similarity index 54% rename from test/initramfs/src/regression/ext2/Makefile rename to test/initramfs/src/regression/device/pty/Makefile index a24f8189d..a1e0b1931 100644 --- a/test/initramfs/src/regression/ext2/Makefile +++ b/test/initramfs/src/regression/device/pty/Makefile @@ -1,3 +1,3 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk \ No newline at end of file +include ../../common/Makefile diff --git a/test/initramfs/src/regression/pty/close_pty.c b/test/initramfs/src/regression/device/pty/close_pty.c similarity index 99% rename from test/initramfs/src/regression/pty/close_pty.c rename to test/initramfs/src/regression/device/pty/close_pty.c index e97cf479e..a9d2a1359 100644 --- a/test/initramfs/src/regression/pty/close_pty.c +++ b/test/initramfs/src/regression/device/pty/close_pty.c @@ -6,7 +6,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" int master; int slave; diff --git a/test/initramfs/src/regression/pty/open_ptmx.c b/test/initramfs/src/regression/device/pty/open_ptmx.c similarity index 98% rename from test/initramfs/src/regression/pty/open_ptmx.c rename to test/initramfs/src/regression/device/pty/open_ptmx.c index 5bf620ae6..1ab1ad541 100644 --- a/test/initramfs/src/regression/pty/open_ptmx.c +++ b/test/initramfs/src/regression/device/pty/open_ptmx.c @@ -9,7 +9,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" #define DEV_PTMX "/dev/ptmx" diff --git a/test/initramfs/src/regression/pty/open_pty.c b/test/initramfs/src/regression/device/pty/open_pty.c similarity index 100% rename from test/initramfs/src/regression/pty/open_pty.c rename to test/initramfs/src/regression/device/pty/open_pty.c diff --git a/test/initramfs/src/regression/pty/pty_blocking.c b/test/initramfs/src/regression/device/pty/pty_blocking.c similarity index 99% rename from test/initramfs/src/regression/pty/pty_blocking.c rename to test/initramfs/src/regression/device/pty/pty_blocking.c index a0ee670ff..409176e36 100644 --- a/test/initramfs/src/regression/pty/pty_blocking.c +++ b/test/initramfs/src/regression/device/pty/pty_blocking.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../../common/test.h" #include #include diff --git a/test/initramfs/src/regression/pty/pty_packet_mode.c b/test/initramfs/src/regression/device/pty/pty_packet_mode.c similarity index 99% rename from test/initramfs/src/regression/pty/pty_packet_mode.c rename to test/initramfs/src/regression/device/pty/pty_packet_mode.c index 30344b73a..0abcac388 100644 --- a/test/initramfs/src/regression/pty/pty_packet_mode.c +++ b/test/initramfs/src/regression/device/pty/pty_packet_mode.c @@ -8,7 +8,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" int master; int slave; diff --git a/test/initramfs/src/regression/devfs/random.c b/test/initramfs/src/regression/device/random.c similarity index 98% rename from test/initramfs/src/regression/devfs/random.c rename to test/initramfs/src/regression/device/random.c index 4aba6f338..3672469c8 100644 --- a/test/initramfs/src/regression/devfs/random.c +++ b/test/initramfs/src/regression/device/random.c @@ -3,7 +3,7 @@ #include #include #include -#include "../test.h" +#include "../common/test.h" #define PAGE_SIZE 4096 diff --git a/test/initramfs/src/regression/device/run_test.sh b/test/initramfs/src/regression/device/run_test.sh new file mode 100755 index 000000000..575b2a6cc --- /dev/null +++ b/test/initramfs/src/regression/device/run_test.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +./pty/close_pty +./pty/open_ptmx +./pty/open_pty +./pty/pty_blocking +./pty/pty_packet_mode +./evdev +./framebuffer +./full +./random diff --git a/test/initramfs/src/regression/epoll/Makefile b/test/initramfs/src/regression/epoll/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/epoll/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/eventfd2/Makefile b/test/initramfs/src/regression/eventfd2/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/eventfd2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/fork_c/Makefile b/test/initramfs/src/regression/fork_c/Makefile deleted file mode 100644 index cd19ae20b..000000000 --- a/test/initramfs/src/regression/fork_c/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := -static diff --git a/test/initramfs/src/regression/fs/Makefile b/test/initramfs/src/regression/fs/Makefile new file mode 100644 index 000000000..57873dc4f --- /dev/null +++ b/test/initramfs/src/regression/fs/Makefile @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: MPL-2.0 + +SUBDIRS := \ + chroot \ + ext2 \ + fdatasync \ + inotify \ + overlayfs \ + procfs \ + pseudofs \ + +include ../common/Makefile diff --git a/test/initramfs/src/regression/fs/chroot/Makefile b/test/initramfs/src/regression/fs/chroot/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/fs/chroot/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/chroot/chroot_jail.c b/test/initramfs/src/regression/fs/chroot/chroot_jail.c similarity index 98% rename from test/initramfs/src/regression/chroot/chroot_jail.c rename to test/initramfs/src/regression/fs/chroot/chroot_jail.c index 7531ed8e2..f5daaad59 100644 --- a/test/initramfs/src/regression/chroot/chroot_jail.c +++ b/test/initramfs/src/regression/fs/chroot/chroot_jail.c @@ -15,7 +15,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" FN_SETUP(create_chroot_env) { diff --git a/test/initramfs/src/regression/fs/ext2/Makefile b/test/initramfs/src/regression/fs/ext2/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/fs/ext2/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/ext2/mknod.c b/test/initramfs/src/regression/fs/ext2/mknod.c similarity index 97% rename from test/initramfs/src/regression/ext2/mknod.c rename to test/initramfs/src/regression/fs/ext2/mknod.c index 490244945..e6b03e296 100644 --- a/test/initramfs/src/regression/ext2/mknod.c +++ b/test/initramfs/src/regression/fs/ext2/mknod.c @@ -9,7 +9,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" #define NULL_DEVICE_PATH "/ext2/my_null_device" #define ZERO_DEVICE_PATH "/ext2/my_zero_device" diff --git a/test/initramfs/src/regression/ext2/unix_socket.c b/test/initramfs/src/regression/fs/ext2/unix_socket.c similarity index 97% rename from test/initramfs/src/regression/ext2/unix_socket.c rename to test/initramfs/src/regression/fs/ext2/unix_socket.c index 0297f1d50..b2c562a7a 100644 --- a/test/initramfs/src/regression/ext2/unix_socket.c +++ b/test/initramfs/src/regression/fs/ext2/unix_socket.c @@ -8,7 +8,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" #define SERVER_ADDRESS "/ext2/my_unix_server" diff --git a/test/initramfs/src/regression/fs/fdatasync/Makefile b/test/initramfs/src/regression/fs/fdatasync/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/fs/fdatasync/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/fdatasync/fdatasync.c b/test/initramfs/src/regression/fs/fdatasync/fdatasync.c similarity index 100% rename from test/initramfs/src/regression/fdatasync/fdatasync.c rename to test/initramfs/src/regression/fs/fdatasync/fdatasync.c diff --git a/test/initramfs/src/regression/fs/inotify/Makefile b/test/initramfs/src/regression/fs/inotify/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/fs/inotify/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/inotify/inotify_align.c b/test/initramfs/src/regression/fs/inotify/inotify_align.c similarity index 100% rename from test/initramfs/src/regression/inotify/inotify_align.c rename to test/initramfs/src/regression/fs/inotify/inotify_align.c diff --git a/test/initramfs/src/regression/inotify/inotify_poll.c b/test/initramfs/src/regression/fs/inotify/inotify_poll.c similarity index 100% rename from test/initramfs/src/regression/inotify/inotify_poll.c rename to test/initramfs/src/regression/fs/inotify/inotify_poll.c diff --git a/test/initramfs/src/regression/inotify/inotify_unlink.c b/test/initramfs/src/regression/fs/inotify/inotify_unlink.c similarity index 96% rename from test/initramfs/src/regression/inotify/inotify_unlink.c rename to test/initramfs/src/regression/fs/inotify/inotify_unlink.c index 8806dfc47..6c383fbdc 100644 --- a/test/initramfs/src/regression/inotify/inotify_unlink.c +++ b/test/initramfs/src/regression/fs/inotify/inotify_unlink.c @@ -3,7 +3,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" #define TEST_FILE "/tmp/test1" diff --git a/test/initramfs/src/regression/fs/overlayfs/Makefile b/test/initramfs/src/regression/fs/overlayfs/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/fs/overlayfs/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/overlayfs/ovl_test.c b/test/initramfs/src/regression/fs/overlayfs/ovl_test.c similarity index 100% rename from test/initramfs/src/regression/overlayfs/ovl_test.c rename to test/initramfs/src/regression/fs/overlayfs/ovl_test.c diff --git a/test/initramfs/src/regression/fs/procfs/Makefile b/test/initramfs/src/regression/fs/procfs/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/fs/procfs/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/procfs/dentry_cache.c b/test/initramfs/src/regression/fs/procfs/dentry_cache.c similarity index 97% rename from test/initramfs/src/regression/procfs/dentry_cache.c rename to test/initramfs/src/regression/fs/procfs/dentry_cache.c index 752472366..9a9506356 100644 --- a/test/initramfs/src/regression/procfs/dentry_cache.c +++ b/test/initramfs/src/regression/fs/procfs/dentry_cache.c @@ -6,7 +6,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" FN_TEST(negative_cache_pid) { diff --git a/test/initramfs/src/regression/procfs/pid_mem.c b/test/initramfs/src/regression/fs/procfs/pid_mem.c similarity index 99% rename from test/initramfs/src/regression/procfs/pid_mem.c rename to test/initramfs/src/regression/fs/procfs/pid_mem.c index 9d6d838ef..ffe43af03 100644 --- a/test/initramfs/src/regression/procfs/pid_mem.c +++ b/test/initramfs/src/regression/fs/procfs/pid_mem.c @@ -12,7 +12,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" #define PAGE_SIZE 4096 #define ORIG_STR "ORIGINAL" diff --git a/test/initramfs/src/regression/fs/pseudofs/Makefile b/test/initramfs/src/regression/fs/pseudofs/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/fs/pseudofs/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/pseudofs/memfd_access_err.c b/test/initramfs/src/regression/fs/pseudofs/memfd_access_err.c similarity index 98% rename from test/initramfs/src/regression/pseudofs/memfd_access_err.c rename to test/initramfs/src/regression/fs/pseudofs/memfd_access_err.c index 7fd41ac3c..5af7d5b3d 100644 --- a/test/initramfs/src/regression/pseudofs/memfd_access_err.c +++ b/test/initramfs/src/regression/fs/pseudofs/memfd_access_err.c @@ -12,7 +12,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" char memfd_path[64]; diff --git a/test/initramfs/src/regression/pseudofs/pseudo_dentry.c b/test/initramfs/src/regression/fs/pseudofs/pseudo_dentry.c similarity index 100% rename from test/initramfs/src/regression/pseudofs/pseudo_dentry.c rename to test/initramfs/src/regression/fs/pseudofs/pseudo_dentry.c diff --git a/test/initramfs/src/regression/pseudofs/pseudo_file_cleanup.h b/test/initramfs/src/regression/fs/pseudofs/pseudo_file_cleanup.h similarity index 100% rename from test/initramfs/src/regression/pseudofs/pseudo_file_cleanup.h rename to test/initramfs/src/regression/fs/pseudofs/pseudo_file_cleanup.h diff --git a/test/initramfs/src/regression/pseudofs/pseudo_file_create.h b/test/initramfs/src/regression/fs/pseudofs/pseudo_file_create.h similarity index 98% rename from test/initramfs/src/regression/pseudofs/pseudo_file_create.h rename to test/initramfs/src/regression/fs/pseudofs/pseudo_file_create.h index aefd9a460..afbc66284 100644 --- a/test/initramfs/src/regression/pseudofs/pseudo_file_create.h +++ b/test/initramfs/src/regression/fs/pseudofs/pseudo_file_create.h @@ -19,7 +19,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" int pipe_1[2], pipe_2[2]; int sock[2]; diff --git a/test/initramfs/src/regression/pseudofs/pseudo_inode.c b/test/initramfs/src/regression/fs/pseudofs/pseudo_inode.c similarity index 100% rename from test/initramfs/src/regression/pseudofs/pseudo_inode.c rename to test/initramfs/src/regression/fs/pseudofs/pseudo_inode.c diff --git a/test/initramfs/src/regression/pseudofs/pseudo_mount.c b/test/initramfs/src/regression/fs/pseudofs/pseudo_mount.c similarity index 100% rename from test/initramfs/src/regression/pseudofs/pseudo_mount.c rename to test/initramfs/src/regression/fs/pseudofs/pseudo_mount.c diff --git a/test/initramfs/src/regression/scripts/fs.sh b/test/initramfs/src/regression/fs/run_test.sh similarity index 86% rename from test/initramfs/src/regression/scripts/fs.sh rename to test/initramfs/src/regression/fs/run_test.sh index 618b8370e..c1e93f518 100755 --- a/test/initramfs/src/regression/scripts/fs.sh +++ b/test/initramfs/src/regression/fs/run_test.sh @@ -3,7 +3,6 @@ # SPDX-License-Identifier: MPL-2.0 set -e -set -x check_file_size() { local file_name="$1" @@ -45,11 +44,11 @@ test_ext2() { } test_fdatasync() { - fdatasync/fdatasync / + ./fdatasync/fdatasync / rm -f /test_fdatasync.txt - fdatasync/fdatasync /ext2 + ./fdatasync/fdatasync /ext2 rm -f /ext2/test_fdatasync.txt - fdatasync/fdatasync /exfat + ./fdatasync/fdatasync /exfat rm -f /exfat/test_fdatasync.txt } @@ -88,8 +87,8 @@ test_mount_bind_file() { echo "Start ext2 fs test......" test_ext2 "/ext2" "test_file.txt" -ext2/mknod -ext2/unix_socket +./ext2/mknod +./ext2/unix_socket echo "All ext2 fs test passed." echo "Start fdatasync test......" @@ -100,14 +99,16 @@ echo "Start mount bind file test......" test_mount_bind_file echo "All mount bind file test passed." -pipe/pipe_err -pipe/short_rw -epoll/epoll_err -epoll/poll_err -file_io/access_err -file_io/file_err -file_io/iovec_err -devfs/full -devfs/random -devfs/framebuffer -devfs/evdev +./inotify/inotify_align +./inotify/inotify_poll +./inotify/inotify_unlink + +./overlayfs/ovl_test + +./procfs/dentry_cache +./procfs/pid_mem + +./pseudofs/memfd_access_err +./pseudofs/pseudo_dentry +./pseudofs/pseudo_inode +./pseudofs/pseudo_mount diff --git a/test/initramfs/src/regression/getcpu/Makefile b/test/initramfs/src/regression/getcpu/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/getcpu/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/getpid/Makefile b/test/initramfs/src/regression/getpid/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/getpid/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/hello_c/Makefile b/test/initramfs/src/regression/hello_c/Makefile deleted file mode 100644 index 37e7cb4c0..000000000 --- a/test/initramfs/src/regression/hello_c/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := -static -mno-sse diff --git a/test/initramfs/src/regression/hello_pie/Makefile b/test/initramfs/src/regression/hello_pie/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/hello_pie/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/hello_world/Makefile b/test/initramfs/src/regression/hello_world/Makefile index 14c46e670..ef9cb86f8 100644 --- a/test/initramfs/src/regression/hello_world/Makefile +++ b/test/initramfs/src/regression/hello_world/Makefile @@ -1,5 +1,11 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk +SUBDIRS := \ + in_c \ + in_c_pie \ -EXTRA_C_FLAGS := -static -nostdlib +ifeq ($(HOST_PLATFORM), x86_64-linux) +SUBDIRS += in_assembly +endif + +include ../common/Makefile diff --git a/test/initramfs/src/regression/fork/Makefile b/test/initramfs/src/regression/hello_world/in_assembly/Makefile similarity index 70% rename from test/initramfs/src/regression/fork/Makefile rename to test/initramfs/src/regression/hello_world/in_assembly/Makefile index 14c46e670..49be0181c 100644 --- a/test/initramfs/src/regression/fork/Makefile +++ b/test/initramfs/src/regression/hello_world/in_assembly/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk - EXTRA_C_FLAGS := -static -nostdlib + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/hello_world/hello_world.S b/test/initramfs/src/regression/hello_world/in_assembly/hello.S similarity index 100% rename from test/initramfs/src/regression/hello_world/hello_world.S rename to test/initramfs/src/regression/hello_world/in_assembly/hello.S diff --git a/test/initramfs/src/regression/execve/Makefile b/test/initramfs/src/regression/hello_world/in_c/Makefile similarity index 67% rename from test/initramfs/src/regression/execve/Makefile rename to test/initramfs/src/regression/hello_world/in_c/Makefile index cd19ae20b..a454c83dd 100644 --- a/test/initramfs/src/regression/execve/Makefile +++ b/test/initramfs/src/regression/hello_world/in_c/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk - EXTRA_C_FLAGS := -static + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/hello_c/hello.c b/test/initramfs/src/regression/hello_world/in_c/hello.c similarity index 100% rename from test/initramfs/src/regression/hello_c/hello.c rename to test/initramfs/src/regression/hello_world/in_c/hello.c diff --git a/test/initramfs/src/regression/hello_world/in_c_pie/Makefile b/test/initramfs/src/regression/hello_world/in_c_pie/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/hello_world/in_c_pie/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/hello_pie/hello.c b/test/initramfs/src/regression/hello_world/in_c_pie/hello.c similarity index 100% rename from test/initramfs/src/regression/hello_pie/hello.c rename to test/initramfs/src/regression/hello_world/in_c_pie/hello.c diff --git a/test/initramfs/src/regression/hello_world/run_test.sh b/test/initramfs/src/regression/hello_world/run_test.sh new file mode 100755 index 000000000..494552053 --- /dev/null +++ b/test/initramfs/src/regression/hello_world/run_test.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +./in_c/hello +./in_c_pie/hello +[ "$(uname -m)" = "x86_64" ] && ./in_assembly/hello diff --git a/test/initramfs/src/regression/inotify/Makefile b/test/initramfs/src/regression/inotify/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/inotify/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/intel_tdx/Makefile b/test/initramfs/src/regression/intel_tdx/Makefile new file mode 100644 index 000000000..8cbeecab7 --- /dev/null +++ b/test/initramfs/src/regression/intel_tdx/Makefile @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: MPL-2.0 + +SUBDIRS := gen_quote + +include ../common/Makefile diff --git a/test/initramfs/src/regression/generate_tdx_quote/Makefile b/test/initramfs/src/regression/intel_tdx/gen_quote/Makefile similarity index 61% rename from test/initramfs/src/regression/generate_tdx_quote/Makefile rename to test/initramfs/src/regression/intel_tdx/gen_quote/Makefile index a17f28623..2adb61ba0 100644 --- a/test/initramfs/src/regression/generate_tdx_quote/Makefile +++ b/test/initramfs/src/regression/intel_tdx/gen_quote/Makefile @@ -1,27 +1,26 @@ # SPDX-License-Identifier: MPL-2.0 -MAIN_MAKEFILE := $(firstword $(MAKEFILE_LIST)) -INCLUDE_MAKEFILE := $(lastword $(MAKEFILE_LIST)) -CUR_DIR := $(shell dirname $(realpath $(MAIN_MAKEFILE))) -CUR_DIR_NAME := $(shell basename $(realpath $(CUR_DIR))) +CUR_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) +ATOMIC_WGET := $(CUR_DIR)/../../../../../../tools/atomic_wget.sh +BUILD_DIR ?= $(CUR_DIR)/../../../../build +OUTPUT_DIR ?= $(BUILD_DIR)/initramfs/test +BIN_OUTPUT_DIR := $(OUTPUT_DIR)/intel_tdx/gen_quote TDX_ATTEST_DIR ?= $(CUR_DIR) TDX_SRCS := test_tdx_attest.c tdx_attest.c qgs_msg_lib.cpp -BUILD_DIR := $(CUR_DIR)/../../../build -OBJ_OUTPUT_DIR := $(BUILD_DIR)/initramfs/test/$(CUR_DIR_NAME) CC ?= gcc -C_FLAGS ?= -Wall -Werror +# FIXME: Disable use-after-free warning as error due to potential false positive +# in realloc/free pattern in `tdx_attest.c`. +C_FLAGS += -Wno-error DCAP_VERSION := DCAP_1.23 DCAP_URL_PREFIX := "https://github.com/intel/SGXDataCenterAttestationPrimitives/raw/$(DCAP_VERSION)/QuoteGeneration/quote_wrapper" -ATOMIC_WGET := $(CUR_DIR)/../../../../tools/atomic_wget.sh .PHONY: all +all: $(BIN_OUTPUT_DIR)/gen_quote -all: $(OBJ_OUTPUT_DIR) $(OBJ_OUTPUT_DIR)/generate_tdx_quote +$(BIN_OUTPUT_DIR): + @mkdir -p $@ -$(OBJ_OUTPUT_DIR): - @mkdir -p $(OBJ_OUTPUT_DIR) - -$(OBJ_OUTPUT_DIR)/generate_tdx_quote: $(addprefix $(TDX_ATTEST_DIR)/,$(TDX_SRCS)) +$(BIN_OUTPUT_DIR)/gen_quote: $(addprefix $(TDX_ATTEST_DIR)/,$(TDX_SRCS)) | $(BIN_OUTPUT_DIR) @$(CC) $(C_FLAGS) $^ -o $@ @echo "CC <= $@" diff --git a/test/initramfs/src/regression/intel_tdx/run_test.sh b/test/initramfs/src/regression/intel_tdx/run_test.sh new file mode 100755 index 000000000..c6b802c3d --- /dev/null +++ b/test/initramfs/src/regression/intel_tdx/run_test.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +if [ -e /dev/tdx_guest ]; then + ./gen_quote/gen_quote +fi diff --git a/test/initramfs/src/regression/io/Makefile b/test/initramfs/src/regression/io/Makefile new file mode 100644 index 000000000..d0b04eea6 --- /dev/null +++ b/test/initramfs/src/regression/io/Makefile @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: MPL-2.0 + +SUBDIRS := \ + epoll \ + eventfd2 \ + file_io \ + +include ../common/Makefile diff --git a/test/initramfs/src/regression/io/epoll/Makefile b/test/initramfs/src/regression/io/epoll/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/io/epoll/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/epoll/epoll_err.c b/test/initramfs/src/regression/io/epoll/epoll_err.c similarity index 99% rename from test/initramfs/src/regression/epoll/epoll_err.c rename to test/initramfs/src/regression/io/epoll/epoll_err.c index e55c1d020..75fe47e34 100644 --- a/test/initramfs/src/regression/epoll/epoll_err.c +++ b/test/initramfs/src/regression/io/epoll/epoll_err.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../../common/test.h" #include #include diff --git a/test/initramfs/src/regression/epoll/epoll_pwait.c b/test/initramfs/src/regression/io/epoll/epoll_pwait.c similarity index 100% rename from test/initramfs/src/regression/epoll/epoll_pwait.c rename to test/initramfs/src/regression/io/epoll/epoll_pwait.c diff --git a/test/initramfs/src/regression/epoll/epoll_wait.c b/test/initramfs/src/regression/io/epoll/epoll_wait.c similarity index 100% rename from test/initramfs/src/regression/epoll/epoll_wait.c rename to test/initramfs/src/regression/io/epoll/epoll_wait.c diff --git a/test/initramfs/src/regression/epoll/poll_err.c b/test/initramfs/src/regression/io/epoll/poll_err.c similarity index 96% rename from test/initramfs/src/regression/epoll/poll_err.c rename to test/initramfs/src/regression/io/epoll/poll_err.c index 732b86a54..5c58815d0 100644 --- a/test/initramfs/src/regression/epoll/poll_err.c +++ b/test/initramfs/src/regression/io/epoll/poll_err.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../../common/test.h" #include #include diff --git a/test/initramfs/src/regression/scripts/test_epoll_pwait.sh b/test/initramfs/src/regression/io/epoll/test_epoll_pwait.sh similarity index 95% rename from test/initramfs/src/regression/scripts/test_epoll_pwait.sh rename to test/initramfs/src/regression/io/epoll/test_epoll_pwait.sh index 9ce90e02d..ce34b8743 100755 --- a/test/initramfs/src/regression/scripts/test_epoll_pwait.sh +++ b/test/initramfs/src/regression/io/epoll/test_epoll_pwait.sh @@ -4,7 +4,7 @@ set -e -EPOLLTEST_DIR=/test/epoll +EPOLLTEST_DIR=/test/io/epoll cd ${EPOLLTEST_DIR} echo "Start epoll_pwait test......" diff --git a/test/initramfs/src/regression/io/eventfd2/Makefile b/test/initramfs/src/regression/io/eventfd2/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/io/eventfd2/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/eventfd2/eventfd2.c b/test/initramfs/src/regression/io/eventfd2/eventfd2.c similarity index 100% rename from test/initramfs/src/regression/eventfd2/eventfd2.c rename to test/initramfs/src/regression/io/eventfd2/eventfd2.c diff --git a/test/initramfs/src/regression/file_io/Makefile b/test/initramfs/src/regression/io/file_io/Makefile similarity index 74% rename from test/initramfs/src/regression/file_io/Makefile rename to test/initramfs/src/regression/io/file_io/Makefile index d9048d1cd..8618b2bf8 100644 --- a/test/initramfs/src/regression/file_io/Makefile +++ b/test/initramfs/src/regression/io/file_io/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk - EXTRA_C_FLAGS := -Wno-incompatible-pointer-types + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/file_io/access_err.c b/test/initramfs/src/regression/io/file_io/access_err.c similarity index 99% rename from test/initramfs/src/regression/file_io/access_err.c rename to test/initramfs/src/regression/io/file_io/access_err.c index 381281186..c9b4f2744 100644 --- a/test/initramfs/src/regression/file_io/access_err.c +++ b/test/initramfs/src/regression/io/file_io/access_err.c @@ -9,7 +9,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" #define FILENAME "/tmp/testfile" #define DIRNAME "/tmp" diff --git a/test/initramfs/src/regression/file_io/file_err.c b/test/initramfs/src/regression/io/file_io/file_err.c similarity index 97% rename from test/initramfs/src/regression/file_io/file_err.c rename to test/initramfs/src/regression/io/file_io/file_err.c index 1f4cd32b0..473038d6c 100644 --- a/test/initramfs/src/regression/file_io/file_err.c +++ b/test/initramfs/src/regression/io/file_io/file_err.c @@ -2,7 +2,7 @@ #define _GNU_SOURCE -#include "../test.h" +#include "../../common/test.h" #include #include #include diff --git a/test/initramfs/src/regression/file_io/file_io.c b/test/initramfs/src/regression/io/file_io/file_io.c similarity index 100% rename from test/initramfs/src/regression/file_io/file_io.c rename to test/initramfs/src/regression/io/file_io/file_io.c diff --git a/test/initramfs/src/regression/file_io/iovec_err.c b/test/initramfs/src/regression/io/file_io/iovec_err.c similarity index 98% rename from test/initramfs/src/regression/file_io/iovec_err.c rename to test/initramfs/src/regression/io/file_io/iovec_err.c index 530919a4e..960236dec 100644 --- a/test/initramfs/src/regression/file_io/iovec_err.c +++ b/test/initramfs/src/regression/io/file_io/iovec_err.c @@ -6,7 +6,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" static char buf[16]; static struct iovec iov_long[UIO_MAXIOV + 2]; diff --git a/test/initramfs/src/regression/io/run_test.sh b/test/initramfs/src/regression/io/run_test.sh new file mode 100755 index 000000000..4e7467b5b --- /dev/null +++ b/test/initramfs/src/regression/io/run_test.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +./epoll/epoll_err +./epoll/poll_err +./epoll/test_epoll_pwait.sh + +./eventfd2/eventfd2 + +./file_io/access_err +./file_io/file_err +./file_io/iovec_err diff --git a/test/initramfs/src/regression/ipc/Makefile b/test/initramfs/src/regression/ipc/Makefile new file mode 100644 index 000000000..35b36c288 --- /dev/null +++ b/test/initramfs/src/regression/ipc/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: MPL-2.0 + +SUBDIRS := \ + pipe \ + shm \ + +include ../common/Makefile diff --git a/test/initramfs/src/regression/ipc/pipe/Makefile b/test/initramfs/src/regression/ipc/pipe/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/ipc/pipe/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/pipe/pipe_err.c b/test/initramfs/src/regression/ipc/pipe/pipe_err.c similarity index 99% rename from test/initramfs/src/regression/pipe/pipe_err.c rename to test/initramfs/src/regression/ipc/pipe/pipe_err.c index 678848942..0eb8dd0da 100644 --- a/test/initramfs/src/regression/pipe/pipe_err.c +++ b/test/initramfs/src/regression/ipc/pipe/pipe_err.c @@ -2,7 +2,7 @@ #define _GNU_SOURCE -#include "../test.h" +#include "../../common/test.h" #include #include #include diff --git a/test/initramfs/src/regression/pipe/short_rw.c b/test/initramfs/src/regression/ipc/pipe/short_rw.c similarity index 94% rename from test/initramfs/src/regression/pipe/short_rw.c rename to test/initramfs/src/regression/ipc/pipe/short_rw.c index 82f0ca441..4959ab43e 100644 --- a/test/initramfs/src/regression/pipe/short_rw.c +++ b/test/initramfs/src/regression/ipc/pipe/short_rw.c @@ -4,7 +4,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" #define PAGE_SIZE 4096 diff --git a/test/initramfs/src/regression/ipc/run_test.sh b/test/initramfs/src/regression/ipc/run_test.sh new file mode 100755 index 000000000..942a65b68 --- /dev/null +++ b/test/initramfs/src/regression/ipc/run_test.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +./pipe/pipe_err +./pipe/short_rw + +./shm/posix_shm diff --git a/test/initramfs/src/regression/ipc/shm/Makefile b/test/initramfs/src/regression/ipc/shm/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/ipc/shm/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/shm/posix_shm.c b/test/initramfs/src/regression/ipc/shm/posix_shm.c similarity index 98% rename from test/initramfs/src/regression/shm/posix_shm.c rename to test/initramfs/src/regression/ipc/shm/posix_shm.c index bd44a5df8..a67cba163 100644 --- a/test/initramfs/src/regression/shm/posix_shm.c +++ b/test/initramfs/src/regression/ipc/shm/posix_shm.c @@ -63,7 +63,7 @@ int producer_process() if (child_pid < 0) { THROW_ERROR("Spawn a child process failed"); } else if (child_pid == 0) { - execl("/test/shm/posix_shm", "posix_shm", "consumer", NULL); + execl("/test/ipc/shm/posix_shm", "posix_shm", "consumer", NULL); THROW_ERROR("exec failed"); } diff --git a/test/initramfs/src/regression/itimer/Makefile b/test/initramfs/src/regression/itimer/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/itimer/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/memory/Makefile b/test/initramfs/src/regression/memory/Makefile new file mode 100644 index 000000000..74d9827bb --- /dev/null +++ b/test/initramfs/src/regression/memory/Makefile @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: MPL-2.0 + +SUBDIRS := \ + mmap \ + +include ../common/Makefile diff --git a/test/initramfs/src/regression/memory/mmap/Makefile b/test/initramfs/src/regression/memory/mmap/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/memory/mmap/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/mmap/mmap_and_fork.c b/test/initramfs/src/regression/memory/mmap/mmap_and_fork.c similarity index 100% rename from test/initramfs/src/regression/mmap/mmap_and_fork.c rename to test/initramfs/src/regression/memory/mmap/mmap_and_fork.c diff --git a/test/initramfs/src/regression/mmap/mmap_and_mprotect.c b/test/initramfs/src/regression/memory/mmap/mmap_and_mprotect.c similarity index 98% rename from test/initramfs/src/regression/mmap/mmap_and_mprotect.c rename to test/initramfs/src/regression/memory/mmap/mmap_and_mprotect.c index 50021e99c..a4247775b 100644 --- a/test/initramfs/src/regression/mmap/mmap_and_mprotect.c +++ b/test/initramfs/src/regression/memory/mmap/mmap_and_mprotect.c @@ -7,7 +7,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" #define PAGE_SIZE 4096 const char *filename = "testfile"; diff --git a/test/initramfs/src/regression/mmap/mmap_and_mremap.c b/test/initramfs/src/regression/memory/mmap/mmap_and_mremap.c similarity index 99% rename from test/initramfs/src/regression/mmap/mmap_and_mremap.c rename to test/initramfs/src/regression/memory/mmap/mmap_and_mremap.c index 534cb86b8..e94e7d213 100644 --- a/test/initramfs/src/regression/mmap/mmap_and_mremap.c +++ b/test/initramfs/src/regression/memory/mmap/mmap_and_mremap.c @@ -7,7 +7,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" #define PAGE_SIZE 4096 diff --git a/test/initramfs/src/regression/mmap/mmap_beyond_the_file.c b/test/initramfs/src/regression/memory/mmap/mmap_beyond_the_file.c similarity index 95% rename from test/initramfs/src/regression/mmap/mmap_beyond_the_file.c rename to test/initramfs/src/regression/memory/mmap/mmap_beyond_the_file.c index 241d19908..c3585ad12 100644 --- a/test/initramfs/src/regression/mmap/mmap_beyond_the_file.c +++ b/test/initramfs/src/regression/memory/mmap/mmap_beyond_the_file.c @@ -4,7 +4,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" #define PAGE_SIZE 4096 diff --git a/test/initramfs/src/regression/mmap/mmap_err.c b/test/initramfs/src/regression/memory/mmap/mmap_err.c similarity index 99% rename from test/initramfs/src/regression/mmap/mmap_err.c rename to test/initramfs/src/regression/memory/mmap/mmap_err.c index b285eaf83..01a87f886 100644 --- a/test/initramfs/src/regression/mmap/mmap_err.c +++ b/test/initramfs/src/regression/memory/mmap/mmap_err.c @@ -5,7 +5,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" #define PAGE_SIZE 4096 diff --git a/test/initramfs/src/regression/mmap/mmap_holes.c b/test/initramfs/src/regression/memory/mmap/mmap_holes.c similarity index 97% rename from test/initramfs/src/regression/mmap/mmap_holes.c rename to test/initramfs/src/regression/memory/mmap/mmap_holes.c index 008d0f7eb..8fecd24fa 100644 --- a/test/initramfs/src/regression/mmap/mmap_holes.c +++ b/test/initramfs/src/regression/memory/mmap/mmap_holes.c @@ -2,7 +2,7 @@ #include -#include "../test.h" +#include "../../common/test.h" static char *start_addr; diff --git a/test/initramfs/src/regression/mmap/mmap_readahead.c b/test/initramfs/src/regression/memory/mmap/mmap_readahead.c similarity index 95% rename from test/initramfs/src/regression/mmap/mmap_readahead.c rename to test/initramfs/src/regression/memory/mmap/mmap_readahead.c index abfa08f24..547af5b86 100644 --- a/test/initramfs/src/regression/mmap/mmap_readahead.c +++ b/test/initramfs/src/regression/memory/mmap/mmap_readahead.c @@ -4,7 +4,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" #define FILE_NAME "/tmp/mmap_readahead.txt" diff --git a/test/initramfs/src/regression/mmap/mmap_shared_filebacked.c b/test/initramfs/src/regression/memory/mmap/mmap_shared_filebacked.c similarity index 100% rename from test/initramfs/src/regression/mmap/mmap_shared_filebacked.c rename to test/initramfs/src/regression/memory/mmap/mmap_shared_filebacked.c diff --git a/test/initramfs/src/regression/mmap/mmap_vmrss.c b/test/initramfs/src/regression/memory/mmap/mmap_vmrss.c similarity index 99% rename from test/initramfs/src/regression/mmap/mmap_vmrss.c rename to test/initramfs/src/regression/memory/mmap/mmap_vmrss.c index 0b7f8cde2..f58e5ed98 100644 --- a/test/initramfs/src/regression/mmap/mmap_vmrss.c +++ b/test/initramfs/src/regression/memory/mmap/mmap_vmrss.c @@ -2,7 +2,7 @@ #define _GNU_SOURCE -#include "../test.h" +#include "../../common/test.h" #include #include diff --git a/test/initramfs/src/regression/memory/run_test.sh b/test/initramfs/src/regression/memory/run_test.sh new file mode 100755 index 000000000..c9a9c774f --- /dev/null +++ b/test/initramfs/src/regression/memory/run_test.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +./mmap/mmap_and_fork +./mmap/mmap_and_mprotect +./mmap/mmap_and_mremap +./mmap/mmap_beyond_the_file +./mmap/mmap_err +./mmap/mmap_holes +./mmap/mmap_readahead +./mmap/mmap_shared_filebacked +./mmap/mmap_vmrss diff --git a/test/initramfs/src/regression/mmap/Makefile b/test/initramfs/src/regression/mmap/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/mmap/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/mongoose/.gitignore b/test/initramfs/src/regression/mongoose/.gitignore deleted file mode 100644 index eed9dfe89..000000000 --- a/test/initramfs/src/regression/mongoose/.gitignore +++ /dev/null @@ -1 +0,0 @@ -mongoose.* \ No newline at end of file diff --git a/test/initramfs/src/regression/mongoose/Makefile b/test/initramfs/src/regression/mongoose/Makefile deleted file mode 100644 index 1ddcee1a3..000000000 --- a/test/initramfs/src/regression/mongoose/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -CUR_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -BUILD_DIR := $(CUR_DIR)/../../../build/initramfs/test/network -ATOMIC_WGET := $(CUR_DIR)/../../../../tools/atomic_wget.sh -MONGOOSE_DIR ?= $(CUR_DIR) -MONGOOSE_C := $(MONGOOSE_DIR)/mongoose.c -MONGOOSE_H := $(MONGOOSE_DIR)/mongoose.h -MONGOOSE_FILES := $(MONGOOSE_C) $(MONGOOSE_H) -MONGOOSE_O := $(MONGOOSE_DIR)/mongoose.o -SERVER_C := http_server.c -SERVER_BIN := $(BUILD_DIR)/http_server -CLIENT_C := http_client.c -CLIENT_BIN := $(BUILD_DIR)/http_client -BINS := $(SERVER_BIN) $(CLIENT_BIN) -CC ?= cc -CFLAGS ?= -W -Wall -Wextra -I. -I$(MONGOOSE_DIR) -DMG_ENABLE_LINES=1 - -.PHONY: all -all: $(BINS) - -$(SERVER_BIN): $(SERVER_C) $(MONGOOSE_C) | $(BUILD_DIR) - $(CC) $^ $(CFLAGS) -o $@ - -$(CLIENT_BIN): $(CLIENT_C) $(MONGOOSE_C) | $(BUILD_DIR) - $(CC) $^ $(CFLAGS) -o $@ - -$(MONGOOSE_C): $(MONGOOSE_H) - $(ATOMIC_WGET) $@ "https://raw.githubusercontent.com/cesanta/mongoose/7.13/$(notdir $@)" - -$(MONGOOSE_H): - $(ATOMIC_WGET) $@ "https://raw.githubusercontent.com/cesanta/mongoose/7.13/$(notdir $@)" - -$(BUILD_DIR) $(MONGOOSE_DIR): - @mkdir -p $@ - -PHONY: clean -clean: - @rm -f $(BINS) $(MONGOOSE_O) $(MONGOOSE_FILES) diff --git a/test/initramfs/src/regression/mongoose/http_client.c b/test/initramfs/src/regression/mongoose/http_client.c deleted file mode 100644 index b66e10bbc..000000000 --- a/test/initramfs/src/regression/mongoose/http_client.c +++ /dev/null @@ -1,51 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 - -#include "mongoose.h" - -static const char *s_url = "http://127.0.0.1:8080/"; -static const char *s_post_data = NULL; // POST data - -// Print HTTP response and signal that we're done -static void fn(struct mg_connection *c, int ev, void *ev_data) -{ - if (ev == MG_EV_CONNECT) { - // Connected to server. Send request - struct mg_str host = mg_url_host(s_url); - int content_length = s_post_data ? (int)strlen(s_post_data) : 0; - - mg_printf(c, - "%s %s HTTP/1.1\r\n" - "Host: %.*s\r\n" - "Content-Length: %d\r\n" - "\r\n", - s_post_data ? "POST" : "GET", mg_url_uri(s_url), - (int)host.len, host.ptr, content_length); - - mg_send(c, s_post_data, content_length); - } else if (ev == MG_EV_HTTP_MSG) { - // Response is received. Print it - struct mg_http_message *hm = (struct mg_http_message *)ev_data; - printf("%.*s", (int)hm->message.len, hm->message.ptr); - c->is_draining = 1; // Tell mongoose to close this connection - *(bool *)c->fn_data = true; // Tell event loop to stop - } else if (ev == MG_EV_ERROR) { - *(bool *)c->fn_data = true; // Error, tell event loop to stop - } -} - -int main(int argc, char *argv[]) -{ - struct mg_mgr mgr; - if (argc > 1) - s_url = argv[1]; // Use URL provided on the command line - bool done = false; - - mg_mgr_init(&mgr); // Initialize event manager - - mg_http_connect(&mgr, s_url, fn, &done); // Create client connection - while (!done) - mg_mgr_poll(&mgr, 50); - - mg_mgr_free(&mgr); // Free resources - return 0; -} diff --git a/test/initramfs/src/regression/mongoose/http_server.c b/test/initramfs/src/regression/mongoose/http_server.c deleted file mode 100644 index 01d9636e3..000000000 --- a/test/initramfs/src/regression/mongoose/http_server.c +++ /dev/null @@ -1,72 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 - -#include -#include -#include -#include "mongoose.h" - -static int s_debug_level = MG_LL_INFO; -static const char *s_listening_address = "http://127.0.0.1:8080/"; - -static int s_signo; -static void signal_handler(int signo) -{ - s_signo = signo; -} - -// Event handler for the listening connection. -static void cb(struct mg_connection *c, int ev, void *ev_data) -{ - if (ev == MG_EV_HTTP_MSG) { - struct mg_http_message *hm = ev_data; - if (mg_match(hm->uri, mg_str("/"), NULL)) { - // Generate a random number - srand(time(NULL)); - int random_number = rand(); - char response[100]; - sprintf(response, "Random number: %d\n", random_number); - MG_INFO(("Send a random number : %d", random_number)); - mg_http_reply(c, 200, "", "%s", response); - } else { - // Serve 404 for other routes - mg_http_reply(c, 404, "", "Not found"); - } - // Remove this line if you need a long running server - // signal_handler(SIGTERM); - } -} - -int main(int argc, char *argv[]) -{ - struct mg_mgr mgr; - struct mg_connection *c; - - // Parse command-line flags - for (int i = 1; i < argc; i++) { - if (strcmp(argv[i], "-l") == 0) { - s_listening_address = argv[++i]; - } else if (strcmp(argv[i], "-v") == 0) { - s_debug_level = atoi(argv[++i]); - } - } - - // Initialise stuff - signal(SIGINT, signal_handler); - signal(SIGTERM, signal_handler); - mg_log_set(s_debug_level); - mg_mgr_init(&mgr); - if ((c = mg_http_listen(&mgr, s_listening_address, cb, &mgr)) == NULL) { - MG_ERROR(("Cannot listen on %s. Use http://ADDR:PORT or :PORT", - s_listening_address)); - exit(EXIT_FAILURE); - } - - // Start infinite event loop - MG_INFO(("Mongoose version : v%s", MG_VERSION)); - MG_INFO(("Listening on : %s", s_listening_address)); - while (s_signo == 0) - mg_mgr_poll(&mgr, 1000); - mg_mgr_free(&mgr); - MG_INFO(("Exiting on signal %d", s_signo)); - return 0; -} \ No newline at end of file diff --git a/test/initramfs/src/regression/namespace/Makefile b/test/initramfs/src/regression/namespace/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/namespace/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/network/Makefile b/test/initramfs/src/regression/network/Makefile index 1f5a12ee9..ddb3cd278 100644 --- a/test/initramfs/src/regression/network/Makefile +++ b/test/initramfs/src/regression/network/Makefile @@ -1,5 +1,8 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk - EXTRA_C_FLAGS := -I/usr/include/libnl3 -lnl-3 -lnl-route-3 + +SUBDIRS := \ + vsock \ + +include ../common/Makefile diff --git a/test/initramfs/src/regression/network/netlink_route.c b/test/initramfs/src/regression/network/netlink_route.c index 428c7b264..daad315de 100644 --- a/test/initramfs/src/regression/network/netlink_route.c +++ b/test/initramfs/src/regression/network/netlink_route.c @@ -4,7 +4,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" #define ETHER_NAME "eth0" #define LOOPBACK_NAME "lo" diff --git a/test/initramfs/src/regression/network/rtnl_err.c b/test/initramfs/src/regression/network/rtnl_err.c index 610a6bb08..f74fdbdd3 100644 --- a/test/initramfs/src/regression/network/rtnl_err.c +++ b/test/initramfs/src/regression/network/rtnl_err.c @@ -3,7 +3,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" static struct sockaddr_nl sk_addr = { .nl_family = AF_NETLINK }; diff --git a/test/initramfs/src/regression/scripts/network.sh b/test/initramfs/src/regression/network/run_test.sh similarity index 73% rename from test/initramfs/src/regression/scripts/network.sh rename to test/initramfs/src/regression/network/run_test.sh index 0c88fea08..aff534cb7 100755 --- a/test/initramfs/src/regression/scripts/network.sh +++ b/test/initramfs/src/regression/network/run_test.sh @@ -4,11 +4,6 @@ set -e -NETTEST_DIR=/test/network -cd ${NETTEST_DIR} - -echo "Start network test......" - ./tcp_server & sleep 0.2 ./tcp_client @@ -21,10 +16,6 @@ sleep 0.2 sleep 0.2 ./unix_client -./http_server & -sleep 0.2 -./http_client - ./socketpair ./sockoption ./sockoption_unix @@ -43,5 +34,3 @@ sleep 0.2 ./netlink_route ./rtnl_err ./uevent_err - -echo "All network test passed" diff --git a/test/initramfs/src/regression/network/sendmmsg.c b/test/initramfs/src/regression/network/sendmmsg.c index 71bd7b0ce..fa6a06466 100644 --- a/test/initramfs/src/regression/network/sendmmsg.c +++ b/test/initramfs/src/regression/network/sendmmsg.c @@ -10,7 +10,7 @@ #include #include #include -#include "../test.h" +#include "../common/test.h" int sk_sender; int sk_receiver; diff --git a/test/initramfs/src/regression/network/sockoption.c b/test/initramfs/src/regression/network/sockoption.c index c123cd98c..1ccf84f30 100644 --- a/test/initramfs/src/regression/network/sockoption.c +++ b/test/initramfs/src/regression/network/sockoption.c @@ -7,7 +7,7 @@ #include #include #include -#include "../test.h" +#include "../common/test.h" int sk_unbound; int sk_listen; diff --git a/test/initramfs/src/regression/network/sockoption_unix.c b/test/initramfs/src/regression/network/sockoption_unix.c index 543f9fc35..8cffa9a0d 100644 --- a/test/initramfs/src/regression/network/sockoption_unix.c +++ b/test/initramfs/src/regression/network/sockoption_unix.c @@ -13,7 +13,7 @@ #include #include #include -#include "../test.h" +#include "../common/test.h" static int sk_unbound; static int sk_listen; diff --git a/test/initramfs/src/regression/network/tcp_err.c b/test/initramfs/src/regression/network/tcp_err.c index b4236fc1b..acfb7c76e 100644 --- a/test/initramfs/src/regression/network/tcp_err.c +++ b/test/initramfs/src/regression/network/tcp_err.c @@ -8,7 +8,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" static struct sockaddr_in sk_addr; diff --git a/test/initramfs/src/regression/network/tcp_poll.c b/test/initramfs/src/regression/network/tcp_poll.c index d6f18809c..8561b2448 100644 --- a/test/initramfs/src/regression/network/tcp_poll.c +++ b/test/initramfs/src/regression/network/tcp_poll.c @@ -11,7 +11,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" #define S_PORT htons(0x1238) diff --git a/test/initramfs/src/regression/network/tcp_reuseaddr.c b/test/initramfs/src/regression/network/tcp_reuseaddr.c index 0c782ab1e..e72caf0df 100644 --- a/test/initramfs/src/regression/network/tcp_reuseaddr.c +++ b/test/initramfs/src/regression/network/tcp_reuseaddr.c @@ -8,7 +8,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" int sock1; int sock2; diff --git a/test/initramfs/src/regression/network/udp_broadcast.c b/test/initramfs/src/regression/network/udp_broadcast.c index fc960a2f8..951487267 100644 --- a/test/initramfs/src/regression/network/udp_broadcast.c +++ b/test/initramfs/src/regression/network/udp_broadcast.c @@ -4,7 +4,7 @@ #include #include #include -#include "../test.h" +#include "../common/test.h" #define SENDER_BIND_ADDR "127.0.0.1" #define SENDER_PORT 12345 diff --git a/test/initramfs/src/regression/network/udp_err.c b/test/initramfs/src/regression/network/udp_err.c index ec67645ca..752ccf7d7 100644 --- a/test/initramfs/src/regression/network/udp_err.c +++ b/test/initramfs/src/regression/network/udp_err.c @@ -8,7 +8,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" static struct sockaddr_in sk_addr; diff --git a/test/initramfs/src/regression/network/uevent_err.c b/test/initramfs/src/regression/network/uevent_err.c index 641c123ba..8fc10dc8d 100644 --- a/test/initramfs/src/regression/network/uevent_err.c +++ b/test/initramfs/src/regression/network/uevent_err.c @@ -4,7 +4,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" static struct sockaddr_nl sk_addr = { .nl_family = AF_NETLINK }; diff --git a/test/initramfs/src/regression/network/unix_datagram_err.c b/test/initramfs/src/regression/network/unix_datagram_err.c index 5ea425628..9802b236e 100644 --- a/test/initramfs/src/regression/network/unix_datagram_err.c +++ b/test/initramfs/src/regression/network/unix_datagram_err.c @@ -9,7 +9,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" static int sk_unbound; static int sk_bound; diff --git a/test/initramfs/src/regression/network/unix_streamlike_prologue.h b/test/initramfs/src/regression/network/unix_streamlike_prologue.h index cd52b8508..b9ca7c8ce 100644 --- a/test/initramfs/src/regression/network/unix_streamlike_prologue.h +++ b/test/initramfs/src/regression/network/unix_streamlike_prologue.h @@ -11,7 +11,7 @@ #include #include -#include "../test.h" +#include "../common/test.h" FN_SETUP(general) { diff --git a/test/initramfs/src/regression/network/vsock/Makefile b/test/initramfs/src/regression/network/vsock/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/network/vsock/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/vsock/vsock_client.c b/test/initramfs/src/regression/network/vsock/vsock_client.c similarity index 96% rename from test/initramfs/src/regression/vsock/vsock_client.c rename to test/initramfs/src/regression/network/vsock/vsock_client.c index d24f0b94d..2a3487055 100644 --- a/test/initramfs/src/regression/vsock/vsock_client.c +++ b/test/initramfs/src/regression/network/vsock/vsock_client.c @@ -16,7 +16,7 @@ int main() FILE *commandFile; struct sockaddr_vm serv_addr; - commandFile = fopen("../vsock_commands.sh", "r"); + commandFile = fopen("./vsock_commands.sh", "r"); if (commandFile == NULL) { perror("Failed to open the command file"); return -1; diff --git a/test/initramfs/src/regression/scripts/vsock_commands.sh b/test/initramfs/src/regression/network/vsock/vsock_commands.sh similarity index 100% rename from test/initramfs/src/regression/scripts/vsock_commands.sh rename to test/initramfs/src/regression/network/vsock/vsock_commands.sh diff --git a/test/initramfs/src/regression/vsock/vsock_server.c b/test/initramfs/src/regression/network/vsock/vsock_server.c similarity index 100% rename from test/initramfs/src/regression/vsock/vsock_server.c rename to test/initramfs/src/regression/network/vsock/vsock_server.c diff --git a/test/initramfs/src/regression/overlayfs/Makefile b/test/initramfs/src/regression/overlayfs/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/overlayfs/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/pipe/Makefile b/test/initramfs/src/regression/pipe/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/pipe/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/process/Makefile b/test/initramfs/src/regression/process/Makefile index c603a781a..d3927feb3 100644 --- a/test/initramfs/src/regression/process/Makefile +++ b/test/initramfs/src/regression/process/Makefile @@ -1,5 +1,22 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk +SUBDIRS := \ + alarm \ + clone3 \ + cpu_affinity \ + execve \ + exit \ + fork_c \ + getcpu \ + getpid \ + itimer \ + prctl \ + pthread \ + sched \ + signal \ -EXTRA_C_FLAGS := +ifeq ($(HOST_PLATFORM), x86_64-linux) +SUBDIRS += fork +endif + +include ../common/Makefile diff --git a/test/initramfs/src/regression/alarm/Makefile b/test/initramfs/src/regression/process/alarm/Makefile similarity index 67% rename from test/initramfs/src/regression/alarm/Makefile rename to test/initramfs/src/regression/process/alarm/Makefile index cd19ae20b..a454c83dd 100644 --- a/test/initramfs/src/regression/alarm/Makefile +++ b/test/initramfs/src/regression/process/alarm/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk - EXTRA_C_FLAGS := -static + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/alarm/alarm.c b/test/initramfs/src/regression/process/alarm/alarm.c similarity index 100% rename from test/initramfs/src/regression/alarm/alarm.c rename to test/initramfs/src/regression/process/alarm/alarm.c diff --git a/test/initramfs/src/regression/scripts/cgroup.sh b/test/initramfs/src/regression/process/cgroup.sh old mode 100644 new mode 100755 similarity index 100% rename from test/initramfs/src/regression/scripts/cgroup.sh rename to test/initramfs/src/regression/process/cgroup.sh diff --git a/test/initramfs/src/regression/process/clone3/Makefile b/test/initramfs/src/regression/process/clone3/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/process/clone3/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/clone3/clone_exit_signal.c b/test/initramfs/src/regression/process/clone3/clone_exit_signal.c similarity index 100% rename from test/initramfs/src/regression/clone3/clone_exit_signal.c rename to test/initramfs/src/regression/process/clone3/clone_exit_signal.c diff --git a/test/initramfs/src/regression/clone3/clone_files.c b/test/initramfs/src/regression/process/clone3/clone_files.c similarity index 96% rename from test/initramfs/src/regression/clone3/clone_files.c rename to test/initramfs/src/regression/process/clone3/clone_files.c index 0f4d38c5d..d4edc3f70 100644 --- a/test/initramfs/src/regression/clone3/clone_files.c +++ b/test/initramfs/src/regression/process/clone3/clone_files.c @@ -2,7 +2,7 @@ #define _GNU_SOURCE -#include "../test.h" +#include "../../common/test.h" #include #include diff --git a/test/initramfs/src/regression/clone3/clone_no_exit_signal.c b/test/initramfs/src/regression/process/clone3/clone_no_exit_signal.c similarity index 100% rename from test/initramfs/src/regression/clone3/clone_no_exit_signal.c rename to test/initramfs/src/regression/process/clone3/clone_no_exit_signal.c diff --git a/test/initramfs/src/regression/clone3/clone_parent.c b/test/initramfs/src/regression/process/clone3/clone_parent.c similarity index 99% rename from test/initramfs/src/regression/clone3/clone_parent.c rename to test/initramfs/src/regression/process/clone3/clone_parent.c index b3990b9de..104fd082c 100644 --- a/test/initramfs/src/regression/clone3/clone_parent.c +++ b/test/initramfs/src/regression/process/clone3/clone_parent.c @@ -10,7 +10,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" pid_t sys_clone3(struct clone_args *args) { diff --git a/test/initramfs/src/regression/clone3/clone_process.c b/test/initramfs/src/regression/process/clone3/clone_process.c similarity index 100% rename from test/initramfs/src/regression/clone3/clone_process.c rename to test/initramfs/src/regression/process/clone3/clone_process.c diff --git a/test/initramfs/src/regression/process/cpu_affinity/Makefile b/test/initramfs/src/regression/process/cpu_affinity/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/process/cpu_affinity/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/cpu_affinity/cpu_affinity.c b/test/initramfs/src/regression/process/cpu_affinity/cpu_affinity.c similarity index 100% rename from test/initramfs/src/regression/cpu_affinity/cpu_affinity.c rename to test/initramfs/src/regression/process/cpu_affinity/cpu_affinity.c diff --git a/test/initramfs/src/regression/process/execve/Makefile b/test/initramfs/src/regression/process/execve/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/process/execve/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/execve/execve.c b/test/initramfs/src/regression/process/execve/execve.c similarity index 89% rename from test/initramfs/src/regression/execve/execve.c rename to test/initramfs/src/regression/process/execve/execve.c index 6318c7f15..584bf6b67 100644 --- a/test/initramfs/src/regression/execve/execve.c +++ b/test/initramfs/src/regression/process/execve/execve.c @@ -11,7 +11,7 @@ int main() printf("Execve a new file /execve/hello:\n"); // flush the stdout content to ensure the content print to console fflush(stdout); - execve("/test/execve/hello", argv, envp); + execve("/test/process/execve/hello", argv, envp); printf("Should not print\n"); fflush(stdout); return 0; diff --git a/test/initramfs/src/regression/execve/execve_err.c b/test/initramfs/src/regression/process/execve/execve_err.c similarity index 99% rename from test/initramfs/src/regression/execve/execve_err.c rename to test/initramfs/src/regression/process/execve/execve_err.c index 0fa6464f9..8e83f01bc 100644 --- a/test/initramfs/src/regression/execve/execve_err.c +++ b/test/initramfs/src/regression/process/execve/execve_err.c @@ -6,7 +6,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" struct custom_elf { Elf64_Ehdr ehdr; diff --git a/test/initramfs/src/regression/execve/execve_memfd.c b/test/initramfs/src/regression/process/execve/execve_memfd.c similarity index 89% rename from test/initramfs/src/regression/execve/execve_memfd.c rename to test/initramfs/src/regression/process/execve/execve_memfd.c index 7e07289a2..71c0038a7 100644 --- a/test/initramfs/src/regression/execve/execve_memfd.c +++ b/test/initramfs/src/regression/process/execve/execve_memfd.c @@ -11,11 +11,19 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" -#define EXECUTABLE_PATH "/test/execve/hello" +#define EXECUTABLE_PATH "/test/process/execve/hello" #define MFD_NAME "test_memfd_execve" +#ifndef MFD_NOEXEC_SEAL +#define MFD_NOEXEC_SEAL 0x0008U +#endif + +#ifndef F_SEAL_EXEC +#define F_SEAL_EXEC 0x0020U +#endif + FN_TEST(memfd_noexec_seal) { int memfd = TEST_SUCC( diff --git a/test/initramfs/src/regression/execve/execve_mt_child.c b/test/initramfs/src/regression/process/execve/execve_mt_child.c similarity index 97% rename from test/initramfs/src/regression/execve/execve_mt_child.c rename to test/initramfs/src/regression/process/execve/execve_mt_child.c index 23f782fa1..8565b4d16 100644 --- a/test/initramfs/src/regression/execve/execve_mt_child.c +++ b/test/initramfs/src/regression/process/execve/execve_mt_child.c @@ -5,7 +5,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" #define FILENAME "/tmp/exec_test.stat" diff --git a/test/initramfs/src/regression/execve/execve_mt_parent.c b/test/initramfs/src/regression/process/execve/execve_mt_parent.c similarity index 99% rename from test/initramfs/src/regression/execve/execve_mt_parent.c rename to test/initramfs/src/regression/process/execve/execve_mt_parent.c index efd1c1402..59cb0f53b 100644 --- a/test/initramfs/src/regression/execve/execve_mt_parent.c +++ b/test/initramfs/src/regression/process/execve/execve_mt_parent.c @@ -15,7 +15,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" struct info { bool should_sleep; diff --git a/test/initramfs/src/regression/execve/hello.c b/test/initramfs/src/regression/process/execve/hello.c similarity index 100% rename from test/initramfs/src/regression/execve/hello.c rename to test/initramfs/src/regression/process/execve/hello.c diff --git a/test/initramfs/src/regression/exit/Makefile b/test/initramfs/src/regression/process/exit/Makefile similarity index 70% rename from test/initramfs/src/regression/exit/Makefile rename to test/initramfs/src/regression/process/exit/Makefile index 039e6e028..8bb74d3aa 100644 --- a/test/initramfs/src/regression/exit/Makefile +++ b/test/initramfs/src/regression/process/exit/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk - EXTRA_C_FLAGS := -static -lpthread + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/exit/exit_code.c b/test/initramfs/src/regression/process/exit/exit_code.c similarity index 98% rename from test/initramfs/src/regression/exit/exit_code.c rename to test/initramfs/src/regression/process/exit/exit_code.c index a02899731..21171b40e 100644 --- a/test/initramfs/src/regression/exit/exit_code.c +++ b/test/initramfs/src/regression/process/exit/exit_code.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../../common/test.h" #include #include diff --git a/test/initramfs/src/regression/exit/exit_procfs.c b/test/initramfs/src/regression/process/exit/exit_procfs.c similarity index 98% rename from test/initramfs/src/regression/exit/exit_procfs.c rename to test/initramfs/src/regression/process/exit/exit_procfs.c index 1ca0cbed3..48f842006 100644 --- a/test/initramfs/src/regression/exit/exit_procfs.c +++ b/test/initramfs/src/regression/process/exit/exit_procfs.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../../common/test.h" #include #include diff --git a/test/initramfs/src/regression/process/fork/Makefile b/test/initramfs/src/regression/process/fork/Makefile new file mode 100644 index 000000000..49be0181c --- /dev/null +++ b/test/initramfs/src/regression/process/fork/Makefile @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: MPL-2.0 + +EXTRA_C_FLAGS := -static -nostdlib + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/fork/fork.S b/test/initramfs/src/regression/process/fork/fork.S similarity index 100% rename from test/initramfs/src/regression/fork/fork.S rename to test/initramfs/src/regression/process/fork/fork.S diff --git a/test/initramfs/src/regression/fdatasync/Makefile b/test/initramfs/src/regression/process/fork_c/Makefile similarity index 67% rename from test/initramfs/src/regression/fdatasync/Makefile rename to test/initramfs/src/regression/process/fork_c/Makefile index cd19ae20b..a454c83dd 100644 --- a/test/initramfs/src/regression/fdatasync/Makefile +++ b/test/initramfs/src/regression/process/fork_c/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk - EXTRA_C_FLAGS := -static + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/fork_c/fork.c b/test/initramfs/src/regression/process/fork_c/fork.c similarity index 100% rename from test/initramfs/src/regression/fork_c/fork.c rename to test/initramfs/src/regression/process/fork_c/fork.c diff --git a/test/initramfs/src/regression/process/getcpu/Makefile b/test/initramfs/src/regression/process/getcpu/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/process/getcpu/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/getcpu/getcpu.c b/test/initramfs/src/regression/process/getcpu/getcpu.c similarity index 96% rename from test/initramfs/src/regression/getcpu/getcpu.c rename to test/initramfs/src/regression/process/getcpu/getcpu.c index 723c3b8a0..1ec43f58c 100644 --- a/test/initramfs/src/regression/getcpu/getcpu.c +++ b/test/initramfs/src/regression/process/getcpu/getcpu.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../../common/test.h" #include #include diff --git a/test/initramfs/src/regression/process/getpid/Makefile b/test/initramfs/src/regression/process/getpid/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/process/getpid/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/getpid/getpid.c b/test/initramfs/src/regression/process/getpid/getpid.c similarity index 100% rename from test/initramfs/src/regression/getpid/getpid.c rename to test/initramfs/src/regression/process/getpid/getpid.c diff --git a/test/initramfs/src/regression/process/group_session.c b/test/initramfs/src/regression/process/group_session.c index 01abb8ea6..f35bca43c 100644 --- a/test/initramfs/src/regression/process/group_session.c +++ b/test/initramfs/src/regression/process/group_session.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../common/test.h" #include #include diff --git a/test/initramfs/src/regression/process/itimer/Makefile b/test/initramfs/src/regression/process/itimer/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/process/itimer/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/itimer/setitimer.c b/test/initramfs/src/regression/process/itimer/setitimer.c similarity index 100% rename from test/initramfs/src/regression/itimer/setitimer.c rename to test/initramfs/src/regression/process/itimer/setitimer.c diff --git a/test/initramfs/src/regression/itimer/timer_create.c b/test/initramfs/src/regression/process/itimer/timer_create.c similarity index 100% rename from test/initramfs/src/regression/itimer/timer_create.c rename to test/initramfs/src/regression/process/itimer/timer_create.c diff --git a/test/initramfs/src/regression/process/job_control.c b/test/initramfs/src/regression/process/job_control.c index 2a5884aad..605e9f232 100644 --- a/test/initramfs/src/regression/process/job_control.c +++ b/test/initramfs/src/regression/process/job_control.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../common/test.h" #include #include diff --git a/test/initramfs/src/regression/process/pidfd.c b/test/initramfs/src/regression/process/pidfd.c index 0ac48e89f..aac314939 100644 --- a/test/initramfs/src/regression/process/pidfd.c +++ b/test/initramfs/src/regression/process/pidfd.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../common/test.h" #include #include diff --git a/test/initramfs/src/regression/process/pidfd_getfd.c b/test/initramfs/src/regression/process/pidfd_getfd.c index ade6e9294..7b89cb584 100644 --- a/test/initramfs/src/regression/process/pidfd_getfd.c +++ b/test/initramfs/src/regression/process/pidfd_getfd.c @@ -12,7 +12,7 @@ #include #include #include -#include "../test.h" +#include "../common/test.h" static int pidfd; static pid_t pid; diff --git a/test/initramfs/src/regression/prctl/Makefile b/test/initramfs/src/regression/process/prctl/Makefile similarity index 70% rename from test/initramfs/src/regression/prctl/Makefile rename to test/initramfs/src/regression/process/prctl/Makefile index 039e6e028..8bb74d3aa 100644 --- a/test/initramfs/src/regression/prctl/Makefile +++ b/test/initramfs/src/regression/process/prctl/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk - EXTRA_C_FLAGS := -static -lpthread + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/prctl/secure_bits.c b/test/initramfs/src/regression/process/prctl/secure_bits.c similarity index 98% rename from test/initramfs/src/regression/prctl/secure_bits.c rename to test/initramfs/src/regression/process/prctl/secure_bits.c index e8ce80295..f7a0f8804 100644 --- a/test/initramfs/src/regression/prctl/secure_bits.c +++ b/test/initramfs/src/regression/process/prctl/secure_bits.c @@ -2,7 +2,7 @@ #define _GNU_SOURCE -#include "../test.h" +#include "../../common/test.h" #include #include #include diff --git a/test/initramfs/src/regression/prctl/subreaper.c b/test/initramfs/src/regression/process/prctl/subreaper.c similarity index 100% rename from test/initramfs/src/regression/prctl/subreaper.c rename to test/initramfs/src/regression/process/prctl/subreaper.c diff --git a/test/initramfs/src/regression/pthread/Makefile b/test/initramfs/src/regression/process/pthread/Makefile similarity index 70% rename from test/initramfs/src/regression/pthread/Makefile rename to test/initramfs/src/regression/process/pthread/Makefile index 039e6e028..8bb74d3aa 100644 --- a/test/initramfs/src/regression/pthread/Makefile +++ b/test/initramfs/src/regression/process/pthread/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -include ../test_common.mk - EXTRA_C_FLAGS := -static -lpthread + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/pthread/pthread_signal_test.c b/test/initramfs/src/regression/process/pthread/pthread_signal_test.c similarity index 100% rename from test/initramfs/src/regression/pthread/pthread_signal_test.c rename to test/initramfs/src/regression/process/pthread/pthread_signal_test.c diff --git a/test/initramfs/src/regression/pthread/pthread_test.c b/test/initramfs/src/regression/process/pthread/pthread_test.c similarity index 100% rename from test/initramfs/src/regression/pthread/pthread_test.c rename to test/initramfs/src/regression/process/pthread/pthread_test.c diff --git a/test/initramfs/src/regression/process/run_test.sh b/test/initramfs/src/regression/process/run_test.sh new file mode 100755 index 000000000..aa86715f4 --- /dev/null +++ b/test/initramfs/src/regression/process/run_test.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +./cgroup.sh + +./clone3/clone_exit_signal +./clone3/clone_files +./clone3/clone_no_exit_signal +./clone3/clone_parent +./clone3/clone_process + +./cpu_affinity/cpu_affinity + +./execve/execve +./execve/execve_err +./execve/execve_memfd +./execve/execve_mt_parent + +./exit/exit_code +./exit/exit_procfs + +[ "$(uname -m)" = "x86_64" ] && ./fork/fork +./fork_c/fork + +./getcpu/getcpu + +./getpid/getpid + +./itimer/setitimer +./itimer/timer_create + +./prctl/secure_bits +./prctl/subreaper + +./pthread/pthread_signal_test +./pthread/pthread_test + +./sched/sched_attr_getset +./sched/sched_param_getset +./sched/sched_param_idle + +./signal/kill +./signal/parent_death_signal +./signal/pidfd_send_signal +./signal/signal_fd +./signal/signal_test2 + +if [ "$(uname -m)" = "x86_64" ]; then + ./signal/sigaltstack + ./signal/signal_fpu + ./signal/signal_rflags_df + ./signal/signal_test +fi + +./group_session +./job_control +./pidfd +./pidfd_getfd +./wait4 diff --git a/test/initramfs/src/regression/process/sched/Makefile b/test/initramfs/src/regression/process/sched/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/process/sched/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/sched/sched_attr_getset.c b/test/initramfs/src/regression/process/sched/sched_attr_getset.c similarity index 98% rename from test/initramfs/src/regression/sched/sched_attr_getset.c rename to test/initramfs/src/regression/process/sched/sched_attr_getset.c index fc0844008..657e01ec1 100644 --- a/test/initramfs/src/regression/sched/sched_attr_getset.c +++ b/test/initramfs/src/regression/process/sched/sched_attr_getset.c @@ -4,7 +4,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" static int sched_setattr(pid_t pid, struct sched_attr *attr, unsigned int flags) { diff --git a/test/initramfs/src/regression/sched/sched_param_getset.c b/test/initramfs/src/regression/process/sched/sched_param_getset.c similarity index 98% rename from test/initramfs/src/regression/sched/sched_param_getset.c rename to test/initramfs/src/regression/process/sched/sched_param_getset.c index 86dee3cc2..eabb1cf58 100644 --- a/test/initramfs/src/regression/sched/sched_param_getset.c +++ b/test/initramfs/src/regression/process/sched/sched_param_getset.c @@ -5,7 +5,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" FN_TEST(sched_param) { diff --git a/test/initramfs/src/regression/sched/sched_param_idle.c b/test/initramfs/src/regression/process/sched/sched_param_idle.c similarity index 100% rename from test/initramfs/src/regression/sched/sched_param_idle.c rename to test/initramfs/src/regression/process/sched/sched_param_idle.c diff --git a/test/initramfs/src/regression/process/signal/Makefile b/test/initramfs/src/regression/process/signal/Makefile new file mode 100644 index 000000000..444efbb78 --- /dev/null +++ b/test/initramfs/src/regression/process/signal/Makefile @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: MPL-2.0 + +ifneq ($(HOST_PLATFORM), x86_64-linux) +C_OBJS_FILTER += \ + sigaltstack \ + signal_fpu \ + signal_rflags_df \ + signal_test +endif + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/signal_c/kill.c b/test/initramfs/src/regression/process/signal/kill.c similarity index 98% rename from test/initramfs/src/regression/signal_c/kill.c rename to test/initramfs/src/regression/process/signal/kill.c index 860649dd1..b2da8c3d3 100644 --- a/test/initramfs/src/regression/signal_c/kill.c +++ b/test/initramfs/src/regression/process/signal/kill.c @@ -8,7 +8,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" FN_SETUP(setpgrp) { diff --git a/test/initramfs/src/regression/signal_c/parent_death_signal.c b/test/initramfs/src/regression/process/signal/parent_death_signal.c similarity index 100% rename from test/initramfs/src/regression/signal_c/parent_death_signal.c rename to test/initramfs/src/regression/process/signal/parent_death_signal.c diff --git a/test/initramfs/src/regression/signal_c/pidfd_send_signal.c b/test/initramfs/src/regression/process/signal/pidfd_send_signal.c similarity index 99% rename from test/initramfs/src/regression/signal_c/pidfd_send_signal.c rename to test/initramfs/src/regression/process/signal/pidfd_send_signal.c index d3e35bcf1..43bab8931 100644 --- a/test/initramfs/src/regression/signal_c/pidfd_send_signal.c +++ b/test/initramfs/src/regression/process/signal/pidfd_send_signal.c @@ -9,7 +9,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" // Reference: . #define PIDFD_SELF_THREAD -10000 diff --git a/test/initramfs/src/regression/signal_c/sigaltstack.c b/test/initramfs/src/regression/process/signal/sigaltstack.c similarity index 99% rename from test/initramfs/src/regression/signal_c/sigaltstack.c rename to test/initramfs/src/regression/process/signal/sigaltstack.c index 20ddac4b0..6c6ded64d 100644 --- a/test/initramfs/src/regression/signal_c/sigaltstack.c +++ b/test/initramfs/src/regression/process/signal/sigaltstack.c @@ -9,7 +9,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" #define ALT_STACK_SIZE (SIGSTKSZ + 40960) diff --git a/test/initramfs/src/regression/signal_c/signal_fd.c b/test/initramfs/src/regression/process/signal/signal_fd.c similarity index 99% rename from test/initramfs/src/regression/signal_c/signal_fd.c rename to test/initramfs/src/regression/process/signal/signal_fd.c index 4ca805f6d..4be8ed582 100644 --- a/test/initramfs/src/regression/signal_c/signal_fd.c +++ b/test/initramfs/src/regression/process/signal/signal_fd.c @@ -9,7 +9,7 @@ #include #include #include -#include "../test.h" +#include "../../common/test.h" int sfd; sigset_t mask; diff --git a/test/initramfs/src/regression/signal_c/signal_fpu.c b/test/initramfs/src/regression/process/signal/signal_fpu.c similarity index 100% rename from test/initramfs/src/regression/signal_c/signal_fpu.c rename to test/initramfs/src/regression/process/signal/signal_fpu.c diff --git a/test/initramfs/src/regression/signal_c/signal_rflags_df.c b/test/initramfs/src/regression/process/signal/signal_rflags_df.c similarity index 100% rename from test/initramfs/src/regression/signal_c/signal_rflags_df.c rename to test/initramfs/src/regression/process/signal/signal_rflags_df.c diff --git a/test/initramfs/src/regression/signal_c/signal_test.c b/test/initramfs/src/regression/process/signal/signal_test.c similarity index 100% rename from test/initramfs/src/regression/signal_c/signal_test.c rename to test/initramfs/src/regression/process/signal/signal_test.c diff --git a/test/initramfs/src/regression/signal_c/signal_test2.c b/test/initramfs/src/regression/process/signal/signal_test2.c similarity index 97% rename from test/initramfs/src/regression/signal_c/signal_test2.c rename to test/initramfs/src/regression/process/signal/signal_test2.c index f89206042..0612dbdfe 100644 --- a/test/initramfs/src/regression/signal_c/signal_test2.c +++ b/test/initramfs/src/regression/process/signal/signal_test2.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../../common/test.h" #include #include diff --git a/test/initramfs/src/regression/process/wait4.c b/test/initramfs/src/regression/process/wait4.c index 4c13e8f5f..9f97df3db 100644 --- a/test/initramfs/src/regression/process/wait4.c +++ b/test/initramfs/src/regression/process/wait4.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -#include "../test.h" +#include "../common/test.h" #include #include diff --git a/test/initramfs/src/regression/procfs/Makefile b/test/initramfs/src/regression/procfs/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/procfs/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/pseudofs/Makefile b/test/initramfs/src/regression/pseudofs/Makefile deleted file mode 100644 index ce42e33b0..000000000 --- a/test/initramfs/src/regression/pseudofs/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := \ No newline at end of file diff --git a/test/initramfs/src/regression/pty/Makefile b/test/initramfs/src/regression/pty/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/pty/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/sched/Makefile b/test/initramfs/src/regression/sched/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/sched/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/scripts/Makefile b/test/initramfs/src/regression/scripts/Makefile index 85ccd0834..034ee2e6b 100644 --- a/test/initramfs/src/regression/scripts/Makefile +++ b/test/initramfs/src/regression/scripts/Makefile @@ -1,10 +1,10 @@ # SPDX-License-Identifier: MPL-2.0 SOURCES := $(wildcard *.sh) -TARGETS := $(addprefix $(BUILD_DIR)/, $(SOURCES)) +TARGETS := $(addprefix $(OUTPUT_DIR)/, $(SOURCES)) .PHONY: all all: $(TARGETS) -$(BUILD_DIR)/%.sh: %.sh +$(OUTPUT_DIR)/%.sh: %.sh @cp $< $@ diff --git a/test/initramfs/src/regression/scripts/process.sh b/test/initramfs/src/regression/scripts/process.sh deleted file mode 100755 index 773de695b..000000000 --- a/test/initramfs/src/regression/scripts/process.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/sh - -# SPDX-License-Identifier: MPL-2.0 - -set -e - -SCRIPT_DIR=/test -cd ${SCRIPT_DIR}/.. - -echo "Start process test......" -# These test programs are sorted by name. -tests=" -chroot/chroot_jail -clone3/clone_exit_signal -clone3/clone_files -clone3/clone_no_exit_signal -clone3/clone_parent -clone3/clone_process -cpu_affinity/cpu_affinity -execve/execve -execve/execve_err -execve/execve_mt_parent -execve/execve_memfd -exit/exit_code -exit/exit_procfs -eventfd2/eventfd2 -fork/fork -fork_c/fork -getcpu/getcpu -getpid/getpid -hello_pie/hello -hello_world/hello_world -inotify/inotify_align -inotify/inotify_poll -inotify/inotify_unlink -itimer/setitimer -itimer/timer_create -mmap/mmap_and_fork -mmap/mmap_and_mprotect -mmap/mmap_and_mremap -mmap/mmap_beyond_the_file -mmap/mmap_err -mmap/mmap_holes -mmap/mmap_shared_filebacked -mmap/mmap_readahead -mmap/mmap_vmrss -namespace/mnt_ns -namespace/setns -namespace/unshare -process/group_session -process/job_control -process/pidfd -process/pidfd_getfd -process/wait4 -procfs/dentry_cache -procfs/pid_mem -pseudofs/pseudo_dentry -pseudofs/pseudo_inode -pseudofs/pseudo_mount -pseudofs/memfd_access_err -pthread/pthread_test -pty/close_pty -pty/open_ptmx -pty/open_pty -pty/pty_blocking -pty/pty_packet_mode -sched/sched_attr_getset -sched/sched_param_getset -sched/sched_param_idle -shm/posix_shm -signal_c/kill -signal_c/parent_death_signal -signal_c/pidfd_send_signal -signal_c/sigaltstack -signal_c/signal_fd -signal_c/signal_fpu -signal_c/signal_test -signal_c/signal_test2 -" - -# Add TDX-specific tests -if [ "$INTEL_TDX" = "1" ]; then -tests="${tests} -generate_tdx_quote/generate_tdx_quote -" -fi - -for testcase in ${tests} -do - echo "Running test ${testcase}......" - ${SCRIPT_DIR}/${testcase} -done -echo "All process test passed." diff --git a/test/initramfs/src/regression/scripts/run_regression_test.sh b/test/initramfs/src/regression/scripts/run_regression_test.sh index 1edc41520..483be811d 100755 --- a/test/initramfs/src/regression/scripts/run_regression_test.sh +++ b/test/initramfs/src/regression/scripts/run_regression_test.sh @@ -4,18 +4,17 @@ set -e -SCRIPT_DIR=/test -cd ${SCRIPT_DIR} +REGRESSION_TEST_DIR=/test +TEST_SCRIPT=run_test.sh -./shell_cmd.sh -./test_epoll_pwait.sh -./cgroup.sh - -# TODO: Support the following tests with SMP -if [ -z $BLOCK_UNSUPPORTED_SMP_TESTS ]; then - ./fs.sh # will hang - ./process.sh # will randomly hang - ./network.sh # will hang -fi +for dir in $(find -L "${REGRESSION_TEST_DIR}" -mindepth 1 -maxdepth 1 -type d); do + if [ -x "${dir}/${TEST_SCRIPT}" ]; then + echo "Running test in $dir" + (cd "$dir" && ./${TEST_SCRIPT}) + echo "All test in $dir passed." + else + echo "Skipping $dir (no executable TEST_SCRIPT)" + fi +done echo "All regression tests passed." diff --git a/test/initramfs/src/regression/scripts/run_vsock_test.sh b/test/initramfs/src/regression/scripts/run_vsock_test.sh index b083dd181..17dd0b580 100644 --- a/test/initramfs/src/regression/scripts/run_vsock_test.sh +++ b/test/initramfs/src/regression/scripts/run_vsock_test.sh @@ -8,7 +8,7 @@ set -e -VSOCK_DIR=/test/vsock +VSOCK_DIR=/test/network/vsock cd ${VSOCK_DIR} echo "Start vsock test......" diff --git a/test/initramfs/src/regression/scripts/shell_cmd.sh b/test/initramfs/src/regression/scripts/shell_cmd.sh deleted file mode 100755 index c8293f7ea..000000000 --- a/test/initramfs/src/regression/scripts/shell_cmd.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh - -# SPDX-License-Identifier: MPL-2.0 - -set -e -set -x - -SCRIPT_DIR=/test -cd ${SCRIPT_DIR} - -touch hello.txt -mv hello.txt hello_world.txt -rm hello_world.txt - -awk '{print $2}' shell_cmd.sh -cp shell_cmd.sh shell_cmd_backup.sh -cat shell_cmd_backup.sh -rm shell_cmd_backup.sh - -ln -s shell_cmd.sh tesk_cmd_soft_link -readlink -f tesk_cmd_soft_link -tail -n 1 tesk_cmd_soft_link -rm tesk_cmd_soft_link - -ln shell_cmd.sh tesk_cmd_hard_link -tail -n 1 tesk_cmd_hard_link -unlink tesk_cmd_hard_link - -sed 3q shell_cmd.sh - -find . -name "*shell_cmd*" - -mkdir foo -rmdir foo - -echo "Hello world from asterinas" > hello.txt -rm hello.txt - -cd .. - -ps -T | grep ps \ No newline at end of file diff --git a/test/initramfs/src/regression/security/Makefile b/test/initramfs/src/regression/security/Makefile new file mode 100644 index 000000000..2ddb31232 --- /dev/null +++ b/test/initramfs/src/regression/security/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: MPL-2.0 + +SUBDIRS := \ + capability \ + namespace \ + +include ../common/Makefile diff --git a/test/initramfs/src/regression/security/capability/Makefile b/test/initramfs/src/regression/security/capability/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/security/capability/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/capability/capabilities.c b/test/initramfs/src/regression/security/capability/capabilities.c similarity index 100% rename from test/initramfs/src/regression/capability/capabilities.c rename to test/initramfs/src/regression/security/capability/capabilities.c diff --git a/test/initramfs/src/regression/security/namespace/Makefile b/test/initramfs/src/regression/security/namespace/Makefile new file mode 100644 index 000000000..a1e0b1931 --- /dev/null +++ b/test/initramfs/src/regression/security/namespace/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MPL-2.0 + +include ../../common/Makefile diff --git a/test/initramfs/src/regression/namespace/mnt_ns.c b/test/initramfs/src/regression/security/namespace/mnt_ns.c similarity index 99% rename from test/initramfs/src/regression/namespace/mnt_ns.c rename to test/initramfs/src/regression/security/namespace/mnt_ns.c index d65a400bd..677f64bae 100644 --- a/test/initramfs/src/regression/namespace/mnt_ns.c +++ b/test/initramfs/src/regression/security/namespace/mnt_ns.c @@ -1,13 +1,14 @@ // SPDX-License-Identifier: MPL-2.0 #define _GNU_SOURCE +#include #include #include #include #include #include -#include "../test.h" +#include "../../common/test.h" #define STACK_SIZE (1024 * 1024) diff --git a/test/initramfs/src/regression/namespace/setns.c b/test/initramfs/src/regression/security/namespace/setns.c similarity index 97% rename from test/initramfs/src/regression/namespace/setns.c rename to test/initramfs/src/regression/security/namespace/setns.c index 843f9ba2e..a78727e96 100644 --- a/test/initramfs/src/regression/namespace/setns.c +++ b/test/initramfs/src/regression/security/namespace/setns.c @@ -6,7 +6,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" FN_TEST(set_ns_empty_flags) { diff --git a/test/initramfs/src/regression/namespace/unshare.c b/test/initramfs/src/regression/security/namespace/unshare.c similarity index 99% rename from test/initramfs/src/regression/namespace/unshare.c rename to test/initramfs/src/regression/security/namespace/unshare.c index f992c3fa8..1c6ef081c 100644 --- a/test/initramfs/src/regression/namespace/unshare.c +++ b/test/initramfs/src/regression/security/namespace/unshare.c @@ -7,7 +7,7 @@ #include #include -#include "../test.h" +#include "../../common/test.h" FN_TEST(invalid_flags) { diff --git a/test/initramfs/src/regression/security/run_test.sh b/test/initramfs/src/regression/security/run_test.sh new file mode 100755 index 000000000..fa70e83b1 --- /dev/null +++ b/test/initramfs/src/regression/security/run_test.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +./capability/capabilities + +./namespace/mnt_ns +./namespace/setns +./namespace/unshare diff --git a/test/initramfs/src/regression/shm/Makefile b/test/initramfs/src/regression/shm/Makefile deleted file mode 100644 index c603a781a..000000000 --- a/test/initramfs/src/regression/shm/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/signal_c/Makefile b/test/initramfs/src/regression/signal_c/Makefile deleted file mode 100644 index d2ee97801..000000000 --- a/test/initramfs/src/regression/signal_c/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -# Removed `-static` to enable dynamic linking. -# Refer to "signal_rflags_df.c" for details on how dynamic linking affects DF flag testing. -EXTRA_C_FLAGS := diff --git a/test/initramfs/src/regression/test_common.mk b/test/initramfs/src/regression/test_common.mk deleted file mode 100644 index 0118e0750..000000000 --- a/test/initramfs/src/regression/test_common.mk +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -MAIN_MAKEFILE := $(firstword $(MAKEFILE_LIST)) -INCLUDE_MAKEFILE := $(lastword $(MAKEFILE_LIST)) -CUR_DIR := $(shell dirname $(realpath $(MAIN_MAKEFILE))) -CUR_DIR_NAME := $(shell basename $(realpath $(CUR_DIR))) -BUILD_DIR := $(CUR_DIR)/../../../build -OBJ_OUTPUT_DIR := $(BUILD_DIR)/initramfs/test/$(CUR_DIR_NAME) -DEP_OUTPUT_DIR := $(BUILD_DIR)/dep/$(CUR_DIR_NAME) -C_SRCS := $(wildcard *.c) -C_OBJS := $(addprefix $(OBJ_OUTPUT_DIR)/,$(C_SRCS:%.c=%)) -C_DEPS := $(addprefix $(DEP_OUTPUT_DIR)/,$(C_SRCS:%.c=%.d)) -ASM_SRCS := $(wildcard *.S) -ASM_OBJS := $(addprefix $(OBJ_OUTPUT_DIR)/,$(ASM_SRCS:%.S=%)) -CC ?= gcc -C_FLAGS += -Wall -Werror - -.PHONY: all -all: $(C_OBJS) $(ASM_OBJS) - -$(OBJ_OUTPUT_DIR) $(DEP_OUTPUT_DIR): - @mkdir -p $@ - -$(OBJ_OUTPUT_DIR)/%: %.c | $(OBJ_OUTPUT_DIR) $(DEP_OUTPUT_DIR) - @$(CC) $(C_FLAGS) $< -o $@ $(EXTRA_C_FLAGS) \ - -MMD -MF $(DEP_OUTPUT_DIR)/$*.d - @echo "CC <= $@" - --include $(C_DEPS) - -$(OBJ_OUTPUT_DIR)/%: %.S | $(OBJ_OUTPUT_DIR) - @$(CC) $(C_FLAGS) $(EXTRA_C_FLAGS) $< -o $@ - @echo "CC <= $@" diff --git a/test/initramfs/src/regression/vsock/Makefile b/test/initramfs/src/regression/vsock/Makefile deleted file mode 100644 index d428635d2..000000000 --- a/test/initramfs/src/regression/vsock/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -include ../test_common.mk - -EXTRA_C_FLAGS := diff --git a/tools/docker/nix/Dockerfile b/tools/docker/nix/Dockerfile index ec5ae3781..3793e166f 100644 --- a/tools/docker/nix/Dockerfile +++ b/tools/docker/nix/Dockerfile @@ -36,9 +36,8 @@ RUN make riscv64_pkgs VERBOSE=0 \ RUN make x86_64_pkgs VERBOSE=0 \ && make nix_gc -# Build general packages and install host required packages -RUN make general_pkgs VERBOSE=0 \ - && make install_host_pkgs \ +# Install host required packages +RUN make install_host_pkgs \ && make nix_gc # Build initramfs packages to accelerate CI workflows