t / t0004-unwritable.shon commit Merge branch 'lh/git-file' (e2e2def)
   1#!/bin/sh
   2
   3test_description='detect unwritable repository and fail correctly'
   4
   5. ./test-lib.sh
   6
   7test_expect_success setup '
   8
   9        >file &&
  10        git add file &&
  11        git commit -m initial &&
  12        echo >file &&
  13        git add file
  14
  15'
  16
  17test_expect_success 'write-tree should notice unwritable repository' '
  18
  19        (
  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
  27'
  28
  29test_expect_success 'commit should notice unwritable repository' '
  30
  31        (
  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
  39'
  40
  41test_expect_success 'update-index should notice unwritable repository' '
  42
  43        (
  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
  52'
  53
  54test_expect_success 'add should notice unwritable repository' '
  55
  56        (
  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
  65'
  66
  67test_done