xref: /freebsd/usr.bin/diff3/tests/diff3_test.sh (revision 0fc6c3f731a2cca3120798806c330a3081c9424b)
1
2atf_test_case diff3
3atf_test_case diff3_lesssimple
4atf_test_case diff3_ed
5atf_test_case diff3_A
6atf_test_case diff3_merge
7atf_test_case diff3_E_merge
8atf_test_case diff3_merge_conflict
9atf_test_case diff3_merge_simple
10atf_test_case diff3_Em_simple
11atf_test_case diff3_Em_conflict
12atf_test_case diff3_Em_insert
13
14diff3_body()
15{
16	atf_check -o file:$(atf_get_srcdir)/1.out \
17		diff3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
18
19	atf_check -o file:$(atf_get_srcdir)/1.out \
20		diff3 --strip-trailing-cr $(atf_get_srcdir)/1cr.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
21
22	atf_check -o file:$(atf_get_srcdir)/1t.out \
23		diff3 -T $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
24
25	atf_check -o file:$(atf_get_srcdir)/2.out \
26		diff3 -e $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
27
28	atf_check -s exit:1 -o file:$(atf_get_srcdir)/3.out \
29		diff3 -E -L 1 -L 2 -L 3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
30
31	atf_check -s exit:1 -o file:$(atf_get_srcdir)/4.out \
32		diff3 -X -L 1 -L 2 -L 3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
33
34	atf_check -o file:$(atf_get_srcdir)/5.out \
35		diff3 -x $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
36
37	atf_check -o file:$(atf_get_srcdir)/6.out \
38		diff3 -3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
39
40	atf_check -o file:$(atf_get_srcdir)/7.out \
41		diff3 -i $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
42}
43
44diff3_lesssimple_body()
45{
46	atf_check -s exit:1 -o file:$(atf_get_srcdir)/10.out \
47		diff3 -m -L 1 -L 2 -L 3 $(atf_get_srcdir)/4.txt $(atf_get_srcdir)/5.txt $(atf_get_srcdir)/6.txt
48}
49
50diff3_ed_body()
51{
52	atf_check -s exit:0 -o file:$(atf_get_srcdir)/long-ed.out \
53		diff3 -e $(atf_get_srcdir)/long-m.txt $(atf_get_srcdir)/long-o.txt $(atf_get_srcdir)/long-y.txt
54}
55
56diff3_A_body()
57{
58	atf_check -s exit:1 -o file:$(atf_get_srcdir)/8.out \
59		diff3 -A -L 1 -L 2 -L 3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
60
61	atf_check -s exit:1 -o file:$(atf_get_srcdir)/long-A.out \
62		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
63}
64
65
66diff3_merge_body()
67{
68	atf_check -s exit:1 -o file:$(atf_get_srcdir)/9.out \
69		diff3 -m -L 1 -L 2 -L 3 $(atf_get_srcdir)/1.txt $(atf_get_srcdir)/2.txt $(atf_get_srcdir)/3.txt
70
71	atf_check -s exit:1 -o file:$(atf_get_srcdir)/long-merge.out \
72		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
73}
74
75diff3_E_merge_body()
76{
77
78expected="<<<<<<< 2
79# \$FreeBSD: head/local 12000 jhb \$
80=======
81# \$FreeBSD: head/local 12345 jhb \$
82>>>>>>> 3
83
84this is a file
85
86these are some local mods to the file
87"
88	# first test the regular test
89	cp $(atf_get_srcdir)/fbsdid2.txt out.txt
90	atf_check -s exit:1 -o inline:"${expected}" \
91		diff3 -m -L 1 -L 2 -L 3 out.txt $(atf_get_srcdir)/fbsdid1.txt $(atf_get_srcdir)/fbsdid2.txt
92
93merged="# \$FreeBSD: head/local 12345 jhb \$
94
95this is a file
96
97these are some local mods to the file
98"
99	atf_check -s exit:0 -o inline:"${merged}" \
100		diff3 -E -m out.txt $(atf_get_srcdir)/fbsdid1.txt $(atf_get_srcdir)/fbsdid2.txt
101}
102
103
104diff3_merge_conflict_body()
105{
106	atf_check -s exit:1 -o file:$(atf_get_srcdir)/conflict-merge.out \
107		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
108}
109
110diff3_merge_simple_body()
111{
112	atf_check -s exit:0 -o file:$(atf_get_srcdir)/simple-merge.out \
113		diff3 -m $(atf_get_srcdir)/simple3.txt $(atf_get_srcdir)/simple1.txt $(atf_get_srcdir)/simple2.txt
114}
115
116diff3_Em_simple_body()
117{
118	atf_check -s exit:0 -o file:$(atf_get_srcdir)/simple-Em.out \
119		diff3 -E -m $(atf_get_srcdir)/simple3.txt $(atf_get_srcdir)/simple1.txt $(atf_get_srcdir)/simple2.txt
120}
121
122diff3_Em_conflict_body()
123{
124	atf_check -s exit:1 -o file:$(atf_get_srcdir)/conflict-Em.out \
125		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
126}
127
128diff3_Em_insert_body()
129{
130	atf_check -s exit:0 -o file:$(atf_get_srcdir)/passwd-Em.out \
131		diff3 -E -m $(atf_get_srcdir)/passwd-test.txt $(atf_get_srcdir)/passwd-old.txt $(atf_get_srcdir)/passwd-new.txt
132}
133
134atf_init_test_cases()
135{
136	atf_add_test_case diff3
137#	atf_add_test_case diff3_lesssimple
138	atf_add_test_case diff3_ed
139	atf_add_test_case diff3_A
140	atf_add_test_case diff3_merge
141	atf_add_test_case diff3_E_merge
142	atf_add_test_case diff3_merge_conflict
143	atf_add_test_case diff3_merge_simple
144	atf_add_test_case diff3_Em_simple
145	atf_add_test_case diff3_Em_conflict
146	atf_add_test_case diff3_Em_insert
147}
148