def LaunchCTDCommand(args, command):
  """Launches the specified chromoting test driver command.

  Args:
    args: Command line args, used for test-case startup tasks.
    command: Chromoting Test Driver command line.
  Returns:
    "command" if there was a test environment failure, otherwise a string of the
    names of failed tests.
  """

  TestCaseSetup(args)
  results = RunCommandInSubProcess(command)

  tear_down_index = results.find(TEST_ENVIRONMENT_TEAR_DOWN_INDICATOR)
  if tear_down_index == -1:
    # The test environment did not tear down. Something went horribly wrong.
    return '[Command failed]: ' + command

  end_results_list = results[tear_down_index:].split('\n')
  failed_tests_list = []
  for result in end_results_list:
    if result.startswith(FAILED_INDICATOR):
      failed_tests_list.append(result)

  if failed_tests_list:
    test_result = '[Command]: ' + command
    # Note: Skipping the first one is intentional.
    for i in range(1, len(failed_tests_list)):
      test_result += '    ' + failed_tests_list[i]
    return test_result

  # All tests passed!
  return ''
def LaunchCTDCommand(args, command):
    """Launches the specified chromoting test driver command.

  Args:
    args: Command line args, used for test-case startup tasks.
    command: Chromoting Test Driver command line.
  Returns:
    "command" if there was a test environment failure, otherwise a string of the
    names of failed tests.
  """

    TestCaseSetup(args)
    results = RunCommandInSubProcess(command)

    tear_down_index = results.find(TEST_ENVIRONMENT_TEAR_DOWN_INDICATOR)
    if tear_down_index == -1:
        # The test environment did not tear down. Something went horribly wrong.
        return '[Command failed]: ' + command

    end_results_list = results[tear_down_index:].split('\n')
    failed_tests_list = []
    for result in end_results_list:
        if result.startswith(FAILED_INDICATOR):
            failed_tests_list.append(result)

    if failed_tests_list:
        test_result = '[Command]: ' + command
        # Note: Skipping the first one is intentional.
        for i in range(1, len(failed_tests_list)):
            test_result += '    ' + failed_tests_list[i]
        return test_result

    # All tests passed!
    return ''
Example #3
0
def LaunchCTDCommand(args, command):
    """Launches the specified chromoting test driver command.

  Args:
    args: Command line args, used for test-case startup tasks.
    command: Chromoting Test Driver command line.
  Returns:
    command, host_log_file_names: Tuple of:
    "command" if there was a test-environment failure, or any failing test, and
    list of host-log file-names.
  """
    host_log_file_names = []

    host_log_file_names.append(TestCaseSetup(args))
    # Parse the me2me host log to obtain the JID that the host registered.
    host_jid = GetJidFromHostLog(host_log_file_names[-1])

    if not host_jid:
        # Host-JID not found in log. Let's not attempt to run this test.
        print 'Host-JID not found in log %s.' % host_log_file_names[-1]
        return '[Command failed]: %s, %s' % (command, host_log_file_names)

    retries = 0
    failed_tests_list = []
    # TODO(anandc): Remove this retry-logic once http://crbug/570840 is fixed.
    while retries <= MAX_RETRIES:
        # In order to ensure the host is online with the expected JID, pass in the
        # jid obtained from the host-log as a command-line parameter.
        command = command.replace('\n', '') + ' --hostjid=%s' % host_jid

        results = RunCommandInSubProcess(command)

        tear_down_index = results.find(TEST_ENVIRONMENT_TEAR_DOWN_INDICATOR)
        if tear_down_index == -1:
            # The test environment did not tear down. Something went horribly wrong.
            return '[Command failed]: ' + command, host_log_file_names

        end_results_list = results[tear_down_index:].split('\n')
        test_failed = False
        for result in end_results_list:
            if result.startswith(FAILED_INDICATOR):
                test_failed = True
                if retries == MAX_RETRIES:
                    # Test failed and we have no more retries left.
                    failed_tests_list.append(result)

        if test_failed:
            retries += 1
        else:
            break

    if failed_tests_list:
        test_result = '[Command]: ' + command
        # Note: Skipping the first one is intentional.
        for i in range(1, len(failed_tests_list)):
            test_result += '    ' + failed_tests_list[i]
        return test_result, host_log_file_names

    # All tests passed!
    return '', host_log_file_names
def LaunchCTDCommand(args, command):
  """Launches the specified chromoting test driver command.

  Args:
    args: Command line args, used for test-case startup tasks.
    command: Chromoting Test Driver command line.
  Returns:
    command, host_log_file_names: Tuple of:
    "command" if there was a test-environment failure, or any failing test, and
    list of host-log file-names.
  """
  host_log_file_names = []

  host_log_file_names.append(TestCaseSetup(args))
  # Parse the me2me host log to obtain the JID that the host registered.
  host_jid = GetJidFromHostLog(host_log_file_names[-1])

  if not host_jid:
    # Host-JID not found in log. Let's not attempt to run this test.
    print 'Host-JID not found in log %s.' % host_log_file_names[-1]
    return '[Command failed]: %s, %s' % (command, host_log_file_names)

  retries = 0
  failed_tests_list = []
  # TODO(anandc): Remove this retry-logic once http://crbug/570840 is fixed.
  while retries <= MAX_RETRIES:
    # In order to ensure the host is online with the expected JID, pass in the
    # jid obtained from the host-log as a command-line parameter.
    command = command.replace('\n', '') + ' --hostjid=%s' % host_jid

    results = RunCommandInSubProcess(command)

    tear_down_index = results.find(TEST_ENVIRONMENT_TEAR_DOWN_INDICATOR)
    if tear_down_index == -1:
      # The test environment did not tear down. Something went horribly wrong.
      return '[Command failed]: ' + command, host_log_file_names

    end_results_list = results[tear_down_index:].split('\n')
    test_failed = False
    for result in end_results_list:
      if result.startswith(FAILED_INDICATOR):
        test_failed = True
        if retries == MAX_RETRIES:
          # Test failed and we have no more retries left.
          failed_tests_list.append(result)

    if test_failed:
      retries += 1
    else:
      break

  if failed_tests_list:
    test_result = '[Command]: ' + command
    # Note: Skipping the first one is intentional.
    for i in range(1, len(failed_tests_list)):
      test_result += '    ' + failed_tests_list[i]
    return test_result, host_log_file_names

  # All tests passed!
  return '', host_log_file_names