summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/testing/selftests/vsock/vmtest.sh21
1 files changed, 19 insertions, 2 deletions
diff --git a/tools/testing/selftests/vsock/vmtest.sh b/tools/testing/selftests/vsock/vmtest.sh
index 9eacb753238a..c8d5cb66bf5f 100755
--- a/tools/testing/selftests/vsock/vmtest.sh
+++ b/tools/testing/selftests/vsock/vmtest.sh
@@ -42,6 +42,8 @@ readonly KERNEL_CMDLINE="\
virtme.ssh virtme_ssh_channel=tcp virtme_ssh_user=$USER \
"
readonly LOG=$(mktemp /tmp/vsock_vmtest_XXXX.log)
+readonly TEST_HOME="$(mktemp -d /tmp/vmtest_home_XXXX)"
+readonly SSH_KEY_PATH="${TEST_HOME}"/.ssh/id_ed25519
# Namespace tests must use the ns_ prefix. This is checked in check_netns() and
# is used to determine if a test needs namespace setup before test execution.
@@ -257,7 +259,12 @@ vm_ssh() {
shift
- ${ns_exec} ssh -q -o UserKnownHostsFile=/dev/null -p "${SSH_HOST_PORT}" localhost "$@"
+ ${ns_exec} ssh -q \
+ -i "${SSH_KEY_PATH}" \
+ -o UserKnownHostsFile=/dev/null \
+ -o StrictHostKeyChecking=no \
+ -p "${SSH_HOST_PORT}" \
+ localhost "$@"
return $?
}
@@ -265,6 +272,7 @@ vm_ssh() {
cleanup() {
terminate_pidfiles "${!PIDFILES[@]}"
del_namespaces
+ rm -rf "${TEST_HOME}"
}
check_args() {
@@ -382,6 +390,11 @@ handle_build() {
popd &>/dev/null
}
+setup_home() {
+ mkdir -p "$(dirname "${SSH_KEY_PATH}")"
+ ssh-keygen -t ed25519 -f "${SSH_KEY_PATH}" -N "" -q
+}
+
create_pidfile() {
local pidfile
@@ -470,11 +483,14 @@ vm_start() {
--run \
${kernel_opt} \
${verbose_opt} \
+ --rwdir=/root="${TEST_HOME}" \
+ --force-9p \
+ --cwd /root \
--qemu-opts="${qemu_opts}" \
--qemu="${qemu}" \
--user root \
--append "${KERNEL_CMDLINE}" \
- --rw &> ${logfile} &
+ &> ${logfile} &
timeout "${WAIT_QEMU}" \
bash -c 'while [[ ! -s '"${pidfile}"' ]]; do sleep 1; done; exit 0'
@@ -1551,6 +1567,7 @@ check_deps
check_vng
check_socat
handle_build
+setup_home
echo "1..${#ARGS[@]}"