make test: Add exception handling around subprocess.
This cleans up exception catching to identify oserrors. By raising the
specific exception closer to the offending call, we get additional stack history
and can add clearer error logging to assist in troubleshooting.
Change-Id: I592e4d46844b822a816485bf54910f8daed92088
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
diff --git a/test/test_vcl.py b/test/test_vcl.py
index 0901712..0a971a5 100644
--- a/test/test_vcl.py
+++ b/test/test_vcl.py
@@ -276,9 +276,20 @@
try:
subprocess.check_output(['iperf3', '-v'])
except subprocess.CalledProcessError:
- self.logger.error("WARNING: 'iperf3' is not installed,")
+ self.logger.error(
+ "WARNING: Subprocess returned non-0 running 'iperf3 -v")
self.logger.error(" 'test_ldp_cut_thru_iperf3' not run!")
return
+ except OSError as e:
+ self.logger.error(
+ "WARNING: Subprocess returned with OS error (%s) %s\n"
+ " 'iperf3' is likely not installed,",
+ e.errno, e.strerror)
+ self.logger.error(" 'test_ldp_cut_thru_iperf3' not run!")
+ return
+ except Exception:
+ self.logger.exception(
+ "Subprocess returned non-0 running 'iperf3 -v")
self.timeout = self.client_iperf3_timeout
self.cut_thru_test("iperf3", self.server_iperf3_args,
@@ -652,6 +663,14 @@
self.logger.error(
" 'test_ldp_thru_host_stack_iperf3' not run!")
return
+ except OSError as e:
+ self.logger.error("WARNING: 'iperf3' is not installed,")
+ self.logger.error(" 'test' not run!")
+ return
+ except Exception as e:
+ self.logger.error("WARNING: 'iperf3' unexpected error,")
+ self.logger.error(" 'test' not run!")
+ return
self.timeout = self.client_iperf3_timeout
self.thru_host_stack_test("iperf3", self.server_iperf3_args,