#!/bin/sh
# Copyright 2008 by Denys Vlasenko
# Licensed under GPLv2, see file LICENSE in this source tree.

. ./testing.sh

# 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!
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 "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" \
	"abc" \
	"abc "

testing "diff -b treats all spaces as equal" \
	'diff -ub - input; echo $?' \
	"0\n" \
	"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" \
"\
--- -
+++ input
@@ -1 +1,3 @@
+abc
 a c
+def
" \
	"abc\na  c\ndef\n" \
	"a c\n"

# 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" \
"\
--- diff1/-
+++ diff2/subdir/-
@@ -1 +1 @@
-qwe
+asd
" \
	"" ""
SKIP=

# using directory structure from prev test...
optional FEATURE_DIFF_DIR
testing "diff dir dir2/file/-" \
	"diff -ur diff1 diff2/subdir/- | $TRIM_TAB" \
"\
--- diff1/-
+++ diff2/subdir/-
@@ -1 +1 @@
-qwe
+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" \
"\
--- diff1/-
+++ diff2/subdir/-
@@ -1 +1 @@
-qwe
+asd
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" \
"\
--- diff1/-
+++ diff2/subdir/-
@@ -1 +1 @@
-qwe
+asd
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" \
"\
--- 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
" \
	"" ""
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

exit $FAILCOUNT
