1458cbf0aSEnji Cooper# $FreeBSD$
2458cbf0aSEnji Cooper
3458cbf0aSEnji Cooperatf_test_case simple
4458cbf0aSEnji Cooperatf_test_case unified
558cf4d86SJilles Tjoelkeratf_test_case header
6385a67dcSJilles Tjoelkeratf_test_case header_ns
705d06ecaSBaptiste Daroussinatf_test_case ifdef
8fddcb7b8SBaptiste Daroussinatf_test_case group_format
929d65f1cSEnji Cooperatf_test_case side_by_side
104574a545SEnji Cooperatf_test_case brief_format
119977c7b5SXin LIatf_test_case b230049
12*e68edb8cSKyle Evansatf_test_case Bflag
13458cbf0aSEnji Cooper
14458cbf0aSEnji Coopersimple_body()
15458cbf0aSEnji Cooper{
16458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/simple.out -s eq:1 \
17458cbf0aSEnji Cooper		diff "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
18458cbf0aSEnji Cooper
19458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/simple_e.out -s eq:1 \
20458cbf0aSEnji Cooper		diff -e "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
21458cbf0aSEnji Cooper
22458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/simple_u.out -s eq:1 \
23458cbf0aSEnji Cooper		diff -u -L input1 -L input2 "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
24458cbf0aSEnji Cooper
25458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/simple_n.out -s eq:1 \
26458cbf0aSEnji Cooper		diff -n "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
27458cbf0aSEnji Cooper
28458cbf0aSEnji Cooper	atf_check -o inline:"Files $(atf_get_srcdir)/input1.in and $(atf_get_srcdir)/input2.in differ\n" -s eq:1 \
29458cbf0aSEnji Cooper		diff -q "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
30458cbf0aSEnji Cooper
31458cbf0aSEnji Cooper	atf_check \
32458cbf0aSEnji Cooper		diff -q "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input1.in"
33458cbf0aSEnji Cooper
34458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/simple_i.out -s eq:1 \
35458cbf0aSEnji Cooper		diff -i "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
36458cbf0aSEnji Cooper
37458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/simple_w.out -s eq:1 \
38458cbf0aSEnji Cooper		diff -w "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
39458cbf0aSEnji Cooper
40458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/simple_b.out -s eq:1 \
41458cbf0aSEnji Cooper		diff -b "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
42458cbf0aSEnji Cooper
43458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/simple_p.out -s eq:1 \
44458cbf0aSEnji Cooper		diff --label input_c1.in --label input_c2.in -p "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
45458cbf0aSEnji Cooper}
46458cbf0aSEnji Cooper
47458cbf0aSEnji Cooperunified_body()
48458cbf0aSEnji Cooper{
49458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/unified_p.out -s eq:1 \
50458cbf0aSEnji Cooper		diff -up -L input_c1.in -L input_c2.in  "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
51458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/unified_c9999.out -s eq:1 \
52458cbf0aSEnji Cooper		diff -u -c9999 -L input_c1.in -L input_c2.in "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
53458cbf0aSEnji Cooper	atf_check -o file:$(atf_get_srcdir)/unified_9999.out -s eq:1 \
54458cbf0aSEnji Cooper		diff -u9999 -L input_c1.in -L input_c2.in "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
55458cbf0aSEnji Cooper}
56458cbf0aSEnji Cooper
579977c7b5SXin LIb230049_body()
589977c7b5SXin LI{
599977c7b5SXin LI	printf 'a\nb\r\nc\n' > b230049_a.in
609977c7b5SXin LI	printf 'a\r\nb\r\nc\r\n' > b230049_b.in
619977c7b5SXin LI	atf_check -o empty -s eq:0 \
629977c7b5SXin LI		diff -up --strip-trailing-cr -L b230049_a.in -L b230049_b.in \
639977c7b5SXin LI		    b230049_a.in b230049_b.in
649977c7b5SXin LI}
659977c7b5SXin LI
6658cf4d86SJilles Tjoelkerheader_body()
6758cf4d86SJilles Tjoelker{
6858cf4d86SJilles Tjoelker	export TZ=UTC
6958cf4d86SJilles Tjoelker	: > empty
7058cf4d86SJilles Tjoelker	echo hello > hello
7158cf4d86SJilles Tjoelker	touch -d 2015-04-03T01:02:03 empty
7258cf4d86SJilles Tjoelker	touch -d 2016-12-22T11:22:33 hello
7358cf4d86SJilles Tjoelker	atf_check -o "file:$(atf_get_srcdir)/header.out" -s eq:1 \
7458cf4d86SJilles Tjoelker		diff -u empty hello
7558cf4d86SJilles Tjoelker}
7658cf4d86SJilles Tjoelker
77385a67dcSJilles Tjoelkerheader_ns_body()
78385a67dcSJilles Tjoelker{
79385a67dcSJilles Tjoelker	export TZ=UTC
80385a67dcSJilles Tjoelker	: > empty
81385a67dcSJilles Tjoelker	echo hello > hello
82385a67dcSJilles Tjoelker	touch -d 2015-04-03T01:02:03.123456789 empty
83385a67dcSJilles Tjoelker	touch -d 2016-12-22T11:22:33.987654321 hello
84385a67dcSJilles Tjoelker	atf_check -o "file:$(atf_get_srcdir)/header_ns.out" -s eq:1 \
85385a67dcSJilles Tjoelker		diff -u empty hello
86385a67dcSJilles Tjoelker}
87385a67dcSJilles Tjoelker
8805d06ecaSBaptiste Daroussinifdef_body()
8905d06ecaSBaptiste Daroussin{
9005d06ecaSBaptiste Daroussin	atf_check -o file:$(atf_get_srcdir)/ifdef.out -s eq:1 \
9105d06ecaSBaptiste Daroussin		diff -D PLOP "$(atf_get_srcdir)/input_c1.in" \
9205d06ecaSBaptiste Daroussin		"$(atf_get_srcdir)/input_c2.in"
9305d06ecaSBaptiste Daroussin}
9405d06ecaSBaptiste Daroussin
95fddcb7b8SBaptiste Daroussingroup_format_body()
96fddcb7b8SBaptiste Daroussin{
97fddcb7b8SBaptiste Daroussin	atf_check -o file:$(atf_get_srcdir)/group-format.out -s eq:1 \
98fddcb7b8SBaptiste Daroussin		diff --changed-group-format='<<<<<<< (local)
99fddcb7b8SBaptiste Daroussin%<=======
100fddcb7b8SBaptiste Daroussin%>>>>>>>> (stock)
101fddcb7b8SBaptiste Daroussin' "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
102fddcb7b8SBaptiste Daroussin}
103fddcb7b8SBaptiste Daroussin
10429d65f1cSEnji Cooperside_by_side_body()
10529d65f1cSEnji Cooper{
10629d65f1cSEnji Cooper	atf_expect_fail "--side-by-side not currently implemented (bug # 219933)"
10729d65f1cSEnji Cooper
10829d65f1cSEnji Cooper	atf_check -o save:A printf "A\nB\nC\n"
10929d65f1cSEnji Cooper	atf_check -o save:B printf "D\nB\nE\n"
11029d65f1cSEnji Cooper
11129d65f1cSEnji Cooper	exp_output="A[[:space:]]+|[[:space:]]+D\nB[[:space:]]+B\nC[[:space:]]+|[[:space:]]+E"
11229d65f1cSEnji Cooper	exp_output_suppressed="A[[:space:]]+|[[:space:]]+D\nC[[:space:]]+|[[:space:]]+E"
11329d65f1cSEnji Cooper
11429d65f1cSEnji Cooper	atf_check -o match:"$exp_output" -s exit:1 \
11529d65f1cSEnji Cooper	    diff --side-by-side A B
11629d65f1cSEnji Cooper	atf_check -o match:"$exp_output" -s exit:1 \
11729d65f1cSEnji Cooper	    diff -y A B
11829d65f1cSEnji Cooper	atf_check -o match:"$exp_output_suppressed" -s exit:1 \
11929d65f1cSEnji Cooper	    diff -y --suppress-common-lines A B
12029d65f1cSEnji Cooper	atf_check -o match:"$exp_output_suppressed" -s exit:1 \
12129d65f1cSEnji Cooper	    diff -W 65 -y --suppress-common-lines A B
12229d65f1cSEnji Cooper}
12329d65f1cSEnji Cooper
1244574a545SEnji Cooperbrief_format_body()
1254574a545SEnji Cooper{
1264574a545SEnji Cooper	atf_check mkdir A B
1274574a545SEnji Cooper
1284574a545SEnji Cooper	atf_check -x "echo 1 > A/test-file"
1294574a545SEnji Cooper	atf_check -x "echo 2 > B/test-file"
1304574a545SEnji Cooper
1314574a545SEnji Cooper	atf_check cp -Rf A C
1324017abe2SEnji Cooper	atf_check cp -Rf A D
1334017abe2SEnji Cooper
1344017abe2SEnji Cooper	atf_check -x "echo 3 > D/another-test-file"
1354574a545SEnji Cooper
1364574a545SEnji Cooper	atf_check \
1374574a545SEnji Cooper	    -s exit:1 \
1384574a545SEnji Cooper	    -o inline:"Files A/test-file and B/test-file differ\n" \
1394017abe2SEnji Cooper	    diff -rq A B
1404574a545SEnji Cooper
1414017abe2SEnji Cooper	atf_check diff -rq A C
1424017abe2SEnji Cooper
1434017abe2SEnji Cooper	atf_check \
1444017abe2SEnji Cooper	    -s exit:1 \
1454017abe2SEnji Cooper	    -o inline:"Only in D: another-test-file\n" \
1464017abe2SEnji Cooper	    diff -rq A D
1474017abe2SEnji Cooper
1484017abe2SEnji Cooper	atf_check \
1494017abe2SEnji Cooper	    -s exit:1 \
1504017abe2SEnji Cooper	    -o inline:"Files A/another-test-file and D/another-test-file differ\n" \
1514017abe2SEnji Cooper	    diff -Nrq A D
1524574a545SEnji Cooper}
1534574a545SEnji Cooper
154*e68edb8cSKyle EvansBflag_body()
155*e68edb8cSKyle Evans{
156*e68edb8cSKyle Evans	atf_check -x 'printf "A\nB\n" > A'
157*e68edb8cSKyle Evans	atf_check -x 'printf "A\n\nB\n" > B'
158*e68edb8cSKyle Evans	atf_check -x 'printf "A\n \nB\n" > C'
159*e68edb8cSKyle Evans	atf_check -x 'printf "A\nC\nB\n" > D'
160*e68edb8cSKyle Evans	atf_check -x 'printf "A\nB\nC\nD\nE\nF\nG\nH" > E'
161*e68edb8cSKyle Evans	atf_check -x 'printf "A\n\nB\nC\nD\nE\nF\nX\nH" > F'
162*e68edb8cSKyle Evans
163*e68edb8cSKyle Evans	atf_check -s exit:0 -o inline:"" diff -B A B
164*e68edb8cSKyle Evans	atf_check -s exit:1 -o file:"$(atf_get_srcdir)/Bflag_C.out" diff -B A C
165*e68edb8cSKyle Evans	atf_check -s exit:1 -o file:"$(atf_get_srcdir)/Bflag_D.out" diff -B A D
166*e68edb8cSKyle Evans	atf_check -s exit:1 -o file:"$(atf_get_srcdir)/Bflag_F.out" diff -B E F
167*e68edb8cSKyle Evans}
168*e68edb8cSKyle Evans
169458cbf0aSEnji Cooperatf_init_test_cases()
170458cbf0aSEnji Cooper{
171458cbf0aSEnji Cooper	atf_add_test_case simple
172458cbf0aSEnji Cooper	atf_add_test_case unified
17358cf4d86SJilles Tjoelker	atf_add_test_case header
174385a67dcSJilles Tjoelker	atf_add_test_case header_ns
17505d06ecaSBaptiste Daroussin	atf_add_test_case ifdef
176fddcb7b8SBaptiste Daroussin	atf_add_test_case group_format
17729d65f1cSEnji Cooper	atf_add_test_case side_by_side
1784574a545SEnji Cooper	atf_add_test_case brief_format
1799977c7b5SXin LI	atf_add_test_case b230049
180*e68edb8cSKyle Evans	atf_add_test_case Bflag
181458cbf0aSEnji Cooper}
182