Re: [PATCH 06/21] git p4 test: use client_view in t9806

2013-01-26 Thread Pete Wyckoff
Yes, this really is four months later.  Somehow I forgot all
about this series.

gits...@pobox.com wrote on Fri, 28 Sep 2012 12:11 -0700:
> Pete Wyckoff  writes:
> 
> > Use the standard client_view function from lib-git-p4.sh
> > instead of building one by hand.  This requires a bit of
> > rework, using the current value of $P4CLIENT for the client
> > name.  It also reorganizes the test to isolate changes to
> > $P4CLIENT and $cli in a subshell.
> >
> > Signed-off-by: Pete Wyckoff 
> > ---
> >  t/lib-git-p4.sh   |  4 ++--
> >  t/t9806-git-p4-options.sh | 50 
> > ++-
> >  2 files changed, 25 insertions(+), 29 deletions(-)
> >
> > diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
> > index 890ee60..d558dd0 100644
> > --- a/t/lib-git-p4.sh
> > +++ b/t/lib-git-p4.sh
> > @@ -116,8 +116,8 @@ marshal_dump() {
> >  client_view() {
> > (
> > cat <<-EOF &&
> > -   Client: client
> > -   Description: client
> > +   Client: $P4CLIENT
> > +   Description: $P4CLIENT
> > Root: $cli
> > View:
> > EOF
> > diff --git a/t/t9806-git-p4-options.sh b/t/t9806-git-p4-options.sh
> > index fa40cc8..37ca30a 100755
> > --- a/t/t9806-git-p4-options.sh
> > +++ b/t/t9806-git-p4-options.sh
> > @@ -126,37 +126,33 @@ test_expect_success 'clone --use-client-spec' '
> > exec >/dev/null &&
> > test_must_fail git p4 clone --dest="$git" --use-client-spec
> > ) &&
> > -   cli2=$(test-path-utils real_path "$TRASH_DIRECTORY/cli2") &&
> > +   # build a different client
> > +   cli2="$TRASH_DIRECTORY/cli2" &&
> > mkdir -p "$cli2" &&
> > test_when_finished "rmdir \"$cli2\"" &&
> > test_when_finished cleanup_git &&
> > ...
> > -   # same thing again, this time with variable instead of option
> > (
> > ...
> > +   # group P4CLIENT and cli changes in a sub-shell
> > +   P4CLIENT=client2 &&
> > +   cli="$cli2" &&
> > +   client_view "//depot/sub/... //client2/bus/..." &&
> > +   git p4 clone --dest="$git" --use-client-spec //depot/... &&
> > +   (
> > +   cd "$git" &&
> > +   test_path_is_file bus/dir/f4 &&
> > +   test_path_is_missing file1
> > +   ) &&
> > +   cleanup_git &&
> 
> Hmm, the use of "test-path-utils real_path" to form cli2 in the
> original was not necessary at all?

Thanks, I will make this removal more explicit, putting it in
with 8/21 where it belongs, with explanation.

> > +   # same thing again, this time with variable instead of option
> > +   (
> > +   cd "$git" &&
> > +   git init &&
> > +   git config git-p4.useClientSpec true &&
> > +   git p4 sync //depot/... &&
> > +   git checkout -b master p4/master &&
> > +   test_path_is_file bus/dir/f4 &&
> > +   test_path_is_missing file1
> > +   )
> 
> Do you need a separate sub-shell inside a sub-shell we are already
> in that you called client_view in?
> 
> > )
> >  '

The first subshell is to hide P4CLIENT and cli variable changes
from the rest of the tests.

The second is to keep the "cd $git" from changing behavior of the
following "cleanup_git" call.  That does "rm -rf $git" which
would fail on some file systems if cwd is still in there.  With
just one subshell it would look like:

(
P4CLIENT=client2 &&
git p4 clone .. &&
cd "$git" &&
... do test
cd "$TRASH_DIRECTORY" &&
cleanup_git &&

cd "$git" &&
... more test
)

It's a bit easier to understand with an extra level of shell,
and sticks to the pattern used in the rest of the t98*.

-- Pete
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 06/21] git p4 test: use client_view in t9806

2012-09-28 Thread Junio C Hamano
Pete Wyckoff  writes:

> Use the standard client_view function from lib-git-p4.sh
> instead of building one by hand.  This requires a bit of
> rework, using the current value of $P4CLIENT for the client
> name.  It also reorganizes the test to isolate changes to
> $P4CLIENT and $cli in a subshell.
>
> Signed-off-by: Pete Wyckoff 
> ---
>  t/lib-git-p4.sh   |  4 ++--
>  t/t9806-git-p4-options.sh | 50 
> ++-
>  2 files changed, 25 insertions(+), 29 deletions(-)
>
> diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
> index 890ee60..d558dd0 100644
> --- a/t/lib-git-p4.sh
> +++ b/t/lib-git-p4.sh
> @@ -116,8 +116,8 @@ marshal_dump() {
>  client_view() {
>   (
>   cat <<-EOF &&
> - Client: client
> - Description: client
> + Client: $P4CLIENT
> + Description: $P4CLIENT
>   Root: $cli
>   View:
>   EOF
> diff --git a/t/t9806-git-p4-options.sh b/t/t9806-git-p4-options.sh
> index fa40cc8..37ca30a 100755
> --- a/t/t9806-git-p4-options.sh
> +++ b/t/t9806-git-p4-options.sh
> @@ -126,37 +126,33 @@ test_expect_success 'clone --use-client-spec' '
>   exec >/dev/null &&
>   test_must_fail git p4 clone --dest="$git" --use-client-spec
>   ) &&
> - cli2=$(test-path-utils real_path "$TRASH_DIRECTORY/cli2") &&
> + # build a different client
> + cli2="$TRASH_DIRECTORY/cli2" &&
>   mkdir -p "$cli2" &&
>   test_when_finished "rmdir \"$cli2\"" &&
>   test_when_finished cleanup_git &&
> ...
> - # same thing again, this time with variable instead of option
>   (
> ...
> + # group P4CLIENT and cli changes in a sub-shell
> + P4CLIENT=client2 &&
> + cli="$cli2" &&
> + client_view "//depot/sub/... //client2/bus/..." &&
> + git p4 clone --dest="$git" --use-client-spec //depot/... &&
> + (
> + cd "$git" &&
> + test_path_is_file bus/dir/f4 &&
> + test_path_is_missing file1
> + ) &&
> + cleanup_git &&

Hmm, the use of "test-path-utils real_path" to form cli2 in the
original was not necessary at all?

> + # same thing again, this time with variable instead of option
> + (
> + cd "$git" &&
> + git init &&
> + git config git-p4.useClientSpec true &&
> + git p4 sync //depot/... &&
> + git checkout -b master p4/master &&
> + test_path_is_file bus/dir/f4 &&
> + test_path_is_missing file1
> + )

Do you need a separate sub-shell inside a sub-shell we are already
in that you called client_view in?

>   )
>  '
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 06/21] git p4 test: use client_view in t9806

2012-09-28 Thread Pete Wyckoff
Use the standard client_view function from lib-git-p4.sh
instead of building one by hand.  This requires a bit of
rework, using the current value of $P4CLIENT for the client
name.  It also reorganizes the test to isolate changes to
$P4CLIENT and $cli in a subshell.

Signed-off-by: Pete Wyckoff 
---
 t/lib-git-p4.sh   |  4 ++--
 t/t9806-git-p4-options.sh | 50 ++-
 2 files changed, 25 insertions(+), 29 deletions(-)

diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
index 890ee60..d558dd0 100644
--- a/t/lib-git-p4.sh
+++ b/t/lib-git-p4.sh
@@ -116,8 +116,8 @@ marshal_dump() {
 client_view() {
(
cat <<-EOF &&
-   Client: client
-   Description: client
+   Client: $P4CLIENT
+   Description: $P4CLIENT
Root: $cli
View:
EOF
diff --git a/t/t9806-git-p4-options.sh b/t/t9806-git-p4-options.sh
index fa40cc8..37ca30a 100755
--- a/t/t9806-git-p4-options.sh
+++ b/t/t9806-git-p4-options.sh
@@ -126,37 +126,33 @@ test_expect_success 'clone --use-client-spec' '
exec >/dev/null &&
test_must_fail git p4 clone --dest="$git" --use-client-spec
) &&
-   cli2=$(test-path-utils real_path "$TRASH_DIRECTORY/cli2") &&
+   # build a different client
+   cli2="$TRASH_DIRECTORY/cli2" &&
mkdir -p "$cli2" &&
test_when_finished "rmdir \"$cli2\"" &&
-   (
-   cd "$cli2" &&
-   p4 client -i <<-EOF
-   Client: client2
-   Description: client2
-   Root: $cli2
-   View: //depot/sub/... //client2/bus/...
-   EOF
-   ) &&
-   P4CLIENT=client2 &&
test_when_finished cleanup_git &&
-   git p4 clone --dest="$git" --use-client-spec //depot/... &&
-   (
-   cd "$git" &&
-   test_path_is_file bus/dir/f4 &&
-   test_path_is_missing file1
-   ) &&
-   cleanup_git &&
-
-   # same thing again, this time with variable instead of option
(
-   cd "$git" &&
-   git init &&
-   git config git-p4.useClientSpec true &&
-   git p4 sync //depot/... &&
-   git checkout -b master p4/master &&
-   test_path_is_file bus/dir/f4 &&
-   test_path_is_missing file1
+   # group P4CLIENT and cli changes in a sub-shell
+   P4CLIENT=client2 &&
+   cli="$cli2" &&
+   client_view "//depot/sub/... //client2/bus/..." &&
+   git p4 clone --dest="$git" --use-client-spec //depot/... &&
+   (
+   cd "$git" &&
+   test_path_is_file bus/dir/f4 &&
+   test_path_is_missing file1
+   ) &&
+   cleanup_git &&
+   # same thing again, this time with variable instead of option
+   (
+   cd "$git" &&
+   git init &&
+   git config git-p4.useClientSpec true &&
+   git p4 sync //depot/... &&
+   git checkout -b master p4/master &&
+   test_path_is_file bus/dir/f4 &&
+   test_path_is_missing file1
+   )
)
 '
 
-- 
1.7.12.1.403.g28165e1

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html