# -*- python -*-
# Crocodile config file for Chrome Frame.
# Parsed by:
# http://src.chromium.org/viewvc/chrome/trunk/src/tools/code_coverage/croc.py?view=markup

{
  # List of root directories, applied in order
  'roots' : [
    # Sub-paths we specifically care about and want to call out
    {
      'root' : '_/src',
      'altname' : 'CHROMIUM',
    },
  ],

  # List of rules, applied in order
  # Note that any 'include':0 rules here will be overridden by the 'include':1
  # rules in the platform-specific configs.
  'rules' : [
    # Don't scan for executable lines in uninstrumented C++ header files
    {
      'regexp' : '.*\\.(h|hpp)$',
      'add_if_missing' : 0,
    },

    # Groups
    {
      'regexp' : '',
      'group' : 'source',
    },
    {
      'regexp' : '.*_(test|unittest)\\.',
      'group' : 'test',
    },

    # Languages
    {
      'regexp' : '.*\\.(c|h)$',
      'language' : 'C',
    },
    {
      'regexp' : '.*\\.(cc|cpp|hpp)$',
      'language' : 'C++',
    },

    # Files/paths to include.  Specify these before the excludes, since rules
    # are in order.
    {
      'regexp' : '^CHROMIUM/chrome_frame/',
      'include' : 1,
    },
    # Don't include subversion or mercurial SCM dirs
    {
      'regexp' : '.*/(\\.svn|\\.hg)/',
      'include' : 0,
    },
    # Don't include output dirs
    {
      'regexp' : '.*/(Debug|Release|debug|release|sconsbuild|out|xcodebuild)/',
      'include' : 0,
    },
    # Don't include third-party source
    {
      'regexp' : '.*/third_party/.*',
      'include' : 0,
    },
  ],

  # Paths to add source from
  'add_files' : [
    'CHROMIUM'
  ],

  # Statistics to print
  'print_stats' : [
    {
      'stat' : 'files_executable',
      'format' : '*RESULT FilesKnown: files_executable= %d files',
    },
    {
      'stat' : 'files_instrumented',
      'format' : '*RESULT FilesInstrumented: files_instrumented= %d files',
    },
    {
      'stat' : '100.0 * files_instrumented / files_executable',
      'format' : '*RESULT FilesInstrumentedPercent: '
                 'files_instrumented_percent= %g',
    },
    {
      'stat' : 'lines_executable',
      'format' : '*RESULT LinesKnown: lines_known= %d lines',
    },
    {
      'stat' : 'lines_instrumented',
      'format' : '*RESULT LinesInstrumented: lines_instrumented= %d lines',
    },
    {
      'stat' : 'lines_covered',
      'format' : '*RESULT LinesCoveredSource: lines_covered_source= %d lines',
      'group' : 'source',
    },
    {
      'stat' : 'lines_covered',
      'format' : '*RESULT LinesCoveredTest: lines_covered_test= %d lines',
      'group' : 'test',
    },
    {
      'stat' : '100.0 * lines_covered / lines_executable',
      'format' : '*RESULT PercentCovered: percent_covered= %g',
    },
    {
      'stat' : '100.0 * lines_covered / lines_executable',
      'format' : '*RESULT PercentCoveredSource: percent_covered_source= %g',
      'group' : 'source',
    },
    {
      'stat' : '100.0 * lines_covered / lines_executable',
      'format' : '*RESULT PercentCoveredTest: percent_covered_test= %g',
      'group' : 'test',
    },
  ],
}
