Merge branch 'js/tests-windows-port-fix'

* js/tests-windows-port-fix:
  tests: undo special treatment of CRLF for Windows
  Windows: a test_cmp that is agnostic to random LF <> CRLF conversions
  t5300-pack-object: do not compare binary data using test_cmp
This commit is contained in:
Junio C Hamano 2013-11-01 07:38:54 -07:00
Родитель cbe59df99a f94ea11cf2
Коммит fbaa22678b
6 изменённых файлов: 72 добавлений и 14 удалений

Просмотреть файл

@ -18,10 +18,6 @@ check() {
cat stderr &&
false
fi &&
if test_have_prereq MINGW
then
dos2unix -q stderr
fi &&
test_cmp expect-stdout stdout &&
test_cmp expect-stderr stderr
}

Просмотреть файл

@ -151,7 +151,7 @@ test_expect_success \
git cat-file $t $object || return 1
done <obj-list
} >current &&
test_cmp expect current'
cmp expect current'
test_expect_success \
'use packed deltified (REF_DELTA) objects' \
@ -166,7 +166,7 @@ test_expect_success \
git cat-file $t $object || return 1
done <obj-list
} >current &&
test_cmp expect current'
cmp expect current'
test_expect_success \
'use packed deltified (OFS_DELTA) objects' \
@ -181,7 +181,7 @@ test_expect_success \
git cat-file $t $object || return 1
done <obj-list
} >current &&
test_cmp expect current'
cmp expect current'
unset GIT_OBJECT_DIRECTORY
@ -195,9 +195,9 @@ test_expect_success 'survive missing objects/pack directory' '
rm -fr $GOP &&
git index-pack --stdin --keep=test <../test-3-${packname_3}.pack &&
test -f $GOP/pack-${packname_3}.pack &&
test_cmp $GOP/pack-${packname_3}.pack ../test-3-${packname_3}.pack &&
cmp $GOP/pack-${packname_3}.pack ../test-3-${packname_3}.pack &&
test -f $GOP/pack-${packname_3}.idx &&
test_cmp $GOP/pack-${packname_3}.idx ../test-3-${packname_3}.idx &&
cmp $GOP/pack-${packname_3}.idx ../test-3-${packname_3}.idx &&
test -f $GOP/pack-${packname_3}.keep
)
'

Просмотреть файл

@ -254,10 +254,6 @@ test_expect_success 'ensure "status --cached --recursive" preserves the --cached
) &&
git submodule status --cached --recursive -- nested1 > ../actual
) &&
if test_have_prereq MINGW
then
dos2unix actual
fi &&
test_cmp expect actual
'

Просмотреть файл

@ -23,7 +23,6 @@ test_expect_success $PREREQ \
echo do
echo " echo \"!\$a!\""
echo "done >commandline\$output"
test_have_prereq MINGW && echo "dos2unix commandline\$output"
echo "cat > msgtxt\$output"
) >fake.sendmail &&
chmod +x ./fake.sendmail &&

Просмотреть файл

@ -710,3 +710,69 @@ test_ln_s_add () {
git update-index --add --cacheinfo 120000 $ln_s_obj "$2"
fi
}
# 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
}

Просмотреть файл

@ -752,6 +752,7 @@ case $(uname -s) in
test_set_prereq NOT_CYGWIN
test_set_prereq SED_STRIPS_CR
test_set_prereq GREP_STRIPS_CR
GIT_TEST_CMP=mingw_test_cmp
;;
*CYGWIN*)
test_set_prereq POSIXPERM