mirror of
https://github.com/opnsense/src.git
synced 2026-07-15 20:13:02 -04:00
Make the merge mode compatible with GNU diff3 Add tests for all the changes, those tests are extracted from the etcupdate testsuite. This version passes the etcupdate testsuite and the diffutils diff3 test suite. MFC After: 1 week (cherry picked from commit 2cfca8e710f260b8a1bb1ee5e1836a52e468ef4b)
147 lines
4.7 KiB
Bash
Executable file
147 lines
4.7 KiB
Bash
Executable file
|
|
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
|
|
}
|