1#!/bin/sh
   2test_description='ls-files --exclude does not affect index files'
   4. ./test-lib.sh
   5test_expect_success 'create repo with file' '
   7        echo content >file &&
   8        git add file &&
   9        git commit -m file &&
  10        echo modification >file
  11'
  12check_output() {
  14test_expect_success "ls-files output contains file ($1)" "
  15        echo '$2' >expect &&
  16        git ls-files --exclude-standard --$1 >output &&
  17        test_cmp expect output
  18"
  19}
  20check_all_output() {
  22        check_output 'cached' 'file'
  23        check_output 'modified' 'file'
  24}
  25check_all_output
  27test_expect_success 'add file to gitignore' '
  28        echo file >.gitignore
  29'
  30check_all_output
  31test_expect_success 'ls-files -i lists only tracked-but-ignored files' '
  33        echo content >other-file &&
  34        git add other-file &&
  35        echo file >expect &&
  36        git ls-files -i --exclude-standard >output &&
  37        test_cmp expect output
  38'
  39test_done