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