blob: 51075231a51fec1407e2a905e3ce0da7508f5959 [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.
### build and run tests on host
##
## Usage: fx run-host-tests [-z] [host test names ...] [-- [test runner flags]]
## 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.
## Test runner flags can typically be --gtest_filter=TestSuiteName.TestName
## to restrict to a particular test or set of tests.
##
set -o errexit
set -o pipefail
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $?
fx-config-read
TEST_NAMES=()
function main {
while [[ -n "$1" ]]; do
case "$1" in
-z) ZIRCON=1 ;;
# break at bare double dash
# allow passing args to runtests
--) shift
break
;;
*) TEST_NAMES+=("$1");;
esac
shift
done
if [[ $ZIRCON -eq 1 ]]; then
host_test_dir="${ZIRCON_BUILDROOT}/host_tests"
fx-command-run build "-v"
runtests_cmd=("${ZIRCON_TOOLS_DIR}/runtests")
if [[ -n "$TEST_NAMES" ]]; then
# Comma-separated list of host test names to filter by.
IFS="," runtests_cmd+=("-t" "${TEST_NAMES[@]}")
fi
# remaining arguments after -- are passed to test runner
"${runtests_cmd[@]}" "${host_test_dir}" -- "$@"
else
"${FUCHSIA_DIR}/tools/devshell/contrib/exec-host-tests"\
"--manifest" "${FUCHSIA_BUILD_DIR}/tests.json"\
"--names" "${TEST_NAMES[@]}"\
"--build-dir" "${FUCHSIA_BUILD_DIR}"\
"--ninja" "${FUCHSIA_DIR}/buildtools/ninja"\
"--"\
"$@"
fi
}
main "$@"