#!/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 vm_tmp_dir=/var/tmp 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:$vm_tmp_dir/$filename ssh vm -q -t "cd $vm_tmp_dir && sudo ./$filename ${@:2}" # Make sure to preserve the exit code of $filename after cleaning up the file. ret=$? ssh vm -q -t "rm $vm_tmp_dir/$filename" exit $ret