summaryrefslogtreecommitdiff
path: root/release/src/router/busybox/testsuite/diff.tests
blob: ac68a089035c8eeea5aae3bfb1bd9dea15767ba6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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