Merge pull request #1566 from sschuberth/windows-sha256sum

Use "sha256sum" on Windows
This commit is contained in:
Taylor Blau 2016-10-10 11:37:40 -06:00 committed by GitHub
commit bcc584c530
4 changed files with 30 additions and 17 deletions

@ -22,7 +22,7 @@ begin_test "fsck default"
aOid=$(git log --patch a.dat | grep "^+oid" | cut -d ":" -f 2)
aOid12=$(echo $aOid | cut -b 1-2)
aOid34=$(echo $aOid | cut -b 3-4)
if [ "$aOid" != "$(shasum -a 256 .git/lfs/objects/$aOid12/$aOid34/$aOid | cut -d " " -f 1)" ]; then
if [ "$aOid" != "$(calc_oid_file .git/lfs/objects/$aOid12/$aOid34/$aOid)" ]; then
echo "oid for a.dat does not match"
exit 1
fi
@ -30,7 +30,7 @@ begin_test "fsck default"
bOid=$(git log --patch b.dat | grep "^+oid" | cut -d ":" -f 2)
bOid12=$(echo $bOid | cut -b 1-2)
bOid34=$(echo $bOid | cut -b 3-4)
if [ "$bOid" != "$(shasum -a 256 .git/lfs/objects/$bOid12/$bOid34/$bOid | cut -d " " -f 1)" ]; then
if [ "$bOid" != "$(calc_oid_file .git/lfs/objects/$bOid12/$bOid34/$bOid)" ]; then
echo "oid for b.dat does not match"
exit 1
fi
@ -48,7 +48,7 @@ begin_test "fsck default"
exit 1
fi
if [ "$bOid" != "$(shasum -a 256 .git/lfs/objects/$bOid12/$bOid34/$bOid | cut -d " " -f 1)" ]; then
if [ "$bOid" != "$(calc_oid_file .git/lfs/objects/$bOid12/$bOid34/$bOid)" ]; then
echo "oid for b.dat does not match"
exit 1
fi
@ -75,7 +75,7 @@ begin_test "fsck dry run"
aOid=$(git log --patch a.dat | grep "^+oid" | cut -d ":" -f 2)
aOid12=$(echo $aOid | cut -b 1-2)
aOid34=$(echo $aOid | cut -b 3-4)
if [ "$aOid" != "$(shasum -a 256 .git/lfs/objects/$aOid12/$aOid34/$aOid | cut -d " " -f 1)" ]; then
if [ "$aOid" != "$(calc_oid_file .git/lfs/objects/$aOid12/$aOid34/$aOid)" ]; then
echo "oid for a.dat does not match"
exit 1
fi
@ -83,7 +83,7 @@ begin_test "fsck dry run"
bOid=$(git log --patch b.dat | grep "^+oid" | cut -d ":" -f 2)
bOid12=$(echo $bOid | cut -b 1-2)
bOid34=$(echo $bOid | cut -b 3-4)
if [ "$bOid" != "$(shasum -a 256 .git/lfs/objects/$bOid12/$bOid34/$bOid | cut -d " " -f 1)" ]; then
if [ "$bOid" != "$(calc_oid_file .git/lfs/objects/$bOid12/$bOid34/$bOid)" ]; then
echo "oid for b.dat does not match"
exit 1
fi
@ -92,12 +92,12 @@ begin_test "fsck dry run"
[ "Object a.dat ($aOid) is corrupt" = "$(git lfs fsck --dry-run)" ]
if [ "$aOid" = "$(shasum -a 256 .git/lfs/objects/$aOid12/$aOid34/$aOid | cut -d " " -f 1)" ]; then
if [ "$aOid" = "$(calc_oid_file .git/lfs/objects/$aOid12/$aOid34/$aOid)" ]; then
echo "oid for a.dat still matches match"
exit 1
fi
if [ "$bOid" != "$(shasum -a 256 .git/lfs/objects/$bOid12/$bOid34/$bOid | cut -d " " -f 1)" ]; then
if [ "$bOid" != "$(calc_oid_file .git/lfs/objects/$bOid12/$bOid34/$bOid)" ]; then
echo "oid for b.dat does not match"
exit 1
fi

@ -6,9 +6,16 @@ set -e
UNAME=$(uname -s)
IS_WINDOWS=0
IS_MAC=0
if [[ $UNAME == MINGW* || $UNAME == CYGWIN* ]]
SHASUM="shasum -a 256"
if [[ $UNAME == MINGW* || $UNAME == MSYS* || $UNAME == CYGWIN* ]]
then
IS_WINDOWS=1
# Windows might be MSYS2 which does not have the shasum Perl wrapper
# script by default, so use sha256sum directly. MacOS on the other hand
# does not have sha256sum, so still use shasum as the default.
SHASUM="sha256sum"
elif [[ $UNAME == *Darwin* ]]
then
IS_MAC=1
@ -16,9 +23,9 @@ fi
resolve_symlink() {
local arg=$1
if [ $IS_WINDOWS == "1" ]; then
if [ $IS_WINDOWS -eq 1 ]; then
printf '%s' "$arg"
elif [ $IS_MAC == "1" ]; then
elif [ $IS_MAC -eq 1 ]; then
# no readlink -f on Mac
local oldwd=$(pwd)
local target=$arg
@ -111,7 +118,7 @@ mkdir -p "$TMPDIR"
mkdir -p "$TRASHDIR"
if [ $IS_WINDOWS == "1" ]; then
if [ $IS_WINDOWS -eq 1 ]; then
# prevent Windows OpenSSH from opening GUI prompts
SSH_ASKPASS=""
fi

@ -289,7 +289,7 @@ setup() {
git version
if [ -z "$SKIPCOMPILE" ]; then
[ $IS_WINDOWS == "1" ] && EXT=".exe"
[ $IS_WINDOWS -eq 1 ] && EXT=".exe"
for go in test/cmd/*.go; do
GO15VENDOREXPERIMENT=1 go build -o "$BINPATH/$(basename $go .go)$EXT" "$go"
done
@ -427,8 +427,14 @@ comparison_to_operator() {
fi
}
# Calculate the object ID from the string passed as the argument
calc_oid() {
printf "$1" | shasum -a 256 | cut -f 1 -d " "
printf "$1" | $SHASUM | cut -f 1 -d " "
}
# Calculate the object ID from the file passed as the argument
calc_oid_file() {
$SHASUM "$1" | cut -f 1 -d " "
}
# Get a date string with an offset
@ -473,7 +479,7 @@ get_date() {
# Needed to match generic built paths in test scripts to native paths generated from Go
native_path() {
local arg=$1
if [ $IS_WINDOWS == "1" ]; then
if [ $IS_WINDOWS -eq 1 ]; then
# Use params form to avoid interpreting any '\' characters
printf '%s' "$(cygpath -w $arg)"
else
@ -484,7 +490,7 @@ native_path() {
# escape any instance of '\' with '\\' on Windows
escape_path() {
local unescaped="$1"
if [ $IS_WINDOWS == "1" ]; then
if [ $IS_WINDOWS -eq 1 ]; then
printf '%s' "${unescaped//\\/\\\\}"
else
printf '%s' "$unescaped"

@ -80,7 +80,7 @@ begin_test () {
# enabling GIT_TRACE can cause Windows git to stall, esp with fd 5
# other fd numbers like 8/9 don't stall but still don't work, so disable
if [ $IS_WINDOWS == "0" ]; then
if [ $IS_WINDOWS -eq 0 ]; then
exec 5>"$trace"
export GIT_TRACE=5
fi
@ -114,7 +114,7 @@ end_test () {
echo "-- stderr --"
grep -v -e '^\+ end_test' -e '^+ set +x' <"$TRASHDIR/err" |
sed 's/^/ /'
if [ "$IS_WINDOWS" == "0" ]; then
if [ $IS_WINDOWS -eq 0 ]; then
echo "-- git trace --"
sed 's/^/ /' <"$TRASHDIR/trace"
fi