зеркало из https://github.com/microsoft/git.git
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:
Коммит
fbaa22678b
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче