From: Junio C Hamano <gitster@pobox.com>
To: Stephan Beyer <s-beyer@gmx.net>
Cc: git@vger.kernel.org, Christian Couder <christian.couder@gmail.com>
Subject: Re: [PATCH v2 06/21] bisect: add test for the bisect algorithm
Date: Fri, 15 Apr 2016 14:13:42 -0700 [thread overview]
Message-ID: <xmqqlh4ea83d.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <1460294354-7031-7-git-send-email-s-beyer@gmx.net> (Stephan Beyer's message of "Sun, 10 Apr 2016 15:18:59 +0200")
Stephan Beyer <s-beyer@gmx.net> writes:
> +test_expect_success 'bisect algorithm works in linear history with an odd number of commits' '
> + git bisect start A7 &&
> + git bisect next &&
> + test_cmp_rev HEAD A3 A4
> +'
> +
> +test_expect_success 'bisect algorithm works in linear history with an even number of commits' '
> + git bisect reset &&
> + git bisect start A8 &&
> + git bisect next &&
> + test_cmp_rev HEAD A4
> +'
> +
> +test_expect_success 'bisect algorithm works with a merge' '
> + git bisect reset &&
> + git bisect start Bmerge &&
> + git bisect next &&
> + test_cmp_rev HEAD A5 &&
> + git bisect good &&
> + test_cmp_rev HEAD A8 &&
> + git bisect good &&
> + test_cmp_rev HEAD B1 B2
> +'
> +
> +# | w min | w min | w min | w min |
> +# B---. BCDmerge | 18 0 | 9 0 | 5 0 | 3 0 |
> +# |\ \ \ | | | | |
> +# | | | * D2 | 5 5 | 2 2 | 2 2*| good |
> +# | | | * D1 | 4 4 | 1 1 | 1 1 | good |
> +# | | * | C3 | 10 8 | 1 1 | 1 1 | 1 1*|
> +# | | * | C2 | 9 9 *| good | good | good |
> +# | | * | C1 | 8 8 | good | good | good |
> +# | * | | B3 | 8 8 | 3 3 | 1 1 | 1 1*|
> +# * | | | Bmerge | 11 7 | 4 4*| good | good |
> +# |\ \ \ \ | | | | |
> +# | |/ / / | | | | |
> +# | * | | B2 | 7 7 | 2 2 | good | good |
> +# | * | | B1 | 6 6 | 1 1 | good | good |
> +# * | | | A8 | 8 8 | 1 1 | good | good |
> +# | |/ / | | | | |
> +# |/| | | | | | |
> +# * | | A7 | 7 7 | good | good | good |
> +# * | | A6 | 6 6 | good | good | good |
> +# |/ / | | | | |
> +# * | A5 | 5 5 | good | good | good |
> +# * | A4 | 4 4 | good | good | good |
> +# |/ | | | | |
> +# * A3 | 3 3 | good | good | good |
> +# * A2 | 2 2 | good | good | good |
> +# * A1 | 1 1 | good | good | good |
Nice drawing. With this, it is easy to see how the first three
examples above are testing the right thing, too. It is not
immediately clear what these asterisks in the table are trying to
say, though (the same comment applies to the other drawing below).
> +test_expect_success 'bisect algorithm works with octopus merge' '
> + git bisect reset &&
> + git bisect start BCDmerge &&
> + git bisect next &&
> + test_cmp_rev HEAD C2 &&
> + git bisect good &&
> + test_cmp_rev HEAD Bmerge &&
> + git bisect good &&
> + test_cmp_rev HEAD D2 &&
> + git bisect good &&
> + test_cmp_rev HEAD B3 C3 &&
> + git bisect good &&
> + test_cmp_rev HEAD C3 B3 &&
> + git bisect good > output &&
> + grep "$(git rev-parse BCDmerge) is the first bad commit" output
> +'
> +
> +# G 5a6bcdf D3 | w min | w min |
> +# | B 02f2eed A9 | 14 0 | 7 0 |
> +# | *---. 6174c5c BCDmerge | 13 1 | 6 1 |
> +# | |\ \ \ | | |
> +# | |_|_|/ | | |
> +# |/| | | | | |
> +# G | | | a6d6dab D2 | good | good |
> +# * | | | 86414e4 D1 | good | good |
> +# | | | * c672402 C3 | 7 7 *| good |
> +# | | | * 0555272 C2 | 6 6 | good |
> +# | | | * 28c2b2a C1 | 5 5 | good |
> +# | | * | 4b5a7d9 B3 | 5 5 | 3 3 *|
> +# | * | | a419ab7 Bmerge | 8 6 | 4 3 *|
> +# | |\ \ \ | | |
> +# | | |/ / | | |
> +# | | * | 4fa1e39 B2 | 4 4 | 2 2 |
> +# | | * | 92a014d B1 | 3 3 | 1 1 |
> +# | * | | 79158c7 A8 | 5 5 | 1 1 |
> +# | | |/ | | |
> +# | |/| | | |
> +# | * | 237eb73 A7 | 4 4 | good |
> +# | * | 3b2f811 A6 | 3 3 | good |
> +# | |/ | | |
> +# | * 0f2b6d2 A5 | 2 2 | good |
> +# | * 1fcdaf0 A4 | 1 1 | good |
> +# |/ | | |
> +# * 096648b A3 | good | good |
> +# * 1cf01b8 A2 | good | good |
> +# * 6623165 A1 | good | good |
> +
> +test_expect_success 'bisect algorithm works with good commit on unrelated branch' '
> + git bisect reset &&
> + git bisect start A9 D3 &&
> + test_cmp_rev HEAD "$(git merge-base A9 D3)" &&
> + test_cmp_rev HEAD D2 &&
> + git bisect good &&
> + test_cmp_rev HEAD C3 &&
> + git bisect good &&
> + test_cmp_rev HEAD B3 Bmerge
> +'
> +
> +test_done
next prev parent reply other threads:[~2016-04-15 21:13 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-10 13:18 [PATCH v2 00/21] git bisect improvements Stephan Beyer
2016-04-10 13:18 ` [PATCH v2 01/21] bisect: write about `bisect next` in documentation Stephan Beyer
2016-04-10 13:18 ` [PATCH v2 02/21] bisect: allow 'bisect run' if no good commit is known Stephan Beyer
2016-04-10 13:18 ` [PATCH v2 03/21] t/test-lib-functions.sh: generalize test_cmp_rev Stephan Beyer
2016-04-11 0:07 ` Eric Sunshine
2016-04-15 20:00 ` Junio C Hamano
2016-04-24 19:51 ` Stephan Beyer
2016-04-25 18:08 ` Junio C Hamano
2016-04-10 13:18 ` [PATCH v2 04/21] t: use test_cmp_rev() where appropriate Stephan Beyer
2016-04-11 0:07 ` Eric Sunshine
2016-04-15 20:48 ` Junio C Hamano
2016-04-10 13:18 ` [PATCH v2 05/21] t6030: generalize test to not rely on current implementation Stephan Beyer
2016-04-10 13:47 ` Torsten Bögershausen
2016-04-10 19:16 ` Junio C Hamano
2016-04-10 19:37 ` Stephan Beyer
2016-04-11 0:23 ` Eric Sunshine
2016-04-15 21:07 ` Junio C Hamano
2016-04-10 13:18 ` [PATCH v2 06/21] bisect: add test for the bisect algorithm Stephan Beyer
2016-04-15 21:13 ` Junio C Hamano [this message]
2016-04-10 13:19 ` [PATCH v2 07/21] bisect: plug the biggest memory leak Stephan Beyer
2016-04-15 21:18 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 08/21] bisect: make bisect compile if DEBUG_BISECT is set Stephan Beyer
2016-04-15 21:22 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 09/21] bisect: make algorithm behavior independent of DEBUG_BISECT Stephan Beyer
2016-04-15 21:25 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 10/21] bisect: get rid of recursion in count_distance() Stephan Beyer
2016-04-15 21:31 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 11/21] bisect: use struct node_data array instead of int array Stephan Beyer
2016-04-12 23:02 ` Christian Couder
2016-04-15 21:47 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 12/21] bisect: replace clear_distance() by unique markers Stephan Beyer
2016-04-12 23:20 ` Christian Couder
2016-04-15 22:07 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 13/21] bisect: use commit instead of commit list as arguments when appropriate Stephan Beyer
2016-04-15 22:08 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 14/21] bisect: extract get_distance() function from code duplication Stephan Beyer
2016-04-15 22:08 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 15/21] bisect: introduce distance_direction() Stephan Beyer
2016-04-15 22:10 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 16/21] bisect: make total number of commits global Stephan Beyer
2016-04-13 13:23 ` Christian Couder
2016-04-15 22:11 ` Junio C Hamano
2016-04-16 0:44 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 17/21] bisect: rename count_distance() to compute_weight() Stephan Beyer
2016-04-13 13:32 ` Christian Couder
2016-04-15 22:12 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 18/21] bisect: prepare for different algorithms based on find_all Stephan Beyer
2016-04-15 22:36 ` Junio C Hamano
2016-04-10 13:19 ` [PATCH v2 19/21] bisect: use a bottom-up traversal to find relevant weights Stephan Beyer
2016-04-13 14:11 ` Christian Couder
2016-04-15 22:47 ` Junio C Hamano
2016-04-15 22:49 ` Junio C Hamano
2016-04-26 18:27 ` Junio C Hamano
2016-04-10 13:24 ` [PATCH v2 20/21] bisect: compute best bisection in compute_relevant_weights() Stephan Beyer
2016-04-10 13:24 ` [PATCH v2 21/21] bisect: get back halfway shortcut Stephan Beyer
2016-04-15 22:53 ` Junio C Hamano
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqlh4ea83d.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=s-beyer@gmx.net \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).