selftests: rds: Add -c config option to rds/config.sh
authorAllison Henderson <achender@kernel.org>
Fri, 20 Mar 2026 04:18:34 +0000 (21:18 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 24 Mar 2026 02:39:07 +0000 (19:39 -0700)
This patch adds a new -c flag to config.sh that enables callers
to specify the file path of the config they would like to update.
If no config is specified, the default will be the .config of the
current directory.

Signed-off-by: Allison Henderson <achender@kernel.org>
Link: https://patch.msgid.link/20260320041834.2761069-3-achender@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/rds/README.txt
tools/testing/selftests/net/rds/config.sh

index cbde295..c6fe003 100644 (file)
@@ -31,8 +31,11 @@ EXAMPLE:
     # Alternatly create a gcov disabled .config
     tools/testing/selftests/net/rds/config.sh
 
+    # Config paths may also be specified with the -c flag
+    tools/testing/selftests/net/rds/config.sh -c .config.local
+
     # build the kernel
-    vng --build  --config tools/testing/selftests/net/config
+    vng --build --config .config
 
     # launch the tests in a VM
     vng -v --rwdir ./ --run . --user root --cpus 4 -- \
index 791c8db..29a7931 100755 (executable)
@@ -6,15 +6,20 @@ set -u
 set -x
 
 unset KBUILD_OUTPUT
+CONF_FILE=""
+FLAGS=()
 
 GENERATE_GCOV_REPORT=0
-while getopts "g" opt; do
+while getopts "gc:" opt; do
   case ${opt} in
     g)
       GENERATE_GCOV_REPORT=1
       ;;
+    c)
+      CONF_FILE=$OPTARG
+      ;;
     :)
-      echo "USAGE: config.sh [-g]"
+      echo "USAGE: config.sh [-g] [-c config]"
       exit 1
       ;;
     ?)
@@ -24,30 +29,32 @@ while getopts "g" opt; do
   esac
 done
 
-CONF_FILE="tools/testing/selftests/net/config"
+if [[ "$CONF_FILE" != "" ]]; then
+       FLAGS=(--file "$CONF_FILE")
+fi
 
 # no modules
-scripts/config --file "$CONF_FILE" --disable CONFIG_MODULES
+scripts/config "${FLAGS[@]}" --disable CONFIG_MODULES
 
 # enable RDS
-scripts/config --file "$CONF_FILE" --enable CONFIG_RDS
-scripts/config --file "$CONF_FILE" --enable CONFIG_RDS_TCP
+scripts/config "${FLAGS[@]}" --enable CONFIG_RDS
+scripts/config "${FLAGS[@]}" --enable CONFIG_RDS_TCP
 
 if [ "$GENERATE_GCOV_REPORT" -eq 1 ]; then
        # instrument RDS and only RDS
-       scripts/config --file "$CONF_FILE" --enable CONFIG_GCOV_KERNEL
-       scripts/config --file "$CONF_FILE" --disable GCOV_PROFILE_ALL
-       scripts/config --file "$CONF_FILE" --enable GCOV_PROFILE_RDS
+       scripts/config "${FLAGS[@]}" --enable CONFIG_GCOV_KERNEL
+       scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_ALL
+       scripts/config "${FLAGS[@]}" --enable GCOV_PROFILE_RDS
 else
-       scripts/config --file "$CONF_FILE" --disable CONFIG_GCOV_KERNEL
-       scripts/config --file "$CONF_FILE" --disable GCOV_PROFILE_ALL
-       scripts/config --file "$CONF_FILE" --disable GCOV_PROFILE_RDS
+       scripts/config "${FLAGS[@]}" --disable CONFIG_GCOV_KERNEL
+       scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_ALL
+       scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_RDS
 fi
 
 # need network namespaces to run tests with veth network interfaces
-scripts/config --file "$CONF_FILE" --enable CONFIG_NET_NS
-scripts/config --file "$CONF_FILE" --enable CONFIG_VETH
+scripts/config "${FLAGS[@]}" --enable CONFIG_NET_NS
+scripts/config "${FLAGS[@]}" --enable CONFIG_VETH
 
 # simulate packet loss
-scripts/config --file "$CONF_FILE" --enable CONFIG_NET_SCH_NETEM
+scripts/config "${FLAGS[@]}" --enable CONFIG_NET_SCH_NETEM