Osstest/TestSupport.pm | 4 ++++ 1 file changed, 4 insertions(+)
Expand the timeouts when the host is nested. The current algorithm
uses base_timeout * 2 ^ nesting_level.
This fixes the issues reported by the nested tests on elbling boxes:
http://logs.test-lab.xenproject.org/osstest/logs/149283/
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Osstest/TestSupport.pm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 1c13e2af..ff749a32 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -436,6 +436,7 @@ END
sub target_adjust_timeout ($$) {
my ($ho,$timeoutref) = @_; # $ho might be a $gho
+ my $nestinglvl = $ho->{NestingLevel} || $ho->{Host}{NestingLevel};
my $adjust = sub {
my ($factor, $what) = @_;
return unless defined $factor;
@@ -450,6 +451,9 @@ sub target_adjust_timeout ($$) {
$adjust->(guest_var($ho,$guest_var), "guest variable $guest_var");
}
$adjust->(get_target_property($ho,"TimeoutFactor"), "target TimeoutFactor");
+ if ($nestinglvl) {
+ $adjust->(1 << $nestinglvl, "nesting level");
+ }
}
#---------- running commands eg on targets ----------
--
2.26.0
Roger Pau Monne writes ("[PATCH] timeout: adjust timeout when running nested tests"):
> sub target_adjust_timeout ($$) {
> my ($ho,$timeoutref) = @_; # $ho might be a $gho
> + my $nestinglvl = $ho->{NestingLevel} || $ho->{Host}{NestingLevel};
I think this wannts to be // not ||. If you agree I will fix this up
and commit.
Since what this does otherwise is to take all baremetal hosts and give
them an empty Host hash due to autovivification.
> + if ($nestinglvl) {
> + $adjust->(1 << $nestinglvl, "nesting level");
> + }
I still think the use of << is very odd and I can't resist moaning
about it. But you're the patch author so I will let you choose the
style here.
Ian.
On Wed, Apr 01, 2020 at 05:45:21PM +0100, Ian Jackson wrote:
> Roger Pau Monne writes ("[PATCH] timeout: adjust timeout when running nested tests"):
> > sub target_adjust_timeout ($$) {
> > my ($ho,$timeoutref) = @_; # $ho might be a $gho
> > + my $nestinglvl = $ho->{NestingLevel} || $ho->{Host}{NestingLevel};
>
> I think this wannts to be // not ||. If you agree I will fix this up
> and commit.
Yes, I agree.
> Since what this does otherwise is to take all baremetal hosts and give
> them an empty Host hash due to autovivification.
>
> > + if ($nestinglvl) {
> > + $adjust->(1 << $nestinglvl, "nesting level");
> > + }
>
> I still think the use of << is very odd and I can't resist moaning
> about it. But you're the patch author so I will let you choose the
> style here.
Feel free to change to 2 ** $nestinglvl at commit, you are the
maintainer so it's important that you can read the code easily.
Thanks, Roger.
Roger Pau Monne writes ("Re: [PATCH] timeout: adjust timeout when running nested tests"):
> On Wed, Apr 01, 2020 at 05:45:21PM +0100, Ian Jackson wrote:
> > I think this wannts to be // not ||. If you agree I will fix this up
> > and commit.
>
> Yes, I agree.
Thanks, done and pushed.
> > Since what this does otherwise is to take all baremetal hosts and give
> > them an empty Host hash due to autovivification.
> >
> > > + if ($nestinglvl) {
> > > + $adjust->(1 << $nestinglvl, "nesting level");
> > > + }
> >
> > I still think the use of << is very odd and I can't resist moaning
> > about it. But you're the patch author so I will let you choose the
> > style here.
>
> Feel free to change to 2 ** $nestinglvl at commit, you are the
> maintainer so it's important that you can read the code easily.
I'll keep the version you tested rather than messing about with it...
Ian.
© 2016 - 2026 Red Hat, Inc.