| #!/bin/bash | |
| # | |
| # Copyright 2021 The Chromium OS Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| # cos/run_vmtests.sh --board=[anthos-amd64-vsphere] | |
| # | |
| # This script builds and runs VMTests for a given board. | |
| SCRIPT_ROOT=$(dirname $(readlink -f "$0")) | |
| SCRIPT_ROOT=${SCRIPT_ROOT%cos} | |
| . "${SCRIPT_ROOT}/build_library/build_common.sh" || exit 1 | |
| # Script must be run inside the chroot. | |
| restart_in_chroot_if_needed "$@" | |
| DEFINE_string board "${DEFAULT_BOARD}" \ | |
| "The board to build an image for." | |
| DEFINE_string image_type "test" \ | |
| "Image type to process, base, test or dev." | |
| DEFINE_string image_dir "" "Path to the folder to store netboot images." | |
| # Parse command line. | |
| FLAGS "$@" || exit 1 | |
| eval set -- "${FLAGS_ARGV}" | |
| . "${SCRIPT_ROOT}/build_library/build_common.sh" || exit 1 | |
| . "${BUILD_LIBRARY_DIR}/board_options.sh" || exit 1 | |
| switch_to_strict_mode | |
| set -x | |
| # build_packages artifact output. | |
| SYSROOT="${GCLIENT_ROOT}/chroot/build/${FLAGS_board}" | |
| # build_image artifact output. | |
| IMAGE_DIR="${CHROOT_TRUNK_DIR}"/src/build/images/"${FLAGS_board}"/latest | |
| if [ -n "${FLAGS_image_dir}" ]; then | |
| IMAGE_DIR=${FLAGS_image_dir} | |
| fi | |
| BOARD_ARCH=$(portageq-${FLAGS_board} envvar ARCH) | |
| if [[ ${BOARD_ARCH} == "amd64" ]]; then | |
| BOARD_ARCH="x86_64" | |
| elif [[ ${BOARD_ARCH} == "arm64" ]]; then | |
| BOARD_ARCH="aarch64" | |
| else | |
| echo "Unsupported ${BOARD_ARCH}" | |
| exit 1 | |
| fi | |
| cros_run_vm_test --board ${BOARD} \ | |
| --image-path ${IMAGE_DIR}/chromiumos_${FLAGS_image_type}_image.bin \ | |
| --private-key ${IMAGE_DIR}/id_rsa \ | |
| --test_that-args=--model=ad_hoc_model \ | |
| --copy-on-write \ | |
| --start-vm \ | |
| --qemu-arch ${BOARD_ARCH} \ | |
| --autotest 'suite:smoke' |