Bump to version 1.22.1
[platform/upstream/busybox.git] / testsuite / diff.tests
index f7bde2f..6de4648 100755 (executable)
@@ -1,10 +1,10 @@
 #!/bin/sh
 # Copyright 2008 by Denys Vlasenko
-# Licensed under GPL v2, see file LICENSE for details.
+# Licensed under GPLv2, see file LICENSE in this source tree.
 
 . ./testing.sh
 
-# testing "test name" "options" "expected result" "file input" "stdin"
+# testing "test name" "commands" "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!
@@ -44,6 +44,17 @@ testing "diff of stdin, twice" \
        "" \
        "stdin"
 
+testing "diff of empty file against nonempty one" \
+       "diff -u - input | $TRIM_TAB" \
+"\
+--- -
++++ input
+@@ -0,0 +1 @@
++a
+" \
+       "a\n" \
+       ""
+
 testing "diff -b treats EOF as whitespace" \
        'diff -ub - input; echo $?' \
        "0\n" \
@@ -56,6 +67,26 @@ testing "diff -b treats all spaces as equal" \
        "a \t c\n" \
        "a\t \tc\n"
 
+testing "diff -B ignores changes whose lines are all blank" \
+       'diff -uB - input; echo $?' \
+       "0\n" \
+       "a\n" \
+       "\na\n\n"
+
+testing "diff -B does not ignore changes whose lines are not all blank" \
+       "diff -uB - input | $TRIM_TAB" \
+"\
+--- -
++++ input
+@@ -1,3 +1 @@
+-
+-b
+-
++a
+" \
+       "a\n" \
+       "\nb\n\n"
+
 testing "diff always takes context from old file" \
        "diff -ub - input | $TRIM_TAB" \
 "\
@@ -69,12 +100,15 @@ testing "diff always takes context from old file" \
        "abc\na  c\ndef\n" \
        "a c\n"
 
-# testing "test name" "options" "expected result" "file input" "stdin"
+# testing "test name" "commands" "expected result" "file input" "stdin"
 
+# clean up
 rm -rf diff1 diff2
+
 mkdir diff1 diff2 diff2/subdir
 echo qwe >diff1/-
 echo asd >diff2/subdir/-
+optional FEATURE_DIFF_DIR
 testing "diff diff1 diff2/subdir" \
        "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
 "\
@@ -85,8 +119,10 @@ testing "diff diff1 diff2/subdir" \
 +asd
 " \
        "" ""
+SKIP=
 
 # using directory structure from prev test...
+optional FEATURE_DIFF_DIR
 testing "diff dir dir2/file/-" \
        "diff -ur diff1 diff2/subdir/- | $TRIM_TAB" \
 "\
@@ -97,10 +133,12 @@ testing "diff dir dir2/file/-" \
 +asd
 " \
        "" ""
+SKIP=
 
 # using directory structure from prev test...
 mkdir diff1/test
 mkfifo diff2/subdir/test
+optional FEATURE_DIFF_DIR
 testing "diff of dir and fifo" \
        "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
 "\
@@ -112,10 +150,12 @@ testing "diff of dir and fifo" \
 Only in diff2/subdir: test
 " \
        "" ""
+SKIP=
 
 # using directory structure from prev test...
 rmdir diff1/test
 echo >diff1/test
+optional FEATURE_DIFF_DIR
 testing "diff of file and fifo" \
        "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
 "\
@@ -127,9 +167,11 @@ testing "diff of file and fifo" \
 File diff2/subdir/test is not a regular file or directory and was skipped
 " \
        "" ""
+SKIP=
 
 # using directory structure from prev test...
 mkfifo diff1/test2
+optional FEATURE_DIFF_DIR
 testing "diff -rN does not read non-regular files" \
        "diff -urN diff1 diff2/subdir | $TRIM_TAB" \
 "\
@@ -142,6 +184,32 @@ 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
 " \
        "" ""
+SKIP=
+
+# clean up
+rm -rf diff1 diff2
+
+# NOT using directory structure from prev test...
+mkdir diff1 diff2
+echo qwe >diff1/-
+echo rty >diff2/-
+optional FEATURE_DIFF_DIR
+testing "diff diff1 diff2/" \
+       "diff -ur diff1 diff2/ | $TRIM_TAB; diff -ur .///diff1 diff2//// | $TRIM_TAB" \
+"\
+--- diff1/-
++++ diff2/-
+@@ -1 +1 @@
+-qwe
++rty
+--- .///diff1/-
++++ diff2////-
+@@ -1 +1 @@
+-qwe
++rty
+" \
+       "" ""
+SKIP=
 
 # clean up
 rm -rf diff1 diff2