File: coverage_helper.py

package info (click to toggle)
chromium-browser 41.0.2272.118-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 2,189,132 kB
  • sloc: cpp: 9,691,462; ansic: 3,341,451; python: 712,689; asm: 518,779; xml: 208,926; java: 169,820; sh: 119,353; perl: 68,907; makefile: 28,311; yacc: 13,305; objc: 11,385; tcl: 3,186; cs: 2,225; sql: 2,217; lex: 2,215; lisp: 1,349; pascal: 1,256; awk: 407; ruby: 155; sed: 53; php: 14; exp: 11
file content (99 lines) | stat: -rw-r--r-- 2,611 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/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/trusted/sel_universal', '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