From: Stefan Beller <sbeller@google.com>
To: git@vger.kernel.org
Cc: Stefan Beller <sbeller@google.com>, Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 23/23] t/helper/test-repository: celebrate independence from the_repository
Date: Fri, 14 Dec 2018 16:09:42 -0800 [thread overview]
Message-ID: <20181215000942.46033-24-sbeller@google.com> (raw)
In-Reply-To: <20181215000942.46033-1-sbeller@google.com>
dade47c06c (commit-graph: add repo arg to graph readers, 2018-07-11)
brought more independence from the_repository to the commit graph, however
it was not completely independent of the_repository, as the previous
patches show.
To ensure we're not accessing the_repository by accident, we'd ideally
assign NULL to the_repository to trigger a segfault on access.
We currently have a temporary hack in cache.h, which relies on
the_hash_algo (which is a short form of the_repository->hash_algo) to
be set, so we cannot do that. The next best thing is to set all fields of
the_repository to 0, so any accidental access is more likely to be found.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
cache.h | 2 ++
t/helper/test-repository.c | 10 ++++++++++
2 files changed, 12 insertions(+)
diff --git a/cache.h b/cache.h
index 59c8a93046..8864d7ec15 100644
--- a/cache.h
+++ b/cache.h
@@ -1033,6 +1033,8 @@ static inline int hashcmp(const unsigned char *sha1, const unsigned char *sha2)
*
* This will need to be extended or ripped out when we learn about
* hashes of different sizes.
+ *
+ * When ripping this out, see TODO in test-repository.c.
*/
if (the_hash_algo->rawsz != 20)
BUG("hash size not yet supported by hashcmp");
diff --git a/t/helper/test-repository.c b/t/helper/test-repository.c
index 6a84a53efb..f7f8618445 100644
--- a/t/helper/test-repository.c
+++ b/t/helper/test-repository.c
@@ -17,6 +17,11 @@ static void test_parse_commit_in_graph(const char *gitdir, const char *worktree,
setup_git_env(gitdir);
+ memset(the_repository, 0, sizeof(*the_repository));
+
+ /* TODO: Needed for temporary hack in hashcmp, see 183a638b7da. */
+ repo_set_hash_algo(the_repository, GIT_HASH_SHA1);
+
if (repo_init(&r, gitdir, worktree))
die("Couldn't init repo");
@@ -43,6 +48,11 @@ static void test_get_commit_tree_in_graph(const char *gitdir,
setup_git_env(gitdir);
+ memset(the_repository, 0, sizeof(*the_repository));
+
+ /* TODO: Needed for temporary hack in hashcmp, see 183a638b7da. */
+ repo_set_hash_algo(the_repository, GIT_HASH_SHA1);
+
if (repo_init(&r, gitdir, worktree))
die("Couldn't init repo");
--
2.20.0.405.gbc1bbc6f85-goog
next prev parent reply other threads:[~2018-12-15 0:10 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-15 0:09 [PATCH 00/23] sb/more-repo-in-api Stefan Beller
2018-12-15 0:09 ` [PATCH 01/23] sha1_file: allow read_object to read objects in arbitrary repositories Stefan Beller
2018-12-15 0:09 ` [PATCH 02/23] packfile: allow has_packed_and_bad to handle " Stefan Beller
2018-12-15 0:09 ` [PATCH 03/23] object-store: allow read_object_file_extended to read from any repo Stefan Beller
2018-12-15 0:09 ` [PATCH 04/23] object-store: prepare read_object_file to deal with " Stefan Beller
2018-12-15 0:09 ` [PATCH 05/23] object-store: prepare has_{sha1, object}_file to handle " Stefan Beller
2018-12-15 0:09 ` [PATCH 06/23] object: parse_object to honor its repository argument Stefan Beller
2018-12-15 0:09 ` [PATCH 07/23] commit: allow parse_commit* to handle any repo Stefan Beller
2018-12-15 0:09 ` [PATCH 08/23] commit-reach.c: allow paint_down_to_common " Stefan Beller
2018-12-15 0:09 ` [PATCH 09/23] commit-reach.c: allow merge_bases_many " Stefan Beller
2018-12-15 0:09 ` [PATCH 10/23] commit-reach.c: allow remove_redundant " Stefan Beller
2018-12-15 0:09 ` [PATCH 11/23] commit-reach.c: allow get_merge_bases_many_0 " Stefan Beller
2018-12-15 0:09 ` [PATCH 12/23] commit-reach: prepare get_merge_bases " Stefan Beller
2018-12-15 0:09 ` [PATCH 13/23] commit-reach: prepare in_merge_bases[_many] " Stefan Beller
2018-12-15 0:09 ` [PATCH 14/23] commit: prepare get_commit_buffer " Stefan Beller
2018-12-15 0:09 ` [PATCH 15/23] commit: prepare repo_unuse_commit_buffer " Stefan Beller
2018-12-15 0:09 ` [PATCH 16/23] commit: prepare logmsg_reencode to handle arbitrary repositories Stefan Beller
2018-12-15 0:09 ` [PATCH 17/23] pretty: prepare format_commit_message " Stefan Beller
2018-12-15 0:09 ` [PATCH 18/23] submodule: use submodule repos for object lookup Stefan Beller
2018-12-15 0:09 ` [PATCH 19/23] submodule: don't add submodule as odb for push Stefan Beller
2018-12-15 0:09 ` [PATCH 20/23] commit-graph: convert remaining functions to handle any repo Stefan Beller
2018-12-15 0:09 ` [PATCH 21/23] commit: prepare free_commit_buffer and release_commit_memory for " Stefan Beller
2018-12-15 0:09 ` [PATCH 22/23] path.h: make REPO_GIT_PATH_FUNC repository agnostic Stefan Beller
2018-12-15 0:09 ` Stefan Beller [this message]
2018-12-26 18:42 ` [PATCH 00/23] sb/more-repo-in-api Junio C Hamano
2018-12-27 14:41 ` Derrick Stolee
-- strict thread matches above, loose matches on Subject: below --
2018-11-14 0:12 [PATCHv3 00/23] Bring more repository handles into our code base Stefan Beller
2018-11-14 0:13 ` [PATCH 23/23] t/helper/test-repository: celebrate independence from the_repository Stefan Beller
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=20181215000942.46033-24-sbeller@google.com \
--to=sbeller@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.