#!/bin/sh
#
# Copyright (c) 2007 Carl D. Worth
#

test_description='git ls-files test (--with-tree).

This test runs git ls-files --with-tree and in particular in
a scenario known to trigger a crash with some versions of git.
'
. ./test-lib.sh

test_expect_success setup '

	# The bug we are exercising requires a fair number of entries
	# in a sub-directory so that add_index_entry will trigger a
	# realloc.

	echo file >expected &&
	mkdir sub &&
	for n in 0 1 2 3 4 5
	do
		for m in 0 1 2 3 4 5 6 7 8 9
		do
			num=00$n$m &&
			>sub/file-$num &&
			echo file-$num >>expected ||
			return 1
		done
	done &&
	git add . &&
	git commit -m "add a bunch of files" &&

	# We remove them all so that we will have something to add
	# back with --with-tree and so that we will definitely be
	# under the realloc size to trigger the bug.
	rm -rf sub &&
	git commit -a -m "remove them all" &&

	# The bug also requires some entry before our directory so that
	# prune_path will modify the_index.cache

	mkdir a_directory_that_sorts_before_sub &&
	>a_directory_that_sorts_before_sub/file &&
	mkdir sub &&
	>sub/file &&
	git add .
'

test_expect_success 'usage' '
	test_expect_code 128 git ls-files --with-tree=HEAD -u &&
	test_expect_code 128 git ls-files --with-tree=HEAD -s &&
	test_expect_code 128 git ls-files --recurse-submodules --with-tree=HEAD
'

test_expect_success 'git ls-files --with-tree should succeed from subdir' '
	# We have to run from a sub-directory to trigger prune_path
	# Then we finally get to run our --with-tree test
	(
		cd sub &&
		git ls-files --with-tree=HEAD~1 >../output
	)
'

test_expect_success \
    'git ls-files --with-tree should add entries from named tree.' \
    'test_cmp expected output'

test_expect_success 'no duplicates in --with-tree output' '
	git ls-files --with-tree=HEAD >actual &&
	sort -u actual >expected &&
	test_cmp expected actual
'

test_expect_success 'setup: output in a conflict' '
	test_create_repo conflict &&
	test_commit -C conflict BASE file &&
	test_commit -C conflict A file foo &&
	git -C conflict reset --hard BASE &&
	test_commit -C conflict B file bar
'

test_expect_success 'output in a conflict' '
	test_must_fail git -C conflict merge A B &&
	cat >expected <<-\EOF &&
	file
	file
	file
	file
	EOF
	git -C conflict ls-files --with-tree=HEAD >actual &&
	test_cmp expected actual
'

test_expect_success 'output with removed .git/index' '
	cat >expected <<-\EOF &&
	file
	EOF
	rm conflict/.git/index &&
	git -C conflict ls-files --with-tree=HEAD >actual &&
	test_cmp expected actual
'

test_done
