git p4 test: use real_path to resolve p4 client symlinks
authorPete Wyckoff <pw@padd.com>
Wed, 27 Jun 2012 12:00:55 +0000 (08:00 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 28 Jun 2012 04:06:34 +0000 (21:06 -0700)
The p4 program is finicky about making sure the recorded client Root
matches the current working directory.  The way it discovers the latter
seems to be to inspect shell variable $PWD.  This could involve symlinks,
that while leading to the same place as the client Root, look different,
and cause p4 to fail.

Resolve all client paths using "test-path-utils real_path $path".  This
removes ".." and resolves all symlinks.

Discovered while running with --root=/dev/shm, which is a link to
/run/shm.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/lib-git-p4.sh
t/t9806-git-p4-options.sh
t/t9810-git-p4-rcs.sh

index eea46a454f44a7fc4282dfe7f788337b5b61217a..44ec24d4f478d6b3c8b90c36aa830210f7dc7524 100644 (file)
@@ -27,7 +27,7 @@ export P4CLIENT=client
 export P4EDITOR=:
 
 db="$TRASH_DIRECTORY/db"
-cli="$TRASH_DIRECTORY/cli"
+cli=$(test-path-utils real_path "$TRASH_DIRECTORY/cli")
 git="$TRASH_DIRECTORY/git"
 pidfile="$TRASH_DIRECTORY/p4d.pid"
 
index 2892367830c90353698ef0554b84c1e66d36a0a2..83738fa2cdcfbf97c7cb723b2388a31d470fa530 100755 (executable)
@@ -128,7 +128,7 @@ test_expect_success 'clone --use-client-spec' '
                exec >/dev/null &&
                test_must_fail git p4 clone --dest="$git" --use-client-spec
        ) &&
-       cli2="$TRASH_DIRECTORY/cli2" &&
+       cli2=$(test-path-utils real_path "$TRASH_DIRECTORY/cli2") &&
        mkdir -p "$cli2" &&
        test_when_finished "rmdir \"$cli2\"" &&
        (
index d8d9ca46793a6c09a19beb350e2f18dd199eb2c4..c7313b0bd96588a22fa77a080037e811c8b4104c 100755 (executable)
@@ -244,7 +244,7 @@ test_expect_success 'cope with rcs keyword expansion damage' '
                cd "$git" &&
                git config git-p4.skipSubmitEdit true &&
                git config git-p4.attemptRCSCleanup true &&
-               (cd ../cli && p4_append_to_file kwfile1.c) &&
+               (cd "$cli" && p4_append_to_file kwfile1.c) &&
                old_lines=$(wc -l <kwfile1.c) &&
                perl -n -i -e "print unless m/Revision:/" kwfile1.c &&
                new_lines=$(wc -l <kwfile1.c) &&