From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: "Derrick Stolee" <stolee@gmail.com>,
"Git List" <git@vger.kernel.org>,
"Jonathan Tan" <jonathantanmy@google.com>,
"René Scharfe" <l.s.r@web.de>
Subject: Re: Git Test Coverage Report (v2.27.0-rc0)
Date: Wed, 20 May 2020 01:38:12 +0000 [thread overview]
Message-ID: <20200520013812.GS6362@camp.crustytoothpaste.net> (raw)
In-Reply-To: <20200519234208.GR6362@camp.crustytoothpaste.net>
[-- Attachment #1: Type: text/plain, Size: 1988 bytes --]
On 2020-05-19 at 23:42:08, brian m. carlson wrote:
> On 2020-05-19 at 12:11:15, Derrick Stolee wrote:
> > On 5/15/2020 1:22 PM, Derrick Stolee wrote:
> > > brian m. carlson 13e7ed6a builtin/checkout: compute checkout metadata for checkouts
> > > builtin/checkout.c
> > > 13e7ed6a 625) is_null_oid(&info->oid) ? &tree->object.oid :
> >
> > This is part of the following hunk:
> >
> > @@ -619,6 +620,11 @@ static int reset_tree(struct tree *tree, const struct checkout_opts *o,
> > opts.verbose_update = o->show_progress;
> > opts.src_index = &the_index;
> > opts.dst_index = &the_index;
> > + init_checkout_metadata(&opts.meta, info->refname,
> > + info->commit ? &info->commit->object.oid :
> > + is_null_oid(&info->oid) ? &tree->object.oid :
> > + &info->oid,
> > + NULL);
> > parse_tree(tree);
> > init_tree_desc(&tree_desc, tree->buffer, tree->size);
> > switch (unpack_trees(1, &tree_desc, &opts)) {
> >
> > The double-nested ternary definitely complicates the coverage here.
> > It also points out that all tests have `info->commit` a non-NULL.
> >
> > This certainly looks safe, but I don't know.
>
> This is me trying to be defensive. I think the code path that is not
> covered here that can be is the info->oid code path; I don't technically
> believe the other case (using the tree) is possible, although the
> checkout code is complex enough that I can't be certain.
Actually, with more research, it looks like this can just be simplified
since info->commit must be non-NULL. I've analyzed the code and am
confident that's guaranteed to be the case, and the test suite has
confirmed no segfaults by making that assumption, so I'll send a patch
imminently that just does that.
--
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
next prev parent reply other threads:[~2020-05-20 1:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-15 17:22 Git Test Coverage Report (v2.27.0-rc0) Derrick Stolee
2020-05-19 12:11 ` Derrick Stolee
2020-05-19 20:07 ` René Scharfe
2020-05-19 23:42 ` brian m. carlson
2020-05-20 1:38 ` brian m. carlson [this message]
2020-05-19 18:31 ` [PATCH] t4067: make rename detection test output raw diff Jonathan Tan
2020-05-19 19:00 ` Derrick Stolee
2020-05-20 1:41 ` [PATCH 1/1] builtin/checkout: simplify metadata initialization brian m. carlson
2020-05-20 15:17 ` Junio C Hamano
2020-05-20 22:37 ` brian m. carlson
2020-05-21 2:07 ` [PATCH v2 0/2] Improve Fix code coverage for checkout brian m. carlson
2020-05-21 2:07 ` [PATCH v2 1/2] builtin/checkout: simplify metadata initialization brian m. carlson
2020-05-21 17:35 ` Junio C Hamano
2020-05-23 12:22 ` brian m. carlson
2020-05-21 2:07 ` [PATCH v2 2/2] t2060: add a test for switch with --orphan and --discard-changes brian m. carlson
2020-05-21 12:38 ` [PATCH v2 0/2] Improve Fix code coverage for checkout Derrick Stolee
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=20200520013812.GS6362@camp.crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=git@vger.kernel.org \
--cc=jonathantanmy@google.com \
--cc=l.s.r@web.de \
--cc=stolee@gmail.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.