summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <jdelvare@suse.de>2012-12-18 18:14:43 +0100
committerJean Delvare <jdelvare@suse.de>2012-12-18 18:14:43 +0100
commit5c1fda67244d1d516e12e757c0c09e729c0b73aa (patch)
tree744add4f136d8aa6eb5a9a439b07bf6408fc0f92
parent4de44512ba606c687158a0e58e94429c03e94d41 (diff)
downloadquilt-5c1fda67244d1d516e12e757c0c09e729c0b73aa.tar.gz
Add a test case for remove-trailing-ws script
As a bug was recently found in this script, add a test case covering both unified and context patch formats, so that hopefully no other bug creeps in in the future.
-rw-r--r--test/remove-trailing-ws.test193
1 files changed, 193 insertions, 0 deletions
diff --git a/test/remove-trailing-ws.test b/test/remove-trailing-ws.test
new file mode 100644
index 0000000..cb93b52
--- /dev/null
+++ b/test/remove-trailing-ws.test
@@ -0,0 +1,193 @@
+# Unit test for the remove-trailing-ws script.
+
+# Prepare the working directory
+$ mkdir files.orig files
+
+$ cat > files.orig/add
+< Line 1
+< Line 2
+< Line 3
+<
+< Line 5
+< Line 6
+$ cat > files.orig/change
+< change
+< from
+< this
+$ cat > files.orig/complex
+< Line 1
+< Line 2
+<
+< Line 3
+< Line 4
+<
+< Line 5
+< Line 6
+<
+< Line 7
+< Line 8
+<
+< Line 9
+< Line 10
+$ cat > files.orig/delete
+< delete
+< an old
+< file
+$ cat > files.orig/remove
+< Line 1
+< Line 2
+<
+< Line 3
+< Line 4
+<
+< Line 5
+< Line 6
+$ cat > files.orig/remove-at-end
+< Line 1
+< Line 2
+<
+< Line 3
+< Line 4
+<
+< Line 5
+< Line 6
+<
+< Line 7
+< Line 8
+<
+< Line 9
+< Line 10
+
+$ cat > files/add
+< Line 1
+< Line 2
+<
+< Line 3
+< Line 4
+<
+< Line 5
+< Line 6
+$ cat > files/change
+< change
+< to
+< that
+$ cat > files/complex
+< Line 1
+< Line 2
+< Line 3
+< Line 4
+<
+< Line 5
+< Line 6
+<
+< Line 7
+< Line 8
+<
+< Line 9
+< Line A
+<
+< Line B
+< Line C
+<
+< Line D
+< Line E
+< Line F
+< Line 10
+$ cat > files/create
+< create
+< a new
+< file
+$ cat > files/remove
+< Line 1
+< Line 2
+< Line 3
+<
+< Line 5
+< Line 6
+$ cat > files/remove-at-end
+< Line 1
+< Line 2
+<
+< Line 3
+< Line 4
+<
+< Line 5
+< Line 6
+
+$ cp -r files files.backup
+
+# Generate the two patches
+$ diff -ruN files.orig files > unified.diff
+# For the context diff we need the files listed in a certain order to
+# cover some corner cases
+$ diff -c files.orig/add files/add > context.diff
+$ diff -C 10 files.orig/remove-at-end files/remove-at-end >> context.diff
+$ diff -cN files.orig/create files/create | sed -e '/^diff /d' >> context.diff
+$ diff -cN files.orig/delete files/delete >> context.diff
+$ diff -c files.orig/remove files/remove | sed -e '/^diff /d' >> context.diff
+$ diff -c files.orig/change files/change | sed -e '/^diff /d' >> context.diff
+$ diff -c files.orig/complex files/complex >> context.diff
+
+$ %{QUILT_DIR}/scripts/remove-trailing-ws < unified.diff > unified-wsok.diff
+> Removing trailing whitespace from line 5 of files/add
+> Removing trailing whitespace from lines 2,3 of files/change
+> Removing trailing whitespace from lines 12,16 of files/complex
+> Removing trailing whitespace from lines 1,2,3 of files/create
+$ wc -l files/add
+> 8 files/add
+$ wc -l files/change
+> 3 files/change
+$ wc -l files/complex
+> 21 files/complex
+$ wc -l files/create
+> 3 files/create
+$ wc -l files/remove
+> 6 files/remove
+$ wc -l files/remove-at-end
+> 8 files/remove-at-end
+$ wc -l unified.diff
+> 85 unified.diff
+$ wc -l unified-wsok.diff
+> 85 unified-wsok.diff
+$ diff -u unified.diff unified-wsok.diff | grep '^++[^+]'
+> ++Line 4
+> ++to
+> ++that
+> ++Line 9
+> ++Line C
+> ++create
+> ++a new
+> ++file
+
+$ rm -rf files
+$ mv files.backup files
+$ %{QUILT_DIR}/scripts/remove-trailing-ws < context.diff > context-wsok.diff
+> Removing trailing whitespace from line 5 of files/add
+> Removing trailing whitespace from lines 2,3 of files/change
+> Removing trailing whitespace from lines 12,16 of files/complex
+> Removing trailing whitespace from lines 1,2,3 of files/create
+$ wc -l files/add
+> 8 files/add
+$ wc -l files/change
+> 3 files/change
+$ wc -l files/complex
+> 21 files/complex
+$ wc -l files/create
+> 3 files/create
+$ wc -l files/remove
+> 6 files/remove
+$ wc -l files/remove-at-end
+> 8 files/remove-at-end
+$ wc -l context.diff
+> 104 context.diff
+$ wc -l context-wsok.diff
+> 104 context-wsok.diff
+$ diff -u context.diff context-wsok.diff | grep '^+[+!] '
+> ++ Line 4
+> ++ create
+> ++ a new
+> ++ file
+> +! to
+> +! that
+> +! Line 9
+> +! Line C