crosvm/ci/vm_tools/exec_binary_in_vm

29 lines
755 B
Text
Raw Normal View History

#!/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