I just performed a rebasing merge with the usual fixups afterwards. Please
find the result on the 'devel' branch of git://github.com/msysgit/git.
The tests are still running in my VM (it's now around t4015) but there are
two issues still: I have rare (read: non-repeatable) failures with t0025
and t0202 does not work at all.
In case somebody chose as resolution to stop watching TV and help the
msysGit effort instead, here is a good opportunity to do so! :-)
Ciao,
Johannes
> The tests are still running in my VM (it's now around t4015) but there are
> two issues still: I have rare (read: non-repeatable) failures with t0025
> and t0202 does not work at all.
BTW, are you using "prove" for testing? I've recent enabled it again as
it was broken due to some Perl dependencies, and it speeds up testing a lot!
--
Sebastian Schuberth
> The tests are still running in my VM (it's now around t4015) but there are
> two issues still: I have rare (read: non-repeatable) failures with t0025
> and t0202 does not work at all.
The problem with t0202 seems to be that /git/perl/Git/I18N.pm is in none
of the Perl module search paths. I'm not familiar enough with Perl to
say what's the best way to fix this.
--
Sebastian Schuberth
> BTW, are you using "prove" for testing? I've recent enabled it again as
> it was broken due to some Perl dependencies, and it speeds up testing a
> lot!
And I have *way* more test failing than you, for example all git-svn
tests, as it seems. I wonder whether this is related to me using the
Perl-based "prove" (and git-svn also being Perl), while you're probably
not using it.
--
Sebastian Schuberth
I believe we all use /share/msysGit/run-tests.sh which uses make to
run multiple parallel tests and even more usefully keeps the noise
level down so you can see the failed tests at the end easily.
>>> BTW, are you using "prove" for testing? I've recent enabled it again as
>>> it was broken due to some Perl dependencies, and it speeds up testing a
>>> lot!
>>
>> And I have *way* more test failing than you, for example all git-svn tests,
>> as it seems. I wonder whether this is related to me using the Perl-based
>> "prove" (and git-svn also being Perl), while you're probably not using it.
>
> I believe we all use /share/msysGit/run-tests.sh which uses make to
> run multiple parallel tests and even more usefully keeps the noise
> level down so you can see the failed tests at the end easily.
Thanks for reminding me of this script. I have far less tests failing with this, in particular my output is:
These tests failed: t0202-gettext-perl t5516-fetch-push t7406-submodule-update t7407-submodule-foreach
Unfinished tests: t9200-git-cvsexportcommit
--
Sebastian Schuberth
The last couple of releases have had no failures except for the t9200.
However, I have found that it is often useful to check each reported
failing file with 'cd t && make tNNNN' just to check it wasn't
something to do with the parallel make or timing. I suspect the t74*
ones are transient and if you retry just those they might pass.
Whether that means there remains some real issue or if it is truly a
side effect of the parallel make I don't know.
>> These tests failed: t0202-gettext-perl t5516-fetch-push t7406-submodule-update t7407-submodule-foreach
>> Unfinished tests: t9200-git-cvsexportcommit
>
> The last couple of releases have had no failures except for the t9200.
> However, I have found that it is often useful to check each reported
> failing file with 'cd t && make tNNNN' just to check it wasn't
> something to do with the parallel make or timing. I suspect the t74*
> ones are transient and if you retry just those they might pass.
> Whether that means there remains some real issue or if it is truly a
> side effect of the parallel make I don't know.
I ran the failed tests separately and they fail for real. However, it
seems only tests that use test_i18ncmp fail, which in turn might be
related to the missing I18N.pm Perl module that I've mentioned in my
other mail.
--
Sebastian Schuberth
Ah, "prove" is for testing! I did not know that. Is it easy to integrate
it into /share/msysGit/run-tests.sh?
Thanks!
Dscho
> Ah, "prove" is for testing! I did not know that. Is it easy to integrate
> it into /share/msysGit/run-tests.sh?
I don't know, but I think it makes no sense. "prove" is basically is a
wrapper to run tests in parallel (see t/README for more), and
run-tests.sh serves the same purpose. So to me, they're alternatives
with each its own features, and not something we should combine.
--
Sebastian Schuberth
On Fri, 6 Jan 2012, Sebastian Schuberth wrote:
Yes, my workflow is the same as Pat described: call run-tests.sh, do
something meaningful (read: different) for half a day (or in case of
yesterday, night), and then run the tests individually. Although I use "sh
tNNNN-* -i -v" to make sure that it stops when a test fails, and that I
have the full output. If that does not reveal what is the reason, I
usually call "sh -x tNNNN-* -i -v" which lists the shell commands that are
about to run, too.
In many cases, this makes the error go away.
Ciao,
Dscho
P.S.: I did not have a chance yet to look at the final result of the test
run.
On Fri, 6 Jan 2012, Sebastian Schuberth wrote:
Well, for me, run-tests is just the way it runs tests. And if prove is
faster than (cd /git/t && make -j5) then I'll be happy if run-tests uses
prove rather than make.
Ciao,
Dscho
>> > Ah, "prove" is for testing! I did not know that. Is it easy to integrate
>> > it into /share/msysGit/run-tests.sh?
>>
>> I don't know, but I think it makes no sense. "prove" is basically is a
>> wrapper to run tests in parallel (see t/README for more), and
>> run-tests.sh serves the same purpose. So to me, they're alternatives
>> with each its own features, and not something we should combine.
>
> Well, for me, run-tests is just the way it runs tests. And if prove is
> faster than (cd /git/t && make -j5) then I'll be happy if run-tests uses
> prove rather than make.
But why then not just use prove instead of tun-tests? prove already
has pretty nice formatted output, so there's almost nothing to do for
a run-tests script using prove. I guess you should just try out prove
before we go on with the discussion ;-)
--
Sebastian Schuberth
On Fri, 6 Jan 2012, Sebastian Schuberth wrote:
I just pushed a fix to our 'devel' branch:
https://github.com/msysgit/git/commit/c0e2b3c8f4c254025ad9cfb69f775604f5787c3d
The problem was that 5e9637c6 forgot to support non-MakeMaker-enabled
systems.
Ciao,
Dscho
>> > The tests are still running in my VM (it's now around t4015) but there are
>> > two issues still: I have rare (read: non-repeatable) failures with t0025
>> > and t0202 does not work at all.
>>
>> The problem with t0202 seems to be that /git/perl/Git/I18N.pm is in none of
>> the Perl module search paths. I'm not familiar enough with Perl to say what's
>> the best way to fix this.
>
> I just pushed a fix to our 'devel' branch:
>
> https://github.com/msysgit/git/commit/c0e2b3c8f4c254025ad9cfb69f775604f5787c3d
>
> The problem was that 5e9637c6 forgot to support non-MakeMaker-enabled
> systems.
Thanks! I can confirm this fixes t0202 for me.
--
Sebastian Schuberth
On Fri, 6 Jan 2012, Sebastian Schuberth wrote:
Okay, I did that. --color does not work, but otherwise: very nice! I would
still see a point, though, in replacing the contents of run-tests by the
one-liner "cd /git/t && prove --timer --jobs 15 --color ./t[0-9]*.sh" so
that I do not have to remember any options and do not have to retrain my
fingers to type anything else than /sh<Tab>ms<Tab>ru<Tab><Return> :-)
Ciao,
Dscho
>> But why then not just use prove instead of tun-tests? prove already
>> has pretty nice formatted output, so there's almost nothing to do for
>> a run-tests script using prove. I guess you should just try out prove
>> before we go on with the discussion ;-)
>
> Okay, I did that. --color does not work, but otherwise: very nice! I would
> still see a point, though, in replacing the contents of run-tests by the
> one-liner "cd /git/t && prove --timer --jobs 15 --color ./t[0-9]*.sh" so
> that I do not have to remember any options and do not have to retrain my
> fingers to type anything else than /sh<Tab>ms<Tab>ru<Tab><Return> :-)
Right. On the other hand prove does not give you such a nice summary
of failed / uncompleted tests like run-tests does.
Oh, and did for you also more test fail when using prove than when
using run-tests? If so, I believe we should leave run-tests as-is
until we've figured out why that is.
--
Sebastian Schuberth
On Fri, 6 Jan 2012, Johannes Schindelin wrote:
> [prove] --color does not work, but otherwise: very nice!
Correction: --color _does_ work, it just does not color the "ok" green as
run-tests still does. But that is just bikeshedding :-)
I'd be in favor of replacing the custom run-tests with that one-liner I
mentioned earlier: one thing less to maintain. Pat? Are you d'accord?
Ciao,
Dscho
On Fri, 6 Jan 2012, Sebastian Schuberth wrote:
> On Fri, Jan 6, 2012 at 21:18, Johannes Schindelin
> <Johannes....@gmx.de> wrote:
>
> >> But why then not just use prove instead of tun-tests? prove already
> >> has pretty nice formatted output, so there's almost nothing to do for
> >> a run-tests script using prove. I guess you should just try out prove
> >> before we go on with the discussion ;-)
> >
> > Okay, I did that. --color does not work, but otherwise: very nice! I
> > would still see a point, though, in replacing the contents of
> > run-tests by the one-liner "cd /git/t && prove --timer --jobs 15
> > --color ./t[0-9]*.sh" so that I do not have to remember any options
> > and do not have to retrain my fingers to type anything else than
> > /sh<Tab>ms<Tab>ru<Tab><Return> :-)
>
> Right. On the other hand prove does not give you such a nice summary of
> failed / uncompleted tests like run-tests does.
Hmm. I thought we can just do a
(cd test-results &&
grep -l -e "broken [^0]" -e "failed [^0]" *.counts |
sed 's/.counts$//')
But 1) there are also remnants of previous runs, and 2) it seems that the
tests called by prove do not store their results there.
Maybe we can do something with --state=hot,save and parse .prove?
> Oh, and did for you also more test fail when using prove than when using
> run-tests? If so, I believe we should leave run-tests as-is until we've
> figured out why that is.
I have to admit that I forgot about that. Yes, I will try to find out what
is happening.
One thing I saw that is real nice is that that intermittent failure t0025
was labeled as "Dubious, test returned 1 (stat 256, 0x100)". I still have
to find out what that means, but that's more information than I had before
;-)
Ciao,
Dscho
> I just pushed a fix to our 'devel' branch:
>
> https://github.com/msysgit/git/commit/c0e2b3c8f4c254025ad9cfb69f775604f5787c3d
>
> The problem was that 5e9637c6 forgot to support non-MakeMaker-enabled
> systems.
And I've just added Git/I18N.pm also to .gitignore (in msysgit.git):
https://github.com/msysgit/msysgit/commit/5d887ee7c8586bc6dc696b37ba58b3ce4916ed24
--
Sebastian Schuberth
> Maybe we can do something with --state=hot,save and parse .prove?
I just looked a prove's summary again. Although it's not as compact as
run-tests', it's good enough for me.
>> Oh, and did for you also more test fail when using prove than when using
>> run-tests? If so, I believe we should leave run-tests as-is until we've
>> figured out why that is.
>
> I have to admit that I forgot about that. Yes, I will try to find out what
> is happening.
>
> One thing I saw that is real nice is that that intermittent failure t0025
> was labeled as "Dubious, test returned 1 (stat 256, 0x100)". I still have
> to find out what that means, but that's more information than I had before
> ;-)
Yeah, the git-svn tests I see failing with prove are also "Dubious,
test returned 1 (stat 256, 0x100)".
--
Sebastian Schuberth
On Fri, 6 Jan 2012, Sebastian Schuberth wrote:
Good catch!
Thanks,
Dscho
I'll try it out and see. I really like run-tests for its summary. I
actually use it on unix too. But if we switch to prove I think
changing run-tests to call it properly will be the right way to go.
Ah, sorry about that. But why don't these systems support MakeMaker in
the first place?
I remember being told that at one point and the reason being something
that could probably be fixed now that we depend on perl 5.8.
> I just performed a rebasing merge with the usual fixups afterwards. Please
> find the result on the 'devel' branch of git://github.com/msysgit/git.
Now that upstream Git 1.7.8.3 is out, would you mind doing other
rebasing merge onto that?
--
Sebastian Schuberth
Done.
BTW I think that the problem with t7407 at least is due to the usage of
the '$path' variable in submodule foreach, which does not work since the
environment variable names in Windows are case-insensitive and $path is
mistaken for $PATH.
I recall that we had this issue before, but I don't recall the resolution.
Anyone?
Ciao,
Johannes
>> Now that upstream Git 1.7.8.3 is out, would you mind doing other rebasing
>> merge onto that?
>
> Done.
Thanks!
> BTW I think that the problem with t7407 at least is due to the usage of
> the '$path' variable in submodule foreach, which does not work since the
> environment variable names in Windows are case-insensitive and $path is
> mistaken for $PATH.
>
> I recall that we had this issue before, but I don't recall the resolution.
>
> Anyone?
I believe this has already been fixed by Karsten:
http://permalink.gmane.org/gmane.comp.version-control.msysgit/14048
Unfortunately, I'm unable to apply his path due to wrapped lines and
git am not recognizing the patch format.
Karsten, do you have this patch applied in a Git fork?
--
Sebastian Schuberth
In [1] you described a...
Small solution (only affects gettext): in git-submodule.sh,
replace all 'eval_gettext...$path' with 'modulepath=$path
eval_gettext...$modulepath'
I do not quite see where you want to go there. Is it easy enough to come
up with a small patch?
Ciao,
Dscho
Note that if this works for you, then only by accident because bash is
not POSIX compliant here: eval_gettext is a shell function, and in this
case, the variable assignment at the beginning of the command should
*not* be exported according to POSIX, but bash still does.
It may be suitable as a msysgit specific solution, but is not suitable
for upstream git.
-- Hannes
Ah, right. Then it's OK.
-- Hannes
Applied and pushed.
Thanks, both,
Dscho