. ./test-lib.sh

set_state () {
	echo "$3" > "$1" &&
	git add "$1" &&
	echo "$2" > "$1"
}

save_state () {
	noslash="$(echo "$1" | tr / _)" &&
	cat "$1" > _worktree_"$noslash" &&
	git show :"$1" > _index_"$noslash"
}

set_and_save_state () {
	set_state "$@" &&
	save_state "$1"
}

verify_state () {
	test "$(cat "$1")" = "$2" &&
	test "$(git show :"$1")" = "$3"
}

verify_saved_state () {
	noslash="$(echo "$1" | tr / _)" &&
	verify_state "$1" "$(cat _worktree_"$noslash")" "$(cat _index_"$noslash")"
}

save_head () {
	git rev-parse HEAD > _head
}

verify_saved_head () {
	test "$(cat _head)" = "$(git rev-parse HEAD)"
}

Add a small patch-mode testing library
Add a small patch-mode testing library

The tests for {reset,commit,stash} -p will frequently have to set both
worktree and index states to known values, and verify that the outcome
(again both worktree and index) are what was expected.

Add a small helper library that lets us do these tasks more easily.

Signed-off-by: Thomas Rast <18f23ef7096473d837b7404952f13710423b8b63@student.ethz.ch>
Signed-off-by: Junio C Hamano <a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com>
