blob: 3b30974c4c7432d0975d9ee83e448dcbe60743fd [file] [log] [blame]
#!/usr/bin/python
# Copyright (c) 2011 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
#
# CoverageHelper
#
# The CoverageHelper is an object which defines lists used by the coverage
# scripts for grouping or filtering source by path, as well as filtering sources
# by name.
class CoverageHelper(object):
def __init__(self):
self.ignore_set = self.Ignore()
self.path_filter = self.Filter()
self.groups = self.Groups()
#
# Return a list of fully qualified paths for the directories availible
# at the input path specified.
#
def GetDirList(self, startpath):
paths = []
realpath = os.path.realpath(startpath)
for name in os.listdir(realpath):
path = os.path.join(realpath, name)
if os.path.isdir(path):
paths.append(path)
return paths
#
# Set of results to ignore by path.
#
def Filter(self):
filters = ['src/third_party/valgrind', 'src/tools']
return set([os.path.realpath(path) for path in filters])
#
# Set of files to ignore because they are in the TCB but used by the
# validator.
#
def Ignore(self):
return set([
'cpu_x86_test.c',
'defsize64.c',
'lock_insts.c',
'lock_insts.h',
'long_mode.c',
'long_mode.h',
'nacl_illegal.c',
'nacl_illegal.h',
'nc_read_segment.c',
'nc_read_segment.h',
'nc_rep_prefix.c',
'nc_rep_prefix.h',
'ncdecodeX87.c',
'ncdecode_OF.c',
'ncdecode_forms.c',
'ncdecode_forms.h',
'ncdecode_onebyte.c',
'ncdecode_sse.c',
'ncdecode_st.c',
'ncdecode_st.h',
'ncdecode_table.c',
'ncdecode_tablegen.c',
'ncdecode_tablegen.h',
'ncdecode_tests.c',
'ncdis.c',
'ncdis_segments.c',
'ncdis_segments.h',
'ncdis_util.c',
'ncdis_util.h',
'ncenuminsts.c',
'ncenuminsts.h',
'ncval.c',
'ncval_driver.c',
'ncval_driver.h',
'ncval_tests.c',
'ze64.h',
'zero_extends.c',
'zero_extends.h',
])
#
# Set of results to group by path.
#
def Groups(self):
groups = []
groups.append(os.path.realpath('scons-out'))
groups.append(os.path.realpath('src/include'))
groups.append(os.path.realpath('src/tools'))
groups.extend(self.GetDirList('src/trusted'))
groups.extend(self.GetDirList('src/shared'))
groups.extend(self.GetDirList('src/third_party'))
groups.extend(self.GetDirList('..'))
return groups