1# -*- python -*-
2# Crocodile config file for Chromium - settings common to all platforms
3#
4# This should be speicified before the platform-specific config, for example:
5#       croc -c chrome_common.croc -c linux/chrome_linux.croc
6
7{
8  # List of root directories, applied in order
9  'roots' : [
10    # Sub-paths we specifically care about and want to call out
11    {
12      'root' : '_/src',
13      'altname' : 'CHROMIUM',
14    },
15  ],
16
17  # List of rules, applied in order
18  # Note that any 'include':0 rules here will be overridden by the 'include':1
19  # rules in the platform-specific configs.
20  'rules' : [
21    # Don't scan for executable lines in uninstrumented C++ header files
22    {
23      'regexp' : '.*\\.(h|hpp)$',
24      'add_if_missing' : 0,
25    },
26
27    # Groups
28    {
29      'regexp' : '',
30      'group' : 'source',
31    },
32    {
33      'regexp' : '.*_(test|unittest|uitest|browsertest)\\.',
34      'group' : 'test',
35    },
36
37    # Languages
38    {
39      'regexp' : '.*\\.(c|h)$',
40      'language' : 'C',
41    },
42    {
43      'regexp' : '.*\\.(cc|cpp|hpp)$',
44      'language' : 'C++',
45    },
46
47    # Files/paths to include.  Specify these before the excludes, since rules
48    # are in order.
49    {
50      'regexp' : '^CHROMIUM/(base|media|net|printing|remoting|chrome|content|webkit/glue|native_client)/',
51      'include' : 1,
52    },
53    # Don't include subversion or mercurial SCM dirs
54    {
55      'regexp' : '.*/(\\.svn|\\.hg)/',
56      'include' : 0,
57    },
58    # Don't include output dirs
59    {
60      'regexp' : '.*/(Debug|Release|out|xcodebuild)/',
61      'include' : 0,
62    },
63    # Don't include third-party source
64    {
65      'regexp' : '.*/third_party/',
66      'include' : 0,
67    },
68    # We don't run the V8 test suite, so we don't care about V8 coverage.
69    {
70      'regexp' : '.*/v8/',
71      'include' : 0,
72    },
73  ],
74
75  # Paths to add source from
76  'add_files' : [
77    'CHROMIUM'
78  ],
79
80  # Statistics to print
81  'print_stats' : [
82    {
83      'stat' : 'files_executable',
84      'format' : '*RESULT FilesKnown: files_executable= %d files',
85    },
86    {
87      'stat' : 'files_instrumented',
88      'format' : '*RESULT FilesInstrumented: files_instrumented= %d files',
89    },
90    {
91      'stat' : '100.0 * files_instrumented / files_executable',
92      'format' : '*RESULT FilesInstrumentedPercent: files_instrumented_percent= %g percent',
93    },
94    {
95      'stat' : 'lines_executable',
96      'format' : '*RESULT LinesKnown: lines_known= %d lines',
97    },
98    {
99      'stat' : 'lines_instrumented',
100      'format' : '*RESULT LinesInstrumented: lines_instrumented= %d lines',
101    },
102    {
103      'stat' : 'lines_covered',
104      'format' : '*RESULT LinesCoveredSource: lines_covered_source= %d lines',
105      'group' : 'source',
106    },
107    {
108      'stat' : 'lines_covered',
109      'format' : '*RESULT LinesCoveredTest: lines_covered_test= %d lines',
110      'group' : 'test',
111    },
112    {
113      'stat' : '100.0 * lines_covered / lines_executable',
114      'format' : '*RESULT PercentCovered: percent_covered= %g percent',
115    },
116    {
117      'stat' : '100.0 * lines_covered / lines_executable',
118      'format' : '*RESULT PercentCoveredSource: percent_covered_source= %g percent',
119      'group' : 'source',
120    },
121    {
122      'stat' : '100.0 * lines_covered / lines_executable',
123      'format' : '*RESULT PercentCoveredTest: percent_covered_test= %g percent',
124      'group' : 'test',
125    },
126  ],
127}
128