1#!/bin/sh
   2test_description='detect unwritable repository and fail correctly'
   4. ./test-lib.sh
   6test_expect_success setup '
   8        >file &&
  10        git add file &&
  11        git commit -m initial &&
  12        echo >file &&
  13        git add file
  14'
  16test_expect_success 'write-tree should notice unwritable repository' '
  18        (
  20                chmod a-w .git/objects
  21                test_must_fail git write-tree
  22        )
  23        status=$?
  24        chmod 775 .git/objects
  25        (exit $status)
  26'
  28test_expect_success 'commit should notice unwritable repository' '
  30        (
  32                chmod a-w .git/objects
  33                test_must_fail git commit -m second
  34        )
  35        status=$?
  36        chmod 775 .git/objects
  37        (exit $status)
  38'
  40test_expect_success 'update-index should notice unwritable repository' '
  42        (
  44                echo a >file &&
  45                chmod a-w .git/objects
  46                test_must_fail git update-index file
  47        )
  48        status=$?
  49        chmod 775 .git/objects
  50        (exit $status)
  51'
  53test_expect_success 'add should notice unwritable repository' '
  55        (
  57                echo b >file &&
  58                chmod a-w .git/objects
  59                test_must_fail git add file
  60        )
  61        status=$?
  62        chmod 775 .git/objects
  63        (exit $status)
  64'
  66test_done