The total execution time is getting printed twice.
Once in the summary and the second time at the bottom of the test run.
We can remove the total execution time printed at the bottom of the
test run.
Otherwise looks good.
Also, can we have the option to print the total execution time only when
we use the --print-exec-time?
Currently we get the total execution time with/without the
--print-exect-time option.
Kaitlin Rupert wrote:
> # HG changeset patch
> # User Kaitlin Rupert <karupert(a)us.ibm.com>
> # Date 1254421148 25200
> # Node ID d7e6caafb254ada1c41307ed218e753f781cf512
> # Parent e627b9efe5ebdb776baef0c504706fb03d1ac0e0
> [TEST] #2 Add timestamps to main.py to calculate run time of tests
>
> Updates:
> -Add deliniation between mins, sec, etc.
> -Add total execution time to top of test report
>
> These changes allow the user to specify the --print-exec-time flag,
> which will
> print the execution time of each test. If this flag isn't specified, the
> total run time of the test is still printed.
>
> Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
>
> diff -r e627b9efe5eb -r d7e6caafb254
> suites/libvirt-cim/lib/XenKvmLib/reporting.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/reporting.py Thu Oct 01
> 10:37:39 2009 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/reporting.py Thu Oct 01
> 11:19:08 2009 -0700
> @@ -125,7 +125,9 @@
>
> fd = open(log_file, "r")
>
> + exec_time = "Unknown"
> run_output = ""
> +
> for line in fd.xreadlines():
> for type, val in rvals.iteritems():
> if type in line:
> @@ -133,11 +135,14 @@
> continue
> rvals[type] += 1
> tstr[type] += "%s" % line
> +
> + if line.find("Total test execution") >= 0:
> + exec_time = line run_output += line
>
> fd.close()
>
> - return rvals, tstr, run_output
> + return rvals, tstr, run_output, exec_time
>
> def build_report_body(rvals, tstr, div):
> results = ""
> @@ -168,13 +173,13 @@
>
> divider = "=================================================\n"
>
> - rvals, tstr, run_output = parse_run_output(log_file)
> + rvals, tstr, run_output, exec_time = parse_run_output(log_file)
>
> res, res_total, test_block = build_report_body(rvals, tstr, divider)
>
> - report = divider + heading + "\n" + divider + sys_env + divider +
> res \
> - + res_total + divider + test_block + "Full report:\n" \
> - + run_output
> + report = divider + heading + "\n" + divider + sys_env + exec_time \
> + + divider + res + res_total + divider + test_block \
> + + "Full report:\n" + run_output
>
> fd = open(log_file, "w")
> rc = fd.write(report)
> diff -r e627b9efe5eb -r d7e6caafb254 suites/libvirt-cim/main.py
> --- a/suites/libvirt-cim/main.py Thu Oct 01 10:37:39 2009 -0700
> +++ b/suites/libvirt-cim/main.py Thu Oct 01 11:19:08 2009 -0700
> @@ -22,6 +22,7 @@
> # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
> USA
> #
>
> +from time import time
> from optparse import OptionParser
> import os
> import sys
> @@ -64,6 +65,9 @@
> help="Duplicate the output to stderr")
> parser.add_option("--report", dest="report",
> help="Send report using mail info: --report=<recipient addr>")
> +parser.add_option("--print-exec-time", action="store_true", +
> dest="print_exec_time",
> + help="Print execution time of each test")
>
> TEST_SUITE = 'cimtest'
> CIMTEST_RCFILE = '%s/.cimtestrc' % os.environ['HOME']
> @@ -146,6 +150,30 @@
>
> return PASS
>
> +def print_exec_time(testsuite, exec_time, prefix=None):
> +
> + #Convert run time from seconds to hours
> + tmp = exec_time / (60 * 60)
> + h = int(tmp)
> +
> + #Subtract out hours and convert remainder to minutes
> + tmp = (tmp - h) * 60 + m = int(tmp)
> +
> + #Subtract out minutes and convert remainder to seconds
> + tmp = (tmp - m) * 60 + s = int(tmp)
> +
> + #Subtract out seconds and convert remainder to milliseconds
> + tmp = (tmp - s) * 1000
> + msec = int(tmp)
> +
> + if prefix is None:
> + prefix = " "
> +
> + testsuite.debug("%s %sh | %smin | %ssec | %smsec" %
> + (prefix, h, m, s, msec)) +
> def main():
> (options, args) = parser.parse_args()
> to_addr = None
> @@ -213,6 +241,8 @@
>
> print "\nTesting " + options.virt + " hypervisor"
>
> + test_run_time_total = 0
> +
> for test in test_list: testsuite.debug(div) t_path =
> os.path.join(TEST_SUITE, test['group'])
> @@ -222,13 +252,24 @@
> options.virt, dbg,
> options.t_url)
> cmd = cdto + ' && ' + ' ' + run
> + start_time = time()
> status, output = commands.getstatusoutput(cmd)
> + end_time = time()
>
> os_status = os.WEXITSTATUS(status)
>
> testsuite.print_results(test['group'], test['test'], os_status,
output)
>
> + exec_time = end_time - start_time
> + test_run_time_total = test_run_time_total + exec_time
> +
> + if options.print_exec_time:
> + print_exec_time(testsuite, exec_time, " Test execution time:")
> +
> testsuite.debug("%s\n" % div) + print_exec_time(testsuite,
> test_run_time_total, "Total test execution:")
> + testsuite.debug("\n") +
> testsuite.finish()
>
> status = cleanup_env(options.ip, options.virt)
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim(a)redhat.com
>
https://www.redhat.com/mailman/listinfo/libvirt-cim
--
Thanks and Regards,
Deepti B. Kalakeri
IBM Linux Technology Center
deeptik(a)linux.vnet.ibm.com