1ROBOT_LISTENER_API_VERSION = 2 2 3# callbacks 4def start_suite(name, attrs): 5 print("**** Starting suite '{}' with {} tests:{}".format(attrs["source"], attrs["totaltests"], attrs["tests"])) 6 7def end_suite(name, attrs): 8 print("**** Finished suite '{}' in {}ms: {}.".format(attrs["source"], attrs["elapsedtime"], attrs["statistics"])) 9 10def start_test(name, attrs): 11 print("+++++ Starting test '{}': ({}:{})".format(attrs["longname"], attrs["source"], attrs["lineno"])) 12 13def end_test(name, attrs): 14 print("+++++ Finished test '{}' in {}ms with status {}:{} ({}:{})".format(attrs["longname"], attrs["elapsedtime"], attrs["status"], attrs["message"], attrs["source"], attrs["lineno"])) 15 16def end_keyword(name, attrs): 17 if attrs["source"] == None or "renode-keywords.robot" in attrs["source"]: 18 return 19 20 print("{: <10} {: >6}ms {} {} ({}:{})".format(attrs["type"], attrs["elapsedtime"], attrs["kwname"], ' '.join(attrs["args"]), attrs["source"], attrs["lineno"])) 21