[RFC PATCH 13/18] t5318-midx.h: confirm git actions are stable
- Date: Sun, 7 Jan 2018 13:14:54 -0500
- From: Derrick Stolee <stolee@xxxxxxxxx>
- Subject: [RFC PATCH 13/18] t5318-midx.h: confirm git actions are stable
Perform some basic read-only operations that load objects and find
abbreviations. As this functionality begins to reference MIDX files,
ensure the output matches when using MIDX files and when not using them.
Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx>
---
t/t5318-midx.sh | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/t/t5318-midx.sh b/t/t5318-midx.sh
index 42d103c879..00be852ed3 100755
--- a/t/t5318-midx.sh
+++ b/t/t5318-midx.sh
@@ -37,6 +37,19 @@ _midx_read_expect() {
EOF
}
+_midx_git_two_modes() {
+ git -c core.midx=true $1 >output
+ git -c core.midx=false $1 >expect
+}
+
+_midx_git_behavior() {
+ test_expect_success 'check normal git operations' \
+ '_midx_git_two_modes "log --patch master" &&
+ cmp output expect &&
+ _midx_git_two_modes "rev-list --all --objects" &&
+ cmp output expect'
+}
+
test_expect_success 'write-midx from index version 1' \
'pack1=$(git rev-list --all --objects | git pack-objects --index-version=1 ${packdir}/test-1) &&
midx1=$(git midx --write) &&
@@ -48,6 +61,8 @@ test_expect_success 'write-midx from index version 1' \
git midx --read --midx-id=${midx1} >output &&
cmp output expect'
+_midx_git_behavior
+
test_expect_success 'write-midx from index version 2' \
'rm "${packdir}/test-1-${pack1}.pack" &&
pack2=$(git rev-list --all --objects | git pack-objects --index-version=2 ${packdir}/test-2) &&
@@ -61,6 +76,8 @@ test_expect_success 'write-midx from index version 2' \
git midx --read> output &&
cmp output expect'
+_midx_git_behavior
+
test_expect_success 'Create more objects' \
'for i in $(test_seq 100)
do
@@ -71,6 +88,8 @@ test_expect_success 'Create more objects' \
git commit -m "test data 2" &&
git branch commit2 HEAD'
+_midx_git_behavior
+
test_expect_success 'write-midx with two packs' \
'pack3=$(git rev-list --objects commit2 ^commit1 | git pack-objects --index-version=2 ${packdir}/test-3) &&
midx3=$(git midx --write --update-head) &&
@@ -84,6 +103,8 @@ test_expect_success 'write-midx with two packs' \
git midx --read >output &&
cmp output expect'
+_midx_git_behavior
+
test_expect_success 'Add more packs' \
'for i in $(test_seq 10)
do
@@ -107,6 +128,8 @@ test_expect_success 'Add more packs' \
git pack-objects --index-version=2 ${packdir}/test-pack <obj-list
done'
+_midx_git_behavior
+
test_expect_success 'write-midx with twelve packs' \
'midx4=$(git midx --write --update-head --delete-expired) &&
test_path_is_file ${packdir}/midx-${midx4}.midx &&
@@ -120,6 +143,8 @@ test_expect_success 'write-midx with twelve packs' \
git midx --read >output &&
cmp output expect'
+_midx_git_behavior
+
test_expect_success 'write-midx with no new packs' \
'midx5=$(git midx --write --update-head --delete-expired) &&
test_path_is_file ${packdir}/midx-${midx5}.midx &&
@@ -127,6 +152,8 @@ test_expect_success 'write-midx with no new packs' \
test_path_is_file ${packdir}/midx-head &&
test $(cat ${packdir}/midx-head) = "$midx4"'
+_midx_git_behavior
+
test_expect_success 'create bare repo' \
'cd .. &&
git clone --bare full bare &&
@@ -146,6 +173,8 @@ test_expect_success 'write-midx in bare repo' \
git midx --read >output &&
cmp output expect'
+_midx_git_behavior
+
test_expect_success 'midx --clear' \
'git midx --clear &&
test_path_is_missing "${baredir}/midx-${midx4}.midx" &&
@@ -155,4 +184,6 @@ test_expect_success 'midx --clear' \
test_path_is_missing "${packdir}/midx-${midx4}.midx" &&
test_path_is_missing "${packdir}/midx-head"'
+_midx_git_behavior
+
test_done
--
2.15.0