The test is very basic and can be extended. Couldn't find a good existing place to put it, so created a new file. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> --- t/t4056-diff-order.sh | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 t/t4056-diff-order.sh diff --git a/t/t4056-diff-order.sh b/t/t4056-diff-order.sh new file mode 100755 index 0000000..0404f50 --- /dev/null +++ b/t/t4056-diff-order.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +test_description='diff orderfile' + +. ./test-lib.sh + +test_expect_success 'setup' ' + as="a a a a a a a a" && # eight a + test_write_lines $as >foo && + test_write_lines $as >bar && + git add foo bar && + git commit -a -m initial && + test_write_lines $as b >foo && + test_write_lines $as b >bar && + git commit -a -m first && + test_write_lines bar foo >bar-then-foo && + test_write_lines foo bar >foo-then-bar && + git diff -Ofoo-then-bar HEAD~1..HEAD >diff-foo-then-bar && + git diff -Obar-then-foo HEAD~1..HEAD >diff-bar-then-foo +' + +test_diff_well_formed () { + grep ^+b "$1" >added + grep ^-b "$1" >removed + grep ^+++ "$1" >oldfiles + grep ^--- "$1" >newfiles + test_line_count = 2 added && + test_line_count = 0 removed && + test_line_count = 2 oldfiles && + test_line_count = 2 newfiles +} + +test_expect_success 'diff output with -O is well-formed' ' + test_diff_well_formed diff-foo-then-bar && + test_diff_well_formed diff-bar-then-foo +' + +test_expect_success 'flag -O affects diff output' ' + ! test_cmp diff-foo-then-bar diff-bar-then-foo +' + +test_expect_success 'orderfile is same as -O' ' + test_config diff.orderfile foo-then-bar && + git diff HEAD~1..HEAD >diff-foo-then-bar-config && + test_config diff.orderfile bar-then-foo && + git diff HEAD~1..HEAD >diff-bar-then-foo-config && + test_cmp diff-foo-then-bar diff-foo-then-bar-config && + test_cmp diff-bar-then-foo diff-bar-then-foo-config +' + +test_expect_success '-O overrides orderfile' ' + test_config diff.orderfile foo-then-bar && + git diff -Obar-then-foo HEAD~1..HEAD >diff-bar-then-foo-flag && + test_cmp diff-bar-then-foo diff-bar-then-foo-flag +' + +test_expect_success '/dev/null is same as no orderfile' ' + git diff -O/dev/null HEAD~1..HEAD>diff-null-orderfile && + git diff HEAD~1..HEAD >diff-default && + test_cmp diff-null-orderfile diff-default +' + +test_done -- MST -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html