#!/bin/sh

test_description='test combined/stat/moved interaction'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME

. ./test-lib.sh

# This test covers a weird 3-way interaction between "--cc -p", which will run
# the combined diff code, along with "--stat", which will be computed as a
# first-parent stat during the combined diff, and "--color-moved", which
# enables the emitted_symbols list to store the diff in memory.

test_expect_success 'set up history with a merge' '
	test_commit A &&
	test_commit B &&
	git checkout -b side HEAD^ &&
	test_commit C &&
	git merge -m M main &&
	test_commit D
'

test_expect_success 'log --cc -p --stat --color-moved' '
	cat >expect <<-EOF &&
	commit D
	---
	 D.t | 1 +
	 1 file changed, 1 insertion(+)

	diff --git a/D.t b/D.t
	new file mode 100644
	index 0000000..$(git rev-parse --short D:D.t)
	--- /dev/null
	+++ b/D.t
	@@ -0,0 +1 @@
	+D
	commit M

	 B.t | 1 +
	 1 file changed, 1 insertion(+)
	commit C
	---
	 C.t | 1 +
	 1 file changed, 1 insertion(+)

	diff --git a/C.t b/C.t
	new file mode 100644
	index 0000000..$(git rev-parse --short C:C.t)
	--- /dev/null
	+++ b/C.t
	@@ -0,0 +1 @@
	+C
	commit B
	---
	 B.t | 1 +
	 1 file changed, 1 insertion(+)

	diff --git a/B.t b/B.t
	new file mode 100644
	index 0000000..$(git rev-parse --short B:B.t)
	--- /dev/null
	+++ b/B.t
	@@ -0,0 +1 @@
	+B
	commit A
	---
	 A.t | 1 +
	 1 file changed, 1 insertion(+)

	diff --git a/A.t b/A.t
	new file mode 100644
	index 0000000..$(git rev-parse --short A:A.t)
	--- /dev/null
	+++ b/A.t
	@@ -0,0 +1 @@
	+A
	EOF
	git log --format="commit %s" --cc -p --stat --color-moved >actual &&
	test_cmp expect actual
'

test_done
