git p4 test: make sure P4CONFIG relative path works
authorPete Wyckoff <pw@padd.com>
Thu, 7 Mar 2013 23:19:15 +0000 (18:19 -0500)
committerJunio C Hamano <gitster@pobox.com>
Fri, 8 Mar 2013 00:00:49 +0000 (16:00 -0800)
This adds a test for the fix in bf1d68f (git-p4: use absolute
directory for PWD env var, 2011-12-09). It is necessary to
set PWD to an absolute path so that p4 can find files referenced
by non-absolute paths, like the value of the P4CONFIG environment
variable.

P4 does not open files directly; it builds a path by prepending
the contents of the PWD environment variable.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t9808-git-p4-chdir.sh
index dc92e60cd6f09fa5e2610d491cf1c07d43c45dfd..55c5e36a27fcde0b46f9c1f4ccded65fef49c1e9 100755 (executable)
@@ -42,6 +42,20 @@ test_expect_success 'P4CONFIG and relative dir clone' '
        )
 '
 
        )
 '
 
+# Common setup using .p4config to set P4CLIENT and P4PORT breaks
+# if clone destination is relative.  Make sure that chdir() expands
+# the relative path in --dest to absolute.
+test_expect_success 'p4 client root would be relative due to clone --dest' '
+       test_when_finished cleanup_git &&
+       (
+               echo P4PORT=$P4PORT >git/.p4config &&
+               P4CONFIG=.p4config &&
+               export P4CONFIG &&
+               unset P4PORT &&
+               git p4 clone --dest="git" //depot
+       )
+'
+
 test_expect_success 'kill p4d' '
        kill_p4d
 '
 test_expect_success 'kill p4d' '
        kill_p4d
 '