[Libvirt-cim] [PATCH] [TEST] #2 Add timestamps to main.py to calculate run time of tests

Deepti B Kalakeri deeptik at linux.vnet.ibm.com
Tue Oct 6 11:52:43 UTC 2009



Deepti B Kalakeri wrote:
> 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 at 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 at 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 at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvirt-cim
>

-- 
Thanks and Regards,
Deepti B. Kalakeri
IBM Linux Technology Center
deeptik at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list