diff options
author | Thomas Orgis <thomas@orgis.org> | 2018-01-22 16:46:38 +0100 |
---|---|---|
committer | Andreas Gruenbacher <agruen@gnu.org> | 2018-01-23 10:56:27 +0100 |
commit | 592e1f9163d6261359aa87c2c99d411c0dacf6f3 (patch) | |
tree | 26ca154b053abee6b6b0a07a7629bc2a91f04e28 /tests | |
parent | 15cc7d44d4b942ba8d414159db05fb398c267163 (diff) | |
download | patch-592e1f9163d6261359aa87c2c99d411c0dacf6f3.tar.gz |
Create git diff files with indicated mode
* src/patch.c (main): Create git diff files with indicated mode.
* tests/file-create-modes: New test case.
* tests/Makefile.am (TESTS): Add test case.
This fixes building current Linux 4.14.x from the signed tarball and
patch file, where the patch creates a script with the executable bit
set.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/file-create-modes | 51 |
2 files changed, 52 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 9ae6916..6b6df63 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -35,6 +35,7 @@ TESTS = \ empty-files \ false-match \ fifo \ + file-create-modes \ file-modes \ filename-choice \ git-binary-diff \ diff --git a/tests/file-create-modes b/tests/file-create-modes new file mode 100644 index 0000000..d1dc7b7 --- /dev/null +++ b/tests/file-create-modes @@ -0,0 +1,51 @@ +# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# +# Copying and distribution of this file, with or without modification, +# in any medium, are permitted without royalty provided the copyright +# notice and this notice are preserved. + +# Test if git diffs can create files with proper modes + +. $srcdir/test-lib.sh + +require cat +require sed +use_local_patch +use_tmpdir + +# ============================================================== + +cat > f.diff <<EOF +diff --git a/f b/f +new file mode 100710 +index 0000000..3e75765 +--- /dev/null ++++ b/f +@@ -0,0 +1 @@ ++new + +diff --git a/g b/g +new file mode 100654 +index 0000000..3e75765 +--- /dev/null ++++ b/g +@@ -0,0 +1 @@ ++new +EOF + +check 'patch -p1 < f.diff' <<EOF +patching file f +patching file g +EOF + +check 'ls -l f g | sed "s,\(..........\).*,\1,"' <<EOF +-rwx--x--- +-rw-r-xr-- +EOF + +check 'patch -p1 -R < f.diff' <<EOF +patching file f +patching file g +EOF + +ncheck '! test -e f -o -e g || echo fail' |