From: "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: me@ttaylorr.com, gitster@pobox.com, abhishekkumar8222@gmail.com,
avarab@gmail.com, Derrick Stolee <derrickstolee@github.com>,
Derrick Stolee <derrickstolee@github.com>
Subject: [PATCH v3 2/5] t5318: extract helpers to lib-commit-graph.sh
Date: Tue, 01 Mar 2022 19:48:29 +0000 [thread overview]
Message-ID: <a90cad8efa5c2f316b6f054153e32e4e94cee025.1646164112.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1163.v3.git.1646164112.gitgitgadget@gmail.com>
From: Derrick Stolee <derrickstolee@github.com>
The graph_git_behavior helper is useful for testing that certain Git
commands behave the same when using the commit-graph and when not using
the commit-graph. Extract it to a new lib-commit-graph.sh file for use
in new test scripts that will split out from t5318.
While doing this extraction, also extract graph_read_expect and the
logic for priming the test_oid_cache.
Signed-off-by: Derrick Stolee <derrickstolee@github.com>
---
t/lib-commit-graph.sh | 48 +++++++++++++++++++++++++++++++++++++++
t/t5318-commit-graph.sh | 50 ++---------------------------------------
2 files changed, 50 insertions(+), 48 deletions(-)
create mode 100755 t/lib-commit-graph.sh
diff --git a/t/lib-commit-graph.sh b/t/lib-commit-graph.sh
new file mode 100755
index 00000000000..07e12b9d2fe
--- /dev/null
+++ b/t/lib-commit-graph.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+# Helper functions for testing commit-graphs.
+
+# Initialize OID cache with oid_version
+test_oid_cache <<-EOF
+oid_version sha1:1
+oid_version sha256:2
+EOF
+
+graph_git_two_modes() {
+ git -c core.commitGraph=true $1 >output &&
+ git -c core.commitGraph=false $1 >expect &&
+ test_cmp expect output
+}
+
+graph_git_behavior() {
+ MSG=$1
+ DIR=$2
+ BRANCH=$3
+ COMPARE=$4
+ test_expect_success "check normal git operations: $MSG" '
+ cd "$TRASH_DIRECTORY/$DIR" &&
+ graph_git_two_modes "log --oneline $BRANCH" &&
+ graph_git_two_modes "log --topo-order $BRANCH" &&
+ graph_git_two_modes "log --graph $COMPARE..$BRANCH" &&
+ graph_git_two_modes "branch -vv" &&
+ graph_git_two_modes "merge-base -a $BRANCH $COMPARE"
+ '
+}
+
+graph_read_expect() {
+ OPTIONAL=""
+ NUM_CHUNKS=3
+ if test -n "$2"
+ then
+ OPTIONAL=" $2"
+ NUM_CHUNKS=$((3 + $(echo "$2" | wc -w)))
+ fi
+ cat >expect <<- EOF
+ header: 43475048 1 $(test_oid oid_version) $NUM_CHUNKS 0
+ num_commits: $1
+ chunks: oid_fanout oid_lookup commit_metadata$OPTIONAL
+ options:
+ EOF
+ test-tool read-graph >output &&
+ test_cmp expect output
+}
diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh
index 2b05026cf6d..9e2b5884dae 100755
--- a/t/t5318-commit-graph.sh
+++ b/t/t5318-commit-graph.sh
@@ -29,12 +29,7 @@ test_expect_success 'setup full repo' '
cd "$TRASH_DIRECTORY/full" &&
git init &&
git config core.commitGraph true &&
- objdir=".git/objects" &&
-
- test_oid_cache <<-EOF
- oid_version sha1:1
- oid_version sha256:2
- EOF
+ objdir=".git/objects"
'
test_expect_success POSIXPERM 'tweak umask for modebit tests' '
@@ -69,47 +64,10 @@ test_expect_success 'create commits and repack' '
git repack
'
-graph_git_two_modes() {
- git -c core.commitGraph=true $1 >output &&
- git -c core.commitGraph=false $1 >expect &&
- test_cmp expect output
-}
-
-graph_git_behavior() {
- MSG=$1
- DIR=$2
- BRANCH=$3
- COMPARE=$4
- test_expect_success "check normal git operations: $MSG" '
- cd "$TRASH_DIRECTORY/$DIR" &&
- graph_git_two_modes "log --oneline $BRANCH" &&
- graph_git_two_modes "log --topo-order $BRANCH" &&
- graph_git_two_modes "log --graph $COMPARE..$BRANCH" &&
- graph_git_two_modes "branch -vv" &&
- graph_git_two_modes "merge-base -a $BRANCH $COMPARE"
- '
-}
+. "$TEST_DIRECTORY"/lib-commit-graph.sh
graph_git_behavior 'no graph' full commits/3 commits/1
-graph_read_expect() {
- OPTIONAL=""
- NUM_CHUNKS=3
- if test ! -z "$2"
- then
- OPTIONAL=" $2"
- NUM_CHUNKS=$((3 + $(echo "$2" | wc -w)))
- fi
- cat >expect <<- EOF
- header: 43475048 1 $(test_oid oid_version) $NUM_CHUNKS 0
- num_commits: $1
- chunks: oid_fanout oid_lookup commit_metadata$OPTIONAL
- options:
- EOF
- test-tool read-graph >output &&
- test_cmp expect output
-}
-
test_expect_success 'exit with correct error on bad input to --stdin-commits' '
cd "$TRASH_DIRECTORY/full" &&
# invalid, non-hex OID
@@ -826,10 +784,6 @@ test_expect_success 'set up and verify repo with generation data overflow chunk'
objdir=".git/objects" &&
UNIX_EPOCH_ZERO="@0 +0000" &&
FUTURE_DATE="@2147483646 +0000" &&
- test_oid_cache <<-EOF &&
- oid_version sha1:1
- oid_version sha256:2
- EOF
cd "$TRASH_DIRECTORY" &&
mkdir repo &&
cd repo &&
--
gitgitgadget
next prev parent reply other threads:[~2022-03-01 19:50 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-24 20:38 [PATCH 0/7] Commit-graph: Generation Number v2 Fixes, v3 implementation Derrick Stolee via GitGitGadget
2022-02-24 20:38 ` [PATCH 1/7] test-read-graph: include extra post-parse info Derrick Stolee via GitGitGadget
2022-02-24 20:38 ` [PATCH 2/7] commit-graph: fix ordering bug in generation numbers Derrick Stolee via GitGitGadget
2022-02-24 22:15 ` Junio C Hamano
2022-02-25 13:51 ` Derrick Stolee
2022-02-25 17:35 ` Junio C Hamano
2022-02-24 20:38 ` [PATCH 3/7] commit-graph: start parsing generation v2 (again) Derrick Stolee via GitGitGadget
2022-02-28 15:18 ` Patrick Steinhardt
2022-02-28 16:23 ` Derrick Stolee
2022-02-28 16:59 ` Patrick Steinhardt
2022-02-28 18:44 ` Derrick Stolee
2022-03-01 9:46 ` Patrick Steinhardt
2022-03-01 10:35 ` Patrick Steinhardt
2022-03-01 14:06 ` Derrick Stolee
2022-03-01 14:53 ` Patrick Steinhardt
2022-03-01 15:25 ` Derrick Stolee
2022-03-02 13:57 ` Patrick Steinhardt
2022-03-02 14:57 ` Derrick Stolee
2022-03-02 18:15 ` Junio C Hamano
2022-03-02 18:46 ` Derrick Stolee
2022-03-02 22:42 ` Junio C Hamano
2022-03-03 11:19 ` Patrick Steinhardt
2022-03-03 16:00 ` Derrick Stolee
2022-03-04 14:03 ` Derrick Stolee
2022-03-07 10:34 ` Patrick Steinhardt
2022-03-07 13:45 ` Derrick Stolee
2022-03-07 17:22 ` Junio C Hamano
2022-03-10 13:58 ` Patrick Steinhardt
2022-03-10 17:18 ` Derrick Stolee
2022-02-24 20:38 ` [PATCH 4/7] commit-graph: fix generation number v2 overflow values Derrick Stolee via GitGitGadget
2022-02-24 22:35 ` Junio C Hamano
2022-02-25 13:53 ` Derrick Stolee
2022-02-25 17:38 ` Junio C Hamano
2022-02-24 20:38 ` [PATCH 5/7] commit-graph: document file format v2 Derrick Stolee via GitGitGadget
2022-02-24 22:55 ` Junio C Hamano
2022-02-25 22:31 ` Ævar Arnfjörð Bjarmason
2022-02-28 13:44 ` Derrick Stolee
2022-02-28 14:27 ` Ævar Arnfjörð Bjarmason
2022-02-28 16:39 ` Derrick Stolee
2022-02-28 21:14 ` Ævar Arnfjörð Bjarmason
2022-03-01 14:19 ` Derrick Stolee
2022-03-01 14:29 ` Ævar Arnfjörð Bjarmason
2022-03-01 15:59 ` Derrick Stolee
2022-02-24 20:38 ` [PATCH 6/7] commit-graph: parse " Derrick Stolee via GitGitGadget
2022-02-24 23:01 ` Junio C Hamano
2022-02-25 13:54 ` Derrick Stolee
2022-02-24 20:38 ` [PATCH 7/7] commit-graph: write " Derrick Stolee via GitGitGadget
2022-02-24 21:42 ` [PATCH 0/7] Commit-graph: Generation Number v2 Fixes, v3 implementation Junio C Hamano
2022-02-24 23:06 ` Junio C Hamano
2022-02-25 13:55 ` Derrick Stolee
2022-02-28 13:53 ` [PATCH v2 0/4] Commit-graph: Generation Number v2 Fixes Derrick Stolee via GitGitGadget
2022-02-28 13:53 ` [PATCH v2 1/4] test-read-graph: include extra post-parse info Derrick Stolee via GitGitGadget
2022-02-28 15:22 ` Ævar Arnfjörð Bjarmason
2022-02-28 13:53 ` [PATCH v2 2/4] commit-graph: fix ordering bug in generation numbers Derrick Stolee via GitGitGadget
2022-02-28 15:25 ` Ævar Arnfjörð Bjarmason
2022-02-28 13:53 ` [PATCH v2 3/4] commit-graph: start parsing generation v2 (again) Derrick Stolee via GitGitGadget
2022-02-28 15:30 ` Ævar Arnfjörð Bjarmason
2022-02-28 16:43 ` Derrick Stolee
2022-02-28 13:53 ` [PATCH v2 4/4] commit-graph: fix generation number v2 overflow values Derrick Stolee via GitGitGadget
2022-02-28 15:40 ` Ævar Arnfjörð Bjarmason
2022-03-01 17:23 ` [PATCH v2 0/4] Commit-graph: Generation Number v2 Fixes Ævar Arnfjörð Bjarmason
2022-03-01 19:48 ` [PATCH v3 0/5] " Derrick Stolee via GitGitGadget
2022-03-01 19:48 ` [PATCH v3 1/5] test-read-graph: include extra post-parse info Derrick Stolee via GitGitGadget
2022-03-01 19:48 ` Derrick Stolee via GitGitGadget [this message]
2022-03-01 19:48 ` [PATCH v3 3/5] commit-graph: fix ordering bug in generation numbers Derrick Stolee via GitGitGadget
2022-03-01 20:13 ` Junio C Hamano
2022-03-01 20:30 ` Junio C Hamano
2022-03-02 14:13 ` Derrick Stolee
2022-03-01 19:48 ` [PATCH v3 4/5] commit-graph: start parsing generation v2 (again) Derrick Stolee via GitGitGadget
2022-03-01 19:48 ` [PATCH v3 5/5] commit-graph: fix generation number v2 overflow values Derrick Stolee via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a90cad8efa5c2f316b6f054153e32e4e94cee025.1646164112.git.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=abhishekkumar8222@gmail.com \
--cc=avarab@gmail.com \
--cc=derrickstolee@github.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=me@ttaylorr.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).