summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruen@suse.de>2010-05-03 00:13:01 +0200
committerAndreas Gruenbacher <agruen@suse.de>2010-05-03 00:15:32 +0200
commit0403787317c65d1d4f4630a10d7b0544fa643529 (patch)
treedee49177923101bca81d893c3e105fe86d84fe4e
parent0c837fd075fabf85ee6e6d6a74079f12bb171dd3 (diff)
downloadpatch-0403787317c65d1d4f4630a10d7b0544fa643529.tar.gz
Add two test cases which are currently broken
* Removing an empty file does not work as expected. * Deleted files are not being remembered correctly. * Symlinks are not being remembered, either.
-rw-r--r--src/util.c1
-rw-r--r--tests/Makefile.am6
-rw-r--r--tests/empty-files86
-rw-r--r--tests/remember-backup-files-241
4 files changed, 133 insertions, 1 deletions
diff --git a/src/util.c b/src/util.c
index 7fd8302..d83b3ff 100644
--- a/src/util.c
+++ b/src/util.c
@@ -362,6 +362,7 @@ move_file (char const *from, int *from_needs_removal,
pfatal ("Can't create %s %s", "symbolic link", to);
}
free (buffer);
+ /* FIXME: insert_file (&tost); */
}
else
{
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 39af751..3b25bbb 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -24,6 +24,7 @@ TESTS = \
create-delete \
crlf-handling \
dash-o-append \
+ empty-files \
file-modes \
filename-choice \
git-binary-diff \
@@ -40,12 +41,15 @@ TESTS = \
read-only-files \
reject-format \
remember-backup-files \
+ remember-backup-files-2 \
remember-reject-files \
symlinks \
unmodified-files
XFAIL_TESTS = \
- dash-o-append
+ dash-o-append \
+ empty-files \
+ remember-backup-files-2
EXTRA_DIST = \
$(TESTS) \
diff --git a/tests/empty-files b/tests/empty-files
new file mode 100644
index 0000000..6ac01be
--- /dev/null
+++ b/tests/empty-files
@@ -0,0 +1,86 @@
+# Copyright (C) 2010 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.
+
+# Symlink related tests
+
+. $srcdir/test-lib.sh
+
+require_cat
+use_local_patch
+use_tmpdir
+umask 022
+
+# ==============================================================
+# Create an empty file
+
+cat > create-empty.diff <<EOF
+diff --git a/f b/f
+new file mode 100644
+index 0000000..e69de29
+EOF
+
+check 'patch < create-empty.diff || echo "Status: $?"' <<EOF
+patching file f
+EOF
+
+ncheck 'test -e f -a ! -s f'
+
+# --------------------------------------------------------------
+# Empty out a file
+
+echo f > f
+
+cat > empty-out.diff <<EOF
+diff --git a/f b/f
+index 6a69f92..e69de29 100644
+--- a/f
++++ b/f
+@@ -1 +0,0 @@
+-f
+EOF
+
+check 'patch < empty-out.diff || echo "Status: $?"' <<EOF
+patching file f
+EOF
+
+ncheck 'test -e f -a ! -s f'
+
+# --------------------------------------------------------------
+# Empty out a file and delete it with -E
+
+echo f > f
+
+cat > empty-out.diff <<EOF
+diff --git a/f b/f
+index 6a69f92..e69de29 100644
+--- a/f
++++ b/f
+@@ -1 +0,0 @@
+-f
+EOF
+
+check 'patch -E < empty-out.diff || echo "Status: $?"' <<EOF
+patching file f
+EOF
+
+ncheck 'test ! -e f'
+
+# --------------------------------------------------------------
+# Delete an empty file
+
+: > f
+
+cat > delete-empty.diff <<EOF
+diff --git a/f b/f
+deleted file mode 100644
+index e69de29..0000000
+EOF
+
+check 'patch < delete-empty.diff || echo "Status: $?"' <<EOF
+patching file f
+EOF
+
+ncheck 'test ! -e f'
diff --git a/tests/remember-backup-files-2 b/tests/remember-backup-files-2
new file mode 100644
index 0000000..537d970
--- /dev/null
+++ b/tests/remember-backup-files-2
@@ -0,0 +1,41 @@
+# Copyright (C) 2009 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.
+
+# Patch must not overwrite backup files it has created itself.
+
+. $srcdir/test-lib.sh
+
+require_cat
+use_local_patch
+use_tmpdir
+
+# ==============================================================
+
+echo one > f
+
+cat > f.diff <<EOF
+--- f
++++ /dev/null
+@@ -1 +0,0 @@
+-one
+--- /dev/null
++++ f
+@@ -0,0 +1 @@
++two
+EOF
+
+check 'patch --backup -p0 < f.diff' <<EOF
+patching file f
+patching file f
+EOF
+
+check 'cat f.orig' <<EOF
+one
+EOF
+
+check 'cat f' <<EOF
+two
+EOF