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 <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Rast committed
Aug 13, 2009 at 14:29 UTC
b319ef70a94731a5c6f18d07a49d5dda3f06f5d3
1 file changed
+36
t/lib-patch-mode.sh
new
+36
@@ -0,0 +1,36 @@
1
+. ./test-lib.sh
2
+
3
+set_state () {
4
+ echo "$3" > "$1" &&
5
+ git add "$1" &&
6
+ echo "$2" > "$1"
7
+}
8
+
9
+save_state () {
10
+ noslash="$(echo "$1" | tr / _)" &&
11
+ cat "$1" > _worktree_"$noslash" &&
12
+ git show :"$1" > _index_"$noslash"
13
+}
14
+
15
+set_and_save_state () {
16
+ set_state "$@" &&
17
+ save_state "$1"
18
+}
19
+
20
+verify_state () {
21
+ test "$(cat "$1")" = "$2" &&
22
+ test "$(git show :"$1")" = "$3"
23
+}
24
+
25
+verify_saved_state () {
26
+ noslash="$(echo "$1" | tr / _)" &&
27
+ verify_state "$1" "$(cat _worktree_"$noslash")" "$(cat _index_"$noslash")"
28
+}
29
+
30
+save_head () {
31
+ git rev-parse HEAD > _head
32
+}
33
+
34
+verify_saved_head () {
35
+ test "$(cat _head)" = "$(git rev-parse HEAD)"
36
+}