On Wed, Nov 29, 2023 at 04:24:27PM +0100, Benjamin Tissoires wrote:
> 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.
> 
> Signed-off-by: Benjamin Tissoires <[email protected]>
> ---
>  tools/testing/selftests/hid/vmtest.sh | 42 
> ++++++++++++++++++++---------------
>  1 file changed, 24 insertions(+), 18 deletions(-)
> 
> diff --git a/tools/testing/selftests/hid/vmtest.sh 
> b/tools/testing/selftests/hid/vmtest.sh
> index 301b4e162336..52ada972833b 100755
> --- a/tools/testing/selftests/hid/vmtest.sh
> +++ b/tools/testing/selftests/hid/vmtest.sh
> @@ -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 the only build steps for the kernel and the 
> selftests

typo: "run only the"

Cheers,
  Peter


>       -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 "$@"
> 
> -- 
> 2.41.0
> 

Reply via email to