Re: [PATCH 1/1] fetch: let --jobs=<n> parallelize --multiple, too
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Oct 4, 2019, 22:03 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1910042356450.46@tvgsbejvaqbjf.bet>
- In-Reply-To
- <xmqqftk9870h.fsf@gitster-ct.c.googlers.com>
Hi Junio,
On Fri, 4 Oct 2019, Junio C Hamano wrote:
Show 26 quoted lines
> "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
> writes:
>
> > +test_expect_success 'parallel' '
> > + git remote add one ./bogus1 &&
> > + git remote add two ./bogus2 &&
> > +
> > + test_must_fail env GIT_TRACE="$PWD/trace" \
> > + git fetch --jobs=2 --multiple one two 2>err &&
> > + grep "2 tasks" trace &&
>
> I think this one expects to match this in run-command.c:
>
> trace_printf("run_processes_parallel: preparing to run up to %d tasks", n);
>
> > + grep "one.*128" err &&
> > + grep "two.*128" err
>
> and these expect to match this in fetch.c
>
> strbuf_addf(out, _("could not fetch '%s' (exit code: %d)\n"),
>
> It would have been nice to fellow contributors, if the grep patterns
> were written a bit more tightly. It would allow people who debug
> test failure to more easily identify which message the patterns are
> trying to catch.This is a two-edged sword: when those messages change (for whatever reason), the regression test will fail, too, but it actually wants to test the parallel fetch, not the trace message of `run_processes_parallel`.
So I tried to prevent such an unactionable regression test failure. But I see your reasoning, and I now thought about it and consider those error messages to be rather stable.
Will fix.
> In any case, the latter two needs to be guarded against > gettext-poison, I would think. Without addressing the vagueness of > the pattern, at least the following needs to be squashed to help the > CI.
Indeed. I missed this because the GitGitGadget PR build was all green. My guess is that I messed up the definition of that PR build (it is _not_ what's in `azure-pipelines.yml` because that would not work correctly when PRs target older commits). I _think_ I fixed it by setting `export GIT_TEST_GETTEXT_POISON=true` explicitly (previously I only set the `jobname`, expecting `ci/run-build-and-tests.sh` to pick up on that.
Thanks, Dscho
Show 26 quoted lines
> > Thanks. > > --- > t/t5514-fetch-multiple.sh | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/t/t5514-fetch-multiple.sh b/t/t5514-fetch-multiple.sh > index cce829b989..33f5220a53 100755 > --- a/t/t5514-fetch-multiple.sh > +++ b/t/t5514-fetch-multiple.sh > @@ -190,8 +190,8 @@ test_expect_success 'parallel' ' > test_must_fail env GIT_TRACE="$PWD/trace" \ > git fetch --jobs=2 --multiple one two 2>err && > grep "2 tasks" trace && > - grep "one.*128" err && > - grep "two.*128" err > + test_i18ngrep "one.*128" err && > + test_i18ngrep "two.*128" err > ' > > test_done > -- > 2.23.0-686-g3bf927a9c0 > >