t / t4053-diff-no-index.shon commit t4018: an infrastructure to test hunk headers (bfa7d01)
   1#!/bin/sh
   2
   3test_description='diff --no-index'
   4
   5. ./test-lib.sh
   6
   7test_expect_success 'setup' '
   8        mkdir a &&
   9        mkdir b &&
  10        echo 1 >a/1 &&
  11        echo 2 >a/2 &&
  12        git init repo &&
  13        echo 1 >repo/a &&
  14        mkdir -p non/git &&
  15        echo 1 >non/git/a &&
  16        echo 1 >non/git/b
  17'
  18
  19test_expect_success 'git diff --no-index directories' '
  20        git diff --no-index a b >cnt
  21        test $? = 1 && test_line_count = 14 cnt
  22'
  23
  24test_expect_success 'git diff --no-index relative path outside repo' '
  25        (
  26                cd repo &&
  27                test_expect_code 0 git diff --no-index a ../non/git/a &&
  28                test_expect_code 0 git diff --no-index ../non/git/a ../non/git/b
  29        )
  30'
  31
  32test_expect_success 'git diff --no-index with broken index' '
  33        (
  34                cd repo &&
  35                echo broken >.git/index &&
  36                git diff --no-index a ../non/git/a
  37        )
  38'
  39
  40test_expect_success 'git diff outside repo with broken index' '
  41        (
  42                cd repo &&
  43                git diff ../non/git/a ../non/git/b
  44        )
  45'
  46
  47test_expect_success 'git diff --no-index executed outside repo gives correct error message' '
  48        (
  49                GIT_CEILING_DIRECTORIES=$TRASH_DIRECTORY/non &&
  50                export GIT_CEILING_DIRECTORIES &&
  51                cd non/git &&
  52                test_must_fail git diff --no-index a 2>actual.err &&
  53                echo "usage: git diff --no-index <path> <path>" >expect.err &&
  54                test_cmp expect.err actual.err
  55        )
  56'
  57
  58test_done