summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-05-19 18:35:33 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2024-05-19 18:37:35 -0400
commit9ffae3d6c86db21bd74c86402d4259655a8cde43 (patch)
tree3ccc2e9e58626fe4c61da9d839bd5ea6a22ba6e0
parent82d6edbfd7558808948ede6b1508b230535ff081 (diff)
tests/bcachefs/kmsan-*
Add test variants for KMSAN Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rwxr-xr-xbuild-test-kernel12
-rw-r--r--tests/bcachefs/bcachefs-test-libs.sh2
-rw-r--r--tests/bcachefs/kmsan-base.sh10
-rwxr-xr-xtests/bcachefs/kmsan-ec.ktest3
-rwxr-xr-xtests/bcachefs/kmsan-quota.ktest3
-rwxr-xr-xtests/bcachefs/kmsan-replication.ktest3
-rwxr-xr-xtests/bcachefs/kmsan-single_device.ktest3
-rwxr-xr-xtests/bcachefs/kmsan-subvol.ktest3
-rwxr-xr-xtests/bcachefs/kmsan-tier.ktest3
-rwxr-xr-xtests/bcachefs/kmsan-units.ktest3
-rwxr-xr-xtests/bcachefs/kmsan-xfstests-nocow.ktest3
-rwxr-xr-xtests/bcachefs/kmsan-xfstests.ktest3
-rw-r--r--tests/prelude.sh7
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))"