selftests/vsock: fix vsock_test path shadowing in nested VMs

The /root mount introduced for nested VM support shadows any host paths
under /root. This breaks systems where the outer VM runs as root and the
vsock_test binary path is something like:

/root/linux/tools/testing/selftests/vsock/vsock_test

Fix this by copying vsock_test into the temporary home directory that
gets mounted as /root in the guest, and using a relative path to invoke
it.

Signed-off-by: Bobby Eshleman <bobbyeshleman@meta.com>
Link: https://patch.msgid.link/20260317-vsock-vmtest-nested-fixes-v2-2-0b3f53b80a0f@meta.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
master
Bobby Eshleman 2026-03-17 15:09:36 -07:00 committed by Jakub Kicinski
parent 865926e26e
commit 0c3893d378
1 changed files with 3 additions and 2 deletions

View File

@ -393,6 +393,7 @@ handle_build() {
setup_home() {
mkdir -p "$(dirname "${SSH_KEY_PATH}")"
ssh-keygen -t ed25519 -f "${SSH_KEY_PATH}" -N "" -q
cp "${VSOCK_TEST}" "${TEST_HOME}"/vsock_test
}
create_pidfile() {
@ -620,7 +621,7 @@ vm_vsock_test() {
# log output and use pipefail to respect vsock_test errors
set -o pipefail
if [[ "${host}" != server ]]; then
vm_ssh "${ns}" -- "${VSOCK_TEST}" \
vm_ssh "${ns}" -- ./vsock_test \
--mode=client \
--control-host="${host}" \
--peer-cid="${cid}" \
@ -628,7 +629,7 @@ vm_vsock_test() {
2>&1 | log_guest
rc=$?
else
vm_ssh "${ns}" -- "${VSOCK_TEST}" \
vm_ssh "${ns}" -- ./vsock_test \
--mode=server \
--peer-cid="${cid}" \
--control-port="${port}" \