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 <m...@redhat.com>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to