From 2e74e404fc9b91beeeed9103d5f8337a230412e2 Mon Sep 17 00:00:00 2001 From: Filip Tehlar Date: Mon, 20 Mar 2017 13:11:25 +0100 Subject: Add statistics test Change-Id: If3d9e6c5f1d1737ecf9cf29d02860e37663a7121 Signed-off-by: Filip Tehlar --- .../vpp_lite_topo/scripts/vat/check_counters.py | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 tests/data_plane/vpp_lite_topo/scripts/vat/check_counters.py (limited to 'tests/data_plane/vpp_lite_topo/scripts/vat/check_counters.py') diff --git a/tests/data_plane/vpp_lite_topo/scripts/vat/check_counters.py b/tests/data_plane/vpp_lite_topo/scripts/vat/check_counters.py new file mode 100644 index 0000000..1bb9fdc --- /dev/null +++ b/tests/data_plane/vpp_lite_topo/scripts/vat/check_counters.py @@ -0,0 +1,68 @@ +# Script for checking LISP counters + +help_string = """ + Params: + vat_exec - VAT executable + vpp_prefix - shared vpp memory prefix + vat_path - VAT template file + vni + seid + deid + loc_rloc + rmt_rloc + pkt_count + bytes +""" + +import sys +import subprocess +import json + +def get_stat_entry(json, vni, seid, deid, loc_rloc, rmt_rloc): + if len (json) == 0: + return None + + for obj in json: + if obj['vni'] == int(vni) and\ + obj['seid'] == seid and\ + obj['deid'] == deid and\ + obj['lloc'] == loc_rloc and\ + obj['rloc'] == rmt_rloc: + return obj + + return None + + +def check_counters(vat_exec, vat_path, vpp_prefix, vni, seid, deid, loc_rloc, + rmt_rloc, pkt_count, total_bytes): + vat_file = vat_path + '/' + 'dump_stats.tpl' + out = subprocess.Popen([vat_exec, "chroot", "prefix", vpp_prefix, "json", "script", + "in", vat_file], stdout=subprocess.PIPE).communicate()[0] + + o = json.loads(out) + stat_entry = get_stat_entry(o, vni, seid, deid, loc_rloc, rmt_rloc) + + if stat_entry is None: + return False + + if stat_entry['pkt_count'] != int(pkt_count): + return False + if stat_entry['bytes'] != int(total_bytes): + return False + return True + + +if __name__ == "__main__": + if len(sys.argv) < 10: + raise Exception('expected 10 parameters: ' + help_string) + + if check_counters(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], + sys.argv[5], + sys.argv[6], + sys.argv[7], + sys.argv[8], + sys.argv[9], + sys.argv[10]): + sys.exit(0) + else: + sys.exit(1) -- cgit 1.2.3-korg