| #!/bin/bash |
| # Copyright 2017 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 a test package and run on target. |
| ### PKG_TARGET is fully qualified or under fuchsia-pkg://fuchsia.com/ |
| |
| ## usage: fx run-test PKG_TARGET [runtests flags] |
| ## Builds the specified test package (e.g., appmgr_integration_tests), copies it to the |
| ## target, and executes it. |
| ## |
| ## If using this command, please run 'fx build' again before paving your device |
| ## because 'fx build updates' used by this script does not build images so it |
| ## can leave paver in weird state. |
| ## |
| ## Arguments: |
| ## All arguments are passed directly to `runtests`, see `fx run-test -h` for all flags. |
| |
| set -e |
| |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $? |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/updates.sh || exit $? |
| fx-config-read |
| |
| function main { |
| if [[ $# -lt 1 ]]; then |
| fx-command-help |
| exit 1 |
| fi |
| |
| case "$1" in |
| -h|--help) |
| fx-command-help |
| echo -e >&2 "\nRuntests help follows:" |
| fx-command-run shell runtests -h |
| exit 0 |
| ;; |
| -*) |
| fx-error "first given argument \"$1\" looks like a flag, a package name must be supplied before all flags." |
| exit 1 |
| ;; |
| *) |
| target="$1" |
| shift |
| esac |
| |
| check-for-amber-server || return -1 |
| |
| echo -e "Building ..." |
| # build all packages as there is no way to only build one and push it to |
| # update repository. |
| fx-command-run build updates |
| echo -e "\nPush package to device" |
| fx-command-run push-package "${target}" |
| |
| fx-command-run shell runtests "pkgfs/packages/${target}/0/test" "$@" |
| } |
| |
| main "$@" |