t / t3004-ls-files-basic.shon commit t3903: abstract away SHA-1-specific constants (c784815)
   1#!/bin/sh
   2
   3test_description='basic ls-files tests
   4
   5This test runs git ls-files with various unusual or malformed
   6command-line arguments.
   7'
   8
   9. ./test-lib.sh
  10
  11test_expect_success 'ls-files in empty repository' '
  12        git ls-files >actual &&
  13        test_must_be_empty actual
  14'
  15
  16test_expect_success 'ls-files with nonexistent path' '
  17        git ls-files doesnotexist >actual &&
  18        test_must_be_empty actual
  19'
  20
  21test_expect_success 'ls-files with nonsense option' '
  22        test_expect_code 129 git ls-files --nonsense 2>actual &&
  23        test_i18ngrep "[Uu]sage: git ls-files" actual
  24'
  25
  26test_expect_success 'ls-files -h in corrupt repository' '
  27        mkdir broken &&
  28        (
  29                cd broken &&
  30                git init &&
  31                >.git/index &&
  32                test_expect_code 129 git ls-files -h >usage 2>&1
  33        ) &&
  34        test_i18ngrep "[Uu]sage: git ls-files " broken/usage
  35'
  36
  37test_expect_success SYMLINKS 'ls-files with absolute paths to symlinks' '
  38        mkdir subs &&
  39        ln -s nosuch link &&
  40        ln -s ../nosuch subs/link &&
  41        git add link subs/link &&
  42        git ls-files -s link subs/link >expect &&
  43        git ls-files -s "$(pwd)/link" "$(pwd)/subs/link" >actual &&
  44        test_cmp expect actual &&
  45
  46        (
  47                cd subs &&
  48                git ls-files -s link >../expect &&
  49                git ls-files -s "$(pwd)/link" >../actual
  50        ) &&
  51        test_cmp expect actual
  52'
  53
  54test_done