blob: 01aceb78899f0250a6d2d4af61fe70c5b63402e2 [file] [log] [blame]
#!/bin/bash
# Copyright 2019 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.
#### CATEGORY=Run, inspect and debug
### [EXPERIMENTAL] Entry point for all Fuchsia tests (host and target)
## Usage: fx test [testName ...]
## Options:
## -t, --testNames
## -h, --help
## --host If true, only runs host tests. The opposite of `--device`
## -d, --device If true, only runs device tests. The opposite of `--host`
## --printtests If true, prints the contents of `//out/default/tests.json`
## --[no-]build If true, invokes `fx build` before running the test suite
## (defaults to on)
##
## -r, --random If true, randomizes test execution order
## --dry If true, does not invoke any tests
## -f, --fail If true, halts test suite execution on the first failed test
## --limit If passed, ends test suite execution after N tests
## --warnslow If passed, prints a debug message for each test that takes longer than N seconds to execute
## -R, --realm If passed, runs the tests in a named realm instead of a randomized one.
## -s, --skipped If true, prints a debug statement about each skipped test
## --simple If true, removes any color or decoration from output
## -o, --output If true, also displays the output from passing tests
## -u, --silenceunsupported If true, will reduce unsupported tests to a warning and continue executing.
## This is dangerous outside of the local development cycle, as "unsupported"
## tests are likely a problem with this command, not the tests.
##
## -v, --verbose
##
## Examples:
##
## - Execute all tests
## fx test
##
## - Execute the test component available at this URL
## fx test fuchsia-pkg://fuchsia.com/myPackageName/##meta/componentName.cmx
##
## - Execute the test whose package URL's `package-name` component matches
## the value. Runs all tests contained in this package.
## fx test myPackageName
##
## - Execute the test whose package URL's `resource-path` component matches
## the value. Runs only that test out of its containing package.
## fx test componentName
##
## - Execute all tests at and below this path (usually host tests)
## fx test //subtree/path
##
## - Multiple test names can be supplied in the same invocation, e.g.:
## fx test //subtree/path //another/path fuchsia-pkg://...
##
## The value(s) supplied for `testName` can be fully-formed Fuchsia Package URLs,
## Fuchsia package names, or Fuchsia-tree directories. Partial tree paths
## will execute all descendent tests.
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $?
fx-config-read
exec "${PREBUILT_DART_DIR}/bin/dart" \
--packages="${FUCHSIA_DIR}/scripts/fxtest/fxtest.packages" \
"${FUCHSIA_DIR}/scripts/fxtest/bin/main.dart" "$@"