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 <bentiss@xxxxxxxxxx> > --- > 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 >