From: Bobby Eshleman <[email protected]>

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 <[email protected]>
---
 tools/testing/selftests/vsock/vmtest.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/vsock/vmtest.sh 
b/tools/testing/selftests/vsock/vmtest.sh
index a4b56322ce9b..30c06544f2e5 100755
--- a/tools/testing/selftests/vsock/vmtest.sh
+++ b/tools/testing/selftests/vsock/vmtest.sh
@@ -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() {
@@ -601,7 +602,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}" \
@@ -609,7 +610,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}" \

-- 
2.52.0


Reply via email to