[PATCH] t7502: perform commits using alternate editor in a subshell

2013-02-22 Thread Brandon Casey
From: Brandon Casey draf...@gmail.com

These tests call test_set_editor to set an alternate editor script, but
they appear to presume that the assignment is of a temporary nature and
will not have any effect outside of each individual test.  That is not
the case.  All of the test functions within a test script share a single
environment, so any variables modified in one, are visible in the ones
that follow.

So, let's protect the test functions that follow these, which set an
alternate editor, by performing the test_set_editor and 'git commit'
in a subshell.

Signed-off-by: Brandon Casey draf...@gmail.com
---


Before git-commit: populate the edit buffer with 2 blank lines before s-o-b
is merged, this is needed on top of rt/commit-cleanup-config 51fb3a3d so that
the default EDITOR remains in effect for the new test.

-Brandon


 t/t7502-commit.sh | 24 
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh
index b1c7648..520a5cd 100755
--- a/t/t7502-commit.sh
+++ b/t/t7502-commit.sh
@@ -255,32 +255,40 @@ test_expect_success 'cleanup commit message (fail on 
invalid cleanup mode config
 test_expect_success 'cleanup commit message (no config and no option uses 
default)' '
echo content file 
git add file 
-   test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
-   git commit --no-status 
+   (
+ test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
+ git commit --no-status
+   ) 
commit_msg_is commit message
 '
 
 test_expect_success 'cleanup commit message (option overrides default)' '
echo content file 
git add file 
-   test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
-   git commit --cleanup=whitespace --no-status 
+   (
+ test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
+ git commit --cleanup=whitespace --no-status
+   ) 
commit_msg_is commit message # comment
 '
 
 test_expect_success 'cleanup commit message (config overrides default)' '
echo content file 
git add file 
-   test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
-   git -c commit.cleanup=whitespace commit --no-status 
+   (
+ test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
+ git -c commit.cleanup=whitespace commit --no-status
+   ) 
commit_msg_is commit message # comment
 '
 
 test_expect_success 'cleanup commit message (option overrides config)' '
echo content file 
git add file 
-   test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
-   git -c commit.cleanup=whitespace commit --cleanup=default 
+   (
+ test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
+ git -c commit.cleanup=whitespace commit --cleanup=default
+   ) 
commit_msg_is commit message
 '
 
-- 
1.8.1.3.566.gaa39828

--
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] t7502: perform commits using alternate editor in a subshell

2013-02-22 Thread Junio C Hamano
Brandon Casey bca...@nvidia.com writes:

 From: Brandon Casey draf...@gmail.com

 These tests call test_set_editor to set an alternate editor script, but
 they appear to presume that the assignment is of a temporary nature and
 will not have any effect outside of each individual test.  That is not
 the case.  All of the test functions within a test script share a single
 environment, so any variables modified in one, are visible in the ones
 that follow.

 So, let's protect the test functions that follow these, which set an
 alternate editor, by performing the test_set_editor and 'git commit'
 in a subshell.

 Signed-off-by: Brandon Casey draf...@gmail.com
 ---


 Before git-commit: populate the edit buffer with 2 blank lines before s-o-b
 is merged, this is needed on top of rt/commit-cleanup-config 51fb3a3d so that
 the default EDITOR remains in effect for the new test.

Yeah, what I already pushed out forces EDITOR=: for your test for
the same effect, but this patch clearly takes us in the right (and
better) direction.


 -Brandon


  t/t7502-commit.sh | 24 
  1 file changed, 16 insertions(+), 8 deletions(-)

 diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh
 index b1c7648..520a5cd 100755
 --- a/t/t7502-commit.sh
 +++ b/t/t7502-commit.sh
 @@ -255,32 +255,40 @@ test_expect_success 'cleanup commit message (fail on 
 invalid cleanup mode config
  test_expect_success 'cleanup commit message (no config and no option uses 
 default)' '
   echo content file 
   git add file 
 - test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
 - git commit --no-status 
 + (
 +   test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
 +   git commit --no-status
 + ) 
   commit_msg_is commit message
  '
  
  test_expect_success 'cleanup commit message (option overrides default)' '
   echo content file 
   git add file 
 - test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
 - git commit --cleanup=whitespace --no-status 
 + (
 +   test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
 +   git commit --cleanup=whitespace --no-status
 + ) 
   commit_msg_is commit message # comment
  '
  
  test_expect_success 'cleanup commit message (config overrides default)' '
   echo content file 
   git add file 
 - test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
 - git -c commit.cleanup=whitespace commit --no-status 
 + (
 +   test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
 +   git -c commit.cleanup=whitespace commit --no-status
 + ) 
   commit_msg_is commit message # comment
  '
  
  test_expect_success 'cleanup commit message (option overrides config)' '
   echo content file 
   git add file 
 - test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
 - git -c commit.cleanup=whitespace commit --cleanup=default 
 + (
 +   test_set_editor $TEST_DIRECTORY/t7500/add-content-and-comment 
 +   git -c commit.cleanup=whitespace commit --cleanup=default
 + ) 
   commit_msg_is commit message
  '
--
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