1#!/usr/bin/env python3 2# 3# Arm SCP/MCP Software 4# Copyright (c) 2022, Arm Limited and Contributors. All rights reserved. 5# 6# SPDX-License-Identifier: BSD-3-Clause 7# 8import os 9import zipfile 10 11import re 12 13""" 14Filters out test and mock code from coverage report so that 15only actual SCP code is evaluated 16""" 17 18Filename = "scp_v2_unit_test_coverage.info" 19OutFileName = "scp_v2_unit_test_coverage_filtered.info" 20 21STARTER = "SF:" 22regexes = [re.compile(r"unit_test/"), re.compile(r"module/.{1,50}/test"), 23 re.compile(r"contrib/cmock/")] 24 25ENDED = "end_of_record" 26 27 28def get_filtered_info(): 29 within = False 30 filter = False 31 dump_lines = [] 32 33 with open(OutFileName, "w") as fd: 34 with open(Filename, "r") as fd_in: 35 for line in fd_in.readlines(): 36 37 if STARTER in line: 38 within = True 39 40 if any(regex.search(line) for regex in regexes): 41 filter = True 42 43 if within or "TN:" in line: 44 dump_lines.append(line) 45 46 if ENDED in line: 47 if not filter: 48 fd.writelines(dump_lines) 49 50 dump_lines = [] 51 within = False 52 filter = False 53 54 55if __name__ == "__main__": 56 get_filtered_info() 57