On Thu, Sep 10, 2020 at 04:18:10PM +0200, Thomas Huth wrote:
> On 10/09/2020 12.37, Yonggang Luo wrote:
> > This reverts commit 45f7b7b9f38f5c4d1529a37c93dedfc26a231bba
> > ("cirrus.yml: Split FreeBSD job into two parts").
> >
> > freebsd 1 hour limit not hit anymore
> >
> > I think we going to a wrong direction, I think there is some tests a stall
> > the test runner,
> > please look at
> > https://cirrus-ci.com/task/5110577531977728
> > When its running properly, the consumed time are little, but when tests
> > running too long,
> > look at the cpu usage, the cpu usage are nearly zero. doesn't consuming
> > time.
> >
> > And look at
> > https://cirrus-ci.com/task/6119341601062912
> >
> > If the tests running properly, the time consuming are little
> > We should not hide the error by split them
>
> Ok, but before we merge this patch, I'd like to understand (and fix if
> necessary) what is/was causing the slowdowns. Otherwise we'll continue
> to see failing CI runs, which is very annoying.
I think we need the test harness to print out the time duration for
each test in order to stand a chance of find the slow one.
A hack like this could be sufficient:
diff --git a/scripts/mtest2make.py b/scripts/mtest2make.py
index 9cbb2e374d..9103ae65b9 100644
--- a/scripts/mtest2make.py
+++ b/scripts/mtest2make.py
@@ -20,7 +20,7 @@ print('''
SPEED = quick
# $1 = environment, $2 = test command, $3 = test name, $4 = dir
-.test-human-tap = $1 $(if $4,(cd $4 && $2),$2) < /dev/null |
./scripts/tap-driver.pl --test-name="$3" $(if $(V),,--show-failures-only)
+.test-human-tap = export then=`date +%s` ; $1 $(if $4,(cd $4 && $2),$2) <
/dev/null | ./scripts/tap-driver.pl --test-name="$3" $(if
$(V),,--show-failures-only) ; export now=`date +%s` ; delta=`expr $$now -
$$then` ; $(if $(V),echo "TIME $$delta seconds",true)
.test-human-exitcode = $1 $(PYTHON) scripts/test-driver.py $(if $4,-C$4) $(if
$(V),--verbose) -- $2 < /dev/null
.test-tap-tap = $1 $(if $4,(cd $4 && $2),$2) < /dev/null | sed "s/^[a-z][a-z]*
[0-9]*/& $3/" || true
.test-tap-exitcode = printf "%s\\n" 1..1 "`$1 $(if $4,(cd $4 && $2),$2) <
/dev/null > /dev/null || echo "not "`ok 1 $3"
not sure if there is a nicer way todo this but itworks ok for make check-unit
at least
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|