t / t0004-unwritable.shon commit Merge branch 'st/tag' (df5e12f)
   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        test_tick &&
  12        git commit -m initial &&
  13        echo >file &&
  14        git add file
  15
  16'
  17
  18test_expect_success 'write-tree should notice unwritable repository' '
  19
  20        (
  21                chmod a-w .git/objects .git/objects/?? &&
  22                test_must_fail git write-tree
  23        )
  24        status=$?
  25        chmod 775 .git/objects .git/objects/??
  26        (exit $status)
  27
  28'
  29
  30test_expect_success 'commit should notice unwritable repository' '
  31
  32        (
  33                chmod a-w .git/objects .git/objects/?? &&
  34                test_must_fail git commit -m second
  35        )
  36        status=$?
  37        chmod 775 .git/objects .git/objects/??
  38        (exit $status)
  39
  40'
  41
  42test_expect_success 'update-index should notice unwritable repository' '
  43
  44        (
  45                echo 6O >file &&
  46                chmod a-w .git/objects .git/objects/?? &&
  47                test_must_fail git update-index file
  48        )
  49        status=$?
  50        chmod 775 .git/objects .git/objects/??
  51        (exit $status)
  52
  53'
  54
  55test_expect_success 'add should notice unwritable repository' '
  56
  57        (
  58                echo b >file &&
  59                chmod a-w .git/objects .git/objects/?? &&
  60                test_must_fail git add file
  61        )
  62        status=$?
  63        chmod 775 .git/objects .git/objects/??
  64        (exit $status)
  65
  66'
  67
  68test_done