Depending on the underlying platform a chmod may be a noop. Although it
wouldn't harm the result of the '--chmod=-x' test, there is a more
robust way to make sure the --chmod option works both ways.

Merge the two separate tests for the --chmod option into one, checking
both permissions on the same file.

Signed-off-by: Ingo Brückl <i...@wupperonline.de>
---
 t/t3700-add.sh | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/t/t3700-add.sh b/t/t3700-add.sh
index 494f5b8..1fa5dfd 100755
--- a/t/t3700-add.sh
+++ b/t/t3700-add.sh
@@ -332,24 +332,18 @@ test_expect_success 'git add --dry-run --ignore-missing 
of non-existing file out
        test_i18ncmp expect.err actual.err
 '

-test_expect_success 'git add --chmod=+x stages a non-executable file with +x' '
+test_expect_success 'git add --chmod=[+-]x stages correctly' '
        rm -f foo1 &&
        echo foo >foo1 &&
        git add --chmod=+x foo1 &&
        case "$(git ls-files --stage foo1)" in
        100755" "*foo1) echo pass;;
        *) echo fail; git ls-files --stage foo1; (exit 1);;
-       esac
-'
-
-test_expect_success 'git add --chmod=-x stages an executable file with -x' '
-       rm -f xfoo1 &&
-       echo foo >xfoo1 &&
-       chmod 755 xfoo1 &&
-       git add --chmod=-x xfoo1 &&
-       case "$(git ls-files --stage xfoo1)" in
-       100644" "*xfoo1) echo pass;;
-       *) echo fail; git ls-files --stage xfoo1; (exit 1);;
+       esac &&
+       git add --chmod=-x foo1 &&
+       case "$(git ls-files --stage foo1)" in
+       100644" "*foo1) echo pass;;
+       *) echo fail; git ls-files --stage foo1; (exit 1);;
        esac
 '

--
2.9.2
--
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

Reply via email to