blob: c1239ab283dcc3f58b9b07b125384d0a48f028a0 [file] [log] [blame]
#!/bin/bash
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
### run host tests
##
## Usage: fx run-host-tests [-z] [host test names ...]
## Builds and runs the given host tests.
## With "-z" passed, only Zircon tests will be run - and
## without it only tests from Garnet and above.
## If no host test names are provided, then all available
## host tests will be run.
##
set -o errexit
set -o pipefail
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/lib/vars.sh
fx-config-read
ARGS=""
function main {
while getopts "v" opt; do
case $opt in
v)
shift
ARGS="$ARGS -v"
;;
esac
done
if [[ $# -gt 0 ]] && [[ $1 = "-z" ]]; then
host_test_dir="${ZIRCON_BUILD_DIR}/host_tests"
fx-command-run build-zircon "-v"
shift
else
host_test_dir="${FUCHSIA_BUILD_DIR}/host_tests"
# If test names are supplied, rebuild the associated tests; else rebuild
# everything under the GN 'host_tests' label.
[[ $# -gt 0 ]] && build_targets="${@/#/host_tests/}" ||
build_targets="./build/gn:host_tests"
fx-command-run build "${build_targets}"
fi
runtests_cmd="${ZIRCON_TOOLS_DIR}/runtests $ARGS"
if [[ $# -gt 0 ]]; then
# Comma-separated list of host test names to filter by.
local IFS=","
filtered_host_tests="'$*'"
runtests_cmd="${runtests_cmd} -t ${filtered_host_tests} $ARGS"
fi
runtests_cmd="${runtests_cmd} ${host_test_dir}"
eval "${runtests_cmd}"
}
main "$@"