blob: 6f6a14669e9a8b4762dd8b6c51a1b714111781b9 [file] [log] [blame]
#!/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 [-t|--test <test_name>] PKG_TARGET -- [-args -to -test]
## 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:
## -t|--test Test to run. If not specified, it will run all tests in PKG_TARGET.
set -e
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $?
fx-config-read
function usage {
fx-command-help run-test
}
function main {
all_args="$@"
test_args="${all_args#* -- }"
fx-standard-switches "$@"
set -- "${FX_ARGV[@]}"
test=""
target=""
while (($#)); do
case $1 in
-t|--test)
shift # name
if [[ -z "$1" ]]; then
echo "Missing parameter: <test_name>" >&2
usage
exit 1
fi
test="$1"
;;
--)
break
;;
*)
if [[ "$target" == "" ]]; then
target="$1"
else
usage
exit 1
fi
;;
esac
shift # value
done
if [[ $target == "" ]]; then
usage
return 1
fi
if [[ -z "$(pgrep -f "amber-files/repository")" ]]; then
echo "WARNING: It looks like amber-srv is not running."
echo "WARNING: You probably need to start \"fx serve-updates\""
exit 1
fi
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}"
if [[ "${test}" == "" ]]; then
echo -e "\nRun all tests in ${target}"
fx-command-run shell runtests "pkgfs/packages/${target}/0/test" -- "$test_args"
else
fx-command-run shell runtests -t ${test} "pkgfs/packages/${target}/0/test" -- "$test_args"
fi
}
main "$@"