diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-05-19 18:35:33 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-05-19 18:37:35 -0400 |
commit | 9ffae3d6c86db21bd74c86402d4259655a8cde43 (patch) | |
tree | 3ccc2e9e58626fe4c61da9d839bd5ea6a22ba6e0 | |
parent | 82d6edbfd7558808948ede6b1508b230535ff081 (diff) |
tests/bcachefs/kmsan-*
Add test variants for KMSAN
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rwxr-xr-x | build-test-kernel | 12 | ||||
-rw-r--r-- | tests/bcachefs/bcachefs-test-libs.sh | 2 | ||||
-rw-r--r-- | tests/bcachefs/kmsan-base.sh | 10 | ||||
-rwxr-xr-x | tests/bcachefs/kmsan-ec.ktest | 3 | ||||
-rwxr-xr-x | tests/bcachefs/kmsan-quota.ktest | 3 | ||||
-rwxr-xr-x | tests/bcachefs/kmsan-replication.ktest | 3 | ||||
-rwxr-xr-x | tests/bcachefs/kmsan-single_device.ktest | 3 | ||||
-rwxr-xr-x | tests/bcachefs/kmsan-subvol.ktest | 3 | ||||
-rwxr-xr-x | tests/bcachefs/kmsan-tier.ktest | 3 | ||||
-rwxr-xr-x | tests/bcachefs/kmsan-units.ktest | 3 | ||||
-rwxr-xr-x | tests/bcachefs/kmsan-xfstests-nocow.ktest | 3 | ||||
-rwxr-xr-x | tests/bcachefs/kmsan-xfstests.ktest | 3 | ||||
-rw-r--r-- | tests/prelude.sh | 7 |
13 files changed, 55 insertions, 3 deletions
diff --git a/build-test-kernel b/build-test-kernel index 72990ba..aadb7f6 100755 --- a/build-test-kernel +++ b/build-test-kernel @@ -10,6 +10,7 @@ KTEST=$ktest_dir/ktest . "$ktest_dir/lib/libktest.sh" checkdep gcc +checkdep clang checkdep make checkdep bison checkdep flex @@ -20,6 +21,7 @@ ktest_kernel_source="." # dir of kernel source # defaults: current directory ktest_njobs=$(nproc) ktest_precise=false +ktest_compiler=gcc COVERAGE="" # doing code coverage? MAKEARGS=() @@ -128,6 +130,7 @@ do_make() make --jobs="$ktest_njobs" \ --directory="$ktest_kernel_source" \ + CC="$ktest_compiler" \ O="$ktest_kernel_build" \ INSTALL_MOD_PATH="$ktest_kernel_binary" \ "${ktest_kernel_make_append[@]}" \ @@ -155,6 +158,7 @@ kernel_opt() local kconfig="$ktest_kernel_build/.config" local config_tool="$ktest_kernel_source/scripts/config" local val=y + local ret=0 if [[ $opt =~ = ]]; then local val=${opt#*=} @@ -172,10 +176,14 @@ kernel_opt() if [[ $c != $val ]]; then echo "Kernel config option $opt is $c; should be $val" - exit 1 + ret=1 fi ;; esac + + if [[ $ret != 0 ]]; then + return $ret + fi } build_kernel() @@ -289,7 +297,7 @@ cmd_oldconfig() cmd_config() { new_config - do_make nconfig + do_make nconfig "$@" } cmd_faddr2line() diff --git a/tests/bcachefs/bcachefs-test-libs.sh b/tests/bcachefs/bcachefs-test-libs.sh index eab1abe..6887e21 100644 --- a/tests/bcachefs/bcachefs-test-libs.sh +++ b/tests/bcachefs/bcachefs-test-libs.sh @@ -21,7 +21,7 @@ fi require-kernel-config TRANSPARENT_HUGEPAGE -if [[ $ktest_arch = x86_64 ]]; then +if [[ $ktest_arch = x86_64 && ! ${ktest_kernel_config_require[*]} == *KMSAN* ]]; then require-kernel-config CRYPTO_CRC32C_INTEL require-kernel-config CRYPTO_POLY1305_X86_64 require-kernel-config CRYPTO_CHACHA20_X86_64 diff --git a/tests/bcachefs/kmsan-base.sh b/tests/bcachefs/kmsan-base.sh new file mode 100644 index 0000000..406e101 --- /dev/null +++ b/tests/bcachefs/kmsan-base.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/../test-libs.sh + +config-timeout-multiplier 3 +config-compiler clang + +require-kernel-config KMSAN + +call_base_test kmsan "$@" diff --git a/tests/bcachefs/kmsan-ec.ktest b/tests/bcachefs/kmsan-ec.ktest new file mode 100755 index 0000000..4b0ffd0 --- /dev/null +++ b/tests/bcachefs/kmsan-ec.ktest @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kmsan-base.sh diff --git a/tests/bcachefs/kmsan-quota.ktest b/tests/bcachefs/kmsan-quota.ktest new file mode 100755 index 0000000..4b0ffd0 --- /dev/null +++ b/tests/bcachefs/kmsan-quota.ktest @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kmsan-base.sh diff --git a/tests/bcachefs/kmsan-replication.ktest b/tests/bcachefs/kmsan-replication.ktest new file mode 100755 index 0000000..4b0ffd0 --- /dev/null +++ b/tests/bcachefs/kmsan-replication.ktest @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kmsan-base.sh diff --git a/tests/bcachefs/kmsan-single_device.ktest b/tests/bcachefs/kmsan-single_device.ktest new file mode 100755 index 0000000..4b0ffd0 --- /dev/null +++ b/tests/bcachefs/kmsan-single_device.ktest @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kmsan-base.sh diff --git a/tests/bcachefs/kmsan-subvol.ktest b/tests/bcachefs/kmsan-subvol.ktest new file mode 100755 index 0000000..4b0ffd0 --- /dev/null +++ b/tests/bcachefs/kmsan-subvol.ktest @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kmsan-base.sh diff --git a/tests/bcachefs/kmsan-tier.ktest b/tests/bcachefs/kmsan-tier.ktest new file mode 100755 index 0000000..4b0ffd0 --- /dev/null +++ b/tests/bcachefs/kmsan-tier.ktest @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kmsan-base.sh diff --git a/tests/bcachefs/kmsan-units.ktest b/tests/bcachefs/kmsan-units.ktest new file mode 100755 index 0000000..4b0ffd0 --- /dev/null +++ b/tests/bcachefs/kmsan-units.ktest @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kmsan-base.sh diff --git a/tests/bcachefs/kmsan-xfstests-nocow.ktest b/tests/bcachefs/kmsan-xfstests-nocow.ktest new file mode 100755 index 0000000..4b0ffd0 --- /dev/null +++ b/tests/bcachefs/kmsan-xfstests-nocow.ktest @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kmsan-base.sh diff --git a/tests/bcachefs/kmsan-xfstests.ktest b/tests/bcachefs/kmsan-xfstests.ktest new file mode 100755 index 0000000..4b0ffd0 --- /dev/null +++ b/tests/bcachefs/kmsan-xfstests.ktest @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +. $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kmsan-base.sh diff --git a/tests/prelude.sh b/tests/prelude.sh index 46ff822..6be042b 100644 --- a/tests/prelude.sh +++ b/tests/prelude.sh @@ -27,6 +27,7 @@ if [[ ! -v ktest_verbose ]]; then ktest_make_install=() ktest_kernel_config_require=() ktest_qemu_append=() + ktest_compiler=gcc BUILD_ON_HOST="" fi @@ -197,6 +198,11 @@ config-arch() ktest_arch=$1 } +config-compiler() +{ + ktest_compiler=$1 +} + set_watchdog() { ktest_timeout=$(($ktest_timeout_multiplier * $1)) @@ -295,6 +301,7 @@ main() case $arg in deps) echo "ktest_arch=$ktest_arch" + echo "ktest_compiler=$ktest_compiler" echo "ktest_cpus=$ktest_cpus" echo "ktest_mem=$ktest_mem" echo "ktest_timeout=$((ktest_timeout * ktest_timeout_multiplier))" |