Re: [PATCH 06/21] git p4 test: use client_view in t9806
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
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
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