#!/bin/bash # Copyright 2021 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # # Uploads and executes a file in the VM. This script can be set as a runner # for cargo to execute tests inside the VM. ${0%/*}/wait_for_vm_with_timeout || exit 1 if [ "$1" = "--no-sync" ]; then shift else echo "Syncing dependencies..." ${0%/*}/sync_deps || exit 1 fi filepath=$1 filename=$(basename $filepath) echo "Executing $filename ${@:2}" scp -q $filepath vm:/tmp/$filename ssh vm -q -t "cd /tmp && sudo ./$filename ${@:2}" # Make sure to preserve the exit code of $filename after cleaning up the file. ret=$? ssh vm -q -t "rm /tmp/$filename" exit $ret