From: Derrick Stolee <stolee@gmail.com>
To: Matheus Tavares <matheus.bernardino@usp.br>, git@vger.kernel.org
Cc: christian.couder@gmail.com, git@jeffhostetler.com
Subject: Re: [PATCH 7/7] ci: run test round with parallel-checkout enabled
Date: Fri, 23 Apr 2021 15:56:53 -0400 [thread overview]
Message-ID: <56757f2b-f203-3014-dbad-e86c49d0d64b@gmail.com> (raw)
In-Reply-To: <f7c20e0b5bd7857b2303aab762f24c503e50030d.1619104091.git.matheus.bernardino@usp.br>
On 4/22/2021 11:17 AM, Matheus Tavares wrote:
> We already have tests for the basic parallel-checkout operations. But
> this code can also run be executed by other commands, such as
> git-read-tree and git-sparse-checkout, which are currently not tested
> with multiple workers. To promote a wider test coverage without
> duplicating tests:
>
> 1. Add the GIT_TEST_CHECKOUT_WORKERS environment variable, to optionally
> force parallel-checkout execution during the whole test suite.
>
> 2. Set this variable (with a value of 2) in the second test round of our
> linux-gcc CI job. This round runs `make test` again with some
> optional GIT_TEST_* variables enabled, so there is no additional
> overhead in exercising the parallel-checkout code here.
>
> Note that tests checking out less than two parallel-eligible entries
> will fall back to the sequential mode. Nevertheless, it's still a good
> exercise for the parallel-checkout framework as the fallback codepath
> also writes the queued entries using the parallel-checkout functions
> (only without spawning any worker).
I agree that this is helpful additional testing.
> Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
> ---
> ci/run-build-and-tests.sh | 1 +
> parallel-checkout.c | 14 ++++++++++++++
> t/README | 4 ++++
> t/lib-parallel-checkout.sh | 3 +++
> 4 files changed, 22 insertions(+)
>
> diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh
> index a66b5e8c75..23b28e7391 100755
> --- a/ci/run-build-and-tests.sh
> +++ b/ci/run-build-and-tests.sh
> @@ -25,6 +25,7 @@ linux-gcc)
> export GIT_TEST_ADD_I_USE_BUILTIN=1
> export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master
> export GIT_TEST_WRITE_REV_INDEX=1
> + export GIT_TEST_CHECKOUT_WORKERS=2
> make test
> ;;
(Making a note to audit the entries here, as I believe some
of these could be enabled by default or no longer do anything.)
> void get_parallel_checkout_configs(int *num_workers, int *threshold)
> {
> + char *env_workers = getenv("GIT_TEST_CHECKOUT_WORKERS");
> +
> + if (env_workers && *env_workers) {
> + if (strtol_i(env_workers, 10, num_workers)) {
I had to look up how strtol_i() differs from strtol(). It seems
like we should use strtol_i() more often than we do.
> + die("invalid value for GIT_TEST_CHECKOUT_WORKERS: '%s'",
> + env_workers);
> + }
> + if (*num_workers < 1)
> + *num_workers = online_cpus();
> +
> + *threshold = 0;
> + return;
> + }
LGTM.
Thanks,
-Stolee
next prev parent reply other threads:[~2021-04-23 19:56 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-22 15:17 [PATCH 0/7] Parallel Checkout (part 3) Matheus Tavares
2021-04-22 15:17 ` [PATCH 1/7] make_transient_cache_entry(): optionally alloc from mem_pool Matheus Tavares
2021-04-22 15:17 ` [PATCH 2/7] builtin/checkout.c: complete parallel checkout support Matheus Tavares
2021-04-23 16:19 ` Derrick Stolee
2021-04-26 21:54 ` Matheus Tavares Bernardino
2021-04-22 15:17 ` [PATCH 3/7] checkout-index: add " Matheus Tavares
2021-04-23 18:32 ` Derrick Stolee
2021-04-26 22:30 ` Matheus Tavares Bernardino
2021-04-22 15:17 ` [PATCH 4/7] parallel-checkout: add tests for basic operations Matheus Tavares
2021-04-23 19:18 ` Derrick Stolee
2021-04-27 2:30 ` Matheus Tavares Bernardino
2021-04-22 15:17 ` [PATCH 5/7] parallel-checkout: add tests related to path collisions Matheus Tavares
2021-04-22 15:17 ` [PATCH 6/7] parallel-checkout: add tests related to .gitattributes Matheus Tavares
2021-04-23 19:48 ` Derrick Stolee
2021-04-22 15:17 ` [PATCH 7/7] ci: run test round with parallel-checkout enabled Matheus Tavares
2021-04-23 19:56 ` Derrick Stolee [this message]
2021-04-30 21:40 ` [PATCH v2 0/8] Parallel Checkout (part 3) Matheus Tavares
2021-04-30 21:40 ` [PATCH v2 1/8] make_transient_cache_entry(): optionally alloc from mem_pool Matheus Tavares
2021-05-01 17:06 ` Christian Couder
2021-05-03 14:11 ` Matheus Tavares Bernardino
2021-04-30 21:40 ` [PATCH v2 2/8] builtin/checkout.c: complete parallel checkout support Matheus Tavares
2021-05-01 17:08 ` Christian Couder
2021-05-03 14:21 ` Matheus Tavares Bernardino
2021-04-30 21:40 ` [PATCH v2 3/8] checkout-index: add " Matheus Tavares
2021-05-01 17:08 ` Christian Couder
2021-05-03 14:22 ` Matheus Tavares Bernardino
2021-04-30 21:40 ` [PATCH v2 4/8] parallel-checkout: add tests for basic operations Matheus Tavares
2021-04-30 21:40 ` [PATCH v2 5/8] parallel-checkout: add tests related to path collisions Matheus Tavares
2021-05-02 7:59 ` Torsten Bögershausen
2021-05-03 14:58 ` Matheus Tavares Bernardino
2021-04-30 21:40 ` [PATCH v2 6/8] t0028: extract encoding helpers to lib-encoding.sh Matheus Tavares
2021-04-30 21:40 ` [PATCH v2 7/8] parallel-checkout: add tests related to .gitattributes Matheus Tavares
2021-04-30 21:40 ` [PATCH v2 8/8] ci: run test round with parallel-checkout enabled Matheus Tavares
2021-05-02 10:12 ` [PATCH v2 0/8] Parallel Checkout (part 3) Torsten Bögershausen
2021-05-03 15:01 ` Matheus Tavares Bernardino
2021-05-04 16:27 ` [PATCH v3 " Matheus Tavares
2021-05-04 16:27 ` [PATCH v3 1/8] make_transient_cache_entry(): optionally alloc from mem_pool Matheus Tavares
2021-05-04 16:27 ` [PATCH v3 2/8] builtin/checkout.c: complete parallel checkout support Matheus Tavares
2021-05-05 13:55 ` Derrick Stolee
2021-05-04 16:27 ` [PATCH v3 3/8] checkout-index: add " Matheus Tavares
2021-05-04 16:27 ` [PATCH v3 4/8] parallel-checkout: add tests for basic operations Matheus Tavares
2021-05-26 18:36 ` AIX failures on parallel checkout (new in v2.32.0-rc*) Ævar Arnfjörð Bjarmason
2021-05-26 22:01 ` Matheus Tavares Bernardino
2021-05-26 23:00 ` Junio C Hamano
2021-05-04 16:27 ` [PATCH v3 5/8] parallel-checkout: add tests related to path collisions Matheus Tavares
2021-05-04 16:27 ` [PATCH v3 6/8] t0028: extract encoding helpers to lib-encoding.sh Matheus Tavares
2021-05-04 16:27 ` [PATCH v3 7/8] parallel-checkout: add tests related to .gitattributes Matheus Tavares
2021-05-04 16:27 ` [PATCH v3 8/8] ci: run test round with parallel-checkout enabled Matheus Tavares
2021-05-05 13:57 ` [PATCH v3 0/8] Parallel Checkout (part 3) Derrick Stolee
2021-05-06 0:40 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56757f2b-f203-3014-dbad-e86c49d0d64b@gmail.com \
--to=stolee@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@jeffhostetler.com \
--cc=git@vger.kernel.org \
--cc=matheus.bernardino@usp.br \
/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.