summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <jdelvare@suse.de>2014-01-17 15:37:21 +0100
committerJean Delvare <jdelvare@suse.de>2014-01-17 15:37:21 +0100
commitacb80b9a0b6eee5b53891b901130921bd595c016 (patch)
tree0e084c022d3a0b00837f2a6b9294bea1dc09af12
parent63d447bbd17ccfa152e96132d187a3c8fcb9e1af (diff)
downloadquilt-acb80b9a0b6eee5b53891b901130921bd595c016.tar.gz
Add a test case for patches leaving empty files
For now this only covers the push and fold commands on imported patches, which we just fixed. Later we can add tests for the refresh command, which is still not OK.
-rw-r--r--test/empty-files.test85
1 files changed, 85 insertions, 0 deletions
diff --git a/test/empty-files.test b/test/empty-files.test
new file mode 100644
index 0000000..c03ad3a
--- /dev/null
+++ b/test/empty-files.test
@@ -0,0 +1,85 @@
+# Check that quilt properly deals with patches which delete vs. empty files
+
+# Prepare the working tree
+ $ mkdir patches
+ $ echo "will be deleted" > deleted1
+ $ echo "will be emptied" > emptied1
+ $ echo "will be deleted" > deleted2
+ $ echo "will be emptied" > emptied2
+
+# Prepate the patches and series
+ $ cat > patches/series
+ < using-filenames.patch
+ < using-timestamps.patch
+
+ $ cat > patches/using-filenames.patch
+ < diff -ruN a/deleted1 b/deleted1
+ < --- a/deleted1
+ < +++ /dev/null
+ < @@ -1 +0,0 @@
+ < -will be deleted
+ < diff -ruN a/emptied1 b/emptied1
+ < --- a/emptied1
+ < +++ b/emptied1
+ < @@ -1 +0,0 @@
+ < -will be emptied
+
+ $ cat > patches/using-timestamps.patch
+ < diff -ruN a/deleted2 b/deleted2
+ < --- a/deleted2 2014-01-15 11:19:43.000000000 +0100
+ < +++ b/deleted2 1970-01-01 01:00:00.000000000 +0100
+ < @@ -1 +0,0 @@
+ < -will be deleted
+ < diff -ruN a/emptied2 b/emptied2
+ < --- a/emptied2 2014-01-15 11:19:59.000000000 +0100
+ < +++ b/emptied2 2014-01-15 11:20:11.000000000 +0100
+ < @@ -1 +0,0 @@
+ < -will be emptied
+
+# Test quilt push
+ $ quilt push
+ > Applying patch patches/using-filenames.patch
+ > patching file deleted1
+ > patching file emptied1
+ >
+ > Now at patch patches/using-filenames.patch
+ $ if test -e deleted1; then if test -s deleted1; then echo "File deleted1 is not empty" ; else echo "File deleted1 is empty" ; fi ; else echo "File deleted1 does not exist" ; fi
+ > File deleted1 does not exist
+ $ if test -e emptied1; then if test -s emptied1; then echo "File emptied1 is not empty" ; else echo "File emptied1 is empty" ; fi ; else echo "File emptied1 does not exist" ; fi
+ > File emptied1 is empty
+
+ $ quilt push
+ > Applying patch patches/using-timestamps.patch
+ > patching file deleted2
+ > patching file emptied2
+ >
+ > Now at patch patches/using-timestamps.patch
+ $ if test -e deleted2; then if test -s deleted2; then echo "File deleted2 is not empty" ; else echo "File deleted2 is empty" ; fi ; else echo "File deleted2 does not exist" ; fi
+ > File deleted2 does not exist
+ $ if test -e emptied2; then if test -s emptied2; then echo "File emptied2 is not empty" ; else echo "File emptied2 is empty" ; fi ; else echo "File emptied2 does not exist" ; fi
+ > File emptied2 is empty
+
+# Test quilt fold
+ $ quilt pop -aq
+ > Removing patch patches/using-timestamps.patch
+ > Removing patch patches/using-filenames.patch
+ > No patches applied
+
+ $ quilt new fold.patch
+ > Patch patches/fold.patch is now on top
+
+ $ quilt fold < patches/using-filenames.patch
+ > patching file deleted1
+ > patching file emptied1
+ $ if test -e deleted1; then if test -s deleted1; then echo "File deleted1 is not empty" ; else echo "File deleted1 is empty" ; fi ; else echo "File deleted1 does not exist" ; fi
+ > File deleted1 does not exist
+ $ if test -e emptied1; then if test -s emptied1; then echo "File emptied1 is not empty" ; else echo "File emptied1 is empty" ; fi ; else echo "File emptied1 does not exist" ; fi
+ > File emptied1 is empty
+
+ $ quilt fold < patches/using-timestamps.patch
+ > patching file deleted2
+ > patching file emptied2
+ $ if test -e deleted2; then if test -s deleted2; then echo "File deleted2 is not empty" ; else echo "File deleted2 is empty" ; fi ; else echo "File deleted2 does not exist" ; fi
+ > File deleted2 does not exist
+ $ if test -e emptied2; then if test -s emptied2; then echo "File emptied2 is not empty" ; else echo "File emptied2 is empty" ; fi ; else echo "File emptied2 does not exist" ; fi
+ > File emptied2 is empty