Don't rely on chmod to work on the underlying platform (although it wouldn't harm the result of the '--chmod=-x' test). Directly check the result of the --chmod option. Add a test_mode_in_index helper function in order to check for success. Signed-off-by: Ingo Brückl <ib@xxxxxxxxxxxxxxx> --- t/t3700-add.sh | 20 ++++---------------- t/test-lib-functions.sh | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/t/t3700-add.sh b/t/t3700-add.sh index 494f5b8..c08ec9e 100755 --- a/t/t3700-add.sh +++ b/t/t3700-add.sh @@ -332,25 +332,13 @@ 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 + test_mode_in_index 100755 foo1 && + git add --chmod=-x foo1 && + test_mode_in_index 100644 foo1 ' test_expect_success POSIXPERM,SYMLINKS 'git add --chmod=+x with symlinks' ' diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 4f7eadb..0e6652b 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -990,3 +990,17 @@ test_copy_bytes () { } ' - "$1" } + +# Test the file mode "$1" of the file "$2" in the index. +test_mode_in_index () { + case "$(git ls-files --stage "$2")" in + $1\ *"$2") + echo pass + ;; + *) + echo fail + git ls-files --stage "$2" + return 1 + ;; + esac +} -- 2.9.2 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html