Re: [Xen-devel] [OSSTEST PATCH 23/26] Timeouts: Introduce target_adjust_timeout

2015-09-21 Thread Ian Campbell
On Fri, 2015-09-18 at 18:50 +0100, Ian Jackson wrote:
> This function is now called for almost every timeout.
> 
> Specifically, it is called in the cases in TestSupport where a guest-
> or host-related timeout is passed from code which has a $ho or $gho,
> to code which does not: all callers of poll_loop, and tcmd.
> 
> Currently the function is a no-op.  Its existence and use will allow
> us to introduce various provocations for adjusting timeouts, of which
> I have one planned.
> 
> Signed-off-by: Ian Jackson 

Acked-by: Ian Campbell 


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


[Xen-devel] [OSSTEST PATCH 23/26] Timeouts: Introduce target_adjust_timeout

2015-09-18 Thread Ian Jackson
This function is now called for almost every timeout.

Specifically, it is called in the cases in TestSupport where a guest-
or host-related timeout is passed from code which has a $ho or $gho,
to code which does not: all callers of poll_loop, and tcmd.

Currently the function is a no-op.  Its existence and use will allow
us to introduce various provocations for adjusting timeouts, of which
I have one planned.

Signed-off-by: Ian Jackson 
---
 Osstest/TestSupport.pm |   14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 0afaeab..f1f900e 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -310,6 +310,10 @@ END
 return $value;
 }
 
+sub target_adjust_timeout ($$) {
+my ($ho,$timeoutref) = @_; # $ho might be a $gho
+}
+
 #-- running commands eg on targets --
 
 sub cmd {
@@ -608,6 +612,7 @@ sub target_ping_check_up ($) { return 
target_ping_check_core(@_,0); }
 
 sub target_await_down ($$) {
 my ($ho,$timeout) = @_;
+target_adjust_timeout($ho,\$timeout);
 poll_loop($timeout,5,'reboot-down', sub {
 return target_ping_check_down($ho);
 });
@@ -616,6 +621,7 @@ sub target_await_down ($$) {
 sub tcmd { # $tcmd will be put between '' but not escaped
 my ($stdout,$user,$ho,$tcmd,$timeout,$extrasshopts) = @_;
 $timeout=30 if !defined $timeout;
+target_adjust_timeout($ho,\$timeout);
 tcmdex($timeout,$stdout,
'ssh', sshopts(), @{ $extrasshopts || [] },
sshuho($user,$ho), $tcmd);
@@ -1018,7 +1024,9 @@ sub common_toolstack ($) {
 sub host_reboot ($) {
 my ($ho) = @_;
 target_reboot($ho);
-poll_loop(40,2, 'reboot-confirm-booted', sub {
+my $timeout = 40;
+target_adjust_timeout($ho,\$timeout);
+poll_loop($timeout,2, 'reboot-confirm-booted', sub {
 my $output;
 if (!eval {
 $output= target_cmd_output($ho, <{Guest}", sub {
 my $st= guest_get_state($ho,$gho);
 return undef if $st eq $wait_st;
@@ -1850,6 +1859,7 @@ sub guest_checkrunning ($$) {
 sub guest_await_dhcp_tcp ($$) {
 my ($gho,$timeout) = @_;
 guest_find_tcpcheckport($gho);
+target_adjust_timeout($gho,\$timeout);
 poll_loop($timeout,1,
   "guest $gho->{Name} ".visible_undef($gho->{Ether}).
  " $gho->{TcpCheckPort}".
@@ -1925,6 +1935,7 @@ sub target_tcp_check ($$) {
 
 sub await_tcp ($$$) {
 my ($maxwait,$interval,$ho) = @_;
+target_adjust_timeout($ho,\$maxwait);
 poll_loop($maxwait,$interval,
   "await tcp $ho->{Name} $ho->{TcpCheckPort}",
   sub {
@@ -2106,6 +2117,7 @@ sub await_webspace_fetch_byleaf ($) {
 my ($maxwait,$interval,$logtailer, $ho, $url) = @_;
 my $leaf= $url;
 $leaf =~ s,.*/,,;
+target_adjust_timeout($ho,\$maxwait);
 poll_loop($maxwait,$interval, "fetch $leaf", sub {
 my ($line, $last);
 $last= '(none)';
-- 
1.7.10.4


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel