]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/hid: vmtest.sh: allow finer control on the build steps
authorBenjamin Tissoires <bentiss@kernel.org>
Wed, 6 Dec 2023 10:45:53 +0000 (11:45 +0100)
committerBenjamin Tissoires <bentiss@kernel.org>
Thu, 7 Dec 2023 08:52:03 +0000 (09:52 +0100)
vmtest.sh works great for a one shot test, but not so much for CI where
I want to build (with different configs) the bzImage in a separate
job than the one I am running it.

Add a "build_only" option to specify whether we need to boot the currently
built kernel in the vm.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Jiri Kosina <jkosina@suse.com>
Link: https://lore.kernel.org/r/20231206-wip-selftests-v2-2-c0350c2f5986@kernel.org
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
tools/testing/selftests/hid/vmtest.sh

index 301b4e1623368b5b812a4b5f40b6a348b11fc092..db534e9099a8a4684346eed0067d397ffa6f80cf 100755 (executable)
@@ -32,7 +32,7 @@ DEFAULT_COMMAND="pip3 install hid-tools; make -C tools/testing/selftests TARGETS
 usage()
 {
        cat <<EOF
-Usage: $0 [-i] [-s] [-d <output_dir>] -- [<command>]
+Usage: $0 [-j N] [-s] [-b] [-d <output_dir>] -- [<command>]
 
 <command> is the command you would normally run when you are in
 the source kernel direcory. e.g:
@@ -55,6 +55,7 @@ Options:
 
        -u)             Update the boot2container script to a newer version.
        -d)             Update the output directory (default: ${OUTPUT_DIR})
+       -b)             Run only the build steps for the kernel and the selftests
        -j)             Number of jobs for compilation, similar to -j in make
                        (default: ${NUM_COMPILE_JOBS})
        -s)             Instead of powering off the VM, start an interactive
@@ -191,8 +192,9 @@ main()
        local command="${DEFAULT_COMMAND}"
        local update_b2c="no"
        local debug_shell="no"
+       local build_only="no"
 
-       while getopts ':hsud:j:' opt; do
+       while getopts ':hsud:j:b' opt; do
                case ${opt} in
                u)
                        update_b2c="yes"
@@ -207,6 +209,9 @@ main()
                        command="/bin/sh"
                        debug_shell="yes"
                        ;;
+               b)
+                       build_only="yes"
+                       ;;
                h)
                        usage
                        exit 0
@@ -226,8 +231,7 @@ main()
        shift $((OPTIND -1))
 
        # trap 'catch "$?"' EXIT
-
-       if [[ "${debug_shell}" == "no" ]]; then
+       if [[ "${build_only}" == "no" && "${debug_shell}" == "no" ]]; then
                if [[ $# -eq 0 ]]; then
                        echo "No command specified, will run ${DEFAULT_COMMAND} in the vm"
                else
@@ -267,24 +271,26 @@ main()
        update_kconfig "${kernel_checkout}" "${kconfig_file}"
 
        recompile_kernel "${kernel_checkout}" "${make_command}"
+       update_selftests "${kernel_checkout}" "${make_command}"
 
-       if [[ "${update_b2c}" == "no" && ! -f "${b2c}" ]]; then
-               echo "vm2c script not found in ${b2c}"
-               update_b2c="yes"
-       fi
+       if [[ "${build_only}" == "no" ]]; then
+               if [[ "${update_b2c}" == "no" && ! -f "${b2c}" ]]; then
+                       echo "vm2c script not found in ${b2c}"
+                       update_b2c="yes"
+               fi
 
-       if [[ "${update_b2c}" == "yes" ]]; then
-               download $B2C_URL $b2c
-               chmod +x $b2c
-       fi
+               if [[ "${update_b2c}" == "yes" ]]; then
+                       download $B2C_URL $b2c
+                       chmod +x $b2c
+               fi
 
-       update_selftests "${kernel_checkout}" "${make_command}"
-       run_vm "${kernel_checkout}" $b2c "${kernel_bzimage}" "${command}"
-       if [[ "${debug_shell}" != "yes" ]]; then
-               echo "Logs saved in ${OUTPUT_DIR}/${LOG_FILE}"
-       fi
+               run_vm "${kernel_checkout}" $b2c "${kernel_bzimage}" "${command}"
+               if [[ "${debug_shell}" != "yes" ]]; then
+                       echo "Logs saved in ${OUTPUT_DIR}/${LOG_FILE}"
+               fi
 
-       exit $(cat ${OUTPUT_DIR}/${EXIT_STATUS_FILE})
+               exit $(cat ${OUTPUT_DIR}/${EXIT_STATUS_FILE})
+       fi
 }
 
 main "$@"