blob: c706c50a16c0a856af6c0af22be5634ad8dfa9c3 [file] [log] [blame]
#!/usr/bin/env bash
# Copyright 2014 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This script has been adapted from:
# Any modifications made to this file might be applicable there as well.
# This expects the device to be in zedboot mode, with a zedboot that is
# is compatible with the Fuchsia system image provided.
# The first and only parameter should be the path to the Fuchsia system image
# tarball, e.g. `./ generic-x64.tgz`.
# This script expects `pm`, `device-finder`, and `fuchsia_ctl` to all be in the
# same directory as the script.
# This script also expects a private key available at:
# "/etc/botanist/keys/id_rsa_infra".
set -Eex
script_dir=$(dirname "$(readlink -f "$0")")
# Bot key to pave and ssh the device.
# The nodes are named blah-blah--four-word-fuchsia-id
if [ -z "$device_name" ]
echo "No device found. Aborting."
exit 1
echo "Connecting to device $device_name"
reboot() {
# note: this will set an exit code of 255, which we can ignore.
echo "$(date) START:REBOOT ------------------------------------------"
$script_dir/fuchsia_ctl -d $device_name --dev-finder-path $script_dir/dev_finder ssh --identity-file $pkey -c "dm reboot-recovery" || true
echo "$(date) END:REBOOT --------------------------------------------"
trap reboot EXIT
echo "$(date) START:PAVING ------------------------------------------"
ssh-keygen -y -f $pkey >
$script_dir/fuchsia_ctl -d $device_name pave -i $1 --public-key ""
echo "$(date) END:PAVING --------------------------------------------"
$script_dir/fuchsia_ctl push-packages -d $device_name --identity-file $pkey --repoArchive generic-x64.tar.gz -p tiles -p tiles_ctl
# set fuchsia ssh config
cat > $script_dir/fuchsia_ssh_config << EOF
Host *
CheckHostIP no
StrictHostKeyChecking no
ForwardAgent no
ForwardX11 no
GSSAPIDelegateCredentials no
UserKnownHostsFile /dev/null
User fuchsia
IdentitiesOnly yes
IdentityFile $pkey
ControlPersist yes
ControlMaster auto
ControlPath /tmp/fuchsia--%r@%h:%p
ConnectTimeout 10
ServerAliveInterval 1
ServerAliveCountMax 10
LogLevel ERROR
export FUCHSIA_SSH_CONFIG=$script_dir/fuchsia_ssh_config
# Run the driver test
echo "$(date) START:DRIVER_TEST -------------------------------------"
# remove all out dated .packages references
find $flutter_dir -name ".packages" | xargs rm
cd $flutter_dir/dev/benchmarks/test_apps/stocks/
$flutter_bin pub get
$flutter_bin drive -v -d $device_name --target=test_driver/stock_view.dart
echo "$(date) END:DRIVER_TEST ---------------------------------------"