diff options
Diffstat (limited to 'testsuite/diff.tests')
-rwxr-xr-x | testsuite/diff.tests | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/testsuite/diff.tests b/testsuite/diff.tests new file mode 100755 index 0000000..ac68a08 --- /dev/null +++ b/testsuite/diff.tests @@ -0,0 +1,124 @@ +#!/bin/sh +# Copyright 2008 by Denys Vlasenko +# Licensed under GPL v2, see file LICENSE for details. + +. testing.sh + +# testing "test name" "options" "expected result" "file input" "stdin" + +# diff outputs date/time in the header, which should not be analysed +# NB: sed has tab character in s command! +TRIM_TAB="sed 's/ .*//'" + +testing "diff of stdin" \ + "diff -u - input | $TRIM_TAB" \ +"\ +--- - ++++ input +@@ -1 +1,3 @@ ++qwe + asd ++zxc +" \ + "qwe\nasd\nzxc\n" \ + "asd\n" + +testing "diff of stdin, no newline in the file" \ + "diff -u - input | $TRIM_TAB" \ +"\ +--- - ++++ input +@@ -1 +1,3 @@ ++qwe + asd ++zxc +\\ No newline at end of file +" \ + "qwe\nasd\nzxc" \ + "asd\n" + +# we also test that stdin is in fact NOT read +testing "diff of stdin, twice" \ + "diff - -; echo $?; wc -c" \ + "0\n5\n" \ + "" \ + "stdin" + +# testing "test name" "options" "expected result" "file input" "stdin" + +rm -rf diff1 diff2 +mkdir diff1 diff2 diff2/subdir +echo qwe >diff1/- +echo asd >diff2/subdir/- +testing "diff diff1 diff2/subdir" \ + "diff -ur diff1 diff2/subdir | $TRIM_TAB" \ +"\ +--- diff1/- ++++ diff2/subdir/- +@@ -1 +1 @@ +-qwe ++asd +" \ + "" "" + +# using directory structure from prev test... +testing "diff dir dir2/file/-" \ + "diff -ur diff1 diff2/subdir/- | $TRIM_TAB" \ +"\ +--- diff1/- ++++ diff2/subdir/- +@@ -1 +1 @@ +-qwe ++asd +" \ + "" "" + +# using directory structure from prev test... +mkdir diff1/test +mkfifo diff2/subdir/test +testing "diff of dir and fifo" \ + "diff -ur diff1 diff2/subdir | $TRIM_TAB" \ +"\ +--- diff1/- ++++ diff2/subdir/- +@@ -1 +1 @@ +-qwe ++asd +Only in diff2/subdir: test +" \ + "" "" + +# using directory structure from prev test... +rmdir diff1/test +echo >diff1/test +testing "diff of file and fifo" \ + "diff -ur diff1 diff2/subdir | $TRIM_TAB" \ +"\ +--- diff1/- ++++ diff2/subdir/- +@@ -1 +1 @@ +-qwe ++asd +File diff2/subdir/test is not a regular file or directory and was skipped +" \ + "" "" + +# using directory structure from prev test... +mkfifo diff1/test2 +testing "diff -rN does not read non-regular files" \ + "diff -urN diff1 diff2/subdir | $TRIM_TAB" \ +"\ +--- diff1/- ++++ diff2/subdir/- +@@ -1 +1 @@ +-qwe ++asd +File diff2/subdir/test is not a regular file or directory and was skipped +File diff1/test2 is not a regular file or directory and was skipped +" \ + "" "" + +# clean up +rm -rf diff1 diff2 + +exit $FAILCOUNT |