Example #1
0
def main():
    parser = optparse.OptionParser()
    parser.add_option('',
                      '--verbose',
                      action='store_true',
                      default=False,
                      help='Whether output should be verbose')
    parser.add_option('',
                      '--debug',
                      action='store_true',
                      default=False,
                      help='Whether to wait to be attached by a debugger')
    parser.add_option(
        '',
        '--chromedriver',
        type='string',
        default=None,
        help='Path to a build of the chromedriver library(REQUIRED!)')
    parser.add_option('',
                      '--chrome',
                      type='string',
                      default=None,
                      help='Path to a build of the chrome binary')
    parser.add_option('',
                      '--log-path',
                      help='Output verbose server logs to this file')
    parser.add_option('', '--android-package', help='Android package key')
    parser.add_option(
        '',
        '--filter',
        type='string',
        default=None,
        help='Filter for specifying what tests to run, "*" will run all. E.g., '
        '*testShouldReturnTitleOfPageIfSet')
    parser.add_option('',
                      '--also-run-disabled-tests',
                      action='store_true',
                      default=False,
                      help='Include disabled tests while running the tests')
    parser.add_option('',
                      '--isolate-tests',
                      action='store_true',
                      default=False,
                      help='Relaunch the jar test harness after each test')
    options, _ = parser.parse_args()

    options.chromedriver = util.GetAbsolutePathOfUserPath(options.chromedriver)
    if options.chromedriver is None or not os.path.exists(
            options.chromedriver):
        parser.error('chromedriver is required or the given path is invalid.' +
                     'Please run "%s --help" for help' % __file__)

    if options.android_package:
        if options.android_package not in constants.PACKAGE_INFO:
            parser.error('Invalid --android-package')
        environment = test_environment.AndroidTestEnvironment(
            options.android_package)
    else:
        environment = test_environment.DesktopTestEnvironment()

    try:
        environment.GlobalSetUp()
        # Run passed tests when filter is not provided.
        if options.isolate_tests:
            test_filters = environment.GetPassedJavaTests()
        else:
            if options.filter:
                test_filter = options.filter
            else:
                test_filter = '*'
            if not options.also_run_disabled_tests:
                if '-' in test_filter:
                    test_filter += ':'
                else:
                    test_filter += '-'
                test_filter += ':'.join(
                    environment.GetDisabledJavaTestMatchers())
            test_filters = [test_filter]
        ready_to_run_tests = ':'.join(
            environment.GetReadyToRunJavaTestMatchers())

        java_tests_src_dir = os.path.join(chrome_paths.GetSrc(), 'chrome',
                                          'test', 'chromedriver',
                                          'third_party', 'java_tests')
        tests_report_file = os.path.join(java_tests_src_dir, 'results.txt')

        if (not os.path.exists(java_tests_src_dir)
                or not os.listdir(java_tests_src_dir)):
            java_tests_url = ('https://chromium.googlesource.com/chromium/deps'
                              '/webdriver')
            print(
                '"%s" is empty or it doesn\'t exist. ' % java_tests_src_dir +
                'Need to map ' + java_tests_url + ' to '
                'chrome/test/chromedriver/third_party/java_tests in .gclient.\n'
                'Alternatively, do:\n'
                '  $ cd chrome/test/chromedriver/third_party\n'
                '  $ git clone %s java_tests' % java_tests_url)
            return 1

        _Run(java_tests_src_dir=java_tests_src_dir,
             test_filter=test_filter,
             ready_to_run_tests=ready_to_run_tests,
             chromedriver_path=options.chromedriver,
             chrome_path=util.GetAbsolutePathOfUserPath(options.chrome),
             log_path=options.log_path,
             android_package_key=options.android_package,
             debug=options.debug,
             tests_report_file=tests_report_file)
        return _PrintTestResults(tests_report_file)
    finally:
        environment.GlobalTearDown()
        if (os.path.exists(tests_report_file)):
            os.remove(tests_report_file)
        if (os.path.exists(
                os.path.join(java_tests_src_dir,
                             "chrome-wrapper-no-sandbox"))):
            os.remove(
                os.path.join(java_tests_src_dir, "chrome-wrapper-no-sandbox"))
        if (os.path.exists(os.path.join(java_tests_src_dir,
                                        "chrome-wrapper"))):
            os.remove(os.path.join(java_tests_src_dir, "chrome-wrapper"))
def main():
    parser = optparse.OptionParser()
    parser.add_option('',
                      '--verbose',
                      action='store_true',
                      default=False,
                      help='Whether output should be verbose')
    parser.add_option('',
                      '--debug',
                      action='store_true',
                      default=False,
                      help='Whether to wait to be attached by a debugger')
    parser.add_option(
        '',
        '--chromedriver',
        type='string',
        default=None,
        help='Path to a build of the chromedriver library(REQUIRED!)')
    parser.add_option('',
                      '--chrome',
                      type='string',
                      default=None,
                      help='Path to a build of the chrome binary')
    parser.add_option('',
                      '--log-path',
                      help='Output verbose server logs to this file')
    parser.add_option('',
                      '--chrome-version',
                      default='HEAD',
                      help='Version of chrome. Default is \'HEAD\'')
    parser.add_option('', '--android-package', help='Android package key')
    parser.add_option(
        '',
        '--filter',
        type='string',
        default=None,
        help='Filter for specifying what tests to run, "*" will run all. E.g., '
        '*testShouldReturnTitleOfPageIfSet')
    parser.add_option('',
                      '--also-run-disabled-tests',
                      action='store_true',
                      default=False,
                      help='Include disabled tests while running the tests')
    parser.add_option('',
                      '--isolate-tests',
                      action='store_true',
                      default=False,
                      help='Relaunch the jar test harness after each test')
    options, _ = parser.parse_args()

    if options.chromedriver is None or not os.path.exists(
            options.chromedriver):
        parser.error('chromedriver is required or the given path is invalid.' +
                     'Please run "%s --help" for help' % __file__)

    if options.android_package:
        if options.android_package not in constants.PACKAGE_INFO:
            parser.error('Invalid --android-package')
        if options.chrome_version != 'HEAD':
            parser.error(
                'Android does not support the --chrome-version argument.')
        environment = test_environment.AndroidTestEnvironment(
            options.android_package)
    else:
        environment = test_environment.DesktopTestEnvironment(
            options.chrome_version)

    try:
        environment.GlobalSetUp()
        # Run passed tests when filter is not provided.
        if options.isolate_tests:
            test_filters = environment.GetPassedJavaTests()
        else:
            if options.filter:
                test_filter = options.filter
            else:
                test_filter = '*'
            if not options.also_run_disabled_tests:
                if '-' in test_filter:
                    test_filter += ':'
                else:
                    test_filter += '-'
                test_filter += ':'.join(
                    environment.GetDisabledJavaTestMatchers())
            test_filters = [test_filter]

        java_tests_src_dir = os.path.join(chrome_paths.GetSrc(), 'chrome',
                                          'test', 'chromedriver',
                                          'third_party', 'java_tests')
        if (not os.path.exists(java_tests_src_dir)
                or not os.listdir(java_tests_src_dir)):
            java_tests_url = (
                'http://src.chromium.org/svn/trunk/deps/third_party'
                '/webdriver')
            print(
                '"%s" is empty or it doesn\'t exist. ' % java_tests_src_dir +
                'Need to map <chrome-svn>/trunk/deps/third_party/webdriver to '
                'chrome/test/chromedriver/third_party/java_tests in .gclient.\n'
                'Alternatively, do:\n'
                '  $ cd chrome/test/chromedriver/third_party\n'
                '  $ svn co %s java_tests' % java_tests_url)
            return 1

        results = []
        for filter in test_filters:
            results += _Run(java_tests_src_dir=java_tests_src_dir,
                            test_filter=filter,
                            chromedriver_path=options.chromedriver,
                            chrome_path=options.chrome,
                            log_path=options.log_path,
                            android_package_key=options.android_package,
                            verbose=options.verbose,
                            debug=options.debug)
        return PrintTestResults(results)
    finally:
        environment.GlobalTearDown()
Example #3
0
def main():
  parser = optparse.OptionParser()
  parser.add_option(
      '', '--verbose', action="store_true", default=False,
      help='Whether output should be verbose')
  parser.add_option(
      '', '--debug', action="store_true", default=False,
      help='Whether to wait to be attached by a debugger')
  parser.add_option(
      '', '--chromedriver', type='string', default=None,
      help='Path to a build of the chromedriver library(REQUIRED!)')
  parser.add_option(
      '', '--chrome', type='string', default=None,
      help='Path to a build of the chrome binary')
  parser.add_option(
      '', '--chrome-version', default='HEAD',
      help='Version of chrome. Default is \'HEAD\'')
  parser.add_option(
      '', '--android-package', type='string', default=None,
      help='Name of Chrome\'s Android package')
  parser.add_option(
      '', '--filter', type='string', default=None,
      help='Filter for specifying what tests to run, "*" will run all. E.g., '
           '*testShouldReturnTitleOfPageIfSet')
  options, args = parser.parse_args()

  if options.chromedriver is None or not os.path.exists(options.chromedriver):
    parser.error('chromedriver is required or the given path is invalid.' +
                 'Please run "%s --help" for help' % __file__)

  if options.android_package is not None:
    if options.chrome_version != 'HEAD':
      parser.error('Android does not support the --chrome-version argument.')
    environment = test_environment.AndroidTestEnvironment()
  else:
    environment = test_environment.DesktopTestEnvironment(
        options.chrome_version)

  try:
    environment.GlobalSetUp()
    # Run passed tests when filter is not provided.
    test_filter = options.filter
    if test_filter is None:
      test_filter = environment.GetPassedJavaTestFilter()

    java_tests_src_dir = os.path.join(chrome_paths.GetSrc(), 'chrome', 'test',
                                      'chromedriver', 'third_party',
                                      'java_tests')
    if (not os.path.exists(java_tests_src_dir) or
        not os.listdir(java_tests_src_dir)):
      print ('"%s" is empty or it doesn\'t exist.' % java_tests_src_dir +
          'Should add "deps/third_party/webdriver" to source checkout config')
      return 1

    return PrintTestResults(_Run(
        java_tests_src_dir=java_tests_src_dir,
        test_filter=test_filter,
        chromedriver_path=options.chromedriver,
        chrome_path=options.chrome,
        android_package=options.android_package,
        verbose=options.verbose,
        debug=options.debug))
  finally:
    environment.GlobalTearDown()