+ return (True, test_results)
+ if program[u"name"] == u"vpp_echo":
+ if u"JSON stats" in program_stdout and \
+ u'"has_failed": "0"' in program_stdout:
+ json_start = program_stdout.find(u"{")
+ json_end = program_stdout.find(u',\n "closing"')
+ json_results = f"{program_stdout[json_start:json_end]}\n}}"
+ program_json = json.loads(json_results)
+ export_hoststack_results(
+ bandwidth=program_json["rx_bits_per_second"],
+ duration=program_json["time"]
+ )
+ else:
+ test_results += u"Invalid test data output!\n" + program_stdout
+ return (True, test_results)
+ elif program[u"name"] == u"iperf3":
+ test_results += program_stdout
+ program_json = json.loads(program_stdout)[u"intervals"][0][u"sum"]
+ try:
+ retransmits = program_json["retransmits"]
+ except(KeyError):
+ retransmits = None
+ export_hoststack_results(
+ bandwidth=program_json["bits_per_second"],
+ duration=program_json["seconds"],
+ retransmits=retransmits
+ )
+ else:
+ test_results += u"Unknown HostStack Test Program!\n" + \
+ program_stdout
+ return (True, program_stdout)
+ return (False, json.dumps(program_json))