summaryrefslogtreecommitdiffstats
path: root/scripts/automation/regression
diff options
context:
space:
mode:
authorYaroslav Brustinov <ybrustin@cisco.com>2016-01-28 18:28:45 +0200
committerYaroslav Brustinov <ybrustin@cisco.com>2016-01-28 18:28:45 +0200
commitd4b2ae7ddbaae8660ddaff710bf4a5459ff0657f (patch)
treec807e85de28319d6a850a41d3fa63c35ac3a2407 /scripts/automation/regression
parent4715b86a6e165373e8b8b6d52095637a3882a942 (diff)
HLTAPI updates, aggregated results tests count print
Diffstat (limited to 'scripts/automation/regression')
-rwxr-xr-xscripts/automation/regression/aggregate_results.py20
-rwxr-xr-xscripts/automation/regression/hltapi_example.py74
-rwxr-xr-xscripts/automation/regression/stateless_example.py47
-rwxr-xr-xscripts/automation/regression/unit_tests/trex_general_test.py1
4 files changed, 95 insertions, 47 deletions
diff --git a/scripts/automation/regression/aggregate_results.py b/scripts/automation/regression/aggregate_results.py
index 0ef3b5af..5e0fadb3 100755
--- a/scripts/automation/regression/aggregate_results.py
+++ b/scripts/automation/regression/aggregate_results.py
@@ -17,6 +17,13 @@ ERROR_CATEGORY = 'Error'
def pad_tag(text, tag):
return '<%s>%s</%s>' % (tag, text, tag)
+def add_color_string(text, color, is_bold = False):
+ string = '<font color=%s>%s</font>' % (color, text)
+ if is_bold:
+ return pad_tag(string, 'b')
+ return string
+
+
def is_functional_test_name(testname):
#if testname.startswith(('platform_', 'misc_methods_', 'vm_', 'payload_gen_', 'pkt_builder_')):
# return True
@@ -316,6 +323,17 @@ if __name__ == '__main__':
test.attrib['classname'] = job
aggregated_root.append(test)
+ total_tests_count = int(aggregated_root.attrib.get('tests', 0))
+ error_tests_count = int(aggregated_root.attrib.get('errors', 0))
+ failure_tests_count = int(aggregated_root.attrib.get('failures', 0))
+ skipped_tests_count = int(aggregated_root.attrib.get('skip', 0))
+ passed_tests_count = total_tests_count - error_tests_count - failure_tests_count - skipped_tests_count
+ tests_count_string = 'Total: %s, ' % total_tests_count
+ tests_count_string += add_color_string('Passed: %s' % passed_tests_count, 'green', error_tests_count + failure_tests_count > 0) + ', '
+ tests_count_string += add_color_string('Error: %s' % error_tests_count, 'red', error_tests_count > 0) + ', '
+ tests_count_string += add_color_string('Failure: %s' % failure_tests_count, 'red', failure_tests_count > 0) + ', '
+ tests_count_string += add_color_string('Skipped: %s' % skipped_tests_count, 'blue')
+
##### save output xml
print('Writing output file: %s' % args.output_xmlfile)
@@ -373,6 +391,7 @@ if __name__ == '__main__':
total_time = int(time.time()) - start_time
html_output += add_th_td('Regression start:', datetime.datetime.fromtimestamp(start_time).strftime('%d/%m/%Y %H:%M:%S'))
html_output += add_th_td('Regression duration:', datetime.timedelta(seconds = total_time))
+ html_output += add_th_td('Tests count:', tests_count_string)
for key in trex_info_dict:
if key == 'Git SHA':
continue
@@ -490,6 +509,7 @@ if __name__ == '__main__':
total_time = int(time.time()) - start_time
mail_output += add_th_td('Regression start:', datetime.datetime.fromtimestamp(start_time).strftime('%d/%m/%Y %H:%M:%S'))
mail_output += add_th_td('Regression duration:', datetime.timedelta(seconds = total_time))
+ mail_output += add_th_td('Tests count:', tests_count_string)
for key in trex_info_dict:
if key == 'Git SHA':
continue
diff --git a/scripts/automation/regression/hltapi_example.py b/scripts/automation/regression/hltapi_example.py
new file mode 100755
index 00000000..750d7c2b
--- /dev/null
+++ b/scripts/automation/regression/hltapi_example.py
@@ -0,0 +1,74 @@
+#!/router/bin/python
+
+import outer_packages
+from client.trex_hltapi import CTRexHltApi
+import traceback
+import sys, time
+from pprint import pprint
+
+def check_response(res):
+ if res['status'] == 0:
+ print 'Encountered error:\n%s' % res['log']
+ sys.exit(1)
+
+if __name__ == "__main__":
+ try:
+ is_verbose = 2 if '--verbose' in sys.argv else 1
+ hlt_client = CTRexHltApi(verbose = is_verbose)
+
+ print 'Connecting...'
+ res = hlt_client.connect(device = 'csi-trex-04', port_list = [0], username = 'danklei', break_locks = True, reset = True)
+ check_response(res)
+ port_handle = res['port_handle']
+ print 'Connected.'
+
+ res = hlt_client.traffic_config('reset', port_handle = port_handle[:], ip_src_addr='1.1.1.1')
+ print res
+ check_response(res)
+
+ res = hlt_client.traffic_config('create', port_handle = port_handle[:], ip_src_addr='1.1.1.1')
+ print res
+ check_response(res)
+
+
+ res = hlt_client.traffic_config('create', port_handle = port_handle[0], ip_src_addr='2.2.2.2')
+ check_response(res)
+
+
+ res = hlt_client.get_stats()
+ res = hlt_client.traffic_config('modify', port_handle = port_handle[0], stream_id = 1, ip_src_addr='6.6.6.6')
+ check_response(res)
+ #for stream_id, stream_data in hlt_client.get_port_streams(0).iteritems():
+ # print '>>>>>>>>> %s: %s' % (stream_id, stream_data)
+
+
+ check_response(hlt_client.traffic_config('create', port_handle = port_handle[1], ip_src_addr='3.3.3.3'))
+ check_response(hlt_client.traffic_config('create', port_handle = port_handle[1], ip_src_addr='4.4.4.4'))
+ print '2'
+ check_response(htl_client.traffic_config('create', port_handle = port_handle[:], stream_id = 999, ip_src_addr='5.5.5.5'))
+ check_response(hlt_client.traffic_config('modify', port_handle = port_handle[0], stream_id = 1, ip_src_addr='6.6.6.6'))
+ print '3'
+ check_response(hlt_client.traffic_config('modify', port_handle = port_handle[1], stream_id = 1))
+
+# res = hlt_client.traffic_config('create', port_handle = port_handle[1])#, ip_src_addr='2000.2.2')
+# if res['status'] == 0:
+# fail(res['log'])
+
+ print 'got to running!'
+ check_response(hlt_client.traffic_control('run', port_handle = port_handle[1], mul = {'type': 'raw', 'op': 'abs', 'value': 10}, duration = 15))
+ for i in range(0, 15):
+ print '.',
+ time.sleep(1)
+
+ print 'stop the traffic!'
+ check_response(hlt_client.traffic_control('stop', port_handle = port_handle[1]))
+
+
+ except Exception as e:
+ print traceback.print_exc()
+ print e
+ raise
+ finally:
+ print 'Done.'
+ #if hlt_client.trex_client:
+ # res = hlt_client.teardown()
diff --git a/scripts/automation/regression/stateless_example.py b/scripts/automation/regression/stateless_example.py
deleted file mode 100755
index 93fb2703..00000000
--- a/scripts/automation/regression/stateless_example.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/router/bin/python
-
-import outer_packages
-from client.trex_hltapi import CTRexHltApi
-import traceback
-import sys, time
-
-def fail(reason):
- print 'Encountered error:\n%s' % reason
- sys.exit(1)
-
-if __name__ == "__main__":
- port_list = [0, 1]
- #port_list = 1
- try:
- print 'init'
- hlt_client = CTRexHltApi()
-
- print 'connecting'
- con = hlt_client.connect("localhost", port_list, "danklei", sync_port = 4501, async_port = 4500, break_locks=True, reset=True)#, port=6666)
- print 'connected?', hlt_client.connected
- if not hlt_client.trex_client or not hlt_client.connected:
- fail(con['log'])
- print 'connect result:', con
-
- res = hlt_client.traffic_config("create", 0)#, ip_src_addr="2000.2.2")
- print 'traffic_config result:', res
-
- res = hlt_client.traffic_config("create", 1)#, ip_src_addr="2000.2.2")
- print res
- print 'got to running!'
- #sys.exit(0)
- res = hlt_client.traffic_control("run", 1, mul = {'type': 'raw', 'op': 'abs', 'value': 1}, duration = 15)#, ip_src_addr="2000.2.2")
- print res
- time.sleep(2)
- res = hlt_client.traffic_control("stop", 1)#, ip_src_addr="2000.2.2")
- print res
-
-
-
- except Exception as e:
- raise
- finally:
- #pass
- if hlt_client.trex_client:
- res = hlt_client.cleanup_session(port_list)
- print res
diff --git a/scripts/automation/regression/unit_tests/trex_general_test.py b/scripts/automation/regression/unit_tests/trex_general_test.py
index 9bcccaab..170baf84 100755
--- a/scripts/automation/regression/unit_tests/trex_general_test.py
+++ b/scripts/automation/regression/unit_tests/trex_general_test.py
@@ -54,6 +54,7 @@ class CTRexScenario():
router_image = None
trex_version = None
scripts_path = None
+ benchmark = None
report_dir = 'reports'
# logger = None