mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-09 03:57:24 +00:00
915dfb2f84
This now requires --platform instead of --target, per the error message from tools/run_tests: Warning: Setting --target for running crosvm tests is deprecated. Use --platform instead to specify which platform to test for. BUG=None TEST=tools/presubmit Change-Id: I0e52f97273774b968617007c098aa80d33103263 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3950716 Reviewed-by: Dennis Kempin <denniskempin@google.com> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
122 lines
2.8 KiB
Bash
Executable file
122 lines
2.8 KiB
Bash
Executable file
#!/bin/bash
|
|
# Copyright 2021 The ChromiumOS Authors
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
set -e
|
|
|
|
cd "$(dirname $0)/.."
|
|
|
|
HELP="This will run presubmit checks for crosvm.
|
|
|
|
To run all checks just run
|
|
|
|
$ ./tools/presubmit
|
|
|
|
The checks can be run in parallel for faster execution:
|
|
|
|
$ ./tools/presubmit --tmux
|
|
|
|
This will open a tmux session to run all presubmit builds in parallel. It will
|
|
create a nested tmux session if you are already using it.
|
|
|
|
All tests are executed in the local development environment. If your host is not
|
|
set up for aarch64 builds, it will use './tools/dev_container' to build run
|
|
those.
|
|
|
|
There are three levels of presubmit tests that can be run:
|
|
|
|
$ ./tools/presubmit --quick
|
|
$ ./tools/presubmit
|
|
$ ./tools/presubmit --all
|
|
|
|
The quick mode will only cover x86 and does not require a dev_container. The
|
|
default mode will add aarch64 tests, and the all mode will test everything that
|
|
is also tested on Kokoro.
|
|
"
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
-q | --quick)
|
|
QUICK=true
|
|
shift
|
|
;;
|
|
-a | --all)
|
|
ALL=true
|
|
shift
|
|
;;
|
|
--tmux)
|
|
RUN_IN_TMUX=true
|
|
shift
|
|
;;
|
|
-h | --help)
|
|
echo "$HELP"
|
|
exit 0
|
|
shift
|
|
;;
|
|
*)
|
|
echo "unknown argument $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
run_commands_in_tmux() {
|
|
local tmux_commands=(
|
|
set-option -g default-shell /bin/bash \;
|
|
new-session "$1; read -p 'Press enter to close.'" \;
|
|
)
|
|
for cmd in "${@:2}"; do
|
|
tmux_commands+=(
|
|
split-window -h "$cmd; read -p 'Press enter to close.'" \;
|
|
)
|
|
done
|
|
tmux_commands+=(
|
|
select-layout even-horizontal \;
|
|
)
|
|
TMUX="" tmux "${tmux_commands[@]}"
|
|
}
|
|
|
|
run_commands() {
|
|
for cmd in "$@"; do
|
|
echo "$ ${cmd}"
|
|
bash -c "$cmd"
|
|
echo
|
|
done
|
|
}
|
|
|
|
aarch64_wrapper() {
|
|
if ! (rustup target list --installed | grep -q aarch64 &&
|
|
dpkg --print-foreign-architectures | grep -q arm64); then
|
|
echo "./tools/dev_container"
|
|
fi
|
|
}
|
|
|
|
commands=(
|
|
"./tools/health-check"
|
|
)
|
|
|
|
if [ "$ALL" == true ]; then
|
|
commands+=(
|
|
"./tools/run_tests"
|
|
"./tools/run_tests --platform=mingw64"
|
|
"$(aarch64_wrapper) ./tools/run_tests --platform=aarch64"
|
|
"$(aarch64_wrapper) ./tools/run_tests --platform=armhf"
|
|
"cargo build --verbose --no-default-features"
|
|
)
|
|
elif [ "$QUICK" != true ]; then
|
|
commands+=(
|
|
"./tools/run_tests"
|
|
"$(aarch64_wrapper) ./tools/run_tests --platform=aarch64 --unit-tests"
|
|
"./tools/run_tests --platform=mingw64 --unit-tests"
|
|
)
|
|
else
|
|
commands+=(
|
|
"./tools/run_tests --unit-tests"
|
|
)
|
|
fi
|
|
|
|
if [ "$RUN_IN_TMUX" = true ]; then
|
|
run_commands_in_tmux "${commands[@]}"
|
|
else
|
|
run_commands "${commands[@]}"
|
|
fi
|