def main():
    test_cases, _ = gtest_fake_base.parse_args(TESTS, 0)

    for test_case in test_cases:
        print gtest_fake_base.get_test_output(test_case, False)
    print gtest_fake_base.get_footer(len(test_cases), len(test_cases))
    return 1
Exemplo n.º 2
0
def main():
    test_cases, args = gtest_fake_base.parse_args(TESTS, 1)
    duration = int(args[0])

    for i in test_cases:
        time.sleep(float(duration) / 1000.)
        print gtest_fake_base.get_test_output(i, False, duration=str(duration))
    print gtest_fake_base.get_footer(len(test_cases), len(test_cases))
    return 0
Exemplo n.º 3
0
def main():
    test_cases, _ = gtest_fake_base.parse_args(TESTS, 0)

    result = 0
    for test_case in test_cases:
        # Make Baz.Fail fail.
        should_fail = test_case == 'Baz.Fail'
        result = result or int(should_fail)
        print gtest_fake_base.get_test_output(test_case, should_fail)
    print gtest_fake_base.get_footer(len(test_cases), len(test_cases))
    return result
Exemplo n.º 4
0
def main():
  test_cases, args = gtest_fake_base.parse_args(TESTS, 1)
  temp_dir = args[0]

  result = 0
  for test_case in test_cases:
    filename = os.path.join(temp_dir, test_case)
    # Fails on first run, succeeds on the second.
    should_fail = not os.path.isfile(filename)
    result = result or int(should_fail)
    print gtest_fake_base.get_test_output(test_case, should_fail)
    if should_fail:
      with open(filename, 'wb') as f:
        f.write('bang')
  print gtest_fake_base.get_footer(len(test_cases), len(test_cases))
  return result
Exemplo n.º 5
0
def main():
    test_cases, args = gtest_fake_base.parse_args(TESTS, 1)
    temp_dir = args[0]

    result = 0
    for test_case in test_cases:
        filename = os.path.join(temp_dir, test_case)
        # Fails on first run, succeeds on the second.
        should_fail = not os.path.isfile(filename)
        # But it still prints it succeeded.
        print gtest_fake_base.get_test_output(test_case, False)
        result = result or int(should_fail)
        if should_fail:
            with open(filename, 'wb') as f:
                f.write('bang')
    print gtest_fake_base.get_footer(len(test_cases), len(test_cases))
    if result:
        print('OMG I crashed')
        print('Here\'s a stack trace')
    return result
Exemplo n.º 6
0
def main():
  test_cases, args = gtest_fake_base.parse_args(TESTS, 1)
  temp_dir = args[0]

  result = 0
  for test_case in test_cases:
    if test_case == 'Foo.Bar2':
      # Never run it, don't fail either.
      continue

    should_fail = False
    if test_case == 'Foo.Bar1':
      filename = os.path.join(temp_dir, test_case)
      should_fail = not os.path.isfile(filename)
    result = result or int(should_fail)
    print gtest_fake_base.get_test_output(test_case, should_fail)
    if should_fail:
      with open(filename, 'wb') as f:
        f.write('bang')
  print gtest_fake_base.get_footer(len(test_cases), len(test_cases))
  return result
    def test_simple(self):
        file_handle, self.temp_file = tempfile.mkstemp(
            prefix='trace_test_cases_test')
        os.close(file_handle)

        cmd = [
            sys.executable,
            os.path.join(GOOGLETEST_DIR, 'trace_test_cases.py'),
            # Forces 4 parallel jobs.
            '--jobs',
            '4',
            '--out',
            self.temp_file,
        ]
        if VERBOSE:
            cmd.extend(['-v'] * 3)
        cmd.append(TARGET_PATH)
        logging.debug(' '.join(cmd))
        proc = subprocess.Popen(cmd,
                                stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE,
                                universal_newlines=True,
                                cwd=GOOGLETEST_DIR)
        out, err = proc.communicate() or ('', '')  # pylint is confused.
        self.assertEqual(0, proc.returncode, (out, err))
        lines = out.splitlines()
        expected_out_re = [
            r'Tracing\.\.\.',
            r'\[0/4\] +\d+\.\d\ds ',
            r'\[1/4\] +\d+\.\d\ds .+',
            r'\[2/4\] +\d+\.\d\ds .+',
            r'\[3/4\] +\d+\.\d\ds .+',
            r'\[4/4\] +\d+\.\d\ds .+',
            r'Reading trace logs\.\.\.',
        ]
        self.assertEqual(len(expected_out_re), len(lines), lines)
        for index in range(len(expected_out_re)):
            self.assertTrue(
                re.match('^%s$' % expected_out_re[index],
                         lines[index]), '%d: %s\n%r\n%s' %
                (index, expected_out_re[index], lines[index], out))
        # Junk is printed on win32.
        if sys.platform != 'win32' and not VERBOSE:
            self.assertEqual('', err)

        with open(self.temp_file, 'r') as f:
            content = f.read()
            try:
                result = json.loads(content)
            except:
                print repr(content)
                raise

        test_cases = {
            'Baz.Fail': 1,
            'Foo.Bar1': 0,
            'Foo.Bar2': 0,
            'Foo.Bar3': 0,
        }
        self.assertEqual(dict, result.__class__)
        self.assertEqual(sorted(test_cases), sorted(result))
        for index, test_case in enumerate(sorted(result)):
            actual = result[test_case]
            self.assertEqual([u'duration', u'output', u'returncode', u'trace'],
                             sorted(actual))
            self.assertGreater(actual['duration'], 0.0000001)
            self.assertEqual(test_cases[test_case], actual['returncode'])
            expected_output = ('Note: Google Test filter = %s\n' % test_case +
                               '\n' + gtest_fake_base.get_test_output(
                                   test_case, 'Fail' in test_case) + '\n' +
                               gtest_fake_base.get_footer(1, 1) + '\n')
            # On Windows, actual['output'] is unprocessed so it will contain CRLF.
            output = actual['output']
            if sys.platform == 'win32':
                output = output.replace('\r\n', '\n')
            self.assertEqual(expected_output, output, repr(output))

            expected_trace = {
                u'root': {
                    u'children': [],
                    u'command': [
                        self.executable,
                        TARGET_PATH,
                        '--gtest_filter=' + test_case,
                    ],
                    u'executable':
                    file_path.get_native_path_case(unicode(self.executable)),
                    u'initial_cwd':
                    GOOGLETEST_DIR,
                },
            }
            if sys.platform == 'win32':
                expected_trace['root']['initial_cwd'] = None
            self.assertGreater(actual['trace']['root'].pop('pid'), 1)
            self.assertGreater(len(actual['trace']['root'].pop('files')), 10)
            self.assertEqual(expected_trace, actual['trace'])
def get_footer_re(nb):
    return [
        re.escape(i) for i in gtest_fake_base.get_footer(nb, nb).splitlines()
    ] + ['']