test-dir-iterator: do not assume errno values
[gitweb.git] / t / t7508-status.sh
index a3d760e63ad5c8387c3b0c0a30ae72918a2736ce..e1f11293e2299079d59ebbaf9fa6570e2ff9190c 100755 (executable)
@@ -1099,6 +1099,7 @@ EOF
 '
 
 test_expect_success POSIXPERM,SANITY 'status succeeds in a read-only repository' '
+       test_when_finished "chmod 775 .git" &&
        (
                chmod a-w .git &&
                # make dir1/tracked stat-dirty
@@ -1108,9 +1109,6 @@ test_expect_success POSIXPERM,SANITY 'status succeeds in a read-only repository'
                # make sure "status" succeeded without writing index out
                git diff-files | grep dir1/tracked
        )
-       status=$?
-       chmod 775 .git
-       (exit $status)
 '
 
 (cd sm && echo > bar && git add bar && git commit -q -m 'Add bar') && git add sm
@@ -1671,4 +1669,14 @@ test_expect_success '"Initial commit" should not be noted in commit template' '
        test_i18ngrep ! "Initial commit" output
 '
 
+test_expect_success '--no-optional-locks prevents index update' '
+       test-tool chmtime =1234567890 .git/index &&
+       git --no-optional-locks status &&
+       test-tool chmtime --get .git/index >out &&
+       grep ^1234567890 out &&
+       git status &&
+       test-tool chmtime --get .git/index >out &&
+       ! grep ^1234567890 out
+'
+
 test_done