Make apps test optional
This commit is contained in:
parent
5ccadb6253
commit
54b1782a2f
4
Makefile
4
Makefile
|
|
@ -21,6 +21,7 @@ OSTD_TASK_STACK_SIZE_IN_PAGES ?= 64
|
|||
FEATURES ?=
|
||||
NO_DEFAULT_FEATURES ?= 0
|
||||
COVERAGE ?= 0
|
||||
ENABLE_BASIC_TEST ?= false
|
||||
# End of global build options.
|
||||
|
||||
# GDB debugging and profiling options.
|
||||
|
|
@ -63,13 +64,16 @@ CARGO_OSDK_BUILD_ARGS += --kcmd-args="SYSCALL_TEST_WORKDIR=$(SYSCALL_TEST_WORKDI
|
|||
CARGO_OSDK_BUILD_ARGS += --kcmd-args="EXTRA_BLOCKLISTS_DIRS=$(EXTRA_BLOCKLISTS_DIRS)"
|
||||
CARGO_OSDK_BUILD_ARGS += --init-args="/opt/syscall_test/run_syscall_test.sh"
|
||||
else ifeq ($(AUTO_TEST), test)
|
||||
ENABLE_BASIC_TEST := true
|
||||
ifneq ($(SMP), 1)
|
||||
CARGO_OSDK_BUILD_ARGS += --kcmd-args="BLOCK_UNSUPPORTED_SMP_TESTS=1"
|
||||
endif
|
||||
CARGO_OSDK_BUILD_ARGS += --init-args="/test/run_general_test.sh"
|
||||
else ifeq ($(AUTO_TEST), boot)
|
||||
ENABLE_BASIC_TEST := true
|
||||
CARGO_OSDK_BUILD_ARGS += --init-args="/test/boot_hello.sh"
|
||||
else ifeq ($(AUTO_TEST), vsock)
|
||||
ENABLE_BASIC_TEST := true
|
||||
export VSOCK=on
|
||||
CARGO_OSDK_BUILD_ARGS += --init-args="/test/run_vsock_test.sh"
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ ARCH ?= x86_64
|
|||
SMP ?= 1
|
||||
SYSCALL_TEST_SUITE ?= ltp
|
||||
SYSCALL_TEST_WORKDIR ?= /tmp
|
||||
ENABLE_BASIC_TEST ?= false
|
||||
MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
CUR_DIR := $(patsubst %/,%,$(dir $(MKFILE_PATH)))
|
||||
BUILD_DIR := $(CUR_DIR)/build
|
||||
|
|
@ -43,6 +44,7 @@ build: $(INITRAMFS_IMAGE) $(EXT2_IMAGE) $(EXFAT_IMAGE)
|
|||
$(INITRAMFS_IMAGE): $(INITRAMFS)
|
||||
@nix-build \
|
||||
--argstr target $(ARCH) \
|
||||
--arg enableBasicTest $(ENABLE_BASIC_TEST) \
|
||||
--arg enableBenchmark $(ENABLE_BENCHMARK) \
|
||||
--arg enableSyscallTest $(ENABLE_SYSCALL_TEST) \
|
||||
--argstr syscallTestSuite $(SYSCALL_TEST_SUITE) \
|
||||
|
|
@ -56,6 +58,7 @@ $(INITRAMFS_IMAGE): $(INITRAMFS)
|
|||
$(INITRAMFS):
|
||||
@nix-build \
|
||||
--argstr target $(ARCH) \
|
||||
--arg enableBasicTest $(ENABLE_BASIC_TEST) \
|
||||
--arg enableBenchmark $(ENABLE_BENCHMARK) \
|
||||
--arg enableSyscallTest $(ENABLE_SYSCALL_TEST) \
|
||||
--argstr syscallTestSuite $(SYSCALL_TEST_SUITE) \
|
||||
|
|
|
|||
|
|
@ -1,34 +1,37 @@
|
|||
{ lib, stdenv, fetchFromGitHub, hostPlatform, glibc, libnl, }:
|
||||
stdenv.mkDerivation {
|
||||
pname = "apps";
|
||||
version = "0.1.0";
|
||||
src = lib.fileset.toSource {
|
||||
root = ./../src;
|
||||
fileset = ./../src/apps;
|
||||
};
|
||||
|
||||
MONGOOSE_DIR = fetchFromGitHub {
|
||||
{ lib, stdenv, fetchFromGitHub, hostPlatform, glibc, libnl, }: rec {
|
||||
mongoose_src = fetchFromGitHub {
|
||||
owner = "cesanta";
|
||||
repo = "mongoose";
|
||||
rev = "7.13";
|
||||
sha256 = "sha256-9XHUE8SVOG/X7SIB52C8EImPx4XZ7B/5Ojwmb0PkiuI";
|
||||
};
|
||||
|
||||
HOST_PLATFORM = "${hostPlatform.system}";
|
||||
CC = "${stdenv.cc.targetPrefix}cc";
|
||||
C_FLAGS = "-I${libnl.dev}/include/libnl3";
|
||||
# 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/apps $BUILD_DIR/
|
||||
package = stdenv.mkDerivation {
|
||||
pname = "apps";
|
||||
version = "0.1.0";
|
||||
src = lib.fileset.toSource {
|
||||
root = ./../src;
|
||||
fileset = ./../src/apps;
|
||||
};
|
||||
|
||||
pushd $BUILD_DIR
|
||||
make --no-print-directory -C apps
|
||||
popd
|
||||
MONGOOSE_DIR = "${mongoose_src}";
|
||||
|
||||
mkdir -p $out
|
||||
mv build/initramfs/test/* $out/
|
||||
'';
|
||||
HOST_PLATFORM = "${hostPlatform.system}";
|
||||
CC = "${stdenv.cc.targetPrefix}cc";
|
||||
C_FLAGS = "-I${libnl.dev}/include/libnl3";
|
||||
# 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/apps $BUILD_DIR/
|
||||
|
||||
pushd $BUILD_DIR
|
||||
make --no-print-directory -C apps
|
||||
popd
|
||||
|
||||
mkdir -p $out
|
||||
mv build/initramfs/test/* $out/
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{ target ? "x86_64", enableBenchmark ? false, enableSyscallTest ? false
|
||||
, syscallTestSuite ? "ltp", syscallTestWorkDir ? "/tmp", smp ? 1
|
||||
, initramfsCompressed ? true, }:
|
||||
{ target ? "x86_64", enableBasicTest ? false, enableBenchmark ? false
|
||||
, enableSyscallTest ? false, syscallTestSuite ? "ltp"
|
||||
, syscallTestWorkDir ? "/tmp", smp ? 1, initramfsCompressed ? true, }:
|
||||
let
|
||||
crossSystem.config = if target == "x86_64" then
|
||||
"x86_64-unknown-linux-gnu"
|
||||
|
|
@ -34,7 +34,8 @@ in rec {
|
|||
hash = "sha256-F5RPtu/Hh2hDnjm6/0mc0wGqhQtfMNvPP+6/Id9Hcpk";
|
||||
};
|
||||
initramfs = pkgs.callPackage ./initramfs.nix {
|
||||
inherit apps busybox linux_vdso;
|
||||
inherit busybox linux_vdso;
|
||||
apps = if enableBasicTest then apps else null;
|
||||
benchmark = if enableBenchmark then benchmark else null;
|
||||
syscall = if enableSyscallTest then syscall else null;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@ let
|
|||
name = "gvisor-libs";
|
||||
path = "/lib/x86_64-linux-gnu";
|
||||
};
|
||||
all_pkgs = [ apps busybox etc linux_vdso ]
|
||||
all_pkgs = [ busybox etc linux_vdso ]
|
||||
++ lib.optionals (apps != null) [ apps.package ]
|
||||
++ lib.optionals (benchmark != null) [ benchmark.package ]
|
||||
++ lib.optionals (syscall != null) [ syscall.package ];
|
||||
in stdenv.mkDerivation {
|
||||
|
|
@ -32,10 +33,12 @@ in stdenv.mkDerivation {
|
|||
cp -r ${linux_vdso}/riscv64-vdso.so $out/usr/lib/x86_64-linux-gnu/vdso64.so
|
||||
''}
|
||||
|
||||
cp -r ${apps}/* $out/test/
|
||||
|
||||
cp -r ${etc}/* $out/etc/
|
||||
|
||||
${lib.optionalString (apps != null) ''
|
||||
cp -r ${apps.package}/* $out/test/
|
||||
''}
|
||||
|
||||
${lib.optionalString (benchmark != null) ''
|
||||
cp -r "${benchmark.package}"/* $out/benchmark/
|
||||
''}
|
||||
|
|
|
|||
Loading…
Reference in New Issue