Merge branch 'ls/filter-process'
authorJunio C Hamano <gitster@pobox.com>
Fri, 11 Nov 2016 21:56:30 +0000 (13:56 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 11 Nov 2016 21:56:30 +0000 (13:56 -0800)
Test portability improvements and optimization for an
already-graduated topic.

* ls/filter-process:
t0021: remove debugging cruft

1  2 
t/t0021-conversion.sh
diff --combined t/t0021-conversion.sh
index 9ff502773d07819b43d027a0a1ee0fdf98f77e93,5ce2535017054250a91fac3ae4328aeb45ba6d55..da1ad3e70ea140ecd5ac0741a146084ba518523f
@@@ -5,16 -5,14 +5,16 @@@ test_description='blob conversion via g
  . ./test-lib.sh
  
  TEST_ROOT="$(pwd)"
 +PATH=$TEST_ROOT:$PATH
  
 -cat <<EOF >"$TEST_ROOT/rot13.sh"
 -#!$SHELL_PATH
 +write_script <<\EOF "$TEST_ROOT/rot13.sh"
  tr \
    'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' \
    'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM'
  EOF
 -chmod +x "$TEST_ROOT/rot13.sh"
 +
 +write_script rot13-filter.pl "$PERL_PATH" \
 +      <"$TEST_DIRECTORY"/t0021/rot13-filter.pl
  
  generate_random_characters () {
        LEN=$1
@@@ -29,8 -27,7 +29,7 @@@ file_size () 
  
  filter_git () {
        rm -f rot13-filter.log &&
-       git "$@" 2>git-stderr.log &&
-       rm -f git-stderr.log
+       git "$@"
  }
  
  # Compare two files and ensure that `clean` and `smudge` respectively are
@@@ -67,7 -64,7 +66,7 @@@ test_cmp_exclude_clean () 
  # is equal to the committed content.
  test_cmp_committed_rot13 () {
        test_cmp "$1" "$2" &&
 -      "$TEST_ROOT/rot13.sh" <"$1" >expected &&
 +      rot13.sh <"$1" >expected &&
        git cat-file blob :"$2" >actual &&
        test_cmp expected actual
  }
@@@ -343,7 -340,7 +342,7 @@@ test_expect_success 'diff does not reus
  '
  
  test_expect_success PERL 'required process filter should filter data' '
 -      test_config_global filter.protocol.process "$TEST_DIRECTORY/t0021/rot13-filter.pl clean smudge" &&
 +      test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
        test_config_global filter.protocol.required true &&
        rm -rf repo &&
        mkdir repo &&
  
  test_expect_success PERL 'required process filter takes precedence' '
        test_config_global filter.protocol.clean false &&
 -      test_config_global filter.protocol.process "$TEST_DIRECTORY/t0021/rot13-filter.pl clean" &&
 +      test_config_global filter.protocol.process "rot13-filter.pl clean" &&
        test_config_global filter.protocol.required true &&
        rm -rf repo &&
        mkdir repo &&
  '
  
  test_expect_success PERL 'required process filter should be used only for "clean" operation only' '
 -      test_config_global filter.protocol.process "$TEST_DIRECTORY/t0021/rot13-filter.pl clean" &&
 +      test_config_global filter.protocol.process "rot13-filter.pl clean" &&
        rm -rf repo &&
        mkdir repo &&
        (
  '
  
  test_expect_success PERL 'required process filter should process multiple packets' '
 -      test_config_global filter.protocol.process "$TEST_DIRECTORY/t0021/rot13-filter.pl clean smudge" &&
 +      test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
        test_config_global filter.protocol.required true &&
  
        rm -rf repo &&
                for FILE in "$TEST_ROOT"/*.file
                do
                        cp "$FILE" . &&
 -                      "$TEST_ROOT/rot13.sh" <"$FILE" >"$FILE.rot13"
 +                      rot13.sh <"$FILE" >"$FILE.rot13"
                done &&
  
                echo "*.file filter=protocol" >.gitattributes &&
  '
  
  test_expect_success PERL 'required process filter with clean error should fail' '
 -      test_config_global filter.protocol.process "$TEST_DIRECTORY/t0021/rot13-filter.pl clean smudge" &&
 +      test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
        test_config_global filter.protocol.required true &&
        rm -rf repo &&
        mkdir repo &&
  '
  
  test_expect_success PERL 'process filter should restart after unexpected write failure' '
 -      test_config_global filter.protocol.process "$TEST_DIRECTORY/t0021/rot13-filter.pl clean smudge" &&
 +      test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
        rm -rf repo &&
        mkdir repo &&
        (
  
                # Smudge failed
                ! test_cmp smudge-write-fail.o smudge-write-fail.r &&
 -              "$TEST_ROOT/rot13.sh" <smudge-write-fail.o >expected &&
 +              rot13.sh <smudge-write-fail.o >expected &&
                git cat-file blob :smudge-write-fail.r >actual &&
                test_cmp expected actual
        )
  '
  
  test_expect_success PERL 'process filter should not be restarted if it signals an error' '
 -      test_config_global filter.protocol.process "$TEST_DIRECTORY/t0021/rot13-filter.pl clean smudge" &&
 +      test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
        rm -rf repo &&
        mkdir repo &&
        (
  '
  
  test_expect_success PERL 'process filter abort stops processing of all further files' '
 -      test_config_global filter.protocol.process "$TEST_DIRECTORY/t0021/rot13-filter.pl clean smudge" &&
 +      test_config_global filter.protocol.process "rot13-filter.pl clean smudge" &&
        rm -rf repo &&
        mkdir repo &&
        (