summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruen@suse.de>2010-05-04 04:07:45 +0200
committerAndreas Gruenbacher <agruen@suse.de>2010-05-04 04:07:45 +0200
commitdbb26b7e991bfd81ebf0bf6d3315ba25e87814c8 (patch)
tree12f7709209bcda6041cdab1078b6155bd55282f7
parent1b2ed3de079632dcf8c0a7b129e81011ae496ac0 (diff)
downloadpatch-dbb26b7e991bfd81ebf0bf6d3315ba25e87814c8.tar.gz
Some test suite fixes and improvements
* tests/test-lib.sh: Flag tests with missing pre-requirements as SKIPped instead of PASSed. Do not use GNU diff extensions, but still require a diff that understands "-u". * tests: Do not unnecessarily require GNU diff in a lot of tests. Make the sed utility optional.
-rw-r--r--ChangeLog6
-rw-r--r--tests/asymmetric-hunks1
-rw-r--r--tests/copy-rename1
-rw-r--r--tests/corrupt-reject-files1
-rw-r--r--tests/create-delete2
-rw-r--r--tests/crlf-handling3
-rw-r--r--tests/dash-o-append1
-rw-r--r--tests/file-modes2
-rw-r--r--tests/git-binary-diff1
-rw-r--r--tests/global-reject-files1
-rw-r--r--tests/line-numbers2
-rw-r--r--tests/merge2
-rw-r--r--tests/munged-context-format1
-rw-r--r--tests/need-filename1
-rw-r--r--tests/no-newline-triggers-assert1
-rw-r--r--tests/preserve-c-function-names2
-rw-r--r--tests/preserve-mode-and-timestamp2
-rw-r--r--tests/reject-format3
-rw-r--r--tests/remember-backup-files1
-rw-r--r--tests/remember-reject-files1
-rw-r--r--tests/test-lib.sh34
-rw-r--r--tests/unmodified-files1
22 files changed, 45 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 37c84a8..d25482b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2009-05-04 Andreas Gruenbacher <agruen@suse.de>
+ * tests/test-lib.sh: Flag tests with missing pre-requirements as
+ SKIPped instead of PASSed. Do not use GNU diff extensions, but
+ still require a diff that understands "-u".
+ * tests: Do not unnecessarily require GNU diff in a lot of tests.
+ Make the sed utility optional.
+
* src/pch.c (intuit_diff_type): Remove left-over debugging code.
* src/pch.c (maybe_reverse): Allow to create and delete empty files.
diff --git a/tests/asymmetric-hunks b/tests/asymmetric-hunks
index da85024..0183fc4 100644
--- a/tests/asymmetric-hunks
+++ b/tests/asymmetric-hunks
@@ -7,7 +7,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir
diff --git a/tests/copy-rename b/tests/copy-rename
index a875ae6..d8d376a 100644
--- a/tests/copy-rename
+++ b/tests/copy-rename
@@ -9,7 +9,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir
diff --git a/tests/corrupt-reject-files b/tests/corrupt-reject-files
index 280b19f..f2be39f 100644
--- a/tests/corrupt-reject-files
+++ b/tests/corrupt-reject-files
@@ -7,7 +7,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir
diff --git a/tests/create-delete b/tests/create-delete
index 5b3d9c8..d81d76a 100644
--- a/tests/create-delete
+++ b/tests/create-delete
@@ -7,7 +7,7 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
+require_sed
use_local_patch
use_tmpdir
diff --git a/tests/crlf-handling b/tests/crlf-handling
index 6cd9783..1f73546 100644
--- a/tests/crlf-handling
+++ b/tests/crlf-handling
@@ -8,7 +8,8 @@
. $srcdir/test-lib.sh
-require_diff
+require_gnu_diff
+require_sed
use_local_patch
use_tmpdir
diff --git a/tests/dash-o-append b/tests/dash-o-append
index 9b71cb5..9d7d30a 100644
--- a/tests/dash-o-append
+++ b/tests/dash-o-append
@@ -7,7 +7,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir
diff --git a/tests/file-modes b/tests/file-modes
index 9da184a..4bc9f2c 100644
--- a/tests/file-modes
+++ b/tests/file-modes
@@ -9,7 +9,7 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
+require_sed
use_local_patch
use_tmpdir
diff --git a/tests/git-binary-diff b/tests/git-binary-diff
index 13a06b0..b47fcd9 100644
--- a/tests/git-binary-diff
+++ b/tests/git-binary-diff
@@ -7,7 +7,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir
diff --git a/tests/global-reject-files b/tests/global-reject-files
index 3d38d01..252a0c4 100644
--- a/tests/global-reject-files
+++ b/tests/global-reject-files
@@ -9,7 +9,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir
diff --git a/tests/line-numbers b/tests/line-numbers
index f6d59ae..7c28953 100644
--- a/tests/line-numbers
+++ b/tests/line-numbers
@@ -7,7 +7,7 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
+require_sed
use_local_patch
use_tmpdir
diff --git a/tests/merge b/tests/merge
index af1d644..5d95186 100644
--- a/tests/merge
+++ b/tests/merge
@@ -9,7 +9,7 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
+require_sed
use_local_patch
use_tmpdir
diff --git a/tests/munged-context-format b/tests/munged-context-format
index 209ff80..af1051b 100644
--- a/tests/munged-context-format
+++ b/tests/munged-context-format
@@ -9,6 +9,7 @@
. $srcdir/test-lib.sh
require_cat
+require_sed
use_local_patch
use_tmpdir
diff --git a/tests/need-filename b/tests/need-filename
index 6627860..4f51a80 100644
--- a/tests/need-filename
+++ b/tests/need-filename
@@ -9,6 +9,7 @@
. $srcdir/test-lib.sh
require_cat
+require_sed
use_local_patch
use_tmpdir
diff --git a/tests/no-newline-triggers-assert b/tests/no-newline-triggers-assert
index 9bd1499..7ae523c 100644
--- a/tests/no-newline-triggers-assert
+++ b/tests/no-newline-triggers-assert
@@ -9,7 +9,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir
diff --git a/tests/preserve-c-function-names b/tests/preserve-c-function-names
index 25b3fc5..4345462 100644
--- a/tests/preserve-c-function-names
+++ b/tests/preserve-c-function-names
@@ -9,7 +9,7 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
+require_gnu_diff
use_local_patch
use_tmpdir
diff --git a/tests/preserve-mode-and-timestamp b/tests/preserve-mode-and-timestamp
index 43988bb..13c2f6c 100644
--- a/tests/preserve-mode-and-timestamp
+++ b/tests/preserve-mode-and-timestamp
@@ -7,7 +7,7 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
+require_sed
use_local_patch
use_tmpdir
diff --git a/tests/reject-format b/tests/reject-format
index ee93286..628873a 100644
--- a/tests/reject-format
+++ b/tests/reject-format
@@ -9,7 +9,8 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
+require_sed
+require_gnu_diff
use_local_patch
use_tmpdir
diff --git a/tests/remember-backup-files b/tests/remember-backup-files
index b475d2f..a12b1d6 100644
--- a/tests/remember-backup-files
+++ b/tests/remember-backup-files
@@ -9,7 +9,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir
diff --git a/tests/remember-reject-files b/tests/remember-reject-files
index a732241..2e9b102 100644
--- a/tests/remember-reject-files
+++ b/tests/remember-reject-files
@@ -7,7 +7,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir
diff --git a/tests/test-lib.sh b/tests/test-lib.sh
index 10e6bdc..1ba10b2 100644
--- a/tests/test-lib.sh
+++ b/tests/test-lib.sh
@@ -5,23 +5,32 @@
# in any medium, are permitted without royalty provided the copyright
# notice and this notice are preserved.
+# FIXME: Requires a version of diff that understands "-u".
+
require_cat() {
if ! type cat > /dev/null 2> /dev/null; then
echo "This test requires the cat utility" >&2
- exit 2
+ exit 77
fi
}
-require_diff() {
+require_gnu_diff() {
case "`diff --version 2> /dev/null`" in
*GNU*)
;;
*)
echo "This test requires GNU diff" >&2
- exit 2
+ exit 77
esac
}
+require_sed() {
+ if ! type sed > /dev/null 2> /dev/null; then
+ echo "This test requires the sed utility" >&2
+ exit 77
+ fi
+}
+
have_ed() {
type ed >/dev/null 2>/dev/null
}
@@ -30,7 +39,7 @@ use_tmpdir() {
tmpdir=`mktemp -d ${TMPDIR:-/tmp}/patch.XXXXXXXXXX`
if test -z "$tmpdir" ; then
echo "This test requires the mktemp utility" >&2
- exit 2
+ exit 77
fi
cd "$tmpdir"
}
@@ -53,6 +62,17 @@ clean_env() {
VERSION_CONTROL PATCH_VERSION_CONTROL GDB
}
+if type sed > /dev/null 2> /dev/null; then
+ eval '_beautify() {
+ sed -e "1s:.*:--- expected:" \
+ -e "2s:.*:+++ got:"
+ }'
+else
+ eval '_beautify() {
+ cat
+ }'
+fi
+
_check() {
_start_test "$@"
expected=`cat`
@@ -65,7 +85,7 @@ _check() {
if test "$expected" != "$got" ; then
echo "$expected" > expected~
echo "$got" > got~
- diff -u -L expected -L got expected~ got~
+ diff -u expected~ got~ | _beautify
rm -f expected~ got~
fi
checks_failed="$checks_failed + 1"
@@ -81,12 +101,12 @@ ncheck() {
}
cleanup() {
+ status=$?
checks_succeeded=`expr $checks_succeeded`
checks_failed=`expr $checks_failed`
checks_total=`expr $checks_succeeded + $checks_failed`
- status=0
if test $checks_total -gt 0 ; then
- if test $checks_failed -gt 0 ; then
+ if test $checks_failed -gt 0 -a $status -eq 0 ; then
status=1
fi
echo "$checks_total tests ($checks_succeeded passed," \
diff --git a/tests/unmodified-files b/tests/unmodified-files
index c970c3d..e54777a 100644
--- a/tests/unmodified-files
+++ b/tests/unmodified-files
@@ -7,7 +7,6 @@
. $srcdir/test-lib.sh
require_cat
-require_diff
use_local_patch
use_tmpdir