vitess.io/vitess@v0.16.2/misc/parse_cover.py (about) 1 #!/usr/bin/python 2 3 # Copyright 2019 The Vitess Authors. 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 17 # this is a small helper script to parse test coverage and display stats. 18 import re 19 import sys 20 21 coverage_pattern = re.compile(r"coverage: (\d+).(\d+)% of statements") 22 23 no_test_file_count = 0 24 coverage_count = 0 25 coverage_sum = 0.0 26 27 for line in sys.stdin: 28 print line, 29 sys.stdout.flush 30 31 if line.find('[no test files]') != -1: 32 no_test_file_count += 1 33 continue 34 35 m = coverage_pattern.search(line) 36 if m != None: 37 coverage_count += 1 38 coverage_sum += float(m.group(1) + "." + m.group(2)) 39 continue 40 41 directories_covered = coverage_count * 100 / (no_test_file_count + coverage_count) 42 average_coverage = coverage_sum / coverage_count 43 44 print "Directory test coverage: %u%%" % directories_covered 45 print "Average test coverage: %u%%" % int(average_coverage)