parameters: (sourcefile_path, cflags, config)
return_statement: return {'proc': process,
            'cmdline': ' '.join(cmdline),
            'name': name,
            'suite_name': config['suite_name'],
            'terminate_timeout': now + NCTEST_TERMINATE_TIMEOUT_SEC,
            'kill_timeout': now + NCTEST_KILL_TIMEOUT_SEC,
            'started_at': now,
            'aborted_at': 0,
            'finished_at': 0,
            'expectations': expectations}
docstring: Start one negative compile test.
  
    Args:
      sourcefile_path: The path to the source file.
      cflags: A string with all the CFLAGS to give to gcc. This string will be
              split by shelex so be careful with escaping.
      config: A dictionary describing the test.  See ExtractTestConfigs
        for a description of the config format.
  
    Returns:
      A dictionary containing all the information about the started test. The
      fields in the dictionary are as follows:
        { 'proc': A subprocess object representing the compiler run.
          'cmdline': The executed command line.
          'name': The name of the test.
          'suite_name': The suite name to use when generating the gunit test
                        result.
          'terminate_timeout': The timestamp in seconds since the epoch after
                               which the test should be terminated.
          'kill_timeout': The timestamp in seconds since the epoch after which
                          the test should be given a hard kill signal.
          'started_at': A timestamp in seconds since the epoch for when this test
                        was started.
          'aborted_at': A timestamp in seconds since the epoch for when this test
                        was aborted.  If the test completed successfully,
                        this value is 0.
          'finished_at': A timestamp in seconds since the epoch for when this
                         test was successfully complete.  If the test is aborted,
                         or running, this value is 0.
          'expectations': A dictionary with the test expectations. See
                          ParseExpectation() for the structure.
          }
docstring_summary: Start one negative compile test.
docstring_tokens: Start one negative compile test .
function: def StartTest(sourcefile_path, cflags, config):
    """Start one negative compile test.
  
    Args:
      sourcefile_path: The path to the source file.
      cflags: A string with all the CFLAGS to give to gcc. This string will be
              split by shelex so be careful with escaping.
      config: A dictionary describing the test.  See ExtractTestConfigs
        for a description of the config format.
  
    Returns:
      A dictionary containing all the information about the started test. The
      fields in the dictionary are as follows:
        { 'proc': A subprocess object representing the compiler run.
          'cmdline': The executed command line.
          'name': The name of the test.
          'suite_name': The suite name to use when generating the gunit test
                        result.
          'terminate_timeout': The timestamp in seconds since the epoch after
                               which the test should be terminated.
          'kill_timeout': The timestamp in seconds since the epoch after which
                          the test should be given a hard kill signal.
          'started_at': A timestamp in seconds since the epoch for when this test
                        was started.
          'aborted_at': A timestamp in seconds since the epoch for when this test
                        was aborted.  If the test completed successfully,
                        this value is 0.
          'finished_at': A timestamp in seconds since the epoch for when this
                         test was successfully complete.  If the test is aborted,
                         or running, this value is 0.
          'expectations': A dictionary with the test expectations. See
                          ParseExpectation() for the structure.
          }
    """
    # TODO(ajwong): Get the compiler from gyp.
    cmdline = [os.path.join(os.path.dirname(os.path.realpath(__file__)),
                            '../third_party/llvm-build/Release+Asserts/bin',
                            'clang++')]
    cmdline.extend(shlex.split(cflags))
    name = config['name']
    expectations = config['expectations']
    if expectations is not None:
      cmdline.append('-D%s' % name)
    cmdline.extend(['-std=c++11', '-o', '/dev/null', '-c', '-x', 'c++',
                    sourcefile_path])
  
    process = subprocess.Popen(cmdline, stdout=subprocess.PIPE,
                               stderr=subprocess.PIPE)
    now = time.time()
    return {'proc': process,
            'cmdline': ' '.join(cmdline),
            'name': name,
            'suite_name': config['suite_name'],
            'terminate_timeout': now + NCTEST_TERMINATE_TIMEOUT_SEC,
            'kill_timeout': now + NCTEST_KILL_TIMEOUT_SEC,
            'started_at': now,
            'aborted_at': 0,
            'finished_at': 0,
            'expectations': expectations}
function_tokens: def StartTest ( sourcefile_path , cflags , config ) : # TODO(ajwong): Get the compiler from gyp. cmdline = [ os . path . join ( os . path . dirname ( os . path . realpath ( __file__ ) ) , '../third_party/llvm-build/Release+Asserts/bin' , 'clang++' ) ] cmdline . extend ( shlex . split ( cflags ) ) name = config [ 'name' ] expectations = config [ 'expectations' ] if expectations is not None : cmdline . append ( '-D%s' % name ) cmdline . extend ( [ '-std=c++11' , '-o' , '/dev/null' , '-c' , '-x' , 'c++' , sourcefile_path ] ) process = subprocess . Popen ( cmdline , stdout = subprocess . PIPE , stderr = subprocess . PIPE ) now = time . time ( ) return { 'proc' : process , 'cmdline' : ' ' . join ( cmdline ) , 'name' : name , 'suite_name' : config [ 'suite_name' ] , 'terminate_timeout' : now + NCTEST_TERMINATE_TIMEOUT_SEC , 'kill_timeout' : now + NCTEST_KILL_TIMEOUT_SEC , 'started_at' : now , 'aborted_at' : 0 , 'finished_at' : 0 , 'expectations' : expectations }