def test_coverage_dump_file_valid(self): import tempfile payload = bytearray(b'PAYLOAD') handle, path = tempfile.mkstemp("test_file") mbed_coverage_api.coverage_dump_file(".", path, payload) with open(path, 'r') as f: read_data = f.read() self.assertEqual(read_data, payload.decode("utf-8", "ignore")) os.close(handle) os.remove(path)
def get_coverage_data(build_path, output): # Example GCOV output # [1456840876.73][CONN][RXD] {{__coverage_start;c:\Work\core-util/source/PoolAllocator.cpp.gcda;6164636772393034c2733f32...a33e...b9}} gt_logger.gt_log("checking for GCOV data...") re_gcov = re.compile(r"^\[(\d+\.\d+)\][^\{]+\{\{(__coverage_start);([^;]+);([^}]+)\}\}$") for line in output.splitlines(): m = re_gcov.search(line) if m: _, _, gcov_path, gcov_payload = m.groups() try: bin_gcov_payload = coverage_pack_hex_payload(gcov_payload) coverage_dump_file(build_path, gcov_path, bin_gcov_payload) except Exception as e: gt_logger.gt_log_err("error while handling GCOV data: " + str(e)) gt_logger.gt_log_tab("storing %d bytes in '%s'"% (len(bin_gcov_payload), gcov_path))