Merge branch 'jk/wrap-perl-used-in-tests'
authorJunio C Hamano <gitster@pobox.com>
Mon, 4 Nov 2013 22:58:01 +0000 (14:58 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 4 Nov 2013 22:58:02 +0000 (14:58 -0800)
* jk/wrap-perl-used-in-tests:
  t: use perl instead of "$PERL_PATH" where applicable
  t: provide a perl() function which uses $PERL_PATH

1  2 
t/README
t/t5300-pack-object.sh
t/t5551-http-fetch.sh
t/test-lib-functions.sh

diff --cc t/README
Simple merge
Simple merge
Simple merge
@@@ -711,68 -711,6 +711,72 @@@ test_ln_s_add () 
        fi
  }
  
+ perl () {
+       command "$PERL_PATH" "$@"
+ }
++
 +# The following mingw_* functions obey POSIX shell syntax, but are actually
 +# bash scripts, and are meant to be used only with bash on Windows.
 +
 +# A test_cmp function that treats LF and CRLF equal and avoids to fork
 +# diff when possible.
 +mingw_test_cmp () {
 +      # Read text into shell variables and compare them. If the results
 +      # are different, use regular diff to report the difference.
 +      local test_cmp_a= test_cmp_b=
 +
 +      # When text came from stdin (one argument is '-') we must feed it
 +      # to diff.
 +      local stdin_for_diff=
 +
 +      # Since it is difficult to detect the difference between an
 +      # empty input file and a failure to read the files, we go straight
 +      # to diff if one of the inputs is empty.
 +      if test -s "$1" && test -s "$2"
 +      then
 +              # regular case: both files non-empty
 +              mingw_read_file_strip_cr_ test_cmp_a <"$1"
 +              mingw_read_file_strip_cr_ test_cmp_b <"$2"
 +      elif test -s "$1" && test "$2" = -
 +      then
 +              # read 2nd file from stdin
 +              mingw_read_file_strip_cr_ test_cmp_a <"$1"
 +              mingw_read_file_strip_cr_ test_cmp_b
 +              stdin_for_diff='<<<"$test_cmp_b"'
 +      elif test "$1" = - && test -s "$2"
 +      then
 +              # read 1st file from stdin
 +              mingw_read_file_strip_cr_ test_cmp_a
 +              mingw_read_file_strip_cr_ test_cmp_b <"$2"
 +              stdin_for_diff='<<<"$test_cmp_a"'
 +      fi
 +      test -n "$test_cmp_a" &&
 +      test -n "$test_cmp_b" &&
 +      test "$test_cmp_a" = "$test_cmp_b" ||
 +      eval "diff -u \"\$@\" $stdin_for_diff"
 +}
 +
 +# $1 is the name of the shell variable to fill in
 +mingw_read_file_strip_cr_ () {
 +      # Read line-wise using LF as the line separator
 +      # and use IFS to strip CR.
 +      local line
 +      while :
 +      do
 +              if IFS=$'\r' read -r -d $'\n' line
 +              then
 +                      # good
 +                      line=$line$'\n'
 +              else
 +                      # we get here at EOF, but also if the last line
 +                      # was not terminated by LF; in the latter case,
 +                      # some text was read
 +                      if test -z "$line"
 +                      then
 +                              # EOF, really
 +                              break
 +                      fi
 +              fi
 +              eval "$1=\$$1\$line"
 +      done
 +}