aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/diff3/tests/diff3_test.sh
blob: 4510653bcd47e724914e976d69b3ae4e3fa9e92b (plain) (blame)
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147

atf_test_case diff3
atf_test_case diff3_lesssimple
atf_test_case diff3_ed
atf_test_case diff3_A
atf_test_case diff3_merge
atf_test_case diff3_E_merge
atf_test_case diff3_merge_conflict
atf_test_case diff3_merge_simple
atf_test_case diff3_Em_simple
atf_test_case diff3_Em_conflict
atf_test_case diff3_Em_insert

diff3_body()
{
	atf_check -o file:$(atf_get_srcdir)/1.out \
		diff3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -o file:$(atf_get_srcdir)/1.out \
		diff3 --strip-trailing-cr $(atf_get_srcdir)/1cr.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -o file:$(atf_get_srcdir)/1t.out \
		diff3 -T $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -o file:$(atf_get_srcdir)/2.out \
		diff3 -e $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -s exit:1 -o file:$(atf_get_srcdir)/3.out \
		diff3 -E -L 1 -L 2 -L 3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -s exit:1 -o file:$(atf_get_srcdir)/4.out \
		diff3 -X -L 1 -L 2 -L 3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -o file:$(atf_get_srcdir)/5.out \
		diff3 -x $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -o file:$(atf_get_srcdir)/6.out \
		diff3 -3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -o file:$(atf_get_srcdir)/7.out \
		diff3 -i $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
}

diff3_lesssimple_body()
{
	atf_check -s exit:1 -o file:$(atf_get_srcdir)/10.out \
		diff3 -m -L 1 -L 2 -L 3 $(atf_get_srcdir)/4.txt $(atf_get_srcdir)/5.txt $(atf_get_srcdir)/6.txt
}

diff3_ed_body()
{
	atf_check -s exit:0 -o file:$(atf_get_srcdir)/long-ed.out \
		diff3 -e $(atf_get_srcdir)/long-m.txt $(atf_get_srcdir)/long-o.txt $(atf_get_srcdir)/long-y.txt
}

diff3_A_body()
{
	atf_check -s exit:1 -o file:$(atf_get_srcdir)/8.out \
		diff3 -A -L 1 -L 2 -L 3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -s exit:1 -o file:$(atf_get_srcdir)/long-A.out \
		diff3 -A -L long-m.txt -L long-o.txt -L long-y.txt $(atf_get_srcdir)/long-m.txt $(atf_get_srcdir)/long-o.txt $(atf_get_srcdir)/long-y.txt
}


diff3_merge_body()
{
	atf_check -s exit:1 -o file:$(atf_get_srcdir)/9.out \
		diff3 -m -L 1 -L 2 -L 3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt

	atf_check -s exit:1 -o file:$(atf_get_srcdir)/long-merge.out \
		diff3 -m -L long-m.txt -L long-o.txt -L long-y.txt $(atf_get_srcdir)/long-m.txt $(atf_get_srcdir)/long-o.txt $(atf_get_srcdir)/long-y.txt
}

diff3_E_merge_body()
{

expected="<<<<<<< 2
# \$FreeBSD: head/local 12000 jhb \$
=======
# \$FreeBSD: head/local 12345 jhb \$
>>>>>>> 3

this is a file

these are some local mods to the file
"
	# first test the regular test
	cp $(atf_get_srcdir)/fbsdid2.txt out.txt
	atf_check -s exit:1 -o inline:"${expected}" \
		diff3 -m -L 1 -L 2 -L 3 out.txt $(atf_get_srcdir)/fbsdid1.txt $(atf_get_srcdir)/fbsdid2.txt

merged="# \$FreeBSD: head/local 12345 jhb \$

this is a file

these are some local mods to the file
"
	atf_check -s exit:0 -o inline:"${merged}" \
		diff3 -E -m out.txt $(atf_get_srcdir)/fbsdid1.txt $(atf_get_srcdir)/fbsdid2.txt
}


diff3_merge_conflict_body()
{
	atf_check -s exit:1 -o file:$(atf_get_srcdir)/conflict-merge.out \
		diff3 -m -L conflict3.txt -L conflict1.txt -L conflict2.txt $(atf_get_srcdir)/conflict3.txt $(atf_get_srcdir)/conflict1.txt $(atf_get_srcdir)/conflict2.txt
}

diff3_merge_simple_body()
{
	atf_check -s exit:0 -o file:$(atf_get_srcdir)/simple-merge.out \
		diff3 -m $(atf_get_srcdir)/simple3.txt $(atf_get_srcdir)/simple1.txt $(atf_get_srcdir)/simple2.txt
}

diff3_Em_simple_body()
{
	atf_check -s exit:0 -o file:$(atf_get_srcdir)/simple-Em.out \
		diff3 -E -m $(atf_get_srcdir)/simple3.txt $(atf_get_srcdir)/simple1.txt $(atf_get_srcdir)/simple2.txt
}

diff3_Em_conflict_body()
{
	atf_check -s exit:1 -o file:$(atf_get_srcdir)/conflict-Em.out \
		diff3 -E -m -L conflict3.txt -L conflict1.txt -L conflict2.txt $(atf_get_srcdir)/conflict3.txt $(atf_get_srcdir)/conflict1.txt $(atf_get_srcdir)/conflict2.txt
}

diff3_Em_insert_body()
{
	atf_check -s exit:0 -o file:$(atf_get_srcdir)/passwd-Em.out \
		diff3 -E -m $(atf_get_srcdir)/passwd-test.txt $(atf_get_srcdir)/passwd-old.txt $(atf_get_srcdir)/passwd-new.txt
}

atf_init_test_cases()
{
	atf_add_test_case diff3
#	atf_add_test_case diff3_lesssimple
	atf_add_test_case diff3_ed
	atf_add_test_case diff3_A
	atf_add_test_case diff3_merge
	atf_add_test_case diff3_E_merge
	atf_add_test_case diff3_merge_conflict
	atf_add_test_case diff3_merge_simple
	atf_add_test_case diff3_Em_simple
	atf_add_test_case diff3_Em_conflict
	atf_add_test_case diff3_Em_insert
}