summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-05-05 21:54:28 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-05-05 21:54:28 (GMT)
commit1d7e9c4c4e60375146ad70ed5c555574a653e92a (patch)
treea7feeb931a91fcb166a508f495f125208ee90155 /t
parentb75dc16ae3aa325941d64a3d0cfc1690a164786a (diff)
parent45a4365cb610adce1c37c099da7d18619725ce4f (diff)
downloadgit-1d7e9c4c4e60375146ad70ed5c555574a653e92a.zip
git-1d7e9c4c4e60375146ad70ed5c555574a653e92a.tar.gz
git-1d7e9c4c4e60375146ad70ed5c555574a653e92a.tar.bz2
Merge branch 'tb/commit-graph-perm-bits'
Some of the files commit-graph subsystem keeps on disk did not correctly honor the core.sharedRepository settings and some were left read-write. * tb/commit-graph-perm-bits: commit-graph.c: make 'commit-graph-chain's read-only commit-graph.c: ensure graph layers respect core.sharedRepository commit-graph.c: write non-split graphs as read-only lockfile.c: introduce 'hold_lock_file_for_update_mode' tempfile.c: introduce 'create_tempfile_mode'
Diffstat (limited to 't')
-rwxr-xr-xt/t5318-commit-graph.sh15
-rwxr-xr-xt/t5324-split-commit-graph.sh24
-rwxr-xr-xt/t6600-test-reach.sh2
3 files changed, 40 insertions, 1 deletions
diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh
index 39e2918..4245999 100755
--- a/t/t5318-commit-graph.sh
+++ b/t/t5318-commit-graph.sh
@@ -14,6 +14,10 @@ test_expect_success 'setup full repo' '
test_oid_init
'
+test_expect_success POSIXPERM 'tweak umask for modebit tests' '
+ umask 022
+'
+
test_expect_success 'verify graph with no graph file' '
cd "$TRASH_DIRECTORY/full" &&
git commit-graph verify
@@ -98,6 +102,13 @@ test_expect_success 'write graph' '
graph_read_expect "3"
'
+test_expect_success POSIXPERM 'write graph has correct permissions' '
+ test_path_is_file $objdir/info/commit-graph &&
+ echo "-r--r--r--" >expect &&
+ test_modebits $objdir/info/commit-graph >actual &&
+ test_cmp expect actual
+'
+
graph_git_behavior 'graph exists' full commits/3 commits/1
test_expect_success 'Add more commits' '
@@ -423,7 +434,8 @@ GRAPH_BYTE_FOOTER=$(($GRAPH_OCTOPUS_DATA_OFFSET + 4 * $NUM_OCTOPUS_EDGES))
corrupt_graph_setup() {
cd "$TRASH_DIRECTORY/full" &&
test_when_finished mv commit-graph-backup $objdir/info/commit-graph &&
- cp $objdir/info/commit-graph commit-graph-backup
+ cp $objdir/info/commit-graph commit-graph-backup &&
+ chmod u+w $objdir/info/commit-graph
}
corrupt_graph_verify() {
@@ -437,6 +449,7 @@ corrupt_graph_verify() {
fi &&
git status --short &&
GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD=true git commit-graph write &&
+ chmod u+w $objdir/info/commit-graph &&
git commit-graph verify
}
diff --git a/t/t5324-split-commit-graph.sh b/t/t5324-split-commit-graph.sh
index 594edb7..269d096 100755
--- a/t/t5324-split-commit-graph.sh
+++ b/t/t5324-split-commit-graph.sh
@@ -37,6 +37,10 @@ graph_read_expect() {
test_cmp expect output
}
+test_expect_success POSIXPERM 'tweak umask for modebit tests' '
+ umask 022
+'
+
test_expect_success 'create commits and write commit-graph' '
for i in $(test_seq 3)
do
@@ -401,4 +405,24 @@ test_expect_success ULIMIT_FILE_DESCRIPTORS 'handles file descriptor exhaustion'
)
'
+while read mode modebits
+do
+ test_expect_success POSIXPERM "split commit-graph respects core.sharedrepository $mode" '
+ rm -rf $graphdir $infodir/commit-graph &&
+ git reset --hard commits/1 &&
+ test_config core.sharedrepository "$mode" &&
+ git commit-graph write --split --reachable &&
+ ls $graphdir/graph-*.graph >graph-files &&
+ test_line_count = 1 graph-files &&
+ echo "$modebits" >expect &&
+ test_modebits $graphdir/graph-*.graph >actual &&
+ test_cmp expect actual &&
+ test_modebits $graphdir/commit-graph-chain >actual &&
+ test_cmp expect actual
+ '
+done <<\EOF
+0666 -r--r--r--
+0600 -r--------
+EOF
+
test_done
diff --git a/t/t6600-test-reach.sh b/t/t6600-test-reach.sh
index b24d850..475564b 100755
--- a/t/t6600-test-reach.sh
+++ b/t/t6600-test-reach.sh
@@ -51,8 +51,10 @@ test_expect_success 'setup' '
done &&
git commit-graph write --reachable &&
mv .git/objects/info/commit-graph commit-graph-full &&
+ chmod u+w commit-graph-full &&
git show-ref -s commit-5-5 | git commit-graph write --stdin-commits &&
mv .git/objects/info/commit-graph commit-graph-half &&
+ chmod u+w commit-graph-half &&
git config core.commitGraph true
'