On Thu, Jul 20, 2017 at 7:51 AM, Nick Coghlan <ncoghlan@gmail.com> wrote:
Hi folks,

While working on bootstrapping a new community sclo-python collection,
I ran into some readability problems with the way the SCL Python spec
file runs the test suite: it uses --verbose mode, which means there's
a lot of noisy output to sort through to find the actual failure when
something goes wrong.

Charalompos pointed out that since the SCL spec file is ultimately
derived from the Fedora one, Fedora would be the best place to file an
issue suggesting some changes, which I've now done:
https://bugzilla.redhat.com/show_bug.cgi?id=1473130

The main suggestion there is one that's a clear win: replace the
current "--verbose" with "-wW" instead, so that the tests are run in
non-verbose mode by default, but if one fails, not only will the test
suite print out any captured output, but it will also immediately
rerun the failed test in verbose mode.


+1, that sounds great.
 
However, I also noted some other possibilities that seem worth discussing:

* checking for refleaks means we can't run parallel tests across
multiple processes. If we were to move refleak testing out to an
integration test in Taskotron, then the tests could be run with the
"-j4" option, significantly reducing the time needed to run the %check
step


If it's possible to move this testing to taskotron, then it sounds ok to me.
 
* the `--failfast` option causes the tests to be aborted as soon as
one fails. While that doesn't make any difference in the success case,
it will mean faster turnaround cycles in the case where one fails. I'm
less sure of the value of this one, as the downside is that if you're
getting multiple failures, you only find out about them one at a time.


I'd suggest to not use this. Back when I was Python maintainer I used this option sometimes when updating Python and building locally, but for builds in Koji, you don't want to use it. What you want is to see logs of all the failed tests in Koji logs and then be able to work on the first, submit a build when you have a fix and *in the meanwhile* (which in terms of building Python can be couple dozen minutes) work to fix other bugs... And repeat that until you fix all. If you did use this flag, you'd have to build, fix one bug, submit a build, wait a long time, fix another bug, submit a build, wait a long time, fix another bug, etc.
 
* there's a `--slowest` flag in recent releases that lists the 10
slowest tests in a given run. As far as I know, it doesn't add much
overhead to the test execution process, and provides an indicator of
where to focus efforts if the goal is to make the tests more
efficient.


Yeah, I think improving the performance of the slowest tests could be gain for everyone, not just for Fedora.
 
Cheers,
Nick.

--
Nick Coghlan   |   ncoghlan@gmail.com   |   Brisbane, Australia
_______________________________________________
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-leave@lists.fedoraproject.org



--
Regards,
Slavek Kabrda