diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d0b39e3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+logs
+*.pyc
+
diff --git a/COMMIT-QUEUE.ini b/COMMIT-QUEUE.ini
new file mode 100644
index 0000000..b718f38
--- /dev/null
+++ b/COMMIT-QUEUE.ini
@@ -0,0 +1,12 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Per-project Commit Queue settings.
+# Documentation: http://goo.gl/4rZhAx
+
+[GENERAL]
+
+# This repository isn't used by the CQ at all, so we can submit in the
+# pre-cq.
+submit-in-pre-cq: yes
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..50bac5d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,27 @@
+// Copyright (c) 2011-2016 The Chromium OS Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//    * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//    * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//    * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..5209f14
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,9 @@
+set noparent
+cmtice@chromium.org
+gbiv@chromium.org
+laszio@chromium.org
+llozano@chromium.org
+rahulchaudhry@chromium.org
+yunlian@chromium.org
+zhizhouy@chromium.org
+bjanakiraman@chromium.org
diff --git a/README b/README
new file mode 100644
index 0000000..3ab3d7b
--- /dev/null
+++ b/README
@@ -0,0 +1,10 @@
+To run scripts in this directory, first run:
+
+export PYTHONPATH=$(readlink -f .):$PYTHONPATH
+
+from this directory.
+
+Then you can run any script.
+
+To get help on any script, type in python <script> --help, or refer to the
+header of the script for more information.
diff --git a/README.chromium b/README.chromium
new file mode 100644
index 0000000..acbbc5e
--- /dev/null
+++ b/README.chromium
@@ -0,0 +1,17 @@
+Name: toolchain-utils
+Short Name: toolchain-utils
+URL: https://chromium.googlesource.com/chromiumos/third_party/toolchain-utils
+License: BSD
+License File: LICENSE
+Security Critical: no
+
+Description:
+This contains scripts used to help maintain the toolchain.  These
+include tools for downloading and building Chromium OS; building
+custom versions of the toolchain inside Chromium OS; launching
+performance tests, analyzing the results and generating reports;
+running toolchain regression tests; and using binary search to isolate
+toolchain issues.
+
+NOTE:  These tools are strictly for Chromium developers; none of them
+ship on the final product (devices that run Chromium OS).
diff --git a/afe_lock_machine.py b/afe_lock_machine.py
new file mode 100755
index 0000000..125ac97
--- /dev/null
+++ b/afe_lock_machine.py
@@ -0,0 +1,658 @@
+#!/usr/bin/python2
+#
+# Copyright 2015 Google INc.  All Rights Reserved.
+"""This module controls locking and unlocking of test machines."""
+
+from __future__ import print_function
+
+import argparse
+import getpass
+import os
+import sys
+import traceback
+
+from cros_utils import logger
+from cros_utils import machines
+
+
+class AFELockException(Exception):
+  """Base class for exceptions in this module."""
+
+
+class MachineNotPingable(AFELockException):
+  """Raised when machine does not respond to ping."""
+
+
+class MissingHostInfo(AFELockException):
+  """Raised when cannot find info about machine on machine servers."""
+
+
+class UpdateNonLocalMachine(AFELockException):
+  """Raised when user requests to add/remove a ChromeOS HW Lab machine.."""
+
+
+class DuplicateAdd(AFELockException):
+  """Raised when user requests to add a machine that's already on the server."""
+
+
+class UpdateServerError(AFELockException):
+  """Raised when attempt to add/remove a machine from local server fails."""
+
+
+class LockingError(AFELockException):
+  """Raised when server fails to lock/unlock machine as requested."""
+
+
+class DontOwnLock(AFELockException):
+  """Raised when user attmepts to unlock machine locked by someone else."""
+  # This should not be raised if the user specified '--force'
+
+
+class NoAFEServer(AFELockException):
+  """Raised when cannot find/access the autotest server."""
+
+
+class AFEAccessError(AFELockException):
+  """Raised when cannot get information about lab machine from lab server."""
+
+
+class AFELockManager(object):
+  """Class for locking/unlocking machines vie Autotest Front End servers.
+
+  This class contains methods for checking the locked status of machines
+  on both the ChromeOS HW Lab AFE server and a local AFE server.  It also
+  has methods for adding/removing machines from the local server, and for
+  changing the lock status of machines on either server.  For the ChromeOS
+  HW Lab, it only allows access to the toolchain team lab machines, as
+  defined in toolchain-utils/crosperf/default_remotes.  By default it will
+  look for a local server on chrotomation2.mtv.corp.google.com, but an
+  alternative local AFE server can be supplied, if desired.
+
+  !!!IMPORTANT NOTE!!!  The AFE server can only be called from the main
+  thread/process of a program.  If you launch threads and try to call it
+  from a thread, you will get an error.  This has to do with restrictions
+  in the Python virtual machine (and signal handling) and cannot be changed.
+  """
+
+  LOCAL_SERVER = 'chrotomation2.mtv.corp.google.com'
+
+  def __init__(self,
+               remotes,
+               force_option,
+               chromeos_root,
+               local_server,
+               use_local=True,
+               log=None):
+    """Initializes an AFELockManager object.
+
+    Args:
+      remotes: A list of machine names or ip addresses to be managed.  Names
+        and ip addresses should be represented as strings.  If the list is
+        empty, the lock manager will get all known machines.
+      force_option: A Boolean indicating whether or not to force an unlock of
+        a machine that was locked by someone else.
+      chromeos_root: The ChromeOS chroot to use for the autotest scripts.
+      local_server: A string containing the name or ip address of the machine
+        that is running an AFE server, which is to be used for managing
+        machines that are not in the ChromeOS HW lab.
+      local: A Boolean indicating whether or not to use/allow a local AFE
+        server to be used (see local_server argument).
+      log: If not None, this is the logger object to be used for writing out
+        informational output messages.  It is expected to be an instance of
+        Logger class from cros_utils/logger.py.
+    """
+    self.chromeos_root = chromeos_root
+    self.user = getpass.getuser()
+    self.logger = log or logger.GetLogger()
+    autotest_path = os.path.join(chromeos_root,
+                                 'src/third_party/autotest/files')
+
+    sys.path.append(chromeos_root)
+    sys.path.append(autotest_path)
+    sys.path.append(os.path.join(autotest_path, 'server', 'cros'))
+
+    # We have to wait to do these imports until the paths above have
+    # been fixed.
+    # pylint: disable=import-error
+    from client import setup_modules
+    setup_modules.setup(
+        base_path=autotest_path, root_module_name='autotest_lib')
+
+    from dynamic_suite import frontend_wrappers
+
+    self.afe = frontend_wrappers.RetryingAFE(
+        timeout_min=30, delay_sec=10, debug=False, server='cautotest')
+
+    self.local = use_local
+    self.machines = list(set(remotes)) or []
+    self.toolchain_lab_machines = self.GetAllToolchainLabMachines()
+    if self.machines and self.AllLabMachines():
+      self.local = False
+
+    if not self.local:
+      self.local_afe = None
+    else:
+      dargs = {}
+      dargs['server'] = local_server or AFELockManager.LOCAL_SERVER
+      # Make sure local server is pingable.
+      error_msg = ('Local autotest server machine %s not responding to ping.' %
+                   dargs['server'])
+      self.CheckMachine(dargs['server'], error_msg)
+      self.local_afe = frontend_wrappers.RetryingAFE(
+          timeout_min=30, delay_sec=10, debug=False, **dargs)
+    if not self.machines:
+      self.machines = self.toolchain_lab_machines + self.GetAllNonlabMachines()
+    self.force = force_option
+
+  def AllLabMachines(self):
+    """Check to see if all machines being used are HW Lab machines."""
+    all_lab = True
+    for m in self.machines:
+      if m not in self.toolchain_lab_machines:
+        all_lab = False
+        break
+    return all_lab
+
+  def CheckMachine(self, machine, error_msg):
+    """Verifies that machine is responding to ping.
+
+    Args:
+      machine: String containing the name or ip address of machine to check.
+      error_msg: Message to print if ping fails.
+
+    Raises:
+      MachineNotPingable:  If machine is not responding to 'ping'
+    """
+    if not machines.MachineIsPingable(machine, logging_level='none'):
+      cros_machine = machine + '.cros'
+      if not machines.MachineIsPingable(cros_machine, logging_level='none'):
+        raise MachineNotPingable(error_msg)
+
+  def MachineIsKnown(self, machine):
+    """Checks to see if either AFE server knows the given machine.
+
+    Args:
+      machine: String containing name or ip address of machine to check.
+
+    Returns:
+      Boolean indicating if the machine is in the list of known machines for
+        either AFE server.
+    """
+    if machine in self.toolchain_lab_machines:
+      return True
+    elif self.local_afe and machine in self.GetAllNonlabMachines():
+      return True
+
+    return False
+
+  def GetAllToolchainLabMachines(self):
+    """Gets a list of all the toolchain machines in the ChromeOS HW lab.
+
+    Returns:
+      A list of names of the toolchain machines in the ChromeOS HW lab.
+    """
+    machines_file = os.path.join(
+        os.path.dirname(__file__), 'crosperf', 'default_remotes')
+    machine_list = []
+    with open(machines_file, 'r') as input_file:
+      lines = input_file.readlines()
+      for line in lines:
+        _, remotes = line.split(':')
+        remotes = remotes.strip()
+        for r in remotes.split():
+          machine_list.append(r.strip())
+    return machine_list
+
+  def GetAllNonlabMachines(self):
+    """Gets a list of all known machines on the local AFE server.
+
+    Returns:
+      A list of the names of the machines on the local AFE server.
+    """
+    non_lab_machines = []
+    if self.local_afe:
+      non_lab_machines = self.local_afe.get_hostnames()
+    return non_lab_machines
+
+  def PrintStatusHeader(self, is_lab_machine):
+    """Prints the status header lines for machines.
+
+    Args:
+      is_lab_machine: Boolean indicating whether to print HW Lab header or
+        local machine header (different spacing).
+    """
+    if is_lab_machine:
+      print('\nMachine (Board)\t\t\t\t\tStatus')
+      print('---------------\t\t\t\t\t------\n')
+    else:
+      print('\nMachine (Board)\t\tStatus')
+      print('---------------\t\t------\n')
+
+  def RemoveLocalMachine(self, m):
+    """Removes a machine from the local AFE server.
+
+    Args:
+      m: The machine to remove.
+
+    Raises:
+      MissingHostInfo:  Can't find machine to be removed.
+    """
+    if self.local_afe:
+      host_info = self.local_afe.get_hosts(hostname=m)
+      if host_info:
+        host_info = host_info[0]
+        host_info.delete()
+      else:
+        raise MissingHostInfo('Cannot find/delete machine %s.' % m)
+
+  def AddLocalMachine(self, m):
+    """Adds a machine to the local AFE server.
+
+    Args:
+      m: The machine to be added.
+    """
+    if self.local_afe:
+      error_msg = 'Machine %s is not responding to ping.' % m
+      self.CheckMachine(m, error_msg)
+      self.local_afe.create_host(m)
+
+  def AddMachinesToLocalServer(self):
+    """Adds one or more machines to the local AFE server.
+
+    Verify that the requested machines are legal to add to the local server,
+    i.e. that they are not ChromeOS HW lab machines, and they are not already
+    on the local server.  Call AddLocalMachine for each valid machine.
+
+    Raises:
+      DuplicateAdd: Attempt to add a machine that is already on the server.
+      UpdateNonLocalMachine:  Attempt to add a ChromeOS HW lab machine.
+      UpdateServerError:  Something went wrong while attempting to add a
+        machine.
+    """
+    for m in self.machines:
+      for cros_name in [m, m + '.cros']:
+        if cros_name in self.toolchain_lab_machines:
+          raise UpdateNonLocalMachine('Machine %s is already in the ChromeOS HW'
+                                      'Lab.  Cannot add it to local server.' %
+                                      cros_name)
+      host_info = self.local_afe.get_hosts(hostname=m)
+      if host_info:
+        raise DuplicateAdd('Machine %s is already on the local server.' % m)
+      try:
+        self.AddLocalMachine(m)
+        self.logger.LogOutput('Successfully added %s to local server.' % m)
+      except Exception as e:
+        traceback.print_exc()
+        raise UpdateServerError(
+            'Error occurred while attempting to add %s. %s' % (m, str(e)))
+
+  def RemoveMachinesFromLocalServer(self):
+    """Removes one or more machines from the local AFE server.
+
+    Verify that the requested machines are legal to remove from the local
+    server, i.e. that they are not ChromeOS HW lab machines.  Call
+    RemoveLocalMachine for each valid machine.
+
+    Raises:
+      UpdateServerError:  Something went wrong while attempting to remove a
+        machine.
+    """
+    for m in self.machines:
+      for cros_name in [m, m + '.cros']:
+        if cros_name in self.toolchain_lab_machines:
+          raise UpdateNonLocalMachine(
+              'Machine %s is in the ChromeOS HW Lab. '
+              'This script cannot remove lab machines.' % cros_name)
+      try:
+        self.RemoveLocalMachine(m)
+        self.logger.LogOutput('Successfully removed %s from local server.' % m)
+      except Exception as e:
+        traceback.print_exc()
+        raise UpdateServerError('Error occurred while attempting to remove %s '
+                                '(%s).' % (m, str(e)))
+
+  def ListMachineStates(self, machine_states):
+    """Gets and prints the current status for a list of machines.
+
+    Prints out the current status for all of the machines in the current
+    AFELockManager's list of machines (set when the object is initialized).
+
+    Args:
+      machine_states: A dictionary of the current state of every machine in
+        the current AFELockManager's list of machines.  Normally obtained by
+        calling AFELockManager::GetMachineStates.
+    """
+    local_machines = []
+    printed_hdr = False
+    for m in machine_states:
+      cros_name = m + '.cros'
+      if (m in self.toolchain_lab_machines or
+          cros_name in self.toolchain_lab_machines):
+        name = m if m in self.toolchain_lab_machines else cros_name
+        if not printed_hdr:
+          self.PrintStatusHeader(True)
+          printed_hdr = True
+        state = machine_states[m]
+        if state['locked']:
+          print('%s (%s)\tlocked by %s since %s' %
+                (name, state['board'], state['locked_by'], state['lock_time']))
+        else:
+          print('%s (%s)\tunlocked' % (name, state['board']))
+      else:
+        local_machines.append(m)
+
+    if local_machines:
+      self.PrintStatusHeader(False)
+      for m in local_machines:
+        state = machine_states[m]
+        if state['locked']:
+          print('%s (%s)\tlocked by %s since %s' %
+                (m, state['board'], state['locked_by'], state['lock_time']))
+        else:
+          print('%s (%s)\tunlocked' % (m, state['board']))
+
+  def UpdateLockInAFE(self, should_lock_machine, machine):
+    """Calls an AFE server to lock/unlock a machine.
+
+    Args:
+      should_lock_machine: Boolean indicating whether to lock the machine (True)
+        or unlock the machine (False).
+      machine: The machine to update.
+
+    Raises:
+      LockingError:  An error occurred while attempting to update the machine
+        state.
+    """
+    action = 'lock'
+    if not should_lock_machine:
+      action = 'unlock'
+    kwargs = {'locked': should_lock_machine}
+    kwargs['lock_reason'] = 'toolchain user request (%s)' % self.user
+
+    cros_name = machine + '.cros'
+    if cros_name in self.toolchain_lab_machines:
+      machine = cros_name
+    if machine in self.toolchain_lab_machines:
+      m = machine.split('.')[0]
+      afe_server = self.afe
+    else:
+      m = machine
+      afe_server = self.local_afe
+
+    try:
+      afe_server.run('modify_hosts',
+                     host_filter_data={'hostname__in': [m]},
+                     update_data=kwargs)
+    except Exception as e:
+      traceback.print_exc()
+      raise LockingError('Unable to %s machine %s. %s' % (action, m, str(e)))
+
+  def UpdateMachines(self, lock_machines):
+    """Sets the locked state of the machines to the requested value.
+
+    The machines updated are the ones in self.machines (specified when the
+    class object was intialized).
+
+    Args:
+      lock_machines: Boolean indicating whether to lock the machines (True) or
+        unlock the machines (False).
+
+    Returns:
+      A list of the machines whose state was successfully updated.
+    """
+    updated_machines = []
+    for m in self.machines:
+      self.UpdateLockInAFE(lock_machines, m)
+      # Since we returned from self.UpdateLockInAFE we assume the request
+      # succeeded.
+      if lock_machines:
+        self.logger.LogOutput('Locked machine(s) %s.' % m)
+      else:
+        self.logger.LogOutput('Unlocked machine(s) %s.' % m)
+      updated_machines.append(m)
+
+    return updated_machines
+
+  def _InternalRemoveMachine(self, machine):
+    """Remove machine from internal list of machines.
+
+    Args:
+      machine: Name of machine to be removed from internal list.
+    """
+    # Check to see if machine is lab machine and if so, make sure it has
+    # ".cros" on the end.
+    cros_machine = machine
+    if machine.find('rack') > 0 and machine.find('row') > 0:
+      if machine.find('.cros') == -1:
+        cros_machine = cros_machine + '.cros'
+
+    self.machines = [m for m in self.machines
+                     if m != cros_machine and m != machine]
+
+  def CheckMachineLocks(self, machine_states, cmd):
+    """Check that every machine in requested list is in the proper state.
+
+    If the cmd is 'unlock' verify that every machine is locked by requestor.
+    If the cmd is 'lock' verify that every machine is currently unlocked.
+
+    Args:
+      machine_states: A dictionary of the current state of every machine in
+        the current AFELockManager's list of machines.  Normally obtained by
+        calling AFELockManager::GetMachineStates.
+      cmd: The user-requested action for the machines: 'lock' or 'unlock'.
+
+    Raises:
+      DontOwnLock: The lock on a requested machine is owned by someone else.
+    """
+    for k, state in machine_states.iteritems():
+      if cmd == 'unlock':
+        if not state['locked']:
+          self.logger.LogWarning('Attempt to unlock already unlocked machine '
+                                 '(%s).' % k)
+          self._InternalRemoveMachine(k)
+
+        if state['locked'] and state['locked_by'] != self.user:
+          raise DontOwnLock('Attempt to unlock machine (%s) locked by someone '
+                            'else (%s).' % (k, state['locked_by']))
+      elif cmd == 'lock':
+        if state['locked']:
+          self.logger.LogWarning('Attempt to lock already locked machine (%s)' %
+                                 k)
+          self._InternalRemoveMachine(k)
+
+  def HasAFEServer(self, local):
+    """Verifies that the AFELockManager has appropriate AFE server.
+
+    Args:
+      local: Boolean indicating whether we are checking for the local server
+        (True) or for the global server (False).
+
+    Returns:
+      A boolean indicating if the AFELockManager has the requested AFE server.
+    """
+    if local:
+      return self.local_afe is not None
+    else:
+      return self.afe is not None
+
+  def GetMachineStates(self, cmd=''):
+    """Gets the current state of all the requested machines.
+
+    Gets the current state of all the requested machines, both from the HW lab
+    sever and from the local server.  Stores the data in a dictionary keyed
+    by machine name.
+
+    Args:
+      cmd: The command for which we are getting the machine states. This is
+        important because if one of the requested machines is missing we raise
+        an exception, unless the requested command is 'add'.
+
+    Returns:
+      A dictionary of machine states for all the machines in the AFELockManager
+      object.
+
+    Raises:
+      NoAFEServer:  Cannot find the HW Lab or local AFE server.
+      AFEAccessError:  An error occurred when querying the server about a
+        machine.
+    """
+    if not self.HasAFEServer(False):
+      raise NoAFEServer('Error: Cannot connect to main AFE server.')
+
+    if self.local and not self.HasAFEServer(True):
+      raise NoAFEServer('Error: Cannot connect to local AFE server.')
+
+    machine_list = {}
+    for m in self.machines:
+      host_info = None
+      cros_name = m + '.cros'
+      if (m in self.toolchain_lab_machines or
+          cros_name in self.toolchain_lab_machines):
+        mod_host = m.split('.')[0]
+        host_info = self.afe.get_hosts(hostname=mod_host)
+        if not host_info:
+          raise AFEAccessError('Unable to get information about %s from main'
+                               ' autotest server.' % m)
+      else:
+        host_info = self.local_afe.get_hosts(hostname=m)
+        if not host_info and cmd != 'add':
+          raise AFEAccessError('Unable to get information about %s from '
+                               'local autotest server.' % m)
+      if host_info:
+        host_info = host_info[0]
+        name = host_info.hostname
+        values = {}
+        values['board'] = host_info.platform if host_info.platform else '??'
+        values['locked'] = host_info.locked
+        if host_info.locked:
+          values['locked_by'] = host_info.locked_by
+          values['lock_time'] = host_info.lock_time
+        else:
+          values['locked_by'] = ''
+          values['lock_time'] = ''
+        machine_list[name] = values
+      else:
+        machine_list[m] = {}
+    return machine_list
+
+
+def Main(argv):
+  """Parse the options, initialize lock manager and dispatch proper method.
+
+  Args:
+    argv: The options with which this script was invoked.
+
+  Returns:
+    0 unless an exception is raised.
+  """
+  parser = argparse.ArgumentParser()
+
+  parser.add_argument(
+      '--list',
+      dest='cmd',
+      action='store_const',
+      const='status',
+      help='List current status of all known machines.')
+  parser.add_argument(
+      '--lock',
+      dest='cmd',
+      action='store_const',
+      const='lock',
+      help='Lock given machine(s).')
+  parser.add_argument(
+      '--unlock',
+      dest='cmd',
+      action='store_const',
+      const='unlock',
+      help='Unlock given machine(s).')
+  parser.add_argument(
+      '--status',
+      dest='cmd',
+      action='store_const',
+      const='status',
+      help='List current status of given machine(s).')
+  parser.add_argument(
+      '--add_machine',
+      dest='cmd',
+      action='store_const',
+      const='add',
+      help='Add machine to local machine server.')
+  parser.add_argument(
+      '--remove_machine',
+      dest='cmd',
+      action='store_const',
+      const='remove',
+      help='Remove machine from the local machine server.')
+  parser.add_argument(
+      '--nolocal',
+      dest='local',
+      action='store_false',
+      default=True,
+      help='Do not try to use local machine server.')
+  parser.add_argument(
+      '--remote', dest='remote', help='machines on which to operate')
+  parser.add_argument(
+      '--chromeos_root',
+      dest='chromeos_root',
+      required=True,
+      help='ChromeOS root to use for autotest scripts.')
+  parser.add_argument(
+      '--local_server',
+      dest='local_server',
+      default=None,
+      help='Alternate local autotest server to use.')
+  parser.add_argument(
+      '--force',
+      dest='force',
+      action='store_true',
+      default=False,
+      help='Force lock/unlock of machines, even if not'
+      ' current lock owner.')
+
+  options = parser.parse_args(argv)
+
+  if not options.remote and options.cmd != 'status':
+    parser.error('No machines specified for operation.')
+
+  if not os.path.isdir(options.chromeos_root):
+    parser.error('Cannot find chromeos_root: %s.' % options.chromeos_root)
+
+  if not options.cmd:
+    parser.error('No operation selected (--list, --status, --lock, --unlock,'
+                 ' --add_machine, --remove_machine).')
+
+  machine_list = []
+  if options.remote:
+    machine_list = options.remote.split()
+
+  lock_manager = AFELockManager(machine_list, options.force,
+                                options.chromeos_root, options.local_server,
+                                options.local)
+
+  machine_states = lock_manager.GetMachineStates(cmd=options.cmd)
+  cmd = options.cmd
+
+  if cmd == 'status':
+    lock_manager.ListMachineStates(machine_states)
+
+  elif cmd == 'lock':
+    if not lock_manager.force:
+      lock_manager.CheckMachineLocks(machine_states, cmd)
+      lock_manager.UpdateMachines(True)
+
+  elif cmd == 'unlock':
+    if not lock_manager.force:
+      lock_manager.CheckMachineLocks(machine_states, cmd)
+      lock_manager.UpdateMachines(False)
+
+  elif cmd == 'add':
+    lock_manager.AddMachinesToLocalServer()
+
+  elif cmd == 'remove':
+    lock_manager.RemoveMachinesFromLocalServer()
+
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv[1:]))
diff --git a/auto_delete_nightly_test_data.py b/auto_delete_nightly_test_data.py
new file mode 100755
index 0000000..1d9853a
--- /dev/null
+++ b/auto_delete_nightly_test_data.py
@@ -0,0 +1,222 @@
+#!/usr/bin/env python2
+"""A crontab script to delete night test data."""
+
+from __future__ import print_function
+
+__author__ = 'shenhan@google.com (Han Shen)'
+
+import argparse
+import datetime
+import os
+import re
+import sys
+
+from cros_utils import command_executer
+from cros_utils import constants
+from cros_utils import misc
+
+DIR_BY_WEEKDAY = ('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun')
+
+
+def CleanNumberedDir(s, dry_run=False):
+  """Deleted directories under each dated_dir."""
+  chromeos_dirs = [
+      os.path.join(s, x) for x in os.listdir(s)
+      if misc.IsChromeOsTree(os.path.join(s, x))
+  ]
+  ce = command_executer.GetCommandExecuter(log_level='none')
+  all_succeeded = True
+  for cd in chromeos_dirs:
+    if misc.DeleteChromeOsTree(cd, dry_run=dry_run):
+      print('Successfully removed chromeos tree "{0}".'.format(cd))
+    else:
+      all_succeeded = False
+      print('Failed to remove chromeos tree "{0}", please check.'.format(cd))
+
+  if not all_succeeded:
+    print('Failed to delete at least one chromeos tree, please check.')
+    return False
+
+  ## Now delete the numbered dir Before forcibly removing the directory, just
+  ## check 's' to make sure it is sane.  A valid dir to be removed must be
+  ## '/usr/local/google/crostc/(SUN|MON|TUE...|SAT)'.
+  valid_dir_pattern = (
+      '^' + constants.CROSTC_WORKSPACE + '/(' + '|'.join(DIR_BY_WEEKDAY) + ')')
+  if not re.search(valid_dir_pattern, s):
+    print('Trying to delete an invalid dir "{0}" (must match "{1}"), '
+          'please check.'.format(s, valid_dir_pattern))
+    return False
+
+  cmd = 'rm -fr {0}'.format(s)
+  if dry_run:
+    print(cmd)
+  else:
+    if ce.RunCommand(cmd, print_to_console=False, terminated_timeout=480) == 0:
+      print('Successfully removed "{0}".'.format(s))
+    else:
+      all_succeeded = False
+      print('Failed to remove "{0}", please check.'.format(s))
+  return all_succeeded
+
+
+def CleanDatedDir(dated_dir, dry_run=False):
+  # List subdirs under dir
+  subdirs = [
+      os.path.join(dated_dir, x) for x in os.listdir(dated_dir)
+      if os.path.isdir(os.path.join(dated_dir, x))
+  ]
+  all_succeeded = True
+  for s in subdirs:
+    if not CleanNumberedDir(s, dry_run):
+      all_succeeded = False
+  return all_succeeded
+
+
+def ProcessArguments(argv):
+  """Process arguments."""
+  parser = argparse.ArgumentParser(
+      description='Automatically delete nightly test data directories.',
+      usage='auto_delete_nightly_test_data.py options')
+  parser.add_argument(
+      '-d',
+      '--dry_run',
+      dest='dry_run',
+      default=False,
+      action='store_true',
+      help='Only print command line, do not execute anything.')
+  parser.add_argument(
+      '--days_to_preserve',
+      dest='days_to_preserve',
+      default=3,
+      help=('Specify the number of days (not including today),'
+            ' test data generated on these days will *NOT* be '
+            'deleted. Defaults to 3.'))
+  options = parser.parse_args(argv)
+  return options
+
+
+def CleanChromeOsTmpFiles(chroot_tmp, days_to_preserve, dry_run):
+  rv = 0
+  ce = command_executer.GetCommandExecuter()
+  # Clean chroot/tmp/test_that_* and chroot/tmp/tmpxxxxxx, that were last
+  # accessed more than specified time.
+  minutes = 1440 * days_to_preserve
+  cmd = (r'find {0} -maxdepth 1 -type d '
+         r'\( -name "test_that_*"  -amin +{1} -o '
+         r'   -name "cros-update*" -amin +{1} -o '
+         r' -regex "{0}/tmp......" -amin +{1} \) '
+         r'-exec bash -c "echo rm -fr {{}}" \; '
+         r'-exec bash -c "rm -fr {{}}" \;').format(chroot_tmp, minutes)
+  if dry_run:
+    print('Going to execute:\n%s' % cmd)
+  else:
+    rv = ce.RunCommand(cmd, print_to_console=False)
+    if rv == 0:
+      print('Successfully cleaned chromeos tree tmp directory '
+            '"{0}".'.format(chroot_tmp))
+    else:
+      print('Some directories were not removed under chromeos tree '
+            'tmp directory -"{0}".'.format(chroot_tmp))
+
+  return rv
+
+
+def CleanChromeOsImageFiles(chroot_tmp, subdir_suffix, days_to_preserve,
+                            dry_run):
+  rv = 0
+  rv2 = 0
+  ce = command_executer.GetCommandExecuter()
+  minutes = 1440 * days_to_preserve
+  # Clean image tar files, which were last accessed 1 hour ago and clean image
+  # bin files that were last accessed more than specified time.
+  cmd = ('find {0}/*{1} -type f '
+         r'\( -name "chromiumos_test_image.tar"    -amin +60 -o '
+         r'   -name "chromiumos_test_image.tar.xz" -amin +60 -o '
+         r'   -name "chromiumos_test_image.bin"    -amin +{2} \) '
+         r'-exec bash -c "echo rm -f {{}}" \; '
+         r'-exec bash -c "rm -f {{}}" \;').format(chroot_tmp, subdir_suffix,
+                                                  minutes)
+
+  if dry_run:
+    print('Going to execute:\n%s' % cmd)
+  else:
+    rv2 = ce.RunCommand(cmd, print_to_console=False)
+    if rv2 == 0:
+      print('Successfully cleaned chromeos images from '
+            '"{0}/*{1}".'.format(chroot_tmp, subdir_suffix))
+    else:
+      print('Some chromeos images were not removed from '
+            '"{0}/*{1}".'.format(chroot_tmp, subdir_suffix))
+
+  rv += rv2
+
+  # Clean autotest files that were last accessed more than specified time.
+  rv2 = 0
+  cmd = (r'find {0}/*{1} -maxdepth 2 -type d '
+         r'\( -name "autotest_files" \) '
+         r'-amin +{2} '
+         r'-exec bash -c "echo rm -fr {{}}" \; '
+         r'-exec bash -c "rm -fr {{}}" \;').format(chroot_tmp, subdir_suffix,
+                                                   minutes)
+  if dry_run:
+    print('Going to execute:\n%s' % cmd)
+  else:
+    rv2 = ce.RunCommand(cmd, print_to_console=False)
+    if rv2 == 0:
+      print('Successfully cleaned chromeos image autotest directories from '
+            '"{0}/*{1}".'.format(chroot_tmp, subdir_suffix))
+    else:
+      print('Some image autotest directories were not removed from '
+            '"{0}/*{1}".'.format(chroot_tmp, subdir_suffix))
+
+  rv += rv2
+  return rv
+
+
+def CleanChromeOsTmpAndImages(days_to_preserve=1, dry_run=False):
+  """Delete temporaries, images under crostc/chromeos."""
+  chromeos_chroot_tmp = os.path.join(constants.CROSTC_WORKSPACE, 'chromeos',
+                                     'chroot', 'tmp')
+  # Clean files in tmp directory
+  rv = CleanChromeOsTmpFiles(chromeos_chroot_tmp, days_to_preserve, dry_run)
+  # Clean image files in *-release directories
+  rv += CleanChromeOsImageFiles(chromeos_chroot_tmp, '-release',
+                                days_to_preserve, dry_run)
+  # Clean image files in *-pfq directories
+  rv += CleanChromeOsImageFiles(chromeos_chroot_tmp, '-pfq', days_to_preserve,
+                                dry_run)
+
+  return rv
+
+
+def Main(argv):
+  """Delete nightly test data directories, tmps and test images."""
+  options = ProcessArguments(argv)
+  # Function 'isoweekday' returns 1(Monday) - 7 (Sunday).
+  d = datetime.datetime.today().isoweekday()
+  # We go back 1 week, delete from that day till we are
+  # options.days_to_preserve away from today.
+  s = d - 7
+  e = d - int(options.days_to_preserve)
+  rv = 0
+  for i in range(s + 1, e):
+    if i <= 0:
+      ## Wrap around if index is negative.  6 is from i + 7 - 1, because
+      ## DIR_BY_WEEKDAY starts from 0, while isoweekday is from 1-7.
+      dated_dir = DIR_BY_WEEKDAY[i + 6]
+    else:
+      dated_dir = DIR_BY_WEEKDAY[i - 1]
+
+    rv += 0 if CleanDatedDir(
+        os.path.join(constants.CROSTC_WORKSPACE, dated_dir),
+        options.dry_run) else 1
+
+## Finally clean temporaries, images under crostc/chromeos
+  rv2 = CleanChromeOsTmpAndImages(
+      int(options.days_to_preserve), options.dry_run)
+
+  return rv + rv2
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/automation/PRESUBMIT.py b/automation/PRESUBMIT.py
new file mode 100644
index 0000000..56a43e6
--- /dev/null
+++ b/automation/PRESUBMIT.py
@@ -0,0 +1,14 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+# Presubmit script for cc'ing c-compiler-chrome on automation related CL's.
+#
+# PRESUBMIT METADATA:
+# [
+# MailTo(
+#   p4_filespecs = [
+#     "//depot2/gcctools/chromeos/v14/automation/...",
+#     ],
+#   addresses = ["c-compiler-chrome"],
+#   owners = ["asharif", "llozano", "bjanakiraman", "yunlian"]
+#   ),
+# ]
diff --git a/automation/__init__.py b/automation/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/automation/__init__.py
@@ -0,0 +1 @@
+
diff --git a/automation/all_tests.py b/automation/all_tests.py
new file mode 100644
index 0000000..e7b7088
--- /dev/null
+++ b/automation/all_tests.py
@@ -0,0 +1,16 @@
+import glob
+import sys
+import unittest
+
+sys.path.insert(0, 'server')
+sys.path.insert(0, 'clients')
+sys.path.insert(0, 'common')
+
+test_file_strings = glob.glob('*/*_test.py')
+module_strings = [str[0:len(str) - 3] for str in test_file_strings]
+for i in range(len(module_strings)):
+  module_strings[i] = module_strings[i].split('/')[-1]
+suites = [unittest.defaultTestLoader.loadTestsFromName(str)
+          for str in module_strings]
+testSuite = unittest.TestSuite(suites)
+text_runner = unittest.TextTestRunner().run(testSuite)
diff --git a/automation/clients/__init__.py b/automation/clients/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/automation/clients/__init__.py
@@ -0,0 +1 @@
+
diff --git a/automation/clients/android.py b/automation/clients/android.py
new file mode 100755
index 0000000..603744b
--- /dev/null
+++ b/automation/clients/android.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Client for Android nightly jobs.
+
+Does the following jobs:
+  1. Checkout android toolchain sources
+  2. Build Android toolchain
+  3. Build Android tree
+  4. Checkout/build/run Android benchmarks (TODO)
+  5. Generate size/performance dashboard ? (TODO)
+"""
+
+__author__ = 'jingyu@google.com (Jing Yu)'
+
+import optparse
+import pickle
+import sys
+import xmlrpclib
+
+from automation.clients.helper import android
+from automation.common import job_group
+from automation.common import logger
+
+
+class AndroidToolchainNightlyClient(object):
+  VALID_GCC_VERSIONS = ['4.4.3', '4.6', 'google_main', 'fsf_trunk']
+
+  def __init__(self, gcc_version, is_release):
+    assert gcc_version in self.VALID_GCC_VERSIONS
+    self.gcc_version = gcc_version
+    if is_release:
+      self.build_type = 'RELEASE'
+    else:
+      self.build_type = 'DEVELOPMENT'
+
+  def Run(self):
+    server = xmlrpclib.Server('http://localhost:8000')
+    server.ExecuteJobGroup(pickle.dumps(self.CreateJobGroup()))
+
+  def CreateJobGroup(self):
+    factory = android.JobsFactory(self.gcc_version, self.build_type)
+
+    p4_androidtc_job, checkout_dir_dep = factory.CheckoutAndroidToolchain()
+
+    tc_build_job, tc_prefix_dep = factory.BuildAndroidToolchain(
+        checkout_dir_dep)
+
+    tree_build_job = factory.BuildAndroidImage(tc_prefix_dep)
+
+    benchmark_job = factory.Benchmark(tc_prefix_dep)
+
+    all_jobs = [p4_androidtc_job, tc_build_job, tree_build_job, benchmark_job]
+
+    return job_group.JobGroup('androidtoolchain_nightly', all_jobs, True, False)
+
+
+@logger.HandleUncaughtExceptions
+def Main(argv):
+  valid_gcc_versions_string = ', '.join(
+      AndroidToolchainNightlyClient.VALID_GCC_VERSIONS)
+
+  parser = optparse.OptionParser()
+  parser.add_option('--with-gcc-version',
+                    dest='gcc_version',
+                    default='4.6',
+                    action='store',
+                    choices=AndroidToolchainNightlyClient.VALID_GCC_VERSIONS,
+                    help='gcc version: %s.' % valid_gcc_versions_string)
+  parser.add_option('-r',
+                    '--release',
+                    dest='is_release',
+                    default=False,
+                    action='store_true',
+                    help='Build a release toolchain?')
+  options, _ = parser.parse_args(argv)
+
+  option_list = [opt.dest for opt in parser.option_list if opt.dest]
+
+  kwargs = dict((option, getattr(options, option)) for option in option_list)
+
+  client = AndroidToolchainNightlyClient(**kwargs)
+  client.Run()
+
+
+if __name__ == '__main__':
+  Main(sys.argv)
diff --git a/automation/clients/chromeos.py b/automation/clients/chromeos.py
new file mode 100755
index 0000000..084f784
--- /dev/null
+++ b/automation/clients/chromeos.py
@@ -0,0 +1,104 @@
+#!/usr/bin/python
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""chromeos.py: Build & Test ChromeOS using custom compilers."""
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import logging
+import optparse
+import os
+import pickle
+import sys
+import xmlrpclib
+
+from automation.clients.helper import jobs
+from automation.clients.helper import perforce
+from automation.common import command as cmd
+from automation.common import job_group
+from automation.common import logger
+
+
+class ChromeOSNightlyClient(object):
+  DEPOT2_DIR = '//depot2/'
+  P4_CHECKOUT_DIR = 'perforce2/'
+  P4_VERSION_DIR = os.path.join(P4_CHECKOUT_DIR, 'gcctools/chromeos/v14')
+
+  def __init__(self, board, remote, gcc_githash, p4_snapshot=''):
+    self._board = board
+    self._remote = remote
+    self._gcc_githash = gcc_githash
+    self._p4_snapshot = p4_snapshot
+
+  def Run(self):
+    server = xmlrpclib.Server('http://localhost:8000')
+    server.ExecuteJobGroup(pickle.dumps(self.CreateJobGroup()))
+
+  def CheckoutV14Dir(self):
+    p4view = perforce.View(self.DEPOT2_DIR, [
+        perforce.PathMapping('gcctools/chromeos/v14/...')
+    ])
+    return self.GetP4Snapshot(p4view)
+
+  def GetP4Snapshot(self, p4view):
+    p4client = perforce.CommandsFactory(self.P4_CHECKOUT_DIR, p4view)
+
+    if self._p4_snapshot:
+      return p4client.CheckoutFromSnapshot(self._p4_snapshot)
+    else:
+      return p4client.SetupAndDo(p4client.Sync(), p4client.Remove())
+
+  def CreateJobGroup(self):
+    chain = cmd.Chain(
+        self.CheckoutV14Dir(),
+        cmd.Shell('python',
+                  os.path.join(self.P4_VERSION_DIR, 'test_toolchains.py'),
+                  '--force-mismatch',
+                  '--clean',
+                  '--public',  # crbug.com/145822
+                  '--board=%s' % self._board,
+                  '--remote=%s' % self._remote,
+                  '--githashes=%s' % self._gcc_githash))
+    label = 'testlabel'
+    job = jobs.CreateLinuxJob(label, chain, timeout=24 * 60 * 60)
+
+    return job_group.JobGroup(label, [job], True, False)
+
+
+@logger.HandleUncaughtExceptions
+def Main(argv):
+  parser = optparse.OptionParser()
+  parser.add_option('-b',
+                    '--board',
+                    dest='board',
+                    help='Run performance tests on these boards')
+  parser.add_option('-r',
+                    '--remote',
+                    dest='remote',
+                    help='Run performance tests on these remotes')
+  parser.add_option('-g',
+                    '--gcc_githash',
+                    dest='gcc_githash',
+                    help='Use this gcc_githash.')
+  parser.add_option('-p',
+                    '--p4_snapshot',
+                    dest='p4_snapshot',
+                    default='',
+                    help='Use this p4_snapshot.')
+  options, _ = parser.parse_args(argv)
+
+  if not all([options.board, options.remote, options.gcc_githash]):
+    logging.error('Specify a board, remote and gcc_githash')
+    return 1
+
+  client = ChromeOSNightlyClient(options.board,
+                                 options.remote,
+                                 options.gcc_githash,
+                                 p4_snapshot=options.p4_snapshot)
+  client.Run()
+  return 0
+
+
+if __name__ == '__main__':
+  logger.SetUpRootLogger(level=logging.DEBUG, display_flags={'name': False})
+  sys.exit(Main(sys.argv))
diff --git a/automation/clients/crosstool.py b/automation/clients/crosstool.py
new file mode 100755
index 0000000..6572034
--- /dev/null
+++ b/automation/clients/crosstool.py
@@ -0,0 +1,102 @@
+#!/usr/bin/python
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+import logging
+import optparse
+import pickle
+import sys
+import xmlrpclib
+
+from automation.clients.helper import crosstool
+from automation.common import job_group
+from automation.common import logger
+
+
+class CrosstoolNightlyClient(object):
+  VALID_TARGETS = ['gcc-4.6.x-ubuntu_lucid-arm',
+                   'gcc-4.6.x-ubuntu_lucid-x86_64',
+                   'gcc-4.6.x-grtev2-armv7a-vfpv3.d16-hard',
+                   'gcc-4.6.x-glibc-2.11.1-grte',
+                   'gcc-4.6.x-glibc-2.11.1-powerpc']
+  VALID_BOARDS = ['qemu', 'pandaboard', 'unix']
+
+  def __init__(self, target, boards):
+    assert target in self.VALID_TARGETS
+    assert all(board in self.VALID_BOARDS for board in boards)
+
+    self._target = target
+    self._boards = boards
+
+  def Run(self):
+    server = xmlrpclib.Server('http://localhost:8000')
+    server.ExecuteJobGroup(pickle.dumps(self.CreateJobGroup()))
+
+  def CreateJobGroup(self):
+    factory = crosstool.JobsFactory()
+
+    checkout_crosstool_job, checkout_dir, manifests_dir = \
+        factory.CheckoutCrosstool(self._target)
+
+    all_jobs = [checkout_crosstool_job]
+
+    # Build crosstool target
+    build_release_job, build_tree_dir = factory.BuildRelease(checkout_dir,
+                                                             self._target)
+    all_jobs.append(build_release_job)
+
+    testruns = []
+
+    # Perform crosstool tests
+    for board in self._boards:
+      for component in ('gcc', 'binutils'):
+        test_job, testrun_dir = factory.RunTests(checkout_dir, build_tree_dir,
+                                                 self._target, board, component)
+        all_jobs.append(test_job)
+        testruns.append(testrun_dir)
+
+    if testruns:
+      all_jobs.append(factory.GenerateReport(testruns, manifests_dir,
+                                             self._target, self._boards))
+
+    return job_group.JobGroup('Crosstool Nightly Build (%s)' % self._target,
+                              all_jobs, True, False)
+
+
+@logger.HandleUncaughtExceptions
+def Main(argv):
+  valid_boards_string = ', '.join(CrosstoolNightlyClient.VALID_BOARDS)
+
+  parser = optparse.OptionParser()
+  parser.add_option(
+      '-b',
+      '--board',
+      dest='boards',
+      action='append',
+      choices=CrosstoolNightlyClient.VALID_BOARDS,
+      default=[],
+      help=('Run DejaGNU tests on selected boards: %s.' % valid_boards_string))
+  options, args = parser.parse_args(argv)
+
+  if len(args) == 2:
+    target = args[1]
+  else:
+    logging.error('Exactly one target required as a command line argument!')
+    logging.info('List of valid targets:')
+    for pair in enumerate(CrosstoolNightlyClient.VALID_TARGETS, start=1):
+      logging.info('%d) %s', pair)
+    sys.exit(1)
+
+  option_list = [opt.dest for opt in parser.option_list if opt.dest]
+
+  kwargs = dict((option, getattr(options, option)) for option in option_list)
+
+  client = CrosstoolNightlyClient(target, **kwargs)
+  client.Run()
+
+
+if __name__ == '__main__':
+  logger.SetUpRootLogger(level=logging.DEBUG, display_flags={'name': False})
+  Main(sys.argv)
diff --git a/automation/clients/dejagnu_compiler.py b/automation/clients/dejagnu_compiler.py
new file mode 100755
index 0000000..eb923d5
--- /dev/null
+++ b/automation/clients/dejagnu_compiler.py
@@ -0,0 +1,98 @@
+#!/usr/bin/python
+#
+# Copyright 2012 Google Inc. All Rights Reserved.
+"""dejagnu_compiler.py: Run dejagnu test."""
+
+__author__ = 'shenhan@google.com  (Han Shen)'
+
+import logging
+import optparse
+import os
+import pickle
+import sys
+import xmlrpclib
+
+from automation.clients.helper import jobs
+from automation.clients.helper import perforce
+from automation.common import command as cmd
+from automation.common import job_group
+from automation.common import logger
+
+
+class DejagnuCompilerNightlyClient:
+  DEPOT2_DIR = '//depot2/'
+  P4_CHECKOUT_DIR = 'perforce2/'
+  P4_VERSION_DIR = os.path.join(P4_CHECKOUT_DIR, 'gcctools/chromeos/v14')
+
+  def __init__(self, board, remote, p4_snapshot, cleanup):
+    self._board = board
+    self._remote = remote
+    self._p4_snapshot = p4_snapshot
+    self._cleanup = cleanup
+
+  def Run(self):
+    server = xmlrpclib.Server('http://localhost:8000')
+    server.ExecuteJobGroup(pickle.dumps(self.CreateJobGroup()))
+
+  def CheckoutV14Dir(self):
+    p4view = perforce.View(self.DEPOT2_DIR, [
+        perforce.PathMapping('gcctools/chromeos/v14/...')
+    ])
+    return self.GetP4Snapshot(p4view)
+
+  def GetP4Snapshot(self, p4view):
+    p4client = perforce.CommandsFactory(self.P4_CHECKOUT_DIR, p4view)
+
+    if self._p4_snapshot:
+      return p4client.CheckoutFromSnapshot(self._p4_snapshot)
+    else:
+      return p4client.SetupAndDo(p4client.Sync(), p4client.Remove())
+
+  def CreateJobGroup(self):
+    chain = cmd.Chain(self.CheckoutV14Dir(), cmd.Shell(
+        'python', os.path.join(self.P4_VERSION_DIR, 'test_gcc_dejagnu.py'),
+        '--board=%s' % self._board, '--remote=%s' % self._remote,
+        '--cleanup=%s' % self._cleanup))
+    label = 'dejagnu'
+    job = jobs.CreateLinuxJob(label, chain, timeout=8 * 60 * 60)
+    return job_group.JobGroup(label,
+                              [job],
+                              cleanup_on_failure=True,
+                              cleanup_on_completion=True)
+
+
+@logger.HandleUncaughtExceptions
+def Main(argv):
+  parser = optparse.OptionParser()
+  parser.add_option('-b',
+                    '--board',
+                    dest='board',
+                    help='Run performance tests on these boards')
+  parser.add_option('-r',
+                    '--remote',
+                    dest='remote',
+                    help='Run performance tests on these remotes')
+  parser.add_option('-p',
+                    '--p4_snapshot',
+                    dest='p4_snapshot',
+                    help=('For development only. '
+                          'Use snapshot instead of checking out.'))
+  parser.add_option('--cleanup',
+                    dest='cleanup',
+                    default='mount',
+                    help=('Cleanup test directory, values could be one of '
+                          '"mount", "chroot" or "chromeos"'))
+  options, _ = parser.parse_args(argv)
+
+  if not all([options.board, options.remote]):
+    logging.error('Specify a board and remote.')
+    return 1
+
+  client = DejagnuCompilerNightlyClient(options.board, options.remote,
+                                        options.p4_snapshot, options.cleanup)
+  client.Run()
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv))
diff --git a/automation/clients/helper/__init__.py b/automation/clients/helper/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/automation/clients/helper/__init__.py
@@ -0,0 +1 @@
+
diff --git a/automation/clients/helper/android.py b/automation/clients/helper/android.py
new file mode 100644
index 0000000..7ff2ac1
--- /dev/null
+++ b/automation/clients/helper/android.py
@@ -0,0 +1,319 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Helper modules for Android toolchain test infrastructure.
+
+Provides following Android toolchain test jobs and commands.
+. Checkout Android toolchain source code
+. Build Android toolchain
+. Checkout and build Android tree
+. Checkout/build/run Android benchmarks, generate size dashboard
+. Transform size dashboard to report, send perflab jobid to
+  perflab dashboard server.(TODO)
+"""
+
+__author__ = 'jingyu@google.com (Jing Yu)'
+
+import os.path
+
+from automation.clients.helper import jobs
+from automation.clients.helper import perforce
+from automation.common import command as cmd
+from automation.common import job
+
+
+class JobsFactory(object):
+
+  def __init__(self, gcc_version='4.4.3', build_type='DEVELOPMENT'):
+    assert gcc_version in ['4.4.3', '4.6', 'google_main', 'fsf_trunk']
+    assert build_type in ['DEVELOPMENT', 'RELEASE']
+
+    self.gcc_version = gcc_version
+    self.commands = CommandsFactory(gcc_version, build_type)
+    self.tc_tag = 'gcc-%s-%s' % (gcc_version, build_type)
+
+  def CheckoutAndroidToolchain(self):
+    """Check out Android toolchain sources by release and gcc version."""
+    command = self.commands.CheckoutAndroidToolchain()
+    new_job = jobs.CreateLinuxJob('AndroidCheckoutToolchain(%s)' % self.tc_tag,
+                                  command)
+    checkout_dir_dep = job.FolderDependency(new_job, self.commands.CHECKOUT_DIR)
+    return new_job, checkout_dir_dep
+
+  def BuildAndroidToolchain(self, checkout_dir_dep):
+    """Build Android Toolchain."""
+    command = self.commands.BuildAndroidToolchain()
+    new_job = jobs.CreateLinuxJob('AndroidBuildToolchain(%s)' % self.tc_tag,
+                                  command)
+    new_job.DependsOnFolder(checkout_dir_dep)
+    tc_prefix_dep = job.FolderDependency(new_job,
+                                         self.commands.toolchain_prefix_dir)
+    return new_job, tc_prefix_dep
+
+  def BuildAndroidImage(self,
+                        tc_prefix_dep,
+                        product='stingray',
+                        branch='ics-release'):
+    assert product in ['stingray', 'passion', 'trygon', 'soju']
+    assert branch in ['honeycomb-release', 'ics-release']
+    command = self.commands.BuildAndroidImage(product, branch)
+    new_job = jobs.CreateLinuxJob('AndroidGetBuildTree(%s)' % self.tc_tag,
+                                  command)
+    new_job.DependsOnFolder(tc_prefix_dep)
+    return new_job
+
+  def Benchmark(self, tc_prefix_dep, arch='soju'):
+    assert arch in ['soju', 'stingray']
+    script_cmd = self.commands.CheckoutScripts()
+    experiment_tag = 'android/nightly/%s/%s/$JOB_ID' % (self.tc_tag, arch)
+    build_run_benchmark_cmd = self.commands.BuildRunBenchmark(arch,
+                                                              experiment_tag)
+    command = cmd.Chain(script_cmd, build_run_benchmark_cmd)
+    new_job = jobs.CreateLinuxJob('AndroidBenchmarking(%s)' % self.tc_tag,
+                                  command)
+    new_job.DependsOnFolder(tc_prefix_dep)
+    return new_job
+
+
+class CommandsFactory(object):
+  CHECKOUT_DIR = 'androidtc-checkout-dir'
+  TOOLCHAIN_SRC_DIR = os.path.join(CHECKOUT_DIR, 'src')
+  TOOLCHAIN_BUILD_DIR = 'obj'
+  ANDROID_TREES_DIR = 'android_trees'
+  TOOLS_DIR = 'android-tools'
+  BENCHMARK_OUT_DIR = 'results'
+
+  def __init__(self, gcc_version, build_type):
+    assert gcc_version in ['4.4.3', '4.6', 'google_main', 'fsf_trunk']
+    assert build_type in ['DEVELOPMENT', 'RELEASE']
+
+    self.build_type = build_type
+    self.gcc_version = gcc_version
+    self.binutils_version = '2.21'
+    self.gold_version = '2.21'
+    self.toolchain_prefix_dir = 'install-gcc-%s-%s' % (gcc_version, build_type)
+    self.p4client = self._CreatePerforceClient()
+    self.scripts = ScriptsFactory(self.gcc_version, self.binutils_version,
+                                  self.gold_version)
+
+  def _CreatePerforceClient(self):
+    p4_dev_path = 'gcctools/google_vendor_src_branch'
+    mobile_rel_branch = ('branches/'
+                         'mobile_toolchain_v15_release_branch/gcctools/'
+                         'google_vendor_src_branch')
+    gcc_443_rel_branch = ('branches/'
+                          'android_compiler_v14_release_branch/gcctools/'
+                          'google_vendor_src_branch')
+
+    # Common views for tools
+    p4view = perforce.View('depot2', perforce.PathMapping.ListFromPathTuples([(
+        'gcctools/android/build/...', 'src/build/...'), (
+            'gcctools/android/Tarballs/...', 'src/tarballs/...')]))
+    for mapping in perforce.PathMapping.ListFromPathDict(
+        {'gcctools/android': ['tools/scripts/...', 'master/...']}):
+      p4view.add(mapping)
+
+    # Add views for gdb
+    p4view.add(perforce.PathMapping(p4_dev_path, 'src',
+                                    'gdb/gdb-7.1.x-android/...'))
+
+    # Add view for binutils for ld and gold
+    if self.build_type is 'RELEASE':
+      binutils_branch = mobile_rel_branch
+    else:
+      binutils_branch = p4_dev_path
+    p4view.add(perforce.PathMapping(binutils_branch, 'src', (
+        'binutils/binutils-%s/...' % self.binutils_version)))
+    if self.binutils_version != self.gold_version:
+      p4view.add(perforce.PathMapping(binutils_branch, 'src', (
+          'binutils/binutils-%s/...' % self.gold_version)))
+
+    # Add view for gcc if gcc_version is '4.4.3'.
+    if self.gcc_version == '4.4.3':
+      gcc443_path = 'gcc/gcc-4.4.3/...'
+      if self.build_type is 'RELEASE':
+        p4view.add(perforce.PathMapping(gcc_443_rel_branch, 'src', gcc443_path))
+      else:
+        p4view.add(perforce.PathMapping(p4_dev_path, 'src', gcc443_path))
+
+    return perforce.CommandsFactory(self.CHECKOUT_DIR, p4view)
+
+  def _CheckoutGCCFromSVN(self):
+    """Check out gcc from fsf svn.
+
+       Return the command that check out gcc from svn
+       to gcc_required_dir (=TOOLCHAIN_SRC_DIR/src/gcc/gcc-xxx).
+
+       TODO:
+         Create a svn class that does these jobs.
+         Parallelize p4 checkout and svn checkout.
+    """
+    if self.gcc_version == '4.4.3':
+      return ''
+    assert self.gcc_version in ['4.6', 'google_main', 'fsf_trunk']
+
+    gcc_branches_dir = {'4.6': 'branches/google/gcc-4_6',
+                        'google_main': 'branches/google/main',
+                        'fsf_trunk': 'trunk'}
+
+    # Find GCC revision number, output it to TOOLCHAIN_SRC_DIR/CLNUM_GCC
+    svn_get_revision = cmd.Pipe(
+        cmd.Shell('svn', 'info'),
+        cmd.Shell('grep', '"Revision:"'),
+        cmd.Shell('sed', '-E', '"s,Revision: ([0-9]+).*,\\1,"'),
+        output='../../../CLNUM_GCC')
+
+    svn_co_command = 'svn co svn://gcc.gnu.org/svn/gcc/%s .' % (
+        gcc_branches_dir[self.gcc_version])
+
+    gcc_required_dir = os.path.join(self.TOOLCHAIN_SRC_DIR, 'gcc',
+                                    'gcc-%s' % self.gcc_version)
+
+    return cmd.Chain(
+        cmd.MakeDir(gcc_required_dir),
+        cmd.Wrapper(
+            cmd.Chain(svn_co_command, svn_get_revision),
+            cwd=gcc_required_dir))
+
+  def CheckoutAndroidToolchain(self):
+    p4client = self.p4client
+    command = p4client.SetupAndDo(p4client.Sync(),
+                                  p4client.SaveCurrentCLNumber('CLNUM'),
+                                  p4client.Remove())
+    if self.gcc_version != '4.4.3':
+      command.append(self._CheckoutGCCFromSVN())
+
+    return command
+
+  def BuildAndroidToolchain(self):
+    script_cmd = self.scripts.BuildAndroidToolchain(
+        self.toolchain_prefix_dir, self.CHECKOUT_DIR, self.TOOLCHAIN_BUILD_DIR,
+        self.TOOLCHAIN_SRC_DIR)
+
+    # Record toolchain and gcc CL number
+    record_cl_cmd = cmd.Copy(
+        os.path.join(self.CHECKOUT_DIR, 'CLNUM*'),
+        to_dir=self.toolchain_prefix_dir)
+    save_cmd = cmd.Tar(
+        os.path.join('$JOB_TMP', 'results', '%s.tar.bz2' %
+                     self.toolchain_prefix_dir), self.toolchain_prefix_dir)
+    return cmd.Chain(script_cmd, record_cl_cmd, save_cmd)
+
+  def _BuildAndroidTree(self, local_android_branch_dir, product):
+    target_tools_prefix = os.path.join('$JOB_TMP', self.toolchain_prefix_dir,
+                                       'bin', 'arm-linux-androideabi-')
+    java_path = '/usr/lib/jvm/java-6-sun/bin'
+    build_cmd = cmd.Shell('make', '-j8', 'PRODUCT-%s-userdebug' % product,
+                          'TARGET_TOOLS_PREFIX=%s' % target_tools_prefix,
+                          'PATH=%s:$PATH' % java_path)
+    return cmd.Wrapper(build_cmd, cwd=local_android_branch_dir)
+
+  def BuildAndroidImage(self, product, branch):
+    assert product in ['stingray', 'passion', 'trygon', 'soju']
+
+    # Copy the tree from atree.mtv.corp to ANDROID_TREES_DIR/branch
+    androidtrees_host = 'atree.mtv.corp.google.com'
+    androidtrees_path = ('/usr/local/google2/home/mobiletc-prebuild/'
+                         'android_trees')
+    remote_android_branch_path = os.path.join(androidtrees_path, branch)
+    local_android_branch_dir = os.path.join(self.ANDROID_TREES_DIR, branch)
+    gettree_cmd = cmd.RemoteCopyFrom(
+        androidtrees_host, remote_android_branch_path, local_android_branch_dir)
+
+    # Configure and build the tree
+    buildtree_cmd = self._BuildAndroidTree(local_android_branch_dir, product)
+
+    # Compress and copy system.img to result
+    result_system_img = os.path.join(local_android_branch_dir, 'out', 'target',
+                                     'product', product, 'system.img')
+    copy_img = cmd.Copy(result_system_img, to_dir='results')
+    compress_img = cmd.Shell('bzip2', os.path.join('results', 'system.img'))
+
+    return cmd.Chain(gettree_cmd, buildtree_cmd, copy_img, compress_img)
+
+  def CheckoutScripts(self):
+    p4view = perforce.View('depot2',
+                           [perforce.PathMapping('gcctools/android/tools/...',
+                                                 'tools/...')])
+    p4client = perforce.CommandsFactory(self.TOOLS_DIR, p4view)
+    return p4client.SetupAndDo(p4client.Sync(), p4client.Remove())
+
+  def BuildRunBenchmark(self, arch, run_experiment):
+    # Copy base benchmark binaries from atree.mtv.corp
+    base_benchbin_host = 'atree.mtv.corp.google.com'
+    base_benchbin_path = ('/usr/local/google2/home/mobiletc-prebuild/'
+                          'archive/v3binaries/2011-10-18')
+    local_basebenchbin_dir = 'base_benchmark_bin'
+    getbase_cmd = cmd.RemoteCopyFrom(base_benchbin_host, base_benchbin_path,
+                                     local_basebenchbin_dir)
+
+    # Build and run benchmark.
+    android_arch = 'android_%s' % arch
+    run_label = 'normal'
+    benchmark_cmd = self.scripts.RunBenchmark(
+        self.toolchain_prefix_dir, self.TOOLS_DIR, self.BENCHMARK_OUT_DIR,
+        run_label, run_experiment, android_arch, local_basebenchbin_dir)
+
+    # Extract jobid from BENCHMARK_OUT_DIR/log/jobid_normal.log file.
+    # Copy jobid to www server to generate performance dashboard.
+    # TODO(jingyu)
+
+    return cmd.Chain(getbase_cmd, benchmark_cmd)
+
+
+class ScriptsFactory(object):
+
+  def __init__(self, gcc_version, binutils_version, gold_version):
+    self._gcc_version = gcc_version
+    self._binutils_version = binutils_version
+    self._gold_version = gold_version
+
+  def BuildAndroidToolchain(self, toolchain_prefix_dir, checkout_dir,
+                            toolchain_build_dir, androidtc_src_dir):
+    if self._gcc_version == '4.4.3':
+      gold_option = 'both/gold'
+    else:
+      gold_option = 'default'
+
+    return cmd.Shell(
+        'build_androidtoolchain.sh',
+        '--toolchain-src=%s' % os.path.join('$JOB_TMP', androidtc_src_dir),
+        '--build-path=%s' % os.path.join('$JOB_TMP', toolchain_build_dir),
+        '--install-prefix=%s' % os.path.join('$JOB_TMP', toolchain_prefix_dir),
+        '--target=arm-linux-androideabi',
+        '--enable-gold=%s' % gold_option,
+        '--with-gcc-version=%s' % self._gcc_version,
+        '--with-binutils-version=%s' % self._binutils_version,
+        '--with-gold-version=%s' % self._gold_version,
+        '--with-gdb-version=7.1.x-android',
+        '--log-path=%s/logs' % '$JOB_HOME',
+        '--android-sysroot=%s' % os.path.join('$JOB_TMP', checkout_dir,
+                                              'gcctools', 'android', 'master',
+                                              'honeycomb_generic_sysroot'),
+        path=os.path.join(checkout_dir, 'gcctools', 'android', 'tools',
+                          'scripts'))
+
+  def RunBenchmark(self,
+                   toolchain_prefix_dir,
+                   checkout_dir,
+                   output_dir,
+                   run_label,
+                   run_experiment,
+                   arch,
+                   base_bench_bin=None):
+    if base_bench_bin:
+      base_bench_opt = '--base_benchmark_bin=%s' % base_bench_bin
+    else:
+      base_bench_opt = ''
+
+    return cmd.Shell(
+        'benchmark.sh',
+        '--android_toolchain=%s' % os.path.join('$JOB_TMP',
+                                                toolchain_prefix_dir),
+        '--bench_space=%s' % os.path.join('$JOB_TMP', 'bench'),
+        '--benchmark_bin=%s' % os.path.join('$JOB_TMP', output_dir,
+                                            'bench_bin'),
+        base_bench_opt,
+        '--log_path=%s' % os.path.join('$JOB_TMP', output_dir, 'log'),
+        '--arch=%s' % arch,
+        '--run_label=%s' % run_label,
+        '--run_experiment=%s' % run_experiment,
+        path=os.path.join(checkout_dir, 'tools', 'scripts'))
diff --git a/automation/clients/helper/chromeos.py b/automation/clients/helper/chromeos.py
new file mode 100644
index 0000000..e715745
--- /dev/null
+++ b/automation/clients/helper/chromeos.py
@@ -0,0 +1,180 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import os.path
+import re
+
+from automation.clients.helper import jobs
+from automation.clients.helper import perforce
+from automation.common import command as cmd
+from automation.common import machine
+
+
+class ScriptsFactory(object):
+
+  def __init__(self, chromeos_root, scripts_path):
+    self._chromeos_root = chromeos_root
+    self._scripts_path = scripts_path
+
+  def SummarizeResults(self, logs_path):
+    return cmd.Shell('summarize_results.py', logs_path, path=self._scripts_path)
+
+  def Buildbot(self, config_name):
+    buildbot = os.path.join(self._chromeos_root,
+                            'chromite/cbuildbot/cbuildbot.py')
+
+    return cmd.Shell(buildbot, '--buildroot=%s' % self._chromeos_root,
+                     '--resume', '--noarchive', '--noprebuilts', '--nosync',
+                     '--nouprev', '--notests', '--noclean', config_name)
+
+  def RunBenchmarks(self, board, tests):
+    image_path = os.path.join(self._chromeos_root, 'src/build/images', board,
+                              'latest/chromiumos_image.bin')
+
+    return cmd.Shell('cros_run_benchmarks.py',
+                     '--remote=$SECONDARY_MACHINES[0]',
+                     '--board=%s' % board,
+                     '--tests=%s' % tests,
+                     '--full_table',
+                     image_path,
+                     path='/home/mobiletc-prebuild')
+
+  def SetupChromeOS(self, version='latest', use_minilayout=False):
+    setup_chromeos = cmd.Shell('setup_chromeos.py',
+                               '--public',
+                               '--dir=%s' % self._chromeos_root,
+                               '--version=%s' % version,
+                               path=self._scripts_path)
+
+    if use_minilayout:
+      setup_chromeos.AddOption('--minilayout')
+    return setup_chromeos
+
+
+class CommandsFactory(object):
+  DEPOT2_DIR = '//depot2/'
+  P4_CHECKOUT_DIR = 'perforce2/'
+  P4_VERSION_DIR = os.path.join(P4_CHECKOUT_DIR, 'gcctools/chromeos/v14')
+
+  CHROMEOS_ROOT = 'chromeos'
+  CHROMEOS_SCRIPTS_DIR = os.path.join(CHROMEOS_ROOT, 'src/scripts')
+  CHROMEOS_BUILDS_DIR = '/home/mobiletc-prebuild/www/chromeos_builds'
+
+  def __init__(self, chromeos_version, board, toolchain, p4_snapshot):
+    self.chromeos_version = chromeos_version
+    self.board = board
+    self.toolchain = toolchain
+    self.p4_snapshot = p4_snapshot
+
+    self.scripts = ScriptsFactory(self.CHROMEOS_ROOT, self.P4_VERSION_DIR)
+
+  def AddBuildbotConfig(self, config_name, config_list):
+    config_header = 'add_config(%r, [%s])' % (config_name,
+                                              ', '.join(config_list))
+    config_file = os.path.join(self.CHROMEOS_ROOT,
+                               'chromite/cbuildbot/cbuildbot_config.py')
+    quoted_config_header = '%r' % config_header
+    quoted_config_header = re.sub("'", "\\\"", quoted_config_header)
+
+    return cmd.Pipe(
+        cmd.Shell('echo', quoted_config_header),
+        cmd.Shell('tee', '--append', config_file))
+
+  def RunBuildbot(self):
+    config_dict = {'board': self.board,
+                   'build_tests': True,
+                   'chrome_tests': True,
+                   'unittests': False,
+                   'vm_tests': False,
+                   'prebuilts': False,
+                   'latest_toolchain': True,
+                   'useflags': ['chrome_internal'],
+                   'usepkg_chroot': True,
+                   self.toolchain: True}
+    config_name = '%s-toolchain-test' % self.board
+    if 'arm' in self.board:
+      config_list = ['arm']
+    else:
+      config_list = []
+    config_list.extend(['internal', 'full', 'official', str(config_dict)])
+
+    add_config_shell = self.AddBuildbotConfig(config_name, config_list)
+    return cmd.Chain(add_config_shell, self.scripts.Buildbot(config_name))
+
+  def BuildAndBenchmark(self):
+    return cmd.Chain(
+        self.CheckoutV14Dir(),
+        self.SetupChromeOSCheckout(self.chromeos_version, True),
+        self.RunBuildbot(),
+        self.scripts.RunBenchmarks(self.board, 'BootPerfServer,10:Page,3'))
+
+  def GetP4Snapshot(self, p4view):
+    p4client = perforce.CommandsFactory(self.P4_CHECKOUT_DIR, p4view)
+
+    if self.p4_snapshot:
+      return p4client.CheckoutFromSnapshot(self.p4_snapshot)
+    else:
+      return p4client.SetupAndDo(p4client.Sync(), p4client.Remove())
+
+  def CheckoutV14Dir(self):
+    p4view = perforce.View(self.DEPOT2_DIR, [
+        perforce.PathMapping('gcctools/chromeos/v14/...')
+    ])
+    return self.GetP4Snapshot(p4view)
+
+  def SetupChromeOSCheckout(self, version, use_minilayout=False):
+    version_re = '^\d+\.\d+\.\d+\.[a-zA-Z0-9]+$'
+
+    location = os.path.join(self.CHROMEOS_BUILDS_DIR, version)
+
+    if version in ['weekly', 'quarterly']:
+      assert os.path.islink(location), 'Symlink %s does not exist.' % location
+
+      location_expanded = os.path.abspath(os.path.realpath(location))
+      version = os.path.basename(location_expanded)
+
+    if version in ['top', 'latest'] or re.match(version_re, version):
+      return self.scripts.SetupChromeOS(version, use_minilayout)
+
+    elif version.endswith('bz2') or version.endswith('gz'):
+      return cmd.UnTar(location_expanded, self.CHROMEOS_ROOT)
+
+    else:
+      signature_file_location = os.path.join(location,
+                                             'src/scripts/enter_chroot.sh')
+      assert os.path.exists(signature_file_location), (
+          'Signature file %s does not exist.' % signature_file_location)
+
+      return cmd.Copy(location, to_dir=self.CHROMEOS_ROOT, recursive=True)
+
+
+class JobsFactory(object):
+
+  def __init__(self,
+               chromeos_version='top',
+               board='x86-mario',
+               toolchain='trunk',
+               p4_snapshot=''):
+    self.chromeos_version = chromeos_version
+    self.board = board
+    self.toolchain = toolchain
+
+    self.commands = CommandsFactory(chromeos_version, board, toolchain,
+                                    p4_snapshot)
+
+  def BuildAndBenchmark(self):
+    command = self.commands.BuildAndBenchmark()
+
+    label = 'BuildAndBenchmark(%s,%s,%s)' % (self.toolchain, self.board,
+                                             self.chromeos_version)
+
+    machine_label = 'chromeos-%s' % self.board
+
+    job = jobs.CreateLinuxJob(label, command)
+    job.DependsOnMachine(
+        machine.MachineSpecification(label=machine_label,
+                                     lock_required=True),
+        False)
+
+    return job
diff --git a/automation/clients/helper/crosstool.py b/automation/clients/helper/crosstool.py
new file mode 100644
index 0000000..80154b2
--- /dev/null
+++ b/automation/clients/helper/crosstool.py
@@ -0,0 +1,168 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+import os.path
+import time
+
+from automation.clients.helper import jobs
+from automation.clients.helper import perforce
+from automation.common import command as cmd
+from automation.common import job
+
+
+class JobsFactory(object):
+
+  def __init__(self):
+    self.commands = CommandsFactory()
+
+  def CheckoutCrosstool(self, target):
+    command = self.commands.CheckoutCrosstool()
+    new_job = jobs.CreateLinuxJob('CheckoutCrosstool(%s)' % target, command)
+    checkout_dir_dep = job.FolderDependency(new_job,
+                                            CommandsFactory.CHECKOUT_DIR)
+    manifests_dir_dep = job.FolderDependency(
+        new_job, os.path.join(self.commands.buildit_path, target), 'manifests')
+    return new_job, checkout_dir_dep, manifests_dir_dep
+
+  def BuildRelease(self, checkout_dir, target):
+    command = self.commands.BuildRelease(target)
+    new_job = jobs.CreateLinuxJob('BuildRelease(%s)' % target, command)
+    new_job.DependsOnFolder(checkout_dir)
+    build_tree_dep = job.FolderDependency(new_job,
+                                          self.commands.buildit_work_dir_path)
+    return new_job, build_tree_dep
+
+  def RunTests(self, checkout_dir, build_tree_dir, target, board, component):
+    command = self.commands.RunTests(target, board, component)
+    new_job = jobs.CreateLinuxJob('RunTests(%s, %s, %s)' %
+                                  (target, component, board), command)
+    new_job.DependsOnFolder(checkout_dir)
+    new_job.DependsOnFolder(build_tree_dir)
+    testrun_dir_dep = job.FolderDependency(
+        new_job, self.commands.dejagnu_output_path, board)
+    return new_job, testrun_dir_dep
+
+  def GenerateReport(self, testrun_dirs, manifests_dir, target, boards):
+    command = self.commands.GenerateReport(boards)
+    new_job = jobs.CreateLinuxJob('GenerateReport(%s)' % target, command)
+    new_job.DependsOnFolder(manifests_dir)
+    for testrun_dir in testrun_dirs:
+      new_job.DependsOnFolder(testrun_dir)
+    return new_job
+
+
+class CommandsFactory(object):
+  CHECKOUT_DIR = 'crosstool-checkout-dir'
+
+  def __init__(self):
+    self.buildit_path = os.path.join(self.CHECKOUT_DIR, 'gcctools', 'crosstool',
+                                     'v15')
+
+    self.buildit_work_dir = 'buildit-tmp'
+    self.buildit_work_dir_path = os.path.join('$JOB_TMP', self.buildit_work_dir)
+    self.dejagnu_output_path = os.path.join(self.buildit_work_dir_path,
+                                            'dejagnu-output')
+
+    paths = {
+        'gcctools': [
+            'crosstool/v15/...', 'scripts/...'
+        ],
+        'gcctools/google_vendor_src_branch': [
+            'binutils/binutils-2.21/...', 'gdb/gdb-7.2.x/...',
+            'zlib/zlib-1.2.3/...'
+        ],
+        'gcctools/vendor_src': [
+            'gcc/google/gcc-4_6/...'
+        ]
+    }
+
+    p4view = perforce.View('depot2',
+                           perforce.PathMapping.ListFromPathDict(paths))
+
+    self.p4client = perforce.CommandsFactory(self.CHECKOUT_DIR, p4view)
+
+  def CheckoutCrosstool(self):
+    p4client = self.p4client
+
+    return p4client.SetupAndDo(p4client.Sync(),
+                               p4client.SaveCurrentCLNumber('CLNUM'),
+                               p4client.Remove())
+
+  def BuildRelease(self, target):
+    clnum_path = os.path.join('$JOB_TMP', self.CHECKOUT_DIR, 'CLNUM')
+
+    toolchain_root = os.path.join('/google/data/rw/projects/toolchains', target,
+                                  'unstable')
+    toolchain_path = os.path.join(toolchain_root, '${CLNUM}')
+
+    build_toolchain = cmd.Wrapper(
+        cmd.Chain(
+            cmd.MakeDir(toolchain_path),
+            cmd.Shell('buildit',
+                      '--keep-work-dir',
+                      '--build-type=release',
+                      '--work-dir=%s' % self.buildit_work_dir_path,
+                      '--results-dir=%s' % toolchain_path,
+                      '--force-release=%s' % '${CLNUM}',
+                      target,
+                      path='.')),
+        cwd=self.buildit_path,
+        umask='0022',
+        env={'CLNUM': '$(< %s)' % clnum_path})
+
+    # remove all but 10 most recent directories
+    remove_old_toolchains_from_x20 = cmd.Wrapper(
+        cmd.Pipe(
+            cmd.Shell('ls', '-1', '-r'), cmd.Shell('sed', '-e', '1,10d'),
+            cmd.Shell('xargs', 'rm', '-r', '-f')),
+        cwd=toolchain_root)
+
+    return cmd.Chain(build_toolchain, remove_old_toolchains_from_x20)
+
+  def RunTests(self, target, board, component='gcc'):
+    dejagnu_flags = ['--outdir=%s' % self.dejagnu_output_path,
+                     '--target_board=%s' % board]
+
+    # Look for {pandaboard,qemu}.exp files in
+    # //depot/google3/experimental/users/kbaclawski/dejagnu/boards
+
+    site_exp_file = os.path.join('/google/src/head/depot/google3',
+                                 'experimental/users/kbaclawski',
+                                 'dejagnu/site.exp')
+
+    build_dir_path = os.path.join(target, 'rpmbuild/BUILD/crosstool*-0.0',
+                                  'build-%s' % component)
+
+    run_dejagnu = cmd.Wrapper(
+        cmd.Chain(
+            cmd.MakeDir(self.dejagnu_output_path),
+            cmd.Shell('make',
+                      'check',
+                      '-k',
+                      '-j $(grep -c processor /proc/cpuinfo)',
+                      'RUNTESTFLAGS="%s"' % ' '.join(dejagnu_flags),
+                      'DEJAGNU="%s"' % site_exp_file,
+                      ignore_error=True)),
+        cwd=os.path.join(self.buildit_work_dir_path, build_dir_path),
+        env={'REMOTE_TMPDIR': 'job-$JOB_ID'})
+
+    save_results = cmd.Copy(self.dejagnu_output_path,
+                            to_dir='$JOB_TMP/results',
+                            recursive=True)
+
+    return cmd.Chain(run_dejagnu, save_results)
+
+  def GenerateReport(self, boards):
+    sumfiles = [os.path.join('$JOB_TMP', board, '*.sum') for board in boards]
+
+    return cmd.Wrapper(
+        cmd.Shell('dejagnu.sh',
+                  'report',
+                  '-m',
+                  '$JOB_TMP/manifests/*.xfail',
+                  '-o',
+                  '$JOB_TMP/results/report.html',
+                  *sumfiles,
+                  path='.'),
+        cwd='$HOME/automation/clients/report')
diff --git a/automation/clients/helper/jobs.py b/automation/clients/helper/jobs.py
new file mode 100644
index 0000000..96a1c40
--- /dev/null
+++ b/automation/clients/helper/jobs.py
@@ -0,0 +1,11 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+from automation.common import job
+from automation.common import machine
+
+
+def CreateLinuxJob(label, command, lock=False, timeout=4 * 60 * 60):
+  to_return = job.Job(label, command, timeout)
+  to_return.DependsOnMachine(machine.MachineSpecification(os='linux',
+                                                          lock_required=lock))
+  return to_return
diff --git a/automation/clients/helper/perforce.py b/automation/clients/helper/perforce.py
new file mode 100644
index 0000000..1f2dfe7
--- /dev/null
+++ b/automation/clients/helper/perforce.py
@@ -0,0 +1,215 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+import collections
+import os.path
+
+from automation.common import command as cmd
+
+
+class PathMapping(object):
+  """Stores information about relative path mapping (remote to local)."""
+
+  @classmethod
+  def ListFromPathDict(cls, prefix_path_dict):
+    """Takes {'prefix1': ['path1',...], ...} and returns a list of mappings."""
+
+    mappings = []
+
+    for prefix, paths in sorted(prefix_path_dict.items()):
+      for path in sorted(paths):
+        mappings.append(cls(os.path.join(prefix, path)))
+
+    return mappings
+
+  @classmethod
+  def ListFromPathTuples(cls, tuple_list):
+    """Takes a list of tuples and returns a list of mappings.
+
+    Args:
+      tuple_list: [('remote_path1', 'local_path1'), ...]
+
+    Returns:
+      a list of mapping objects
+    """
+    mappings = []
+    for remote_path, local_path in tuple_list:
+      mappings.append(cls(remote_path, local_path))
+
+    return mappings
+
+  def __init__(self, remote, local=None, common_suffix=None):
+    suffix = self._FixPath(common_suffix or '')
+
+    self.remote = os.path.join(remote, suffix)
+    self.local = os.path.join(local or remote, suffix)
+
+  @staticmethod
+  def _FixPath(path_s):
+    parts = [part for part in path_s.strip('/').split('/') if part]
+
+    if not parts:
+      return ''
+
+    return os.path.join(*parts)
+
+  def _GetRemote(self):
+    return self._remote
+
+  def _SetRemote(self, path_s):
+    self._remote = self._FixPath(path_s)
+
+  remote = property(_GetRemote, _SetRemote)
+
+  def _GetLocal(self):
+    return self._local
+
+  def _SetLocal(self, path_s):
+    self._local = self._FixPath(path_s)
+
+  local = property(_GetLocal, _SetLocal)
+
+  def GetAbsolute(self, depot, client):
+    return (os.path.join('//', depot, self.remote),
+            os.path.join('//', client, self.local))
+
+  def __str__(self):
+    return '%s(%s => %s)' % (self.__class__.__name__, self.remote, self.local)
+
+
+class View(collections.MutableSet):
+  """Keeps all information about local client required to work with perforce."""
+
+  def __init__(self, depot, mappings=None, client=None):
+    self.depot = depot
+
+    if client:
+      self.client = client
+
+    self._mappings = set(mappings or [])
+
+  @staticmethod
+  def _FixRoot(root_s):
+    parts = root_s.strip('/').split('/', 1)
+
+    if len(parts) != 1:
+      return None
+
+    return parts[0]
+
+  def _GetDepot(self):
+    return self._depot
+
+  def _SetDepot(self, depot_s):
+    depot = self._FixRoot(depot_s)
+    assert depot, 'Not a valid depot name: "%s".' % depot_s
+    self._depot = depot
+
+  depot = property(_GetDepot, _SetDepot)
+
+  def _GetClient(self):
+    return self._client
+
+  def _SetClient(self, client_s):
+    client = self._FixRoot(client_s)
+    assert client, 'Not a valid client name: "%s".' % client_s
+    self._client = client
+
+  client = property(_GetClient, _SetClient)
+
+  def add(self, mapping):
+    assert type(mapping) is PathMapping
+    self._mappings.add(mapping)
+
+  def discard(self, mapping):
+    assert type(mapping) is PathMapping
+    self._mappings.discard(mapping)
+
+  def __contains__(self, value):
+    return value in self._mappings
+
+  def __len__(self):
+    return len(self._mappings)
+
+  def __iter__(self):
+    return iter(mapping for mapping in self._mappings)
+
+  def AbsoluteMappings(self):
+    return iter(mapping.GetAbsolute(self.depot, self.client)
+                for mapping in self._mappings)
+
+
+class CommandsFactory(object):
+  """Creates shell commands used for interaction with Perforce."""
+
+  def __init__(self, checkout_dir, p4view, name=None, port=None):
+    self.port = port or 'perforce2:2666'
+    self.view = p4view
+    self.view.client = name or 'p4-automation-$HOSTNAME-$JOB_ID'
+    self.checkout_dir = checkout_dir
+    self.p4config_path = os.path.join(self.checkout_dir, '.p4config')
+
+  def Initialize(self):
+    return cmd.Chain('mkdir -p %s' % self.checkout_dir, 'cp ~/.p4config %s' %
+                     self.checkout_dir, 'chmod u+w %s' % self.p4config_path,
+                     'echo "P4PORT=%s" >> %s' % (self.port, self.p4config_path),
+                     'echo "P4CLIENT=%s" >> %s' %
+                     (self.view.client, self.p4config_path))
+
+  def Create(self):
+    # TODO(kbaclawski): Could we support value list for options consistently?
+    mappings = ['-a \"%s %s\"' % mapping
+                for mapping in self.view.AbsoluteMappings()]
+
+    # First command will create client with default mappings.  Second one will
+    # replace default mapping with desired.  Unfortunately, it seems that it
+    # cannot be done in one step.  P4EDITOR is defined to /bin/true because we
+    # don't want "g4 client" to enter real editor and wait for user actions.
+    return cmd.Wrapper(
+        cmd.Chain(
+            cmd.Shell('g4', 'client'),
+            cmd.Shell('g4', 'client', '--replace', *mappings)),
+        env={'P4EDITOR': '/bin/true'})
+
+  def SaveSpecification(self, filename=None):
+    return cmd.Pipe(cmd.Shell('g4', 'client', '-o'), output=filename)
+
+  def Sync(self, revision=None):
+    sync_arg = '...'
+    if revision:
+      sync_arg = '%s@%s' % (sync_arg, revision)
+    return cmd.Shell('g4', 'sync', sync_arg)
+
+  def SaveCurrentCLNumber(self, filename=None):
+    return cmd.Pipe(
+        cmd.Shell('g4', 'changes', '-m1', '...#have'),
+        cmd.Shell('sed', '-E', '"s,Change ([0-9]+) .*,\\1,"'),
+        output=filename)
+
+  def Remove(self):
+    return cmd.Shell('g4', 'client', '-d', self.view.client)
+
+  def SetupAndDo(self, *commands):
+    return cmd.Chain(self.Initialize(),
+                     self.InCheckoutDir(self.Create(), *commands))
+
+  def InCheckoutDir(self, *commands):
+    return cmd.Wrapper(cmd.Chain(*commands), cwd=self.checkout_dir)
+
+  def CheckoutFromSnapshot(self, snapshot):
+    cmds = cmd.Chain()
+
+    for mapping in self.view:
+      local_path, file_part = mapping.local.rsplit('/', 1)
+
+      if file_part == '...':
+        remote_dir = os.path.join(snapshot, local_path)
+        local_dir = os.path.join(self.checkout_dir, os.path.dirname(local_path))
+
+        cmds.extend([
+            cmd.Shell('mkdir', '-p', local_dir), cmd.Shell(
+                'rsync', '-lr', remote_dir, local_dir)
+        ])
+
+    return cmds
diff --git a/automation/clients/nightly.py b/automation/clients/nightly.py
new file mode 100755
index 0000000..98e2b08
--- /dev/null
+++ b/automation/clients/nightly.py
@@ -0,0 +1,51 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+import optparse
+import pickle
+import sys
+import xmlrpclib
+
+from automation.clients.helper import chromeos
+from automation.common import job_group
+
+
+def Main(argv):
+  parser = optparse.OptionParser()
+  parser.add_option('-c',
+                    '--chromeos_version',
+                    dest='chromeos_version',
+                    default='quarterly',
+                    help='ChromeOS version to use.')
+  parser.add_option('-t',
+                    '--toolchain',
+                    dest='toolchain',
+                    default='latest-toolchain',
+                    help='Toolchain to use {latest-toolchain,gcc_46}.')
+  parser.add_option('-b',
+                    '--board',
+                    dest='board',
+                    default='x86-generic',
+                    help='Board to use for the nightly job.')
+  options = parser.parse_args(argv)[0]
+
+  toolchain = options.toolchain
+  board = options.board
+  chromeos_version = options.chromeos_version
+
+  # Build toolchain
+  jobs_factory = chromeos.JobsFactory(chromeos_version=chromeos_version,
+                                      board=board,
+                                      toolchain=toolchain)
+  benchmark_job = jobs_factory.BuildAndBenchmark()
+
+  group_label = 'nightly_client_%s' % board
+  group = job_group.JobGroup(group_label, [benchmark_job], True, False)
+
+  server = xmlrpclib.Server('http://localhost:8000')
+  server.ExecuteJobGroup(pickle.dumps(group))
+
+
+if __name__ == '__main__':
+  Main(sys.argv)
diff --git a/automation/clients/output_test.py b/automation/clients/output_test.py
new file mode 100755
index 0000000..3126f05
--- /dev/null
+++ b/automation/clients/output_test.py
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+import os.path
+import pickle
+import sys
+import xmlrpclib
+
+from automation.common import job
+from automation.common import job_group
+from automation.common import machine
+
+
+def Main():
+  server = xmlrpclib.Server('http://localhost:8000')
+
+  command = os.path.join(
+      os.path.dirname(sys.argv[0]), '../../produce_output.py')
+
+  pwd_job = job.Job('pwd_job', command)
+  pwd_job.DependsOnMachine(machine.MachineSpecification(os='linux'))
+
+  group = job_group.JobGroup('pwd_client', [pwd_job])
+  server.ExecuteJobGroup(pickle.dumps(group))
+
+
+if __name__ == '__main__':
+  Main()
diff --git a/automation/clients/pwd_test.py b/automation/clients/pwd_test.py
new file mode 100755
index 0000000..a4b2855
--- /dev/null
+++ b/automation/clients/pwd_test.py
@@ -0,0 +1,27 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+import pickle
+import xmlrpclib
+
+from automation.common import job
+from automation.common import job_group
+from automation.common import machine
+
+
+def Main():
+  server = xmlrpclib.Server('http://localhost:8000')
+
+  command = ['echo These following 3 lines should be the same', 'pwd', '$(pwd)',
+             'echo ${PWD}']
+
+  pwd_job = job.Job('pwd_job', ' && '.join(command))
+  pwd_job.DependsOnMachine(machine.MachineSpecification(os='linux'))
+
+  group = job_group.JobGroup('pwd_client', [pwd_job])
+  server.ExecuteJobGroup(pickle.dumps(group))
+
+
+if __name__ == '__main__':
+  Main()
diff --git a/automation/clients/report/dejagnu.sh b/automation/clients/report/dejagnu.sh
new file mode 100755
index 0000000..fadd8a0
--- /dev/null
+++ b/automation/clients/report/dejagnu.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+# Author: kbaclawski@google.com (Krystian Baclawski)
+#
+
+export PYTHONPATH="$(pwd)"
+
+python dejagnu/main.py $@
diff --git a/automation/clients/report/dejagnu/__init__.py b/automation/clients/report/dejagnu/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/automation/clients/report/dejagnu/__init__.py
@@ -0,0 +1 @@
+
diff --git a/automation/clients/report/dejagnu/main.py b/automation/clients/report/dejagnu/main.py
new file mode 100644
index 0000000..62f095e
--- /dev/null
+++ b/automation/clients/report/dejagnu/main.py
@@ -0,0 +1,137 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+# Author: kbaclawski@google.com (Krystian Baclawski)
+#
+
+from contextlib import contextmanager
+import glob
+from itertools import chain
+import logging
+import optparse
+import os.path
+import sys
+
+from manifest import Manifest
+import report
+from summary import DejaGnuTestRun
+
+
+def ExpandGlobExprList(paths):
+  """Returns an iterator that goes over expanded glob paths."""
+  return chain.from_iterable(map(glob.glob, paths))
+
+
+@contextmanager
+def OptionChecker(parser):
+  """Provides scoped environment for command line option checking."""
+  try:
+    yield
+  except SystemExit as ex:
+    parser.print_help()
+    print ''
+    sys.exit('ERROR: %s' % str(ex))
+
+
+def ManifestCommand(argv):
+  parser = optparse.OptionParser(
+      description=
+      ('Read in one or more DejaGNU summary files (.sum), parse their '
+       'content and generate manifest files.  Manifest files store a list '
+       'of failed tests that should be ignored.  Generated files are '
+       'stored in current directory under following name: '
+       '${tool}-${board}.xfail (e.g. "gcc-unix.xfail").'),
+      usage='Usage: %prog manifest [file.sum] (file2.sum ...)')
+
+  _, args = parser.parse_args(argv[2:])
+
+  with OptionChecker(parser):
+    if not args:
+      sys.exit('At least one *.sum file required.')
+
+  for filename in chain.from_iterable(map(glob.glob, args)):
+    test_run = DejaGnuTestRun.FromFile(filename)
+
+    manifest = Manifest.FromDejaGnuTestRun(test_run)
+    manifest_filename = '%s-%s.xfail' % (test_run.tool, test_run.board)
+
+    with open(manifest_filename, 'w') as manifest_file:
+      manifest_file.write(manifest.Generate())
+
+      logging.info('Wrote manifest to "%s" file.', manifest_filename)
+
+
+def ReportCommand(argv):
+  parser = optparse.OptionParser(
+      description=
+      ('Read in one or more DejaGNU summary files (.sum), parse their '
+       'content and generate a single report file in selected format '
+       '(currently only HTML).'),
+      usage=('Usage: %prog report (-m manifest.xfail) [-o report.html] '
+             '[file.sum (file2.sum ...)'))
+  parser.add_option(
+      '-o',
+      dest='output',
+      type='string',
+      default=None,
+      help=('Suppress failures for test listed in provided manifest files. '
+            '(use -m for each manifest file you want to read)'))
+  parser.add_option(
+      '-m',
+      dest='manifests',
+      type='string',
+      action='append',
+      default=None,
+      help=('Suppress failures for test listed in provided manifest files. '
+            '(use -m for each manifest file you want to read)'))
+
+  opts, args = parser.parse_args(argv[2:])
+
+  with OptionChecker(parser):
+    if not args:
+      sys.exit('At least one *.sum file required.')
+
+    if not opts.output:
+      sys.exit('Please provide name for report file.')
+
+  manifests = []
+
+  for filename in ExpandGlobExprList(opts.manifests or []):
+    logging.info('Using "%s" manifest.', filename)
+    manifests.append(Manifest.FromFile(filename))
+
+  test_runs = [DejaGnuTestRun.FromFile(filename)
+               for filename in chain.from_iterable(map(glob.glob, args))]
+
+  html = report.Generate(test_runs, manifests)
+
+  if html:
+    with open(opts.output, 'w') as html_file:
+      html_file.write(html)
+      logging.info('Wrote report to "%s" file.', opts.output)
+  else:
+    sys.exit(1)
+
+
+def HelpCommand(argv):
+  sys.exit('\n'.join([
+      'Usage: %s command [options]' % os.path.basename(argv[
+          0]), '', 'Commands:',
+      '  manifest - manage files containing a list of suppressed test failures',
+      '  report   - generate report file for selected test runs'
+  ]))
+
+
+def Main(argv):
+  try:
+    cmd_name = argv[1]
+  except IndexError:
+    cmd_name = None
+
+  cmd_map = {'manifest': ManifestCommand, 'report': ReportCommand}
+  cmd_map.get(cmd_name, HelpCommand)(argv)
+
+
+if __name__ == '__main__':
+  FORMAT = '%(asctime)-15s %(levelname)s %(message)s'
+  logging.basicConfig(format=FORMAT, level=logging.INFO)
+
+  Main(sys.argv)
diff --git a/automation/clients/report/dejagnu/manifest.py b/automation/clients/report/dejagnu/manifest.py
new file mode 100644
index 0000000..5831d1b
--- /dev/null
+++ b/automation/clients/report/dejagnu/manifest.py
@@ -0,0 +1,103 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+# Author: kbaclawski@google.com (Krystian Baclawski)
+#
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+from collections import namedtuple
+from cStringIO import StringIO
+import logging
+
+from summary import DejaGnuTestResult
+
+
+class Manifest(namedtuple('Manifest', 'tool board results')):
+  """Stores a list of unsuccessful tests.
+
+  Any line that starts with '#@' marker carries auxiliary data in form of a
+  key-value pair, for example:
+
+  #@ tool: *
+  #@ board: unix
+
+  So far tool and board parameters are recognized.  Their value can contain
+  arbitrary glob expression.  Based on aforementioned parameters given manifest
+  will be applied for all test results, but only in selected test runs.  Note
+  that all parameters are optional.  Their default value is '*' (i.e. for all
+  tools/boards).
+
+  The meaning of lines above is as follows: corresponding test results to follow
+  should only be suppressed if test run was performed on "unix" board.
+
+  The summary line used to build the test result should have this format:
+
+  attrlist | UNRESOLVED: gcc.dg/unroll_1.c (test for excess errors)
+  ^^^^^^^^   ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
+  optional   result      name              variant
+  attributes
+  """
+  SUPPRESSIBLE_RESULTS = ['FAIL', 'UNRESOLVED', 'XPASS', 'ERROR']
+
+  @classmethod
+  def FromDejaGnuTestRun(cls, test_run):
+    results = [result
+               for result in test_run.results
+               if result.result in cls.SUPPRESSIBLE_RESULTS]
+
+    return cls(test_run.tool, test_run.board, results)
+
+  @classmethod
+  def FromFile(cls, filename):
+    """Creates manifest instance from a file in format described above."""
+    params = {}
+    results = []
+
+    with open(filename, 'r') as manifest_file:
+      for line in manifest_file:
+        if line.startswith('#@'):
+          # parse a line with a parameter
+          try:
+            key, value = line[2:].split(':', 1)
+          except ValueError:
+            logging.warning('Malformed parameter line: "%s".', line)
+          else:
+            params[key.strip()] = value.strip()
+        else:
+          # remove comment
+          try:
+            line, _ = line.split('#', 1)
+          except ValueError:
+            pass
+
+          line = line.strip()
+
+          if line:
+            # parse a line with a test result
+            result = DejaGnuTestResult.FromLine(line)
+
+            if result:
+              results.append(result)
+            else:
+              logging.warning('Malformed test result line: "%s".', line)
+
+    tool = params.get('tool', '*')
+    board = params.get('board', '*')
+
+    return cls(tool, board, results)
+
+  def Generate(self):
+    """Dumps manifest to string."""
+    text = StringIO()
+
+    for name in ['tool', 'board']:
+      text.write('#@ {0}: {1}\n'.format(name, getattr(self, name)))
+
+    text.write('\n')
+
+    for result in sorted(self.results, key=lambda r: r.result):
+      text.write('{0}\n'.format(result))
+
+    return text.getvalue()
+
+  def __iter__(self):
+    return iter(self.results)
diff --git a/automation/clients/report/dejagnu/report.html b/automation/clients/report/dejagnu/report.html
new file mode 100644
index 0000000..39b39e0
--- /dev/null
+++ b/automation/clients/report/dejagnu/report.html
@@ -0,0 +1,94 @@
+<link type="text/css" rel="Stylesheet"
+href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/ui-lightness/jquery-ui.css"/>
+
+<script type="text/javascript" src="https://www.google.com/jsapi"></script>
+<script type="text/javascript">
+  google.load("visualization", "1.1", {packages: ["corechart", "table"]});
+  google.load("jquery", "1.6.2");
+  google.load("jqueryui", "1.8.16");
+
+  function drawChart(name, label, table) {
+    var data = google.visualization.arrayToDataTable(table);
+    var chart = new google.visualization.PieChart(
+        document.getElementById(name));
+
+    chart.draw(data,
+        {title: label, pieSliceText: "value", width: 800, height: 400});
+  }
+
+  function drawTable(name, table) {
+    var data = google.visualization.arrayToDataTable(table);
+    var table = new google.visualization.Table(
+        document.getElementById(name));
+
+    table.draw(data, {
+        showRowNumber: false, allowHtml: true, sortColumn: 0});
+  }
+
+  google.setOnLoadCallback(function () {
+    $( "#testruns" ).tabs();
+
+    {% for test_run in test_runs %}
+      $( "#testrun{{ test_run.id }}" ).tabs();
+
+      {% for result_type, group in test_run.groups.items %}
+      $( "#testrun{{ test_run.id }}-{{ result_type }}-tables" ).accordion({
+        autoHeight: false, collapsible: true, active: false });
+
+      drawChart(
+        "testrun{{ test_run.id }}-{{ result_type }}-chart",
+        "DejaGNU test {{ result_type }} summary for {{ test_run.name }}",
+        [
+          ["Result", "Count"],
+          {% for result, count in group.summary %}
+          ["{{ result }}", {{ count }}],{% endfor %}
+        ]);
+
+        {% for description, test_list in group.tests %}
+        {% if test_list %}
+        drawTable(
+          "testrun{{ test_run.id }}-{{ result_type }}-table-{{ forloop.counter }}",
+          [
+            ["Test", "Variant"],
+            {% for test, variant in test_list  %}
+            ["{{ test }}", "{{ variant }}"],{% endfor %}
+          ]);
+        {% endif %}
+        {% endfor %}
+      {% endfor %}
+    {% endfor %}
+    });
+</script>
+
+<div id="testruns">
+  <ul>
+  {% for test_run in test_runs %}
+    <li><a href="#testrun{{ test_run.id }}">{{ test_run.name }}</a></li>
+  {% endfor %}
+  </ul>
+
+  {% for test_run in test_runs %}
+  <div id="testrun{{ test_run.id }}" style="padding: 0px">
+    <ul>
+    {% for result_type, group in test_run.groups.items %}
+    <li>
+    <a href="#testrun{{ test_run.id }}-{{ forloop.counter }}">{{ result_type }}</a>
+    </li>
+    {% endfor %}
+    </ul>
+    {% for result_type, group in test_run.groups.items %}
+    <div id="testrun{{ test_run.id }}-{{ forloop.counter }}">
+      <div id="testrun{{ test_run.id }}-{{ result_type }}-chart" style="text-align: center"></div>
+      <div id="testrun{{ test_run.id }}-{{ result_type }}-tables">
+      {% for description, test_list in group.tests %}
+      {% if test_list %}
+        <h3><a href="#">{{ description }}</a></h3>
+        <div id="testrun{{ test_run.id }}-{{ result_type }}-table-{{ forloop.counter }}"></div>
+      {% endif %}
+      {% endfor %}
+      </div>
+    </div>
+    {% endfor %}
+  </div>
+{% endfor %}
+</div>
diff --git a/automation/clients/report/dejagnu/report.py b/automation/clients/report/dejagnu/report.py
new file mode 100644
index 0000000..191a538
--- /dev/null
+++ b/automation/clients/report/dejagnu/report.py
@@ -0,0 +1,115 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+# Author: kbaclawski@google.com (Krystian Baclawski)
+#
+
+import logging
+import os.path
+
+RESULT_DESCRIPTION = {
+    'ERROR': 'DejaGNU errors',
+    'FAIL': 'Failed tests',
+    'NOTE': 'DejaGNU notices',
+    'PASS': 'Passed tests',
+    'UNRESOLVED': 'Unresolved tests',
+    'UNSUPPORTED': 'Unsupported tests',
+    'UNTESTED': 'Not executed tests',
+    'WARNING': 'DejaGNU warnings',
+    'XFAIL': 'Expected test failures',
+    'XPASS': 'Unexpectedly passed tests'
+}
+
+RESULT_GROUPS = {
+    'Successes': ['PASS', 'XFAIL'],
+    'Failures': ['FAIL', 'XPASS', 'UNRESOLVED'],
+    'Suppressed': ['!FAIL', '!XPASS', '!UNRESOLVED', '!ERROR'],
+    'Framework': ['UNTESTED', 'UNSUPPORTED', 'ERROR', 'WARNING', 'NOTE']
+}
+
+ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
+
+
+def _GetResultDescription(name):
+  if name.startswith('!'):
+    name = name[1:]
+
+  try:
+    return RESULT_DESCRIPTION[name]
+  except KeyError:
+    raise ValueError('Unknown result: "%s"' % name)
+
+
+def _PrepareSummary(res_types, summary):
+
+  def GetResultCount(res_type):
+    return summary.get(res_type, 0)
+
+  return [(_GetResultDescription(rt), GetResultCount(rt)) for rt in res_types]
+
+
+def _PrepareTestList(res_types, tests):
+
+  def GetTestsByResult(res_type):
+    return [(test.name, test.variant or '')
+            for test in sorted(tests) if test.result == res_type]
+
+  return [(_GetResultDescription(rt), GetTestsByResult(rt))
+          for rt in res_types if rt != 'PASS']
+
+
+def Generate(test_runs, manifests):
+  """Generate HTML report from provided test runs.
+
+  Args:
+    test_runs: DejaGnuTestRun objects list.
+    manifests: Manifest object list that will drive test result suppression.
+
+  Returns:
+    String to which the HTML report was rendered.
+  """
+  tmpl_args = []
+
+  for test_run_id, test_run in enumerate(test_runs):
+    logging.info('Generating report for: %s.', test_run)
+
+    test_run.CleanUpTestResults()
+    test_run.SuppressTestResults(manifests)
+
+    # Generate summary and test list for each result group
+    groups = {}
+
+    for res_group, res_types in RESULT_GROUPS.items():
+      summary_all = _PrepareSummary(res_types, test_run.summary)
+      tests_all = _PrepareTestList(res_types, test_run.results)
+
+      has_2nd = lambda tuple2: bool(tuple2[1])
+      summary = filter(has_2nd, summary_all)
+      tests = filter(has_2nd, tests_all)
+
+      if summary or tests:
+        groups[res_group] = {'summary': summary, 'tests': tests}
+
+    tmpl_args.append({
+        'id': test_run_id,
+        'name': '%s @%s' % (test_run.tool, test_run.board),
+        'groups': groups
+    })
+
+  logging.info('Rendering report in HTML format.')
+
+  try:
+    from django import template
+    from django.template import loader
+    from django.conf import settings
+  except ImportError:
+    logging.error('Django framework not installed!')
+    logging.error('Failed to generate report in HTML format!')
+    return ''
+
+  settings.configure(DEBUG=True,
+                     TEMPLATE_DEBUG=True,
+                     TEMPLATE_DIRS=(ROOT_PATH,))
+
+  tmpl = loader.get_template('report.html')
+  ctx = template.Context({'test_runs': tmpl_args})
+
+  return tmpl.render(ctx)
diff --git a/automation/clients/report/dejagnu/summary.py b/automation/clients/report/dejagnu/summary.py
new file mode 100644
index 0000000..d573c69
--- /dev/null
+++ b/automation/clients/report/dejagnu/summary.py
@@ -0,0 +1,262 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+# Author: kbaclawski@google.com (Krystian Baclawski)
+#
+
+from collections import defaultdict
+from collections import namedtuple
+from datetime import datetime
+from fnmatch import fnmatch
+from itertools import groupby
+import logging
+import os.path
+import re
+
+
+class DejaGnuTestResult(namedtuple('Result', 'name variant result flaky')):
+  """Stores the result of a single test case."""
+
+  # avoid adding __dict__ to the class
+  __slots__ = ()
+
+  LINE_RE = re.compile(r'([A-Z]+):\s+([\w/+.-]+)(.*)')
+
+  @classmethod
+  def FromLine(cls, line):
+    """Alternate constructor which takes a string and parses it."""
+    try:
+      attrs, line = line.split('|', 1)
+
+      if attrs.strip() != 'flaky':
+        return None
+
+      line = line.strip()
+      flaky = True
+    except ValueError:
+      flaky = False
+
+    fields = cls.LINE_RE.match(line.strip())
+
+    if fields:
+      result, path, variant = fields.groups()
+
+      # some of the tests are generated in build dir and are issued from there,
+      # because every test run is performed in randomly named tmp directory we
+      # need to remove random part
+      try:
+        # assume that 2nd field is a test path
+        path_parts = path.split('/')
+
+        index = path_parts.index('testsuite')
+        path = '/'.join(path_parts[index + 1:])
+      except ValueError:
+        path = '/'.join(path_parts)
+
+      # Remove junk from test description.
+      variant = variant.strip(', ')
+
+      substitutions = [
+          # remove include paths - they contain name of tmp directory
+          ('-I\S+', ''),
+          # compress white spaces
+          ('\s+', ' ')
+      ]
+
+      for pattern, replacement in substitutions:
+        variant = re.sub(pattern, replacement, variant)
+
+      # Some tests separate last component of path by space, so actual filename
+      # ends up in description instead of path part. Correct that.
+      try:
+        first, rest = variant.split(' ', 1)
+      except ValueError:
+        pass
+      else:
+        if first.endswith('.o'):
+          path = os.path.join(path, first)
+          variant = rest
+
+      # DejaGNU framework errors don't contain path part at all, so description
+      # part has to be reconstructed.
+      if not any(os.path.basename(path).endswith('.%s' % suffix)
+                 for suffix in ['h', 'c', 'C', 'S', 'H', 'cc', 'i', 'o']):
+        variant = '%s %s' % (path, variant)
+        path = ''
+
+      # Some tests are picked up from current directory (presumably DejaGNU
+      # generates some test files). Remove the prefix for these files.
+      if path.startswith('./'):
+        path = path[2:]
+
+      return cls(path, variant or '', result, flaky=flaky)
+
+  def __str__(self):
+    """Returns string representation of a test result."""
+    if self.flaky:
+      fmt = 'flaky | '
+    else:
+      fmt = ''
+    fmt += '{2}: {0}'
+    if self.variant:
+      fmt += ' {1}'
+    return fmt.format(*self)
+
+
+class DejaGnuTestRun(object):
+  """Container for test results that were a part of single test run.
+
+  The class stores also metadata related to the test run.
+
+  Attributes:
+    board: Name of DejaGNU board, which was used to run the tests.
+    date: The date when the test run was started.
+    target: Target triple.
+    host: Host triple.
+    tool: The tool that was tested (e.g. gcc, binutils, g++, etc.)
+    results: a list of DejaGnuTestResult objects.
+  """
+
+  __slots__ = ('board', 'date', 'target', 'host', 'tool', 'results')
+
+  def __init__(self, **kwargs):
+    assert all(name in self.__slots__ for name in kwargs)
+
+    self.results = set()
+    self.date = kwargs.get('date', datetime.now())
+
+    for name in ('board', 'target', 'tool', 'host'):
+      setattr(self, name, kwargs.get(name, 'unknown'))
+
+  @classmethod
+  def FromFile(cls, filename):
+    """Alternate constructor - reads a DejaGNU output file."""
+    test_run = cls()
+    test_run.FromDejaGnuOutput(filename)
+    test_run.CleanUpTestResults()
+    return test_run
+
+  @property
+  def summary(self):
+    """Returns a summary as {ResultType -> Count} dictionary."""
+    summary = defaultdict(int)
+
+    for r in self.results:
+      summary[r.result] += 1
+
+    return summary
+
+  def _ParseBoard(self, fields):
+    self.board = fields.group(1).strip()
+
+  def _ParseDate(self, fields):
+    self.date = datetime.strptime(fields.group(2).strip(), '%a %b %d %X %Y')
+
+  def _ParseTarget(self, fields):
+    self.target = fields.group(2).strip()
+
+  def _ParseHost(self, fields):
+    self.host = fields.group(2).strip()
+
+  def _ParseTool(self, fields):
+    self.tool = fields.group(1).strip()
+
+  def FromDejaGnuOutput(self, filename):
+    """Read in and parse DejaGNU output file."""
+
+    logging.info('Reading "%s" DejaGNU output file.', filename)
+
+    with open(filename, 'r') as report:
+      lines = [line.strip() for line in report.readlines() if line.strip()]
+
+    parsers = ((re.compile(r'Running target (.*)'), self._ParseBoard),
+               (re.compile(r'Test Run By (.*) on (.*)'), self._ParseDate),
+               (re.compile(r'=== (.*) tests ==='), self._ParseTool),
+               (re.compile(r'Target(\s+)is (.*)'), self._ParseTarget),
+               (re.compile(r'Host(\s+)is (.*)'), self._ParseHost))
+
+    for line in lines:
+      result = DejaGnuTestResult.FromLine(line)
+
+      if result:
+        self.results.add(result)
+      else:
+        for regexp, parser in parsers:
+          fields = regexp.match(line)
+          if fields:
+            parser(fields)
+            break
+
+    logging.debug('DejaGNU output file parsed successfully.')
+    logging.debug(self)
+
+  def CleanUpTestResults(self):
+    """Remove certain test results considered to be spurious.
+
+    1) Large number of test reported as UNSUPPORTED are also marked as
+       UNRESOLVED. If that's the case remove latter result.
+    2) If a test is performed on compiler output and for some reason compiler
+       fails, we don't want to report all failures that depend on the former.
+    """
+    name_key = lambda v: v.name
+    results_by_name = sorted(self.results, key=name_key)
+
+    for name, res_iter in groupby(results_by_name, key=name_key):
+      results = set(res_iter)
+
+      # If DejaGnu was unable to compile a test it will create following result:
+      failed = DejaGnuTestResult(name, '(test for excess errors)', 'FAIL',
+                                 False)
+
+      # If a test compilation failed, remove all results that are dependent.
+      if failed in results:
+        dependants = set(filter(lambda r: r.result != 'FAIL', results))
+
+        self.results -= dependants
+
+        for res in dependants:
+          logging.info('Removed {%s} dependance.', res)
+
+      # Remove all UNRESOLVED results that were also marked as UNSUPPORTED.
+      unresolved = [res._replace(result='UNRESOLVED')
+                    for res in results if res.result == 'UNSUPPORTED']
+
+      for res in unresolved:
+        if res in self.results:
+          self.results.remove(res)
+          logging.info('Removed {%s} duplicate.', res)
+
+  def _IsApplicable(self, manifest):
+    """Checks if test results need to be reconsidered based on the manifest."""
+    check_list = [(self.tool, manifest.tool), (self.board, manifest.board)]
+
+    return all(fnmatch(text, pattern) for text, pattern in check_list)
+
+  def SuppressTestResults(self, manifests):
+    """Suppresses all test results listed in manifests."""
+
+    # Get a set of tests results that are going to be suppressed if they fail.
+    manifest_results = set()
+
+    for manifest in filter(self._IsApplicable, manifests):
+      manifest_results |= set(manifest.results)
+
+    suppressed_results = self.results & manifest_results
+
+    for result in sorted(suppressed_results):
+      logging.debug('Result suppressed for {%s}.', result)
+
+      new_result = '!' + result.result
+
+      # Mark result suppression as applied.
+      manifest_results.remove(result)
+
+      # Rewrite test result.
+      self.results.remove(result)
+      self.results.add(result._replace(result=new_result))
+
+    for result in sorted(manifest_results):
+      logging.warning('Result {%s} listed in manifest but not suppressed.',
+                      result)
+
+  def __str__(self):
+    return '{0}, {1} @{2} on {3}'.format(self.target, self.tool, self.board,
+                                         self.date)
diff --git a/automation/clients/report/validate_failures.py b/automation/clients/report/validate_failures.py
new file mode 100755
index 0000000..5db356d
--- /dev/null
+++ b/automation/clients/report/validate_failures.py
@@ -0,0 +1,239 @@
+#!/usr/bin/python
+
+# Script to compare testsuite failures against a list of known-to-fail
+# tests.
+
+# Contributed by Diego Novillo <dnovillo@google.com>
+# Overhaul by Krystian Baclawski <kbaclawski@google.com>
+#
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING.  If not, write to
+# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+"""This script provides a coarser XFAILing mechanism that requires no
+detailed DejaGNU markings.  This is useful in a variety of scenarios:
+
+- Development branches with many known failures waiting to be fixed.
+- Release branches with known failures that are not considered
+  important for the particular release criteria used in that branch.
+
+The script must be executed from the toplevel build directory.  When
+executed it will:
+
+1) Determine the target built: TARGET
+2) Determine the source directory: SRCDIR
+3) Look for a failure manifest file in
+   <SRCDIR>/contrib/testsuite-management/<TARGET>.xfail
+4) Collect all the <tool>.sum files from the build tree.
+5) Produce a report stating:
+   a) Failures expected in the manifest but not present in the build.
+   b) Failures in the build not expected in the manifest.
+6) If all the build failures are expected in the manifest, it exits
+   with exit code 0.  Otherwise, it exits with error code 1.
+"""
+
+import optparse
+import logging
+import os
+import sys
+
+sys.path.append(os.path.dirname(os.path.abspath(__file__)))
+
+from dejagnu.manifest import Manifest
+from dejagnu.summary import DejaGnuTestResult
+from dejagnu.summary import DejaGnuTestRun
+
+# Pattern for naming manifest files.  The first argument should be
+# the toplevel GCC source directory.  The second argument is the
+# target triple used during the build.
+_MANIFEST_PATH_PATTERN = '%s/contrib/testsuite-management/%s.xfail'
+
+
+def GetMakefileVars(makefile_path):
+  assert os.path.exists(makefile_path)
+
+  with open(makefile_path) as lines:
+    kvs = [line.split('=', 1) for line in lines if '=' in line]
+
+    return dict((k.strip(), v.strip()) for k, v in kvs)
+
+
+def GetSumFiles(build_dir):
+  summaries = []
+
+  for root, _, filenames in os.walk(build_dir):
+    summaries.extend([os.path.join(root, filename)
+                      for filename in filenames if filename.endswith('.sum')])
+
+  return map(os.path.normpath, summaries)
+
+
+def ValidBuildDirectory(build_dir, target):
+  mandatory_paths = [build_dir, os.path.join(build_dir, 'Makefile')]
+
+  extra_paths = [os.path.join(build_dir, target),
+                 os.path.join(build_dir, 'build-%s' % target)]
+
+  return (all(map(os.path.exists, mandatory_paths)) and
+          any(map(os.path.exists, extra_paths)))
+
+
+def GetManifestPath(build_dir):
+  makefile = GetMakefileVars(os.path.join(build_dir, 'Makefile'))
+  srcdir = makefile['srcdir']
+  target = makefile['target']
+
+  if not ValidBuildDirectory(build_dir, target):
+    target = makefile['target_alias']
+
+  if not ValidBuildDirectory(build_dir, target):
+    logging.error('%s is not a valid GCC top level build directory.', build_dir)
+    sys.exit(1)
+
+  logging.info('Discovered source directory: "%s"', srcdir)
+  logging.info('Discovered build target: "%s"', target)
+
+  return _MANIFEST_PATH_PATTERN % (srcdir, target)
+
+
+def CompareResults(manifest, actual):
+  """Compare sets of results and return two lists:
+     - List of results present in MANIFEST but missing from ACTUAL.
+     - List of results present in ACTUAL but missing from MANIFEST.
+  """
+  # Report all the actual results not present in the manifest.
+  actual_vs_manifest = actual - manifest
+
+  # Filter out tests marked flaky.
+  manifest_without_flaky_tests = set(filter(lambda result: not result.flaky,
+                                            manifest))
+
+  # Simlarly for all the tests in the manifest.
+  manifest_vs_actual = manifest_without_flaky_tests - actual
+
+  return actual_vs_manifest, manifest_vs_actual
+
+
+def LogResults(level, results):
+  log_fun = getattr(logging, level)
+
+  for num, result in enumerate(sorted(results), start=1):
+    log_fun('  %d) %s', num, result)
+
+
+def CheckExpectedResults(manifest_path, build_dir):
+  logging.info('Reading manifest file: "%s"', manifest_path)
+
+  manifest = set(Manifest.FromFile(manifest_path))
+
+  logging.info('Getting actual results from build directory: "%s"',
+               os.path.realpath(build_dir))
+
+  summaries = GetSumFiles(build_dir)
+
+  actual = set()
+
+  for summary in summaries:
+    test_run = DejaGnuTestRun.FromFile(summary)
+    failures = set(Manifest.FromDejaGnuTestRun(test_run))
+    actual.update(failures)
+
+  if manifest:
+    logging.debug('Tests expected to fail:')
+    LogResults('debug', manifest)
+
+  if actual:
+    logging.debug('Actual test failures:')
+    LogResults('debug', actual)
+
+  actual_vs_manifest, manifest_vs_actual = CompareResults(manifest, actual)
+
+  if actual_vs_manifest:
+    logging.info('Build results not in the manifest:')
+    LogResults('info', actual_vs_manifest)
+
+  if manifest_vs_actual:
+    logging.info('Manifest results not present in the build:')
+    LogResults('info', manifest_vs_actual)
+    logging.info('NOTE: This is not a failure!  ',
+                 'It just means that the manifest expected these tests to '
+                 'fail, but they worked in this configuration.')
+
+  if actual_vs_manifest or manifest_vs_actual:
+    sys.exit(1)
+
+  logging.info('No unexpected failures.')
+
+
+def ProduceManifest(manifest_path, build_dir, overwrite):
+  if os.path.exists(manifest_path) and not overwrite:
+    logging.error('Manifest file "%s" already exists.', manifest_path)
+    logging.error('Use --force to overwrite.')
+    sys.exit(1)
+
+  testruns = map(DejaGnuTestRun.FromFile, GetSumFiles(build_dir))
+  manifests = map(Manifest.FromDejaGnuTestRun, testruns)
+
+  with open(manifest_path, 'w') as manifest_file:
+    manifest_strings = [manifest.Generate() for manifest in manifests]
+    logging.info('Writing manifest to "%s".', manifest_path)
+    manifest_file.write('\n'.join(manifest_strings))
+
+
+def Main(argv):
+  parser = optparse.OptionParser(usage=__doc__)
+  parser.add_option(
+      '-b',
+      '--build_dir',
+      dest='build_dir',
+      action='store',
+      metavar='PATH',
+      default=os.getcwd(),
+      help='Build directory to check. (default: current directory)')
+  parser.add_option('-m',
+                    '--manifest',
+                    dest='manifest',
+                    action='store_true',
+                    help='Produce the manifest for the current build.')
+  parser.add_option(
+      '-f',
+      '--force',
+      dest='force',
+      action='store_true',
+      help=('Overwrite an existing manifest file, if user requested creating '
+            'new one. (default: False)'))
+  parser.add_option('-v',
+                    '--verbose',
+                    dest='verbose',
+                    action='store_true',
+                    help='Increase verbosity.')
+  options, _ = parser.parse_args(argv[1:])
+
+  if options.verbose:
+    logging.root.setLevel(logging.DEBUG)
+
+  manifest_path = GetManifestPath(options.build_dir)
+
+  if options.manifest:
+    ProduceManifest(manifest_path, options.build_dir, options.force)
+  else:
+    CheckExpectedResults(manifest_path, options.build_dir)
+
+
+if __name__ == '__main__':
+  logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)
+  Main(sys.argv)
diff --git a/automation/common/__init__.py b/automation/common/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/automation/common/__init__.py
@@ -0,0 +1 @@
+
diff --git a/automation/common/command.py b/automation/common/command.py
new file mode 100644
index 0000000..c56e9fa
--- /dev/null
+++ b/automation/common/command.py
@@ -0,0 +1,241 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+import abc
+import collections
+import os.path
+
+
+class Shell(object):
+  """Class used to build a string representation of a shell command."""
+
+  def __init__(self, cmd, *args, **kwargs):
+    assert all(key in ['path', 'ignore_error'] for key in kwargs)
+
+    self._cmd = cmd
+    self._args = list(args)
+    self._path = kwargs.get('path', '')
+    self._ignore_error = bool(kwargs.get('ignore_error', False))
+
+  def __str__(self):
+    cmdline = [os.path.join(self._path, self._cmd)]
+    cmdline.extend(self._args)
+
+    cmd = ' '.join(cmdline)
+
+    if self._ignore_error:
+      cmd = '{ %s; true; }' % cmd
+
+    return cmd
+
+  def AddOption(self, option):
+    self._args.append(option)
+
+
+class Wrapper(object):
+  """Wraps a command with environment which gets cleaned up after execution."""
+
+  _counter = 1
+
+  def __init__(self, command, cwd=None, env=None, umask=None):
+    # @param cwd: temporary working directory
+    # @param env: dictionary of environment variables
+    self._command = command
+    self._prefix = Chain()
+    self._suffix = Chain()
+
+    if cwd:
+      self._prefix.append(Shell('pushd', cwd))
+      self._suffix.insert(0, Shell('popd'))
+
+    if env:
+      for env_var, value in env.items():
+        self._prefix.append(Shell('%s=%s' % (env_var, value)))
+        self._suffix.insert(0, Shell('unset', env_var))
+
+    if umask:
+      umask_save_var = 'OLD_UMASK_%d' % self.counter
+
+      self._prefix.append(Shell('%s=$(umask)' % umask_save_var))
+      self._prefix.append(Shell('umask', umask))
+      self._suffix.insert(0, Shell('umask', '$%s' % umask_save_var))
+
+  @property
+  def counter(self):
+    counter = self._counter
+    self._counter += 1
+    return counter
+
+  def __str__(self):
+    return str(Chain(self._prefix, self._command, self._suffix))
+
+
+class AbstractCommandContainer(collections.MutableSequence):
+  """Common base for all classes that behave like command container."""
+
+  def __init__(self, *commands):
+    self._commands = list(commands)
+
+  def __contains__(self, command):
+    return command in self._commands
+
+  def __iter__(self):
+    return iter(self._commands)
+
+  def __len__(self):
+    return len(self._commands)
+
+  def __getitem__(self, index):
+    return self._commands[index]
+
+  def __setitem__(self, index, command):
+    self._commands[index] = self._ValidateCommandType(command)
+
+  def __delitem__(self, index):
+    del self._commands[index]
+
+  def insert(self, index, command):
+    self._commands.insert(index, self._ValidateCommandType(command))
+
+  @abc.abstractmethod
+  def __str__(self):
+    pass
+
+  @abc.abstractproperty
+  def stored_types(self):
+    pass
+
+  def _ValidateCommandType(self, command):
+    if type(command) not in self.stored_types:
+      raise TypeError('Command cannot have %s type.' % type(command))
+    else:
+      return command
+
+  def _StringifyCommands(self):
+    cmds = []
+
+    for cmd in self:
+      if isinstance(cmd, AbstractCommandContainer) and len(cmd) > 1:
+        cmds.append('{ %s; }' % cmd)
+      else:
+        cmds.append(str(cmd))
+
+    return cmds
+
+
+class Chain(AbstractCommandContainer):
+  """Container that chains shell commands using (&&) shell operator."""
+
+  @property
+  def stored_types(self):
+    return [str, Shell, Chain, Pipe]
+
+  def __str__(self):
+    return ' && '.join(self._StringifyCommands())
+
+
+class Pipe(AbstractCommandContainer):
+  """Container that chains shell commands using pipe (|) operator."""
+
+  def __init__(self, *commands, **kwargs):
+    assert all(key in ['input', 'output'] for key in kwargs)
+
+    AbstractCommandContainer.__init__(self, *commands)
+
+    self._input = kwargs.get('input', None)
+    self._output = kwargs.get('output', None)
+
+  @property
+  def stored_types(self):
+    return [str, Shell]
+
+  def __str__(self):
+    pipe = self._StringifyCommands()
+
+    if self._input:
+      pipe.insert(str(Shell('cat', self._input), 0))
+
+    if self._output:
+      pipe.append(str(Shell('tee', self._output)))
+
+    return ' | '.join(pipe)
+
+# TODO(kbaclawski): Unfortunately we don't have any policy describing which
+# directories can or cannot be touched by a job. Thus, I cannot decide how to
+# protect a system against commands that are considered to be dangerous (like
+# RmTree("${HOME}")). AFAIK we'll have to execute some commands with root access
+# (especially for ChromeOS related jobs, which involve chroot-ing), which is
+# even more scary.
+
+
+def Copy(*args, **kwargs):
+  assert all(key in ['to_dir', 'recursive'] for key in kwargs.keys())
+
+  options = []
+
+  if 'to_dir' in kwargs:
+    options.extend(['-t', kwargs['to_dir']])
+
+  if 'recursive' in kwargs:
+    options.append('-r')
+
+  options.extend(args)
+
+  return Shell('cp', *options)
+
+
+def RemoteCopyFrom(from_machine, from_path, to_path, username=None):
+  from_path = os.path.expanduser(from_path) + '/'
+  to_path = os.path.expanduser(to_path) + '/'
+
+  if not username:
+    login = from_machine
+  else:
+    login = '%s@%s' % (username, from_machine)
+
+  return Chain(
+      MakeDir(to_path), Shell('rsync', '-a', '%s:%s' %
+                              (login, from_path), to_path))
+
+
+def MakeSymlink(to_path, link_name):
+  return Shell('ln', '-f', '-s', '-T', to_path, link_name)
+
+
+def MakeDir(*dirs, **kwargs):
+  options = ['-p']
+
+  mode = kwargs.get('mode', None)
+
+  if mode:
+    options.extend(['-m', str(mode)])
+
+  options.extend(dirs)
+
+  return Shell('mkdir', *options)
+
+
+def RmTree(*dirs):
+  return Shell('rm', '-r', '-f', *dirs)
+
+
+def UnTar(tar_file, dest_dir):
+  return Chain(
+      MakeDir(dest_dir), Shell('tar', '-x', '-f', tar_file, '-C', dest_dir))
+
+
+def Tar(tar_file, *args):
+  options = ['-c']
+
+  if tar_file.endswith('.tar.bz2'):
+    options.append('-j')
+  elif tar_file.endswith('.tar.gz'):
+    options.append('-z')
+  else:
+    assert tar_file.endswith('.tar')
+
+  options.extend(['-f', tar_file])
+  options.extend(args)
+
+  return Chain(MakeDir(os.path.dirname(tar_file)), Shell('tar', *options))
diff --git a/automation/common/command_executer.py b/automation/common/command_executer.py
new file mode 100644
index 0000000..c0f314f
--- /dev/null
+++ b/automation/common/command_executer.py
@@ -0,0 +1,230 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+"""Classes that help running commands in a subshell.
+
+Commands can be run locally, or remotly using SSH connection.  You may log the
+output of a command to a terminal or a file, or any other destination.
+"""
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+import fcntl
+import logging
+import os
+import select
+import subprocess
+import time
+
+from automation.common import logger
+
+
+class CommandExecuter(object):
+  DRY_RUN = False
+
+  def __init__(self, dry_run=False):
+    self._logger = logging.getLogger(self.__class__.__name__)
+    self._dry_run = dry_run or self.DRY_RUN
+
+  @classmethod
+  def Configure(cls, dry_run):
+    cls.DRY_RUN = dry_run
+
+  def RunCommand(self,
+                 cmd,
+                 machine=None,
+                 username=None,
+                 command_terminator=None,
+                 command_timeout=None):
+    cmd = str(cmd)
+
+    if self._dry_run:
+      return 0
+
+    if not command_terminator:
+      command_terminator = CommandTerminator()
+
+    if command_terminator.IsTerminated():
+      self._logger.warning('Command has been already terminated!')
+      return 1
+
+    # Rewrite command for remote execution.
+    if machine:
+      if username:
+        login = '%s@%s' % (username, machine)
+      else:
+        login = machine
+
+      self._logger.debug("Executing '%s' on %s.", cmd, login)
+
+      # FIXME(asharif): Remove this after crosbug.com/33007 is fixed.
+      cmd = "ssh -t -t %s -- '%s'" % (login, cmd)
+    else:
+      self._logger.debug("Executing: '%s'.", cmd)
+
+    child = self._SpawnProcess(cmd, command_terminator, command_timeout)
+
+    self._logger.debug('{PID: %d} Finished with %d code.', child.pid,
+                       child.returncode)
+
+    return child.returncode
+
+  def _Terminate(self, child, command_timeout, wait_timeout=10):
+    """Gracefully shutdown the child by sending SIGTERM."""
+
+    if command_timeout:
+      self._logger.warning('{PID: %d} Timeout of %s seconds reached since '
+                           'process started.', child.pid, command_timeout)
+
+    self._logger.warning('{PID: %d} Terminating child.', child.pid)
+
+    try:
+      child.terminate()
+    except OSError:
+      pass
+
+    wait_started = time.time()
+
+    while not child.poll():
+      if time.time() - wait_started >= wait_timeout:
+        break
+      time.sleep(0.1)
+
+    return child.poll()
+
+  def _Kill(self, child):
+    """Kill the child with immediate result."""
+    self._logger.warning('{PID: %d} Process still alive.', child.pid)
+    self._logger.warning('{PID: %d} Killing child.', child.pid)
+    child.kill()
+    child.wait()
+
+  def _SpawnProcess(self, cmd, command_terminator, command_timeout):
+    # Create a child process executing provided command.
+    child = subprocess.Popen(cmd,
+                             stdout=subprocess.PIPE,
+                             stderr=subprocess.PIPE,
+                             stdin=subprocess.PIPE,
+                             shell=True)
+
+    # Close stdin so the child won't be able to block on read.
+    child.stdin.close()
+
+    started_time = time.time()
+
+    # Watch for data on process stdout, stderr.
+    pipes = [child.stdout, child.stderr]
+
+    # Put pipes into non-blocking mode.
+    for pipe in pipes:
+      fd = pipe.fileno()
+      fd_flags = fcntl.fcntl(fd, fcntl.F_GETFL)
+      fcntl.fcntl(fd, fcntl.F_SETFL, fd_flags | os.O_NONBLOCK)
+
+    already_terminated = False
+
+    while pipes:
+      # Maybe timeout reached?
+      if command_timeout and time.time() - started_time > command_timeout:
+        command_terminator.Terminate()
+
+      # Check if terminate request was received.
+      if command_terminator.IsTerminated() and not already_terminated:
+        if not self._Terminate(child, command_timeout):
+          self._Kill(child)
+        # Don't exit the loop immediately. Firstly try to read everything that
+        # was left on stdout and stderr.
+        already_terminated = True
+
+      # Wait for pipes to become ready.
+      ready_pipes, _, _ = select.select(pipes, [], [], 0.1)
+
+      # Handle file descriptors ready to be read.
+      for pipe in ready_pipes:
+        fd = pipe.fileno()
+
+        data = os.read(fd, 4096)
+
+        # check for end-of-file
+        if not data:
+          pipes.remove(pipe)
+          continue
+
+        # read all data that's available
+        while data:
+          if pipe == child.stdout:
+            self.DataReceivedOnOutput(data)
+          elif pipe == child.stderr:
+            self.DataReceivedOnError(data)
+
+          try:
+            data = os.read(fd, 4096)
+          except OSError:
+            # terminate loop if EWOULDBLOCK (EAGAIN) is received
+            data = ''
+
+    if not already_terminated:
+      self._logger.debug('Waiting for command to finish.')
+      child.wait()
+
+    return child
+
+  def DataReceivedOnOutput(self, data):
+    """Invoked when the child process wrote data to stdout."""
+    sys.stdout.write(data)
+
+  def DataReceivedOnError(self, data):
+    """Invoked when the child process wrote data to stderr."""
+    sys.stderr.write(data)
+
+
+class LoggingCommandExecuter(CommandExecuter):
+
+  def __init__(self, *args, **kwargs):
+    super(LoggingCommandExecuter, self).__init__(*args, **kwargs)
+
+    # Create a logger for command's stdout/stderr streams.
+    self._output = logging.getLogger('%s.%s' % (self._logger.name, 'Output'))
+
+  def OpenLog(self, log_path):
+    """The messages are going to be saved to gzip compressed file."""
+    formatter = logging.Formatter('%(asctime)s %(prefix)s: %(message)s',
+                                  '%Y-%m-%d %H:%M:%S')
+    handler = logger.CompressedFileHandler(log_path, delay=True)
+    handler.setFormatter(formatter)
+    self._output.addHandler(handler)
+
+    # Set a flag to prevent log records from being propagated up the logger
+    # hierarchy tree.  We don't want for command output messages to appear in
+    # the main log.
+    self._output.propagate = 0
+
+  def CloseLog(self):
+    """Remove handlers and reattach the logger to its parent."""
+    for handler in list(self._output.handlers):
+      self._output.removeHandler(handler)
+      handler.flush()
+      handler.close()
+
+    self._output.propagate = 1
+
+  def DataReceivedOnOutput(self, data):
+    """Invoked when the child process wrote data to stdout."""
+    for line in data.splitlines():
+      self._output.info(line, extra={'prefix': 'STDOUT'})
+
+  def DataReceivedOnError(self, data):
+    """Invoked when the child process wrote data to stderr."""
+    for line in data.splitlines():
+      self._output.warning(line, extra={'prefix': 'STDERR'})
+
+
+class CommandTerminator(object):
+
+  def __init__(self):
+    self.terminated = False
+
+  def Terminate(self):
+    self.terminated = True
+
+  def IsTerminated(self):
+    return self.terminated
diff --git a/automation/common/command_executer_test.py b/automation/common/command_executer_test.py
new file mode 100755
index 0000000..4aa245f
--- /dev/null
+++ b/automation/common/command_executer_test.py
@@ -0,0 +1,210 @@
+#!/usr/bin/python
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+import cStringIO
+import logging
+import os
+import signal
+import socket
+import sys
+import time
+import unittest
+
+
+def AddScriptDirToPath():
+  """Required for remote python script execution."""
+  path = os.path.abspath(__file__)
+
+  for _ in range(3):
+    path, _ = os.path.split(path)
+
+  if not path in sys.path:
+    sys.path.append(path)
+
+
+AddScriptDirToPath()
+
+from automation.common.command_executer import CommandExecuter
+
+
+class LoggerMock(object):
+
+  def LogCmd(self, cmd, machine='', user=''):
+    if machine:
+      logging.info('[%s] Executing: %s', machine, cmd)
+    else:
+      logging.info('Executing: %s', cmd)
+
+  def LogError(self, msg):
+    logging.error(msg)
+
+  def LogWarning(self, msg):
+    logging.warning(msg)
+
+  def LogOutput(self, msg):
+    logging.info(msg)
+
+
+class CommandExecuterUnderTest(CommandExecuter):
+
+  def __init__(self):
+    CommandExecuter.__init__(self, logger_to_set=LoggerMock())
+
+    # We will record stdout and stderr.
+    self._stderr = cStringIO.StringIO()
+    self._stdout = cStringIO.StringIO()
+
+  @property
+  def stdout(self):
+    return self._stdout.getvalue()
+
+  @property
+  def stderr(self):
+    return self._stderr.getvalue()
+
+  def DataReceivedOnOutput(self, data):
+    self._stdout.write(data)
+
+  def DataReceivedOnError(self, data):
+    self._stderr.write(data)
+
+
+class CommandExecuterLocalTests(unittest.TestCase):
+  HOSTNAME = None
+
+  def setUp(self):
+    self._executer = CommandExecuterUnderTest()
+
+  def tearDown(self):
+    pass
+
+  def RunCommand(self, method, **kwargs):
+    program = os.path.abspath(sys.argv[0])
+
+    return self._executer.RunCommand('%s runHelper %s' % (program, method),
+                                     machine=self.HOSTNAME,
+                                     **kwargs)
+
+  def testCommandTimeout(self):
+    exit_code = self.RunCommand('SleepForMinute', command_timeout=3)
+
+    self.assertTrue(-exit_code in [signal.SIGTERM, signal.SIGKILL],
+                    'Invalid exit code: %d' % exit_code)
+
+  def testCommandTimeoutIfSigTermIgnored(self):
+    exit_code = self.RunCommand('IgnoreSigTerm', command_timeout=3)
+
+    self.assertTrue(-exit_code in [signal.SIGTERM, signal.SIGKILL])
+
+  def testCommandSucceeded(self):
+    self.assertFalse(self.RunCommand('ReturnTrue'))
+
+  def testCommandFailed(self):
+    self.assertTrue(self.RunCommand('ReturnFalse'))
+
+  def testStringOnOutputStream(self):
+    self.assertFalse(self.RunCommand('EchoToOutputStream'))
+    self.assertEquals(self._executer.stderr, '')
+    self.assertEquals(self._executer.stdout, 'test')
+
+  def testStringOnErrorStream(self):
+    self.assertFalse(self.RunCommand('EchoToErrorStream'))
+    self.assertEquals(self._executer.stderr, 'test')
+    self.assertEquals(self._executer.stdout, '')
+
+  def testOutputStreamNonInteractive(self):
+    self.assertFalse(
+        self.RunCommand('IsOutputStreamInteractive'),
+        'stdout stream is a terminal!')
+
+  def testErrorStreamNonInteractive(self):
+    self.assertFalse(
+        self.RunCommand('IsErrorStreamInteractive'),
+        'stderr stream is a terminal!')
+
+  def testAttemptToRead(self):
+    self.assertFalse(self.RunCommand('WaitForInput', command_timeout=3))
+
+  def testInterruptedProcess(self):
+    self.assertEquals(self.RunCommand('TerminateBySigAbrt'), -signal.SIGABRT)
+
+
+class CommandExecuterRemoteTests(CommandExecuterLocalTests):
+  HOSTNAME = socket.gethostname()
+
+  def testCommandTimeoutIfSigTermIgnored(self):
+    exit_code = self.RunCommand('IgnoreSigTerm', command_timeout=6)
+
+    self.assertEquals(exit_code, 255)
+
+    lines = self._executer.stdout.splitlines()
+    pid = int(lines[0])
+
+    try:
+      with open('/proc/%d/cmdline' % pid) as f:
+        cmdline = f.read()
+    except IOError:
+      cmdline = ''
+
+    self.assertFalse('IgnoreSigTerm' in cmdline, 'Process is still alive.')
+
+
+class CommandExecuterTestHelpers(object):
+
+  def SleepForMinute(self):
+    time.sleep(60)
+    return 1
+
+  def ReturnTrue(self):
+    return 0
+
+  def ReturnFalse(self):
+    return 1
+
+  def EchoToOutputStream(self):
+    sys.stdout.write('test')
+    return 0
+
+  def EchoToErrorStream(self):
+    sys.stderr.write('test')
+    return 0
+
+  def IsOutputStreamInteractive(self):
+    return sys.stdout.isatty()
+
+  def IsErrorStreamInteractive(self):
+    return sys.stderr.isatty()
+
+  def IgnoreSigTerm(self):
+    os.write(1, '%d' % os.getpid())
+    signal.signal(signal.SIGTERM, signal.SIG_IGN)
+    time.sleep(30)
+    return 0
+
+  def WaitForInput(self):
+    try:
+      # can only read end-of-file marker
+      return os.read(0, 1) != ''
+    except OSError:
+      # that means that stdin descriptor is closed
+      return 0
+
+  def TerminateBySigAbrt(self):
+    os.kill(os.getpid(), signal.SIGABRT)
+    return 0
+
+
+if __name__ == '__main__':
+  FORMAT = '%(asctime)-15s %(levelname)s %(message)s'
+  logging.basicConfig(format=FORMAT, level=logging.DEBUG)
+
+  if len(sys.argv) > 1:
+    if sys.argv[1] == 'runHelper':
+      helpers = CommandExecuterTestHelpers()
+      sys.exit(getattr(helpers, sys.argv[2])())
+
+  unittest.main()
diff --git a/automation/common/events.py b/automation/common/events.py
new file mode 100644
index 0000000..ad3ec84
--- /dev/null
+++ b/automation/common/events.py
@@ -0,0 +1,149 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+"""Tools for recording and reporting timeline of abstract events.
+
+You can store any events provided that they can be stringified.
+"""
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+import collections
+import datetime
+import time
+
+
+class _EventRecord(object):
+  """Internal class.  Attaches extra information to an event."""
+
+  def __init__(self, event, time_started=None, time_elapsed=None):
+    self._event = event
+    self._time_started = time_started or time.time()
+    self._time_elapsed = None
+
+    if time_elapsed:
+      self.time_elapsed = time_elapsed
+
+  @property
+  def event(self):
+    return self._event
+
+  @property
+  def time_started(self):
+    return self._time_started
+
+  def _TimeElapsedGet(self):
+    if self.has_finished:
+      time_elapsed = self._time_elapsed
+    else:
+      time_elapsed = time.time() - self._time_started
+
+    return datetime.timedelta(seconds=time_elapsed)
+
+  def _TimeElapsedSet(self, time_elapsed):
+    if isinstance(time_elapsed, datetime.timedelta):
+      self._time_elapsed = time_elapsed.seconds
+    else:
+      self._time_elapsed = time_elapsed
+
+  time_elapsed = property(_TimeElapsedGet, _TimeElapsedSet)
+
+  @property
+  def has_finished(self):
+    return self._time_elapsed is not None
+
+  def GetTimeStartedFormatted(self):
+    return time.strftime('%m/%d/%Y %H:%M:%S', time.gmtime(self._time_started))
+
+  def GetTimeElapsedRounded(self):
+    return datetime.timedelta(seconds=int(self.time_elapsed.seconds))
+
+  def Finish(self):
+    if not self.has_finished:
+      self._time_elapsed = time.time() - self._time_started
+
+
+class _Transition(collections.namedtuple('_Transition', ('from_', 'to_'))):
+  """Internal class.  Represents transition point between events / states."""
+
+  def __str__(self):
+    return '%s => %s' % (self.from_, self.to_)
+
+
+class EventHistory(collections.Sequence):
+  """Records events and provides human readable events timeline."""
+
+  def __init__(self, records=None):
+    self._records = records or []
+
+  def __len__(self):
+    return len(self._records)
+
+  def __iter__(self):
+    return iter(self._records)
+
+  def __getitem__(self, index):
+    return self._records[index]
+
+  @property
+  def last(self):
+    if self._records:
+      return self._records[-1]
+
+  def AddEvent(self, event):
+    if self.last:
+      self.last.Finish()
+
+    evrec = _EventRecord(event)
+    self._records.append(evrec)
+    return evrec
+
+  def GetTotalTime(self):
+    if self._records:
+      total_time_elapsed = sum(evrec.time_elapsed.seconds
+                               for evrec in self._records)
+
+      return datetime.timedelta(seconds=int(total_time_elapsed))
+
+  def GetTransitionEventHistory(self):
+    records = []
+
+    if self._records:
+      for num, next_evrec in enumerate(self._records[1:], start=1):
+        evrec = self._records[num - 1]
+
+        records.append(_EventRecord(
+            _Transition(evrec.event, next_evrec.event), evrec.time_started,
+            evrec.time_elapsed))
+
+      if not self.last.has_finished:
+        records.append(_EventRecord(
+            _Transition(self.last.event,
+                        'NOW'), self.last.time_started, self.last.time_elapsed))
+
+    return EventHistory(records)
+
+  @staticmethod
+  def _GetReport(history, report_name):
+    report = [report_name]
+
+    for num, evrec in enumerate(history, start=1):
+      time_elapsed = str(evrec.GetTimeElapsedRounded())
+
+      if not evrec.has_finished:
+        time_elapsed.append(' (not finished)')
+
+      report.append('%d) %s: %s: %s' % (num, evrec.GetTimeStartedFormatted(),
+                                        evrec.event, time_elapsed))
+
+    report.append('Total Time: %s' % history.GetTotalTime())
+
+    return '\n'.join(report)
+
+  def GetEventReport(self):
+    return EventHistory._GetReport(self, 'Timeline of events:')
+
+  def GetTransitionEventReport(self):
+    return EventHistory._GetReport(self.GetTransitionEventHistory(),
+                                   'Timeline of transition events:')
diff --git a/automation/common/job.py b/automation/common/job.py
new file mode 100644
index 0000000..e845ab2
--- /dev/null
+++ b/automation/common/job.py
@@ -0,0 +1,178 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+#
+"""A module for a job in the infrastructure."""
+
+__author__ = 'raymes@google.com (Raymes Khoury)'
+
+import os.path
+
+from automation.common import state_machine
+
+STATUS_NOT_EXECUTED = 'NOT_EXECUTED'
+STATUS_SETUP = 'SETUP'
+STATUS_COPYING = 'COPYING'
+STATUS_RUNNING = 'RUNNING'
+STATUS_SUCCEEDED = 'SUCCEEDED'
+STATUS_FAILED = 'FAILED'
+
+
+class FolderDependency(object):
+
+  def __init__(self, job, src, dest=None):
+    if not dest:
+      dest = src
+
+    # TODO(kbaclawski): rename to producer
+    self.job = job
+    self.src = src
+    self.dest = dest
+
+  @property
+  def read_only(self):
+    return self.dest == self.src
+
+
+class JobStateMachine(state_machine.BasicStateMachine):
+  state_machine = {
+      STATUS_NOT_EXECUTED: [STATUS_SETUP],
+      STATUS_SETUP: [STATUS_COPYING, STATUS_FAILED],
+      STATUS_COPYING: [STATUS_RUNNING, STATUS_FAILED],
+      STATUS_RUNNING: [STATUS_SUCCEEDED, STATUS_FAILED]
+  }
+
+  final_states = [STATUS_SUCCEEDED, STATUS_FAILED]
+
+
+class JobFailure(Exception):
+
+  def __init__(self, message, exit_code):
+    Exception.__init__(self, message)
+    self.exit_code = exit_code
+
+
+class Job(object):
+  """A class representing a job whose commands will be executed."""
+
+  WORKDIR_PREFIX = '/usr/local/google/tmp/automation'
+
+  def __init__(self, label, command, timeout=4 * 60 * 60):
+    self._state = JobStateMachine(STATUS_NOT_EXECUTED)
+    self.predecessors = set()
+    self.successors = set()
+    self.machine_dependencies = []
+    self.folder_dependencies = []
+    self.id = 0
+    self.machines = []
+    self.command = command
+    self._has_primary_machine_spec = False
+    self.group = None
+    self.dry_run = None
+    self.label = label
+    self.timeout = timeout
+
+  def _StateGet(self):
+    return self._state
+
+  def _StateSet(self, new_state):
+    self._state.Change(new_state)
+
+  status = property(_StateGet, _StateSet)
+
+  @property
+  def timeline(self):
+    return self._state.timeline
+
+  def __repr__(self):
+    return '{%s: %s}' % (self.__class__.__name__, self.id)
+
+  def __str__(self):
+    res = []
+    res.append('%d' % self.id)
+    res.append('Predecessors:')
+    res.extend(['%d' % pred.id for pred in self.predecessors])
+    res.append('Successors:')
+    res.extend(['%d' % succ.id for succ in self.successors])
+    res.append('Machines:')
+    res.extend(['%s' % machine for machine in self.machines])
+    res.append(self.PrettyFormatCommand())
+    res.append('%s' % self.status)
+    res.append(self.timeline.GetTransitionEventReport())
+    return '\n'.join(res)
+
+  @staticmethod
+  def _FormatCommand(cmd, substitutions):
+    for pattern, replacement in substitutions:
+      cmd = cmd.replace(pattern, replacement)
+
+    return cmd
+
+  def GetCommand(self):
+    substitutions = [
+        ('$JOB_ID', str(self.id)), ('$JOB_TMP', self.work_dir),
+        ('$JOB_HOME', self.home_dir),
+        ('$PRIMARY_MACHINE', self.primary_machine.hostname)
+    ]
+
+    if len(self.machines) > 1:
+      for num, machine in enumerate(self.machines[1:]):
+        substitutions.append(('$SECONDARY_MACHINES[%d]' % num, machine.hostname
+                             ))
+
+    return self._FormatCommand(str(self.command), substitutions)
+
+  def PrettyFormatCommand(self):
+    # TODO(kbaclawski): This method doesn't belong here, but rather to
+    # non existing Command class. If one is created then PrettyFormatCommand
+    # shall become its method.
+    return self._FormatCommand(self.GetCommand(), [
+        ('\{ ', ''), ('; \}', ''), ('\} ', '\n'), ('\s*&&\s*', '\n')
+    ])
+
+  def DependsOnFolder(self, dependency):
+    self.folder_dependencies.append(dependency)
+    self.DependsOn(dependency.job)
+
+  @property
+  def results_dir(self):
+    return os.path.join(self.work_dir, 'results')
+
+  @property
+  def logs_dir(self):
+    return os.path.join(self.home_dir, 'logs')
+
+  @property
+  def log_filename_prefix(self):
+    return 'job-%d.log' % self.id
+
+  @property
+  def work_dir(self):
+    return os.path.join(self.WORKDIR_PREFIX, 'job-%d' % self.id)
+
+  @property
+  def home_dir(self):
+    return os.path.join(self.group.home_dir, 'job-%d' % self.id)
+
+  @property
+  def primary_machine(self):
+    return self.machines[0]
+
+  def DependsOn(self, job):
+    """Specifies Jobs to be finished before this job can be launched."""
+    self.predecessors.add(job)
+    job.successors.add(self)
+
+  @property
+  def is_ready(self):
+    """Check that all our dependencies have been executed."""
+    return all(pred.status == STATUS_SUCCEEDED for pred in self.predecessors)
+
+  def DependsOnMachine(self, machine_spec, primary=True):
+    # Job will run on arbitrarily chosen machine specified by
+    # MachineSpecification class instances passed to this method.
+    if primary:
+      if self._has_primary_machine_spec:
+        raise RuntimeError('Only one primary machine specification allowed.')
+      self._has_primary_machine_spec = True
+      self.machine_dependencies.insert(0, machine_spec)
+    else:
+      self.machine_dependencies.append(machine_spec)
diff --git a/automation/common/job_group.py b/automation/common/job_group.py
new file mode 100644
index 0000000..96912fc
--- /dev/null
+++ b/automation/common/job_group.py
@@ -0,0 +1,73 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+#
+
+import getpass
+import os
+
+from automation.common.state_machine import BasicStateMachine
+
+STATUS_NOT_EXECUTED = 'NOT_EXECUTED'
+STATUS_EXECUTING = 'EXECUTING'
+STATUS_SUCCEEDED = 'SUCCEEDED'
+STATUS_FAILED = 'FAILED'
+
+
+class JobGroupStateMachine(BasicStateMachine):
+  state_machine = {
+      STATUS_NOT_EXECUTED: [STATUS_EXECUTING],
+      STATUS_EXECUTING: [STATUS_SUCCEEDED, STATUS_FAILED]
+  }
+
+  final_states = [STATUS_SUCCEEDED, STATUS_FAILED]
+
+
+class JobGroup(object):
+  HOMEDIR_PREFIX = os.path.join('/home', getpass.getuser(), 'www', 'automation')
+
+  def __init__(self,
+               label,
+               jobs=None,
+               cleanup_on_completion=True,
+               cleanup_on_failure=False,
+               description=''):
+    self._state = JobGroupStateMachine(STATUS_NOT_EXECUTED)
+    self.id = 0
+    self.label = label
+    self.jobs = []
+    self.cleanup_on_completion = cleanup_on_completion
+    self.cleanup_on_failure = cleanup_on_failure
+    self.description = description
+
+    if jobs:
+      for job in jobs:
+        self.AddJob(job)
+
+  def _StateGet(self):
+    return self._state
+
+  def _StateSet(self, new_state):
+    self._state.Change(new_state)
+
+  status = property(_StateGet, _StateSet)
+
+  @property
+  def home_dir(self):
+    return os.path.join(self.HOMEDIR_PREFIX, 'job-group-%d' % self.id)
+
+  @property
+  def time_submitted(self):
+    try:
+      return self.status.timeline[1].time_started
+    except IndexError:
+      return None
+
+  def __repr__(self):
+    return '{%s: %s}' % (self.__class__.__name__, self.id)
+
+  def __str__(self):
+    return '\n'.join(['Job-Group:', 'ID: %s' % self.id] + [str(
+        job) for job in self.jobs])
+
+  def AddJob(self, job):
+    self.jobs.append(job)
+    job.group = self
diff --git a/automation/common/logger.py b/automation/common/logger.py
new file mode 100644
index 0000000..4aeee05
--- /dev/null
+++ b/automation/common/logger.py
@@ -0,0 +1,144 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+from itertools import chain
+import gzip
+import logging
+import logging.handlers
+import time
+import traceback
+
+
+def SetUpRootLogger(filename=None, level=None, display_flags={}):
+  console_handler = logging.StreamHandler()
+  console_handler.setFormatter(CustomFormatter(AnsiColorCoder(), display_flags))
+  logging.root.addHandler(console_handler)
+
+  if filename:
+    file_handler = logging.handlers.RotatingFileHandler(
+        filename,
+        maxBytes=10 * 1024 * 1024,
+        backupCount=9,
+        delay=True)
+    file_handler.setFormatter(CustomFormatter(NullColorCoder(), display_flags))
+    logging.root.addHandler(file_handler)
+
+  if level:
+    logging.root.setLevel(level)
+
+
+class NullColorCoder(object):
+
+  def __call__(self, *args):
+    return ''
+
+
+class AnsiColorCoder(object):
+  CODES = {'reset': (0,),
+           'bold': (1, 22),
+           'italics': (3, 23),
+           'underline': (4, 24),
+           'inverse': (7, 27),
+           'strikethrough': (9, 29),
+           'black': (30, 40),
+           'red': (31, 41),
+           'green': (32, 42),
+           'yellow': (33, 43),
+           'blue': (34, 44),
+           'magenta': (35, 45),
+           'cyan': (36, 46),
+           'white': (37, 47)}
+
+  def __call__(self, *args):
+    codes = []
+
+    for arg in args:
+      if arg.startswith('bg-') or arg.startswith('no-'):
+        codes.append(self.CODES[arg[3:]][1])
+      else:
+        codes.append(self.CODES[arg][0])
+
+    return '\033[%sm' % ';'.join(map(str, codes))
+
+
+class CustomFormatter(logging.Formatter):
+  COLORS = {'DEBUG': ('white',),
+            'INFO': ('green',),
+            'WARN': ('yellow', 'bold'),
+            'ERROR': ('red', 'bold'),
+            'CRIT': ('red', 'inverse', 'bold')}
+
+  def __init__(self, coder, display_flags={}):
+    items = []
+
+    if display_flags.get('datetime', True):
+      items.append('%(asctime)s')
+    if display_flags.get('level', True):
+      items.append('%(levelname)s')
+    if display_flags.get('name', True):
+      items.append(coder('cyan') + '[%(threadName)s:%(name)s]' + coder('reset'))
+    items.append('%(prefix)s%(message)s')
+
+    logging.Formatter.__init__(self, fmt=' '.join(items))
+
+    self._coder = coder
+
+  def formatTime(self, record):
+    ct = self.converter(record.created)
+    t = time.strftime('%Y-%m-%d %H:%M:%S', ct)
+    return '%s.%02d' % (t, record.msecs / 10)
+
+  def formatLevelName(self, record):
+    if record.levelname in ['WARNING', 'CRITICAL']:
+      levelname = record.levelname[:4]
+    else:
+      levelname = record.levelname
+
+    return ''.join([self._coder(*self.COLORS[levelname]), levelname,
+                    self._coder('reset')])
+
+  def formatMessagePrefix(self, record):
+    try:
+      return ' %s%s:%s ' % (self._coder('black', 'bold'), record.prefix,
+                            self._coder('reset'))
+    except AttributeError:
+      return ''
+
+  def format(self, record):
+    if record.exc_info:
+      if not record.exc_text:
+        record.exc_text = self.formatException(record.exc_info)
+    else:
+      record.exc_text = ''
+
+    fmt = record.__dict__.copy()
+    fmt.update({'levelname': self.formatLevelName(record),
+                'asctime': self.formatTime(record),
+                'prefix': self.formatMessagePrefix(record)})
+
+    s = []
+
+    for line in chain(record.getMessage().splitlines(),
+                      record.exc_text.splitlines()):
+      fmt['message'] = line
+
+      s.append(self._fmt % fmt)
+
+    return '\n'.join(s)
+
+
+class CompressedFileHandler(logging.FileHandler):
+
+  def _open(self):
+    return gzip.open(self.baseFilename + '.gz', self.mode, 9)
+
+
+def HandleUncaughtExceptions(fun):
+  """Catches all exceptions that would go outside decorated fun scope."""
+
+  def _Interceptor(*args, **kwargs):
+    try:
+      return fun(*args, **kwargs)
+    except StandardError:
+      logging.exception('Uncaught exception:')
+
+  return _Interceptor
diff --git a/automation/common/machine.py b/automation/common/machine.py
new file mode 100644
index 0000000..4db0db0
--- /dev/null
+++ b/automation/common/machine.py
@@ -0,0 +1,70 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+from fnmatch import fnmatch
+
+
+class Machine(object):
+  """Stores information related to machine and its state."""
+
+  def __init__(self, hostname, label, cpu, cores, os, username):
+    self.hostname = hostname
+    self.label = label
+    self.cpu = cpu
+    self.cores = cores
+    self.os = os
+    self.username = username
+
+    # MachineManager related attributes.
+    self.uses = 0
+    self.locked = False
+
+  def Acquire(self, exclusively):
+    assert not self.locked
+
+    if exclusively:
+      self.locked = True
+    self.uses += 1
+
+  def Release(self):
+    assert self.uses > 0
+
+    self.uses -= 1
+
+    if not self.uses:
+      self.locked = False
+
+  def __repr__(self):
+    return '{%s: %s@%s}' % (self.__class__.__name__, self.username,
+                            self.hostname)
+
+  def __str__(self):
+    return '\n'.join(
+        ['Machine Information:', 'Hostname: %s' % self.hostname, 'Label: %s' %
+         self.label, 'CPU: %s' % self.cpu, 'Cores: %d' % self.cores, 'OS: %s' %
+         self.os, 'Uses: %d' % self.uses, 'Locked: %s' % self.locked])
+
+
+class MachineSpecification(object):
+  """Helper class used to find a machine matching your requirements."""
+
+  def __init__(self, hostname='*', label='*', os='*', lock_required=False):
+    self.hostname = hostname
+    self.label = label
+    self.os = os
+    self.lock_required = lock_required
+    self.preferred_machines = []
+
+  def __str__(self):
+    return '\n'.join(['Machine Specification:', 'Name: %s' % self.name, 'OS: %s'
+                      % self.os, 'Lock required: %s' % self.lock_required])
+
+  def IsMatch(self, machine):
+    return all([not machine.locked, fnmatch(machine.hostname, self.hostname),
+                fnmatch(machine.label, self.label), fnmatch(machine.os,
+                                                            self.os)])
+
+  def AddPreferredMachine(self, hostname):
+    if hostname not in self.preferred_machines:
+      self.preferred_machines.append(hostname)
diff --git a/automation/common/machine_test.py b/automation/common/machine_test.py
new file mode 100755
index 0000000..c9c200a
--- /dev/null
+++ b/automation/common/machine_test.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Machine manager unittest.
+
+MachineManagerTest tests MachineManager.
+"""
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import machine
+import unittest
+
+
+class MachineTest(unittest.TestCase):
+
+  def setUp(self):
+    pass
+
+  def testPrintMachine(self):
+    mach = machine.Machine('ahmad.mtv', 'core2duo', 4, 'linux', 'asharif')
+    self.assertTrue('ahmad.mtv' in str(mach))
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/automation/common/state_machine.py b/automation/common/state_machine.py
new file mode 100644
index 0000000..d1cf42c
--- /dev/null
+++ b/automation/common/state_machine.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+from automation.common import events
+
+
+class BasicStateMachine(object):
+  """Generic class for constructing state machines.
+  
+  Keeps all states and possible transition of a state machine. Ensures that
+  transition between two states is always valid. Also stores transition events
+  in a timeline object.
+  """
+  state_machine = {}
+  final_states = []
+
+  def __init__(self, initial_state):
+    assert initial_state in self.state_machine,\
+           'Initial state does not belong to this state machine'
+
+    self._state = initial_state
+
+    self.timeline = events.EventHistory()
+    self.timeline.AddEvent(self._state)
+
+  def __str__(self):
+    return self._state
+
+  def __eq__(self, value):
+    if isinstance(value, BasicStateMachine):
+      value = str(value)
+
+    return self._state == value
+
+  def __ne__(self, value):
+    return not self == value
+
+  def _TransitionAllowed(self, to_state):
+    return to_state in self.state_machine.get(self._state, [])
+
+  def Change(self, new_state):
+    assert self._TransitionAllowed(new_state),\
+           'Transition from %s to %s not possible' % (self._state, new_state)
+
+    self._state = new_state
+
+    self.timeline.AddEvent(self._state)
+
+    if self._state in self.final_states:
+      self.timeline.last.Finish()
diff --git a/automation/server/__init__.py b/automation/server/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/automation/server/__init__.py
@@ -0,0 +1 @@
+
diff --git a/automation/server/job_executer.py b/automation/server/job_executer.py
new file mode 100644
index 0000000..30b5946
--- /dev/null
+++ b/automation/server/job_executer.py
@@ -0,0 +1,138 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+#
+
+import logging
+import os.path
+import threading
+
+from automation.common import command as cmd
+from automation.common import job
+from automation.common import logger
+from automation.common.command_executer import LoggingCommandExecuter
+from automation.common.command_executer import CommandTerminator
+
+
+class JobExecuter(threading.Thread):
+
+  def __init__(self, job_to_execute, machines, listeners):
+    threading.Thread.__init__(self)
+
+    assert machines
+
+    self.job = job_to_execute
+    self.listeners = listeners
+    self.machines = machines
+
+    # Set Thread name.
+    self.name = '%s-%s' % (self.__class__.__name__, self.job.id)
+
+    self._logger = logging.getLogger(self.__class__.__name__)
+    self._executer = LoggingCommandExecuter(self.job.dry_run)
+    self._terminator = CommandTerminator()
+
+  def _RunRemotely(self, command, fail_msg, command_timeout=1 * 60 * 60):
+    exit_code = self._executer.RunCommand(command,
+                                          self.job.primary_machine.hostname,
+                                          self.job.primary_machine.username,
+                                          command_terminator=self._terminator,
+                                          command_timeout=command_timeout)
+    if exit_code:
+      raise job.JobFailure(fail_msg, exit_code)
+
+  def _RunLocally(self, command, fail_msg, command_timeout=1 * 60 * 60):
+    exit_code = self._executer.RunCommand(command,
+                                          command_terminator=self._terminator,
+                                          command_timeout=command_timeout)
+    if exit_code:
+      raise job.JobFailure(fail_msg, exit_code)
+
+  def Kill(self):
+    self._terminator.Terminate()
+
+  def CleanUpWorkDir(self):
+    self._logger.debug('Cleaning up %r work directory.', self.job)
+    self._RunRemotely(cmd.RmTree(self.job.work_dir), 'Cleanup workdir failed.')
+
+  def CleanUpHomeDir(self):
+    self._logger.debug('Cleaning up %r home directory.', self.job)
+    self._RunLocally(cmd.RmTree(self.job.home_dir), 'Cleanup homedir failed.')
+
+  def _PrepareRuntimeEnvironment(self):
+    self._RunRemotely(
+        cmd.MakeDir(self.job.work_dir, self.job.logs_dir, self.job.results_dir),
+        'Creating new job directory failed.')
+
+    # The log directory is ready, so we can prepare to log command's output.
+    self._executer.OpenLog(os.path.join(self.job.logs_dir,
+                                        self.job.log_filename_prefix))
+
+  def _SatisfyFolderDependencies(self):
+    for dependency in self.job.folder_dependencies:
+      to_folder = os.path.join(self.job.work_dir, dependency.dest)
+      from_folder = os.path.join(dependency.job.work_dir, dependency.src)
+      from_machine = dependency.job.primary_machine
+
+      if from_machine == self.job.primary_machine and dependency.read_only:
+        # No need to make a copy, just symlink it
+        self._RunRemotely(
+            cmd.MakeSymlink(from_folder, to_folder),
+            'Failed to create symlink to required directory.')
+      else:
+        self._RunRemotely(
+            cmd.RemoteCopyFrom(from_machine.hostname,
+                               from_folder,
+                               to_folder,
+                               username=from_machine.username),
+            'Failed to copy required files.')
+
+  def _LaunchJobCommand(self):
+    command = self.job.GetCommand()
+
+    self._RunRemotely('%s; %s' % ('PS1=. TERM=linux source ~/.bashrc',
+                                  cmd.Wrapper(command,
+                                              cwd=self.job.work_dir)),
+                      "Command failed to execute: '%s'." % command,
+                      self.job.timeout)
+
+  def _CopyJobResults(self):
+    """Copy test results back to directory."""
+    self._RunLocally(
+        cmd.RemoteCopyFrom(self.job.primary_machine.hostname,
+                           self.job.results_dir,
+                           self.job.home_dir,
+                           username=self.job.primary_machine.username),
+        'Failed to copy results.')
+
+  def run(self):
+    self.job.status = job.STATUS_SETUP
+    self.job.machines = self.machines
+    self._logger.debug('Executing %r on %r in directory %s.', self.job,
+                       self.job.primary_machine.hostname, self.job.work_dir)
+
+    try:
+      self.CleanUpWorkDir()
+
+      self._PrepareRuntimeEnvironment()
+
+      self.job.status = job.STATUS_COPYING
+
+      self._SatisfyFolderDependencies()
+
+      self.job.status = job.STATUS_RUNNING
+
+      self._LaunchJobCommand()
+      self._CopyJobResults()
+
+      # If we get here, the job succeeded.
+      self.job.status = job.STATUS_SUCCEEDED
+    except job.JobFailure as ex:
+      self._logger.error('Job failed. Exit code %s. %s', ex.exit_code, ex)
+      if self._terminator.IsTerminated():
+        self._logger.info('%r was killed', self.job)
+
+      self.job.status = job.STATUS_FAILED
+
+    self._executer.CloseLog()
+
+    for listener in self.listeners:
+      listener.NotifyJobComplete(self.job)
diff --git a/automation/server/job_group_manager.py b/automation/server/job_group_manager.py
new file mode 100644
index 0000000..d66f5e0
--- /dev/null
+++ b/automation/server/job_group_manager.py
@@ -0,0 +1,118 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+#
+
+import copy
+import logging
+import threading
+
+from automation.common import command as cmd
+from automation.common import logger
+from automation.common.command_executer import CommandExecuter
+from automation.common import job
+from automation.common import job_group
+from automation.server.job_manager import IdProducerPolicy
+
+
+class JobGroupManager(object):
+
+  def __init__(self, job_manager):
+    self.all_job_groups = []
+
+    self.job_manager = job_manager
+    self.job_manager.AddListener(self)
+
+    self._lock = threading.Lock()
+    self._job_group_finished = threading.Condition(self._lock)
+
+    self._id_producer = IdProducerPolicy()
+    self._id_producer.Initialize(job_group.JobGroup.HOMEDIR_PREFIX,
+                                 'job-group-(?P<id>\d+)')
+
+    self._logger = logging.getLogger(self.__class__.__name__)
+
+  def GetJobGroup(self, group_id):
+    with self._lock:
+      for group in self.all_job_groups:
+        if group.id == group_id:
+          return group
+
+      return None
+
+  def GetAllJobGroups(self):
+    with self._lock:
+      return copy.deepcopy(self.all_job_groups)
+
+  def AddJobGroup(self, group):
+    with self._lock:
+      group.id = self._id_producer.GetNextId()
+
+    self._logger.debug('Creating runtime environment for %r.', group)
+
+    CommandExecuter().RunCommand(cmd.Chain(
+        cmd.RmTree(group.home_dir), cmd.MakeDir(group.home_dir)))
+
+    with self._lock:
+      self.all_job_groups.append(group)
+
+      for job_ in group.jobs:
+        self.job_manager.AddJob(job_)
+
+      group.status = job_group.STATUS_EXECUTING
+
+    self._logger.info('Added %r to queue.', group)
+
+    return group.id
+
+  def KillJobGroup(self, group):
+    with self._lock:
+      self._logger.debug('Killing all jobs that belong to %r.', group)
+
+      for job_ in group.jobs:
+        self.job_manager.KillJob(job_)
+
+      self._logger.debug('Waiting for jobs to quit.')
+
+      # Lets block until the group is killed so we know it is completed
+      # when we return.
+      while group.status not in [job_group.STATUS_SUCCEEDED,
+                                 job_group.STATUS_FAILED]:
+        self._job_group_finished.wait()
+
+  def NotifyJobComplete(self, job_):
+    self._logger.debug('Handling %r completion event.', job_)
+
+    group = job_.group
+
+    with self._lock:
+      # We need to perform an action only if the group hasn't already failed.
+      if group.status != job_group.STATUS_FAILED:
+        if job_.status == job.STATUS_FAILED:
+          # We have a failed job, abort the job group
+          group.status = job_group.STATUS_FAILED
+          if group.cleanup_on_failure:
+            for job_ in group.jobs:
+              # TODO(bjanakiraman): We should probably only kill dependent jobs
+              # instead of the whole job group.
+              self.job_manager.KillJob(job_)
+              self.job_manager.CleanUpJob(job_)
+        else:
+          # The job succeeded successfully -- lets check to see if we are done.
+          assert job_.status == job.STATUS_SUCCEEDED
+          finished = True
+          for other_job in group.jobs:
+            assert other_job.status != job.STATUS_FAILED
+            if other_job.status != job.STATUS_SUCCEEDED:
+              finished = False
+              break
+
+          if finished and group.status != job_group.STATUS_SUCCEEDED:
+            # TODO(kbaclawski): Without check performed above following code
+            # could be called more than once. This would trigger StateMachine
+            # crash, because it cannot transition from STATUS_SUCCEEDED to
+            # STATUS_SUCCEEDED. Need to address that bug in near future.
+            group.status = job_group.STATUS_SUCCEEDED
+            if group.cleanup_on_completion:
+              for job_ in group.jobs:
+                self.job_manager.CleanUpJob(job_)
+
+        self._job_group_finished.notifyAll()
diff --git a/automation/server/job_manager.py b/automation/server/job_manager.py
new file mode 100644
index 0000000..7a65b91
--- /dev/null
+++ b/automation/server/job_manager.py
@@ -0,0 +1,194 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+#
+
+import logging
+import os
+import re
+import threading
+
+from automation.common import job
+from automation.common import logger
+from automation.server.job_executer import JobExecuter
+
+
+class IdProducerPolicy(object):
+  """Produces series of unique integer IDs.
+
+  Example:
+      id_producer = IdProducerPolicy()
+      id_a = id_producer.GetNextId()
+      id_b = id_producer.GetNextId()
+      assert id_a != id_b
+  """
+
+  def __init__(self):
+    self._counter = 1
+
+  def Initialize(self, home_prefix, home_pattern):
+    """Find first available ID based on a directory listing.
+
+    Args:
+      home_prefix: A directory to be traversed.
+      home_pattern: A regexp describing all files/directories that will be
+        considered. The regexp must contain exactly one match group with name
+        "id", which must match an integer number.
+
+    Example:
+      id_producer.Initialize(JOBDIR_PREFIX, 'job-(?P<id>\d+)')
+    """
+    harvested_ids = []
+
+    if os.path.isdir(home_prefix):
+      for filename in os.listdir(home_prefix):
+        path = os.path.join(home_prefix, filename)
+
+        if os.path.isdir(path):
+          match = re.match(home_pattern, filename)
+
+          if match:
+            harvested_ids.append(int(match.group('id')))
+
+    self._counter = max(harvested_ids or [0]) + 1
+
+  def GetNextId(self):
+    """Calculates another ID considered to be unique."""
+    new_id = self._counter
+    self._counter += 1
+    return new_id
+
+
+class JobManager(threading.Thread):
+
+  def __init__(self, machine_manager):
+    threading.Thread.__init__(self, name=self.__class__.__name__)
+    self.all_jobs = []
+    self.ready_jobs = []
+    self.job_executer_mapping = {}
+
+    self.machine_manager = machine_manager
+
+    self._lock = threading.Lock()
+    self._jobs_available = threading.Condition(self._lock)
+    self._exit_request = False
+
+    self.listeners = []
+    self.listeners.append(self)
+
+    self._id_producer = IdProducerPolicy()
+    self._id_producer.Initialize(job.Job.WORKDIR_PREFIX, 'job-(?P<id>\d+)')
+
+    self._logger = logging.getLogger(self.__class__.__name__)
+
+  def StartJobManager(self):
+    self._logger.info('Starting...')
+
+    with self._lock:
+      self.start()
+      self._jobs_available.notifyAll()
+
+  def StopJobManager(self):
+    self._logger.info('Shutdown request received.')
+
+    with self._lock:
+      for job_ in self.all_jobs:
+        self._KillJob(job_.id)
+
+      # Signal to die
+      self._exit_request = True
+      self._jobs_available.notifyAll()
+
+    # Wait for all job threads to finish
+    for executer in self.job_executer_mapping.values():
+      executer.join()
+
+  def KillJob(self, job_id):
+    """Kill a job by id.
+
+    Does not block until the job is completed.
+    """
+    with self._lock:
+      self._KillJob(job_id)
+
+  def GetJob(self, job_id):
+    for job_ in self.all_jobs:
+      if job_.id == job_id:
+        return job_
+    return None
+
+  def _KillJob(self, job_id):
+    self._logger.info('Killing [Job: %d].', job_id)
+
+    if job_id in self.job_executer_mapping:
+      self.job_executer_mapping[job_id].Kill()
+    for job_ in self.ready_jobs:
+      if job_.id == job_id:
+        self.ready_jobs.remove(job_)
+        break
+
+  def AddJob(self, job_):
+    with self._lock:
+      job_.id = self._id_producer.GetNextId()
+
+      self.all_jobs.append(job_)
+      # Only queue a job as ready if it has no dependencies
+      if job_.is_ready:
+        self.ready_jobs.append(job_)
+
+      self._jobs_available.notifyAll()
+
+    return job_.id
+
+  def CleanUpJob(self, job_):
+    with self._lock:
+      if job_.id in self.job_executer_mapping:
+        self.job_executer_mapping[job_.id].CleanUpWorkDir()
+        del self.job_executer_mapping[job_.id]
+      # TODO(raymes): remove job from self.all_jobs
+
+  def NotifyJobComplete(self, job_):
+    self.machine_manager.ReturnMachines(job_.machines)
+
+    with self._lock:
+      self._logger.debug('Handling %r completion event.', job_)
+
+      if job_.status == job.STATUS_SUCCEEDED:
+        for succ in job_.successors:
+          if succ.is_ready:
+            if succ not in self.ready_jobs:
+              self.ready_jobs.append(succ)
+
+      self._jobs_available.notifyAll()
+
+  def AddListener(self, listener):
+    self.listeners.append(listener)
+
+  @logger.HandleUncaughtExceptions
+  def run(self):
+    self._logger.info('Started.')
+
+    while not self._exit_request:
+      with self._lock:
+        # Get the next ready job, block if there are none
+        self._jobs_available.wait()
+
+        while self.ready_jobs:
+          ready_job = self.ready_jobs.pop()
+
+          required_machines = ready_job.machine_dependencies
+          for pred in ready_job.predecessors:
+            required_machines[0].AddPreferredMachine(
+                pred.primary_machine.hostname)
+
+          machines = self.machine_manager.GetMachines(required_machines)
+          if not machines:
+            # If we can't get the necessary machines right now, simply wait
+            # for some jobs to complete
+            self.ready_jobs.insert(0, ready_job)
+            break
+          else:
+            # Mark as executing
+            executer = JobExecuter(ready_job, machines, self.listeners)
+            executer.start()
+            self.job_executer_mapping[ready_job.id] = executer
+
+    self._logger.info('Stopped.')
diff --git a/automation/server/machine_manager.py b/automation/server/machine_manager.py
new file mode 100644
index 0000000..b718607
--- /dev/null
+++ b/automation/server/machine_manager.py
@@ -0,0 +1,77 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+from operator import attrgetter
+import copy
+import csv
+import threading
+import os.path
+
+from automation.common import machine
+
+DEFAULT_MACHINES_FILE = os.path.join(os.path.dirname(__file__), 'test_pool.csv')
+
+
+class MachineManager(object):
+  """Container for list of machines one can run jobs on."""
+
+  @classmethod
+  def FromMachineListFile(cls, filename):
+    # Read the file and skip header
+    csv_file = csv.reader(open(filename, 'rb'), delimiter=',', quotechar='"')
+    csv_file.next()
+
+    return cls([machine.Machine(hostname, label, cpu, int(cores), os, user)
+                for hostname, label, cpu, cores, os, user in csv_file])
+
+  def __init__(self, machines):
+    self._machine_pool = machines
+    self._lock = threading.RLock()
+
+  def _GetMachine(self, mach_spec):
+    available_pool = [m for m in self._machine_pool if mach_spec.IsMatch(m)]
+
+    if available_pool:
+      # find a machine with minimum uses
+      uses = attrgetter('uses')
+
+      mach = min(available_pool, key=uses)
+
+      if mach_spec.preferred_machines:
+        preferred_pool = [m
+                          for m in available_pool
+                          if m.hostname in mach_spec.preferred_machines]
+        if preferred_pool:
+          mach = min(preferred_pool, key=uses)
+
+      mach.Acquire(mach_spec.lock_required)
+
+      return mach
+
+  def GetMachines(self, required_machines):
+    """Acquire machines for use by a job."""
+
+    with self._lock:
+      acquired_machines = [self._GetMachine(ms) for ms in required_machines]
+
+      if not all(acquired_machines):
+        # Roll back acquires
+        while acquired_machines:
+          mach = acquired_machines.pop()
+          if mach:
+            mach.Release()
+
+      return acquired_machines
+
+  def GetMachineList(self):
+    with self._lock:
+      return copy.deepcopy(self._machine_pool)
+
+  def ReturnMachines(self, machines):
+    with self._lock:
+      for m in machines:
+        m.Release()
+
+  def __str__(self):
+    return str(self._machine_pool)
diff --git a/automation/server/machine_manager_test.py b/automation/server/machine_manager_test.py
new file mode 100755
index 0000000..67fdcc2
--- /dev/null
+++ b/automation/server/machine_manager_test.py
@@ -0,0 +1,32 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import unittest
+from automation.common import machine
+from automation.server import machine_manager
+
+
+class MachineManagerTest(unittest.TestCase):
+
+  def setUp(self):
+    self.machine_manager = machine_manager.MachineManager()
+
+  def testPrint(self):
+    print self.machine_manager
+
+  def testGetLinuxBox(self):
+    mach_spec_list = [machine.MachineSpecification(os='linux')]
+    machines = self.machine_manager.GetMachines(mach_spec_list)
+    self.assertTrue(machines)
+
+  def testGetChromeOSBox(self):
+    mach_spec_list = [machine.MachineSpecification(os='chromeos')]
+    machines = self.machine_manager.GetMachines(mach_spec_list)
+    self.assertTrue(machines)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/automation/server/monitor/__init__.py b/automation/server/monitor/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/automation/server/monitor/__init__.py
@@ -0,0 +1 @@
+
diff --git a/automation/server/monitor/dashboard.py b/automation/server/monitor/dashboard.py
new file mode 100644
index 0000000..f6befed
--- /dev/null
+++ b/automation/server/monitor/dashboard.py
@@ -0,0 +1,259 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+from collections import namedtuple
+import glob
+import gzip
+import os.path
+import pickle
+import time
+import xmlrpclib
+
+from django import forms
+from django.http import HttpResponseRedirect
+from django.shortcuts import render_to_response
+from django.template import Context
+from django.views import static
+
+Link = namedtuple('Link', 'href name')
+
+
+def GetServerConnection():
+  return xmlrpclib.Server('http://localhost:8000')
+
+
+def MakeDefaultContext(*args):
+  context = Context({'links': [
+      Link('/job-group', 'Job Groups'), Link('/machine', 'Machines')
+  ]})
+
+  for arg in args:
+    context.update(arg)
+
+  return context
+
+
+class JobInfo(object):
+
+  def __init__(self, job_id):
+    self._job = pickle.loads(GetServerConnection().GetJob(job_id))
+
+  def GetAttributes(self):
+    job = self._job
+
+    group = [Link('/job-group/%d' % job.group.id, job.group.label)]
+
+    predecessors = [Link('/job/%d' % pred.id, pred.label)
+                    for pred in job.predecessors]
+
+    successors = [Link('/job/%d' % succ.id, succ.label)
+                  for succ in job.successors]
+
+    machines = [Link('/machine/%s' % mach.hostname, mach.hostname)
+                for mach in job.machines]
+
+    logs = [Link('/job/%d/log' % job.id, 'Log')]
+
+    commands = enumerate(job.PrettyFormatCommand().split('\n'), start=1)
+
+    return {'text': [('Label', job.label), ('Directory', job.work_dir)],
+            'link': [('Group', group), ('Predecessors', predecessors),
+                     ('Successors', successors), ('Machines', machines),
+                     ('Logs', logs)],
+            'code': [('Command', commands)]}
+
+  def GetTimeline(self):
+    return [{'started': evlog.GetTimeStartedFormatted(),
+             'state_from': evlog.event.from_,
+             'state_to': evlog.event.to_,
+             'elapsed': evlog.GetTimeElapsedRounded()}
+            for evlog in self._job.timeline.GetTransitionEventHistory()]
+
+  def GetLog(self):
+    log_path = os.path.join(self._job.logs_dir,
+                            '%s.gz' % self._job.log_filename_prefix)
+
+    try:
+      log = gzip.open(log_path, 'r')
+    except IOError:
+      content = []
+    else:
+      # There's a good chance that file is not closed yet, so EOF handling
+      # function and CRC calculation will fail, thus we need to monkey patch the
+      # _read_eof method.
+      log._read_eof = lambda: None
+
+      def SplitLine(line):
+        prefix, msg = line.split(': ', 1)
+        datetime, stream = prefix.rsplit(' ', 1)
+
+        return datetime, stream, msg
+
+      content = map(SplitLine, log.readlines())
+    finally:
+      log.close()
+
+    return content
+
+
+class JobGroupInfo(object):
+
+  def __init__(self, job_group_id):
+    self._job_group = pickle.loads(GetServerConnection().GetJobGroup(
+        job_group_id))
+
+  def GetAttributes(self):
+    group = self._job_group
+
+    home_dir = [Link('/job-group/%d/files/' % group.id, group.home_dir)]
+
+    return {'text': [('Label', group.label),
+                     ('Time submitted', time.ctime(group.time_submitted)),
+                     ('State', group.status),
+                     ('Cleanup on completion', group.cleanup_on_completion),
+                     ('Cleanup on failure', group.cleanup_on_failure)],
+            'link': [('Directory', home_dir)]}
+
+  def _GetJobStatus(self, job):
+    status_map = {'SUCCEEDED': 'success', 'FAILED': 'failure'}
+    return status_map.get(str(job.status), None)
+
+  def GetJobList(self):
+    return [{'id': job.id,
+             'label': job.label,
+             'state': job.status,
+             'status': self._GetJobStatus(job),
+             'elapsed': job.timeline.GetTotalTime()}
+            for job in self._job_group.jobs]
+
+  def GetHomeDirectory(self):
+    return self._job_group.home_dir
+
+  def GetReportList(self):
+    job_dir_pattern = os.path.join(self._job_group.home_dir, 'job-*')
+
+    filenames = []
+
+    for job_dir in glob.glob(job_dir_pattern):
+      filename = os.path.join(job_dir, 'report.html')
+
+      if os.access(filename, os.F_OK):
+        filenames.append(filename)
+
+    reports = []
+
+    for filename in sorted(filenames, key=lambda f: os.stat(f).st_ctime):
+      try:
+        with open(filename, 'r') as report:
+          reports.append(report.read())
+      except IOError:
+        pass
+
+    return reports
+
+
+class JobGroupListInfo(object):
+
+  def __init__(self):
+    self._all_job_groups = pickle.loads(GetServerConnection().GetAllJobGroups())
+
+  def _GetJobGroupState(self, group):
+    return str(group.status)
+
+  def _GetJobGroupStatus(self, group):
+    status_map = {'SUCCEEDED': 'success', 'FAILED': 'failure'}
+    return status_map.get(self._GetJobGroupState(group), None)
+
+  def GetList(self):
+    return [{'id': group.id,
+             'label': group.label,
+             'submitted': time.ctime(group.time_submitted),
+             'state': self._GetJobGroupState(group),
+             'status': self._GetJobGroupStatus(group)}
+            for group in self._all_job_groups]
+
+  def GetLabelList(self):
+    return sorted(set(group.label for group in self._all_job_groups))
+
+
+def JobPageHandler(request, job_id):
+  job = JobInfo(int(job_id))
+
+  ctx = MakeDefaultContext({
+      'job_id': job_id,
+      'attributes': job.GetAttributes(),
+      'timeline': job.GetTimeline()
+  })
+
+  return render_to_response('job.html', ctx)
+
+
+def LogPageHandler(request, job_id):
+  job = JobInfo(int(job_id))
+
+  ctx = MakeDefaultContext({'job_id': job_id, 'log_lines': job.GetLog()})
+
+  return render_to_response('job_log.html', ctx)
+
+
+def JobGroupPageHandler(request, job_group_id):
+  group = JobGroupInfo(int(job_group_id))
+
+  ctx = MakeDefaultContext({
+      'group_id': job_group_id,
+      'attributes': group.GetAttributes(),
+      'job_list': group.GetJobList(),
+      'reports': group.GetReportList()
+  })
+
+  return render_to_response('job_group.html', ctx)
+
+
+def JobGroupFilesPageHandler(request, job_group_id, path):
+  group = JobGroupInfo(int(job_group_id))
+
+  return static.serve(request,
+                      path,
+                      document_root=group.GetHomeDirectory(),
+                      show_indexes=True)
+
+
+class FilterJobGroupsForm(forms.Form):
+  label = forms.ChoiceField(label='Filter by label:', required=False)
+
+
+def JobGroupListPageHandler(request):
+  groups = JobGroupListInfo()
+  group_list = groups.GetList()
+
+  field = FilterJobGroupsForm.base_fields['label']
+  field.choices = [('*', '--- no filtering ---')]
+  field.choices.extend([(label, label) for label in groups.GetLabelList()])
+
+  if request.method == 'POST':
+    form = FilterJobGroupsForm(request.POST)
+
+    if form.is_valid():
+      label = form.cleaned_data['label']
+
+      if label != '*':
+        group_list = [group for group in group_list if group['label'] == label]
+  else:
+    form = FilterJobGroupsForm({'initial': '*'})
+
+  ctx = MakeDefaultContext({'filter': form, 'groups': group_list})
+
+  return render_to_response('job_group_list.html', ctx)
+
+
+def MachineListPageHandler(request):
+  machine_list = pickle.loads(GetServerConnection().GetMachineList())
+
+  return render_to_response('machine_list.html',
+                            MakeDefaultContext({'machines': machine_list}))
+
+
+def DefaultPageHandler(request):
+  return HttpResponseRedirect('/job-group')
diff --git a/automation/server/monitor/manage.py b/automation/server/monitor/manage.py
new file mode 100755
index 0000000..57deb5c
--- /dev/null
+++ b/automation/server/monitor/manage.py
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+from django.core.management import execute_manager
+
+try:
+  import settings  # Assumed to be in the same directory.
+except ImportError:
+  import sys
+
+  sys.stderr.write('Error: Can\'t find settings.py file in the directory '
+                   'containing %r.' % __file__)
+  sys.exit(1)
+
+if __name__ == '__main__':
+  execute_manager(settings)
diff --git a/automation/server/monitor/settings.py b/automation/server/monitor/settings.py
new file mode 100644
index 0000000..8cd20e3
--- /dev/null
+++ b/automation/server/monitor/settings.py
@@ -0,0 +1,49 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+# Django settings for monitor project.
+#
+# For explanation look here: http://docs.djangoproject.com/en/dev/ref/settings
+#
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+import os.path
+import sys
+
+# Path to the root of application. It's a custom setting, not related to Django.
+ROOT_PATH = os.path.dirname(os.path.realpath(sys.argv[0]))
+
+# Print useful information during runtime if possible.
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+# Sqlite3 database configuration, though we don't use it right now.
+DATABASE_ENGINE = 'sqlite3'
+DATABASE_NAME = os.path.join(ROOT_PATH, 'monitor.db')
+
+# Local time zone for this installation.
+TIME_ZONE = 'America/Los_Angeles'
+
+# Language code for this installation.
+LANGUAGE_CODE = 'en-us'
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# Absolute path to the directory that holds media.
+MEDIA_ROOT = os.path.join(ROOT_PATH, 'static') + '/'
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash if there is a path component (optional in other cases).
+MEDIA_URL = '/static/'
+
+# Used to provide a seed in secret-key hashing algorithms.  Make this unique,
+# and don't share it with anybody.
+SECRET_KEY = '13p5p_4q91*8@yo+tvvt#2k&6#d_&e_zvxdpdil53k419i5sop'
+
+# A string representing the full Python import path to your root URLconf.
+ROOT_URLCONF = 'monitor.urls'
+
+# List of locations of the template source files, in search order.
+TEMPLATE_DIRS = (os.path.join(ROOT_PATH, 'templates'),)
diff --git a/automation/server/monitor/start.sh b/automation/server/monitor/start.sh
new file mode 100755
index 0000000..4fc53be
--- /dev/null
+++ b/automation/server/monitor/start.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+# Author: kbaclawski@google.com (Krystian Baclawski)
+#
+
+./manage.py runserver "$HOSTNAME":8080
diff --git a/automation/server/monitor/static/style.css b/automation/server/monitor/static/style.css
new file mode 100644
index 0000000..b571b05
--- /dev/null
+++ b/automation/server/monitor/static/style.css
@@ -0,0 +1,101 @@
+* { font-family: sans-serif; }
+
+.left { text-align: left; }
+.right { text-align: right; }
+
+.code { font-family: monospace; text-align: left; }
+.line1 { background-color: Gainsboro; }
+.line2 { background-color: WhiteSmoke; }
+
+.title { margin-bottom: 0.25em; }
+
+.success { background-color: LightGreen; }
+.failure { background-color: LightPink; }
+
+pre.code { margin: 0px; }
+
+div.header p.title {
+  border: 1px solid black;
+  font-size: 32px;
+  font-style: bold;
+  background-color: LightBlue;
+  text-align: center;
+  margin: 0px;
+  padding: 10px;
+  font-weight: bold;
+}
+
+div.links {
+  background-color: Azure;
+  margin-top: 2px;
+  padding: 8px 4px 8px 4px;
+  border: solid 1px;
+}
+
+div.content {
+  margin-top: 2px;
+  padding: 8px;
+  border: solid 1px;
+}
+
+div.content p.title {
+  font-size: 28px;
+  text-align: left;
+  margin: 0px;
+  margin-bottom: 8px;
+  padding: 12px;
+  font-weight: bold;
+}
+
+table { border-collapse: collapse; }
+td, th { text-align: center; }
+
+table.list td, th { padding: 3px 8px 2px 8px; border:1px solid black; }
+table.list td { font-family: monospace; }
+table.list th { background-color: LightGray; }
+
+table.attributes td { text-align: left; }
+table.attributes > tbody > tr > td:first-child { font-family: sans-serif; }
+
+table.raw { border-style: none; }
+table.raw td {
+  padding: 0em 0.5em 0em 0.5em;
+  border-style: none;
+  vertical-align: top;
+  text-align: right;
+  font-family: monospace;
+}
+table.raw > tbody > tr > td:first-child { border-left: 0px; }
+table.raw > tbody > tr > td { border-left: 1px solid; }
+
+a.button {
+  background-color: PeachPuff;
+  text-decoration: underline;
+  text-align: center;
+  color: Black;
+  padding: 4px;
+  border: solid 1px;
+}
+
+a.small {
+  padding: 2px 4px 2px 4px;
+  font-size: small;
+  border-color: Gray;
+  background-color: PapayaWhip;
+}
+
+a.button:hover { background-color: LightYellow; }
+a.button:active { background-color: Yellow; }
+
+a.column {
+  border-style: none;
+  display: block;
+  margin: -3px -8px -2px -8px;
+}
+
+div.warning {
+  background-color: MistyRose;
+  border: 1px solid Crimson;
+  padding: 0.5em;
+  font-size: x-large;
+}
diff --git a/automation/server/monitor/templates/base.html b/automation/server/monitor/templates/base.html
new file mode 100644
index 0000000..95ffc22
--- /dev/null
+++ b/automation/server/monitor/templates/base.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <link rel="stylesheet" href="/static/style.css" />
+    <title>{% block title %}Automation Dashboard{% endblock %}</title>
+  </head>
+
+  <body>
+    <div class="header">
+      {% block header %}
+      <p class="title">Automation Dashboard</p>
+      {% endblock %}
+    </div>
+
+    <div class="links">
+      <span>Subpages:</span>
+      {% block links %}
+        {% for link in links %}
+          <a class="button" href="{{ link.href }}">{{ link.name }}</a>
+        {% endfor %}
+      {% endblock %}
+    </div>
+
+    <div class="content">
+      {% block content %}
+      {% endblock %}
+    </div>
+  </body>
+</html>
diff --git a/automation/server/monitor/templates/job.html b/automation/server/monitor/templates/job.html
new file mode 100644
index 0000000..90acd96
--- /dev/null
+++ b/automation/server/monitor/templates/job.html
@@ -0,0 +1,29 @@
+{% extends "base.html" %}
+
+{% block content %}
+<h1 class="title">Job {{ job_id }}</h1>
+
+<h2 class="title">General information</h2>
+{% include "snippet_attribute_table.html" %}
+
+<h2 class="title">Timeline of status events</h2>
+<table class="list">
+  <tbody>
+    <tr>
+      <th>Started</th>
+      <th>From State</th>
+      <th>To State</th>
+      <th>Elapsed</th>
+    </tr>
+    {% for entry in timeline %}
+    <tr>
+      <td>{{ entry.started }}</td>
+      <td>{{ entry.state_from }}</td>
+      <td>{{ entry.state_to }}</td>
+      <td>{{ entry.elapsed }}</td>
+    </tr>
+    {% endfor %}
+  </tbody>
+</table>
+
+{% endblock %}
diff --git a/automation/server/monitor/templates/job_group.html b/automation/server/monitor/templates/job_group.html
new file mode 100644
index 0000000..b6ed8ea
--- /dev/null
+++ b/automation/server/monitor/templates/job_group.html
@@ -0,0 +1,46 @@
+{% extends "base.html" %}
+
+{% block content %}
+<h1 class="title">Job Group {{ group_id }}</h1>
+
+<h2 class="title">General information</h2>
+{% include "snippet_attribute_table.html" %}
+
+<h2 class="title">Job Listing</h2>
+<table class="list">
+  <tbody>
+    <tr>
+      <th>Job ID</th>
+      <th>Label</th>
+      <th>Turnaround Time</th>
+      <th>State</th>
+    </tr>
+    {% for job in job_list %}
+    <tr>
+      <td>
+        <a class="button column" href="/job/{{ job.id }}">{{ job.id }}</a>
+      </td>
+      <td>{{ job.label }}</td>
+      <td>{{ job.elapsed }}</td>
+      {% if job.status %}
+      <td class="{{ job.status }}">{{ job.state }}</td>
+      {% else %}
+      <td>{{ job.state }}</td>
+      {% endif %}
+    </tr>
+    {% endfor %}
+  </tbody>
+</table>
+
+<h2 class="title">Report</h2>
+{% if reports %}
+{% autoescape off %}
+{% for report in reports %}
+{{ report }}
+{% endfor %}
+{% endautoescape %}
+{% else %}
+<div class="warning">No reports found!</div>
+{% endif %}
+
+{% endblock %}
diff --git a/automation/server/monitor/templates/job_group_list.html b/automation/server/monitor/templates/job_group_list.html
new file mode 100644
index 0000000..b82fa73
--- /dev/null
+++ b/automation/server/monitor/templates/job_group_list.html
@@ -0,0 +1,35 @@
+{% extends "base.html" %}
+
+{% block content %}
+<p class="title">Job Groups</p>
+
+<form action="/job-group" method="post">
+{{ filter.as_p }}
+<p><input type="submit" value="Filter!" /></p>
+</form>
+
+<table class="list">
+  <tbody>
+    <tr>
+      <th>Group ID</th>
+      <th>Label</th>
+      <th>Time Submitted</th>
+      <th>Status</th>
+    </tr>
+    {% for group in groups %}
+    <tr>
+      <td>
+        <a class="button column" href="/job-group/{{ group.id }}">{{ group.id }}</a>
+      </td>
+      <td>{{ group.label }}</td>
+      <td>{{ group.submitted }}</td>
+      {% if group.status %}
+      <td class="{{ group.status }}">{{ group.state }}</td>
+      {% else %}
+      <td>{{ group.state }}</td>
+      {% endif %}
+    </tr>
+    {% endfor %}
+  </tbody>
+</table>
+{% endblock %}
diff --git a/automation/server/monitor/templates/job_log.html b/automation/server/monitor/templates/job_log.html
new file mode 100644
index 0000000..937b21b
--- /dev/null
+++ b/automation/server/monitor/templates/job_log.html
@@ -0,0 +1,20 @@
+{% extends "base.html" %}
+
+{% block content %}
+<h1 class="title">Job {{ job_id }}</h1>
+
+<h2 class="title">Command output:</h2>
+
+<table class="raw">
+<tbody>
+{% for datetime, stream, line in log_lines %}
+<tr class="{% cycle 'line1' 'line2' %}">
+  <td>{{ datetime }}</td>
+  <td>{{ stream }}</td>
+  <td><pre class="code">{{ line|wordwrap:80 }}</pre></td>
+</tr>
+{% endfor %}
+</tbody>
+</table>
+
+{% endblock %}
diff --git a/automation/server/monitor/templates/machine_list.html b/automation/server/monitor/templates/machine_list.html
new file mode 100644
index 0000000..f81422d
--- /dev/null
+++ b/automation/server/monitor/templates/machine_list.html
@@ -0,0 +1,39 @@
+{% extends "base.html" %}
+
+{% block content %}
+<p class="title">Machines</p>
+
+<table class="list">
+<tbody>
+<tr>
+  <th>Hostname</th>
+  <th>Label</th>
+  <th>CPU</th>
+  <th>Cores</th>
+  <th>Operating System</th>
+  <th>Jobs Running</th>
+  <th>Locked</th>
+</tr>
+{% for machine in machines %}
+<tr>
+  <td>
+    <a class="button column" href="/machine/{{ machine.hostname }}">
+      {{ machine.hostname }}
+    </a>
+  </td>
+  <td>{{ machine.label }}</td>
+  <td>{{ machine.cpu }}</td>
+  <td>{{ machine.cores }}</td>
+  <td>{{ machine.os }}</td>
+  <td>{{ machine.uses }}</td>
+  {% if machine.locked %}
+  <td class="failure">Yes</td>
+  {% else %}
+  <td class="success">No</td>
+  {% endif %}
+</tr>
+{% endfor %}
+</tbody>
+</table>
+
+{% endblock %}
diff --git a/automation/server/monitor/templates/snippet_attribute_table.html b/automation/server/monitor/templates/snippet_attribute_table.html
new file mode 100644
index 0000000..24bacc1
--- /dev/null
+++ b/automation/server/monitor/templates/snippet_attribute_table.html
@@ -0,0 +1,36 @@
+<table class="list attributes">
+  <tbody>
+    <tr>
+      <th>Attribute</th>
+      <th>Value</th>
+    </tr>
+    {% for name, value in attributes.text %}
+    <tr>
+      <td>{{ name }}</td>
+      <td>{{ value }}</td>
+    </tr>
+    {% endfor %}
+
+    {% for name, links in attributes.link %}
+    <tr>
+      <td>{{ name }}</td>
+      <td>
+        {% if links %}
+        {% for link in links %}
+        <a class="button small" href="{{ link.href }}">{{ link.name }}</a>
+        {% endfor %}
+        {% else %}
+        None
+        {% endif %}
+      </td>
+    </tr>
+    {% endfor %}
+
+    {% for name, code in attributes.code %}
+    <tr>
+      <td>{{ name }}</td>
+      <td>{% include "snippet_code.html" %}</td>
+    </tr>
+    {% endfor %}
+  </tbody>
+</table>
diff --git a/automation/server/monitor/templates/snippet_code.html b/automation/server/monitor/templates/snippet_code.html
new file mode 100644
index 0000000..281754d
--- /dev/null
+++ b/automation/server/monitor/templates/snippet_code.html
@@ -0,0 +1,10 @@
+<table class="raw">
+<tbody>
+{% for num, line in code %}
+<tr class="{% cycle 'line1' 'line2' %}">
+  <td>{{ num }}</td>
+  <td><pre class="code">{{ line|wordwrap:120 }}</pre></td>
+</tr>
+{% endfor %}
+</tbody>
+</table>
diff --git a/automation/server/monitor/templates/snippet_links.html b/automation/server/monitor/templates/snippet_links.html
new file mode 100644
index 0000000..f19fa6e
--- /dev/null
+++ b/automation/server/monitor/templates/snippet_links.html
@@ -0,0 +1,7 @@
+{% if param %}
+{% for link in param %}
+<a class="button small" href="{{ link.href }}">{{ link.name }}</a>
+{% endfor %}
+{% else %}
+None
+{% endif %}
diff --git a/automation/server/monitor/urls.py b/automation/server/monitor/urls.py
new file mode 100644
index 0000000..1a6b248
--- /dev/null
+++ b/automation/server/monitor/urls.py
@@ -0,0 +1,21 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+#
+
+__author__ = 'kbaclawski@google.com (Krystian Baclawski)'
+
+from django.conf import settings
+from django.conf.urls.defaults import patterns
+
+urlpatterns = patterns(
+    'dashboard', (r'^job-group$', 'JobGroupListPageHandler'),
+    (r'^machine$', 'MachineListPageHandler'),
+    (r'^job/(?P<job_id>\d+)/log$', 'LogPageHandler'),
+    (r'^job/(?P<job_id>\d+)$', 'JobPageHandler'), (
+        r'^job-group/(?P<job_group_id>\d+)/files/(?P<path>.*)$',
+        'JobGroupFilesPageHandler'),
+    (r'^job-group/(?P<job_group_id>\d+)$', 'JobGroupPageHandler'),
+    (r'^$', 'DefaultPageHandler'))
+
+urlpatterns += patterns('',
+                        (r'^static/(?P<path>.*)$', 'django.views.static.serve',
+                         {'document_root': settings.MEDIA_ROOT}))
diff --git a/automation/server/server.py b/automation/server/server.py
new file mode 100755
index 0000000..f02a1d0
--- /dev/null
+++ b/automation/server/server.py
@@ -0,0 +1,125 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+import logging
+import optparse
+import pickle
+import signal
+from SimpleXMLRPCServer import SimpleXMLRPCServer
+import sys
+
+from automation.common import logger
+from automation.common.command_executer import CommandExecuter
+from automation.server import machine_manager
+from automation.server.job_group_manager import JobGroupManager
+from automation.server.job_manager import JobManager
+
+
+class Server(object):
+  """Plays a role of external interface accessible over XMLRPC."""
+
+  def __init__(self, machines_file=None, dry_run=False):
+    """Default constructor.
+
+    Args:
+      machines_file: Path to file storing a list of machines.
+      dry_run: If True, the server only simulates command execution.
+    """
+    CommandExecuter.Configure(dry_run)
+
+    self.job_manager = JobManager(
+        machine_manager.MachineManager.FromMachineListFile(
+            machines_file or machine_manager.DEFAULT_MACHINES_FILE))
+
+    self.job_group_manager = JobGroupManager(self.job_manager)
+
+    self._logger = logging.getLogger(self.__class__.__name__)
+
+  def ExecuteJobGroup(self, job_group, dry_run=False):
+    job_group = pickle.loads(job_group)
+    self._logger.info('Received ExecuteJobGroup(%r, dry_run=%s) request.',
+                      job_group, dry_run)
+
+    for job in job_group.jobs:
+      job.dry_run = dry_run
+    return self.job_group_manager.AddJobGroup(job_group)
+
+  def GetAllJobGroups(self):
+    self._logger.info('Received GetAllJobGroups() request.')
+    return pickle.dumps(self.job_group_manager.GetAllJobGroups())
+
+  def KillJobGroup(self, job_group_id):
+    self._logger.info('Received KillJobGroup(%d) request.', job_group_id)
+    self.job_group_manager.KillJobGroup(pickle.loads(job_group_id))
+
+  def GetJobGroup(self, job_group_id):
+    self._logger.info('Received GetJobGroup(%d) request.', job_group_id)
+
+    return pickle.dumps(self.job_group_manager.GetJobGroup(job_group_id))
+
+  def GetJob(self, job_id):
+    self._logger.info('Received GetJob(%d) request.', job_id)
+
+    return pickle.dumps(self.job_manager.GetJob(job_id))
+
+  def GetMachineList(self):
+    self._logger.info('Received GetMachineList() request.')
+
+    return pickle.dumps(self.job_manager.machine_manager.GetMachineList())
+
+  def StartServer(self):
+    self.job_manager.StartJobManager()
+
+  def StopServer(self):
+    self.job_manager.StopJobManager()
+    self.job_manager.join()
+
+
+def GetServerOptions():
+  """Get server's settings from command line options."""
+  parser = optparse.OptionParser()
+  parser.add_option('-m',
+                    '--machines-file',
+                    dest='machines_file',
+                    help='The location of the file '
+                    'containing the machines database',
+                    default=machine_manager.DEFAULT_MACHINES_FILE)
+  parser.add_option('-n',
+                    '--dry-run',
+                    dest='dry_run',
+                    help='Start the server in dry-run mode, where jobs will '
+                    'not actually be executed.',
+                    action='store_true',
+                    default=False)
+  return parser.parse_args()[0]
+
+
+def Main():
+  logger.SetUpRootLogger(filename='server.log', level=logging.DEBUG)
+
+  options = GetServerOptions()
+  server = Server(options.machines_file, options.dry_run)
+  server.StartServer()
+
+  def _HandleKeyboardInterrupt(*_):
+    server.StopServer()
+    sys.exit(1)
+
+  signal.signal(signal.SIGINT, _HandleKeyboardInterrupt)
+
+  try:
+    xmlserver = SimpleXMLRPCServer(
+        ('localhost', 8000),
+        allow_none=True,
+        logRequests=False)
+    xmlserver.register_instance(server)
+    xmlserver.serve_forever()
+  except Exception as ex:
+    logging.error(ex)
+    server.StopServer()
+    sys.exit(1)
+
+
+if __name__ == '__main__':
+  Main()
diff --git a/automation/server/server_test.py b/automation/server/server_test.py
new file mode 100755
index 0000000..bcf1b9f
--- /dev/null
+++ b/automation/server/server_test.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Machine manager unittest.
+
+MachineManagerTest tests MachineManager.
+"""
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import server
+import unittest
+
+
+class ServerTest(unittest.TestCase):
+
+  def setUp(self):
+    pass
+
+  def testGetAllJobs(self):
+    s = server.Server()
+    print s.GetAllJobs()
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/automation/server/test_pool.csv b/automation/server/test_pool.csv
new file mode 100644
index 0000000..b0700c9
--- /dev/null
+++ b/automation/server/test_pool.csv
@@ -0,0 +1,4 @@
+hostname,label,cpu,cores,os,username
+"chrotomation.mtv.corp.google.com","pc-workstation","core2duo",8,"linux","mobiletc-prebuild"
+"chromeos-test1.mtv.corp.google.com","cr48","atom",1,"chromeos","chromeos"
+"chromeos-test2.mtv.corp.google.com","cr48","atom",1,"chromeos","chromeos"
diff --git a/bestflags/README b/bestflags/README
new file mode 100644
index 0000000..d9fc5ba
--- /dev/null
+++ b/bestflags/README
@@ -0,0 +1,21 @@
+There is a vast set of compiler flags that can be used to build Chrome for
+ChromeOS. This option space has not been explored before. This directory
+provides an infrastructure to build Chrome with certain flag combinations, test
+it, gather results and prepare a fresh batch of flags to repeat the process. The
+infrastructure supports plug-in modules that implement algorithms for searching
+in the N-Dimensional space of compiler flag combinations.
+
+Currently, three different algorithms are built, namely genetic algorithm, hill
+climbing and negative flag iterative elimination. The module 'testing_batch.py'
+contains the testing of these algorithms.
+
+To run the script, type in python testing_batch.py.
+
+For further information about the project, please refer to the design document
+at:
+
+https://docs.google.com/a/google.com/document/d/19iE9rhszTWjISBpKJ3qK8uBCoUjs0o4etWDRkyEeUOw/
+
+There is also a presentation slide available at:
+
+https://docs.google.com/a/google.com/presentation/d/13rS9jALXffbP48YsF0-bsqovrVBfgzEud4e-XpavOdA/edit#slide=id.gf880fcd4_180
diff --git a/bestflags/example_algorithms.py b/bestflags/example_algorithms.py
new file mode 100644
index 0000000..9775d49
--- /dev/null
+++ b/bestflags/example_algorithms.py
@@ -0,0 +1,196 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""An example main file running the algorithms.
+
+Part of the Chrome build flags optimization.
+
+An example use of the framework. It parses the input json configuration file.
+Then it initiates the variables of the generation. Finally, it sets up the
+processes for different modules and runs the experiment.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import json
+import multiprocessing
+from optparse import OptionParser
+import sys
+
+import flags
+from genetic_algorithm import GAGeneration
+from pipeline_process import PipelineProcess
+import pipeline_worker
+from steering import Steering
+from task import BUILD_STAGE
+from task import Task
+from task import TEST_STAGE
+import testing_batch
+
+parser = OptionParser()
+
+parser.add_option('-f',
+                  '--file',
+                  dest='filename',
+                  help='configuration file FILE input',
+                  metavar='FILE')
+
+# The meta data for the genetic algorithm.
+BUILD_CMD = 'BUILD_CMD'
+TEST_CMD = 'TEST_CMD'
+OUTPUT = 'OUTPUT'
+DEFAULT_OUTPUT = 'output'
+CONF = 'CONF'
+DEFAULT_CONF = 'conf'
+NUM_BUILDER = 'NUM_BUILDER'
+DEFAULT_NUM_BUILDER = 1
+NUM_TESTER = 'NUM_TESTER'
+DEFAULT_NUM_TESTER = 1
+STOP_THRESHOLD = 'STOP_THRESHOLD'
+DEFAULT_STOP_THRESHOLD = 1
+NUM_CHROMOSOMES = 'NUM_CHROMOSOMES'
+DEFAULT_NUM_CHROMOSOMES = 20
+NUM_TRIALS = 'NUM_TRIALS'
+DEFAULT_NUM_TRIALS = 20
+MUTATION_RATE = 'MUTATION_RATE'
+DEFAULT_MUTATION_RATE = 0.01
+
+
+def _ProcessGA(meta_data):
+  """Set up the meta data for the genetic algorithm.
+
+  Args:
+    meta_data: the meta data for the genetic algorithm.
+  """
+  assert BUILD_CMD in meta_data
+  build_cmd = meta_data[BUILD_CMD]
+
+  assert TEST_CMD in meta_data
+  test_cmd = meta_data[TEST_CMD]
+
+  if OUTPUT not in meta_data:
+    output_file = DEFAULT_OUTPUT
+  else:
+    output_file = meta_data[OUTPUT]
+
+  if CONF not in meta_data:
+    conf_file = DEFAULT_CONF
+  else:
+    conf_file = meta_data[CONF]
+
+  if NUM_BUILDER not in meta_data:
+    num_builders = DEFAULT_NUM_BUILDER
+  else:
+    num_builders = meta_data[NUM_BUILDER]
+
+  if NUM_TESTER not in meta_data:
+    num_testers = DEFAULT_NUM_TESTER
+  else:
+    num_testers = meta_data[NUM_TESTER]
+
+  if STOP_THRESHOLD not in meta_data:
+    stop_threshold = DEFAULT_STOP_THRESHOLD
+  else:
+    stop_threshold = meta_data[STOP_THRESHOLD]
+
+  if NUM_CHROMOSOMES not in meta_data:
+    num_chromosomes = DEFAULT_NUM_CHROMOSOMES
+  else:
+    num_chromosomes = meta_data[NUM_CHROMOSOMES]
+
+  if NUM_TRIALS not in meta_data:
+    num_trials = DEFAULT_NUM_TRIALS
+  else:
+    num_trials = meta_data[NUM_TRIALS]
+
+  if MUTATION_RATE not in meta_data:
+    mutation_rate = DEFAULT_MUTATION_RATE
+  else:
+    mutation_rate = meta_data[MUTATION_RATE]
+
+  specs = flags.ReadConf(conf_file)
+
+  # Initiate the build/test command and the log directory.
+  Task.InitLogCommand(build_cmd, test_cmd, output_file)
+
+  # Initiate the build/test command and the log directory.
+  GAGeneration.InitMetaData(stop_threshold, num_chromosomes, num_trials, specs,
+                            mutation_rate)
+
+  # Generate the initial generations.
+  generation_tasks = testing_batch.GenerateRandomGATasks(specs, num_chromosomes,
+                                                         num_trials)
+  generations = [GAGeneration(generation_tasks, set([]), 0)]
+
+  # Execute the experiment.
+  _StartExperiment(num_builders, num_testers, generations)
+
+
+def _ParseJson(file_name):
+  """Parse the input json file.
+
+  Parse the input json file and call the proper function to perform the
+  algorithms.
+
+  Args:
+    file_name: the input json file name.
+  """
+
+  experiments = json.load(open(file_name))
+
+  for experiment in experiments:
+    if experiment == 'GA':
+      # An GA experiment
+      _ProcessGA(experiments[experiment])
+
+
+def _StartExperiment(num_builders, num_testers, generations):
+  """Set up the experiment environment and execute the framework.
+
+  Args:
+    num_builders: number of concurrent builders.
+    num_testers: number of concurrent testers.
+    generations: the initial generation for the framework.
+  """
+
+  manager = multiprocessing.Manager()
+
+  # The queue between the steering algorithm and the builder.
+  steering_build = manager.Queue()
+  # The queue between the builder and the tester.
+  build_test = manager.Queue()
+  # The queue between the tester and the steering algorithm.
+  test_steering = manager.Queue()
+
+  # Set up the processes for the builder, tester and steering algorithm module.
+  build_process = PipelineProcess(num_builders, 'builder', {}, BUILD_STAGE,
+                                  steering_build, pipeline_worker.Helper,
+                                  pipeline_worker.Worker, build_test)
+
+  test_process = PipelineProcess(num_testers, 'tester', {}, TEST_STAGE,
+                                 build_test, pipeline_worker.Helper,
+                                 pipeline_worker.Worker, test_steering)
+
+  steer_process = multiprocessing.Process(
+      target=Steering,
+      args=(set([]), generations, test_steering, steering_build))
+
+  # Start the processes.
+  build_process.start()
+  test_process.start()
+  steer_process.start()
+
+  # Wait for the processes to finish.
+  build_process.join()
+  test_process.join()
+  steer_process.join()
+
+
+def main(argv):
+  (options, _) = parser.parse_args(argv)
+  assert options.filename
+  _ParseJson(options.filename)
+
+
+if __name__ == '__main__':
+  main(sys.argv)
diff --git a/bestflags/examples/omnetpp/README b/bestflags/examples/omnetpp/README
new file mode 100644
index 0000000..eba522f
--- /dev/null
+++ b/bestflags/examples/omnetpp/README
@@ -0,0 +1,23 @@
+This directory contains the omnetpp example in SPEC2006 benchmark.
+
+It also contains the json configuration file which includes the meta data
+information to run the experiment.
+
+This directory contains a build file build_omnetpp which is used by the build
+module of the framework to compile the application.
+This directory contains a test file test_omnetpp which is used by the test
+module of the framework to benchmark the optimization compilation.
+This directory contains a conf file which includes the set of optimization flags
+the experiment will try.
+
+To use this direction, first gives the file the executable permission.
+  chmod a+x build_bikjmp
+  chmod a+x test_bikjmp
+
+Copy the SPEC2006 benchmark into this directory.
+
+To run, invoke the example_algorithm.py in the parent directory.
+  python example_algorithms.py --file=examples/omnetpp/example.json
+
+For help,
+  python example_algorithms.py --help
\ No newline at end of file
diff --git a/bestflags/examples/omnetpp/build_omnetpp b/bestflags/examples/omnetpp/build_omnetpp
new file mode 100755
index 0000000..35e9ec1
--- /dev/null
+++ b/bestflags/examples/omnetpp/build_omnetpp
@@ -0,0 +1,69 @@
+#!/bin/bash -x
+
+cd examples/omnetpp/cpu2006-redhat-ia32
+
+# Contains the optimization flags.
+flags=''
+
+# The index of the parameter.
+i=1
+
+# Indicate whether it is parsing the gcc param.
+in_gcc_param=false
+
+for parameter in "$@"
+  do
+    #  The last parameter is the file name.
+    if [ "$i" == "$#" ]; then
+      file=$parameter
+      break
+    fi
+
+    # The param is not a flag, it combines with the flag that comes right after.
+    # For example, --param max-inline-insns-single 
+    if [ "$parameter" == "-param" ]; then
+      in_gcc_param=true
+      flags+=-$parameter' '
+      let i++
+      continue
+    fi
+
+    # In in_gcc_param section, this flag follows the key word '--param'.
+    if [ $in_gcc_param == true ]; then
+      flags+=$parameter' '
+      let i++
+      in_gcc_param=false
+      continue
+    fi
+
+    # Normal flags.
+    flags+=-$parameter' '
+    let i++
+  done
+
+# Change the configuration file.
+content=$(sed s/amd64-m64-gcc41-kk/test$file/ config/linux64-amd64-pgi.cfg)
+echo "$content" | sed s/-O2/-O1\ "$flags"/ >config/linux64-amd64-pgi$file.cfg
+. ./shrc
+/usr/bin/time -o temp$file runspec --config linux64-amd64-pgi$file -D --action=build  471.omnetpp
+
+state=$?
+
+outfile="./benchspec/CPU2006/471.omnetpp/run/build_base_test$file.0000/omnetpp"
+
+if [ $state -eq 0 ];then
+  user_time=$(cat build_timer$file | grep "user" | cut -d "u" -f 1)
+  output_file="$file"
+
+  checksum=$(readelf -x .text $outfile | md5sum | cut -d " " -f 1)
+  file_size=$(ls -l $outfile | cut -d " " -f 5)
+  text_section=$(readelf -SW $outfile | grep ".text")
+  size_hex=$(echo $text_section | sed "s/\s\{1,\}/\ /g" | cut -d ' ' -f 6)
+  size=$(echo $size_hex | ( echo "ibase=16" ; tr '[:lower:]' '[:upper:]') | bc)
+
+  echo $checksum $user_time $output_file $file_size $size
+else
+  echo "error" "error" "error" "error" "error"
+fi
+
+return $state
\ No newline at end of file
diff --git a/bestflags/examples/omnetpp/conf b/bestflags/examples/omnetpp/conf
new file mode 100644
index 0000000..c7059e1
--- /dev/null
+++ b/bestflags/examples/omnetpp/conf
@@ -0,0 +1,2 @@
+fgcse-after-reload
+ftree-vectorize
diff --git a/bestflags/examples/omnetpp/example.json b/bestflags/examples/omnetpp/example.json
new file mode 100644
index 0000000..dda6dd1
--- /dev/null
+++ b/bestflags/examples/omnetpp/example.json
@@ -0,0 +1,24 @@
+{
+"GA":{
+
+"BUILD_CMD": "./examples/omnetpp/build_omnetpp",
+
+"TEST_CMD": "./examples/omnetpp/test_omnetpp",
+
+"OUTPUT": "output",
+
+"CONF": "examples/omnetpp/conf",
+
+"NUM_BUILDER": 3,
+
+"NUM_TESTER": 2,
+
+"STOP_THRESHOLD": 20,
+
+"NUM_CHROMOSOMES": 10,
+
+"NUM_TRIALS": 20,
+
+"MUTATION_RATE": 0.03
+}
+}
\ No newline at end of file
diff --git a/bestflags/examples/omnetpp/test_omnetpp b/bestflags/examples/omnetpp/test_omnetpp
new file mode 100755
index 0000000..aeedb63
--- /dev/null
+++ b/bestflags/examples/omnetpp/test_omnetpp
@@ -0,0 +1,24 @@
+#!/bin/bash -ux
+
+cd /usr/local/google/home/yuhenglong/Desktop/spec2006/cpu2006-redhat-ia32/
+cd benchspec/CPU2006/471.omnetpp/run/build_base_test$1.0000
+
+(time ./omnetpp$1 ../../data/train/input/omnetpp.ini) 1>log-file 2>time.txt
+
+state=$?
+
+if [ $state -eq 0 ];then
+  diff ../../data/train/output/omnetpp.sca.result omnetpp.sca
+  state=$?
+  if [ $state -eq 0 ];then
+    time=$(cat time.txt | grep real | cut -f2 -s | cut -d 's' -f 1)
+    time=$(echo $time | awk -Fm '{ print ($1 * 60) + $2 }')
+    echo $time
+  else
+    echo "error"
+  fi
+else
+  echo "error"
+fi
+
+return $state
\ No newline at end of file
diff --git a/bestflags/flags.py b/bestflags/flags.py
new file mode 100644
index 0000000..b316421
--- /dev/null
+++ b/bestflags/flags.py
@@ -0,0 +1,197 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Manage bundles of flags used for the optimizing of ChromeOS.
+
+Part of the Chrome build flags optimization.
+
+The content of this module is adapted from the Trakhelp JVM project. This module
+contains the basic Class Flag and the Class FlagSet. The core abstractions are:
+
+The class Flag, which takes a domain specific language describing how to fill
+the flags with values.
+
+The class FlagSet, which contains a number of flags and can create new FlagSets
+by mixing with other FlagSets.
+
+The Flag DSL works by replacing value ranges in [x-y] with numbers in the range
+x through y.
+
+Examples:
+  "foo[0-9]bar" will expand to e.g. "foo5bar".
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import random
+import re
+
+#
+# This matches a [...] group in the internal representation for a flag
+# specification, and is used in "filling out" flags - placing values inside
+# the flag_spec.  The internal flag_spec format is like "foo[0]", with
+# values filled out like 5; this would be transformed by
+# FormattedForUse() into "foo5".
+_FLAG_FILLOUT_VALUE_RE = re.compile(r'\[([^\]]*)\]')
+
+# This matches a numeric flag flag=[start-end].
+rx = re.compile(r'\[(?P<start>\d+)-(?P<end>\d+)\]')
+
+
+# Search the numeric flag pattern.
+def Search(spec):
+  return rx.search(spec)
+
+
+class NoSuchFileError(Exception):
+  """Define an Exception class for user providing invalid input file."""
+  pass
+
+
+def ReadConf(file_name):
+  """Parse the configuration file.
+
+  The configuration contains one flag specification in each line.
+
+  Args:
+    file_name: The name of the configuration file.
+
+  Returns:
+    A list of specs in the configuration file.
+
+  Raises:
+    NoSuchFileError: The caller should provide a valid configuration file.
+  """
+
+  with open(file_name, 'r') as input_file:
+    lines = input_file.readlines()
+
+    return sorted([line.strip() for line in lines if line.strip()])
+
+  raise NoSuchFileError()
+
+
+class Flag(object):
+  """A class representing a particular command line flag argument.
+
+  The Flag consists of two parts: The spec and the value.
+  The spec is a definition of the following form: a string with escaped
+  sequences of the form [<start>-<end>] where start and end is an positive
+  integer for a fillable value.
+
+  An example of a spec is "foo[0-9]".
+  There are two kinds of flags, boolean flag and numeric flags. Boolean flags
+  can either be turned on or off, which numeric flags can have different
+  positive integer values. For example, -finline-limit=[1-1000] is a numeric
+  flag and -ftree-vectorize is a boolean flag.
+
+  A (boolean/numeric) flag is not turned on if it is not selected in the
+  FlagSet.
+  """
+
+  def __init__(self, spec, value=-1):
+    self._spec = spec
+
+    # If the value is not specified, generate a random value to use.
+    if value == -1:
+      # If creating a boolean flag, the value will be 0.
+      value = 0
+
+      # Parse the spec's expression for the flag value's numeric range.
+      numeric_flag_match = Search(spec)
+
+      # If this is a numeric flag, a value is chosen within start and end, start
+      # inclusive and end exclusive.
+      if numeric_flag_match:
+        start = int(numeric_flag_match.group('start'))
+        end = int(numeric_flag_match.group('end'))
+
+        assert start < end
+        value = random.randint(start, end)
+
+    self._value = value
+
+  def __eq__(self, other):
+    if isinstance(other, Flag):
+      return self._spec == other.GetSpec() and self._value == other.GetValue()
+    return False
+
+  def __hash__(self):
+    return hash(self._spec) + self._value
+
+  def GetValue(self):
+    """Get the value for this flag.
+
+    Returns:
+     The value.
+    """
+
+    return self._value
+
+  def GetSpec(self):
+    """Get the spec for this flag.
+
+    Returns:
+     The spec.
+    """
+
+    return self._spec
+
+  def FormattedForUse(self):
+    """Calculate the combination of flag_spec and values.
+
+    For e.g. the flag_spec 'foo[0-9]' and the value equals to 5, this will
+    return 'foo5'. The filled out version of the flag is the text string you use
+    when you actually want to pass the flag to some binary.
+
+    Returns:
+      A string that represent the filled out flag, e.g. the flag with the
+      FlagSpec '-X[0-9]Y' and value equals to 5 would return '-X5Y'.
+    """
+
+    return _FLAG_FILLOUT_VALUE_RE.sub(str(self._value), self._spec)
+
+
+class FlagSet(object):
+  """A dictionary of Flag objects.
+
+  The flags dictionary stores the spec and flag pair.
+  """
+
+  def __init__(self, flag_array):
+    # Store the flags as a dictionary mapping of spec -> flag object
+    self._flags = dict([(flag.GetSpec(), flag) for flag in flag_array])
+
+  def __eq__(self, other):
+    return isinstance(other, FlagSet) and self._flags == other.GetFlags()
+
+  def __hash__(self):
+    return sum([hash(flag) for flag in self._flags.values()])
+
+  def __getitem__(self, flag_spec):
+    """Get flag with a particular flag_spec.
+
+    Args:
+      flag_spec: The flag_spec to find.
+
+    Returns:
+      A flag.
+    """
+
+    return self._flags[flag_spec]
+
+  def __contains__(self, flag_spec):
+    return self._flags.has_key(flag_spec)
+
+  def GetFlags(self):
+    return self._flags
+
+  def FormattedForUse(self):
+    """Format this for use in an application.
+
+    Returns:
+      A list of flags, sorted alphabetically and filled in with the values
+      for each flag.
+    """
+
+    return sorted([f.FormattedForUse() for f in self._flags.values()])
diff --git a/bestflags/flags_test.py b/bestflags/flags_test.py
new file mode 100644
index 0000000..dbbea77
--- /dev/null
+++ b/bestflags/flags_test.py
@@ -0,0 +1,190 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Unit tests for the classes in module 'flags'.
+
+Part of the Chrome build flags optimization.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import random
+import sys
+import unittest
+
+from flags import Flag
+from flags import FlagSet
+
+# The number of tests to test.
+NUM_TESTS = 20
+
+
+class FlagTest(unittest.TestCase):
+  """This class tests the Flag class."""
+
+  def testInit(self):
+    """The value generated should fall within start and end of the spec.
+
+    If the value is not specified, the value generated should fall within start
+    and end of the spec.
+    """
+
+    for _ in range(NUM_TESTS):
+      start = random.randint(1, sys.maxint - 1)
+      end = random.randint(start + 1, sys.maxint)
+
+      spec = 'flag=[%s-%s]' % (start, end)
+
+      test_flag = Flag(spec)
+
+      value = test_flag.GetValue()
+
+      # If the value is not specified when the flag is constructed, a random
+      # value is chosen. This value should fall within start and end of the
+      # spec.
+      assert start <= value and value < end
+
+  def testEqual(self):
+    """Test the equal operator (==) of the flag.
+
+    Two flags are equal if and only if their spec and value are equal.
+    """
+
+    tests = range(NUM_TESTS)
+
+    # Two tasks having the same spec and value should be equivalent.
+    for test in tests:
+      assert Flag(str(test), test) == Flag(str(test), test)
+
+    # Two tasks having different flag set should be different.
+    for test in tests:
+      flag = Flag(str(test), test)
+      other_flag_sets = [other for other in tests if test != other]
+      for other_test in other_flag_sets:
+        assert flag != Flag(str(other_test), other_test)
+
+  def testFormattedForUse(self):
+    """Test the FormattedForUse method of the flag.
+
+    The FormattedForUse replaces the string within the [] with the actual value.
+    """
+
+    for _ in range(NUM_TESTS):
+      start = random.randint(1, sys.maxint - 1)
+      end = random.randint(start + 1, sys.maxint)
+      value = random.randint(start, end - 1)
+
+      spec = 'flag=[%s-%s]' % (start, end)
+
+      test_flag = Flag(spec, value)
+
+      # For numeric flag, the FormattedForUse replaces the string within the []
+      # with the actual value.
+      test_value = test_flag.FormattedForUse()
+      actual_value = 'flag=%s' % value
+
+      assert test_value == actual_value
+
+    for _ in range(NUM_TESTS):
+      value = random.randint(1, sys.maxint - 1)
+
+      test_flag = Flag('flag', value)
+
+      # For boolean flag, the FormattedForUse returns the spec.
+      test_value = test_flag.FormattedForUse()
+      actual_value = 'flag'
+      assert test_value == actual_value
+
+
+class FlagSetTest(unittest.TestCase):
+  """This class test the FlagSet class."""
+
+  def testEqual(self):
+    """Test the equal method of the Class FlagSet.
+
+    Two FlagSet instances are equal if all their flags are equal.
+    """
+
+    flag_names = range(NUM_TESTS)
+
+    # Two flag sets having the same flags should be equivalent.
+    for flag_name in flag_names:
+      spec = '%s' % flag_name
+
+      assert FlagSet([Flag(spec)]) == FlagSet([Flag(spec)])
+
+    # Two flag sets having different flags should be different.
+    for flag_name in flag_names:
+      spec = '%s' % flag_name
+      flag_set = FlagSet([Flag(spec)])
+      other_flag_sets = [other for other in flag_names if flag_name != other]
+      for other_name in other_flag_sets:
+        other_spec = '%s' % other_name
+        assert flag_set != FlagSet([Flag(other_spec)])
+
+  def testGetItem(self):
+    """Test the get item method of the Class FlagSet.
+
+    The flag set is also indexed by the specs. The flag set should return the
+    appropriate flag given the spec.
+    """
+
+    tests = range(NUM_TESTS)
+
+    specs = [str(spec) for spec in tests]
+    flag_array = [Flag(spec) for spec in specs]
+
+    flag_set = FlagSet(flag_array)
+
+    # Created a dictionary of spec and flag, the flag set should return the flag
+    # the same as this dictionary.
+    spec_flag = dict(zip(specs, flag_array))
+
+    for spec in spec_flag:
+      assert flag_set[spec] == spec_flag[spec]
+
+  def testContain(self):
+    """Test the contain method of the Class FlagSet.
+
+    The flag set is also indexed by the specs. The flag set should return true
+    for spec if it contains a flag containing spec.
+    """
+
+    true_tests = range(NUM_TESTS)
+    false_tests = range(NUM_TESTS, NUM_TESTS * 2)
+
+    specs = [str(spec) for spec in true_tests]
+
+    flag_set = FlagSet([Flag(spec) for spec in specs])
+
+    for spec in specs:
+      assert spec in flag_set
+
+    for spec in false_tests:
+      assert spec not in flag_set
+
+  def testFormattedForUse(self):
+    """Test the FormattedForUse method of the Class FlagSet.
+
+    The output should be a sorted list of strings.
+    """
+
+    flag_names = range(NUM_TESTS)
+    flag_names.reverse()
+    flags = []
+    result = []
+
+    # Construct the flag set.
+    for flag_name in flag_names:
+      spec = '%s' % flag_name
+      flags.append(Flag(spec))
+      result.append(spec)
+
+    flag_set = FlagSet(flags)
+
+    # The results string should be sorted.
+    assert sorted(result) == flag_set.FormattedForUse()
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/bestflags/flags_util.py b/bestflags/flags_util.py
new file mode 100644
index 0000000..20be57f
--- /dev/null
+++ b/bestflags/flags_util.py
@@ -0,0 +1,95 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Utility functions to explore the neighbor flags.
+
+Part of the Chrome build flags optimization.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import flags
+from flags import Flag
+
+
+def ClimbNext(flags_dict, climb_spec):
+  """Get the flags that are different from |flags_dict| by |climb_spec|.
+
+  Given a set of flags, |flags_dict|, return a new set of flags that are
+  adjacent along the flag spec |climb_spec|.
+
+  An example flags_dict is {foo=[1-9]:foo=5, bar=[1-5]:bar=2} and climb_spec is
+  bar=[1-5]. This method changes the flag that contains the spec bar=[1-5]. The
+  results are its neighbors dictionaries, i.e., {foo=[1-9]:foo=5,
+  bar=[1-5]:bar=1} and {foo=[1-9]:foo=5, bar=[1-5]:bar=3}.
+
+  Args:
+    flags_dict: The dictionary containing the original flags whose neighbors are
+      to be explored.
+    climb_spec: The spec in the flags_dict is to be changed. The spec is a
+      definition in the little language, a string with escaped sequences of the
+      form [<start>-<end>] where start and end is an positive integer for a
+      fillable value. An example of a spec is "foo[0-9]".
+
+  Returns:
+    List of dictionaries of neighbor flags.
+  """
+
+  # This method searches for a pattern [start-end] in the spec. If the spec
+  # contains this pattern, it is a numeric flag. Otherwise it is a boolean flag.
+  # For example, -finline-limit=[1-1000] is a numeric flag and -falign-jumps is
+  # a boolean flag.
+  numeric_flag_match = flags.Search(climb_spec)
+
+  # If the flags do not contain the spec.
+  if climb_spec not in flags_dict:
+    results = flags_dict.copy()
+
+    if numeric_flag_match:
+      # Numeric flags.
+      results[climb_spec] = Flag(climb_spec,
+                                 int(numeric_flag_match.group('start')))
+    else:
+      # Boolean flags.
+      results[climb_spec] = Flag(climb_spec)
+
+    return [results]
+
+  # The flags contain the spec.
+  if not numeric_flag_match:
+    # Boolean flags.
+    results = flags_dict.copy()
+
+    # Turn off the flag. A flag is turned off if it is not presented in the
+    # flags_dict.
+    del results[climb_spec]
+    return [results]
+
+  # Numeric flags.
+  flag = flags_dict[climb_spec]
+
+  # The value of the flag having spec.
+  value = flag.GetValue()
+  results = []
+
+  if value + 1 < int(numeric_flag_match.group('end')):
+    # If the value is not the end value, explore the value that is 1 larger than
+    # the current value.
+    neighbor = flags_dict.copy()
+    neighbor[climb_spec] = Flag(climb_spec, value + 1)
+    results.append(neighbor)
+
+  if value > int(numeric_flag_match.group('start')):
+    # If the value is not the start value, explore the value that is 1 lesser
+    # than the current value.
+    neighbor = flags_dict.copy()
+    neighbor[climb_spec] = Flag(climb_spec, value - 1)
+    results.append(neighbor)
+  else:
+    # Delete the value, i.e., turn off the flag. A flag is turned off if it is
+    # not presented in the flags_dict.
+    neighbor = flags_dict.copy()
+    del neighbor[climb_spec]
+    results.append(neighbor)
+
+  return results
diff --git a/bestflags/generation.py b/bestflags/generation.py
new file mode 100644
index 0000000..67c379f
--- /dev/null
+++ b/bestflags/generation.py
@@ -0,0 +1,139 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""A generation of a set of tasks.
+
+Part of the Chrome build flags optimization.
+
+This module contains the base generation class. This class contains the tasks of
+this current generation. The generation will not evolve to the next generation
+until all the tasks in this generation are done executing. It also contains a
+set of tasks that could potentially be used to generate the next generation,
+e.g., in the genetic algorithm, a set of good species will be kept to evolve to
+the successive generations. For the hill climbing algorithm example, the
+candidate_pool will contain a current task t being evaluated and the exe_set
+will contains all the task t's neighbor.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+
+class NoneOverridingError(Exception):
+  """Define an Exception class for subclasses not overriding certain methods."""
+  pass
+
+
+class Generation(object):
+  """A generation of a framework run.
+
+  The base class of generation. Concrete subclasses, e.g., GAGeneration should
+  override the Next and IsImproved method to implement algorithm specific
+  applications.
+  """
+
+  def __init__(self, exe_set, candidate_pool):
+    """Set up the tasks set of this generation.
+
+    Args:
+      exe_set: A set of tasks to be run.
+      candidate_pool: A set of tasks to be considered to be used to generate the
+        next generation.
+    """
+
+    self._exe_set = exe_set
+    self._candidate_pool = candidate_pool
+
+    # Keeping the record of how many tasks are pending. Pending tasks are the
+    # ones that have been sent out to the next stage for execution but have not
+    # finished. A generation is not ready for the reproduction of the new
+    # generations until all its pending tasks have been executed.
+    self._pending = len(exe_set)
+
+  def CandidatePool(self):
+    """Return the candidate tasks of this generation."""
+
+    return self._candidate_pool
+
+  def Pool(self):
+    """Return the task set of this generation."""
+
+    return self._exe_set
+
+  def Done(self):
+    """All the tasks in this generation are done.
+
+    Returns:
+      True if all the tasks have been executed. That is the number of pending
+      task is 0.
+    """
+
+    return self._pending == 0
+
+  def UpdateTask(self, task):
+    """Match a task t in this generation that is equal to the input task.
+
+    This method is called when the input task has just finished execution. This
+    method finds out whether there is a pending task t in the current generation
+    that is the same as the input task. Two tasks are the same if their flag
+    options are the same. A task is pending if it has not been performed.
+    If there is a pending task t that matches the input task, task t will be
+    substituted with the input task in this generation. In that case, the input
+    task, as well as its build and test results encapsulated in the task, will
+    be stored in the current generation. These results could be used to produce
+    the next generation.
+    If there is a match, the current generation will have one less pending task.
+    When there is no pending task, the generation can be used to produce the
+    next generation.
+    The caller of this function is responsible for not calling this method on
+    the same task more than once.
+
+    Args:
+      task: A task that has its results ready.
+
+    Returns:
+      Whether the input task belongs to this generation.
+    """
+
+    # If there is a match, the input task belongs to this generation.
+    if task not in self._exe_set:
+      return False
+
+    # Remove the place holder task in this generation and store the new input
+    # task and its result.
+    self._exe_set.remove(task)
+    self._exe_set.add(task)
+
+    # The current generation will have one less task to wait on.
+    self._pending -= 1
+
+    assert self._pending >= 0
+
+    return True
+
+  def IsImproved(self):
+    """True if this generation has improvement upon its parent generation.
+
+    Raises:
+      NoneOverridingError: The subclass should override this method.
+    """
+    raise NoneOverridingError('Must be implemented by child class')
+
+  def Next(self, _):
+    """Calculate the next generation.
+
+    This is the core of the framework implementation. It must be overridden by
+    the concrete subclass to implement algorithm specific generations.
+
+    Args:
+      _: A set of tasks that have been generated before. The overridden method
+        in the subclasses can use this so as not to generate task that has been
+        generated before.
+
+    Returns:
+      A set of new generations.
+
+    Raises:
+      NoneOverridingError: The subclass should override this method.
+    """
+
+    raise NoneOverridingError('Must be implemented by child class')
diff --git a/bestflags/generation_test.py b/bestflags/generation_test.py
new file mode 100644
index 0000000..2e042d4
--- /dev/null
+++ b/bestflags/generation_test.py
@@ -0,0 +1,72 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Generation unittest.
+
+Part of the Chrome build flags optimization.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import random
+import unittest
+
+from generation import Generation
+from mock_task import IdentifierMockTask
+
+# Pick an integer at random.
+TEST_STAGE = -125
+
+# The number of tasks to be put in a generation to be tested.
+NUM_TASKS = 20
+
+# The stride of permutation used to shuffle the input list of tasks. Should be
+# relatively prime with NUM_TASKS.
+STRIDE = 7
+
+
+class GenerationTest(unittest.TestCase):
+  """This class test the Generation class.
+
+  Given a set of tasks in the generation, if there is any task that is pending,
+  then the Done method will return false, and true otherwise.
+  """
+
+  def testDone(self):
+    """"Test the Done method.
+
+    Produce a generation with a set of tasks. Set the cost of the task one by
+    one and verify that the Done method returns false before setting the cost
+    for all the tasks. After the costs of all the tasks are set, the Done method
+    should return true.
+    """
+
+    random.seed(0)
+
+    testing_tasks = range(NUM_TASKS)
+
+    # The tasks for the generation to be tested.
+    tasks = [IdentifierMockTask(TEST_STAGE, t) for t in testing_tasks]
+
+    gen = Generation(set(tasks), None)
+
+    # Permute the list.
+    permutation = [(t * STRIDE) % NUM_TASKS for t in range(NUM_TASKS)]
+    permuted_tasks = [testing_tasks[index] for index in permutation]
+
+    # The Done method of the Generation should return false before all the tasks
+    # in the permuted list are set.
+    for testing_task in permuted_tasks:
+      assert not gen.Done()
+
+      # Mark a task as done by calling the UpdateTask method of the generation.
+      # Send the generation the task as well as its results.
+      gen.UpdateTask(IdentifierMockTask(TEST_STAGE, testing_task))
+
+    # The Done method should return true after all the tasks in the permuted
+    # list is set.
+    assert gen.Done()
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/bestflags/genetic_algorithm.py b/bestflags/genetic_algorithm.py
new file mode 100644
index 0000000..deb83f1
--- /dev/null
+++ b/bestflags/genetic_algorithm.py
@@ -0,0 +1,295 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""The hill genetic algorithm.
+
+Part of the Chrome build flags optimization.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import random
+
+import flags
+from flags import Flag
+from flags import FlagSet
+from generation import Generation
+from task import Task
+
+
+def CrossoverWith(first_flag, second_flag):
+  """Get a crossed over gene.
+
+  At present, this just picks either/or of these values.  However, it could be
+  implemented as an integer maskover effort, if required.
+
+  Args:
+    first_flag: The first gene (Flag) to cross over with.
+    second_flag: The second gene (Flag) to cross over with.
+
+  Returns:
+    A Flag that can be considered appropriately randomly blended between the
+    first and second input flag.
+  """
+
+  return first_flag if random.randint(0, 1) else second_flag
+
+
+def RandomMutate(specs, flag_set, mutation_rate):
+  """Randomly mutate the content of a task.
+
+  Args:
+    specs: A list of spec from which the flag set is created.
+    flag_set: The current flag set being mutated
+    mutation_rate: What fraction of genes to mutate.
+
+  Returns:
+    A Genetic Task constructed by randomly mutating the input flag set.
+  """
+
+  results_flags = []
+
+  for spec in specs:
+    # Randomly choose whether this flag should be mutated.
+    if random.randint(0, int(1 / mutation_rate)):
+      continue
+
+    # If the flag is not already in the flag set, it is added.
+    if spec not in flag_set:
+      results_flags.append(Flag(spec))
+      continue
+
+    # If the flag is already in the flag set, it is mutated.
+    numeric_flag_match = flags.Search(spec)
+
+    # The value of a numeric flag will be changed, and a boolean flag will be
+    # dropped.
+    if not numeric_flag_match:
+      continue
+
+    value = flag_set[spec].GetValue()
+
+    # Randomly select a nearby value of the current value of the flag.
+    rand_arr = [value]
+    if value + 1 < int(numeric_flag_match.group('end')):
+      rand_arr.append(value + 1)
+
+    rand_arr.append(value - 1)
+    value = random.sample(rand_arr, 1)[0]
+
+    # If the value is smaller than the start of the spec, this flag will be
+    # dropped.
+    if value != int(numeric_flag_match.group('start')) - 1:
+      results_flags.append(Flag(spec, value))
+
+  return GATask(FlagSet(results_flags))
+
+
+class GATask(Task):
+
+  def __init__(self, flag_set):
+    Task.__init__(self, flag_set)
+
+  def ReproduceWith(self, other, specs, mutation_rate):
+    """Reproduce with other FlagSet.
+
+    Args:
+      other: A FlagSet to reproduce with.
+      specs: A list of spec from which the flag set is created.
+      mutation_rate: one in mutation_rate flags will be mutated (replaced by a
+        random version of the same flag, instead of one from either of the
+        parents).  Set to 0 to disable mutation.
+
+    Returns:
+      A GA task made by mixing self with other.
+    """
+
+    # Get the flag dictionary.
+    father_flags = self.GetFlags().GetFlags()
+    mother_flags = other.GetFlags().GetFlags()
+
+    # Flags that are common in both parents and flags that belong to only one
+    # parent.
+    self_flags = []
+    other_flags = []
+    common_flags = []
+
+    # Find out flags that are common to both parent and flags that belong soly
+    # to one parent.
+    for self_flag in father_flags:
+      if self_flag in mother_flags:
+        common_flags.append(self_flag)
+      else:
+        self_flags.append(self_flag)
+
+    for other_flag in mother_flags:
+      if other_flag not in father_flags:
+        other_flags.append(other_flag)
+
+    # Randomly select flags that belong to only one parent.
+    output_flags = [father_flags[f] for f in self_flags if random.randint(0, 1)]
+    others = [mother_flags[f] for f in other_flags if random.randint(0, 1)]
+    output_flags.extend(others)
+    # Turn on flags that belong to both parent. Randomly choose the value of the
+    # flag from either parent.
+    for flag in common_flags:
+      output_flags.append(CrossoverWith(father_flags[flag], mother_flags[flag]))
+
+    # Mutate flags
+    if mutation_rate:
+      return RandomMutate(specs, FlagSet(output_flags), mutation_rate)
+
+    return GATask(FlagSet(output_flags))
+
+
+class GAGeneration(Generation):
+  """The Genetic Algorithm."""
+
+  # The value checks whether the algorithm has converged and arrives at a fixed
+  # point. If STOP_THRESHOLD of generations have not seen any performance
+  # improvement, the Genetic Algorithm stops.
+  STOP_THRESHOLD = None
+
+  # Number of tasks in each generation.
+  NUM_CHROMOSOMES = None
+
+  # The value checks whether the algorithm has converged and arrives at a fixed
+  # point. If NUM_TRIALS of trials have been attempted to generate a new task
+  # without a success, the Genetic Algorithm stops.
+  NUM_TRIALS = None
+
+  # The flags that can be used to generate new tasks.
+  SPECS = None
+
+  # What fraction of genes to mutate.
+  MUTATION_RATE = 0
+
+  @staticmethod
+  def InitMetaData(stop_threshold, num_chromosomes, num_trials, specs,
+                   mutation_rate):
+    """Set up the meta data for the Genetic Algorithm.
+
+    Args:
+      stop_threshold: The number of generations, upon which no performance has
+        seen, the Genetic Algorithm stops.
+      num_chromosomes: Number of tasks in each generation.
+      num_trials: The number of trials, upon which new task has been tried to
+        generated without success, the Genetic Algorithm stops.
+      specs: The flags that can be used to generate new tasks.
+      mutation_rate: What fraction of genes to mutate.
+    """
+
+    GAGeneration.STOP_THRESHOLD = stop_threshold
+    GAGeneration.NUM_CHROMOSOMES = num_chromosomes
+    GAGeneration.NUM_TRIALS = num_trials
+    GAGeneration.SPECS = specs
+    GAGeneration.MUTATION_RATE = mutation_rate
+
+  def __init__(self, tasks, parents, total_stucks):
+    """Set up the meta data for the Genetic Algorithm.
+
+    Args:
+      tasks: A set of tasks to be run.
+      parents: A set of tasks from which this new generation is produced. This
+        set also contains the best tasks generated so far.
+      total_stucks: The number of generations that have not seen improvement.
+        The Genetic Algorithm will stop once the total_stucks equals to
+        NUM_TRIALS defined in the GAGeneration class.
+    """
+
+    Generation.__init__(self, tasks, parents)
+    self._total_stucks = total_stucks
+
+  def IsImproved(self):
+    """True if this generation has improvement upon its parent generation."""
+
+    tasks = self.Pool()
+    parents = self.CandidatePool()
+
+    # The first generate does not have parents.
+    if not parents:
+      return True
+
+    # Found out whether a task has improvement upon the best task in the
+    # parent generation.
+    best_parent = sorted(parents, key=lambda task: task.GetTestResult())[0]
+    best_current = sorted(tasks, key=lambda task: task.GetTestResult())[0]
+
+    # At least one task has improvement.
+    if best_current.IsImproved(best_parent):
+      self._total_stucks = 0
+      return True
+
+    # If STOP_THRESHOLD of generations have no improvement, the algorithm stops.
+    if self._total_stucks >= GAGeneration.STOP_THRESHOLD:
+      return False
+
+    self._total_stucks += 1
+    return True
+
+  def Next(self, cache):
+    """Calculate the next generation.
+
+    Generate a new generation from the a set of tasks. This set contains the
+      best set seen so far and the tasks executed in the parent generation.
+
+    Args:
+      cache: A set of tasks that have been generated before.
+
+    Returns:
+      A set of new generations.
+    """
+
+    target_len = GAGeneration.NUM_CHROMOSOMES
+    specs = GAGeneration.SPECS
+    mutation_rate = GAGeneration.MUTATION_RATE
+
+    # Collect a set of size target_len of tasks. This set will be used to
+    # produce a new generation of tasks.
+    gen_tasks = [task for task in self.Pool()]
+
+    parents = self.CandidatePool()
+    if parents:
+      gen_tasks.extend(parents)
+
+    # A set of tasks that are the best. This set will be used as the parent
+    # generation to produce the next generation.
+    sort_func = lambda task: task.GetTestResult()
+    retained_tasks = sorted(gen_tasks, key=sort_func)[:target_len]
+
+    child_pool = set()
+    for father in retained_tasks:
+      num_trials = 0
+      # Try num_trials times to produce a new child.
+      while num_trials < GAGeneration.NUM_TRIALS:
+        # Randomly select another parent.
+        mother = random.choice(retained_tasks)
+        # Cross over.
+        child = mother.ReproduceWith(father, specs, mutation_rate)
+        if child not in child_pool and child not in cache:
+          child_pool.add(child)
+          break
+        else:
+          num_trials += 1
+
+    num_trials = 0
+
+    while len(child_pool) < target_len and num_trials < GAGeneration.NUM_TRIALS:
+      for keep_task in retained_tasks:
+        # Mutation.
+        child = RandomMutate(specs, keep_task.GetFlags(), mutation_rate)
+        if child not in child_pool and child not in cache:
+          child_pool.add(child)
+          if len(child_pool) >= target_len:
+            break
+        else:
+          num_trials += 1
+
+    # If NUM_TRIALS of tries have been attempted without generating a set of new
+    # tasks, the algorithm stops.
+    if num_trials >= GAGeneration.NUM_TRIALS:
+      return []
+
+    assert len(child_pool) == target_len
+
+    return [GAGeneration(child_pool, set(retained_tasks), self._total_stucks)]
diff --git a/bestflags/hill_climb_best_neighbor.py b/bestflags/hill_climb_best_neighbor.py
new file mode 100644
index 0000000..7bb5a7f
--- /dev/null
+++ b/bestflags/hill_climb_best_neighbor.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""A variation of the hill climbing algorithm.
+
+Part of the Chrome build flags optimization.
+
+This algorithm explores all the neighbors of the current task. If at least one
+neighbor gives better performance than the current task, it explores the best
+neighbor.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+from flags import FlagSet
+import flags_util
+from generation import Generation
+from task import Task
+
+
+class HillClimbingBestBranch(Generation):
+  """A variation of the hill climbing algorithm.
+
+  Given a task, it explores all its neighbors. Pick the best neighbor for the
+  next iteration.
+  """
+
+  def __init__(self, exe_set, parents, specs):
+    """Set up the tasks set of this generation.
+
+    Args:
+      exe_set: A set of tasks to be run.
+      parents: A set of tasks to be used to check whether their neighbors have
+        improved upon them.
+      specs: A list of specs to explore. The spec specifies the flags that can
+        be changed to find neighbors of a task.
+    """
+
+    Generation.__init__(self, exe_set, parents)
+    self._specs = specs
+
+    # This variable will be used, by the Next method, to generate the tasks for
+    # the next iteration. This self._next_task contains the best task in the
+    # current iteration and it will be set by the IsImproved method. The tasks
+    # of the next iteration are the neighbor of self._next_task.
+    self._next_task = None
+
+  def IsImproved(self):
+    """True if this generation has improvement over its parent generation.
+
+    If this generation improves upon the previous generation, this method finds
+    out the best task in this generation and sets it to _next_task for the
+    method Next to use.
+
+    Returns:
+      True if the best neighbor improves upon the parent task.
+    """
+
+    # Find the best neighbor.
+    best_task = None
+    for task in self._exe_set:
+      if not best_task or task.IsImproved(best_task):
+        best_task = task
+
+    if not best_task:
+      return False
+
+    # The first generation may not have parent generation.
+    parents = list(self._candidate_pool)
+    if parents:
+      assert len(parents) == 1
+      self._next_task = best_task
+      # If the best neighbor improves upon the parent task.
+      return best_task.IsImproved(parents[0])
+
+    self._next_task = best_task
+    return True
+
+  def Next(self, cache):
+    """Calculate the next generation.
+
+    The best neighbor b of the current task is the parent of the next
+    generation. The neighbors of b will be the set of tasks to be evaluated
+    next.
+
+    Args:
+      cache: A set of tasks that have been generated before.
+
+    Returns:
+      A set of new generations.
+    """
+
+    # The best neighbor.
+    current_task = self._next_task
+    flag_set = current_task.GetFlags()
+
+    # The neighbors of the best neighbor.
+    children_tasks = set([])
+    for spec in self._specs:
+      for next_flag in flags_util.ClimbNext(flag_set.GetFlags(), spec):
+        new_task = Task(FlagSet(next_flag.values()))
+
+        if new_task not in cache:
+          children_tasks.add(new_task)
+
+    return [HillClimbingBestBranch(children_tasks, set([current_task]),
+                                   self._specs)]
diff --git a/bestflags/iterative_elimination.py b/bestflags/iterative_elimination.py
new file mode 100644
index 0000000..2f4c41d
--- /dev/null
+++ b/bestflags/iterative_elimination.py
@@ -0,0 +1,177 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Iterative flags elimination.
+
+Part of the Chrome build flags optimization.
+
+This module implements the flag iterative elimination algorithm (IE) adopted
+from the paper
+Z. Pan et al. Fast and Effective Orchestration of Compiler Optimizations for
+Automatic Performance Tuning.
+
+IE begins with the base line that turns on all the optimizations flags and
+setting the numeric flags to their highest values. IE turns off the one boolean
+flag or lower the value of a numeric flag with the most negative effect from the
+baseline. This process repeats with all remaining flags, until none of them
+causes performance degradation. The complexity of IE is O(n^2).
+
+For example, -fstrict-aliasing and -ftree-vectorize. The base line is
+b=[-fstrict-aliasing, -ftree-vectorize]. The two tasks in the first iteration
+are t0=[-fstrict-aliasing] and t1=[-ftree-vectorize]. The algorithm compares b
+with t0 and t1, respectively, and see whether setting the numeric flag with a
+lower value or removing the boolean flag -fstrict-aliasing produce a better
+fitness value.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import flags
+from generation import Generation
+import task
+
+
+def _DecreaseFlag(flags_dict, spec):
+  """Decrease the value of the flag that has the specification spec.
+
+  If the flag that contains the spec is a boolean flag, it is eliminated.
+  Otherwise the flag is a numeric flag, its value will be reduced by one.
+
+  Args:
+    flags_dict: The dictionary containing the original flags whose neighbors are
+      to be explored.
+    spec: The spec in the flags_dict is to be changed.
+
+  Returns:
+    Dictionary of neighbor flag that is only different from the original
+    dictionary by the spec.
+  """
+
+  # The specification must be held by one of the flags.
+  assert spec in flags_dict
+
+  # The results this method returns.
+  results = flags_dict.copy()
+
+  # This method searches for a pattern [start-end] in the spec. If the spec
+  # contains this pattern, it is a numeric flag. Otherwise it is a boolean flag.
+  # For example, -finline-limit=[1-1000] is a numeric flag and -falign-jumps is
+  # a boolean flag.
+  numeric_flag_match = flags.Search(spec)
+
+  if numeric_flag_match:
+    # numeric flag
+    val = results[spec].GetValue()
+
+    # If the value of the flag is the lower boundary of the specification, this
+    # flag will be turned off. Because it already contains the lowest value and
+    # can not be decreased any more.
+    if val == int(numeric_flag_match.group('start')):
+      # Turn off the flag. A flag is turned off if it is not presented in the
+      # flags_dict.
+      del results[spec]
+    else:
+      results[spec] = flags.Flag(spec, val - 1)
+  else:
+    # Turn off the flag. A flag is turned off if it is not presented in the
+    # flags_dict.
+    del results[spec]
+
+  return results
+
+
+class IterativeEliminationGeneration(Generation):
+  """The negative flag iterative elimination algorithm."""
+
+  def __init__(self, exe_set, parent_task):
+    """Set up the base line parent task.
+
+    The parent task is the base line against which the new tasks are compared.
+    The new tasks are only different from the base line from one flag f by
+    either turning this flag f off, or lower the flag value by 1.
+    If a new task is better than the base line, one flag is identified that
+    gives degradation. The flag that give the worst degradation will be removed
+    or lower the value by 1 in the base in each iteration.
+
+    Args:
+      exe_set: A set of tasks to be run. Each one only differs from the
+        parent_task by one flag.
+      parent_task: The base line task, against which the new tasks in exe_set
+        are compared.
+    """
+
+    Generation.__init__(self, exe_set, None)
+    self._parent_task = parent_task
+
+  def IsImproved(self):
+    """Whether any new task has improvement upon the parent task."""
+
+    parent = self._parent_task
+    # Whether there is any new task that has improvement over the parent base
+    # line task.
+    for curr in [curr for curr in self.Pool() if curr != parent]:
+      if curr.IsImproved(parent):
+        return True
+
+    return False
+
+  def Next(self, cache):
+    """Find out the flag that gives the worst degradation.
+
+    Found out the flag that gives the worst degradation. Turn that flag off from
+    the base line and use the new base line for the new generation.
+
+    Args:
+      cache: A set of tasks that have been generated before.
+
+    Returns:
+      A set of new generations.
+    """
+    parent_task = self._parent_task
+
+    # Find out the task that gives the worst degradation.
+    worst_task = parent_task
+
+    for curr in [curr for curr in self.Pool() if curr != parent_task]:
+      # The method IsImproved, which is supposed to be called before, ensures
+      # that there is at least a task that improves upon the parent_task.
+      if curr.IsImproved(worst_task):
+        worst_task = curr
+
+    assert worst_task != parent_task
+
+    # The flags_set of the worst task.
+    work_flags_set = worst_task.GetFlags().GetFlags()
+
+    results = set([])
+
+    # If the flags_set contains no flag, i.e., all the flags have been
+    # eliminated, the algorithm stops.
+    if not work_flags_set:
+      return []
+
+    # Turn of the remaining flags one by one for the next generation.
+    for spec in work_flags_set:
+      flag_set = flags.FlagSet(_DecreaseFlag(work_flags_set, spec).values())
+      new_task = task.Task(flag_set)
+      if new_task not in cache:
+        results.add(new_task)
+
+    return [IterativeEliminationGeneration(results, worst_task)]
+
+
+class IterativeEliminationFirstGeneration(IterativeEliminationGeneration):
+  """The first iteration of the iterative elimination algorithm.
+
+  The first iteration also evaluates the base line task. The base line tasks in
+  the subsequent iterations have been evaluated. Therefore,
+  IterativeEliminationGeneration does not include the base line task in the
+  execution set.
+  """
+
+  def IsImproved(self):
+    # Find out the base line task in the execution set.
+    parent = next(task for task in self.Pool() if task == self._parent_task)
+    self._parent_task = parent
+
+    return IterativeEliminationGeneration.IsImproved(self)
diff --git a/bestflags/mock_task.py b/bestflags/mock_task.py
new file mode 100644
index 0000000..6de2b35
--- /dev/null
+++ b/bestflags/mock_task.py
@@ -0,0 +1,92 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""This module defines the common mock tasks used by various unit tests.
+
+Part of the Chrome build flags optimization.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+# Pick an integer at random.
+POISONPILL = 975
+
+
+class MockTask(object):
+  """This class emulates an actual task.
+
+  It does not do the actual work, but simply returns the result as given when
+  this task is constructed.
+  """
+
+  def __init__(self, stage, identifier, cost=0):
+    """Set up the results for this task.
+
+    Args:
+      stage: the stage of this test is in.
+      identifier: the identifier of this task.
+      cost: the mock cost of this task.
+
+      The _cost field stored the cost. Once this task is performed, i.e., by
+      calling the work method or by setting the result from other task, the
+      _cost field will have this cost. The stage field verifies that the module
+      being tested and the unitest are in the same stage. If the unitest does
+      not care about cost of this task, the cost parameter should be leaved
+      blank.
+    """
+
+    self._identifier = identifier
+    self._cost = cost
+    self._stage = stage
+
+    # Indicate that this method has not been performed yet.
+    self._performed = False
+
+  def __eq__(self, other):
+    if isinstance(other, MockTask):
+      return (self._identifier == other.GetIdentifier(self._stage) and
+              self._cost == other.GetResult(self._stage))
+    return False
+
+  def GetIdentifier(self, stage):
+    assert stage == self._stage
+    return self._identifier
+
+  def SetResult(self, stage, cost):
+    assert stage == self._stage
+    self._cost = cost
+    self._performed = True
+
+  def Work(self, stage):
+    assert stage == self._stage
+    self._performed = True
+
+  def GetResult(self, stage):
+    assert stage == self._stage
+    return self._cost
+
+  def Done(self, stage):
+    """Indicates whether the task has been performed."""
+
+    assert stage == self._stage
+    return self._performed
+
+  def LogSteeringCost(self):
+    pass
+
+
+class IdentifierMockTask(MockTask):
+  """This class defines the mock task that does not consider the cost.
+
+  The task instances will be inserted into a set. Therefore the hash and the
+  equal methods are overridden. The unittests that compares identities of the
+  tasks for equality can use this mock task instead of the base mock tack.
+  """
+
+  def __hash__(self):
+    return self._identifier
+
+  def __eq__(self, other):
+    if isinstance(other, MockTask):
+      return self._identifier == other.GetIdentifier(self._stage)
+    return False
diff --git a/bestflags/pipeline_process.py b/bestflags/pipeline_process.py
new file mode 100644
index 0000000..31f5f21
--- /dev/null
+++ b/bestflags/pipeline_process.py
@@ -0,0 +1,123 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Pipeline process that encapsulates the actual content.
+
+Part of the Chrome build flags optimization.
+
+The actual stages include the builder and the executor.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import multiprocessing
+
+# Pick an integer at random.
+POISONPILL = 975
+
+
+class PipelineProcess(multiprocessing.Process):
+  """A process that encapsulates the actual content pipeline stage.
+
+  The actual pipeline stage can be the builder or the tester.  This process
+  continuously pull tasks from the queue until a poison pill is received.
+  Once a job is received, it will hand it to the actual stage for processing.
+
+  Each pipeline stage contains three modules.
+  The first module continuously pulls task from the input queue. It searches the
+  cache to check whether the task has encountered before. If so, duplicate
+  computation can be avoided.
+  The second module consists of a pool of workers that do the actual work, e.g.,
+  the worker will compile the source code and get the image in the builder
+  pipeline stage.
+  The third module is a helper that put the result cost to the cost field of the
+  duplicate tasks. For example, if two tasks are equivalent, only one task, say
+  t1 will be executed and the other task, say t2 will not be executed. The third
+  mode gets the result from t1, when it is available and set the cost of t2 to
+  be the same as that of t1.
+  """
+
+  def __init__(self, num_processes, name, cache, stage, task_queue, helper,
+               worker, result_queue):
+    """Set up input/output queue and the actual method to be called.
+
+    Args:
+      num_processes: Number of helpers subprocessors this stage has.
+      name: The name of this stage.
+      cache: The computed tasks encountered before.
+      stage: An int value that specifies the stage for this pipeline stage, for
+        example, build stage or test stage. This value will be used to retrieve
+        the keys in different stage. I.e., the flags set is the key in build
+        stage and the checksum is the key in the test stage. The key is used to
+        detect duplicates.
+      task_queue: The input task queue for this pipeline stage.
+      helper: The method hosted by the helper module to fill up the cost of the
+        duplicate tasks.
+      worker: The method hosted by the worker pools to do the actual work, e.g.,
+        compile the image.
+      result_queue: The output task queue for this pipeline stage.
+    """
+
+    multiprocessing.Process.__init__(self)
+
+    self._name = name
+    self._task_queue = task_queue
+    self._result_queue = result_queue
+
+    self._helper = helper
+    self._worker = worker
+
+    self._cache = cache
+    self._stage = stage
+    self._num_processes = num_processes
+
+    # the queues used by the modules for communication
+    manager = multiprocessing.Manager()
+    self._helper_queue = manager.Queue()
+    self._work_queue = manager.Queue()
+
+  def run(self):
+    """Busy pulling the next task from the queue for execution.
+
+    Once a job is pulled, this stage invokes the actual stage method and submits
+    the result to the next pipeline stage.
+
+    The process will terminate on receiving the poison pill from previous stage.
+    """
+
+    # the worker pool
+    work_pool = multiprocessing.Pool(self._num_processes)
+
+    # the helper process
+    helper_process = multiprocessing.Process(
+        target=self._helper,
+        args=(self._stage, self._cache, self._helper_queue, self._work_queue,
+              self._result_queue))
+    helper_process.start()
+    mycache = self._cache.keys()
+
+    while True:
+      task = self._task_queue.get()
+      if task == POISONPILL:
+        # Poison pill means shutdown
+        self._result_queue.put(POISONPILL)
+        break
+
+      task_key = task.GetIdentifier(self._stage)
+      if task_key in mycache:
+        # The task has been encountered before. It will be sent to the helper
+        # module for further processing.
+        self._helper_queue.put(task)
+      else:
+        # Let the workers do the actual work.
+        work_pool.apply_async(
+            self._worker,
+            args=(self._stage, task, self._work_queue, self._result_queue))
+        mycache.append(task_key)
+
+    # Shutdown the workers pool and the helper process.
+    work_pool.close()
+    work_pool.join()
+
+    self._helper_queue.put(POISONPILL)
+    helper_process.join()
diff --git a/bestflags/pipeline_process_test.py b/bestflags/pipeline_process_test.py
new file mode 100644
index 0000000..b9d8406
--- /dev/null
+++ b/bestflags/pipeline_process_test.py
@@ -0,0 +1,89 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Pipeline Process unittest.
+
+Part of the Chrome build flags optimization.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import multiprocessing
+import unittest
+
+from mock_task import MockTask
+import pipeline_process
+
+# Pick an integer at random.
+ERROR = -334
+# Pick an integer at random.
+TEST_STAGE = -8
+
+
+def MockHelper(stage, done_dict, helper_queue, _, result_queue):
+  """This method echos input to the output."""
+
+  assert stage == TEST_STAGE
+  while True:
+    if not helper_queue.empty():
+      task = helper_queue.get()
+      if task == pipeline_process.POISONPILL:
+        # Poison pill means shutdown
+        break
+
+      if task in done_dict:
+        # verify that it does not get duplicate "1"s in the test.
+        result_queue.put(ERROR)
+      else:
+        result_queue.put(('helper', task.GetIdentifier(TEST_STAGE)))
+
+
+def MockWorker(stage, task, _, result_queue):
+  assert stage == TEST_STAGE
+  result_queue.put(('worker', task.GetIdentifier(TEST_STAGE)))
+
+
+class PipelineProcessTest(unittest.TestCase):
+  """This class test the PipelineProcess.
+
+  All the task inserted into the input queue should be taken out and hand to the
+  actual pipeline handler, except for the POISON_PILL.  All these task should
+  also be passed to the next pipeline stage via the output queue.
+  """
+
+  def testRun(self):
+    """Test the run method.
+
+    Ensure that all the tasks inserted into the queue are properly handled.
+    """
+
+    manager = multiprocessing.Manager()
+    inp = manager.Queue()
+    output = manager.Queue()
+
+    process = pipeline_process.PipelineProcess(
+        2, 'testing', {}, TEST_STAGE, inp, MockHelper, MockWorker, output)
+
+    process.start()
+    inp.put(MockTask(TEST_STAGE, 1))
+    inp.put(MockTask(TEST_STAGE, 1))
+    inp.put(MockTask(TEST_STAGE, 2))
+    inp.put(pipeline_process.POISONPILL)
+    process.join()
+
+    # All tasks are processed once and only once.
+    result = [('worker', 1), ('helper', 1), ('worker', 2),
+              pipeline_process.POISONPILL]
+    while result:
+      task = output.get()
+
+      # One "1"s is passed to the worker and one to the helper.
+      self.assertNotEqual(task, ERROR)
+
+      # The messages received should be exactly the same as the result.
+      self.assertTrue(task in result)
+      result.remove(task)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/bestflags/pipeline_worker.py b/bestflags/pipeline_worker.py
new file mode 100644
index 0000000..e21ec2c
--- /dev/null
+++ b/bestflags/pipeline_worker.py
@@ -0,0 +1,142 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""The pipeline_worker functions of the build and test stage of the framework.
+
+Part of the Chrome build flags optimization.
+
+This module defines the helper and the worker. If there are duplicate tasks, for
+example t1 and t2, needs to be built/tested, one of them, for example t1, will
+be built/tested and the helper waits for the result of t1 and set the results of
+the other task, t2 here, to be the same as that of t1. Setting the result of t2
+to be the same as t1 is referred to as resolving the result of t2.
+The worker invokes the work method of the tasks that are not duplicate.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import pipeline_process
+
+
+def Helper(stage, done_dict, helper_queue, completed_queue, result_queue):
+  """Helper that filters duplicate tasks.
+
+  This method Continuously pulls duplicate tasks from the helper_queue. The
+  duplicate tasks need not be compiled/tested. This method also pulls completed
+  tasks from the worker queue and let the results of the duplicate tasks be the
+  same as their corresponding finished task.
+
+  Args:
+    stage: The current stage of the pipeline, for example, build stage or test
+      stage.
+    done_dict: A dictionary of tasks that are done. The key of the dictionary is
+      the identifier of the task. The value of the dictionary is the results of
+      performing the corresponding task.
+    helper_queue: A queue of duplicate tasks whose results need to be resolved.
+      This is a communication channel between the pipeline_process and this
+      helper process.
+    completed_queue: A queue of tasks that have been built/tested. The results
+      of these tasks are needed to resolve the results of the duplicate tasks.
+      This is the communication channel between the workers and this helper
+      process.
+    result_queue: After the results of the duplicate tasks have been resolved,
+      the duplicate tasks will be sent to the next stage via this queue.
+  """
+
+  # The list of duplicate tasks, the results of which need to be resolved.
+  waiting_list = []
+
+  while True:
+    # Pull duplicate task from the helper queue.
+    if not helper_queue.empty():
+      task = helper_queue.get()
+
+      if task == pipeline_process.POISONPILL:
+        # Poison pill means no more duplicate task from the helper queue.
+        break
+
+      # The task has not been performed before.
+      assert not task.Done(stage)
+
+      # The identifier of this task.
+      identifier = task.GetIdentifier(stage)
+
+      # If a duplicate task comes before the corresponding resolved results from
+      # the completed_queue, it will be put in the waiting list. If the result
+      # arrives before the duplicate task, the duplicate task will be resolved
+      # right away.
+      if identifier in done_dict:
+        # This task has been encountered before and the result is available. The
+        # result can be resolved right away.
+        task.SetResult(stage, done_dict[identifier])
+        result_queue.put(task)
+      else:
+        waiting_list.append(task)
+
+    # Check and get completed tasks from completed_queue.
+    GetResultFromCompletedQueue(stage, completed_queue, done_dict, waiting_list,
+                                result_queue)
+
+  # Wait to resolve the results of the remaining duplicate tasks.
+  while waiting_list:
+    GetResultFromCompletedQueue(stage, completed_queue, done_dict, waiting_list,
+                                result_queue)
+
+
+def GetResultFromCompletedQueue(stage, completed_queue, done_dict, waiting_list,
+                                result_queue):
+  """Pull results from the completed queue and resolves duplicate tasks.
+
+  Args:
+    stage: The current stage of the pipeline, for example, build stage or test
+      stage.
+    completed_queue: A queue of tasks that have been performed. The results of
+      these tasks are needed to resolve the results of the duplicate tasks. This
+      is the communication channel between the workers and this method.
+    done_dict: A dictionary of tasks that are done. The key of the dictionary is
+      the optimization flags of the task. The value of the dictionary is the
+      compilation results of the corresponding task.
+    waiting_list: The list of duplicate tasks, the results of which need to be
+      resolved.
+    result_queue: After the results of the duplicate tasks have been resolved,
+      the duplicate tasks will be sent to the next stage via this queue.
+
+  This helper method tries to pull a completed task from the completed queue.
+  If it gets a task from the queue, it resolves the results of all the relevant
+  duplicate tasks in the waiting list. Relevant tasks are the tasks that have
+  the same flags as the currently received results from the completed_queue.
+  """
+  # Pull completed task from the worker queue.
+  if not completed_queue.empty():
+    (identifier, result) = completed_queue.get()
+    done_dict[identifier] = result
+
+    tasks = [t for t in waiting_list if t.GetIdentifier(stage) == identifier]
+    for duplicate_task in tasks:
+      duplicate_task.SetResult(stage, result)
+      result_queue.put(duplicate_task)
+      waiting_list.remove(duplicate_task)
+
+
+def Worker(stage, task, helper_queue, result_queue):
+  """Worker that performs the task.
+
+  This method calls the work method of the input task and distribute the result
+  to the helper and the next stage.
+
+  Args:
+    stage: The current stage of the pipeline, for example, build stage or test
+      stage.
+    task: Input task that needs to be performed.
+    helper_queue: Queue that holds the completed tasks and the results. This is
+      the communication channel between the worker and the helper.
+    result_queue: Queue that holds the completed tasks and the results. This is
+      the communication channel between the worker and the next stage.
+  """
+
+  # The task has not been completed before.
+  assert not task.Done(stage)
+
+  task.Work(stage)
+  helper_queue.put((task.GetIdentifier(stage), task.GetResult(stage)))
+  result_queue.put(task)
diff --git a/bestflags/pipeline_worker_test.py b/bestflags/pipeline_worker_test.py
new file mode 100644
index 0000000..e3de5e1
--- /dev/null
+++ b/bestflags/pipeline_worker_test.py
@@ -0,0 +1,128 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Unittest for the pipeline_worker functions in the build/test stage.
+
+Part of the Chrome build flags optimization.
+
+This module tests the helper method and the worker method.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import multiprocessing
+import random
+import sys
+import unittest
+
+from mock_task import MockTask
+import pipeline_process
+import pipeline_worker
+
+# Pick an integer at random.
+TEST_STAGE = -3
+
+
+def MockTaskCostGenerator():
+  """Calls a random number generator and returns a negative number."""
+  return random.randint(-sys.maxint - 1, -1)
+
+
+class PipelineWorkerTest(unittest.TestCase):
+  """This class tests the pipeline_worker functions.
+
+  Given the same identifier, the cost should result the same from the
+  pipeline_worker functions.
+  """
+
+  def testHelper(self):
+    """"Test the helper.
+
+    Call the helper method twice, and test the results. The results should be
+    the same, i.e., the cost should be the same.
+    """
+
+    # Set up the input, helper and output queue for the helper method.
+    manager = multiprocessing.Manager()
+    helper_queue = manager.Queue()
+    result_queue = manager.Queue()
+    completed_queue = manager.Queue()
+
+    # Set up the helper process that holds the helper method.
+    helper_process = multiprocessing.Process(
+        target=pipeline_worker.Helper,
+        args=(TEST_STAGE, {}, helper_queue, completed_queue, result_queue))
+    helper_process.start()
+
+    # A dictionary defines the mock result to the helper.
+    mock_result = {1: 1995, 2: 59, 9: 1027}
+
+    # Test if there is a task that is done before, whether the duplicate task
+    # will have the same result. Here, two different scenarios are tested. That
+    # is the mock results are added to the completed_queue before and after the
+    # corresponding mock tasks being added to the input queue.
+    completed_queue.put((9, mock_result[9]))
+
+    # The output of the helper should contain all the following tasks.
+    results = [1, 1, 2, 9]
+
+    # Testing the correctness of having tasks having the same identifier, here
+    # 1.
+    for result in results:
+      helper_queue.put(MockTask(TEST_STAGE, result, MockTaskCostGenerator()))
+
+    completed_queue.put((2, mock_result[2]))
+    completed_queue.put((1, mock_result[1]))
+
+    # Signal there is no more duplicate task.
+    helper_queue.put(pipeline_process.POISONPILL)
+    helper_process.join()
+
+    while results:
+      task = result_queue.get()
+      identifier = task.GetIdentifier(TEST_STAGE)
+      self.assertTrue(identifier in results)
+      if identifier in mock_result:
+        self.assertTrue(task.GetResult(TEST_STAGE), mock_result[identifier])
+      results.remove(identifier)
+
+  def testWorker(self):
+    """"Test the worker method.
+
+    The worker should process all the input tasks and output the tasks to the
+    helper and result queue.
+    """
+
+    manager = multiprocessing.Manager()
+    result_queue = manager.Queue()
+    completed_queue = manager.Queue()
+
+    # A dictionary defines the mock tasks and their corresponding results.
+    mock_work_tasks = {1: 86, 2: 788}
+
+    mock_tasks = []
+
+    for flag, cost in mock_work_tasks.iteritems():
+      mock_tasks.append(MockTask(TEST_STAGE, flag, cost))
+
+    # Submit the mock tasks to the worker.
+    for mock_task in mock_tasks:
+      pipeline_worker.Worker(TEST_STAGE, mock_task, completed_queue,
+                             result_queue)
+
+    # The tasks, from the output queue, should be the same as the input and
+    # should be performed.
+    for task in mock_tasks:
+      output = result_queue.get()
+      self.assertEqual(output, task)
+      self.assertTrue(output.Done(TEST_STAGE))
+
+    # The tasks, from the completed_queue, should be defined in the
+    # mock_work_tasks dictionary.
+    for flag, cost in mock_work_tasks.iteritems():
+      helper_input = completed_queue.get()
+      self.assertEqual(helper_input, (flag, cost))
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/bestflags/steering.py b/bestflags/steering.py
new file mode 100644
index 0000000..320f7c3
--- /dev/null
+++ b/bestflags/steering.py
@@ -0,0 +1,116 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""The framework stage that produces the next generation of tasks to run.
+
+Part of the Chrome build flags optimization.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import pipeline_process
+
+
+def Steering(cache, generations, input_queue, result_queue):
+  """The core method template that produces the next generation of tasks to run.
+
+  This method waits for the results of the tasks from the previous generation.
+  Upon the arrival of all these results, the method uses them to generate the
+  next generation of tasks.
+
+  The main logic of producing the next generation from previous generation is
+  application specific. For example, in the genetic algorithm, a task is
+  produced by combining two parents tasks, while in the hill climbing algorithm,
+  a task is generated by its immediate neighbor. The method 'Next' is overridden
+  in the concrete subclasses of the class Generation to produce the next
+  application-specific generation. The steering method invokes the 'Next'
+  method, produces the next generation and submits the tasks in this generation
+  to the next stage, e.g., the build/compilation stage.
+
+  Args:
+    cache: It stores the experiments that have been conducted before. Used to
+      avoid duplicate works.
+    generations: The initial generations of tasks to be run.
+    input_queue: The input results from the last stage of the framework. These
+      results will trigger new iteration of the algorithm.
+    result_queue: The output task queue for this pipeline stage. The new tasks
+      generated by the steering algorithm will be sent to the next stage via
+      this queue.
+  """
+
+  # Generations that have pending tasks to be executed. Pending tasks are those
+  # whose results are not ready. The tasks that have their results ready are
+  # referenced to as ready tasks. Once there is no pending generation, the
+  # algorithm terminates.
+  waiting = generations
+
+  # Record how many initial tasks there are. If there is no task at all, the
+  # algorithm can terminate right away.
+  num_tasks = 0
+
+  # Submit all the tasks in the initial generations to the next stage of the
+  # framework. The next stage can be the build/compilation stage.
+  for generation in generations:
+    # Only send the task that has not been performed before to the next stage.
+    for task in [task for task in generation.Pool() if task not in cache]:
+      result_queue.put(task)
+      cache.add(task)
+      num_tasks += 1
+
+  # If there is no task to be executed at all, the algorithm returns right away.
+  if not num_tasks:
+    # Inform the next stage that there will be no more task.
+    result_queue.put(pipeline_process.POISONPILL)
+    return
+
+  # The algorithm is done if there is no pending generation. A generation is
+  # pending if it has pending task.
+  while waiting:
+    # Busy-waiting for the next task.
+    if input_queue.empty():
+      continue
+
+    # If there is a task whose result is ready from the last stage of the
+    # feedback loop, there will be one less pending task.
+
+    task = input_queue.get()
+
+    # Store the result of this ready task. Intermediate results can be used to
+    # generate report for final result or be used to reboot from a crash from
+    # the failure of any module of the framework.
+    task.LogSteeringCost()
+
+    # Find out which pending generation this ready task belongs to. This pending
+    # generation will have one less pending task. The "next" expression iterates
+    # the generations in waiting until the first generation whose UpdateTask
+    # method returns true.
+    generation = next(gen for gen in waiting if gen.UpdateTask(task))
+
+    # If there is still any pending task, do nothing.
+    if not generation.Done():
+      continue
+
+    # All the tasks in the generation are finished. The generation is ready to
+    # produce the next generation.
+    waiting.remove(generation)
+
+    # Check whether a generation should generate the next generation.
+    # A generation may not generate the next generation, e.g., because a
+    # fixpoint has been reached, there has not been any improvement for a few
+    # generations or a local maxima is reached.
+    if not generation.IsImproved():
+      continue
+
+    for new_generation in generation.Next(cache):
+      # Make sure that each generation should contain at least one task.
+      assert new_generation.Pool()
+      waiting.append(new_generation)
+
+      # Send the tasks of the new generations to the next stage for execution.
+      for new_task in new_generation.Pool():
+        result_queue.put(new_task)
+        cache.add(new_task)
+
+  # Steering algorithm is finished and it informs the next stage that there will
+  # be no more task.
+  result_queue.put(pipeline_process.POISONPILL)
diff --git a/bestflags/steering_test.py b/bestflags/steering_test.py
new file mode 100644
index 0000000..c96e362
--- /dev/null
+++ b/bestflags/steering_test.py
@@ -0,0 +1,170 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Steering stage unittest.
+
+Part of the Chrome build flags optimization.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import multiprocessing
+import unittest
+
+from generation import Generation
+from mock_task import IdentifierMockTask
+import pipeline_process
+import steering
+
+# Pick an integer at random.
+STEERING_TEST_STAGE = -8
+
+# The number of generations to be used to do the testing.
+NUMBER_OF_GENERATIONS = 20
+
+# The number of tasks to be put in each generation to be tested.
+NUMBER_OF_TASKS = 20
+
+# The stride of permutation used to shuffle the input list of tasks. Should be
+# relatively prime with NUMBER_OF_TASKS.
+STRIDE = 7
+
+
+class MockGeneration(Generation):
+  """This class emulates an actual generation.
+
+  It will output the next_generations when the method Next is called. The
+  next_generations is initiated when the MockGeneration instance is constructed.
+  """
+
+  def __init__(self, tasks, next_generations):
+    """Set up the next generations for this task.
+
+    Args:
+      tasks: A set of tasks to be run.
+      next_generations: A list of generations as the next generation of the
+        current generation.
+    """
+    Generation.__init__(self, tasks, None)
+    self._next_generations = next_generations
+
+  def Next(self, _):
+    return self._next_generations
+
+  def IsImproved(self):
+    if self._next_generations:
+      return True
+    return False
+
+
+class SteeringTest(unittest.TestCase):
+  """This class test the steering method.
+
+  The steering algorithm should return if there is no new task in the initial
+  generation. The steering algorithm should send all the tasks to the next stage
+  and should terminate once there is no pending generation. A generation is
+  pending if it contains pending task. A task is pending if its (test) result
+  is not ready.
+  """
+
+  def testSteering(self):
+    """Test that the steering algorithm processes all the tasks properly.
+
+    Test that the steering algorithm sends all the tasks to the next stage. Test
+    that the steering algorithm terminates once all the tasks have been
+    processed, i.e., the results for the tasks are all ready.
+    """
+
+    # A list of generations used to test the steering stage.
+    generations = []
+
+    task_index = 0
+    previous_generations = None
+
+    # Generate a sequence of generations to be tested. Each generation will
+    # output the next generation in reverse order of the list when the "Next"
+    # method is called.
+    for _ in range(NUMBER_OF_GENERATIONS):
+      # Use a consecutive sequence of numbers as identifiers for the set of
+      # tasks put into a generation.
+      test_ranges = range(task_index, task_index + NUMBER_OF_TASKS)
+      tasks = [IdentifierMockTask(STEERING_TEST_STAGE, t) for t in test_ranges]
+      steering_tasks = set(tasks)
+
+      # Let the previous generation as the offspring generation of the current
+      # generation.
+      current_generation = MockGeneration(steering_tasks, previous_generations)
+      generations.insert(0, current_generation)
+      previous_generations = [current_generation]
+
+      task_index += NUMBER_OF_TASKS
+
+    # If there is no generation at all, the unittest returns right away.
+    if not current_generation:
+      return
+
+    # Set up the input and result queue for the steering method.
+    manager = multiprocessing.Manager()
+    input_queue = manager.Queue()
+    result_queue = manager.Queue()
+
+    steering_process = multiprocessing.Process(
+        target=steering.Steering,
+        args=(set(), [current_generation], input_queue, result_queue))
+    steering_process.start()
+
+    # Test that each generation is processed properly. I.e., the generations are
+    # processed in order.
+    while generations:
+      generation = generations.pop(0)
+      tasks = [task for task in generation.Pool()]
+
+      # Test that all the tasks are processed once and only once.
+      while tasks:
+        task = result_queue.get()
+
+        assert task in tasks
+        tasks.remove(task)
+
+        input_queue.put(task)
+
+    task = result_queue.get()
+
+    # Test that the steering algorithm returns properly after processing all
+    # the generations.
+    assert task == pipeline_process.POISONPILL
+
+    steering_process.join()
+
+  def testCache(self):
+    """The steering algorithm returns immediately if there is no new tasks.
+
+    If all the new tasks have been cached before, the steering algorithm does
+    not have to execute these tasks again and thus can terminate right away.
+    """
+
+    # Put a set of tasks in the cache and add this set to initial generation.
+    test_ranges = range(NUMBER_OF_TASKS)
+    tasks = [IdentifierMockTask(STEERING_TEST_STAGE, t) for t in test_ranges]
+    steering_tasks = set(tasks)
+
+    current_generation = MockGeneration(steering_tasks, None)
+
+    # Set up the input and result queue for the steering method.
+    manager = multiprocessing.Manager()
+    input_queue = manager.Queue()
+    result_queue = manager.Queue()
+
+    steering_process = multiprocessing.Process(
+        target=steering.Steering,
+        args=(steering_tasks, [current_generation], input_queue, result_queue))
+
+    steering_process.start()
+
+    # Test that the steering method returns right away.
+    assert result_queue.get() == pipeline_process.POISONPILL
+    steering_process.join()
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/bestflags/task.py b/bestflags/task.py
new file mode 100644
index 0000000..f055fc7
--- /dev/null
+++ b/bestflags/task.py
@@ -0,0 +1,450 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""A reproducing entity.
+
+Part of the Chrome build flags optimization.
+
+The Task class is used by different modules. Each module fills in the
+corresponding information into a Task instance. Class Task contains the bit set
+representing the flags selection. The builder module is responsible for filling
+the image and the checksum field of a Task. The executor module will put the
+execution output to the execution field.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import os
+import subprocess
+import sys
+from uuid import uuid4
+
+BUILD_STAGE = 1
+TEST_STAGE = 2
+
+# Message indicating that the build or test failed.
+ERROR_STRING = 'error'
+
+# The maximum number of tries a build can have. Some compilations may fail due
+# to unexpected environment circumstance. This variable defines how many tries
+# the build should attempt before giving up.
+BUILD_TRIES = 3
+
+# The maximum number of tries a test can have. Some tests may fail due to
+# unexpected environment circumstance. This variable defines how many tries the
+# test should attempt before giving up.
+TEST_TRIES = 3
+
+
+# Create the file/directory if it does not already exist.
+def _CreateDirectory(file_name):
+  directory = os.path.dirname(file_name)
+  if not os.path.exists(directory):
+    os.makedirs(directory)
+
+
+class Task(object):
+  """A single reproducing entity.
+
+  A single test of performance with a particular set of flags. It records the
+  flag set, the image, the check sum of the image and the cost.
+  """
+
+  # The command that will be used in the build stage to compile the tasks.
+  BUILD_COMMAND = None
+  # The command that will be used in the test stage to test the tasks.
+  TEST_COMMAND = None
+  # The directory to log the compilation and test results.
+  LOG_DIRECTORY = None
+
+  @staticmethod
+  def InitLogCommand(build_command, test_command, log_directory):
+    """Set up the build and test command for the task and the log directory.
+
+    This framework is generic. It lets the client specify application specific
+    compile and test methods by passing different build_command and
+    test_command.
+
+    Args:
+      build_command: The command that will be used in the build stage to compile
+        this task.
+      test_command: The command that will be used in the test stage to test this
+        task.
+      log_directory: The directory to log the compilation and test results.
+    """
+
+    Task.BUILD_COMMAND = build_command
+    Task.TEST_COMMAND = test_command
+    Task.LOG_DIRECTORY = log_directory
+
+  def __init__(self, flag_set):
+    """Set up the optimization flag selection for this task.
+
+    Args:
+      flag_set: The optimization flag set that is encapsulated by this task.
+    """
+
+    self._flag_set = flag_set
+
+    # A unique identifier that distinguishes this task from other tasks.
+    self._task_identifier = uuid4()
+
+    self._log_path = (Task.LOG_DIRECTORY, self._task_identifier)
+
+    # Initiate the hash value. The hash value is used so as not to recompute it
+    # every time the hash method is called.
+    self._hash_value = None
+
+    # Indicate that the task has not been compiled/tested.
+    self._build_cost = None
+    self._exe_cost = None
+    self._checksum = None
+    self._image = None
+    self._file_length = None
+    self._text_length = None
+
+  def __eq__(self, other):
+    """Test whether two tasks are equal.
+
+    Two tasks are equal if their flag_set are equal.
+
+    Args:
+      other: The other task with which this task is tested equality.
+    Returns:
+      True if the encapsulated flag sets are equal.
+    """
+    if isinstance(other, Task):
+      return self.GetFlags() == other.GetFlags()
+    return False
+
+  def __hash__(self):
+    if self._hash_value is None:
+      # Cache the hash value of the flags, so as not to recompute them.
+      self._hash_value = hash(self._flag_set)
+    return self._hash_value
+
+  def GetIdentifier(self, stage):
+    """Get the identifier of the task in the stage.
+
+    The flag set uniquely identifies a task in the build stage. The checksum of
+    the image of the task uniquely identifies the task in the test stage.
+
+    Args:
+      stage: The stage (build/test) in which this method is called.
+    Returns:
+      Return the flag set in build stage and return the checksum in test stage.
+    """
+
+    # Define the dictionary for different stage function lookup.
+    get_identifier_functions = {BUILD_STAGE: self.FormattedFlags,
+                                TEST_STAGE: self.__GetCheckSum}
+
+    assert stage in get_identifier_functions
+    return get_identifier_functions[stage]()
+
+  def GetResult(self, stage):
+    """Get the performance results of the task in the stage.
+
+    Args:
+      stage: The stage (build/test) in which this method is called.
+    Returns:
+      Performance results.
+    """
+
+    # Define the dictionary for different stage function lookup.
+    get_result_functions = {BUILD_STAGE: self.__GetBuildResult,
+                            TEST_STAGE: self.GetTestResult}
+
+    assert stage in get_result_functions
+
+    return get_result_functions[stage]()
+
+  def SetResult(self, stage, result):
+    """Set the performance results of the task in the stage.
+
+    This method is called by the pipeling_worker to set the results for
+    duplicated tasks.
+
+    Args:
+      stage: The stage (build/test) in which this method is called.
+      result: The performance results of the stage.
+    """
+
+    # Define the dictionary for different stage function lookup.
+    set_result_functions = {BUILD_STAGE: self.__SetBuildResult,
+                            TEST_STAGE: self.__SetTestResult}
+
+    assert stage in set_result_functions
+
+    set_result_functions[stage](result)
+
+  def Done(self, stage):
+    """Check whether the stage is done.
+
+    Args:
+      stage: The stage to be checked, build or test.
+    Returns:
+      True if the stage is done.
+    """
+
+    # Define the dictionary for different result string lookup.
+    done_string = {BUILD_STAGE: self._build_cost, TEST_STAGE: self._exe_cost}
+
+    assert stage in done_string
+
+    return done_string[stage] is not None
+
+  def Work(self, stage):
+    """Perform the task.
+
+    Args:
+      stage: The stage in which the task is performed, compile or test.
+    """
+
+    # Define the dictionary for different stage function lookup.
+    work_functions = {BUILD_STAGE: self.__Compile, TEST_STAGE: self.__Test}
+
+    assert stage in work_functions
+
+    work_functions[stage]()
+
+  def FormattedFlags(self):
+    """Format the optimization flag set of this task.
+
+    Returns:
+      The formatted optimization flag set that is encapsulated by this task.
+    """
+    return str(self._flag_set.FormattedForUse())
+
+  def GetFlags(self):
+    """Get the optimization flag set of this task.
+
+    Returns:
+      The optimization flag set that is encapsulated by this task.
+    """
+
+    return self._flag_set
+
+  def __GetCheckSum(self):
+    """Get the compilation image checksum of this task.
+
+    Returns:
+      The compilation image checksum of this task.
+    """
+
+    # The checksum should be computed before this method is called.
+    assert self._checksum is not None
+    return self._checksum
+
+  def __Compile(self):
+    """Run a compile.
+
+    This method compile an image using the present flags, get the image,
+    test the existent of the image and gathers monitoring information, and sets
+    the internal cost (fitness) for this set of flags.
+    """
+
+    # Format the flags as a string as input to compile command. The unique
+    # identifier is passed to the compile command. If concurrent processes are
+    # used to compile different tasks, these processes can use the identifier to
+    # write to different file.
+    flags = self._flag_set.FormattedForUse()
+    command = '%s %s %s' % (Task.BUILD_COMMAND, ' '.join(flags),
+                            self._task_identifier)
+
+    # Try BUILD_TRIES number of times before confirming that the build fails.
+    for _ in range(BUILD_TRIES):
+      try:
+        # Execute the command and get the execution status/results.
+        p = subprocess.Popen(command.split(),
+                             stdout=subprocess.PIPE,
+                             stderr=subprocess.PIPE)
+        (out, err) = p.communicate()
+
+        if out:
+          out = out.strip()
+          if out != ERROR_STRING:
+            # Each build results contains the checksum of the result image, the
+            # performance cost of the build, the compilation image, the length
+            # of the build, and the length of the text section of the build.
+            (checksum, cost, image, file_length, text_length) = out.split()
+            # Build successfully.
+            break
+
+        # Build failed.
+        cost = ERROR_STRING
+      except _:
+        # If there is exception getting the cost information of the build, the
+        # build failed.
+        cost = ERROR_STRING
+
+    # Convert the build cost from String to integer. The build cost is used to
+    # compare a task with another task. Set the build cost of the failing task
+    # to the max integer. The for loop will keep trying until either there is a
+    # success or BUILD_TRIES number of tries have been conducted.
+    self._build_cost = sys.maxint if cost == ERROR_STRING else float(cost)
+
+    self._checksum = checksum
+    self._file_length = file_length
+    self._text_length = text_length
+    self._image = image
+
+    self.__LogBuildCost(err)
+
+  def __Test(self):
+    """__Test the task against benchmark(s) using the input test command."""
+
+    # Ensure that the task is compiled before being tested.
+    assert self._image is not None
+
+    # If the task does not compile, no need to test.
+    if self._image == ERROR_STRING:
+      self._exe_cost = ERROR_STRING
+      return
+
+    # The unique identifier is passed to the test command. If concurrent
+    # processes are used to compile different tasks, these processes can use the
+    # identifier to write to different file.
+    command = '%s %s %s' % (Task.TEST_COMMAND, self._image,
+                            self._task_identifier)
+
+    # Try TEST_TRIES number of times before confirming that the build fails.
+    for _ in range(TEST_TRIES):
+      try:
+        p = subprocess.Popen(command.split(),
+                             stdout=subprocess.PIPE,
+                             stderr=subprocess.PIPE)
+        (out, err) = p.communicate()
+
+        if out:
+          out = out.strip()
+          if out != ERROR_STRING:
+            # The test results contains the performance cost of the test.
+            cost = out
+            # Test successfully.
+            break
+
+        # Test failed.
+        cost = ERROR_STRING
+      except _:
+        # If there is exception getting the cost information of the test, the
+        # test failed. The for loop will keep trying until either there is a
+        # success or TEST_TRIES number of tries have been conducted.
+        cost = ERROR_STRING
+
+    self._exe_cost = sys.maxint if (cost == ERROR_STRING) else float(cost)
+
+    self.__LogTestCost(err)
+
+  def __SetBuildResult(self, (checksum, build_cost, image, file_length,
+                              text_length)):
+    self._checksum = checksum
+    self._build_cost = build_cost
+    self._image = image
+    self._file_length = file_length
+    self._text_length = text_length
+
+  def __GetBuildResult(self):
+    return (self._checksum, self._build_cost, self._image, self._file_length,
+            self._text_length)
+
+  def GetTestResult(self):
+    return self._exe_cost
+
+  def __SetTestResult(self, exe_cost):
+    self._exe_cost = exe_cost
+
+  def LogSteeringCost(self):
+    """Log the performance results for the task.
+
+    This method is called by the steering stage and this method writes the
+    results out to a file. The results include the build and the test results.
+    """
+
+    steering_log = '%s/%s/steering.txt' % self._log_path
+
+    _CreateDirectory(steering_log)
+
+    with open(steering_log, 'w') as out_file:
+      # Include the build and the test results.
+      steering_result = (self._flag_set, self._checksum, self._build_cost,
+                         self._image, self._file_length, self._text_length,
+                         self._exe_cost)
+
+      # Write out the result in the comma-separated format (CSV).
+      out_file.write('%s,%s,%s,%s,%s,%s,%s\n' % steering_result)
+
+  def __LogBuildCost(self, log):
+    """Log the build results for the task.
+
+    The build results include the compilation time of the build, the result
+    image, the checksum, the file length and the text length of the image.
+    The file length of the image includes the length of the file of the image.
+    The text length only includes the length of the text section of the image.
+
+    Args:
+      log: The build log of this task.
+    """
+
+    build_result_log = '%s/%s/build.txt' % self._log_path
+
+    _CreateDirectory(build_result_log)
+
+    with open(build_result_log, 'w') as out_file:
+      build_result = (self._flag_set, self._build_cost, self._image,
+                      self._checksum, self._file_length, self._text_length)
+
+      # Write out the result in the comma-separated format (CSV).
+      out_file.write('%s,%s,%s,%s,%s,%s\n' % build_result)
+
+    # The build information about running the build.
+    build_run_log = '%s/%s/build_log.txt' % self._log_path
+    _CreateDirectory(build_run_log)
+
+    with open(build_run_log, 'w') as out_log_file:
+      # Write out the execution information.
+      out_log_file.write('%s' % log)
+
+  def __LogTestCost(self, log):
+    """Log the test results for the task.
+
+    The test results include the runtime execution time of the test.
+
+    Args:
+      log: The test log of this task.
+    """
+
+    test_log = '%s/%s/test.txt' % self._log_path
+
+    _CreateDirectory(test_log)
+
+    with open(test_log, 'w') as out_file:
+      test_result = (self._flag_set, self._checksum, self._exe_cost)
+
+      # Write out the result in the comma-separated format (CSV).
+      out_file.write('%s,%s,%s\n' % test_result)
+
+    # The execution information about running the test.
+    test_run_log = '%s/%s/test_log.txt' % self._log_path
+
+    _CreateDirectory(test_run_log)
+
+    with open(test_run_log, 'w') as out_log_file:
+      # Append the test log information.
+      out_log_file.write('%s' % log)
+
+  def IsImproved(self, other):
+    """Compare the current task with another task.
+
+    Args:
+      other: The other task against which the current task is compared.
+
+    Returns:
+      True if this task has improvement upon the other task.
+    """
+
+    # The execution costs must have been initiated.
+    assert self._exe_cost is not None
+    assert other.GetTestResult() is not None
+
+    return self._exe_cost < other.GetTestResult()
diff --git a/bestflags/task_test.py b/bestflags/task_test.py
new file mode 100644
index 0000000..68a7bf7
--- /dev/null
+++ b/bestflags/task_test.py
@@ -0,0 +1,174 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Task unittest.
+
+Part of the Chrome build flags optimization.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import random
+import sys
+import unittest
+
+import task
+from task import Task
+
+# The number of flags be tested.
+NUM_FLAGS = 20
+
+# The random build result values used to test get set result method.
+RANDOM_BUILD_RESULT = 100
+
+# The random test result values used to test get set result method.
+RANDOM_TESTRESULT = 100
+
+
+class MockFlagSet(object):
+  """This class emulates a set of flags.
+
+  It returns the flags and hash value, when the FormattedForUse method and the
+  __hash__ method is called, respectively. These values are initialized when the
+  MockFlagSet instance is constructed.
+  """
+
+  def __init__(self, flags=0, hash_value=-1):
+    self._flags = flags
+    self._hash_value = hash_value
+
+  def __eq__(self, other):
+    assert isinstance(other, MockFlagSet)
+    return self._flags == other.FormattedForUse()
+
+  def FormattedForUse(self):
+    return self._flags
+
+  def __hash__(self):
+    return self._hash_value
+
+  def GetHash(self):
+    return self._hash_value
+
+
+class TaskTest(unittest.TestCase):
+  """This class test the Task class."""
+
+  def testEqual(self):
+    """Test the equal method of the task.
+
+    Two tasks are equal if and only if their encapsulated flag_sets are equal.
+    """
+
+    flags = range(NUM_FLAGS)
+
+    # Two tasks having the same flag set should be equivalent.
+    flag_sets = [MockFlagSet(flag) for flag in flags]
+    for flag_set in flag_sets:
+      assert Task(flag_set) == Task(flag_set)
+
+    # Two tasks having different flag set should be different.
+    for flag_set in flag_sets:
+      test_task = Task(flag_set)
+      other_flag_sets = [flags for flags in flag_sets if flags != flag_set]
+      for flag_set1 in other_flag_sets:
+        assert test_task != Task(flag_set1)
+
+  def testHash(self):
+    """Test the hash method of the task.
+
+    Two tasks are equal if and only if their encapsulated flag_sets are equal.
+    """
+
+    # Random identifier that is not relevant in this test.
+    identifier = random.randint(-sys.maxint - 1, -1)
+
+    flag_sets = [MockFlagSet(identifier, value) for value in range(NUM_FLAGS)]
+    for flag_set in flag_sets:
+      # The hash of a task is the same as the hash of its flag set.
+      hash_task = Task(flag_set)
+      hash_value = hash(hash_task)
+      assert hash_value == flag_set.GetHash()
+
+      # The hash of a task does not change.
+      assert hash_value == hash(hash_task)
+
+  def testGetIdentifier(self):
+    """Test the get identifier method of the task.
+
+    The get identifier method should returns the flag set in the build stage.
+    """
+
+    flag_sets = [MockFlagSet(flag) for flag in range(NUM_FLAGS)]
+    for flag_set in flag_sets:
+      identifier_task = Task(flag_set)
+
+      identifier = identifier_task.GetIdentifier(task.BUILD_STAGE)
+
+      # The task formats the flag set into a string.
+      assert identifier == str(flag_set.FormattedForUse())
+
+  def testGetSetResult(self):
+    """Test the get and set result methods of the task.
+
+    The get result method should return the same results as were set.
+    """
+
+    flag_sets = [MockFlagSet(flag) for flag in range(NUM_FLAGS)]
+    for flag_set in flag_sets:
+      result_task = Task(flag_set)
+
+      # The get result method should return the same results as were set, in
+      # build stage. Currently, the build result is a 5-element tuple containing
+      # the checksum of the result image, the performance cost of the build, the
+      # compilation image, the length of the build, and the length of the text
+      # section of the build.
+      result = tuple([random.randint(0, RANDOM_BUILD_RESULT) for _ in range(5)])
+      result_task.SetResult(task.BUILD_STAGE, result)
+      assert result == result_task.GetResult(task.BUILD_STAGE)
+
+      # The checksum is the identifier of the test stage.
+      identifier = result_task.GetIdentifier(task.TEST_STAGE)
+      # The first element of the result tuple is the checksum.
+      assert identifier == result[0]
+
+      # The get result method should return the same results as were set, in
+      # test stage.
+      random_test_result = random.randint(0, RANDOM_TESTRESULT)
+      result_task.SetResult(task.TEST_STAGE, random_test_result)
+      test_result = result_task.GetResult(task.TEST_STAGE)
+      assert test_result == random_test_result
+
+  def testDone(self):
+    """Test the done methods of the task.
+
+    The done method should return false is the task has not perform and return
+    true after the task is finished.
+    """
+
+    flags = range(NUM_FLAGS)
+
+    flag_sets = [MockFlagSet(flag) for flag in flags]
+    for flag_set in flag_sets:
+      work_task = Task(flag_set)
+
+      # The task has not been compiled nor tested.
+      assert not work_task.Done(task.TEST_STAGE)
+      assert not work_task.Done(task.BUILD_STAGE)
+
+      # After the task has been compiled, it should indicate finished in BUILD
+      # stage.
+      result = tuple([random.randint(0, RANDOM_BUILD_RESULT) for _ in range(5)])
+      work_task.SetResult(task.BUILD_STAGE, result)
+      assert not work_task.Done(task.TEST_STAGE)
+      assert work_task.Done(task.BUILD_STAGE)
+
+      # After the task has been tested, it should indicate finished in TEST
+      # stage.
+      work_task.SetResult(task.TEST_STAGE, random.randint(0, RANDOM_TESTRESULT))
+      assert work_task.Done(task.TEST_STAGE)
+      assert work_task.Done(task.BUILD_STAGE)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/bestflags/testing_batch.py b/bestflags/testing_batch.py
new file mode 100644
index 0000000..ffe1944
--- /dev/null
+++ b/bestflags/testing_batch.py
@@ -0,0 +1,450 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Hill climbing unitest.
+
+Part of the Chrome build flags optimization.
+
+Test the best branching hill climbing algorithms, genetic algorithm and
+iterative elimination algorithm.
+"""
+
+__author__ = 'yuhenglong@google.com (Yuheng Long)'
+
+import multiprocessing
+import random
+import sys
+import unittest
+
+import flags
+from flags import Flag
+from flags import FlagSet
+from genetic_algorithm import GAGeneration
+from genetic_algorithm import GATask
+from hill_climb_best_neighbor import HillClimbingBestBranch
+from iterative_elimination import IterativeEliminationFirstGeneration
+import pipeline_process
+from steering import Steering
+from task import BUILD_STAGE
+from task import Task
+from task import TEST_STAGE
+
+# The number of flags be tested.
+NUM_FLAGS = 5
+
+# The value range of the flags.
+FLAG_RANGES = 10
+
+# The following variables are meta data for the Genetic Algorithm.
+STOP_THRESHOLD = 20
+NUM_CHROMOSOMES = 10
+NUM_TRIALS = 20
+MUTATION_RATE = 0.03
+
+
+def _GenerateRandomRasks(specs):
+  """Generate a task that has random values.
+
+  Args:
+    specs: A list of spec from which the flag set is created.
+
+  Returns:
+    A set containing a task that has random values.
+  """
+
+  flag_set = []
+
+  for spec in specs:
+    numeric_flag_match = flags.Search(spec)
+    if numeric_flag_match:
+      # Numeric flags.
+      start = int(numeric_flag_match.group('start'))
+      end = int(numeric_flag_match.group('end'))
+
+      value = random.randint(start - 1, end - 1)
+      if value != start - 1:
+        # If the value falls in the range, this flag is enabled.
+        flag_set.append(Flag(spec, value))
+    else:
+      # Boolean flags.
+      if random.randint(0, 1):
+        flag_set.append(Flag(spec))
+
+  return set([Task(FlagSet(flag_set))])
+
+
+def _GenerateAllFlagsTasks(specs):
+  """Generate a task that all the flags are enable.
+
+  All the boolean flags in the specs will be enabled and all the numeric flag
+  with have the largest legal value.
+
+  Args:
+    specs: A list of spec from which the flag set is created.
+
+  Returns:
+    A set containing a task that has all flags enabled.
+  """
+
+  flag_set = []
+
+  for spec in specs:
+    numeric_flag_match = flags.Search(spec)
+
+    if numeric_flag_match:
+      value = (int(numeric_flag_match.group('end')) - 1)
+    else:
+      value = -1
+    flag_set.append(Flag(spec, value))
+
+  return set([Task(FlagSet(flag_set))])
+
+
+def _GenerateNoFlagTask():
+  return set([Task(FlagSet([]))])
+
+
+def GenerateRandomGATasks(specs, num_tasks, num_trials):
+  """Generate a set of tasks for the Genetic Algorithm.
+
+  Args:
+    specs: A list of spec from which the flag set is created.
+    num_tasks: number of tasks that should be generated.
+    num_trials: the maximum number of tries should be attempted to generate the
+      set of tasks.
+
+  Returns:
+    A set of randomly generated tasks.
+  """
+
+  tasks = set([])
+
+  total_trials = 0
+  while len(tasks) < num_tasks and total_trials < num_trials:
+    new_flag = FlagSet([Flag(spec) for spec in specs if random.randint(0, 1)])
+    new_task = GATask(new_flag)
+
+    if new_task in tasks:
+      total_trials += 1
+    else:
+      tasks.add(new_task)
+      total_trials = 0
+
+  return tasks
+
+
+def _GenerateInitialFlags(specs, spec):
+  """Generate the flag_set of a task in the flag elimination algorithm.
+
+  Set the value of all the flags to the largest value, except for the flag that
+  contains spec.
+
+  For example, if the specs are [-finline-limit=[1-1000], -fstrict-aliasing] and
+  the spec is -finline-limit=[1-1000], then the result is
+  [-finline-limit=[1-1000]:-finline-limit=998,
+   -fstrict-aliasing:-fstrict-aliasing]
+
+  Args:
+    specs: an array of specifications from which the result flag_set is created.
+      The flag_set contains one and only one flag that contain the specification
+      spec.
+    spec: The flag containing this spec should have a value that is smaller than
+      the highest value the flag can have.
+
+  Returns:
+    An array of flags, each of which contains one spec in specs. All the values
+    of the flags are the largest values in specs, expect the one that contains
+    spec.
+  """
+
+  flag_set = []
+  for other_spec in specs:
+    numeric_flag_match = flags.Search(other_spec)
+    # Found the spec in the array specs.
+    if other_spec == spec:
+      # Numeric flag will have a value that is smaller than the largest value
+      # and Boolean flag will be deleted.
+      if numeric_flag_match:
+        end = int(numeric_flag_match.group('end'))
+        flag_set.append(flags.Flag(other_spec, end - 2))
+
+      continue
+
+    # other_spec != spec
+    if numeric_flag_match:
+      # numeric flag
+      end = int(numeric_flag_match.group('end'))
+      flag_set.append(flags.Flag(other_spec, end - 1))
+      continue
+
+    # boolean flag
+    flag_set.append(flags.Flag(other_spec))
+
+  return flag_set
+
+
+def _GenerateAllIterativeEliminationTasks(specs):
+  """Generate the initial tasks for the negative flag elimination algorithm.
+
+  Generate the base line task that turns on all the boolean flags and sets the
+  value to be the largest value for the numeric flag.
+
+  For example, if the specs are [-finline-limit=[1-1000], -fstrict-aliasing],
+  the base line is [-finline-limit=[1-1000]:-finline-limit=999,
+  -fstrict-aliasing:-fstrict-aliasing]
+
+  Generate a set of task, each turns off one of the flag or sets a value that is
+  smaller than the largest value for the flag.
+
+  Args:
+    specs: an array of specifications from which the result flag_set is created.
+
+  Returns:
+    An array containing one generation of the initial tasks for the negative
+    flag elimination algorithm.
+  """
+
+  # The set of tasks to be generated.
+  results = set([])
+  flag_set = []
+
+  for spec in specs:
+    numeric_flag_match = flags.Search(spec)
+    if numeric_flag_match:
+      # Numeric flag.
+      end_value = int(numeric_flag_match.group('end'))
+      flag_set.append(flags.Flag(spec, end_value - 1))
+      continue
+
+    # Boolean flag.
+    flag_set.append(flags.Flag(spec))
+
+  # The base line task that set all the flags to their largest values.
+  parent_task = Task(flags.FlagSet(flag_set))
+  results.add(parent_task)
+
+  for spec in specs:
+    results.add(Task(flags.FlagSet(_GenerateInitialFlags(specs, spec))))
+
+  return [IterativeEliminationFirstGeneration(results, parent_task)]
+
+
+def _ComputeCost(cost_func, specs, flag_set):
+  """Compute the mock cost of the flag_set using the input cost function.
+
+  All the boolean flags in the specs will be enabled and all the numeric flag
+  with have the largest legal value.
+
+  Args:
+    cost_func: The cost function which is used to compute the mock cost of a
+      dictionary of flags.
+    specs: All the specs that are used in the algorithm. This is used to check
+      whether certain flag is disabled in the flag_set dictionary.
+    flag_set: a dictionary of the spec and flag pairs.
+
+  Returns:
+    The mock cost of the input dictionary of the flags.
+  """
+
+  values = []
+
+  for spec in specs:
+    # If a flag is enabled, its value is added. Otherwise a padding 0 is added.
+    values.append(flag_set[spec].GetValue() if spec in flag_set else 0)
+
+  # The cost function string can use the values array.
+  return eval(cost_func)
+
+
+def _GenerateTestFlags(num_flags, upper_bound, file_name):
+  """Generate a set of mock flags and write it to a configuration file.
+
+  Generate a set of mock flags
+
+  Args:
+    num_flags: Number of numeric flags to be generated.
+    upper_bound: The value of the upper bound of the range.
+    file_name: The configuration file name into which the mock flags are put.
+  """
+
+  with open(file_name, 'w') as output_file:
+    num_flags = int(num_flags)
+    upper_bound = int(upper_bound)
+    for i in range(num_flags):
+      output_file.write('%s=[1-%d]\n' % (i, upper_bound))
+
+
+def _TestAlgorithm(cost_func, specs, generations, best_result):
+  """Test the best result the algorithm should return.
+
+  Set up the framework, run the input algorithm and verify the result.
+
+  Args:
+    cost_func: The cost function which is used to compute the mock cost of a
+      dictionary of flags.
+    specs: All the specs that are used in the algorithm. This is used to check
+      whether certain flag is disabled in the flag_set dictionary.
+    generations: The initial generations to be evaluated.
+    best_result: The expected best result of the algorithm. If best_result is
+      -1, the algorithm may or may not return the best value. Therefore, no
+      assertion will be inserted.
+  """
+
+  # Set up the utilities to test the framework.
+  manager = multiprocessing.Manager()
+  input_queue = manager.Queue()
+  output_queue = manager.Queue()
+  pp_steer = multiprocessing.Process(
+      target=Steering,
+      args=(set(), generations, output_queue, input_queue))
+  pp_steer.start()
+
+  # The best result of the algorithm so far.
+  result = sys.maxint
+
+  while True:
+    task = input_queue.get()
+
+    # POISONPILL signal the ends of the algorithm.
+    if task == pipeline_process.POISONPILL:
+      break
+
+    task.SetResult(BUILD_STAGE, (0, 0, 0, 0, 0))
+
+    # Compute the mock cost for the task.
+    task_result = _ComputeCost(cost_func, specs, task.GetFlags())
+    task.SetResult(TEST_STAGE, task_result)
+
+    # If the mock result of the current task is the best so far, set this
+    # result to be the best result.
+    if task_result < result:
+      result = task_result
+
+    output_queue.put(task)
+
+  pp_steer.join()
+
+  # Only do this test when best_result is not -1.
+  if best_result != -1:
+    assert best_result == result
+
+
+class MockAlgorithmsTest(unittest.TestCase):
+  """This class mock tests different steering algorithms.
+
+  The steering algorithms are responsible for generating the next set of tasks
+  to run in each iteration. This class does a functional testing on the
+  algorithms. It mocks out the computation of the fitness function from the
+  build and test phases by letting the user define the fitness function.
+  """
+
+  def _GenerateFlagSpecifications(self):
+    """Generate the testing specifications."""
+
+    mock_test_file = 'scale_mock_test'
+    _GenerateTestFlags(NUM_FLAGS, FLAG_RANGES, mock_test_file)
+    return flags.ReadConf(mock_test_file)
+
+  def testBestHillClimb(self):
+    """Test the best hill climb algorithm.
+
+    Test whether it finds the best results as expected.
+    """
+
+    # Initiate the build/test command and the log directory.
+    Task.InitLogCommand(None, None, 'output')
+
+    # Generate the testing specs.
+    specs = self._GenerateFlagSpecifications()
+
+    # Generate the initial generations for a test whose cost function is the
+    # summation of the values of all the flags.
+    generation_tasks = _GenerateAllFlagsTasks(specs)
+    generations = [HillClimbingBestBranch(generation_tasks, set([]), specs)]
+
+    # Test the algorithm. The cost function is the summation of all the values
+    # of all the flags. Therefore, the best value is supposed to be 0, i.e.,
+    # when all the flags are disabled.
+    _TestAlgorithm('sum(values[0:len(values)])', specs, generations, 0)
+
+    # This test uses a cost function that is the negative of the previous cost
+    # function. Therefore, the best result should be found in task with all the
+    # flags enabled.
+    cost_function = 'sys.maxint - sum(values[0:len(values)])'
+    all_flags = list(generation_tasks)[0].GetFlags()
+    cost = _ComputeCost(cost_function, specs, all_flags)
+
+    # Generate the initial generations.
+    generation_tasks = _GenerateNoFlagTask()
+    generations = [HillClimbingBestBranch(generation_tasks, set([]), specs)]
+
+    # Test the algorithm. The cost function is negative of the summation of all
+    # the values of all the flags. Therefore, the best value is supposed to be
+    # 0, i.e., when all the flags are disabled.
+    _TestAlgorithm(cost_function, specs, generations, cost)
+
+  def testGeneticAlgorithm(self):
+    """Test the Genetic Algorithm.
+
+    Do a functional testing here and see how well it scales.
+    """
+
+    # Initiate the build/test command and the log directory.
+    Task.InitLogCommand(None, None, 'output')
+
+    # Generate the testing specs.
+    specs = self._GenerateFlagSpecifications()
+    # Initiate the build/test command and the log directory.
+    GAGeneration.InitMetaData(STOP_THRESHOLD, NUM_CHROMOSOMES, NUM_TRIALS,
+                              specs, MUTATION_RATE)
+
+    # Generate the initial generations.
+    generation_tasks = GenerateRandomGATasks(specs, NUM_CHROMOSOMES, NUM_TRIALS)
+    generations = [GAGeneration(generation_tasks, set([]), 0)]
+
+    # Test the algorithm.
+    _TestAlgorithm('sum(values[0:len(values)])', specs, generations, -1)
+    cost_func = 'sys.maxint - sum(values[0:len(values)])'
+    _TestAlgorithm(cost_func, specs, generations, -1)
+
+  def testIterativeElimination(self):
+    """Test the iterative elimination algorithm.
+
+    Test whether it finds the best results as expected.
+    """
+
+    # Initiate the build/test command and the log directory.
+    Task.InitLogCommand(None, None, 'output')
+
+    # Generate the testing specs.
+    specs = self._GenerateFlagSpecifications()
+
+    # Generate the initial generations. The generation contains the base line
+    # task that turns on all the flags and tasks that each turn off one of the
+    # flags.
+    generations = _GenerateAllIterativeEliminationTasks(specs)
+
+    # Test the algorithm. The cost function is the summation of all the values
+    # of all the flags. Therefore, the best value is supposed to be 0, i.e.,
+    # when all the flags are disabled.
+    _TestAlgorithm('sum(values[0:len(values)])', specs, generations, 0)
+
+    # This test uses a cost function that is the negative of the previous cost
+    # function. Therefore, the best result should be found in task with all the
+    # flags enabled.
+    all_flags_tasks = _GenerateAllFlagsTasks(specs)
+    cost_function = 'sys.maxint - sum(values[0:len(values)])'
+    # Compute the cost of the task that turns on all the flags.
+    all_flags = list(all_flags_tasks)[0].GetFlags()
+    cost = _ComputeCost(cost_function, specs, all_flags)
+
+    # Test the algorithm. The cost function is negative of the summation of all
+    # the values of all the flags. Therefore, the best value is supposed to be
+    # 0, i.e., when all the flags are disabled.
+    # The concrete type of the generation decides how the next generation will
+    # be generated.
+    _TestAlgorithm(cost_function, specs, generations, cost)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/bin/tc_pyformat b/bin/tc_pyformat
new file mode 100755
index 0000000..21eceeb
--- /dev/null
+++ b/bin/tc_pyformat
@@ -0,0 +1,36 @@
+#!/bin/bash
+# Usage: tc_pyformat <list of pyformat options> file1.py file2.py ...
+#
+# Most common option is -i, which makes formatting changes in place.
+set -u
+
+PF=pyformat
+PF_OPTIONS="--yapf --force_quote_type=single"
+PF_USER_OPTIONS=""
+
+if [[ -z "$(type -t ${PF})" ]]; then
+  echo "Error: ${PF} not in your path."
+  exit 1
+fi
+
+while [[ "$1" == -* ]]; do
+  PF_USER_OPTIONS+=" $1"
+  shift
+done
+
+FILES=$*
+PF_OPTIONS+=${PF_USER_OPTIONS}
+
+for f in ${FILES}; do
+  if [[ $f != *.py ]]; then
+    echo "Error: File $f is not a python file"
+    exit 2
+  elif [[ -x $f ]]; then
+    ${PF} ${PF_OPTIONS} $f
+  elif [[ -f $f ]]; then
+    ${PF} --remove_shebang ${PF_OPTIONS} $f
+  else
+    echo "Error: File $f does not exist"
+    exit 2
+  fi
+done
diff --git a/binary_search_tool/.gitignore b/binary_search_tool/.gitignore
new file mode 100644
index 0000000..c4977a3
--- /dev/null
+++ b/binary_search_tool/.gitignore
@@ -0,0 +1,7 @@
+log
+*.pyc
+working_set.txt
+objects.txt
+.binary_search_state.py.state*
+binary_search_state.py.state
+
diff --git a/binary_search_tool/MAINTENANCE b/binary_search_tool/MAINTENANCE
new file mode 100644
index 0000000..8e5b3c6
--- /dev/null
+++ b/binary_search_tool/MAINTENANCE
@@ -0,0 +1,115 @@
+This document is for future maintainers of the binary search/bisection tools.
+
+Authors:
+  * Original Tool: asharif@, llozano@, cmtice@
+  * Updates after May 2016: cburden@
+  * chromeos-toolchain@
+
+The following are good reference materials on how the tool works:
+  * Ahmad's original presentation:
+    https://goto.google.com/zxdfyi
+
+  * Bisection tool update design doc:
+    https://goto.google.com/zcwei
+
+  * Bisection tool webpage:
+    https://goto.google.com/ruwpyi
+
+  * Compiler wrapper webpage:
+    https://goto.google.com/xossn
+
+
+TESTING:
+All unit tests live under the ./test directory. However, these tests
+specifically test binary_search_state.py, binary_search_perforce.py, bisect.py.
+These unit tests will not test the specific logic for ChromeOS/Android
+bisection. To test the ChromeOS/Android bisectors, use the common/hash_test.sh
+test. This is a simple test case that just checks the hashes of files on your
+file system. This means you won't have to find a specific compiler error for
+the bisector to triage in order to test each bisector.
+
+TODO:
+The bisection tool (I believe) is in a fairly good state. So these are mostly
+wishlist items and things that could use some improvement.
+
+  1. Get rid of binary_search_perforce.py. This file is mostly legacy code and
+     the majority of it isn't even used to bisect object files. The file was
+     originally intended to bisect CLs, and binary_search_state.py just reused
+     the binary searching logic from it. Maybe just extract the binary searching
+     logic from binary_search_perforce.py and put it in its own module in
+     cros_utils?
+
+  2. Cleanup unit tests in ./test. These tests are a little hacked together,
+     and are all under one test suite. Maybe consider organizing them across
+     multiple directories.
+
+  3. Create a "checkout setup" system for bisection. Currently if you want to
+     bisect, you have to run scripts/edit sources in this repo. Ideally these
+     scripts would be static, and if you wanted to bisect/make changes you would
+     "checkout" or copy all the scripts to a working directory and have a unique
+     working directory for each bisection. Credits to Luis for this idea =)
+
+  4. Make all scripts relative to each other. Currently all scripts enforce the
+     idea that their cwd will be ./binary_search_tool/. But it would be less
+     confusing to have each script relative to each other. There's quite a few
+     stackoverflow topics on how to do this best, but each one has some sort of
+     downside or flaw.
+
+  5. Overall modularize code more, especially in binary_search_state.py
+
+DESIGN EXPLANATIONS:
+Some of the design decisions are a bit difficult to understand from just reading
+the code unfortunately. I will attempt to clear up the major offenders of this:
+
+  1. common.py's argument dictionary:
+     binary_search_state.py and bisect.py both have to have near identical
+     arguments in order to support argument overriding in bisect.py. However
+     they do have to be slightly different. Mainly, bisect.py needs to have no
+     default values for arguments (so it can determine what's being overriden).
+
+     In order to reduce huge amounts of code duplication for the argument
+     building, we put argument building in common.py. That way both modules
+     can reference the arguments, and they can have different configurations
+     across both.
+
+  2. Compiler wrapper:
+     The compiler wrapper is called before all compiler calls. It exists to
+     trick whatever build system (make, emerge, etc.) into thinking our
+     bisection is just a normal build, when really we're doing some tricks.
+
+     The biggest benefit the compiler wrapper gives is: knowing for sure which
+     files are actually generated by the compiler during bisection setup, and
+     potentially being able to skip compilations while triaging (speeding up the
+     triaging process significantly).
+
+  3. The weird options for the --verify, --verbose, --file_args, etc. arguments:
+     Some of the arguments for the bisection tool have a weird set of options
+     for the AddArgument method (nargs, const, default, StrToBool). This is so
+     we can make argument overriding workable. These options allow the following
+     functionality for a boolean argument (using --prune as an example):
+       * --prune (prune set to True)
+       * <not given> (prune set to False)
+       * --prune=True (prune set to True)
+       * --prune=False (prune set to False)
+
+     The first two are easy to implement (action='store_true'), but the last two
+     are why the extra weird arguments are required. Now, why would we want the
+     last two? Imagine if the Android bisector set --prune=True as a default
+     argument. With just the first two options above it would be impossible for
+     the user to override prune and set it to False. So the user needs the
+     --prune=False option. See the argparse documentation for more details.
+
+  4. General binary searching logic/pruning logic:
+     binary_search_state.py will enumerate all items into a list. The binary
+     search will find the *first* bad item (starting with lowest index).
+     Everything to the left of the "current" index is switched to good,
+     everything to right of the "current" index is switched to bad. Once a bad
+     item is found, it's put at the very end of the list.
+
+     If prune is set, the tool will continuing searching until all bad items are
+     found (instead of stopping after the first one). If the tool finds the same
+     item twice, that means no more bad items exist. This is because the item
+     was found, said item was put at the end of the list, and it was found
+     again. Because the binary search logic finds the bad item with the lowest
+     index, this means nothing in between the start of the list and the end of
+     the list is bad (thus no more bad items remain).
diff --git a/binary_search_tool/README.bisect b/binary_search_tool/README.bisect
new file mode 100644
index 0000000..e6185e8
--- /dev/null
+++ b/binary_search_tool/README.bisect
@@ -0,0 +1,213 @@
+
+bisect.py is a wrapper around the general purpose binary_search_state.py. It
+provides a user friendly interface for bisecting various compilation errors.
+The 2 currently provided methods of bisecting are ChromeOS package and object
+bisection. Each method defines a default set of options to pass to
+binary_search_state.py and allow the user to override these defaults (see
+the "Overriding" section).
+
+** NOTE **
+All commands, examples, scripts, etc. are to be run from your chroot unless
+stated otherwise.
+
+Bisection Methods:
+
+1) ChromeOS Package:
+  This method will bisect across all packages in a ChromeOS repository and find
+  the offending packages (according to your test script). This method takes the
+  following arguments:
+
+    board: The board to bisect on. For example: daisy, falco, etc.
+    remote: The IP address of the physical machine you're using to test with.
+
+  By default the ChromeOS package method will do a simple interactive test that
+  pings the machine and prompts the user if the machine is good.
+
+  a) Setup:
+    The ChromeOS package method requires that you have three build trees:
+
+      /build/${board}.bad  - The build tree for your "bad" build
+      /build/${board}.good - The build tree for your "good" build
+      /build/${board}.work - A full copy of /build/${board}.bad
+
+  b) Cleanup:
+    bisect.py does most cleanup for you, the only thing required by the user is
+    to cleanup all built images and the three build trees made in /build/
+
+  c) Default Arguments:
+    --get_initial_items='cros_pkg/get_initial_items.sh'
+    --switch_to_good='cros_pkg/switch_to_good.sh'
+    --switch_to_bad='cros_pkg/switch_to_bad.sh'
+    --test_setup_script='cros_pkg/test_setup.sh'
+    --test_script='cros_pkg/interactive_test.sh'
+    --incremental
+    --prune
+    --file_args
+
+  d) Additional Documentation:
+    See ./cros_pkg/README.cros_pkg_triage for full documentation of ChromeOS
+    package bisection.
+
+  e) Examples:
+    i)  Basic interactive test package bisection, on daisy board:
+        ./bisect.py package daisy 172.17.211.184
+
+    ii) Basic boot test package bisection, on daisy board:
+        ./bisect.py package daisy 172.17.211.184 -t cros_pkg/boot_test.sh
+
+2) ChromeOS Object:
+  This method will bisect across all objects in a ChromeOS package and find
+  the offending objects (according to your test script). This method takes the
+  following arguments:
+
+    board: The board to bisect on. For example: daisy, falco, etc.
+    remote: The IP address of the physical machine you're using to test with.
+    package: The package to bisect with. For example: chromeos-chrome
+    dir: (Optional) the directory for your good/bad build trees. Defaults to
+         $BISECT_DIR or /tmp/sysroot_bisect. This value will set $BISECT_DIR
+         for all bisecting scripts.
+
+  By default the ChromeOS object method will do a simple interactive test that
+  pings the machine and prompts the user if the machine is good.
+
+  a) Setup:
+    The ChromeOS package method requires that you populate your good and bad set
+    of objects. sysroot_wrapper will automatically detect the BISECT_STAGE
+    variable and use this to populate emerged objects. Here is an example:
+
+      # Defaults to /tmp/sysroot_bisect
+      export BISECT_DIR="/path/to/where/you/want/to/store/builds/"
+
+      export BISECT_STAGE="POPULATE_GOOD"
+      ./switch_to_good_compiler.sh
+      emerge-${board} -C ${package_to_bisect}
+      emerge-${board} ${package_to_bisect}
+
+      export BISECT_STAGE="POPULATE_BAD"
+      ./switch_to_bad_compiler.sh
+      emerge-${board} -C {package_to_bisect}
+      emerge-${board} ${package_to_bisect}
+
+  b) Cleanup:
+    The user must clean up all built images and the populated object files.
+
+  c) Default Arguments:
+    --get_initial_items='sysroot_wrapper/get_initial_items.sh'
+    --switch_to_good='sysroot_wrapper/switch_to_good.sh'
+    --switch_to_bad='sysroot_wrapper/switch_to_bad.sh'
+    --test_setup_script='sysroot_wrapper/test_setup.sh'
+    --test_script='sysroot_wrapper/interactive_test.sh'
+    --noincremental
+    --prune
+    --file_args
+
+  d) Additional Documentation:
+    See ./sysroot_wrapper/README for full documentation of ChromeOS object file
+    bisecting.
+
+  e) Examples:
+    i)  Basic interactive test object bisection, on daisy board for
+        cryptohome package:
+        ./bisect.py object daisy 172.17.211.184 cryptohome
+
+    ii) Basic boot test package bisection, on daisy board for cryptohome
+        package:
+        ./bisect.py object daisy 172.17.211.184 cryptohome \
+        --test_script=sysroot_wrapper/boot_test.sh
+
+3) Android object:
+  NOTE: Because this isn't a ChromeOS bisection tool, the concept of a
+        chroot doesn't exist. Just run this tool from a normal shell.
+
+  This method will bisect across all objects in the Android source tree and
+  find the offending objects (according to your test script). This method takes
+  the following arguments:
+
+    android_src: The location of your android source tree
+    num_jobs: (Optional) The number of jobs to pass to make. This is dependent
+              on how many cores your machine has. A good number is probably
+	      somewhere around 5 to 10.
+    device_id: (Optional) The serial code for the device you are testing on.
+               This is used to determine which device should be used in case
+	       multiple devices are plugged into your computer. You can get
+	       serial code for your device by running "adb devices".
+    dir: (Optional) the directory for your good/bad build trees. Defaults to
+         $BISECT_DIR or ~/ANDROID_BISECT/. This value will set $BISECT_DIR
+         for all bisecting scripts.
+
+  By default the Android object method will do a simple interactive test that
+  pings the machine and prompts the user if the machine is good.
+
+  a) Setup:
+    The Android object method requires that you populate your good and bad set
+    of objects. The Android compiler wrapper will automatically detect the
+    BISECT_STAGE variable and use this to populate emerged objects. Here is an
+    example:
+
+      # Defaults to ~/ANDROID_BISECT/
+      export BISECT_DIR="/path/to/where/you/want/to/store/builds/"
+
+      export BISECT_STAGE="POPULATE_GOOD"
+      # Install the "good" compiler
+      ./switch_to_good_compiler.sh
+      make clean
+      make -j <your_preferred_number_of_jobs>
+
+      export BISECT_STAGE="POPULATE_BAD"
+      # Install the "bad" compiler
+      ./switch_to_bad_compiler.sh
+      make clean
+      make -j <your_preferred_number_of_jobs>
+
+  b) Cleanup:
+    The user must clean up all built images and the populated object files.
+
+  c) Default Arguments:
+    --get_initial_items='android/get_initial_items.sh'
+    --switch_to_good='android/switch_to_good.sh'
+    --switch_to_bad='android/switch_to_bad.sh'
+    --test_setup_script='android/test_setup.sh'
+    --test_script='android/interactive_test.sh'
+    --incremental
+    --prune
+    --file_args
+
+  d) Additional Documentation:
+    See ./android/README.android for full documentation of Android object file
+    bisecting.
+
+  e) Examples:
+    i)  Basic interactive test android bisection, where the android source is
+        at ~/android_src:
+        ./bisect.py android ~/android_src
+
+    ii) Basic boot test android bisection, where the android source is at
+        ~/android_src, and 10 jobs will be used to build android:
+        ./bisect.py android ~/android_src --num_jobs=10 \
+        --test_script=sysroot_wrapper/boot_test.sh
+
+Resuming:
+  bisect.py and binary_search_state.py offer the ability to resume a bisection
+  in case it was interrupted by a SIGINT, power failure, etc. Every time the
+  tool completes a bisection iteration its state is saved to disk (usually to
+  the file "./bisect.py.state"). If passed the --resume option, the tool
+  it will automatically detect the state file and resume from the last
+  completed iteration.
+
+Overriding:
+  You can run ./bisect.py --help or ./binary_search_state.py --help for a full
+  list of arguments that can be overriden. Here are a couple of examples:
+
+  Example 1 (do boot test instead of interactive test):
+  ./bisect.py package daisy 172.17.211.182 --test_script=cros_pkg/boot_test.sh
+
+  Example 2 (do package bisector system test instead of interactive test, this
+             is used to test the bisecting tool itself -- see comments in
+             hash_test.sh for more details):
+  ./bisect.py package daisy 172.17.211.182 \
+    --test_script=common/hash_test.sh --test_setup_script=""
+
+  Example 3 (enable verbose mode, disable pruning, and disable verification):
+  ./bisect.py package daisy 172.17.211.182 \
+  --verbose --prune=False --verify=False
+
diff --git a/binary_search_tool/__init__.py b/binary_search_tool/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/binary_search_tool/__init__.py
@@ -0,0 +1 @@
+
diff --git a/binary_search_tool/android/README.android b/binary_search_tool/android/README.android
new file mode 100644
index 0000000..9e518f6
--- /dev/null
+++ b/binary_search_tool/android/README.android
@@ -0,0 +1,186 @@
+
+binary_search_state.py is a general binary search triage tool that
+performs a binary search on a set of things to try to identify which
+thing or thing(s) in the set is 'bad'.  binary_search_state.py assumes
+that the user has two sets, one where everything is known to be good,
+and one which contains at least one bad item.  binary_search_state.py
+then copies items from the good and bad sets into a working set and
+tests the result (good or bad).  binary_search_state.py requires that
+a set of scripts be supplied to it for any particular job.  For more
+information on binary_search_state.py, see
+
+https://sites.google.com/a/google.com/chromeos-toolchain-team-home2/home/team-tools-and-scripts/binary-searcher-tool-for-triage
+
+This particular set of scripts is designed to work wtih
+binary_search_state.py in order to find the bad object or set of
+bad objects in an Android build.
+
+
+QUICKSTART:
+
+After setting up your 2 build trees (see Prerequisites section), do the
+following:
+
+ - Decide which test script to use (boot_test.sh or
+   interactive_test.sh)
+ - Get the serial number for the Android device you will use for testing.
+ - Run the following:
+
+   $ cd <android_src>
+   $ source build/envsetup.sh
+   $ lunch <android_device_lunch_combo>
+   $ cd <path_to_toolchain_utils>/binary_search_tool/
+   $ NUM_JOBS=10 ANDROID_SERIAL=<device_serial> \
+         ./android/setup.sh <android_src>
+
+   If you chose the boot test, then:
+   TEST_SCRIPT=android/boot_test.sh
+
+   If you chose the interactive test, then:
+   TEST_SCRIPT=android/interactive_test.sh
+
+   Finally, run the binary search tool:
+
+   $ python ./binary_search_state.py \
+       --get_initial_items=android/get_initial_items.sh \
+       --switch_to_good=android/switch_to_good.sh \
+       --switch_to_bad=android/switch_to_bad.sh \
+       --test_setup_script=android/test_setup.sh \
+       --test_script=$TEST_SCRIPT \
+       --file_args \
+       --prune
+
+   Once you have completely finished doing the binary search/triage,
+   run the cleanup script:
+
+   $ android/cleanup.sh
+
+
+
+FILES AND SCRIPTS:
+
+  Check the header comments for each script for more in depth documentation.
+
+  boot_test.sh - One of two possible test scripts used to determine
+                 if the Android image built from the objects is good
+                 or bad. This script tests to see if the image
+                 booted, and requires no user intervention.
+
+  cleanup.sh - This is called after the binary search tool completes. This
+               script will clean up the common.sh file generated by setup.sh
+
+  get_initial_items.sh - This script is used to determine all Android objects
+                         that will be bisected.
+
+  test_setup.sh - This script will build and flash your image to the
+                  Android device. If the flash fails, this script will
+                  help the user troubleshoot by trying to flash again or
+                  by asking the user to manually flash it.
+
+  interactive_test.sh - One of two possible scripts used to determine
+                        if the Android image built from the objects
+                        is good or bad.  This script requires user
+                        interaction to determine if the image is
+                        good or bad.
+
+  setup.sh - This is the first script the user should call, after
+             taking care of the prerequisites.  It sets up the
+             environment appropriately for running the Android
+             object binary search triage, and it generates the
+             necessary common script (see below).
+
+  switch_to_bad.sh - This script is used to link objects from the
+                     'bad' build tree into the work area.
+
+  switch_to_good.sh - This script is used to link objects from the
+                      'good' build tree into the work area.
+
+
+GENERATED SCRIPTS:
+
+  common.sh  - contains basic environment variable definitions for
+               this binary search triage session.
+
+ASSUMPTIONS:
+
+- There are two different Android builds, for the same board/lunch combo with
+  the same set of generated object files.  One build creates a good working
+  Android image and the other does not.
+
+- The toolchain bug you are tracking down is not related to the linker. If the
+  linker is broken or generates bad code, this tool is unlikely to help you.
+
+
+PREREQUISITES FOR USING THESE SCRIPTS:
+
+  Step 1: Decide where to store each build tree
+    By default, each build tree is stored in "~/ANDROID_BISECT". However you
+    can override this by exporting BISECT_DIR set to whatever directory you
+    please. Keep in mind these build trees take dozens of gigabytes each.
+
+  Step 2: Setup your android build environment
+    1. `cd <android_src>`
+    2. `source build/envsetup.sh`
+    3. `lunch <android_device_lunch_combo>`
+
+  Step 3: Populate the good build tree
+    1. `make clean`
+    2. `export BISECT_STAGE=POPULATE_GOOD`
+    3. Install your "good" toolchain in Android, this will most likely be
+       the toolchain that comes preinstalled with the Android source.
+    4. Build all of Android: `make -j10`. The "-j" parameter depends on how
+       many cores your machine has. See Android documentation for more details.
+
+  Step 4: Populate the bad build tree
+    1. `make clean`
+    2. `export BISECT_STAGE=POPULATE_BAD`
+    3. Install your "bad" toolchain in Android.
+    4. Build all of Android again.
+
+  Step 5: Run the android setup script
+    1. `cd <path_to_toolchain_utils>/binary_search_tool/`
+    2. `NUM_JOBS=<jobs> ANDROID_SERIAL=<android_serial_num> \
+        android/setup.sh <android_src>`
+
+   WARNING: It's important that you leave the full "out/" directory in your
+            Android source alone after Step 4. The binary search tool will
+            use this directory as a skeleton to build each test image while
+            triaging.
+
+USING THESE SCRIPTS FOR BINARY TRIAGE OF OBJECTS:
+
+To use these scripts, you must first run setup.sh, passing it the path to your
+Android source directory. setup.sh will do the following:
+
+   - Verify that your build trees are set up correctly (with good, bad).
+   - Verify that each build tree has the same contents.
+   - Verify that the android build environment (lunch, etc.) are setup in your
+     current shell.
+   - Create the common.sh file that the other scripts passed to the
+     binary triage tool will need.
+
+
+This set of scripts comes with two alternate test scripts.  One test
+script, boot_test.sh, just checks to make sure that the image
+booted (wait for device to boot to home screen) and assumes that is enough.
+The other test script, interactive_test.sh, is interactive and asks YOU
+to tell it whether the image on the android device is ok or not (it
+prompts you and waits for a response).
+
+
+Once you have run setup.sh (and decided which test script you
+want to use) run the binary triage tool using these scripts to
+isolate/identify the bad object:
+
+./binary_search_state.py \
+ --get_initial_items=android/get_initial_items.sh \
+ --switch_to_good=android/switch_to_good.sh \
+ --switch_to_bad=android/switch_to_bad.sh \
+ --test_setup_script=android/test_setup.sh \
+ --test_script=android/boot_test.sh \  # could use interactive_test.sh instead
+ --prune
+
+
+After you have finished running the tool and have identified the bad
+object(s), you will want to run the cleanup script (android/cleanup.sh).
+
diff --git a/binary_search_tool/android/boot_test.sh b/binary_search_tool/android/boot_test.sh
new file mode 100755
index 0000000..dc87160
--- /dev/null
+++ b/binary_search_tool/android/boot_test.sh
@@ -0,0 +1,61 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script pings the android device to determine if it successfully booted.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android source tree. It
+# waits for the test setup script to build and install the image, then checks
+# if image boots or not. It should return '0' if the test succeeds
+# (the image is 'good'); '1' if the test fails (the image is 'bad'); and '125'
+# if it could not determine (does not apply in this case).
+#
+
+source android/common.sh
+
+# Check if boot animation has stopped and trim whitespace
+is_booted()
+{
+  # Wait for boot animation to stop and trim whitespace
+  status=`adb shell getprop init.svc.bootanim | tr -d '[:space:]'`
+  [[ "$status" == "stopped" ]]
+  return $?
+}
+
+# Wait for device to boot, retry every 1s
+# WARNING: Do not run without timeout command, could run forever
+wait_for_boot()
+{
+  while ! is_booted
+  do
+    sleep 1
+  done
+}
+
+echo "Waiting 60 seconds for device to come online..."
+timeout 60 adb wait-for-device
+retval=$?
+
+if [[ ${retval} -eq 0 ]]; then
+  echo "Android image has been built and installed."
+else
+  echo "Device failed to reboot within 60 seconds."
+  exit 1
+fi
+
+echo "Waiting 60 seconds for device to finish boot..."
+# Spawn subshell that will timeout in 60 seconds
+# Feed to cat so that timeout will recognize it as a command
+# (timeout only works for commands/programs, not functions)
+timeout 60 cat <(wait_for_boot)
+retval=$?
+
+if [[ ${retval} -eq 0 ]]; then
+  echo "Android device fully booted!"
+else
+  echo "Device failed to fully boot within 60 seconds."
+  exit 1
+fi
+
+exit ${retval}
diff --git a/binary_search_tool/android/cleanup.sh b/binary_search_tool/android/cleanup.sh
new file mode 100755
index 0000000..c89c337
--- /dev/null
+++ b/binary_search_tool/android/cleanup.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is part of the Android binary search triage process.
+# It should be the last script called by the user, after the user has
+# successfully run the bisection tool and found their bad items. This script
+# will perform all necessary cleanup for the bisection tool.
+#
+
+rm android/common.sh
diff --git a/binary_search_tool/android/get_initial_items.sh b/binary_search_tool/android/get_initial_items.sh
new file mode 100755
index 0000000..2a1eda3
--- /dev/null
+++ b/binary_search_tool/android/get_initial_items.sh
@@ -0,0 +1,14 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android source tree.  This script
+# generates the list of current Android object files, that is then used
+# for doing the binary search.
+#
+
+source android/common.sh
+
+cat ${BISECT_GOOD_BUILD}/_LIST
+
diff --git a/binary_search_tool/android/interactive_test.sh b/binary_search_tool/android/interactive_test.sh
new file mode 100755
index 0000000..e506b23
--- /dev/null
+++ b/binary_search_tool/android/interactive_test.sh
@@ -0,0 +1,39 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script pings the android device to determine if it successfully booted.
+# It then asks the user if the image is good or not, allowing the user to
+# conduct whatever tests the user wishes, and waiting for a response.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android source tree. It
+# waits for the test setup script to build and install the image, then asks the
+# user if the image is good or not. It should return '0' if the test succeeds
+# (the image is 'good'); '1' if the test fails (the image is 'bad'); and '125'
+# if it could not determine (does not apply in this case).
+#
+
+source android/common.sh
+
+echo "Waiting 60 seconds for device to boot..."
+timeout 60 adb wait-for-device
+retval=$?
+
+if [[ ${retval} -eq 0 ]]; then
+  echo "Android image has been built and installed."
+else
+  echo "Device failed to reboot within 60 seconds."
+  exit 1
+fi
+
+while true; do
+  read -p "Is this a good Android image?" yn
+  case $yn in
+    [Yy]* ) exit 0;;
+    [Nn]* ) exit 1;;
+    * ) echo "Please answer yes or no.";;
+  esac
+done
+
+exit 125
diff --git a/binary_search_tool/android/setup.sh b/binary_search_tool/android/setup.sh
new file mode 100755
index 0000000..7f8ba0e
--- /dev/null
+++ b/binary_search_tool/android/setup.sh
@@ -0,0 +1,147 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is part of the Android binary search triage process.
+# It should be the first script called by the user, after the user has set up
+# the two necessary build tree directories (see the prerequisites section of
+# README.android).
+#
+# WARNING:
+#   Before running this script make sure you have setup the Android build
+#   environment in this shell (i.e. successfully run 'lunch').
+#
+# This script takes three arguments.  The first argument must be the path of
+# the android source tree being tested. The second (optional) argument is the
+# device ID for fastboot/adb so the test device can be uniquely indentified in
+# case multiple phones are plugged in. The final (optional) argument is the
+# number of jobs that various programs can use for parallelism
+# (make, xargs, etc.). There is also the argument for bisection directory, but
+# this is not strictly an argument for just this script (as it should be set
+# during the POPULATE_GOOD and POPULATE_BAD steps, see README.android for
+# details).
+#
+# Example call:
+#   ANDROID_SERIAL=002ee16b1558a3d3 NUM_JOBS=10 android/setup.sh ~/android
+#
+#   This will setup the bisector for Nexus5X, using 10 jobs, where the android
+#   source lives at ~/android.
+#
+# NOTE: ANDROID_SERIAL is actually an option used by ADB. You can also simply
+# do 'export ANDROID_SERIAL=<device_id>' and the bisector will still work.
+# Furthermore, if your device is the only Android device plugged in you can
+# ignore ANDROID_SERIAL.
+#
+# This script sets all necessary environment variables, and ensures the
+# environment for the binary search triage process is setup properly. In
+# addition, this script generates common.sh, which generates enviroment
+# variables used by the other scripts in the package binary search triage process.
+#
+
+#
+# Positional arguments
+#
+
+ANDROID_SRC=$1
+
+#
+# Optional arguments
+#
+
+# If DEVICE_ID is not null export this as ANDROID_SERIAL for use by adb
+# If DEVICE_ID is null then leave null
+DEVICE_ID=${ANDROID_SERIAL:+"export ANDROID_SERIAL=${ANDROID_SERIAL} "}
+
+NUM_JOBS=${NUM_JOBS:-"1"}
+BISECT_ANDROID_DIR=${BISECT_DIR:-~/ANDROID_BISECT}
+
+#
+# Set up basic variables.
+#
+
+GOOD_BUILD=${BISECT_ANDROID_DIR}/good
+BAD_BUILD=${BISECT_ANDROID_DIR}/bad
+WORK_BUILD=${ANDROID_SRC}
+
+#
+# Verify that the necessary directories exist.
+#
+
+if [[ ! -d ${GOOD_BUILD} ]] ; then
+  echo "Error:  ${GOOD_BUILD} does not exist."
+  exit 1
+fi
+
+if [[ ! -d ${BAD_BUILD} ]] ; then
+  echo "Error:  ${BAD_BUILD} does not exist."
+  exit 1
+fi
+
+if [[ ! -d ${WORK_BUILD} ]] ; then
+  echo "Error:  ${WORK_BUILD} does not exist."
+  exit 1
+fi
+
+#
+# Verify that good/bad object lists are the same
+#
+
+good_list=`mktemp`
+bad_list=`mktemp`
+sort ${GOOD_BUILD}/_LIST > good_list
+sort ${BAD_BUILD}/_LIST > bad_list
+
+diff good_list bad_list
+diff_result=$?
+rm good_list bad_list
+
+if [ ${diff_result} -ne 0 ]; then
+  echo "Error: good and bad object lists differ."
+  echo "diff exited with non-zero status: ${diff_result}"
+  exit 1
+fi
+
+#
+# Ensure android build environment is setup
+#
+# ANDROID_PRODUCT_OUT is only set once lunch is successfully executed. Fail if
+# ANDROID_PRODUCT_OUT is unset.
+#
+
+if [ -z ${ANDROID_PRODUCT_OUT+0} ]; then
+  echo "Error: Android build environment is not setup."
+  echo "cd to ${ANDROID_SRC} and do the following:"
+  echo "  source build/envsetup.sh"
+  echo "  lunch <device_lunch_combo>"
+  exit 1
+fi
+
+#
+# Create common.sh file, containing appropriate environment variables.
+#
+
+COMMON_FILE="android/common.sh"
+
+cat <<-EOF > ${COMMON_FILE}
+
+BISECT_ANDROID_DIR=${BISECT_ANDROID_DIR}
+
+BISECT_ANDROID_SRC=${ANDROID_SRC}
+BISECT_NUM_JOBS=${NUM_JOBS}
+
+BISECT_GOOD_BUILD=${GOOD_BUILD}
+BISECT_BAD_BUILD=${BAD_BUILD}
+BISECT_WORK_BUILD=${WORK_BUILD}
+
+BISECT_GOOD_SET=${GOOD_BUILD}/_LIST
+BISECT_BAD_SET=${BAD_BUILD}/_LIST
+
+${DEVICE_ID}
+
+export BISECT_STAGE="TRIAGE"
+
+EOF
+
+chmod 755 ${COMMON_FILE}
+
+exit 0
diff --git a/binary_search_tool/android/switch_to_bad.sh b/binary_search_tool/android/switch_to_bad.sh
new file mode 100755
index 0000000..f746b62
--- /dev/null
+++ b/binary_search_tool/android/switch_to_bad.sh
@@ -0,0 +1,42 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android source tree.  This script
+# symlinks a list of object files from the 'bad' build tree into the working
+# build tree, for testing.
+#
+# It is highly recommended to not use --noincremental with these scripts. If the
+# switch scripts are given non incremental sets of GOOD/BAD objects, make will
+# not be able to do an incremental build and will take much longer to build.
+#
+
+
+source android/common.sh
+
+OBJ_LIST_FILE=$1
+
+# Symlink from BAD obj to working tree.
+SWITCH_CMD="ln -f ${BISECT_BAD_BUILD}/{} {}; touch {};"
+
+overall_status=0
+
+# Check that number of arguments == 1
+if [ $# -eq 1 ] ; then
+  # Run symlink once per input line, ignore empty lines.
+  # Have ${BISECT_NUM_JOBS} processes running concurrently.
+  # Pass to "sh" to allow multiple commands to be executed.
+  xargs -P ${BISECT_NUM_JOBS} -a ${OBJ_LIST_FILE} -r -l -I '{}' \
+    sh -c "${SWITCH_CMD}"
+else
+  echo "ERROR:"
+  echo "Please run the binary search tool with --file_args"
+  echo "Android has too many files to be passed as command line arguments"
+  echo "The binary search tool will now exit..."
+  exit 1
+fi
+overall_status=$?
+
+
+exit ${overall_status}
diff --git a/binary_search_tool/android/switch_to_good.sh b/binary_search_tool/android/switch_to_good.sh
new file mode 100755
index 0000000..1c046c3
--- /dev/null
+++ b/binary_search_tool/android/switch_to_good.sh
@@ -0,0 +1,41 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android source tree.  This script
+# symlinks a list of object files from the 'good' build tree into the working
+# build tree, for testing.
+#
+# It is highly recommended to not use --noincremental with these scripts. If the
+# switch scripts are given non incremental sets of GOOD/BAD objects, make will
+# not be able to do an incremental build and will take much longer to build.
+#
+
+source android/common.sh
+
+OBJ_LIST_FILE=$1
+
+# Symlink from GOOD obj to working tree.
+SWITCH_CMD="ln -f ${BISECT_GOOD_BUILD}/{} {}; touch {};"
+
+overall_status=0
+
+# Check that number of arguments == 1
+if [ $# -eq 1 ] ; then
+  # Run symlink once per input line, ignore empty lines.
+  # Have ${BISECT_NUM_JOBS} processes running concurrently.
+  # Pass to "sh" to allow multiple commands to be executed.
+  xargs -P ${BISECT_NUM_JOBS} -a ${OBJ_LIST_FILE} -r -l -I '{}' \
+    sh -c "${SWITCH_CMD}"
+else
+  echo "ERROR:"
+  echo "Please run the binary search tool with --file_args"
+  echo "Android has too many files to be passed as command line arguments"
+  echo "The binary search tool will now exit..."
+  exit 1
+fi
+overall_status=$?
+
+
+exit ${overall_status}
diff --git a/binary_search_tool/android/test_setup.sh b/binary_search_tool/android/test_setup.sh
new file mode 100755
index 0000000..26f8ec2
--- /dev/null
+++ b/binary_search_tool/android/test_setup.sh
@@ -0,0 +1,130 @@
+#!/bin/bash
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This is the test setup script for generating an Android image based off the
+# current working build tree. make is called to relink the object files and
+# generate the new Android image to be flashed. The device is then rebooted into
+# bootloader mode and fastboot is used to flash the new image. The device is
+# then rebooted so the user's test script can run.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android source tree. It should
+# return '0' if the setup succeeds; and '1' if the setup fails (the image
+# could not build or be flashed).
+#
+
+source android/common.sh
+
+manual_flash()
+{
+  echo
+  echo "Please manually flash the built image to your device."
+  echo "To do so follow these steps:"
+  echo "  1. Boot your device into fastboot mode."
+  echo "  2. cd to '${BISECT_ANDROID_SRC}'"
+  echo "  2. Run 'source build/envsetup.sh'"
+  echo "  3. Run 'lunch'"
+  echo "  4. Run '${ADB_DEVICE}fastboot flashall -w'"
+  echo "Or see the following link for more in depth steps:"
+  echo "https://source.android.com/source/running.html"
+  echo
+  while true; do
+    sleep 1
+    read -p "Was the flashing of the image successful? " choice
+    case $choice in
+      [Yy]*) return 0;;
+      [Nn]*) return 1;;
+      *) echo "Please answer y or n.";;
+    esac
+  done
+}
+
+auto_flash()
+{
+  echo
+  echo "Please ensure your Android device is on and in fastboot mode so"
+  echo "fastboot flash may run."
+  echo
+  sleep 1
+  read -p $'Press enter to continue and retry the flashing' notused
+
+  echo "  ${ADB_DEVICE}fastboot flashall -w"
+  fastboot flashall -w
+}
+
+flash()
+{
+  echo
+  echo "FLASHING"
+  echo "Rebooting device into fastboot mode."
+  echo "  ${ADB_DEVICE}adb reboot bootloader"
+  adb reboot bootloader
+
+  echo
+  echo "Waiting for device to reach fastboot mode."
+  echo "(will timeout after 60 seconds)"
+  # fastboot will block indefinitely until device comes online.
+  # Grab random variable to test if device is online.
+  # If takes >60s then we error out and ask the user for help.
+  timeout 60 fastboot getvar 0 2>/dev/null
+  fastboot_flash_status=$?
+
+  if [[ ${fastboot_flash_status} -eq 0 ]]; then
+    echo
+    echo "Flashing image."
+    echo "  ${ADB_DEVICE}fastboot flashall -w"
+    fastboot flashall -w
+    fastboot_flash_status=$?
+  fi
+
+  while [[ ${fastboot_flash_status} -ne 0 ]] ; do
+    echo
+    echo "fastboot flash has failed! From here you can:"
+    echo "1. Debug and/or flash manually"
+    echo "2. Retry flashing automatically"
+    echo "3. Abort this installation and skip this image"
+    echo "4. Abort this installation and mark test as failed"
+    sleep 1
+    read -p "Which method would you like to do? " choice
+    case $choice in
+      1) manual_flash && break;;
+      2) auto_flash && break;;
+      3) return 125;;
+      4) return 1;;
+      *) echo "Please answer 1, 2, 3, or 4.";;
+    esac
+  done
+}
+
+# Number of jobs make will use. Can be customized and played with.
+MAKE_JOBS=${BISECT_NUM_JOBS}
+
+# Set ADB_DEVICE to "ANDROID_SERIAL=${ANDROID_SERIAL}" or "" if device id not
+# set. This is used for debugging info so users can confirm which device
+# commands are being sent to.
+ADB_DEVICE=${ANDROID_SERIAL:+"ANDROID_SERIAL=${ANDROID_SERIAL} "}
+
+echo
+echo "INSTALLATION BEGIN"
+echo
+
+cd ${BISECT_ANDROID_SRC}
+
+echo "BUILDING IMAGE"
+
+make -j ${MAKE_JOBS}
+make_status=$?
+
+exit_val=0
+if [[ ${make_status} -eq 0 ]]; then
+  flash
+  exit_val=$?
+else
+  echo "ERROR:"
+  echo "make returned a non-zero status: ${make_status}. Skipping image..."
+  exit_val=1
+fi
+
+
+exit ${exit_val}
diff --git a/binary_search_tool/binary_search_perforce.py b/binary_search_tool/binary_search_perforce.py
new file mode 100755
index 0000000..7ac2fba
--- /dev/null
+++ b/binary_search_tool/binary_search_perforce.py
@@ -0,0 +1,447 @@
+#!/usr/bin/python2
+"""Module of binary serch for perforce."""
+from __future__ import print_function
+
+import math
+import argparse
+import os
+import re
+import sys
+import tempfile
+
+from cros_utils import command_executer
+from cros_utils import logger
+
+verbose = True
+
+
+def _GetP4ClientSpec(client_name, p4_paths):
+  p4_string = ''
+  for p4_path in p4_paths:
+    if ' ' not in p4_path:
+      p4_string += ' -a %s' % p4_path
+    else:
+      p4_string += " -a \"" + (' //' + client_name + '/').join(p4_path) + "\""
+
+  return p4_string
+
+
+def GetP4Command(client_name, p4_port, p4_paths, checkoutdir, p4_snapshot=''):
+  command = ''
+
+  if p4_snapshot:
+    command += 'mkdir -p ' + checkoutdir
+    for p4_path in p4_paths:
+      real_path = p4_path[1]
+      if real_path.endswith('...'):
+        real_path = real_path.replace('/...', '')
+        command += (
+            '; mkdir -p ' + checkoutdir + '/' + os.path.dirname(real_path))
+        command += ('&& rsync -lr ' + p4_snapshot + '/' + real_path + ' ' +
+                    checkoutdir + '/' + os.path.dirname(real_path))
+    return command
+
+  command += ' export P4CONFIG=.p4config'
+  command += ' && mkdir -p ' + checkoutdir
+  command += ' && cd ' + checkoutdir
+  command += ' && cp ${HOME}/.p4config .'
+  command += ' && chmod u+w .p4config'
+  command += " && echo \"P4PORT=" + p4_port + "\" >> .p4config"
+  command += " && echo \"P4CLIENT=" + client_name + "\" >> .p4config"
+  command += (' && g4 client ' + _GetP4ClientSpec(client_name, p4_paths))
+  command += ' && g4 sync '
+  command += ' && cd -'
+  return command
+
+
+class BinarySearchPoint(object):
+  """Class of binary search point."""
+
+  def __init__(self, revision, status, tag=None):
+    self.revision = revision
+    self.status = status
+    self.tag = tag
+
+
+class BinarySearcher(object):
+  """Class of binary searcher."""
+
+  def __init__(self, logger_to_set=None):
+    self.sorted_list = []
+    self.index_log = []
+    self.status_log = []
+    self.skipped_indices = []
+    self.current = 0
+    self.points = {}
+    self.lo = 0
+    self.hi = 0
+    if logger_to_set is not None:
+      self.logger = logger_to_set
+    else:
+      self.logger = logger.GetLogger()
+
+  def SetSortedList(self, sorted_list):
+    assert len(sorted_list) > 0
+    self.sorted_list = sorted_list
+    self.index_log = []
+    self.hi = len(sorted_list) - 1
+    self.lo = 0
+    self.points = {}
+    for i in range(len(self.sorted_list)):
+      bsp = BinarySearchPoint(self.sorted_list[i], -1, 'Not yet done.')
+      self.points[i] = bsp
+
+  def SetStatus(self, status, tag=None):
+    message = ('Revision: %s index: %d returned: %d' %
+               (self.sorted_list[self.current], self.current, status))
+    self.logger.LogOutput(message, print_to_console=verbose)
+    assert status == 0 or status == 1 or status == 125
+    self.index_log.append(self.current)
+    self.status_log.append(status)
+    bsp = BinarySearchPoint(self.sorted_list[self.current], status, tag)
+    self.points[self.current] = bsp
+
+    if status == 125:
+      self.skipped_indices.append(self.current)
+
+    if status == 0 or status == 1:
+      if status == 0:
+        self.lo = self.current + 1
+      elif status == 1:
+        self.hi = self.current
+      self.logger.LogOutput('lo: %d hi: %d\n' % (self.lo, self.hi))
+      self.current = (self.lo + self.hi) / 2
+
+    if self.lo == self.hi:
+      message = ('Search complete. First bad version: %s'
+                 ' at index: %d' % (self.sorted_list[self.current], self.lo))
+      self.logger.LogOutput(message)
+      return True
+
+    for index in range(self.lo, self.hi):
+      if index not in self.skipped_indices:
+        return False
+    self.logger.LogOutput(
+        'All skipped indices between: %d and %d\n' % (self.lo, self.hi),
+        print_to_console=verbose)
+    return True
+
+  # Does a better job with chromeos flakiness.
+  def GetNextFlakyBinary(self):
+    t = (self.lo, self.current, self.hi)
+    q = [t]
+    while len(q):
+      element = q.pop(0)
+      if element[1] in self.skipped_indices:
+        # Go top
+        to_add = (element[0], (element[0] + element[1]) / 2, element[1])
+        q.append(to_add)
+        # Go bottom
+        to_add = (element[1], (element[1] + element[2]) / 2, element[2])
+        q.append(to_add)
+      else:
+        self.current = element[1]
+        return
+    assert len(q), 'Queue should never be 0-size!'
+
+  def GetNextFlakyLinear(self):
+    current_hi = self.current
+    current_lo = self.current
+    while True:
+      if current_hi < self.hi and current_hi not in self.skipped_indices:
+        self.current = current_hi
+        break
+      if current_lo >= self.lo and current_lo not in self.skipped_indices:
+        self.current = current_lo
+        break
+      if current_lo < self.lo and current_hi >= self.hi:
+        break
+
+      current_hi += 1
+      current_lo -= 1
+
+  def GetNext(self):
+    self.current = (self.hi + self.lo) / 2
+    # Try going forward if current is skipped.
+    if self.current in self.skipped_indices:
+      self.GetNextFlakyBinary()
+
+    # TODO: Add an estimated time remaining as well.
+    message = ('Estimated tries: min: %d max: %d\n' %
+               (1 + math.log(self.hi - self.lo, 2),
+                self.hi - self.lo - len(self.skipped_indices)))
+    self.logger.LogOutput(message, print_to_console=verbose)
+    message = ('lo: %d hi: %d current: %d version: %s\n' %
+               (self.lo, self.hi, self.current, self.sorted_list[self.current]))
+    self.logger.LogOutput(message, print_to_console=verbose)
+    self.logger.LogOutput(str(self), print_to_console=verbose)
+    return self.sorted_list[self.current]
+
+  def SetLoRevision(self, lo_revision):
+    self.lo = self.sorted_list.index(lo_revision)
+
+  def SetHiRevision(self, hi_revision):
+    self.hi = self.sorted_list.index(hi_revision)
+
+  def GetAllPoints(self):
+    to_return = ''
+    for i in range(len(self.sorted_list)):
+      to_return += ('%d %d %s\n' % (self.points[i].status, i,
+                                    self.points[i].revision))
+
+    return to_return
+
+  def __str__(self):
+    to_return = ''
+    to_return += 'Current: %d\n' % self.current
+    to_return += str(self.index_log) + '\n'
+    revision_log = []
+    for index in self.index_log:
+      revision_log.append(self.sorted_list[index])
+    to_return += str(revision_log) + '\n'
+    to_return += str(self.status_log) + '\n'
+    to_return += 'Skipped indices:\n'
+    to_return += str(self.skipped_indices) + '\n'
+    to_return += self.GetAllPoints()
+    return to_return
+
+
+class RevisionInfo(object):
+  """Class of reversion info."""
+
+  def __init__(self, date, client, description):
+    self.date = date
+    self.client = client
+    self.description = description
+    self.status = -1
+
+
+class VCSBinarySearcher(object):
+  """Class of VCS binary searcher."""
+
+  def __init__(self):
+    self.bs = BinarySearcher()
+    self.rim = {}
+    self.current_ce = None
+    self.checkout_dir = None
+    self.current_revision = None
+
+  def Initialize(self):
+    pass
+
+  def GetNextRevision(self):
+    pass
+
+  def CheckoutRevision(self, revision):
+    pass
+
+  def SetStatus(self, status):
+    pass
+
+  def Cleanup(self):
+    pass
+
+  def SetGoodRevision(self, revision):
+    if revision is None:
+      return
+    assert revision in self.bs.sorted_list
+    self.bs.SetLoRevision(revision)
+
+  def SetBadRevision(self, revision):
+    if revision is None:
+      return
+    assert revision in self.bs.sorted_list
+    self.bs.SetHiRevision(revision)
+
+
+class P4BinarySearcher(VCSBinarySearcher):
+  """Class of P4 binary searcher."""
+
+  def __init__(self, p4_port, p4_paths, test_command):
+    VCSBinarySearcher.__init__(self)
+    self.p4_port = p4_port
+    self.p4_paths = p4_paths
+    self.test_command = test_command
+    self.checkout_dir = tempfile.mkdtemp()
+    self.ce = command_executer.GetCommandExecuter()
+    self.client_name = 'binary-searcher-$HOSTNAME-$USER'
+    self.job_log_root = '/home/asharif/www/coreboot_triage/'
+    self.changes = None
+
+  def Initialize(self):
+    self.Cleanup()
+    command = GetP4Command(self.client_name, self.p4_port, self.p4_paths, 1,
+                           self.checkout_dir)
+    self.ce.RunCommand(command)
+    command = 'cd %s && g4 changes ...' % self.checkout_dir
+    _, out, _ = self.ce.RunCommandWOutput(command)
+    self.changes = re.findall(r'Change (\d+)', out)
+    change_infos = re.findall(r'Change (\d+) on ([\d/]+) by '
+                              r"([^\s]+) ('[^']*')", out)
+    for change_info in change_infos:
+      ri = RevisionInfo(change_info[1], change_info[2], change_info[3])
+      self.rim[change_info[0]] = ri
+    # g4 gives changes in reverse chronological order.
+    self.changes.reverse()
+    self.bs.SetSortedList(self.changes)
+
+  def SetStatus(self, status):
+    self.rim[self.current_revision].status = status
+    return self.bs.SetStatus(status)
+
+  def GetNextRevision(self):
+    next_revision = self.bs.GetNext()
+    self.current_revision = next_revision
+    return next_revision
+
+  def CleanupCLs(self):
+    if not os.path.isfile(self.checkout_dir + '/.p4config'):
+      command = 'cd %s' % self.checkout_dir
+      command += ' && cp ${HOME}/.p4config .'
+      command += " && echo \"P4PORT=" + self.p4_port + "\" >> .p4config"
+      command += " && echo \"P4CLIENT=" + self.client_name + "\" >> .p4config"
+      self.ce.RunCommand(command)
+    command = 'cd %s' % self.checkout_dir
+    command += '; g4 changes -c %s' % self.client_name
+    _, out, _ = self.ce.RunCommandWOUTPUOT(command)
+    changes = re.findall(r'Change (\d+)', out)
+    if len(changes) != 0:
+      command = 'cd %s' % self.checkout_dir
+      for change in changes:
+        command += '; g4 revert -c %s' % change
+      self.ce.RunCommand(command)
+
+  def CleanupClient(self):
+    command = 'cd %s' % self.checkout_dir
+    command += '; g4 revert ...'
+    command += '; g4 client -d %s' % self.client_name
+    self.ce.RunCommand(command)
+
+  def Cleanup(self):
+    self.CleanupCLs()
+    self.CleanupClient()
+
+  def __str__(self):
+    to_return = ''
+    for change in self.changes:
+      ri = self.rim[change]
+      if ri.status == -1:
+        to_return = '%s\t%d\n' % (change, ri.status)
+      else:
+        to_return += ('%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n' %
+                      (change, ri.status, ri.date, ri.client, ri.description,
+                       self.job_log_root + change + '.cmd',
+                       self.job_log_root + change + '.out',
+                       self.job_log_root + change + '.err'))
+    return to_return
+
+
+class P4GCCBinarySearcher(P4BinarySearcher):
+  """Class of P4 gcc binary searcher."""
+
+  # TODO: eventually get these patches from g4 instead of creating them manually
+  def HandleBrokenCLs(self, current_revision):
+    cr = int(current_revision)
+    problematic_ranges = []
+    problematic_ranges.append([44528, 44539])
+    problematic_ranges.append([44528, 44760])
+    problematic_ranges.append([44335, 44882])
+    command = 'pwd'
+    for pr in problematic_ranges:
+      if cr in range(pr[0], pr[1]):
+        patch_file = '/home/asharif/triage_tool/%d-%d.patch' % (pr[0], pr[1])
+        f = open(patch_file)
+        patch = f.read()
+        f.close()
+        files = re.findall('--- (//.*)', patch)
+        command += '; cd %s' % self.checkout_dir
+        for f in files:
+          command += '; g4 open %s' % f
+        command += '; patch -p2 < %s' % patch_file
+    self.current_ce.RunCommand(command)
+
+  def CheckoutRevision(self, current_revision):
+    job_logger = logger.Logger(
+        self.job_log_root, current_revision, True, subdir='')
+    self.current_ce = command_executer.GetCommandExecuter(job_logger)
+
+    self.CleanupCLs()
+    # Change the revision of only the gcc part of the toolchain.
+    command = ('cd %s/gcctools/google_vendor_src_branch/gcc '
+               '&& g4 revert ...; g4 sync @%s' %
+               (self.checkout_dir, current_revision))
+    self.current_ce.RunCommand(command)
+
+    self.HandleBrokenCLs(current_revision)
+
+
+def Main(argv):
+  """The main function."""
+  # Common initializations
+  ###  command_executer.InitCommandExecuter(True)
+  ce = command_executer.GetCommandExecuter()
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '-n',
+      '--num_tries',
+      dest='num_tries',
+      default='100',
+      help='Number of tries.')
+  parser.add_argument(
+      '-g',
+      '--good_revision',
+      dest='good_revision',
+      help='Last known good revision.')
+  parser.add_argument(
+      '-b',
+      '--bad_revision',
+      dest='bad_revision',
+      help='Last known bad revision.')
+  parser.add_argument(
+      '-s', '--script', dest='script', help='Script to run for every version.')
+  options = parser.parse_args(argv)
+  # First get all revisions
+  p4_paths = ['//depot2/gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/...',
+              '//depot2/gcctools/google_vendor_src_branch/binutils/'
+              'binutils-2.20.1-mobile/...',
+              '//depot2/gcctools/google_vendor_src_branch/'
+              'binutils/binutils-20100303/...']
+  p4gccbs = P4GCCBinarySearcher('perforce2:2666', p4_paths, '')
+
+  # Main loop:
+  terminated = False
+  num_tries = int(options.num_tries)
+  script = os.path.expanduser(options.script)
+
+  try:
+    p4gccbs.Initialize()
+    p4gccbs.SetGoodRevision(options.good_revision)
+    p4gccbs.SetBadRevision(options.bad_revision)
+    while not terminated and num_tries > 0:
+      current_revision = p4gccbs.GetNextRevision()
+
+      # Now run command to get the status
+      ce = command_executer.GetCommandExecuter()
+      command = '%s %s' % (script, p4gccbs.checkout_dir)
+      status = ce.RunCommand(command)
+      message = ('Revision: %s produced: %d status\n' %
+                 (current_revision, status))
+      logger.GetLogger().LogOutput(message, print_to_console=verbose)
+      terminated = p4gccbs.SetStatus(status)
+      num_tries -= 1
+      logger.GetLogger().LogOutput(str(p4gccbs), print_to_console=verbose)
+
+    if not terminated:
+      logger.GetLogger().LogOutput(
+          'Tries: %d expired.' % num_tries, print_to_console=verbose)
+    logger.GetLogger().LogOutput(str(p4gccbs.bs), print_to_console=verbose)
+  except (KeyboardInterrupt, SystemExit):
+    logger.GetLogger().LogOutput('Cleaning up...')
+  finally:
+    logger.GetLogger().LogOutput(str(p4gccbs.bs), print_to_console=verbose)
+    status = p4gccbs.Cleanup()
+
+
+if __name__ == '__main__':
+  Main(sys.argv[1:])
diff --git a/binary_search_tool/binary_search_state.py b/binary_search_tool/binary_search_state.py
new file mode 100755
index 0000000..a10e90b
--- /dev/null
+++ b/binary_search_tool/binary_search_state.py
@@ -0,0 +1,598 @@
+#!/usr/bin/python2
+"""The binary search wrapper."""
+
+from __future__ import print_function
+
+import argparse
+import contextlib
+import errno
+import math
+import os
+import pickle
+import sys
+import tempfile
+import time
+
+# Adds cros_utils to PYTHONPATH
+import common
+
+# Now we do import from cros_utils
+from cros_utils import command_executer
+from cros_utils import logger
+
+import binary_search_perforce
+
+GOOD_SET_VAR = 'BISECT_GOOD_SET'
+BAD_SET_VAR = 'BISECT_BAD_SET'
+
+STATE_FILE = '%s.state' % sys.argv[0]
+HIDDEN_STATE_FILE = os.path.join(
+    os.path.dirname(STATE_FILE), '.%s' % os.path.basename(STATE_FILE))
+
+
+class Error(Exception):
+  """The general binary search tool error class."""
+  pass
+
+
+@contextlib.contextmanager
+def SetFile(env_var, items):
+  """Generate set files that can be used by switch/test scripts.
+
+  Generate temporary set file (good/bad) holding contents of good/bad items for
+  the current binary search iteration. Store the name of each file as an
+  environment variable so all child processes can access it.
+
+  This function is a contextmanager, meaning it's meant to be used with the
+  "with" statement in Python. This is so cleanup and setup happens automatically
+  and cleanly. Execution of the outer "with" statement happens at the "yield"
+  statement.
+
+  Args:
+    env_var: What environment variable to store the file name in.
+    items: What items are in this set.
+  """
+  with tempfile.NamedTemporaryFile() as f:
+    os.environ[env_var] = f.name
+    f.write('\n'.join(items))
+    f.flush()
+    yield
+
+
+class BinarySearchState(object):
+  """The binary search state class."""
+
+  def __init__(self, get_initial_items, switch_to_good, switch_to_bad,
+               test_setup_script, test_script, incremental, prune, iterations,
+               prune_iterations, verify, file_args, verbose):
+    """BinarySearchState constructor, see Run for full args documentation."""
+    self.get_initial_items = get_initial_items
+    self.switch_to_good = switch_to_good
+    self.switch_to_bad = switch_to_bad
+    self.test_setup_script = test_setup_script
+    self.test_script = test_script
+    self.incremental = incremental
+    self.prune = prune
+    self.iterations = iterations
+    self.prune_iterations = prune_iterations
+    self.verify = verify
+    self.file_args = file_args
+    self.verbose = verbose
+
+    self.l = logger.GetLogger()
+    self.ce = command_executer.GetCommandExecuter()
+
+    self.resumed = False
+    self.prune_cycles = 0
+    self.search_cycles = 0
+    self.binary_search = None
+    self.all_items = None
+    self.PopulateItemsUsingCommand(self.get_initial_items)
+    self.currently_good_items = set([])
+    self.currently_bad_items = set([])
+    self.found_items = set([])
+    self.known_good = set([])
+
+    self.start_time = time.time()
+
+  def SwitchToGood(self, item_list):
+    """Switch given items to "good" set."""
+    if self.incremental:
+      self.l.LogOutput(
+          'Incremental set. Wanted to switch %s to good' % str(item_list),
+          print_to_console=self.verbose)
+      incremental_items = [
+          item for item in item_list if item not in self.currently_good_items
+      ]
+      item_list = incremental_items
+      self.l.LogOutput(
+          'Incremental set. Actually switching %s to good' % str(item_list),
+          print_to_console=self.verbose)
+
+    if not item_list:
+      return
+
+    self.l.LogOutput(
+        'Switching %s to good' % str(item_list), print_to_console=self.verbose)
+    self.RunSwitchScript(self.switch_to_good, item_list)
+    self.currently_good_items = self.currently_good_items.union(set(item_list))
+    self.currently_bad_items.difference_update(set(item_list))
+
+  def SwitchToBad(self, item_list):
+    """Switch given items to "bad" set."""
+    if self.incremental:
+      self.l.LogOutput(
+          'Incremental set. Wanted to switch %s to bad' % str(item_list),
+          print_to_console=self.verbose)
+      incremental_items = [
+          item for item in item_list if item not in self.currently_bad_items
+      ]
+      item_list = incremental_items
+      self.l.LogOutput(
+          'Incremental set. Actually switching %s to bad' % str(item_list),
+          print_to_console=self.verbose)
+
+    if not item_list:
+      return
+
+    self.l.LogOutput(
+        'Switching %s to bad' % str(item_list), print_to_console=self.verbose)
+    self.RunSwitchScript(self.switch_to_bad, item_list)
+    self.currently_bad_items = self.currently_bad_items.union(set(item_list))
+    self.currently_good_items.difference_update(set(item_list))
+
+  def RunSwitchScript(self, switch_script, item_list):
+    """Pass given items to switch script.
+
+    Args:
+      switch_script: path to switch script
+      item_list: list of all items to be switched
+    """
+    if self.file_args:
+      with tempfile.NamedTemporaryFile() as f:
+        f.write('\n'.join(item_list))
+        f.flush()
+        command = '%s %s' % (switch_script, f.name)
+        ret, _, _ = self.ce.RunCommandWExceptionCleanup(
+            command, print_to_console=self.verbose)
+    else:
+      command = '%s %s' % (switch_script, ' '.join(item_list))
+      try:
+        ret, _, _ = self.ce.RunCommandWExceptionCleanup(
+            command, print_to_console=self.verbose)
+      except OSError as e:
+        if e.errno == errno.E2BIG:
+          raise Error('Too many arguments for switch script! Use --file_args')
+        else:
+          raise
+    assert ret == 0, 'Switch script %s returned %d' % (switch_script, ret)
+
+  def TestScript(self):
+    """Run test script and return exit code from script."""
+    command = self.test_script
+    ret, _, _ = self.ce.RunCommandWExceptionCleanup(command)
+    return ret
+
+  def TestSetupScript(self):
+    """Run test setup script and return exit code from script."""
+    if not self.test_setup_script:
+      return 0
+
+    command = self.test_setup_script
+    ret, _, _ = self.ce.RunCommandWExceptionCleanup(command)
+    return ret
+
+  def DoVerify(self):
+    """Verify correctness of test environment.
+
+    Verify that a "good" set of items produces a "good" result and that a "bad"
+    set of items produces a "bad" result. To be run directly before running
+    DoSearch. If verify is False this step is skipped.
+    """
+    if not self.verify:
+      return
+
+    self.l.LogOutput('VERIFICATION')
+    self.l.LogOutput('Beginning tests to verify good/bad sets\n')
+
+    self._OutputProgress('Verifying items from GOOD set\n')
+    with SetFile(GOOD_SET_VAR, self.all_items), SetFile(BAD_SET_VAR, []):
+      self.l.LogOutput('Resetting all items to good to verify.')
+      self.SwitchToGood(self.all_items)
+      status = self.TestSetupScript()
+      assert status == 0, 'When reset_to_good, test setup should succeed.'
+      status = self.TestScript()
+      assert status == 0, 'When reset_to_good, status should be 0.'
+
+    self._OutputProgress('Verifying items from BAD set\n')
+    with SetFile(GOOD_SET_VAR, []), SetFile(BAD_SET_VAR, self.all_items):
+      self.l.LogOutput('Resetting all items to bad to verify.')
+      self.SwitchToBad(self.all_items)
+      status = self.TestSetupScript()
+      # The following assumption is not true; a bad image might not
+      # successfully push onto a device.
+      # assert status == 0, 'When reset_to_bad, test setup should succeed.'
+      if status == 0:
+        status = self.TestScript()
+      assert status == 1, 'When reset_to_bad, status should be 1.'
+
+  def DoSearch(self):
+    """Perform full search for bad items.
+
+    Perform full search until prune_iterations number of bad items are found.
+    """
+    while (True and len(self.all_items) > 1 and
+           self.prune_cycles < self.prune_iterations):
+      terminated = self.DoBinarySearch()
+      self.prune_cycles += 1
+      if not terminated:
+        break
+      # Prune is set.
+      prune_index = self.binary_search.current
+
+      # If found item is last item, no new items can be found
+      if prune_index == len(self.all_items) - 1:
+        self.l.LogOutput('First bad item is the last item. Breaking.')
+        self.l.LogOutput('Bad items are: %s' % self.all_items[-1])
+        break
+
+      # If already seen item we have no new bad items to find, finish up
+      if self.all_items[prune_index] in self.found_items:
+        self.l.LogOutput(
+            'Found item already found before: %s.' %
+            self.all_items[prune_index],
+            print_to_console=self.verbose)
+        self.l.LogOutput('No more bad items remaining. Done searching.')
+        self.l.LogOutput('Bad items are: %s' % ' '.join(self.found_items))
+        break
+
+      new_all_items = list(self.all_items)
+      # Move prune item to the end of the list.
+      new_all_items.append(new_all_items.pop(prune_index))
+      self.found_items.add(new_all_items[-1])
+
+      # Everything below newly found bad item is now known to be a good item.
+      # Take these good items out of the equation to save time on the next
+      # search. We save these known good items so they are still sent to the
+      # switch_to_good script.
+      if prune_index:
+        self.known_good.update(new_all_items[:prune_index])
+        new_all_items = new_all_items[prune_index:]
+
+      self.l.LogOutput(
+          'Old list: %s. New list: %s' % (str(self.all_items),
+                                          str(new_all_items)),
+          print_to_console=self.verbose)
+
+      if not self.prune:
+        self.l.LogOutput('Not continuning further, --prune is not set')
+        break
+      # FIXME: Do we need to Convert the currently good items to bad
+      self.PopulateItemsUsingList(new_all_items)
+
+  def DoBinarySearch(self):
+    """Perform single iteration of binary search."""
+    # If in resume mode don't reset search_cycles
+    if not self.resumed:
+      self.search_cycles = 0
+    else:
+      self.resumed = False
+
+    terminated = False
+    while self.search_cycles < self.iterations and not terminated:
+      self.SaveState()
+      self.OutputIterationProgress()
+
+      self.search_cycles += 1
+      [bad_items, good_items] = self.GetNextItems()
+
+      with SetFile(GOOD_SET_VAR, good_items), SetFile(BAD_SET_VAR, bad_items):
+        # TODO: bad_items should come first.
+        self.SwitchToGood(good_items)
+        self.SwitchToBad(bad_items)
+        status = self.TestSetupScript()
+        if status == 0:
+          status = self.TestScript()
+        terminated = self.binary_search.SetStatus(status)
+
+      if terminated:
+        self.l.LogOutput('Terminated!', print_to_console=self.verbose)
+    if not terminated:
+      self.l.LogOutput('Ran out of iterations searching...')
+    self.l.LogOutput(str(self), print_to_console=self.verbose)
+    return terminated
+
+  def PopulateItemsUsingCommand(self, command):
+    """Update all_items and binary search logic from executable.
+
+    This method is mainly required for enumerating the initial list of items
+    from the get_initial_items script.
+
+    Args:
+      command: path to executable that will enumerate items.
+    """
+    ce = command_executer.GetCommandExecuter()
+    _, out, _ = ce.RunCommandWExceptionCleanup(
+        command, return_output=True, print_to_console=self.verbose)
+    all_items = out.split()
+    self.PopulateItemsUsingList(all_items)
+
+  def PopulateItemsUsingList(self, all_items):
+    """Update all_items and binary searching logic from list.
+
+    Args:
+      all_items: new list of all_items
+    """
+    self.all_items = all_items
+    self.binary_search = binary_search_perforce.BinarySearcher(
+        logger_to_set=self.l)
+    self.binary_search.SetSortedList(self.all_items)
+
+  def SaveState(self):
+    """Save state to STATE_FILE.
+
+    SaveState will create a new unique, hidden state file to hold data from
+    object. Then atomically overwrite the STATE_FILE symlink to point to the
+    new data.
+
+    Raises:
+      Error if STATE_FILE already exists but is not a symlink.
+    """
+    ce, l = self.ce, self.l
+    self.ce, self.l, self.binary_search.logger = None, None, None
+    old_state = None
+
+    _, path = tempfile.mkstemp(prefix=HIDDEN_STATE_FILE, dir='.')
+    with open(path, 'wb') as f:
+      pickle.dump(self, f)
+
+    if os.path.exists(STATE_FILE):
+      if os.path.islink(STATE_FILE):
+        old_state = os.readlink(STATE_FILE)
+      else:
+        raise Error(('%s already exists and is not a symlink!\n'
+                     'State file saved to %s' % (STATE_FILE, path)))
+
+    # Create new link and atomically overwrite old link
+    temp_link = '%s.link' % HIDDEN_STATE_FILE
+    os.symlink(path, temp_link)
+    os.rename(temp_link, STATE_FILE)
+
+    if old_state:
+      os.remove(old_state)
+
+    self.ce, self.l, self.binary_search.logger = ce, l, l
+
+  @classmethod
+  def LoadState(cls):
+    """Create BinarySearchState object from STATE_FILE."""
+    if not os.path.isfile(STATE_FILE):
+      return None
+    try:
+      bss = pickle.load(file(STATE_FILE))
+      bss.l = logger.GetLogger()
+      bss.ce = command_executer.GetCommandExecuter()
+      bss.binary_search.logger = bss.l
+      bss.start_time = time.time()
+
+      # Set resumed to be True so we can enter DoBinarySearch without the method
+      # resetting our current search_cycles to 0.
+      bss.resumed = True
+
+      # Set currently_good_items and currently_bad_items to empty so that the
+      # first iteration after resuming will always be non-incremental. This is
+      # just in case the environment changes, the user makes manual changes, or
+      # a previous switch_script corrupted the environment.
+      bss.currently_good_items = set([])
+      bss.currently_bad_items = set([])
+
+      binary_search_perforce.verbose = bss.verbose
+      return bss
+    except StandardError:
+      return None
+
+  def RemoveState(self):
+    """Remove STATE_FILE and its symlinked data from file system."""
+    if os.path.exists(STATE_FILE):
+      if os.path.islink(STATE_FILE):
+        real_file = os.readlink(STATE_FILE)
+        os.remove(real_file)
+        os.remove(STATE_FILE)
+
+  def GetNextItems(self):
+    """Get next items for binary search based on result of the last test run."""
+    border_item = self.binary_search.GetNext()
+    index = self.all_items.index(border_item)
+
+    next_bad_items = self.all_items[:index + 1]
+    next_good_items = self.all_items[index + 1:] + list(self.known_good)
+
+    return [next_bad_items, next_good_items]
+
+  def ElapsedTimeString(self):
+    """Return h m s format of elapsed time since execution has started."""
+    diff = int(time.time() - self.start_time)
+    seconds = diff % 60
+    minutes = (diff / 60) % 60
+    hours = diff / (60 * 60)
+
+    seconds = str(seconds).rjust(2)
+    minutes = str(minutes).rjust(2)
+    hours = str(hours).rjust(2)
+
+    return '%sh %sm %ss' % (hours, minutes, seconds)
+
+  def _OutputProgress(self, progress_text):
+    """Output current progress of binary search to console and logs.
+
+    Args:
+      progress_text: The progress to display to the user.
+    """
+    progress = ('\n***** PROGRESS (elapsed time: %s) *****\n'
+                '%s'
+                '************************************************')
+    progress = progress % (self.ElapsedTimeString(), progress_text)
+    self.l.LogOutput(progress)
+
+  def OutputIterationProgress(self):
+    out = ('Search %d of estimated %d.\n'
+           'Prune %d of max %d.\n'
+           'Current bad items found:\n'
+           '%s\n')
+    out = out % (self.search_cycles + 1,
+                 math.ceil(math.log(len(self.all_items), 2)),
+                 self.prune_cycles + 1, self.prune_iterations,
+                 ', '.join(self.found_items))
+    self._OutputProgress(out)
+
+  def __str__(self):
+    ret = ''
+    ret += 'all: %s\n' % str(self.all_items)
+    ret += 'currently_good: %s\n' % str(self.currently_good_items)
+    ret += 'currently_bad: %s\n' % str(self.currently_bad_items)
+    ret += str(self.binary_search)
+    return ret
+
+
+class MockBinarySearchState(BinarySearchState):
+  """Mock class for BinarySearchState."""
+
+  def __init__(self, **kwargs):
+    # Initialize all arguments to None
+    default_kwargs = {
+        'get_initial_items': 'echo "1"',
+        'switch_to_good': None,
+        'switch_to_bad': None,
+        'test_setup_script': None,
+        'test_script': None,
+        'incremental': True,
+        'prune': False,
+        'iterations': 50,
+        'prune_iterations': 100,
+        'verify': True,
+        'file_args': False,
+        'verbose': False
+    }
+    default_kwargs.update(kwargs)
+    super(MockBinarySearchState, self).__init__(**default_kwargs)
+
+
+def _CanonicalizeScript(script_name):
+  """Return canonical path to script.
+
+  Args:
+    script_name: Relative or absolute path to script
+
+  Returns:
+    Canonicalized script path
+  """
+  script_name = os.path.expanduser(script_name)
+  if not script_name.startswith('/'):
+    return os.path.join('.', script_name)
+
+
+def Run(get_initial_items,
+        switch_to_good,
+        switch_to_bad,
+        test_script,
+        test_setup_script=None,
+        iterations=50,
+        prune=False,
+        noincremental=False,
+        file_args=False,
+        verify=True,
+        prune_iterations=100,
+        verbose=False,
+        resume=False):
+  """Run binary search tool. Equivalent to running through terminal.
+
+  Args:
+    get_initial_items: Script to enumerate all items being binary searched
+    switch_to_good: Script that will take items as input and switch them to good
+                    set
+    switch_to_bad: Script that will take items as input and switch them to bad
+                   set
+    test_script: Script that will determine if the current combination of good
+                 and bad items make a "good" or "bad" result.
+    test_setup_script: Script to do necessary setup (building, compilation,
+                       etc.) for test_script.
+    iterations: How many binary search iterations to run before exiting.
+    prune: If False the binary search tool will stop when the first bad item is
+           found. Otherwise then binary search tool will continue searching
+           until all bad items are found (or prune_iterations is reached).
+    noincremental: Whether to send "diffs" of good/bad items to switch scripts.
+    file_args: If True then arguments to switch scripts will be a file name
+               containing a newline separated list of the items to switch.
+    verify: If True, run tests to ensure initial good/bad sets actually
+            produce a good/bad result.
+    prune_iterations: Max number of bad items to search for.
+    verbose: If True will print extra debug information to user.
+    resume: If True will resume using STATE_FILE.
+
+  Returns:
+    0 for success, error otherwise
+  """
+  if resume:
+    bss = BinarySearchState.LoadState()
+    if not bss:
+      logger.GetLogger().LogOutput(
+          '%s is not a valid binary_search_tool state file, cannot resume!' %
+          STATE_FILE)
+      return 1
+  else:
+    switch_to_good = _CanonicalizeScript(switch_to_good)
+    switch_to_bad = _CanonicalizeScript(switch_to_bad)
+    if test_setup_script:
+      test_setup_script = _CanonicalizeScript(test_setup_script)
+    test_script = _CanonicalizeScript(test_script)
+    get_initial_items = _CanonicalizeScript(get_initial_items)
+    incremental = not noincremental
+
+    binary_search_perforce.verbose = verbose
+
+    bss = BinarySearchState(get_initial_items, switch_to_good, switch_to_bad,
+                            test_setup_script, test_script, incremental, prune,
+                            iterations, prune_iterations, verify, file_args,
+                            verbose)
+    bss.DoVerify()
+
+  try:
+    bss.DoSearch()
+    bss.RemoveState()
+    logger.GetLogger().LogOutput('Total execution time: %s' %
+                                 bss.ElapsedTimeString())
+  except Error as e:
+    logger.GetLogger().LogError(e)
+    return 1
+
+  return 0
+
+
+def Main(argv):
+  """The main function."""
+  # Common initializations
+
+  parser = argparse.ArgumentParser()
+  common.BuildArgParser(parser)
+  logger.GetLogger().LogOutput(' '.join(argv))
+  options = parser.parse_args(argv)
+
+  if not (options.get_initial_items and options.switch_to_good and
+          options.switch_to_bad and options.test_script) and not options.resume:
+    parser.print_help()
+    return 1
+
+  if options.resume:
+    logger.GetLogger().LogOutput('Resuming from %s' % STATE_FILE)
+    if len(argv) > 1:
+      logger.GetLogger().LogOutput(('Note: resuming from previous state, '
+                                    'ignoring given options and loading saved '
+                                    'options instead.'))
+
+  # Get dictionary of all options
+  args = vars(options)
+  return Run(**args)
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv[1:]))
diff --git a/binary_search_tool/bisect.py b/binary_search_tool/bisect.py
new file mode 100755
index 0000000..d5a8b71
--- /dev/null
+++ b/binary_search_tool/bisect.py
@@ -0,0 +1,398 @@
+#!/usr/bin/python2
+"""The unified package/object bisecting tool."""
+
+from __future__ import print_function
+
+import abc
+import argparse
+import os
+import sys
+from argparse import RawTextHelpFormatter
+
+import common
+
+from cros_utils import command_executer
+from cros_utils import logger
+
+import binary_search_state
+
+
+class Bisector(object):
+  """The abstract base class for Bisectors."""
+
+  # Make Bisector an abstract class
+  __metaclass__ = abc.ABCMeta
+
+  def __init__(self, options, overrides=None):
+    """Constructor for Bisector abstract base class
+
+    Args:
+      options: positional arguments for specific mode (board, remote, etc.)
+      overrides: optional dict of overrides for argument defaults
+    """
+    self.options = options
+    self.overrides = overrides
+    if not overrides:
+      self.overrides = {}
+    self.logger = logger.GetLogger()
+    self.ce = command_executer.GetCommandExecuter()
+
+  def _PrettyPrintArgs(self, args, overrides):
+    """Output arguments in a nice, human readable format
+
+    Will print and log all arguments for the bisecting tool and make note of
+    which arguments have been overridden.
+
+    Example output:
+      ./bisect.py package daisy 172.17.211.184 -I "" -t cros_pkg/my_test.sh
+      Performing ChromeOS Package bisection
+      Method Config:
+        board : daisy
+       remote : 172.17.211.184
+
+      Bisection Config: (* = overridden)
+         get_initial_items : cros_pkg/get_initial_items.sh
+            switch_to_good : cros_pkg/switch_to_good.sh
+             switch_to_bad : cros_pkg/switch_to_bad.sh
+       * test_setup_script :
+       *       test_script : cros_pkg/my_test.sh
+                     prune : True
+             noincremental : False
+                 file_args : True
+
+    Args:
+      args: The args to be given to binary_search_state.Run. This represents
+            how the bisection tool will run (with overridden arguments already
+            added in).
+      overrides: The dict of overriden arguments provided by the user. This is
+                 provided so the user can be told which arguments were
+                 overriden and with what value.
+    """
+    # Output method config (board, remote, etc.)
+    options = vars(self.options)
+    out = '\nPerforming %s bisection\n' % self.method_name
+    out += 'Method Config:\n'
+    max_key_len = max([len(str(x)) for x in options.keys()])
+    for key in sorted(options):
+      val = options[key]
+      key_str = str(key).rjust(max_key_len)
+      val_str = str(val)
+      out += ' %s : %s\n' % (key_str, val_str)
+
+    # Output bisection config (scripts, prune, etc.)
+    out += '\nBisection Config: (* = overridden)\n'
+    max_key_len = max([len(str(x)) for x in args.keys()])
+    # Print args in common._ArgsDict order
+    args_order = [x['dest'] for x in common.GetArgsDict().itervalues()]
+    compare = lambda x, y: cmp(args_order.index(x), args_order.index(y))
+
+    for key in sorted(args, cmp=compare):
+      val = args[key]
+      key_str = str(key).rjust(max_key_len)
+      val_str = str(val)
+      changed_str = '*' if key in overrides else ' '
+
+      out += ' %s %s : %s\n' % (changed_str, key_str, val_str)
+
+    out += '\n'
+    self.logger.LogOutput(out)
+
+  def ArgOverride(self, args, overrides, pretty_print=True):
+    """Override arguments based on given overrides and provide nice output
+
+    Args:
+      args: dict of arguments to be passed to binary_search_state.Run (runs
+            dict.update, causing args to be mutated).
+      overrides: dict of arguments to update args with
+      pretty_print: if True print out args/overrides to user in pretty format
+    """
+    args.update(overrides)
+    if pretty_print:
+      self._PrettyPrintArgs(args, overrides)
+
+  @abc.abstractmethod
+  def PreRun(self):
+    pass
+
+  @abc.abstractmethod
+  def Run(self):
+    pass
+
+  @abc.abstractmethod
+  def PostRun(self):
+    pass
+
+
+class BisectPackage(Bisector):
+  """The class for package bisection steps."""
+
+  cros_pkg_setup = 'cros_pkg/setup.sh'
+  cros_pkg_cleanup = 'cros_pkg/%s_cleanup.sh'
+
+  def __init__(self, options, overrides):
+    super(BisectPackage, self).__init__(options, overrides)
+    self.method_name = 'ChromeOS Package'
+    self.default_kwargs = {
+        'get_initial_items': 'cros_pkg/get_initial_items.sh',
+        'switch_to_good': 'cros_pkg/switch_to_good.sh',
+        'switch_to_bad': 'cros_pkg/switch_to_bad.sh',
+        'test_setup_script': 'cros_pkg/test_setup.sh',
+        'test_script': 'cros_pkg/interactive_test.sh',
+        'noincremental': False,
+        'prune': True,
+        'file_args': True
+    }
+    self.setup_cmd = ('%s %s %s' % (self.cros_pkg_setup, self.options.board,
+                                    self.options.remote))
+    self.ArgOverride(self.default_kwargs, self.overrides)
+
+  def PreRun(self):
+    ret, _, _ = self.ce.RunCommandWExceptionCleanup(
+        self.setup_cmd, print_to_console=True)
+    if ret:
+      self.logger.LogError('Package bisector setup failed w/ error %d' % ret)
+      return 1
+    return 0
+
+  def Run(self):
+    return binary_search_state.Run(**self.default_kwargs)
+
+  def PostRun(self):
+    cmd = self.cros_pkg_cleanup % self.options.board
+    ret, _, _ = self.ce.RunCommandWExceptionCleanup(cmd, print_to_console=True)
+    if ret:
+      self.logger.LogError('Package bisector cleanup failed w/ error %d' % ret)
+      return 1
+
+    self.logger.LogOutput(('Cleanup successful! To restore the bisection '
+                           'environment run the following:\n'
+                           '  cd %s; %s') % (os.getcwd(), self.setup_cmd))
+    return 0
+
+
+class BisectObject(Bisector):
+  """The class for object bisection steps."""
+
+  sysroot_wrapper_setup = 'sysroot_wrapper/setup.sh'
+  sysroot_wrapper_cleanup = 'sysroot_wrapper/cleanup.sh'
+
+  def __init__(self, options, overrides):
+    super(BisectObject, self).__init__(options, overrides)
+    self.method_name = 'ChromeOS Object'
+    self.default_kwargs = {
+        'get_initial_items': 'sysroot_wrapper/get_initial_items.sh',
+        'switch_to_good': 'sysroot_wrapper/switch_to_good.sh',
+        'switch_to_bad': 'sysroot_wrapper/switch_to_bad.sh',
+        'test_setup_script': 'sysroot_wrapper/test_setup.sh',
+        'test_script': 'sysroot_wrapper/interactive_test.sh',
+        'noincremental': False,
+        'prune': True,
+        'file_args': True
+    }
+    self.options = options
+    if options.dir:
+      os.environ['BISECT_DIR'] = options.dir
+    self.options.dir = os.environ.get('BISECT_DIR', '/tmp/sysroot_bisect')
+    self.setup_cmd = ('%s %s %s %s' % (self.sysroot_wrapper_setup,
+                                       self.options.board, self.options.remote,
+                                       self.options.package))
+
+    self.ArgOverride(self.default_kwargs, overrides)
+
+  def PreRun(self):
+    ret, _, _ = self.ce.RunCommandWExceptionCleanup(
+        self.setup_cmd, print_to_console=True)
+    if ret:
+      self.logger.LogError('Object bisector setup failed w/ error %d' % ret)
+      return 1
+
+    os.environ['BISECT_STAGE'] = 'TRIAGE'
+    return 0
+
+  def Run(self):
+    return binary_search_state.Run(**self.default_kwargs)
+
+  def PostRun(self):
+    cmd = self.sysroot_wrapper_cleanup
+    ret, _, _ = self.ce.RunCommandWExceptionCleanup(cmd, print_to_console=True)
+    if ret:
+      self.logger.LogError('Object bisector cleanup failed w/ error %d' % ret)
+      return 1
+    self.logger.LogOutput(('Cleanup successful! To restore the bisection '
+                           'environment run the following:\n'
+                           '  cd %s; %s') % (os.getcwd(), self.setup_cmd))
+    return 0
+
+
+class BisectAndroid(Bisector):
+  """The class for Android bisection steps."""
+
+  android_setup = 'android/setup.sh'
+  android_cleanup = 'android/cleanup.sh'
+  default_dir = os.path.expanduser('~/ANDROID_BISECT')
+
+  def __init__(self, options, overrides):
+    super(BisectAndroid, self).__init__(options, overrides)
+    self.method_name = 'Android'
+    self.default_kwargs = {
+        'get_initial_items': 'android/get_initial_items.sh',
+        'switch_to_good': 'android/switch_to_good.sh',
+        'switch_to_bad': 'android/switch_to_bad.sh',
+        'test_setup_script': 'android/test_setup.sh',
+        'test_script': 'android/interactive_test.sh',
+        'prune': True,
+        'file_args': True,
+        'noincremental': False,
+    }
+    self.options = options
+    if options.dir:
+      os.environ['BISECT_DIR'] = options.dir
+    self.options.dir = os.environ.get('BISECT_DIR', self.default_dir)
+
+    num_jobs = "NUM_JOBS='%s'" % self.options.num_jobs
+    device_id = ''
+    if self.options.device_id:
+      device_id = "ANDROID_SERIAL='%s'" % self.options.device_id
+
+    self.setup_cmd = ('%s %s %s %s' % (num_jobs, device_id, self.android_setup,
+                                       self.options.android_src))
+
+    self.ArgOverride(self.default_kwargs, overrides)
+
+  def PreRun(self):
+    ret, _, _ = self.ce.RunCommandWExceptionCleanup(
+        self.setup_cmd, print_to_console=True)
+    if ret:
+      self.logger.LogError('Android bisector setup failed w/ error %d' % ret)
+      return 1
+
+    os.environ['BISECT_STAGE'] = 'TRIAGE'
+    return 0
+
+  def Run(self):
+    return binary_search_state.Run(**self.default_kwargs)
+
+  def PostRun(self):
+    cmd = self.android_cleanup
+    ret, _, _ = self.ce.RunCommandWExceptionCleanup(cmd, print_to_console=True)
+    if ret:
+      self.logger.LogError('Android bisector cleanup failed w/ error %d' % ret)
+      return 1
+    self.logger.LogOutput(('Cleanup successful! To restore the bisection '
+                           'environment run the following:\n'
+                           '  cd %s; %s') % (os.getcwd(), self.setup_cmd))
+    return 0
+
+
+def Run(bisector):
+  log = logger.GetLogger()
+
+  log.LogOutput('Setting up Bisection tool')
+  ret = bisector.PreRun()
+  if ret:
+    return ret
+
+  log.LogOutput('Running Bisection tool')
+  ret = bisector.Run()
+  if ret:
+    return ret
+
+  log.LogOutput('Cleaning up Bisection tool')
+  ret = bisector.PostRun()
+  if ret:
+    return ret
+
+  return 0
+
+
+_HELP_EPILOG = """
+Run ./bisect.py {method} --help for individual method help/args
+
+------------------
+
+See README.bisect for examples on argument overriding
+
+See below for full override argument reference:
+"""
+
+
+def Main(argv):
+  override_parser = argparse.ArgumentParser(
+      add_help=False,
+      argument_default=argparse.SUPPRESS,
+      usage='bisect.py {mode} [options]')
+  common.BuildArgParser(override_parser, override=True)
+
+  epilog = _HELP_EPILOG + override_parser.format_help()
+  parser = argparse.ArgumentParser(
+      epilog=epilog, formatter_class=RawTextHelpFormatter)
+  subparsers = parser.add_subparsers(
+      title='Bisect mode',
+      description=('Which bisection method to '
+                   'use. Each method has '
+                   'specific setup and '
+                   'arguments. Please consult '
+                   'the README for more '
+                   'information.'))
+
+  parser_package = subparsers.add_parser('package')
+  parser_package.add_argument('board', help='Board to target')
+  parser_package.add_argument('remote', help='Remote machine to test on')
+  parser_package.set_defaults(handler=BisectPackage)
+
+  parser_object = subparsers.add_parser('object')
+  parser_object.add_argument('board', help='Board to target')
+  parser_object.add_argument('remote', help='Remote machine to test on')
+  parser_object.add_argument('package', help='Package to emerge and test')
+  parser_object.add_argument(
+      '--dir',
+      help=('Bisection directory to use, sets '
+            '$BISECT_DIR if provided. Defaults to '
+            'current value of $BISECT_DIR (or '
+            '/tmp/sysroot_bisect if $BISECT_DIR is '
+            'empty).'))
+  parser_object.set_defaults(handler=BisectObject)
+
+  parser_android = subparsers.add_parser('android')
+  parser_android.add_argument('android_src', help='Path to android source tree')
+  parser_android.add_argument(
+      '--dir',
+      help=('Bisection directory to use, sets '
+            '$BISECT_DIR if provided. Defaults to '
+            'current value of $BISECT_DIR (or '
+            '~/ANDROID_BISECT/ if $BISECT_DIR is '
+            'empty).'))
+  parser_android.add_argument(
+      '-j',
+      '--num_jobs',
+      type=int,
+      default=1,
+      help=('Number of jobs that make and various '
+            'scripts for bisector can spawn. Setting '
+            'this value too high can freeze up your '
+            'machine!'))
+  parser_android.add_argument(
+      '--device_id',
+      default='',
+      help=('Device id for device used for testing. '
+            'Use this if you have multiple Android '
+            'devices plugged into your machine.'))
+  parser_android.set_defaults(handler=BisectAndroid)
+
+  options, remaining = parser.parse_known_args(argv)
+  if remaining:
+    overrides = override_parser.parse_args(remaining)
+    overrides = vars(overrides)
+  else:
+    overrides = {}
+
+  subcmd = options.handler
+  del options.handler
+
+  bisector = subcmd(options, overrides)
+  return Run(bisector)
+
+
+if __name__ == '__main__':
+  os.chdir(os.path.dirname(__file__))
+  sys.exit(Main(sys.argv[1:]))
diff --git a/binary_search_tool/bisect_driver.py b/binary_search_tool/bisect_driver.py
new file mode 100644
index 0000000..0b3fb1d
--- /dev/null
+++ b/binary_search_tool/bisect_driver.py
@@ -0,0 +1,334 @@
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is used to help the compiler wrapper in the Android build system
+# bisect for bad object files.
+"""Utilities for bisection of Android object files.
+
+This module contains a set of utilities to allow bisection between
+two sets (good and bad) of object files. Mostly used to find compiler
+bugs.
+
+Reference page:
+https://sites.google.com/a/google.com/chromeos-toolchain-team-home2/home/team-tools-and-scripts/bisecting-chromeos-compiler-problems/bisection-compiler-wrapper
+
+Design doc:
+https://docs.google.com/document/d/1yDgaUIa2O5w6dc3sSTe1ry-1ehKajTGJGQCbyn0fcEM
+"""
+
+from __future__ import print_function
+
+import contextlib
+import fcntl
+import os
+import shutil
+import subprocess
+import sys
+
+VALID_MODES = ['POPULATE_GOOD', 'POPULATE_BAD', 'TRIAGE']
+GOOD_CACHE = 'good'
+BAD_CACHE = 'bad'
+LIST_FILE = os.path.join(GOOD_CACHE, '_LIST')
+
+CONTINUE_ON_MISSING = os.environ.get('BISECT_CONTINUE_ON_MISSING', None) == '1'
+WRAPPER_SAFE_MODE = os.environ.get('BISECT_WRAPPER_SAFE_MODE', None) == '1'
+
+
+class Error(Exception):
+  """The general compiler wrapper error class."""
+  pass
+
+
+@contextlib.contextmanager
+def lock_file(path, mode):
+  """Lock file and block if other process has lock on file.
+
+  Acquire exclusive lock for file. Only blocks other processes if they attempt
+  to also acquire lock through this method. If only reading (modes 'r' and 'rb')
+  then the lock is shared (i.e. many reads can happen concurrently, but only one
+  process may write at a time).
+
+  This function is a contextmanager, meaning it's meant to be used with the
+  "with" statement in Python. This is so cleanup and setup happens automatically
+  and cleanly. Execution of the outer "with" statement happens at the "yield"
+  statement. Execution resumes after the yield when the outer "with" statement
+  ends.
+
+  Args:
+    path: path to file being locked
+    mode: mode to open file with ('w', 'r', etc.)
+  """
+  with open(path, mode) as f:
+    # Share the lock if just reading, make lock exclusive if writing
+    if f.mode == 'r' or f.mode == 'rb':
+      lock_type = fcntl.LOCK_SH
+    else:
+      lock_type = fcntl.LOCK_EX
+
+    try:
+      fcntl.lockf(f, lock_type)
+      yield f
+      f.flush()
+    except:
+      raise
+    finally:
+      fcntl.lockf(f, fcntl.LOCK_UN)
+
+
+def log_to_file(path, execargs, link_from=None, link_to=None):
+  """Common logging function.
+
+  Log current working directory, current execargs, and a from-to relationship
+  between files.
+  """
+  with lock_file(path, 'a') as log:
+    log.write('cd: %s; %s\n' % (os.getcwd(), ' '.join(execargs)))
+    if link_from and link_to:
+      log.write('%s -> %s\n' % (link_from, link_to))
+
+
+def exec_and_return(execargs):
+  """Execute process and return.
+
+  Execute according to execargs and return immediately. Don't inspect
+  stderr or stdout.
+  """
+  return subprocess.call(execargs)
+
+
+def which_cache(obj_file):
+  """Determine which cache an object belongs to.
+
+  The binary search tool creates two files for each search iteration listing
+  the full set of bad objects and full set of good objects. We use this to
+  determine where an object file should be linked from (good or bad).
+  """
+  bad_set_file = os.environ.get('BISECT_BAD_SET')
+  ret = subprocess.call(['grep', '-x', '-q', obj_file, bad_set_file])
+  if ret == 0:
+    return BAD_CACHE
+  else:
+    return GOOD_CACHE
+
+
+def makedirs(path):
+  """Try to create directories in path."""
+  try:
+    os.makedirs(path)
+  except os.error:
+    if not os.path.isdir(path):
+      raise
+
+
+def get_obj_path(execargs):
+  """Get the object path for the object file in the list of arguments.
+
+  Returns:
+    Absolute object path from execution args (-o argument). If no object being
+    outputted or output doesn't end in ".o" then return empty string.
+  """
+  try:
+    i = execargs.index('-o')
+  except ValueError:
+    return ''
+
+  obj_path = execargs[i + 1]
+  if not obj_path.endswith(('.o',)):
+    # TODO: what suffixes do we need to contemplate
+    # TODO: add this as a warning
+    # TODO: need to handle -r compilations
+    return ''
+
+  return os.path.abspath(obj_path)
+
+
+def get_dep_path(execargs):
+  """Get the dep file path for the dep file in the list of arguments.
+
+  Returns:
+    Absolute path of dependency file path from execution args (-o argument). If
+    no dependency being outputted then return empty string.
+  """
+  if '-MD' not in execargs and '-MMD' not in execargs:
+    return ''
+
+  # If -MF given this is the path of the dependency file. Otherwise the
+  # dependency file is the value of -o but with a .d extension
+  if '-MF' in execargs:
+    i = execargs.index('-MF')
+    dep_path = execargs[i + 1]
+    return os.path.abspath(dep_path)
+
+  full_obj_path = get_obj_path(execargs)
+  if not full_obj_path:
+    return ''
+
+  return full_obj_path[:-2] + '.d'
+
+
+def get_dwo_path(execargs):
+  """Get the dwo file path for the dwo file in the list of arguments.
+
+  Returns:
+    Absolute dwo file path from execution args (-gsplit-dwarf argument) If no
+    dwo file being outputted then return empty string.
+  """
+  if '-gsplit-dwarf' not in execargs:
+    return ''
+
+  full_obj_path = get_obj_path(execargs)
+  if not full_obj_path:
+    return ''
+
+  return full_obj_path[:-2] + '.dwo'
+
+
+def in_object_list(obj_name, list_filename):
+  """Check if object file name exist in file with object list."""
+  if not obj_name:
+    return False
+
+  with lock_file(list_filename, 'r') as list_file:
+    for line in list_file:
+      if line.strip() == obj_name:
+        return True
+
+    return False
+
+
+def get_side_effects(execargs):
+  """Determine side effects generated by compiler
+
+  Returns:
+    List of paths of objects that the compiler generates as side effects.
+  """
+  side_effects = []
+
+  # Cache dependency files
+  full_dep_path = get_dep_path(execargs)
+  if full_dep_path:
+    side_effects.append(full_dep_path)
+
+  # Cache dwo files
+  full_dwo_path = get_dwo_path(execargs)
+  if full_dwo_path:
+    side_effects.append(full_dwo_path)
+
+  return side_effects
+
+
+def cache_file(execargs, bisect_dir, cache, abs_file_path):
+  """Cache compiler output file (.o/.d/.dwo)."""
+  # os.path.join fails with absolute paths, use + instead
+  bisect_path = os.path.join(bisect_dir, cache) + abs_file_path
+  bisect_path_dir = os.path.dirname(bisect_path)
+  makedirs(bisect_path_dir)
+  pop_log = os.path.join(bisect_dir, cache, '_POPULATE_LOG')
+  log_to_file(pop_log, execargs, abs_file_path, bisect_path)
+
+  try:
+    if os.path.exists(abs_file_path):
+      shutil.copy2(abs_file_path, bisect_path)
+  except Exception:
+    print('Could not cache file %s' % abs_file_path, file=sys.stderr)
+    raise
+
+
+def restore_file(bisect_dir, cache, abs_file_path):
+  """Restore file from cache (.o/.d/.dwo)."""
+  # os.path.join fails with absolute paths, use + instead
+  cached_path = os.path.join(bisect_dir, cache) + abs_file_path
+  if os.path.exists(cached_path):
+    if os.path.exists(abs_file_path):
+      os.remove(abs_file_path)
+    os.link(cached_path, abs_file_path)
+  else:
+    raise Error(('%s is missing from %s cache! Unsure how to proceed. Make '
+                 'will now crash.' % (cache, cached_path)))
+
+
+def bisect_populate(execargs, bisect_dir, population_name):
+  """Add necessary information to the bisect cache for the given execution.
+
+  Extract the necessary information for bisection from the compiler
+  execution arguments and put it into the bisection cache. This
+  includes copying the created object file, adding the object
+  file path to the cache list and keeping a log of the execution.
+
+  Args:
+    execargs: compiler execution arguments.
+    bisect_dir: bisection directory.
+    population_name: name of the cache being populated (good/bad).
+  """
+  retval = exec_and_return(execargs)
+  if retval:
+    return retval
+
+  full_obj_path = get_obj_path(execargs)
+  # If not a normal compiler call then just exit
+  if not full_obj_path:
+    return
+
+  cache_file(execargs, bisect_dir, population_name, full_obj_path)
+
+  population_dir = os.path.join(bisect_dir, population_name)
+  with lock_file(os.path.join(population_dir, '_LIST'), 'a') as object_list:
+    object_list.write('%s\n' % full_obj_path)
+
+  for side_effect in get_side_effects(execargs):
+    cache_file(execargs, bisect_dir, population_name, side_effect)
+
+
+def bisect_triage(execargs, bisect_dir):
+  full_obj_path = get_obj_path(execargs)
+  obj_list = os.path.join(bisect_dir, LIST_FILE)
+
+  # If the output isn't an object file just call compiler
+  if not full_obj_path:
+    return exec_and_return(execargs)
+
+  # If this isn't a bisected object just call compiler
+  # This shouldn't happen!
+  if not in_object_list(full_obj_path, obj_list):
+    if CONTINUE_ON_MISSING:
+      log_file = os.path.join(bisect_dir, '_MISSING_CACHED_OBJ_LOG')
+      log_to_file(log_file, execargs, '? compiler', full_obj_path)
+      return exec_and_return(execargs)
+    else:
+      raise Error(('%s is missing from cache! To ignore export '
+                   'BISECT_CONTINUE_ON_MISSING=1. See documentation for more '
+                   'details on this option.' % full_obj_path))
+
+  cache = which_cache(full_obj_path)
+
+  # If using safe WRAPPER_SAFE_MODE option call compiler and overwrite the
+  # result from the good/bad cache. This option is safe and covers all compiler
+  # side effects, but is very slow!
+  if WRAPPER_SAFE_MODE:
+    retval = exec_and_return(execargs)
+    if retval:
+      return retval
+    os.remove(full_obj_path)
+    restore_file(bisect_dir, cache, full_obj_path)
+    return
+
+  # Generate compiler side effects. Trick Make into thinking compiler was
+  # actually executed.
+  for side_effect in get_side_effects(execargs):
+    restore_file(bisect_dir, cache, side_effect)
+
+  # If generated object file happened to be pruned/cleaned by Make then link it
+  # over from cache again.
+  if not os.path.exists(full_obj_path):
+    restore_file(bisect_dir, cache, full_obj_path)
+
+
+def bisect_driver(bisect_stage, bisect_dir, execargs):
+  """Call appropriate bisection stage according to value in bisect_stage."""
+  if bisect_stage == 'POPULATE_GOOD':
+    bisect_populate(execargs, bisect_dir, GOOD_CACHE)
+  elif bisect_stage == 'POPULATE_BAD':
+    bisect_populate(execargs, bisect_dir, BAD_CACHE)
+  elif bisect_stage == 'TRIAGE':
+    bisect_triage(execargs, bisect_dir)
+  else:
+    raise ValueError('wrong value for BISECT_STAGE: %s' % bisect_stage)
diff --git a/binary_search_tool/common.py b/binary_search_tool/common.py
new file mode 100644
index 0000000..945270b
--- /dev/null
+++ b/binary_search_tool/common.py
@@ -0,0 +1,261 @@
+"""Common config and logic for binary search tool
+
+This module serves two main purposes:
+  1. Programatically include the utils module in PYTHONPATH
+  2. Create the argument parsing shared between binary_search_state.py and
+     bisect.py
+
+The argument parsing is handled by populating _ArgsDict with all arguments.
+_ArgsDict is required so that binary_search_state.py and bisect.py can share
+the argument parsing, but treat them slightly differently. For example,
+bisect.py requires that all argument defaults are suppressed so that overriding
+can occur properly (i.e. only options that are explicitly entered by the user
+end up in the resultant options dictionary).
+
+ArgumentDict inherits OrderedDict in order to preserve the order the args are
+created so the help text is made properly.
+"""
+
+from __future__ import print_function
+
+import collections
+import os
+import sys
+
+# Programatically adding utils python path to PYTHONPATH
+if os.path.isabs(sys.argv[0]):
+  utils_pythonpath = os.path.abspath('{0}/..'.format(
+      os.path.dirname(sys.argv[0])))
+else:
+  wdir = os.getcwd()
+  utils_pythonpath = os.path.abspath('{0}/{1}/..'.format(wdir, os.path.dirname(
+      sys.argv[0])))
+sys.path.append(utils_pythonpath)
+
+
+class ArgumentDict(collections.OrderedDict):
+  """Wrapper around OrderedDict, represents CLI arguments for program.
+
+  AddArgument enforces the following layout:
+  {
+      ['-n', '--iterations'] : {
+          'dest': 'iterations',
+          'type': int,
+          'help': 'Number of iterations to try in the search.',
+          'default': 50
+      }
+      [arg_name1, arg_name2, ...] : {
+          arg_option1 : arg_option_val1,
+          ...
+      },
+      ...
+  }
+  """
+  _POSSIBLE_OPTIONS = ['action', 'nargs', 'const', 'default', 'type', 'choices',
+                       'required', 'help', 'metavar', 'dest']
+
+  def AddArgument(self, *args, **kwargs):
+    """Add argument to ArgsDict, has same signature as argparse.add_argument
+
+    Emulates the the argparse.add_argument method so the internal OrderedDict
+    can be safely and easily populated. Each call to this method will have a 1-1
+    corresponding call to argparse.add_argument once BuildArgParser is called.
+
+    Args:
+      *args: The names for the argument (-V, --verbose, etc.)
+      **kwargs: The options for the argument, corresponds to the args of
+                argparse.add_argument
+
+    Returns:
+      None
+
+    Raises:
+      TypeError: if args is empty or if option in kwargs is not a valid
+                 option for argparse.add_argument.
+    """
+    if len(args) == 0:
+      raise TypeError('Argument needs at least one name')
+
+    for key in kwargs:
+      if key not in self._POSSIBLE_OPTIONS:
+        raise TypeError('Invalid option "%s" for argument %s' % (key, args[0]))
+
+    self[args] = kwargs
+
+
+_ArgsDict = ArgumentDict()
+
+
+def GetArgsDict():
+  """_ArgsDict singleton method"""
+  if not _ArgsDict:
+    _BuildArgsDict(_ArgsDict)
+  return _ArgsDict
+
+
+def BuildArgParser(parser, override=False):
+  """Add all arguments from singleton ArgsDict to parser.
+
+  Will take argparse parser and add all arguments in ArgsDict. Will ignore
+  the default and required options if override is set to True.
+
+  Args:
+    parser: type argparse.ArgumentParser, will call add_argument for every item
+            in _ArgsDict
+    override: True if being called from bisect.py. Used to say that default and
+              required options are to be ignored
+
+  Returns:
+    None
+  """
+  ArgsDict = GetArgsDict()
+
+  # Have no defaults when overriding
+  for arg_names, arg_options in ArgsDict.iteritems():
+    if override:
+      arg_options = arg_options.copy()
+      arg_options.pop('default', None)
+      arg_options.pop('required', None)
+
+    parser.add_argument(*arg_names, **arg_options)
+
+
+def StrToBool(str_in):
+  if str_in.lower() in ['true', 't', '1']:
+    return True
+  if str_in.lower() in ['false', 'f', '0']:
+    return False
+
+  raise AttributeError('%s is not a valid boolean string' % str_in)
+
+
+def _BuildArgsDict(args):
+  """Populate ArgumentDict with all arguments"""
+  args.AddArgument(
+      '-n',
+      '--iterations',
+      dest='iterations',
+      type=int,
+      help='Number of iterations to try in the search.',
+      default=50)
+  args.AddArgument(
+      '-i',
+      '--get_initial_items',
+      dest='get_initial_items',
+      help=('Script to run to get the initial objects. '
+            'If your script requires user input '
+            'the --verbose option must be used'))
+  args.AddArgument(
+      '-g',
+      '--switch_to_good',
+      dest='switch_to_good',
+      help=('Script to run to switch to good. '
+            'If your switch script requires user input '
+            'the --verbose option must be used'))
+  args.AddArgument(
+      '-b',
+      '--switch_to_bad',
+      dest='switch_to_bad',
+      help=('Script to run to switch to bad. '
+            'If your switch script requires user input '
+            'the --verbose option must be used'))
+  args.AddArgument(
+      '-I',
+      '--test_setup_script',
+      dest='test_setup_script',
+      help=('Optional script to perform building, flashing, '
+            'and other setup before the test script runs.'))
+  args.AddArgument(
+      '-t',
+      '--test_script',
+      dest='test_script',
+      help=('Script to run to test the '
+            'output after packages are built.'))
+  # No input (evals to False),
+  # --prune (evals to True),
+  # --prune=False,
+  # --prune=True
+  args.AddArgument(
+      '-p',
+      '--prune',
+      dest='prune',
+      nargs='?',
+      const=True,
+      default=False,
+      type=StrToBool,
+      metavar='bool',
+      help=('If True, continue until all bad items are found. '
+            'Defaults to False.'))
+  # No input (evals to False),
+  # --noincremental (evals to True),
+  # --noincremental=False,
+  # --noincremental=True
+  args.AddArgument(
+      '-c',
+      '--noincremental',
+      dest='noincremental',
+      nargs='?',
+      const=True,
+      default=False,
+      type=StrToBool,
+      metavar='bool',
+      help=('If True, don\'t propagate good/bad changes '
+            'incrementally. Defaults to False.'))
+  # No input (evals to False),
+  # --file_args (evals to True),
+  # --file_args=False,
+  # --file_args=True
+  args.AddArgument(
+      '-f',
+      '--file_args',
+      dest='file_args',
+      nargs='?',
+      const=True,
+      default=False,
+      type=StrToBool,
+      metavar='bool',
+      help=('Whether to use a file to pass arguments to scripts. '
+            'Defaults to False.'))
+  # No input (evals to True),
+  # --verify (evals to True),
+  # --verify=False,
+  # --verify=True
+  args.AddArgument(
+      '--verify',
+      dest='verify',
+      nargs='?',
+      const=True,
+      default=True,
+      type=StrToBool,
+      metavar='bool',
+      help=('Whether to run verify iterations before searching. '
+            'Defaults to True.'))
+  args.AddArgument(
+      '-N',
+      '--prune_iterations',
+      dest='prune_iterations',
+      type=int,
+      help='Number of prune iterations to try in the search.',
+      default=100)
+  # No input (evals to False),
+  # --verbose (evals to True),
+  # --verbose=False,
+  # --verbose=True
+  args.AddArgument(
+      '-V',
+      '--verbose',
+      dest='verbose',
+      nargs='?',
+      const=True,
+      default=False,
+      type=StrToBool,
+      metavar='bool',
+      help='If True, print full output to console.')
+  args.AddArgument(
+      '-r',
+      '--resume',
+      dest='resume',
+      action='store_true',
+      help=('Resume bisection tool execution from state file.'
+            'Useful if the last bisection was terminated '
+            'before it could properly finish.'))
diff --git a/binary_search_tool/common/boot_test.sh b/binary_search_tool/common/boot_test.sh
new file mode 100755
index 0000000..8f6d9a7
--- /dev/null
+++ b/binary_search_tool/common/boot_test.sh
@@ -0,0 +1,22 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script pings the chromebook to determine if it has successfully booted.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on ChromeOS package and object files.
+# It waits for the test setup script to build and install the image, then pings
+# the machine. It should return '0' if the test succeeds (the image booted); '1'
+# if the test fails (the image did not boot); and '125' if it could not
+# determine (does not apply in this case).
+#
+
+source common/common.sh
+
+# Send 3 pings and wait 3 seconds for any responsed (then timeout).
+ping -c 3 -W 3 ${BISECT_REMOTE}
+retval=$?
+
+
+exit $retval
diff --git a/binary_search_tool/common/hash_test.sh b/binary_search_tool/common/hash_test.sh
new file mode 100755
index 0000000..5450988
--- /dev/null
+++ b/binary_search_tool/common/hash_test.sh
@@ -0,0 +1,57 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py. It is to
+# be used for testing/development of the binary search triage tool
+# itself.  It waits for the test setup script to build and install the
+# image, then checks the hashes in the provided file.
+# If the real hashes match the checksum hashes, then the image is 'good',
+# otherwise it is 'bad'.  This allows the rest of the bisecting tool
+# to run without requiring help from the user (as it would if we were
+# dealing with a real 'bad' image).
+#
+
+#
+# Initialize the value below before using this script!!!
+#
+# Make an md5sum of all the files you want to check. For example if you want
+# file1, file2, and file3 to be found as bad items:
+#
+#   md5sum file1 file2 file3 > checksum.out
+#
+# (Make sure you are hashing the files from your good build and that the hashes
+# from good to bad build differ)
+#
+# Then set HASHES_FILE to be the path to 'checksum.out'
+# In this example, file1, file2, file3 will be found as the bad files
+# because their hashes won't match when from the bad build tree. This is
+# assuming that the hashes between good/bad builds change. It is suggested to
+# build good and bad builds at different optimization levels to help ensure
+# each item has a different hash.
+#
+# WARNING:
+# Make sure paths to all files are absolute paths or relative to
+# binary_search_state.py
+#
+# cros_pkg bisector example:
+#   1. Build good packages with -O1, bad packages with -O2
+#   2. cros_pkg/switch_to_good.sh pkg1 pkg2 pkg3
+#   3. md5sum pkg1 pkg2 pkg3 > checksum.out.cros_pkg
+#   4. Set HASHES_FILE to be checksum.out.cros_pkg
+#   5. Run the bisector with this test script
+#
+#
+HASHES_FILE=
+
+if [[ -z "${HASHES_FILE}" || ! -f "${HASHES_FILE}" ]];
+then
+    echo "ERROR: HASHES_FILE must be intialized in common/hash_test.sh"
+    exit 3
+fi
+
+md5sum -c --status ${HASHES_FILE}
+md5_result=$?
+
+
+exit $md5_result
diff --git a/binary_search_tool/common/interactive_test.sh b/binary_search_tool/common/interactive_test.sh
new file mode 100755
index 0000000..8773dd1
--- /dev/null
+++ b/binary_search_tool/common/interactive_test.sh
@@ -0,0 +1,37 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script pings the chromebook to determine if it successfully booted.
+# It then asks the user if the image is good or not, allowing the user to
+# conduct whatever tests the user wishes, and waiting for a response.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on ChromeOS package and object files. It
+# waits for the test setup script to build and install the image, then asks the
+# user if the image is good or not. It should return '0' if the test succeeds
+# (the image is 'good'); '1' if the test fails (the image is 'bad'); and '125'
+# if it could not determine (does not apply in this case).
+#
+
+source common/common.sh
+
+ping -c 3 -W 3 ${BISECT_REMOTE}
+retval=$?
+
+if [[ ${retval} -eq 0 ]]; then
+    echo "ChromeOS image has been built and installed on ${BISECT_REMOTE}."
+else
+    exit 1
+fi
+
+while true; do
+    read -p "Is this a good ChromeOS image?" yn
+    case $yn in
+        [Yy]* ) exit 0;;
+        [Nn]* ) exit 1;;
+        * ) echo "Please answer yes or no.";;
+    esac
+done
+
+exit 125
diff --git a/binary_search_tool/common/test_setup.sh b/binary_search_tool/common/test_setup.sh
new file mode 100755
index 0000000..c4f5f69
--- /dev/null
+++ b/binary_search_tool/common/test_setup.sh
@@ -0,0 +1,166 @@
+#!/bin/bash
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This is a generic ChromeOS package/image test setup script. It is meant to
+# be used for either the object file or package bisection tools. This script
+# does one of the following depending on what ${BISECT_MODE} is set to:
+#
+# 1) ${BISECT_MODE} is PACKAGE_MODE:
+#   build_image is called and generates a new ChromeOS image using whatever
+#   packages are currently in the build tree. This image is then pushed to the
+#   remote machine using flash over ethernet (or usb flash if ethernet flash
+#   fails).
+#
+# 2) ${BISECT_MODE} is OBJECT_MODE:
+#   emerge is called for ${BISECT_PACKAGE} and generates a build for said
+#   package. This package is then deployed to the remote machine and the machine
+#   is rebooted. If deploying fails then a new ChromeOS image is built from
+#   scratch and pushed to the machine like in PACKAGE_MODE.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on ChromeOS objects and packages. It should
+# return '0' if the setup succeeds; and '1' if the setup fails (the image
+# could not build or be flashed).
+#
+
+export PYTHONUNBUFFERED=1
+
+source common/common.sh
+
+usb_flash()
+{
+  echo
+  echo "Insert a usb stick into the current machine"
+  echo "Note: The cros flash will take time and doesn't give much output."
+  echo "      Be patient. If your usb access light is flashing it's working."
+  sleep 1
+  read -p "Press enter to continue" notused
+
+  cros flash --board=${BISECT_BOARD} --clobber-stateful usb:// ~/trunk/src/build/images/${BISECT_BOARD}/latest/chromiumos_test_image.bin
+
+  echo
+  echo "Flash to usb complete!"
+  echo "Plug the usb into your chromebook and install the image."
+  echo "Refer to the ChromiumOS Developer's Handbook for more details."
+  echo "http://www.chromium.org/chromium-os/developer-guide#TOC-Boot-from-your-USB-disk"
+  while true; do
+    sleep 1
+    read -p "Was the installation of the image successful? " choice
+    case $choice in
+        [Yy]*) return 0;;
+        [Nn]*) return 1;;
+        *) echo "Please answer y or n.";;
+    esac
+  done
+}
+
+ethernet_flash()
+{
+  echo
+  echo "Please ensure your Chromebook is up and running Chrome so"
+  echo "cros flash may run."
+  echo "If your Chromebook has a broken image you can try:"
+  echo "1. Rebooting your Chromebook 6 times to install the last working image"
+  echo "2. Alternatively, running the following command on the Chromebook"
+  echo "   will also rollback to the last working image:"
+  echo "   'update_engine_client --rollback --nopowerwash --reboot'"
+  echo "3. Flashing a new image through USB"
+  echo
+  sleep 1
+  read -p $'Press enter to continue and retry the ethernet flash' notused
+  cros flash --board=${BISECT_BOARD} --clobber-stateful ${BISECT_REMOTE} ~/trunk/src/build/images/${BISECT_BOARD}/latest/chromiumos_test_image.bin
+}
+
+reboot()
+{
+  ret_val=0
+  pushd ~/trunk/src/scripts > /dev/null
+  set -- --remote=${BISECT_REMOTE}
+  . ./common.sh || ret_val=1
+  . ./remote_access.sh || ret_val=1
+  TMP=$(mktemp -d)
+  FLAGS "$@" || ret_val=1
+  remote_access_init || ret_val=1
+  remote_reboot || ret_val=1
+  popd > /dev/null
+
+  return $ret_val
+}
+
+echo
+echo "INSTALLATION BEGIN"
+echo
+
+if [[ "${BISECT_MODE}" == "OBJECT_MODE" ]]; then
+  echo "EMERGING ${BISECT_PACKAGE}"
+  CLEAN_DELAY=0 emerge-${BISECT_BOARD} -C ${BISECT_PACKAGE}
+  emerge-${BISECT_BOARD} ${BISECT_PACKAGE}
+  emerge_status=$?
+
+  if [[ ${emerge_status} -ne 0 ]] ; then
+    echo "emerging ${BISECT_PACKAGE} returned a non-zero status: $emerge_status"
+    exit 1
+  fi
+
+  echo
+  echo "DEPLOYING"
+  echo "cros deploy ${BISECT_REMOTE} ${BISECT_PACKAGE}"
+  cros deploy ${BISECT_REMOTE} ${BISECT_PACKAGE} --log-level=info
+  deploy_status=$?
+
+  if [[ ${deploy_status} -eq 0 ]] ; then
+    echo "Deploy successful. Rebooting device..."
+    reboot
+    if [[ $? -ne 0 ]] ; then
+      echo
+      echo "Could not automatically reboot device!"
+      read -p "Please manually reboot device and press enter to continue" notused
+    fi
+    exit 0
+  fi
+
+  echo "Deploy failed! Trying build_image/cros flash instead..."
+  echo
+fi
+
+echo "BUILDING IMAGE"
+pushd ~/trunk/src/scripts
+./build_image test --board=${BISECT_BOARD} --noenable_rootfs_verification --noeclean
+build_status=$?
+popd
+
+if [[ ${build_status} -eq 0 ]] ; then
+    echo
+    echo "FLASHING"
+    echo "Pushing built image onto device."
+    echo "cros flash --board=${BISECT_BOARD} --clobber-stateful ${BISECT_REMOTE} ~/trunk/src/build/images/${BISECT_BOARD}/latest/chromiumos_test_image.bin"
+    cros flash --board=${BISECT_BOARD} --clobber-stateful ${BISECT_REMOTE} ~/trunk/src/build/images/${BISECT_BOARD}/latest/chromiumos_test_image.bin
+    cros_flash_status=$?
+    while [[ ${cros_flash_status} -ne 0 ]] ; do
+        while true; do
+          echo
+          echo "cros flash has failed! From here you can:"
+          echo "1. Flash through USB"
+          echo "2. Retry flashing over ethernet"
+          echo "3. Abort this installation and skip this image"
+          echo "4. Abort this installation and mark test as failed"
+          sleep 1
+          read -p "Which method would you like to do? " choice
+          case $choice in
+              1) usb_flash && break;;
+              2) ethernet_flash && break;;
+              3) exit 125;;
+              4) exit 1;;
+              *) echo "Please answer 1, 2, 3, or 4.";;
+          esac
+        done
+
+        cros_flash_status=$?
+    done
+else
+    echo "build_image returned a non-zero status: ${build_status}"
+    exit 1
+fi
+
+exit 0
diff --git a/binary_search_tool/compiler_wrapper.py b/binary_search_tool/compiler_wrapper.py
new file mode 100755
index 0000000..3d6403a
--- /dev/null
+++ b/binary_search_tool/compiler_wrapper.py
@@ -0,0 +1,63 @@
+#!/usr/bin/python2
+"""Prototype compiler wrapper.
+
+Only tested with: gcc, g++, clang, clang++
+Installation instructions:
+  1. Rename compiler from <compiler_name> to <compiler_name>.real
+  2. Create symlink from this script (compiler_wrapper.py), and name it
+     <compiler_name>. compiler_wrapper.py can live anywhere as long as it is
+     executable.
+
+Reference page:
+https://sites.google.com/a/google.com/chromeos-toolchain-team-home2/home/team-tools-and-scripts/bisecting-chromeos-compiler-problems/bisection-compiler-wrapper
+
+Design doc:
+https://docs.google.com/document/d/1yDgaUIa2O5w6dc3sSTe1ry-1ehKajTGJGQCbyn0fcEM
+"""
+
+from __future__ import print_function
+
+import os
+import shlex
+import sys
+
+import bisect_driver
+
+WRAPPED = '%s.real' % sys.argv[0]
+BISECT_STAGE = os.environ.get('BISECT_STAGE')
+DEFAULT_BISECT_DIR = os.path.expanduser('~/ANDROID_BISECT')
+BISECT_DIR = os.environ.get('BISECT_DIR') or DEFAULT_BISECT_DIR
+
+
+def ProcessArgFile(arg_file):
+  args = []
+  # Read in entire file at once and parse as if in shell
+  with open(arg_file, 'rb') as f:
+    args.extend(shlex.split(f.read()))
+
+  return args
+
+
+def Main(_):
+  if not os.path.islink(sys.argv[0]):
+    print("Compiler wrapper can't be called directly!")
+    return 1
+
+  execargs = [WRAPPED] + sys.argv[1:]
+
+  if BISECT_STAGE not in bisect_driver.VALID_MODES or '-o' not in execargs:
+    os.execv(WRAPPED, [WRAPPED] + sys.argv[1:])
+
+  # Handle @file argument syntax with compiler
+  for idx, _ in enumerate(execargs):
+    # @file can be nested in other @file arguments, use While to re-evaluate
+    # the first argument of the embedded file.
+    while execargs[idx][0] == '@':
+      args_in_file = ProcessArgFile(execargs[idx][1:])
+      execargs = execargs[0:idx] + args_in_file + execargs[idx + 1:]
+
+  bisect_driver.bisect_driver(BISECT_STAGE, BISECT_DIR, execargs)
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv[1:]))
diff --git a/binary_search_tool/cros_pkg/README.cros_pkg_triage b/binary_search_tool/cros_pkg/README.cros_pkg_triage
new file mode 100644
index 0000000..5e28500
--- /dev/null
+++ b/binary_search_tool/cros_pkg/README.cros_pkg_triage
@@ -0,0 +1,185 @@
+
+binary_search_state.py is a general binary search triage tool that
+performs a binary search on a set of things to try to identify which
+thing or thing(s) in the set is 'bad'.  binary_search_state.py assumes
+that the user has two sets, one where everything is known to be good,
+ane one which contains at least one bad item.  binary_search_state.py
+then copies items from the good and bad sets into a working set and
+tests the result (good or bad).  binary_search_state.py requires that
+a set of scripts be supplied to it for any particular job.  For more
+information on binary_search_state.py, see
+
+https://sites.google.com/a/google.com/chromeos-toolchain-team-home2/home/team-tools-and-scripts/binary-searcher-tool-for-triage
+
+This particular set of scripts is designed to work wtih
+binary_search_state.py in order to find the bad package or set of
+packages in a ChromeOS build.
+
+
+QUICKSTART:
+
+After setting up your 3 build trees (see Prerequisites section), do the
+following:
+
+ - Decide which test script to use (boot_test.sh or
+   interactive_test.sh)
+ - Get the IP name or address of the chromebook you will use for testing.
+ - Do the following inside your chroot:
+
+   $ cd ~/trunk/src/third_party/toolchain_utils/binary_search_tool
+   $ ./cros_pkg/setup.sh <board-to-test> <IP-name-or-address-of-chromebook>
+
+   If you chose the boot test, then:
+
+   $ python ./binary_search_state.py \
+       --get_initial_items=cros_pkg/get_initial_items.sh \
+       --switch_to_good=cros_pkg/switch_to_good.sh \
+       --switch_to_bad=cros_pkg/switch_to_bad.sh \
+       --test_setup_script=cros_pkg/test_setup.sh \
+       --test_script=cros_pkg/boot_test.sh \
+       --file_args \
+       --prune
+
+   Otherwise, if you chose the interactive test, then:
+
+   $ python ./binary_search_state.py \
+       --get_initial_items=cros_pkg/get_initial_items.sh \
+       --switch_to_good=cros_pkg/switch_to_good.sh \
+       --switch_to_bad=cros_pkg/switch_to_bad.sh \
+       --test_setup_script=cros_pkg/test_setup.sh \
+       --test_script=cros_pkg/interactive_test.sh \
+       --file_args \
+       --prune
+
+   Once you have completely finished doing the binary search/triage,
+   run the genereated cleanup script, to restore your chroot to the state
+   it was in before you ran the setup.sh script:
+
+   $ cros_pkg/${BOARD}_cleanup.sh
+
+
+
+FILES AND SCRIPTS:
+
+  boot_test.sh - One of two possible test scripts used to determine
+                 if the ChromeOS image built from the packages is good
+                 or bad.  This script tests to see if the image
+                 booted, and requires no user intervention.
+
+  create_cleanup_script.py - This is called by setup.sh, to
+                             generate ${BOARD}_cleanup.sh,
+                             which is supposed to be run by the user
+                             after the binary search triage process is
+                             finished, to undo the changes made by
+                             setup.sh and return everything
+                             to its original state.
+
+  get_initial_items.sh - This script is used to determine the current
+                         set of ChromeOS packages.
+
+  test_setup.sh - This script will build and flash your image to the
+                  remote machine. If the flash fails, this script will
+                  help the user troubleshoot by flashing through usb or
+                  by retrying the flash over ethernet.
+
+  interactive_test.sh - One of two possible scripts used to determine
+                        if the ChromeOS image built from the packages
+                        is good or bad.  This script requires user
+                        interaction to determine if the image is
+                        good or bad.
+
+  setup.sh - This is the first script the user should call, after
+             taking care of the prerequisites.  It sets up the
+             environment appropriately for running the ChromeOS
+             package binary search triage, and it generates two
+             necessary scripts (see below).
+
+  switch_to_bad.sh - This script is used to copy packages from the
+                     'bad' build tree into the work area.
+
+  switch_to_good.sh - This script is used to copy packages from the
+                      good' build tree into the work area.
+
+
+GENERATED SCRIPTS:
+
+  common.sh  - contains basic environment variable definitions for
+               this binary search triage session.
+
+  ${BOARD}_cleanup.sh - script to undo all the changes made by
+                        running setup.sh, and returning
+                        everything to its original state. The user
+                        should manually run this script once the
+                        binary search triage process is over.
+
+ASSUMPTIONS:
+
+- There are two different ChromeOS builds, for the same board, with the
+  same set of ChromeOS packages.  One build creates a good working ChromeOS
+  image and the other does not.
+
+- You have saved the complete build trees for both the good and bad builds.
+
+
+PREREQUISITES FOR USING THESE SCRIPTS (inside the chroot):
+
+- The "good" build tree, for the board, is in /build/${board}.good
+  (e.g. /build/lumpy.good or /build/daisy.good).
+
+- The "bad" build tree is in /build/${board}.bad
+  (e.g. /build/lumpy.bad or /build/daisy.bad).
+
+- You made a complete copy of the "bad" build tree , and put it in
+  /build/${board}.work (e.g. /build/lumpy.work or /build/daisy.work.
+  The easiest way to do this is to use something similar to the
+  following set of commands (this example assumes the board is
+  'lumpy'):
+
+   $ cd /build
+   $ sudo tar -cvf lumpy.bad.tar lumpy.bad
+   $ sudo mv lumpy.bad lumpy.work
+   $ sudo tar -xvf lumpy.bad.tar
+
+
+USING THESE SCRIPTS FOR BINARY TRIAGE OF PACKAGES:
+
+To use these scripts, you must first run setup.sh, passing it two
+arguments (in order): the board for which you are building the image;
+and the name or ip address of the chromebook you want to use for
+testing your chromeos images.  setup.sh will do the following:
+
+   - Verify that your build trees are set up correctly (with good, bad
+     and work).
+   - Create a soft link for /build/${board} pointing to the work build
+     tree.
+   - Create the common.sh file that the other scripts passed to the
+     binary triage tool will need.
+   - Create a cleanup script, ${board}_cleanup.sh, for you to
+     run after you are done with the binary triages, to undo all of these
+     various changes that setup.sh did.
+
+
+This set of scripts comes with two alternate test scripts.  One test
+script, boot_test.sh, just checks to make sure that the image
+booted (i.e. responds to ping) and assumes that is enough.  The other
+test script, interactive_test.sh, is interactive and asks YOU
+to tell it whether the image on the chromebook is ok or not (it
+prompts you and waits for a response).
+
+
+Once you have run setup.sh (and decided which test script you
+want to use) run the binary triage tool using these scripts to
+isolate/identify the bad package:
+
+~/trunk/src/third_party/toolchain_utils/binary_search_tool/binary_search_state.py \
+ --get_initial_items=cros_pkg/get_initial_items.sh \
+ --switch_to_good=cros_pkg/switch_to_good.sh \
+ --switch_to_bad=cros_pkg/switch_to_bad.sh \
+ --test_setup_script=cros_pkg/test_setup.sh \
+ --test_script=cros_pkg/boots_test.sh \  # could use interactive_test.sh instead
+ --prune
+
+
+After you have finished running the tool and have identified the bad
+package(s), you will want to run the cleanup script that setup.sh
+generated (cros_pkg/${BOARD}_cleanup.sh).
diff --git a/binary_search_tool/cros_pkg/boot_test.sh b/binary_search_tool/cros_pkg/boot_test.sh
new file mode 120000
index 0000000..9a34561
--- /dev/null
+++ b/binary_search_tool/cros_pkg/boot_test.sh
@@ -0,0 +1 @@
+../common/boot_test.sh
\ No newline at end of file
diff --git a/binary_search_tool/cros_pkg/create_cleanup_script.py b/binary_search_tool/cros_pkg/create_cleanup_script.py
new file mode 100755
index 0000000..32a1f16
--- /dev/null
+++ b/binary_search_tool/cros_pkg/create_cleanup_script.py
@@ -0,0 +1,114 @@
+#!/usr/bin/python2
+#
+#  Copyright 2015 Google Inc. All Rights Reserved
+"""The script to generate a cleanup script after setup.sh.
+
+This script takes a set of flags, telling it what setup.sh changed
+during the set up process. Based on the values of the input flags, it
+generates a cleanup script, named ${BOARD}_cleanup.sh, which will
+undo the changes made by setup.sh, returning everything to its
+original state.
+"""
+
+from __future__ import print_function
+
+import argparse
+import sys
+
+
+def Usage(parser, msg):
+  print('ERROR: ' + msg)
+  parser.print_help()
+  sys.exit(1)
+
+
+def Main(argv):
+  """Generate a script to undo changes done by setup.sh
+
+    The script setup.sh makes a change that needs to be
+    undone, namely it creates a soft link making /build/${board} point
+    to /build/${board}.work.  To do this, it had to see if
+    /build/${board} already existed, and if so, whether it was a real
+    tree or a soft link.  If it was soft link, it saved the old value
+    of the link, then deleted it and created the new link.  If it was
+    a real tree, it renamed the tree to /build/${board}.save, and then
+    created the new soft link.  If the /build/${board} did not
+    previously exist, then it just created the new soft link.
+
+    This function takes arguments that tell it exactly what setup.sh
+    actually did, then generates a script to undo those exact changes.
+  """
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '--board',
+      dest='board',
+      required=True,
+      help='Chromeos board for packages/image.')
+
+  parser.add_argument(
+      '--old_tree_missing',
+      dest='tree_existed',
+      action='store_false',
+      help='Did /build/${BOARD} exist.',
+      default=True)
+
+  parser.add_argument(
+      '--renamed_tree',
+      dest='renamed_tree',
+      action='store_true',
+      help='Was /build/${BOARD} saved & renamed.',
+      default=False)
+
+  parser.add_argument(
+      '--old_link',
+      dest='old_link',
+      help=('The original build tree soft link.'))
+
+  options = parser.parse_args(argv[1:])
+
+  if options.old_link or options.renamed_tree:
+    if not options.tree_existed:
+      Usage(parser, 'If --tree_existed is False, cannot have '
+            '--renamed_tree or --old_link')
+
+  if options.old_link and options.renamed_tree:
+    Usage(parser, '--old_link and --renamed_tree are incompatible options.')
+
+  if options.tree_existed:
+    if not options.old_link and not options.renamed_tree:
+      Usage(parser, 'If --tree_existed is True, then must have either '
+            '--old_link or --renamed_tree')
+
+  out_filename = 'cros_pkg/' + options.board + '_cleanup.sh'
+
+  with open(out_filename, 'w') as out_file:
+    out_file.write('#!/bin/bash\n\n')
+    # First, remove the 'new' soft link.
+    out_file.write('sudo rm /build/%s\n' % options.board)
+    if options.tree_existed:
+      if options.renamed_tree:
+        # Old build tree existed and was a real tree, so it got
+        # renamed.  Move the renamed tree back to the original tree.
+        out_file.write('sudo mv /build/%s.save /build/%s\n' %
+                       (options.board, options.board))
+      else:
+        # Old tree existed and was already a soft link.  Re-create the
+        # original soft link.
+        original_link = options.old_link
+        if original_link[0] == "'":
+          original_link = original_link[1:]
+        if original_link[-1] == "'":
+          original_link = original_link[:-1]
+        out_file.write('sudo ln -s %s /build/%s\n' % (original_link,
+                                                      options.board))
+    out_file.write('\n')
+    # Remove common.sh file
+    out_file.write('rm common/common.sh\n')
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/binary_search_tool/cros_pkg/get_initial_items.sh b/binary_search_tool/cros_pkg/get_initial_items.sh
new file mode 100755
index 0000000..49ca3d1
--- /dev/null
+++ b/binary_search_tool/cros_pkg/get_initial_items.sh
@@ -0,0 +1,16 @@
+#!/bin/bash -u
+#
+# Copyright 2015 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on ChromeOS packages.  This script
+# generates the list of current ChromeOS packages, that is then used
+# for doing the binary search.
+#
+
+source common/common.sh
+
+cd ${GOOD_BUILD}/packages
+find . -name "*.tbz2"
+
+
diff --git a/binary_search_tool/cros_pkg/interactive_test.sh b/binary_search_tool/cros_pkg/interactive_test.sh
new file mode 120000
index 0000000..18fe395
--- /dev/null
+++ b/binary_search_tool/cros_pkg/interactive_test.sh
@@ -0,0 +1 @@
+../common/interactive_test.sh
\ No newline at end of file
diff --git a/binary_search_tool/cros_pkg/setup.sh b/binary_search_tool/cros_pkg/setup.sh
new file mode 100755
index 0000000..ae31fa8
--- /dev/null
+++ b/binary_search_tool/cros_pkg/setup.sh
@@ -0,0 +1,123 @@
+#!/bin/bash -u
+#
+# Copyright 2015 Google Inc. All Rights Reserved.
+#
+# This script is part of the ChromeOS package binary search triage process.
+# It should be the first script called by the user, after the user has set up
+# the three necessary build tree directories (see the prerequisites section of
+# README.cros_pkg_triage).
+#
+# This script requires two arguments.  The first argument must be the name of
+# the board for which this work is being done (e.g. 'daisy', 'lumpy','parrot',
+# etc.).  The second argument must be the name or IP address of the chromebook
+# on which the ChromeOS images will be pushed and tested.
+#
+# This script sets up a soft link definining /build/${board} to point
+# to the working build tree, for the binary search triags process.  In
+# addition, this script generates two other scripts, common.sh,
+# which generates enviroment variables used by the other scripts in the
+# package binary search triage process; and ${board}_cleanup.sh,
+# which undoes the various changes that this script performs, returning the
+# user's environment to its original state.
+#
+
+# Set up basic variables.
+
+BOARD=$1
+REMOTE=$2
+
+GOOD_BUILD=/build/${BOARD}.good
+BAD_BUILD=/build/${BOARD}.bad
+WORK_BUILD=/build/${BOARD}.work
+
+#
+# Verify that the necessary directories exist.
+#
+
+if [[ ! -d ${GOOD_BUILD} ]] ; then
+    echo "Error:  ${GOOD_BUILD} does not exist."
+    exit 1
+fi
+
+if [[ ! -d ${BAD_BUILD} ]] ; then
+    echo "Error:  ${BAD_BUILD} does not exist."
+    exit 1
+fi
+
+if [[ ! -d ${WORK_BUILD} ]] ; then
+    echo "Error:  ${WORK_BUILD} does not exist."
+    exit 1
+fi
+
+#
+# Check to see if /build/${BOARD} already exists and if so, in what state.
+# Set appropriate flags & values, in order to be able to undo these changes
+# in ${board}_cleanup.sh. If it's a soft link, remove it; if it's a
+# read tree, rename it.
+#
+
+build_tree_existed=0
+build_tree_was_soft_link=0
+build_tree_renamed=0
+build_tree_link=""
+
+if [[ -d "/build/${BOARD}" ]] ; then
+    build_tree_existed=1
+    if [[ -L "/build/${BOARD}" ]] ; then
+        build_tree_was_soft_link=1
+        build_tree_link=`readlink /build/${BOARD}`
+        sudo rm /build/${BOARD}
+    else
+        build_tree_renamed=1
+        sudo mv /build/${BOARD} /build/${BOARD}.save
+    fi
+fi
+
+# Make "working' tree the default board tree (set up soft link)
+
+sudo ln -s /build/${BOARD}.work /build/${BOARD}
+
+#
+# Create common.sh file, containing appropriate environment variables.
+#
+
+COMMON_FILE="common/common.sh"
+
+cat <<-EOF > ${COMMON_FILE}
+
+BISECT_BOARD=${BOARD}
+BISECT_REMOTE=${REMOTE}
+BISECT_MODE="PACKAGE_MODE"
+
+GOOD_BUILD=/build/${BOARD}.good
+BAD_BUILD=/build/${BOARD}.bad
+WORK_BUILD=/build/${BOARD}.work
+
+EOF
+
+chmod 755 ${COMMON_FILE}
+
+#
+# Create clean-up script, calling create_cleanup_script.py with
+# the appropriate flags.
+#
+
+if [[ ${build_tree_existed} -eq 0 ]] ; then
+
+    python cros_pkg/create_cleanup_script.py --board=${BOARD} \
+        --old_tree_missing
+
+elif [[ ${build_tree_was_soft_link} -eq 0 ]] ; then
+
+    python cros_pkg/create_cleanup_script.py --board=${BOARD} \
+        --renamed_tree
+
+else
+
+    python cros_pkg/create_cleanup_script.py --board=${BOARD} \
+        --old_link="'${build_tree_link}'"
+fi
+
+chmod 755 cros_pkg/${BOARD}_cleanup.sh
+
+exit 0
diff --git a/binary_search_tool/cros_pkg/switch_to_bad.sh b/binary_search_tool/cros_pkg/switch_to_bad.sh
new file mode 100755
index 0000000..126425f
--- /dev/null
+++ b/binary_search_tool/cros_pkg/switch_to_bad.sh
@@ -0,0 +1,46 @@
+#!/bin/bash -u
+#
+# Copyright 2015 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on ChromeOS packages.  This script
+# copies a list of packages from the 'bad' build tree into the working
+# build tree, for testing.
+#
+
+source common/common.sh
+
+pushd ${WORK_BUILD}
+
+PKG_LIST_FILE=$1
+
+overall_status=0
+
+if [[ -f ${PKG_LIST_FILE} ]] ; then
+
+  # Read every line, and handle case where last line has no newline
+  while read pkg || [[ -n "$pkg" ]];
+  do
+    sudo cp ${BAD_BUILD}/packages/$pkg ${WORK_BUILD}/packages/$pkg
+    status=$?
+    if [[ ${status} -ne 0 ]] ; then
+      echo "Failed to copy ${pkg} to work build tree."
+      overall_status=2
+    fi
+  done < ${PKG_LIST_FILE}
+else
+
+  for o in "$@"
+  do
+    sudo cp ${BAD_BUILD}/packages/$o  ${WORK_BUILD}/packages/$o
+    status=$?
+    if [[ ${status} -ne 0 ]] ; then
+      echo "Failed to copy ${pkg} to work build tree."
+      overall_status=2
+    fi
+  done
+fi
+
+popd
+
+exit ${overall_status}
diff --git a/binary_search_tool/cros_pkg/switch_to_good.sh b/binary_search_tool/cros_pkg/switch_to_good.sh
new file mode 100755
index 0000000..a9095e9
--- /dev/null
+++ b/binary_search_tool/cros_pkg/switch_to_good.sh
@@ -0,0 +1,46 @@
+#!/bin/bash -u
+#
+# Copyright 2015 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on ChromeOS packages.  This script
+# copies a list of packages from the 'good' build tree into the working
+# build tree, for testing.
+#
+
+source common/common.sh
+
+pushd ${WORK_BUILD}
+
+PKG_LIST_FILE=$1
+
+overall_status=0
+
+if [[ -f ${PKG_LIST_FILE} ]] ; then
+
+  # Read every line, and handle case where last line has no newline
+  while read pkg || [[ -n "$pkg" ]];
+  do
+    sudo cp ${GOOD_BUILD}/packages/$pkg ${WORK_BUILD}/packages/$pkg
+    status=$?
+    if [[ ${status} -ne 0 ]] ; then
+      echo "Failed to copy ${pkg} to work build tree."
+      overall_status=2
+    fi
+  done < ${PKG_LIST_FILE}
+else
+
+  for o in "$@"
+  do
+    sudo cp ${GOOD_BUILD}/packages/$o  ${WORK_BUILD}/packages/$o
+    status=$?
+    if [[ ${status} -ne 0 ]] ; then
+      echo "Failed to copy ${pkg} to work build tree."
+      overall_status=2
+    fi
+  done
+fi
+
+popd
+
+exit ${overall_status}
diff --git a/binary_search_tool/cros_pkg/test_setup.sh b/binary_search_tool/cros_pkg/test_setup.sh
new file mode 120000
index 0000000..39e715f
--- /dev/null
+++ b/binary_search_tool/cros_pkg/test_setup.sh
@@ -0,0 +1 @@
+../common/test_setup.sh
\ No newline at end of file
diff --git a/binary_search_tool/ndk/DO_BISECTION.sh b/binary_search_tool/ndk/DO_BISECTION.sh
new file mode 100755
index 0000000..298d574
--- /dev/null
+++ b/binary_search_tool/ndk/DO_BISECTION.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This is an example script to show users the steps for bisecting an NDK
+# application for Android. Our example is the Teapot app that comes bundled with
+# the NDK as a sample app.
+#
+# Our Teapot app only has 12 or so object files generated per build. Bisection
+# for just 12 object files is overkill, but this bisection process easily scales
+# to thousands of object files (as seen with the Android source).
+#
+# Setup:
+#   1. Install NDK (make sure it is in your PATH)
+#   2. Install compiler_wrapper.py
+#   3. Connect an arm7 device (tested with Nexus 5X)
+#     a. See README for supporting other device archs
+#
+# Tested in bash on Linux.
+
+# Set CWD to where this script lives
+pushd "$(dirname "$0")"
+
+# If Teapot dir already exists remove it.
+if [[ -d Teapot ]]; then
+  rm -rf Teapot
+fi
+
+# Unzip our repository we'll be testing with.
+tar -xzf Teapot.tar.gz
+
+# Apply small setup patch. This patch makes a small change to the build system
+# to make this bisecting example a little easier. It inserts the option to only
+# build for an arm7. See the patch file for details.
+# (This patch file was generated with git, -p1 will remove the a/ and b/)
+patch -p1 -i PATCH1
+
+# We want all of our cached files to be stored in ~/NDK_EXAMPLE_BISECT
+# Remove directory if already exists
+export BISECT_DIR=~/NDK_EXAMPLE_BISECT
+if [[ -d ${BISECT_DIR} ]]; then
+  rm -rf ${BISECT_DIR}
+fi
+
+# We will now take our normal "good compiler" and do a full build of the app. We
+# need to clean before building. This ensures that all objects are generated and
+# can be cached.
+pushd Teapot
+export BISECT_STAGE=POPULATE_GOOD
+./gradlew clean
+./gradlew installArm7Debug
+popd
+
+# Inserting "compiler error". Really this is just a patch that inserts a simple
+# error in the code, but this is used to simulate our compiler error. This patch
+# will simply cause the app to crash as soon as it starts. See the patch file
+# for details.
+# (This patch file was generated with git, -p1 will remove the a/ and b/)
+patch -p1 -i PATCH2
+
+# Now that we have installed our bad compiler (i.e. applied the above patch that
+# acts like a compiler error), we want to enumerate and cache all objects
+# generated by this "bad compiler". So again, we clean the build tree so that
+# all objects are regenerated and can be cached.
+pushd Teapot
+export BISECT_STAGE=POPULATE_BAD
+./gradlew clean
+./gradlew installArm7Debug
+popd
+
+# Now ~/NDK_EXAMPLE_BISECT holds the caches for both good and bad compiler
+# outputs. We will now use these to bisect our problem. We should find that
+# TeapotRenderer.o is the bad file (because this is where PATCH2 inserted the
+# "compiler error").
+
+# Tell the compiler wrapper to not cache outputs, and instead begin bisecting.
+export BISECT_STAGE=TRIAGE
+
+# Run the actual bisection tool. This will automatically narrow down which
+# object file has the error. The test_setup.sh script will rebuild our app
+# with gradle, and boot_test.sh will ping the device to see if the app crashed
+# or not.
+cd ..
+./binary_search_state.py \
+  --get_initial_items=ndk/get_initial_items.sh \
+  --switch_to_good=ndk/switch_to_good.sh \
+  --switch_to_bad=ndk/switch_to_bad.sh \
+  --test_setup_script=ndk/test_setup.sh \
+  --test_script=ndk/boot_test.sh \
+  --file_args
+
+popd
diff --git a/binary_search_tool/ndk/PATCH1 b/binary_search_tool/ndk/PATCH1
new file mode 100644
index 0000000..eddf61c
--- /dev/null
+++ b/binary_search_tool/ndk/PATCH1
@@ -0,0 +1,40 @@
+From 93395bf49f856abac5ab06d4bcaa7cdbf76a77fc Mon Sep 17 00:00:00 2001
+From: Cassidy Burden <cburden@google.com>
+Date: Tue, 9 Aug 2016 09:38:41 -0700
+Subject: [PATCH] FOR BINARY SEARCH TOOL: Add arm7 target
+
+Add arm7 target to build.gradle file. This is so the bisection tool only
+has to triage the object files generated for our specific device.
+Without this target we would have to binary search across object files
+meant for x86 targets (that we can't even test on our ARM device).
+---
+ Teapot/app/build.gradle | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/Teapot/app/build.gradle b/Teapot/app/build.gradle
+index 78cf54d..c322114 100644
+--- a/Teapot/app/build.gradle
++++ b/Teapot/app/build.gradle
+@@ -29,7 +29,7 @@ model {
+             cppFlags.addAll(['-I' + "${ndkDir}/sources/android/cpufeatures",
+                              '-I' + file('src/main/jni/ndk_helper')])
+             cppFlags.addAll(['-std=c++11', '-Wall',
+-                             '-fno-exceptions', '-fno-rtti'])
++                             '-fno-exceptions', '-fno-rtti', '-gsplit-dwarf'])
+             ldLibs.addAll(['android', 'log', 'EGL', 'GLESv2','atomic'])
+         }
+         sources {
+@@ -51,5 +51,10 @@ model {
+                 proguardFiles.add(file('proguard-rules.txt'))
+             }
+         }
++	productFlavors{
++            create("arm7") {
++                ndk.abiFilters.add("armeabi-v7a")
++            }
++	}
+     }
+ }
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/binary_search_tool/ndk/PATCH2 b/binary_search_tool/ndk/PATCH2
new file mode 100644
index 0000000..9fcf45d
--- /dev/null
+++ b/binary_search_tool/ndk/PATCH2
@@ -0,0 +1,34 @@
+From 960134fb87a194595f2a0a36290be7961e12b946 Mon Sep 17 00:00:00 2001
+From: Cassidy Burden <cburden@google.com>
+Date: Tue, 9 Aug 2016 09:46:27 -0700
+Subject: [PATCH] FOR BISECTION TOOL: Insert error
+
+Insert error into code that will cause crash. This is the "compiler
+error" that we will be triaging. We will be pretending the compiler
+mistakenly inserted a nullptr where it shouldn't have.
+
+This error causes the app to immediately crash upon starting. This makes
+it very easy to automatically test the app through adb. Not all compiler
+problems will be this easy to test, and may require manual testing from
+you (the user). See android/interactive_test.sh for an example on
+manual testing from the user.
+---
+ Teapot/app/src/main/jni/TeapotRenderer.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Teapot/app/src/main/jni/TeapotRenderer.cpp b/Teapot/app/src/main/jni/TeapotRenderer.cpp
+index 7cafdb3..75cadbf 100644
+--- a/Teapot/app/src/main/jni/TeapotRenderer.cpp
++++ b/Teapot/app/src/main/jni/TeapotRenderer.cpp
+@@ -58,7 +58,7 @@ void TeapotRenderer::Init() {
+   num_vertices_ = sizeof(teapotPositions) / sizeof(teapotPositions[0]) / 3;
+   int32_t stride = sizeof(TEAPOT_VERTEX);
+   int32_t index = 0;
+-  TEAPOT_VERTEX* p = new TEAPOT_VERTEX[num_vertices_];
++  TEAPOT_VERTEX* p = nullptr; //new TEAPOT_VERTEX[num_vertices_];
+   for (int32_t i = 0; i < num_vertices_; ++i) {
+     p[i].pos[0] = teapotPositions[index];
+     p[i].pos[1] = teapotPositions[index + 1];
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/binary_search_tool/ndk/README b/binary_search_tool/ndk/README
new file mode 100644
index 0000000..324d139
--- /dev/null
+++ b/binary_search_tool/ndk/README
@@ -0,0 +1,84 @@
+
+This is an example bisection for an NDK build system. This example specifically
+bisects the sample NDK Teapot app. All steps (setup and otherwise) for bisection
+can be found in DO_BISECTION.sh. This shell script is meant to show the process
+required to bisect a compiler problem in an arbitrary NDK app build system.
+
+There are three necessary setup steps to run this example:
+
+  1. Install the NDK (known to work with r12b)
+    a. See here for NDK: https://developer.android.com/ndk/index.html
+    b. Go here for older NDK downloads: https://github.com/android-ndk/ndk/wiki
+
+  2. Install the compiler wrapper provided with this repo. See
+     compiler_wrapper.py for more details.
+    a. Essentially you must go into the NDK source (or where you build system
+       stores its toolchain), rename your compilers to <compiler>.real, and
+       create a symlink pointing to compiler_wrapper.py named <compiler>
+       (where your compiler used to be).
+    b. If you're using the toolchains that come with the NDK they live at:
+         <ndk_path>/toolchains/<arch>/prebuilt/<host>/bin
+       example:
+         <ndk_path>/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
+
+  3. Plug in an Arm7 compatible Android device with usb debugging enabled.
+    a. This bisection example was tested with a Nexus 5X
+    b. It should be relatively simple to change the example to work with other
+       types of devices. Just change the scripts, and change PATCH1 to use a
+       different build flavor (like x86). See below for more details.
+
+This example contains two patches:
+
+  PATCH1 - This is the necessary changes to the build system to make the
+  bisection easier. More specifically, it adds an arm7 build flavor to gradle.
+  By default, this project will build objects for all possible architectures and
+  package them into one big apk. These object files meant for another
+  architecture just sit there and don't actually execute. By adding a build
+  flavor for arm7, our compiler wrapper won't try to bisect object files meant
+  for another device.
+
+  PATCH2 - This patch is what inserts the "compiler error". This is a simple
+  nullptr error in one of the source files, but it is meant to mimic bad code
+  generation. The result of the error is the app simply crashes immediately
+  after starting.
+
+Using another device architecture:
+
+  If we want to bisect for an x86-64 device we first need to provide a arch
+  specific build flavor in our app/build.gradle file:
+
+      create("x86-64") {
+        ndk.abiFilters.add("x86_64")
+      }
+
+  We want to add this under the same "productFlavors" section that our arm7
+  build flavor is in (see PATCH1). Now we should have the "installx86-64Debug"
+  task in our build system. We can use this to build and install an x86-64
+  version of our app.
+
+  Now we want to change our test_setup.sh script to run our new gradle task:
+    ./gradlew installx86-64Debug
+
+  Keep in mind, these specific build flavors are not required. If your build
+  system makes these device specific builds difficult to implement, the
+  bisection tool will function perfectly fine without them. However, the
+  downside of not having targetting a single architecture is the bisection will
+  take longer (as it will need to search across more object files).
+
+Additional Documentation:
+  These are internal Google documents, if you are a developer external to
+  Google please ask whoever gave you this sample for access or copies to the
+  documentation. If you cannot gain access, the various READMEs paired with the
+  bisector should help you.
+
+  * Ahmad's original presentation:
+    https://goto.google.com/zxdfyi
+
+  * Bisection tool update design doc:
+    https://goto.google.com/zcwei
+
+  * Bisection tool webpage:
+    https://goto.google.com/ruwpyi
+
+  * Compiler wrapper webpage:
+    https://goto.google.com/xossn
diff --git a/binary_search_tool/ndk/Teapot.tar.gz b/binary_search_tool/ndk/Teapot.tar.gz
new file mode 100644
index 0000000..87faf54
--- /dev/null
+++ b/binary_search_tool/ndk/Teapot.tar.gz
Binary files differ
diff --git a/binary_search_tool/ndk/boot_test.sh b/binary_search_tool/ndk/boot_test.sh
new file mode 100755
index 0000000..b8c34aa
--- /dev/null
+++ b/binary_search_tool/ndk/boot_test.sh
@@ -0,0 +1,27 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script checks the android device to determine if the app is currently
+# running. For our specific test case we will be checking if the Teapot app
+# has crashed.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android NDK apps. It
+# waits for the test setup script to build and install the app, then checks if
+# app boots or not. It should return '0' if the test succeeds
+# (the image is 'good'); '1' if the test fails (the image is 'bad'); and '125'
+# if it could not determine (does not apply in this case).
+#
+
+echo "Starting Teapot app..."
+adb shell am start -n com.sample.teapot/com.sample.teapot.TeapotNativeActivity
+sleep 3
+
+echo "Checking if Teapot app crashed..."
+adb shell ps | grep com.sample.teapot
+
+retval=$?
+
+
+exit ${retval}
diff --git a/binary_search_tool/ndk/get_initial_items.sh b/binary_search_tool/ndk/get_initial_items.sh
new file mode 100755
index 0000000..bc2d05c
--- /dev/null
+++ b/binary_search_tool/ndk/get_initial_items.sh
@@ -0,0 +1,12 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android NDK apps.  This script
+# generates the list of object files to be bisected. This list is generated
+# by the compiler wrapper during the POPULATE_GOOD and POPULATE_BAD stages.
+#
+
+cat ${BISECT_DIR}/good/_LIST
+
diff --git a/binary_search_tool/ndk/switch_to_bad.sh b/binary_search_tool/ndk/switch_to_bad.sh
new file mode 120000
index 0000000..0172bce
--- /dev/null
+++ b/binary_search_tool/ndk/switch_to_bad.sh
@@ -0,0 +1 @@
+switch_to_good.sh
\ No newline at end of file
diff --git a/binary_search_tool/ndk/switch_to_good.sh b/binary_search_tool/ndk/switch_to_good.sh
new file mode 100755
index 0000000..cb8d5fd
--- /dev/null
+++ b/binary_search_tool/ndk/switch_to_good.sh
@@ -0,0 +1,46 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on Android NDK apps. This script simply
+# deletes all given objects, signaling gradle to execute a recompilation of said
+# object files.
+#
+
+# Input is a file, with newline seperated list of files we will be switching
+OBJ_LIST_FILE=$1
+
+# Check that number of arguments == 1
+if [ $# -ne 1 ] ; then
+  echo "ERROR:"
+  echo "Got multiple inputs to switch script!"
+  echo "Run binary_search_state.py with --file_args"
+  exit 1
+fi
+
+# Remove any file that's being switched. This is because Gradle only recompiles
+# if:
+#   1. The resultant object file doesn't exist
+#   2. The hash of the source file has changed
+#
+# Because we have no reliable way to edit the source file, we instead remove the
+# object file and have the compiler wrapper insert the file from the appropriate
+# cache (good or bad).
+#
+# Not entirely relevant to the Teapot example, but something to consider:
+# This removing strategy has the side effect that all switched items cause the
+# invocation of the compiler wrapper, which can add up and slow the build
+# process. With Android's source tree, Make checks the timestamp of the object
+# file. So we symlink in the appropriate file and touch it to tell Make it needs
+# to be relinked. This avoids having to call the compiler wrapper in the
+# majority of cases.
+#
+# However, a similar construct doesn't seem to exist in Gradle. It may be better
+# to add a build target to Gradle that will always relink all given object
+# files. This way we can avoid calling the compiler wrapper while Triaging and
+# save some time. Not really necessary
+
+cat $OBJ_LIST_FILE | xargs rm
+exit 0
+
diff --git a/binary_search_tool/ndk/test_setup.sh b/binary_search_tool/ndk/test_setup.sh
new file mode 100755
index 0000000..477bcb2
--- /dev/null
+++ b/binary_search_tool/ndk/test_setup.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This is the setup script for generating and installing the ndk app.
+#
+# This script is intended to be used by binary_search_state.py, as
+# part of the binary search triage on the Android source tree. It should
+# return '0' if the setup succeeds; and '1' if the setup fails (the image
+# could not build or be flashed).
+#
+
+echo
+echo "INSTALLATION BEGIN"
+echo
+
+# This normally shouldn't be hardcoded, but this is a sample bisection.
+# Also keep in mind that the bisection tool mandates all paths are
+# relative to binary_search_state.py
+cd ndk/Teapot
+
+echo "BUILDING APP"
+
+./gradlew installArm7Debug
+gradle_status=$?
+
+exit ${gradle_status}
diff --git a/binary_search_tool/sysroot_wrapper/README b/binary_search_tool/sysroot_wrapper/README
new file mode 100644
index 0000000..599d700
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/README
@@ -0,0 +1,28 @@
+This is a set of scripts to use when triaging compiler problem by using
+the bisecting functionality included in the sysroot_wrapper.hardened.
+The only script that you need to create for your triaging problem is the
+test_script.sh (The ones in this directory are here only as an example).
+
+Before running the binary searcher tool you will need to run the setup script:
+
+./sysroot_wrapper/setup.sh ${board} ${remote_ip} ${package}
+
+This setup script will ensure your $BISECT_DIR is properly populated and
+generate a common variable script for the convenience of the scripts in
+./sysroot_wrapper
+
+To run the binary searcher tool with these scripts, execute it like this:
+
+./binary_search_state.py --get_initial_items=./sysroot_wrapper/get_initial_items.sh --switch_to_good=./sysroot_wrapper/switch_to_good.sh --switch_to_bad=./sysroot_wrapper/switch_to_bad.sh --test_script=./sysroot_wrapper/test_script.sh --noincremental --file_args 2>&1 | tee /tmp/binary_search.log
+
+Finally once done you will want to run the cleanup script:
+
+./sysroot_wrapper/cleanup.sh
+
+For more information on how to use the sysroot_wrapper to do object file
+triaging see:
+
+https://sites.google.com/a/google.com/chromeos-toolchain-team-home2/home/team-tools-and-scripts/bisecting-compiler-problems
+
+
+
diff --git a/binary_search_tool/sysroot_wrapper/boot_test.sh b/binary_search_tool/sysroot_wrapper/boot_test.sh
new file mode 120000
index 0000000..9a34561
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/boot_test.sh
@@ -0,0 +1 @@
+../common/boot_test.sh
\ No newline at end of file
diff --git a/binary_search_tool/sysroot_wrapper/cleanup.sh b/binary_search_tool/sysroot_wrapper/cleanup.sh
new file mode 100755
index 0000000..5066d63
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/cleanup.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is part of the ChromeOS object binary search triage process.
+# It should be the last script called by the user, after the user has
+# successfully run the bisection tool and found their bad items. This script
+# will perform all necessary cleanup for the bisection tool.
+#
+
+rm common/common.sh
diff --git a/binary_search_tool/sysroot_wrapper/get_initial_items.sh b/binary_search_tool/sysroot_wrapper/get_initial_items.sh
new file mode 100755
index 0000000..c1beb97
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/get_initial_items.sh
@@ -0,0 +1,5 @@
+#!/bin/bash -u
+
+source common/common.sh
+
+cat ${bisect_dir}/good/_LIST
diff --git a/binary_search_tool/sysroot_wrapper/glibc_test_script.sh b/binary_search_tool/sysroot_wrapper/glibc_test_script.sh
new file mode 100755
index 0000000..58413ad
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/glibc_test_script.sh
@@ -0,0 +1,49 @@
+#!/bin/bash -u
+
+# This is an example execution script.
+# This script changes with the problem you are trying to fix.
+# This particular script was used to triage a problem where a glibc
+# compiled with a new compiler would expose a problem in piglit.
+# Note it returns 0 only when the installation of the image succeeded
+# (ie: the machine booted after installation)
+
+source common/common.sh
+
+#export BISECT_STAGE=TRIAGE
+echo "BISECT_STAGE=${BISECT_STAGE}"
+
+echo "State of sets"
+wc -l ${bisect_dir}/*_SET
+
+board=x86-alex
+DUT=172.17.186.180
+
+echo "Cleaning up"
+{ sudo emerge -C cross-i686-pc-linux-gnu/glibc || exit 125; } &>> /tmp/glibc_triage.log
+
+echo "Building"
+{ sudo -E emerge cross-i686-pc-linux-gnu/glibc || exit 125; } &>> /tmp/glibc_triage.log
+
+echo "Building image"
+{ /home/llozano/trunk/src/scripts/build_image --board=${board} test || exit 125; } &>> /tmp/glibc_triage.log
+
+echo "Installing image"
+cros flash ${DUT} latest &> /tmp/tmp_cros_flash_result.log
+
+cat /tmp/tmp_cros_flash_result.log >> /tmp/cros_flash_result.log
+
+grep "Cros Flash completed successfully" /tmp/tmp_cros_flash_result.log || exit 125
+
+echo "Trying piglit"
+
+echo "export DISPLAY=:0.0; echo \$DISPLAY; /usr/local/piglit/lib/piglit/bin/glx-close-display -auto" > /tmp/repro.sh
+SSH_OPTS="-oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no -oServerAliveInterval=10 -i /var/cache/chromeos-cache/distfiles/target/./chrome-src/src/third_party/chromite/ssh_keys/testing_rsa"
+scp ${SSH_OPTS} /tmp/repro.sh root@${DUT}:/tmp
+
+# notice the bash -l here. Otherwise the DISPLAY cannot be set
+( ssh ${SSH_OPTS} root@${DUT} -- /bin/bash -l /tmp/repro.sh ) > /tmp/result
+grep pass /tmp/result || { echo "PIGLIT FAILED"; exit 1; }
+
+echo "PIGLIT PASSED"
+
+exit 0
diff --git a/binary_search_tool/sysroot_wrapper/interactive_test.sh b/binary_search_tool/sysroot_wrapper/interactive_test.sh
new file mode 120000
index 0000000..18fe395
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/interactive_test.sh
@@ -0,0 +1 @@
+../common/interactive_test.sh
\ No newline at end of file
diff --git a/binary_search_tool/sysroot_wrapper/setup.sh b/binary_search_tool/sysroot_wrapper/setup.sh
new file mode 100755
index 0000000..f5907f5
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/setup.sh
@@ -0,0 +1,73 @@
+#!/bin/bash -u
+#
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# This script is part of the ChromeOS object binary search triage process.
+# It should be the first script called by the user, after the user has set up
+# the two necessary build tree directories (see sysroot_wrapper/README).
+#
+# This script requires three arguments.  The first argument must be the name of
+# the board for which this work is being done (e.g. 'daisy', 'lumpy','parrot',
+# etc.).  The second argument must be the name or IP address of the chromebook
+# on which the ChromeOS images will be pushed and tested. The third argument
+# must be the name of the package being bisected (e.g. 'chromeos-chrome',
+# 'cryptohome', etc.).
+#
+# This script generates common/common.sh, which generates enviroment variables
+# used by the other scripts in the object file binary search triage process.
+#
+
+# Set up basic variables.
+bisect_dir=${BISECT_DIR:-/tmp/sysroot_bisect}
+
+BOARD=$1
+REMOTE=$2
+PACKAGE=$3
+
+GOOD_BUILD=${bisect_dir}/good
+BAD_BUILD=${bisect_dir}/bad
+GOOD_LIST=${GOOD_BUILD}/_LIST
+BAD_LIST=${BAD_BUILD}/_LIST
+
+#
+# Verify that the necessary directories exist.
+#
+
+if [[ ! -d ${GOOD_BUILD} ]] ; then
+    echo "Error:  ${GOOD_BUILD} does not exist."
+    exit 1
+fi
+
+if [[ ! -d ${BAD_BUILD} ]] ; then
+    echo "Error:  ${BAD_BUILD} does not exist."
+    exit 1
+fi
+
+if [[ ! -e ${GOOD_LIST} ]] ; then
+    echo "Error:  ${GOOD_LIST} does not exist."
+    exit 1
+fi
+
+if [[ ! -e ${BAD_LIST} ]] ; then
+    echo "Error: ${BAD_LIST} does not exist."
+    exit 1
+fi
+
+COMMON_FILE="common/common.sh"
+
+cat <<-EOF > ${COMMON_FILE}
+
+BISECT_BOARD=${BOARD}
+BISECT_REMOTE=${REMOTE}
+BISECT_PACKAGE=${PACKAGE}
+BISECT_MODE="OBJECT_MODE"
+
+bisect_dir=${bisect_dir}
+
+export BISECT_STAGE=TRIAGE
+
+EOF
+
+chmod 755 ${COMMON_FILE}
+
+exit 0
diff --git a/binary_search_tool/sysroot_wrapper/switch_to_bad.sh b/binary_search_tool/sysroot_wrapper/switch_to_bad.sh
new file mode 100755
index 0000000..32f9678
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/switch_to_bad.sh
@@ -0,0 +1,9 @@
+#!/bin/bash -u
+
+source common/common.sh
+
+# Remove file, signaling to emerge that it needs to be rebuilt. The compiler
+# wrapper will insert the correct object file based on $BISECT_BAD_SET
+cat $1 | sudo xargs rm -f
+
+exit 0
diff --git a/binary_search_tool/sysroot_wrapper/switch_to_good.sh b/binary_search_tool/sysroot_wrapper/switch_to_good.sh
new file mode 100755
index 0000000..f59b278
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/switch_to_good.sh
@@ -0,0 +1,9 @@
+#!/bin/bash -u
+
+source common/common.sh
+
+# Remove file, signaling to emerge that it needs to be rebuilt. The compiler
+# wrapper will insert the correct object file based on $BISECT_GOOD_SET
+cat $1 | sudo xargs rm -f
+
+exit 0
diff --git a/binary_search_tool/sysroot_wrapper/test_script.sh b/binary_search_tool/sysroot_wrapper/test_script.sh
new file mode 100755
index 0000000..2629a18
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/test_script.sh
@@ -0,0 +1,34 @@
+#!/bin/bash -u
+
+# This is an example execution script.
+# This script changes with the problem you are trying to fix.
+# This particular script was used to triage a problem where the kernel
+# would not boot while migrating to GCC 4.9.
+# Note it returns 0 only when the installation of the image succeeded
+# (ie: the machine booted after installation)
+
+source common/common.sh
+
+export BISECT_STAGE=TRIAGE
+echo "BISECT_STAGE=${BISECT_STAGE}"
+
+echo "State of sets"
+wc -l ${bisect_dir}/*_SET
+
+echo "Cleaning up"
+{ /usr/bin/sudo rm -rf /build/falco/var/cache/portage/sys-kernel && emerge-falco -C sys-kernel/chromeos-kernel-3_8-3.8.11-r96 || exit 125; } &>> /tmp/kernel_triage.log
+
+echo "Building"
+{ /usr/local/bin/emerge-falco =sys-kernel/chromeos-kernel-3_8-3.8.11-r96 || exit 125; } &>> /tmp/kernel_triage.log
+
+echo "Building image"
+{ /home/llozano/trunk/src/scripts/build_image --board=falco test || exit 125; } &>> /tmp/kernel_triage.log
+
+echo "Installing image"
+cros flash 172.17.187.150 latest &> /tmp/tmp_cros_flash_result.log
+
+cat /tmp/tmp_cros_flash_result.log >> /tmp/cros_flash_result.log
+
+grep "Cros Flash completed successfully" /tmp/tmp_cros_flash_result.log || exit 1
+
+exit 0
diff --git a/binary_search_tool/sysroot_wrapper/test_setup.sh b/binary_search_tool/sysroot_wrapper/test_setup.sh
new file mode 120000
index 0000000..39e715f
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/test_setup.sh
@@ -0,0 +1 @@
+../common/test_setup.sh
\ No newline at end of file
diff --git a/binary_search_tool/sysroot_wrapper/testing_test.py b/binary_search_tool/sysroot_wrapper/testing_test.py
new file mode 100755
index 0000000..2f7bc4c
--- /dev/null
+++ b/binary_search_tool/sysroot_wrapper/testing_test.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python2
+"""Test for sysroot_wrapper bisector.
+
+All files in bad_files will be determined to be bad. This test was made for
+chromeos-chrome built for a daisy board, if you are using another package you
+will need to change the base_path accordingly.
+"""
+
+from __future__ import print_function
+
+import subprocess
+import sys
+import os
+
+base_path = ('/var/cache/chromeos-chrome/chrome-src-internal/src/out_daisy/'
+             'Release/obj/')
+bad_files = [
+    os.path.join(base_path, 'base/base.cpu.o'),
+    os.path.join(base_path, 'base/base.version.o'),
+    os.path.join(base_path, 'apps/apps.launcher.o')
+]
+
+bisect_dir = os.environ.get('BISECT_DIR', '/tmp/sysroot_bisect')
+
+
+def Main(_):
+  for test_file in bad_files:
+    test_file = test_file.strip()
+    cmd = ['grep', test_file, os.path.join(bisect_dir, 'BAD_SET')]
+    ret = subprocess.call(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    if not ret:
+      return 1
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv[1:]))
diff --git a/binary_search_tool/test/__init__.py b/binary_search_tool/test/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/binary_search_tool/test/__init__.py
@@ -0,0 +1 @@
+
diff --git a/binary_search_tool/test/binary_search_tool_tester.py b/binary_search_tool/test/binary_search_tool_tester.py
new file mode 100755
index 0000000..775c171
--- /dev/null
+++ b/binary_search_tool/test/binary_search_tool_tester.py
@@ -0,0 +1,421 @@
+#!/usr/bin/python2
+
+# Copyright 2012 Google Inc. All Rights Reserved.
+"""Tests for bisecting tool."""
+
+from __future__ import print_function
+
+__author__ = 'shenhan@google.com (Han Shen)'
+
+import os
+import random
+import sys
+import unittest
+
+from cros_utils import command_executer
+from binary_search_tool import binary_search_state
+from binary_search_tool import bisect
+
+import common
+import gen_obj
+
+
+def GenObj():
+  obj_num = random.randint(100, 1000)
+  bad_obj_num = random.randint(obj_num / 100, obj_num / 20)
+  if bad_obj_num == 0:
+    bad_obj_num = 1
+  gen_obj.Main(['--obj_num', str(obj_num), '--bad_obj_num', str(bad_obj_num)])
+
+
+def CleanObj():
+  os.remove(common.OBJECTS_FILE)
+  os.remove(common.WORKING_SET_FILE)
+  print('Deleted "{0}" and "{1}"'.format(common.OBJECTS_FILE,
+                                         common.WORKING_SET_FILE))
+
+
+class BisectTest(unittest.TestCase):
+  """Tests for bisect.py"""
+
+  def setUp(self):
+    with open('./is_setup', 'w'):
+      pass
+
+    try:
+      os.remove(binary_search_state.STATE_FILE)
+    except OSError:
+      pass
+
+  def tearDown(self):
+    try:
+      os.remove('./is_setup')
+      os.remove(os.readlink(binary_search_state.STATE_FILE))
+      os.remove(binary_search_state.STATE_FILE)
+    except OSError:
+      pass
+
+  class FullBisector(bisect.Bisector):
+    """Test bisector to test bisect.py with"""
+
+    def __init__(self, options, overrides):
+      super(BisectTest.FullBisector, self).__init__(options, overrides)
+
+    def PreRun(self):
+      GenObj()
+      return 0
+
+    def Run(self):
+      return binary_search_state.Run(get_initial_items='./gen_init_list.py',
+                                     switch_to_good='./switch_to_good.py',
+                                     switch_to_bad='./switch_to_bad.py',
+                                     test_script='./is_good.py',
+                                     prune=True,
+                                     file_args=True)
+
+    def PostRun(self):
+      CleanObj()
+      return 0
+
+  def test_full_bisector(self):
+    ret = bisect.Run(self.FullBisector({}, {}))
+    self.assertEquals(ret, 0)
+    self.assertFalse(os.path.exists(common.OBJECTS_FILE))
+    self.assertFalse(os.path.exists(common.WORKING_SET_FILE))
+
+  def check_output(self):
+    _, out, _ = command_executer.GetCommandExecuter().RunCommandWOutput(
+        ('grep "Bad items are: " logs/binary_search_tool_tester.py.out | '
+         'tail -n1'))
+    ls = out.splitlines()
+    self.assertEqual(len(ls), 1)
+    line = ls[0]
+
+    _, _, bad_ones = line.partition('Bad items are: ')
+    bad_ones = bad_ones.split()
+    expected_result = common.ReadObjectsFile()
+
+    # Reconstruct objects file from bad_ones and compare
+    actual_result = [0] * len(expected_result)
+    for bad_obj in bad_ones:
+      actual_result[int(bad_obj)] = 1
+
+    self.assertEqual(actual_result, expected_result)
+
+
+class BisectingUtilsTest(unittest.TestCase):
+  """Tests for bisecting tool."""
+
+  def setUp(self):
+    """Generate [100-1000] object files, and 1-5% of which are bad ones."""
+    GenObj()
+
+    with open('./is_setup', 'w'):
+      pass
+
+    try:
+      os.remove(binary_search_state.STATE_FILE)
+    except OSError:
+      pass
+
+  def tearDown(self):
+    """Cleanup temp files."""
+    CleanObj()
+
+    try:
+      os.remove(os.readlink(binary_search_state.STATE_FILE))
+    except OSError:
+      pass
+
+    cleanup_list = ['./is_setup', binary_search_state.STATE_FILE,
+                    'noinc_prune_bad', 'noinc_prune_good']
+    for f in cleanup_list:
+      if os.path.exists(f):
+        os.remove(f)
+
+  def runTest(self):
+    ret = binary_search_state.Run(get_initial_items='./gen_init_list.py',
+                                  switch_to_good='./switch_to_good.py',
+                                  switch_to_bad='./switch_to_bad.py',
+                                  test_script='./is_good.py',
+                                  prune=True,
+                                  file_args=True)
+    self.assertEquals(ret, 0)
+    self.check_output()
+
+  def test_arg_parse(self):
+    args = ['--get_initial_items', './gen_init_list.py', '--switch_to_good',
+            './switch_to_good.py', '--switch_to_bad', './switch_to_bad.py',
+            '--test_script', './is_good.py', '--prune', '--file_args']
+    ret = binary_search_state.Main(args)
+    self.assertEquals(ret, 0)
+    self.check_output()
+
+  def test_test_setup_script(self):
+    os.remove('./is_setup')
+    with self.assertRaises(AssertionError):
+      ret = binary_search_state.Run(get_initial_items='./gen_init_list.py',
+                                    switch_to_good='./switch_to_good.py',
+                                    switch_to_bad='./switch_to_bad.py',
+                                    test_script='./is_good.py',
+                                    prune=True,
+                                    file_args=True)
+
+    ret = binary_search_state.Run(get_initial_items='./gen_init_list.py',
+                                  switch_to_good='./switch_to_good.py',
+                                  switch_to_bad='./switch_to_bad.py',
+                                  test_script='./is_good.py',
+                                  test_setup_script='./test_setup.py',
+                                  prune=True,
+                                  file_args=True)
+    self.assertEquals(ret, 0)
+    self.check_output()
+
+  def test_bad_test_setup_script(self):
+    with self.assertRaises(AssertionError):
+      binary_search_state.Run(get_initial_items='./gen_init_list.py',
+                              switch_to_good='./switch_to_good.py',
+                              switch_to_bad='./switch_to_bad.py',
+                              test_script='./is_good.py',
+                              test_setup_script='./test_setup_bad.py',
+                              prune=True,
+                              file_args=True)
+
+  def test_bad_save_state(self):
+    state_file = binary_search_state.STATE_FILE
+    hidden_state_file = os.path.basename(binary_search_state.HIDDEN_STATE_FILE)
+
+    with open(state_file, 'w') as f:
+      f.write('test123')
+
+    bss = binary_search_state.MockBinarySearchState()
+    with self.assertRaises(binary_search_state.Error):
+      bss.SaveState()
+
+    with open(state_file, 'r') as f:
+      self.assertEquals(f.read(), 'test123')
+
+    os.remove(state_file)
+
+    # Cleanup generated save state that has no symlink
+    files = os.listdir(os.getcwd())
+    save_states = [x for x in files if x.startswith(hidden_state_file)]
+    _ = [os.remove(x) for x in save_states]
+
+  def test_save_state(self):
+    state_file = binary_search_state.STATE_FILE
+
+    bss = binary_search_state.MockBinarySearchState()
+    bss.SaveState()
+    self.assertTrue(os.path.exists(state_file))
+    first_state = os.readlink(state_file)
+
+    bss.SaveState()
+    second_state = os.readlink(state_file)
+    self.assertTrue(os.path.exists(state_file))
+    self.assertTrue(second_state != first_state)
+    self.assertFalse(os.path.exists(first_state))
+
+    bss.RemoveState()
+    self.assertFalse(os.path.islink(state_file))
+    self.assertFalse(os.path.exists(second_state))
+
+  def test_load_state(self):
+    test_items = [1, 2, 3, 4, 5]
+
+    bss = binary_search_state.MockBinarySearchState()
+    bss.all_items = test_items
+    bss.currently_good_items = set([1, 2, 3])
+    bss.currently_bad_items = set([4, 5])
+    bss.SaveState()
+
+    bss = None
+
+    bss2 = binary_search_state.MockBinarySearchState.LoadState()
+    self.assertEquals(bss2.all_items, test_items)
+    self.assertEquals(bss2.currently_good_items, set([]))
+    self.assertEquals(bss2.currently_bad_items, set([]))
+
+  def test_tmp_cleanup(self):
+    bss = binary_search_state.MockBinarySearchState(
+        get_initial_items='echo "0\n1\n2\n3"',
+        switch_to_good='./switch_tmp.py',
+        file_args=True)
+    bss.SwitchToGood(['0', '1', '2', '3'])
+
+    tmp_file = None
+    with open('tmp_file', 'r') as f:
+      tmp_file = f.read()
+    os.remove('tmp_file')
+
+    self.assertFalse(os.path.exists(tmp_file))
+    ws = common.ReadWorkingSet()
+    for i in range(3):
+      self.assertEquals(ws[i], 42)
+
+  def test_verify_fail(self):
+    bss = binary_search_state.MockBinarySearchState(
+        get_initial_items='./gen_init_list.py',
+        switch_to_good='./switch_to_bad.py',
+        switch_to_bad='./switch_to_good.py',
+        test_script='./is_good.py',
+        prune=True,
+        file_args=True,
+        verify=True)
+    with self.assertRaises(AssertionError):
+      bss.DoVerify()
+
+  def test_early_terminate(self):
+    bss = binary_search_state.MockBinarySearchState(
+        get_initial_items='./gen_init_list.py',
+        switch_to_good='./switch_to_good.py',
+        switch_to_bad='./switch_to_bad.py',
+        test_script='./is_good.py',
+        prune=True,
+        file_args=True,
+        iterations=1)
+    bss.DoSearch()
+    self.assertFalse(bss.found_items)
+
+  def test_no_prune(self):
+    bss = binary_search_state.MockBinarySearchState(
+        get_initial_items='./gen_init_list.py',
+        switch_to_good='./switch_to_good.py',
+        switch_to_bad='./switch_to_bad.py',
+        test_script='./is_good.py',
+        test_setup_script='./test_setup.py',
+        prune=False,
+        file_args=True)
+    bss.DoSearch()
+    self.assertEquals(len(bss.found_items), 1)
+
+    bad_objs = common.ReadObjectsFile()
+    found_obj = int(bss.found_items.pop())
+    self.assertEquals(bad_objs[found_obj], 1)
+
+  def test_set_file(self):
+    binary_search_state.Run(get_initial_items='./gen_init_list.py',
+                            switch_to_good='./switch_to_good_set_file.py',
+                            switch_to_bad='./switch_to_bad_set_file.py',
+                            test_script='./is_good.py',
+                            prune=True,
+                            file_args=True,
+                            verify=True)
+    self.check_output()
+
+  def test_noincremental_prune(self):
+    ret = binary_search_state.Run(
+        get_initial_items='./gen_init_list.py',
+        switch_to_good='./switch_to_good_noinc_prune.py',
+        switch_to_bad='./switch_to_bad_noinc_prune.py',
+        test_script='./is_good_noinc_prune.py',
+        test_setup_script='./test_setup.py',
+        prune=True,
+        noincremental=True,
+        file_args=True,
+        verify=False)
+    self.assertEquals(ret, 0)
+    self.check_output()
+
+  def check_output(self):
+    _, out, _ = command_executer.GetCommandExecuter().RunCommandWOutput(
+        ('grep "Bad items are: " logs/binary_search_tool_tester.py.out | '
+         'tail -n1'))
+    ls = out.splitlines()
+    self.assertEqual(len(ls), 1)
+    line = ls[0]
+
+    _, _, bad_ones = line.partition('Bad items are: ')
+    bad_ones = bad_ones.split()
+    expected_result = common.ReadObjectsFile()
+
+    # Reconstruct objects file from bad_ones and compare
+    actual_result = [0] * len(expected_result)
+    for bad_obj in bad_ones:
+      actual_result[int(bad_obj)] = 1
+
+    self.assertEqual(actual_result, expected_result)
+
+
+class BisectStressTest(unittest.TestCase):
+  """Stress tests for bisecting tool."""
+
+  def test_every_obj_bad(self):
+    amt = 25
+    gen_obj.Main(['--obj_num', str(amt), '--bad_obj_num', str(amt)])
+    ret = binary_search_state.Run(get_initial_items='./gen_init_list.py',
+                                  switch_to_good='./switch_to_good.py',
+                                  switch_to_bad='./switch_to_bad.py',
+                                  test_script='./is_good.py',
+                                  prune=True,
+                                  file_args=True,
+                                  verify=False)
+    self.assertEquals(ret, 0)
+    self.check_output()
+
+  def test_every_index_is_bad(self):
+    amt = 25
+    for i in range(amt):
+      obj_list = ['0'] * amt
+      obj_list[i] = '1'
+      obj_list = ','.join(obj_list)
+      gen_obj.Main(['--obj_list', obj_list])
+      ret = binary_search_state.Run(get_initial_items='./gen_init_list.py',
+                                    switch_to_good='./switch_to_good.py',
+                                    switch_to_bad='./switch_to_bad.py',
+                                    test_setup_script='./test_setup.py',
+                                    test_script='./is_good.py',
+                                    prune=True,
+                                    file_args=True)
+      self.assertEquals(ret, 0)
+      self.check_output()
+
+  def check_output(self):
+    _, out, _ = command_executer.GetCommandExecuter().RunCommandWOutput(
+        ('grep "Bad items are: " logs/binary_search_tool_tester.py.out | '
+         'tail -n1'))
+    ls = out.splitlines()
+    self.assertEqual(len(ls), 1)
+    line = ls[0]
+
+    _, _, bad_ones = line.partition('Bad items are: ')
+    bad_ones = bad_ones.split()
+    expected_result = common.ReadObjectsFile()
+
+    # Reconstruct objects file from bad_ones and compare
+    actual_result = [0] * len(expected_result)
+    for bad_obj in bad_ones:
+      actual_result[int(bad_obj)] = 1
+
+    self.assertEqual(actual_result, expected_result)
+
+
+def Main(argv):
+  num_tests = 2
+  if len(argv) > 1:
+    num_tests = int(argv[1])
+
+  suite = unittest.TestSuite()
+  for _ in range(0, num_tests):
+    suite.addTest(BisectingUtilsTest())
+  suite.addTest(BisectingUtilsTest('test_arg_parse'))
+  suite.addTest(BisectingUtilsTest('test_test_setup_script'))
+  suite.addTest(BisectingUtilsTest('test_bad_test_setup_script'))
+  suite.addTest(BisectingUtilsTest('test_bad_save_state'))
+  suite.addTest(BisectingUtilsTest('test_save_state'))
+  suite.addTest(BisectingUtilsTest('test_load_state'))
+  suite.addTest(BisectingUtilsTest('test_tmp_cleanup'))
+  suite.addTest(BisectingUtilsTest('test_verify_fail'))
+  suite.addTest(BisectingUtilsTest('test_early_terminate'))
+  suite.addTest(BisectingUtilsTest('test_no_prune'))
+  suite.addTest(BisectingUtilsTest('test_set_file'))
+  suite.addTest(BisectingUtilsTest('test_noincremental_prune'))
+  suite.addTest(BisectTest('test_full_bisector'))
+  suite.addTest(BisectStressTest('test_every_obj_bad'))
+  suite.addTest(BisectStressTest('test_every_index_is_bad'))
+  runner = unittest.TextTestRunner()
+  runner.run(suite)
+
+
+if __name__ == '__main__':
+  Main(sys.argv)
diff --git a/binary_search_tool/test/common.py b/binary_search_tool/test/common.py
new file mode 100755
index 0000000..baac943
--- /dev/null
+++ b/binary_search_tool/test/common.py
@@ -0,0 +1,41 @@
+#!/usr/bin/python2
+"""Common utility functions."""
+
+DEFAULT_OBJECT_NUMBER = 1238
+DEFAULT_BAD_OBJECT_NUMBER = 23
+OBJECTS_FILE = 'objects.txt'
+WORKING_SET_FILE = 'working_set.txt'
+
+
+def ReadWorkingSet():
+  working_set = []
+  f = open(WORKING_SET_FILE, 'r')
+  for l in f:
+    working_set.append(int(l))
+  f.close()
+  return working_set
+
+
+def WriteWorkingSet(working_set):
+  f = open(WORKING_SET_FILE, 'w')
+  for o in working_set:
+    f.write('{0}\n'.format(o))
+  f.close()
+
+
+def ReadObjectsFile():
+  objects_file = []
+  f = open(OBJECTS_FILE, 'r')
+  for l in f:
+    objects_file.append(int(l))
+  f.close()
+  return objects_file
+
+
+def ReadObjectIndex(filename):
+  object_index = []
+  f = open(filename, 'r')
+  for o in f:
+    object_index.append(int(o))
+  f.close()
+  return object_index
diff --git a/binary_search_tool/test/gen_init_list.py b/binary_search_tool/test/gen_init_list.py
new file mode 100755
index 0000000..4a79a1b
--- /dev/null
+++ b/binary_search_tool/test/gen_init_list.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python2
+"""Prints out index for every object file, starting from 0."""
+
+from __future__ import print_function
+
+import sys
+
+from cros_utils import command_executer
+import common
+
+
+def Main():
+  ce = command_executer.GetCommandExecuter()
+  _, l, _ = ce.RunCommandWOutput(
+      'cat {0} | wc -l'.format(common.OBJECTS_FILE), print_to_console=False)
+  for i in range(0, int(l)):
+    print(i)
+
+
+if __name__ == '__main__':
+  Main()
+  sys.exit(0)
diff --git a/binary_search_tool/test/gen_obj.py b/binary_search_tool/test/gen_obj.py
new file mode 100755
index 0000000..265729d
--- /dev/null
+++ b/binary_search_tool/test/gen_obj.py
@@ -0,0 +1,97 @@
+#!/usr/bin/python2
+"""Script to generate a list of object files.
+
+0 represents a good object file.
+1 represents a bad object file.
+"""
+
+from __future__ import print_function
+
+import argparse
+import os
+import random
+import sys
+
+import common
+
+
+def Main(argv):
+  """Generates a list, the value of each element is 0 or 1.
+
+  The number of 1s in the list is specified by bad_obj_num.
+  The others are all 0s. The total number of 0s and 1s is specified by obj_num.
+
+  Args:
+    argv: argument from command line
+
+  Returns:
+    0 always.
+  """
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '-n',
+      '--obj_num',
+      dest='obj_num',
+      default=common.DEFAULT_OBJECT_NUMBER,
+      help=('Number of total objects.'))
+  parser.add_argument(
+      '-b',
+      '--bad_obj_num',
+      dest='bad_obj_num',
+      default=common.DEFAULT_BAD_OBJECT_NUMBER,
+      help=('Number of bad objects. Must be great than or '
+            'equal to zero and less than total object '
+            'number.'))
+  parser.add_argument(
+      '-o',
+      '--obj_list',
+      dest='obj_list',
+      default='',
+      help=('List of comma seperated objects to generate. '
+            'A 0 means the object is good, a 1 means the '
+            'object is bad.'))
+  options = parser.parse_args(argv)
+
+  obj_num = int(options.obj_num)
+  bad_obj_num = int(options.bad_obj_num)
+  bad_to_gen = int(options.bad_obj_num)
+  obj_list = options.obj_list
+  if not obj_list:
+    obj_list = []
+    for i in range(obj_num):
+      if bad_to_gen > 0 and random.randint(1, obj_num) <= bad_obj_num:
+        obj_list.append(1)
+        bad_to_gen -= 1
+      else:
+        obj_list.append(0)
+    while bad_to_gen > 0:
+      t = random.randint(0, obj_num - 1)
+      if obj_list[t] == 0:
+        obj_list[t] = 1
+        bad_to_gen -= 1
+  else:
+    obj_list = obj_list.split(',')
+
+  if os.path.isfile(common.OBJECTS_FILE):
+    os.remove(common.OBJECTS_FILE)
+  if os.path.isfile(common.WORKING_SET_FILE):
+    os.remove(common.WORKING_SET_FILE)
+
+  f = open(common.OBJECTS_FILE, 'w')
+  w = open(common.WORKING_SET_FILE, 'w')
+  for i in obj_list:
+    f.write('{0}\n'.format(i))
+    w.write('{0}\n'.format(i))
+  f.close()
+
+  obj_num = len(obj_list)
+  bad_obj_num = obj_list.count('1')
+  print('Generated {0} object files, with {1} bad ones.'.format(obj_num,
+                                                                bad_obj_num))
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/binary_search_tool/test/is_good.py b/binary_search_tool/test/is_good.py
new file mode 100755
index 0000000..bfe9cc3
--- /dev/null
+++ b/binary_search_tool/test/is_good.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python2
+"""Check to see if the working set produces a good executable."""
+
+from __future__ import print_function
+
+import os
+import sys
+
+import common
+
+
+def Main():
+  if not os.path.exists('./is_setup'):
+    return 1
+  working_set = common.ReadWorkingSet()
+  for w in working_set:
+    if w == 1:
+      return 1  ## False, linking failure
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main()
+  sys.exit(retval)
diff --git a/binary_search_tool/test/is_good_noinc_prune.py b/binary_search_tool/test/is_good_noinc_prune.py
new file mode 100755
index 0000000..5aafd6c
--- /dev/null
+++ b/binary_search_tool/test/is_good_noinc_prune.py
@@ -0,0 +1,46 @@
+#!/usr/bin/python2
+"""Check to see if the working set produces a good executable.
+
+This test script is made for the noincremental-prune test. This makes sure
+that, after pruning starts (>1 bad item is found), that the number of args sent
+to the switch scripts is equals to the actual number of items (i.e. checking
+that noincremental always holds).
+"""
+
+from __future__ import print_function
+
+import os
+import sys
+
+import common
+
+
+def Main():
+  working_set = common.ReadWorkingSet()
+
+  with open('noinc_prune_good', 'r') as good_args:
+    num_good_args = len(good_args.readlines())
+
+  with open('noinc_prune_bad', 'r') as bad_args:
+    num_bad_args = len(bad_args.readlines())
+
+  num_args = num_good_args + num_bad_args
+  if num_args != len(working_set):
+    print('Only %d args, expected %d' % (num_args, len(working_set)))
+    print('%d good args, %d bad args' % (num_good_args, num_bad_args))
+    return 3
+
+  os.remove('noinc_prune_bad')
+  os.remove('noinc_prune_good')
+
+  if not os.path.exists('./is_setup'):
+    return 1
+  for w in working_set:
+    if w == 1:
+      return 1  ## False, linking failure
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main()
+  sys.exit(retval)
diff --git a/binary_search_tool/test/switch_tmp.py b/binary_search_tool/test/switch_tmp.py
new file mode 100755
index 0000000..165004e
--- /dev/null
+++ b/binary_search_tool/test/switch_tmp.py
@@ -0,0 +1,34 @@
+#!/usr/bin/python2
+"""Change portions of the object files to good.
+
+This file is a test switch script. Used only for the test test_tmp_cleanup.
+The "portion" is defined by the file (which is passed as the only argument to
+this script) content. Every line in the file is an object index, which will be
+set to good (mark as 42).
+"""
+
+from __future__ import print_function
+
+import sys
+
+import common
+
+
+def Main(argv):
+  working_set = common.ReadWorkingSet()
+  object_index = common.ReadObjectIndex(argv[1])
+
+  # Random number so the results can be checked
+  for oi in object_index:
+    working_set[int(oi)] = 42
+
+  common.WriteWorkingSet(working_set)
+  with open('tmp_file', 'w') as f:
+    f.write(argv[1])
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/binary_search_tool/test/switch_to_bad.py b/binary_search_tool/test/switch_to_bad.py
new file mode 100755
index 0000000..b860242
--- /dev/null
+++ b/binary_search_tool/test/switch_to_bad.py
@@ -0,0 +1,27 @@
+#!/usr/bin/python2
+"""Switch part of the objects file in working set to (possible) bad ones."""
+
+from __future__ import print_function
+
+import sys
+
+import common
+
+
+def Main(argv):
+  """Switch part of the objects file in working set to (possible) bad ones."""
+  working_set = common.ReadWorkingSet()
+  objects_file = common.ReadObjectsFile()
+  object_index = common.ReadObjectIndex(argv[1])
+
+  for oi in object_index:
+    working_set[oi] = objects_file[oi]
+
+  common.WriteWorkingSet(working_set)
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/binary_search_tool/test/switch_to_bad_noinc_prune.py b/binary_search_tool/test/switch_to_bad_noinc_prune.py
new file mode 100755
index 0000000..87bf158
--- /dev/null
+++ b/binary_search_tool/test/switch_to_bad_noinc_prune.py
@@ -0,0 +1,42 @@
+#!/usr/bin/python2
+"""Switch part of the objects file in working set to (possible) bad ones.
+
+The "portion" is defined by the file (which is passed as the only argument to
+this script) content. Every line in the file is an object index, which will be
+set to good (mark as 0).
+
+This switch script is made for the noincremental-prune test. This makes sure
+that, after pruning starts (>1 bad item is found), that the number of args sent
+to the switch scripts is equals to the actual number of items (i.e. checking
+that noincremental always holds).
+
+Warning: This switch script assumes the --file_args option
+"""
+
+from __future__ import print_function
+
+import shutil
+import sys
+
+import common
+
+
+def Main(argv):
+  """Switch part of the objects file in working set to (possible) bad ones."""
+  working_set = common.ReadWorkingSet()
+  objects_file = common.ReadObjectsFile()
+  object_index = common.ReadObjectIndex(argv[1])
+
+  for oi in object_index:
+    working_set[oi] = objects_file[oi]
+
+  shutil.copy(argv[1], './noinc_prune_bad')
+
+  common.WriteWorkingSet(working_set)
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/binary_search_tool/test/switch_to_bad_set_file.py b/binary_search_tool/test/switch_to_bad_set_file.py
new file mode 100755
index 0000000..f535fdf
--- /dev/null
+++ b/binary_search_tool/test/switch_to_bad_set_file.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python2
+"""Switch part of the objects file in working set to (possible) bad ones.
+
+This script is meant to be specifically used with the set_file test. This uses
+the set files generated by binary_search_state to do the switching.
+"""
+
+from __future__ import print_function
+
+import os
+import sys
+
+import common
+
+
+def Main(_):
+  """Switch part of the objects file in working set to (possible) bad ones."""
+  working_set = common.ReadWorkingSet()
+  objects_file = common.ReadObjectsFile()
+
+  if not os.path.exists(os.environ['BISECT_BAD_SET']):
+    print('Bad set file does not exist!')
+    return 1
+
+  object_index = common.ReadObjectIndex(os.environ['BISECT_BAD_SET'])
+
+  for oi in object_index:
+    working_set[int(oi)] = objects_file[oi]
+
+  common.WriteWorkingSet(working_set)
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/binary_search_tool/test/switch_to_good.py b/binary_search_tool/test/switch_to_good.py
new file mode 100755
index 0000000..68e9633
--- /dev/null
+++ b/binary_search_tool/test/switch_to_good.py
@@ -0,0 +1,30 @@
+#!/usr/bin/python2
+"""Change portions of the object files to good.
+
+The "portion" is defined by the file (which is passed as the only argument to
+this script) content. Every line in the file is an object index, which will be
+set to good (mark as 0).
+"""
+
+from __future__ import print_function
+
+import sys
+
+import common
+
+
+def Main(argv):
+  working_set = common.ReadWorkingSet()
+  object_index = common.ReadObjectIndex(argv[1])
+
+  for oi in object_index:
+    working_set[int(oi)] = 0
+
+  common.WriteWorkingSet(working_set)
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/binary_search_tool/test/switch_to_good_noinc_prune.py b/binary_search_tool/test/switch_to_good_noinc_prune.py
new file mode 100755
index 0000000..c5e78e4
--- /dev/null
+++ b/binary_search_tool/test/switch_to_good_noinc_prune.py
@@ -0,0 +1,40 @@
+#!/usr/bin/python2
+"""Change portions of the object files to good.
+
+The "portion" is defined by the file (which is passed as the only argument to
+this script) content. Every line in the file is an object index, which will be
+set to good (mark as 0).
+
+This switch script is made for the noincremental-prune test. This makes sure
+that, after pruning starts (>1 bad item is found), that the number of args sent
+to the switch scripts is equals to the actual number of items (i.e. checking
+that noincremental always holds).
+
+Warning: This switch script assumes the --file_args option
+"""
+
+from __future__ import print_function
+
+import shutil
+import sys
+
+import common
+
+
+def Main(argv):
+  working_set = common.ReadWorkingSet()
+  object_index = common.ReadObjectIndex(argv[1])
+
+  for oi in object_index:
+    working_set[int(oi)] = 0
+
+  shutil.copy(argv[1], './noinc_prune_good')
+
+  common.WriteWorkingSet(working_set)
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/binary_search_tool/test/switch_to_good_set_file.py b/binary_search_tool/test/switch_to_good_set_file.py
new file mode 100755
index 0000000..83777af
--- /dev/null
+++ b/binary_search_tool/test/switch_to_good_set_file.py
@@ -0,0 +1,39 @@
+#!/usr/bin/python2
+"""Change portions of the object files to good.
+
+The "portion" is defined by the file (which is passed as the only argument to
+this script) content. Every line in the file is an object index, which will be
+set to good (mark as 0).
+
+This script is meant to be specifically used with the set_file test. This uses
+the set files generated by binary_search_state to do the switching.
+"""
+
+from __future__ import print_function
+
+import os
+import sys
+
+import common
+
+
+def Main(_):
+  working_set = common.ReadWorkingSet()
+
+  if not os.path.exists(os.environ['BISECT_GOOD_SET']):
+    print('Good set file does not exist!')
+    return 1
+
+  object_index = common.ReadObjectIndex(os.environ['BISECT_GOOD_SET'])
+
+  for oi in object_index:
+    working_set[int(oi)] = 0
+
+  common.WriteWorkingSet(working_set)
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/binary_search_tool/test/test_setup.py b/binary_search_tool/test/test_setup.py
new file mode 100755
index 0000000..3fb5a23
--- /dev/null
+++ b/binary_search_tool/test/test_setup.py
@@ -0,0 +1,19 @@
+#!/usr/bin/python2
+"""Emulate running of test setup script, is_good.py should fail without this."""
+
+from __future__ import print_function
+
+import sys
+
+
+def Main():
+  # create ./is_setup
+  with open('./is_setup', 'w'):
+    pass
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main()
+  sys.exit(retval)
diff --git a/binary_search_tool/test/test_setup_bad.py b/binary_search_tool/test/test_setup_bad.py
new file mode 100755
index 0000000..8d72763
--- /dev/null
+++ b/binary_search_tool/test/test_setup_bad.py
@@ -0,0 +1,15 @@
+#!/usr/bin/python2
+"""Emulate test setup that fails (i.e. failed flash to device)"""
+
+from __future__ import print_function
+
+import sys
+
+
+def Main():
+  return 1  ## False, flashing failure
+
+
+if __name__ == '__main__':
+  retval = Main()
+  sys.exit(retval)
diff --git a/build-binutils/opts.sh b/build-binutils/opts.sh
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/build-binutils/opts.sh
diff --git a/build-gcc/opts.sh b/build-gcc/opts.sh
new file mode 100644
index 0000000..d1e6fad
--- /dev/null
+++ b/build-gcc/opts.sh
@@ -0,0 +1,40 @@
+get_gcc_configure_options()
+{
+  local CTARGET=$1; shift
+  local confgcc=$(get_gcc_common_options)
+  case ${CTARGET} in
+    arm*)	#264534
+      local arm_arch="${CTARGET%%-*}"
+      # Only do this if arm_arch is armv*
+      if [[ ${arm_arch} == armv* ]] ; then
+        # Convert armv7{a,r,m} to armv7-{a,r,m}
+        [[ ${arm_arch} == armv7? ]] && arm_arch=${arm_arch/7/7-}
+        # Remove endian ('l' / 'eb')
+        [[ ${arm_arch} == *l  ]] && arm_arch=${arm_arch%l}
+        [[ ${arm_arch} == *eb ]] && arm_arch=${arm_arch%eb}
+        confgcc="${confgcc} --with-arch=${arm_arch}"
+        confgcc="${confgcc} --disable-esp"
+      fi
+      ;;
+    i?86*)
+      # Hardened is enabled for x86, but disabled for ARM.
+      confgcc="${confgcc} --with-arch=atom"
+      confgcc="${confgcc} --enable-esp"
+      ;;
+  esac
+  echo ${confgcc}
+}
+
+get_gcc_common_options()
+{
+  local confgcc
+  # TODO(asharif): Build without these options.
+  confgcc="${confgcc} --disable-libmudflap"
+  confgcc="${confgcc} --disable-libssp"
+  confgcc="${confgcc} --disable-libgomp"
+  confgcc="${confgcc} --enable-__cxa_atexit"
+  confgcc="${confgcc} --enable-checking=release"
+  confgcc="${confgcc} --disable-libquadmath"
+  echo ${confgcc}
+}
+
diff --git a/build_chrome_browser.py b/build_chrome_browser.py
new file mode 100755
index 0000000..8effa19
--- /dev/null
+++ b/build_chrome_browser.py
@@ -0,0 +1,237 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to checkout the ChromeOS source.
+
+This script sets up the ChromeOS source in the given directory, matching a
+particular release of ChromeOS.
+"""
+
+from __future__ import print_function
+
+__author__ = 'raymes@google.com (Raymes Khoury)'
+
+import argparse
+import os
+import sys
+
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import misc
+
+
+def Usage(parser, message):
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def Main(argv):
+  """Build Chrome browser."""
+
+  cmd_executer = command_executer.GetCommandExecuter()
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('--chromeos_root',
+                      dest='chromeos_root',
+                      help='Target directory for ChromeOS installation.')
+  parser.add_argument('--version', dest='version')
+  parser.add_argument('--clean',
+                      dest='clean',
+                      default=False,
+                      action='store_true',
+                      help=('Clean the /var/cache/chromeos-chrome/'
+                            'chrome-src/src/out_$board dir'))
+  parser.add_argument('--env',
+                      dest='env',
+                      default='',
+                      help='Use the following env')
+  parser.add_argument('--ebuild_version',
+                      dest='ebuild_version',
+                      help='Use this ebuild instead of the default one.')
+  parser.add_argument('--cflags',
+                      dest='cflags',
+                      default='',
+                      help='CFLAGS for the ChromeOS packages')
+  parser.add_argument('--cxxflags',
+                      dest='cxxflags',
+                      default='',
+                      help='CXXFLAGS for the ChromeOS packages')
+  parser.add_argument('--ldflags',
+                      dest='ldflags',
+                      default='',
+                      help='LDFLAGS for the ChromeOS packages')
+  parser.add_argument('--board',
+                      dest='board',
+                      help='ChromeOS target board, e.g. x86-generic')
+  parser.add_argument('--no_build_image',
+                      dest='no_build_image',
+                      default=False,
+                      action='store_true',
+                      help=('Skip build image after building browser.'
+                            'Defaults to False.'))
+  parser.add_argument('--label',
+                      dest='label',
+                      help='Optional label to apply to the ChromeOS image.')
+  parser.add_argument('--build_image_args',
+                      default='',
+                      dest='build_image_args',
+                      help='Optional arguments to build_image.')
+  parser.add_argument('--cros_workon',
+                      dest='cros_workon',
+                      help='Build using external source tree.')
+  parser.add_argument('--dev',
+                      dest='dev',
+                      default=False,
+                      action='store_true',
+                      help=('Build a dev (eg. writable/large) image. '
+                            'Defaults to False.'))
+  parser.add_argument('--debug',
+                      dest='debug',
+                      default=False,
+                      action='store_true',
+                      help=('Build chrome browser using debug mode. '
+                            'This option implies --dev. Defaults to false.'))
+  parser.add_argument('--verbose',
+                      dest='verbose',
+                      default=False,
+                      action='store_true',
+                      help='Build with verbose information.')
+
+  options = parser.parse_args(argv)
+
+  if options.chromeos_root is None:
+    Usage(parser, '--chromeos_root must be set')
+
+  if options.board is None:
+    Usage(parser, '--board must be set')
+
+  if options.version is None:
+    logger.GetLogger().LogOutput('No Chrome version given so '
+                                 'using the default checked in version.')
+    chrome_version = ''
+  else:
+    chrome_version = 'CHROME_VERSION=%s' % options.version
+
+  if options.dev and options.no_build_image:
+    logger.GetLogger().LogOutput(
+        "\"--dev\" is meaningless if \"--no_build_image\" is given.")
+
+  if options.debug:
+    options.dev = True
+
+  options.chromeos_root = misc.CanonicalizePath(options.chromeos_root)
+
+  unmask_env = 'ACCEPT_KEYWORDS=~*'
+  if options.ebuild_version:
+    ebuild_version = '=%s' % options.ebuild_version
+    options.env = '%s %s' % (options.env, unmask_env)
+  else:
+    ebuild_version = 'chromeos-chrome'
+
+  if options.cros_workon and not (
+      os.path.isdir(options.cros_workon) and os.path.exists(os.path.join(
+          options.cros_workon, 'src/chromeos/chromeos.gyp'))):
+    Usage(parser, '--cros_workon must be a valid chromium browser checkout.')
+
+  if options.verbose:
+    options.env = misc.MergeEnvStringWithDict(
+        options.env, {'USE': 'chrome_internal verbose'})
+  else:
+    options.env = misc.MergeEnvStringWithDict(options.env,
+                                              {'USE': 'chrome_internal'})
+  if options.debug:
+    options.env = misc.MergeEnvStringWithDict(options.env,
+                                              {'BUILDTYPE': 'Debug'})
+
+  if options.clean:
+    misc.RemoveChromeBrowserObjectFiles(options.chromeos_root, options.board)
+
+  chrome_origin = 'SERVER_SOURCE'
+  if options.cros_workon:
+    chrome_origin = 'LOCAL_SOURCE'
+    command = 'cros_workon --board={0} start chromeos-chrome'.format(
+        options.board)
+    ret = cmd_executer.ChrootRunCommandWOutput(options.chromeos_root, command)
+
+    # cros_workon start returns non-zero if chromeos-chrome is already a
+    # cros_workon package.
+    if ret[0] and ret[2].find(
+        'WARNING : Already working on chromeos-base/chromeos-chrome') == -1:
+      logger.GetLogger().LogFatal('cros_workon chromeos-chrome failed.')
+
+    # Return value is non-zero means we do find the "Already working on..."
+    # message, keep the information, so later on we do not revert the
+    # cros_workon status.
+    cros_workon_keep = (ret[0] != 0)
+
+  # Emerge the browser
+  emerge_browser_command = ('CHROME_ORIGIN={0} {1} '
+                            'CFLAGS="$(portageq-{2} envvar CFLAGS) {3}" '
+                            'LDFLAGS="$(portageq-{2} envvar LDFLAGS) {4}" '
+                            'CXXFLAGS="$(portageq-{2} envvar CXXFLAGS) {5}" '
+                            '{6} emerge-{2} --buildpkg {7}').format(
+                                chrome_origin, chrome_version, options.board,
+                                options.cflags, options.ldflags,
+                                options.cxxflags, options.env, ebuild_version)
+
+  cros_sdk_options = ''
+  if options.cros_workon:
+    cros_sdk_options = '--chrome_root={0}'.format(options.cros_workon)
+
+  ret = cmd_executer.ChrootRunCommand(options.chromeos_root,
+                                      emerge_browser_command,
+                                      cros_sdk_options=cros_sdk_options)
+
+  logger.GetLogger().LogFatalIf(ret, 'build_packages failed')
+
+  if options.cros_workon and not cros_workon_keep:
+    command = 'cros_workon --board={0} stop chromeos-chrome'.format(
+        options.board)
+    ret = cmd_executer.ChrootRunCommand(options.chromeos_root, command)
+    # cros_workon failed, not a fatal one, just report it.
+    if ret:
+      print('cros_workon stop chromeos-chrome failed.')
+
+  if options.no_build_image:
+    return ret
+
+  # Finally build the image
+  ret = cmd_executer.ChrootRunCommand(
+      options.chromeos_root,
+      '{0} {1} {2} {3}'.format(unmask_env,
+                               options.env,
+                               misc.GetBuildImageCommand(options.board,
+                                                         dev=options.dev),
+                               options.build_image_args))
+
+  logger.GetLogger().LogFatalIf(ret, 'build_image failed')
+
+  flags_file_name = 'chrome_flags.txt'
+  flags_file_path = '{0}/src/build/images/{1}/latest/{2}'.format(
+      options.chromeos_root, options.board, flags_file_name)
+  flags_file = open(flags_file_path, 'wb')
+  flags_file.write('CFLAGS={0}\n'.format(options.cflags))
+  flags_file.write('CXXFLAGS={0}\n'.format(options.cxxflags))
+  flags_file.write('LDFLAGS={0}\n'.format(options.ldflags))
+  flags_file.close()
+
+  if options.label:
+    image_dir_path = '{0}/src/build/images/{1}/latest'.format(
+        options.chromeos_root, options.board)
+    real_image_dir_path = os.path.realpath(image_dir_path)
+    command = 'ln -sf -T {0} {1}/{2}'.format(
+        os.path.basename(real_image_dir_path),\
+        os.path.dirname(real_image_dir_path),\
+        options.label)
+
+    ret = cmd_executer.RunCommand(command)
+    logger.GetLogger().LogFatalIf(ret, 'Failed to apply symlink label %s' %
+                                  options.label)
+
+  return ret
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/build_chromeos.py b/build_chromeos.py
new file mode 100755
index 0000000..cb68fd0
--- /dev/null
+++ b/build_chromeos.py
@@ -0,0 +1,280 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to checkout the ChromeOS source.
+
+This script sets up the ChromeOS source in the given directory, matching a
+particular release of ChromeOS.
+"""
+
+from __future__ import print_function
+
+__author__ = ('asharif@google.com (Ahmad Sharif) '
+              'llozano@google.com (Luis Lozano) '
+              'raymes@google.com (Raymes Khoury) '
+              'shenhan@google.com (Han Shen)')
+
+import argparse
+import os
+import sys
+
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import misc
+
+
+def Usage(parser, message):
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def Main(argv):
+  """Build ChromeOS."""
+  # Common initializations
+  cmd_executer = command_executer.GetCommandExecuter()
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('--chromeos_root',
+                      dest='chromeos_root',
+                      help='Target directory for ChromeOS installation.')
+  parser.add_argument('--clobber_chroot',
+                      dest='clobber_chroot',
+                      action='store_true',
+                      help='Delete the chroot and start fresh',
+                      default=False)
+  parser.add_argument('--clobber_board',
+                      dest='clobber_board',
+                      action='store_true',
+                      help='Delete the board and start fresh',
+                      default=False)
+  parser.add_argument('--rebuild',
+                      dest='rebuild',
+                      action='store_true',
+                      help='Rebuild all board packages except the toolchain.',
+                      default=False)
+  parser.add_argument('--cflags',
+                      dest='cflags',
+                      default='',
+                      help='CFLAGS for the ChromeOS packages')
+  parser.add_argument('--cxxflags',
+                      dest='cxxflags',
+                      default='',
+                      help='CXXFLAGS for the ChromeOS packages')
+  parser.add_argument('--ldflags',
+                      dest='ldflags',
+                      default='',
+                      help='LDFLAGS for the ChromeOS packages')
+  parser.add_argument('--board',
+                      dest='board',
+                      help='ChromeOS target board, e.g. x86-generic')
+  parser.add_argument('--package',
+                      dest='package',
+                      help='The package needs to be built')
+  parser.add_argument('--label',
+                      dest='label',
+                      help='Optional label symlink to point to build dir.')
+  parser.add_argument('--dev',
+                      dest='dev',
+                      default=False,
+                      action='store_true',
+                      help=('Make the final image in dev mode (eg writable, '
+                            'more space on image). Defaults to False.'))
+  parser.add_argument('--debug',
+                      dest='debug',
+                      default=False,
+                      action='store_true',
+                      help=("Optional. Build chrome browser with \"-g -O0\". "
+                            "Notice, this also turns on \'--dev\'. "
+                            'Defaults to False.'))
+  parser.add_argument('--env',
+                      dest='env',
+                      default='',
+                      help='Env to pass to build_packages.')
+  parser.add_argument('--vanilla',
+                      dest='vanilla',
+                      default=False,
+                      action='store_true',
+                      help='Use default ChromeOS toolchain.')
+  parser.add_argument('--vanilla_image',
+                      dest='vanilla_image',
+                      default=False,
+                      action='store_true',
+                      help=('Use prebuild packages for building the image. '
+                            'It also implies the --vanilla option is set.'))
+
+  options = parser.parse_args(argv[1:])
+
+  if options.chromeos_root is None:
+    Usage(parser, '--chromeos_root must be set')
+  options.chromeos_root = os.path.expanduser(options.chromeos_root)
+  scripts_dir = os.path.join(options.chromeos_root, 'src', 'scripts')
+  if not os.path.isdir(scripts_dir):
+    Usage(parser, '--chromeos_root must be set up first. Use setup_chromeos.py')
+
+  if options.board is None:
+    Usage(parser, '--board must be set')
+
+  if options.debug:
+    options.dev = True
+
+  build_packages_env = options.env
+  if build_packages_env.find('EXTRA_BOARD_FLAGS=') != -1:
+    logger.GetLogger().LogFatal(
+        ('Passing "EXTRA_BOARD_FLAGS" in "--env" is not supported. '
+         'This flags is used internally by this script. '
+         'Contact the author for more detail.'))
+
+  if options.rebuild == True:
+    build_packages_env += ' EXTRA_BOARD_FLAGS=-e'
+    # EXTRA_BOARD_FLAGS=-e should clean up the object files for the chrome
+    # browser but it doesn't. So do it here.
+    misc.RemoveChromeBrowserObjectFiles(options.chromeos_root, options.board)
+
+  # Build with afdo_use by default.
+  # To change the default use --env="USE=-afdo_use".
+  build_packages_env = misc.MergeEnvStringWithDict(
+      build_packages_env, {'USE': 'chrome_internal afdo_use'})
+
+  build_packages_command = misc.GetBuildPackagesCommand(
+      board=options.board,
+      usepkg=options.vanilla_image,
+      debug=options.debug)
+
+  if options.package:
+    build_packages_command += ' {0}'.format(options.package)
+
+  build_image_command = misc.GetBuildImageCommand(options.board, options.dev)
+
+  if options.vanilla or options.vanilla_image:
+    command = misc.GetSetupBoardCommand(options.board,
+                                        usepkg=options.vanilla_image,
+                                        force=options.clobber_board)
+    command += '; ' + build_packages_env + ' ' + build_packages_command
+    command += '&& ' + build_packages_env + ' ' + build_image_command
+    ret = cmd_executer.ChrootRunCommand(options.chromeos_root, command)
+    return ret
+
+  # Setup board
+  if not os.path.isdir(options.chromeos_root + '/chroot/build/' +
+                       options.board) or options.clobber_board:
+    # Run build_tc.py from binary package
+    ret = cmd_executer.ChrootRunCommand(options.chromeos_root,
+                                        misc.GetSetupBoardCommand(
+                                            options.board,
+                                            force=options.clobber_board))
+    logger.GetLogger().LogFatalIf(ret, 'setup_board failed')
+  else:
+    logger.GetLogger().LogOutput('Did not setup_board '
+                                 'because it already exists')
+
+  if options.debug:
+    # Perform 2-step build_packages to build a debug chrome browser.
+
+    # Firstly, build everything that chromeos-chrome depends on normally.
+    if options.rebuild == True:
+      # Give warning about "--rebuild" and "--debug". Under this combination,
+      # only dependencies of "chromeos-chrome" get rebuilt.
+      logger.GetLogger().LogWarning(
+          "\"--rebuild\" does not correctly re-build every package when "
+          "\"--debug\" is enabled. ")
+
+      # Replace EXTRA_BOARD_FLAGS=-e with "-e --onlydeps"
+      build_packages_env = build_packages_env.replace(
+          'EXTRA_BOARD_FLAGS=-e', 'EXTRA_BOARD_FLAGS=\"-e --onlydeps\"')
+    else:
+      build_packages_env += ' EXTRA_BOARD_FLAGS=--onlydeps'
+
+    ret = cmd_executer.ChrootRunCommand(
+        options.chromeos_root, "CFLAGS=\"$(portageq-%s envvar CFLAGS) %s\" "
+        "CXXFLAGS=\"$(portageq-%s envvar CXXFLAGS) %s\" "
+        "LDFLAGS=\"$(portageq-%s envvar LDFLAGS) %s\" "
+        'CHROME_ORIGIN=SERVER_SOURCE '
+        '%s '
+        '%s --skip_chroot_upgrade'
+        'chromeos-chrome' % (options.board, options.cflags, options.board,
+                             options.cxxflags, options.board, options.ldflags,
+                             build_packages_env, build_packages_command))
+
+    logger.GetLogger().LogFatalIf(\
+      ret, 'build_packages failed while trying to build chromeos-chrome deps.')
+
+    # Secondly, build chromeos-chrome using debug mode.
+    # Replace '--onlydeps' with '--nodeps'.
+    if options.rebuild == True:
+      build_packages_env = build_packages_env.replace(
+          'EXTRA_BOARD_FLAGS=\"-e --onlydeps\"', 'EXTRA_BOARD_FLAGS=--nodeps')
+    else:
+      build_packages_env = build_packages_env.replace(
+          'EXTRA_BOARD_FLAGS=--onlydeps', 'EXTRA_BOARD_FLAGS=--nodeps')
+    ret = cmd_executer.ChrootRunCommand(
+        options.chromeos_root, "CFLAGS=\"$(portageq-%s envvar CFLAGS) %s\" "
+        "CXXFLAGS=\"$(portageq-%s envvar CXXFLAGS) %s\" "
+        "LDFLAGS=\"$(portageq-%s envvar LDFLAGS) %s\" "
+        'CHROME_ORIGIN=SERVER_SOURCE BUILDTYPE=Debug '
+        '%s '
+        '%s --skip_chroot_upgrade'
+        'chromeos-chrome' % (options.board, options.cflags, options.board,
+                             options.cxxflags, options.board, options.ldflags,
+                             build_packages_env, build_packages_command))
+    logger.GetLogger().LogFatalIf(
+        ret,
+        'build_packages failed while trying to build debug chromeos-chrome.')
+
+    # Now, we have built chromeos-chrome and all dependencies.
+    # Finally, remove '-e' from EXTRA_BOARD_FLAGS,
+    # otherwise, chromeos-chrome gets rebuilt.
+    build_packages_env = build_packages_env.replace(\
+      'EXTRA_BOARD_FLAGS=--nodeps', '')
+
+    # Up to now, we have a debug built chromos-chrome browser.
+    # Fall through to build the rest of the world.
+
+    # Build packages
+  ret = cmd_executer.ChrootRunCommand(
+      options.chromeos_root, "CFLAGS=\"$(portageq-%s envvar CFLAGS) %s\" "
+      "CXXFLAGS=\"$(portageq-%s envvar CXXFLAGS) %s\" "
+      "LDFLAGS=\"$(portageq-%s envvar LDFLAGS) %s\" "
+      'CHROME_ORIGIN=SERVER_SOURCE '
+      '%s '
+      '%s --skip_chroot_upgrade' % (options.board, options.cflags,
+                                    options.board, options.cxxflags,
+                                    options.board, options.ldflags,
+                                    build_packages_env, build_packages_command))
+
+  logger.GetLogger().LogFatalIf(ret, 'build_packages failed')
+  if options.package:
+    return 0
+  # Build image
+  ret = cmd_executer.ChrootRunCommand(
+      options.chromeos_root, build_packages_env + ' ' + build_image_command)
+
+  logger.GetLogger().LogFatalIf(ret, 'build_image failed')
+
+  flags_file_name = 'flags.txt'
+  flags_file_path = ('%s/src/build/images/%s/latest/%s' %
+                     (options.chromeos_root, options.board, flags_file_name))
+  flags_file = open(flags_file_path, 'wb')
+  flags_file.write('CFLAGS=%s\n' % options.cflags)
+  flags_file.write('CXXFLAGS=%s\n' % options.cxxflags)
+  flags_file.write('LDFLAGS=%s\n' % options.ldflags)
+  flags_file.close()
+
+  if options.label:
+    image_dir_path = ('%s/src/build/images/%s/latest' % (options.chromeos_root,
+                                                         options.board))
+    real_image_dir_path = os.path.realpath(image_dir_path)
+    command = ('ln -sf -T %s %s/%s' %
+               (os.path.basename(real_image_dir_path),
+                os.path.dirname(real_image_dir_path), options.label))
+
+    ret = cmd_executer.RunCommand(command)
+    logger.GetLogger().LogFatalIf(ret, 'Failed to apply symlink label %s' %
+                                  options.label)
+
+  return ret
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/build_tc.py b/build_tc.py
new file mode 100755
index 0000000..55fc5b7
--- /dev/null
+++ b/build_tc.py
@@ -0,0 +1,337 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Script to build the ChromeOS toolchain.
+
+This script sets up the toolchain if you give it the gcctools directory.
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import getpass
+import os
+import sys
+import tempfile
+
+import tc_enter_chroot
+from cros_utils import command_executer
+from cros_utils import constants
+from cros_utils import misc
+
+
+class ToolchainPart(object):
+  """Class to hold the toolchain pieces."""
+
+  def __init__(self,
+               name,
+               source_path,
+               chromeos_root,
+               board,
+               incremental,
+               build_env,
+               gcc_enable_ccache=False):
+    self._name = name
+    self._source_path = misc.CanonicalizePath(source_path)
+    self._chromeos_root = chromeos_root
+    self._board = board
+    self._ctarget = misc.GetCtargetFromBoard(self._board, self._chromeos_root)
+    self._gcc_libs_dest = misc.GetGccLibsDestForBoard(self._board,
+                                                      self._chromeos_root)
+    self.tag = '%s-%s' % (name, self._ctarget)
+    self._ce = command_executer.GetCommandExecuter()
+    self._mask_file = os.path.join(self._chromeos_root, 'chroot',
+                                   'etc/portage/package.mask/cross-%s' %
+                                   self._ctarget)
+    self._new_mask_file = None
+
+    self._chroot_source_path = os.path.join(constants.MOUNTED_TOOLCHAIN_ROOT,
+                                            self._name).lstrip('/')
+    self._incremental = incremental
+    self._build_env = build_env
+    self._gcc_enable_ccache = gcc_enable_ccache
+
+  def RunSetupBoardIfNecessary(self):
+    cross_symlink = os.path.join(self._chromeos_root, 'chroot',
+                                 'usr/local/bin/emerge-%s' % self._board)
+    if not os.path.exists(cross_symlink):
+      command = ('%s/setup_board --board=%s' %
+                 (misc.CHROMEOS_SCRIPTS_DIR, self._board))
+      self._ce.ChrootRunCommand(self._chromeos_root, command)
+
+  def Build(self):
+    rv = 1
+    try:
+      self.UninstallTool()
+      self.MoveMaskFile()
+      self.MountSources(False)
+      self.RemoveCompiledFile()
+      rv = self.BuildTool()
+    finally:
+      self.UnMoveMaskFile()
+    return rv
+
+  def RemoveCompiledFile(self):
+    compiled_file = os.path.join(self._chromeos_root, 'chroot',
+                                 'var/tmp/portage/cross-%s' % self._ctarget,
+                                 '%s-9999' % self._name, '.compiled')
+    command = 'rm -f %s' % compiled_file
+    self._ce.RunCommand(command)
+
+  def MountSources(self, unmount_source):
+    mount_points = []
+    mounted_source_path = os.path.join(self._chromeos_root, 'chroot',
+                                       self._chroot_source_path)
+    src_mp = tc_enter_chroot.MountPoint(self._source_path, mounted_source_path,
+                                        getpass.getuser(), 'ro')
+    mount_points.append(src_mp)
+
+    build_suffix = 'build-%s' % self._ctarget
+    build_dir = '%s-%s' % (self._source_path, build_suffix)
+
+    if not self._incremental and os.path.exists(build_dir):
+      command = 'rm -rf %s/*' % build_dir
+      self._ce.RunCommand(command)
+
+    # Create a -build directory for the objects.
+    command = 'mkdir -p %s' % build_dir
+    self._ce.RunCommand(command)
+
+    mounted_build_dir = os.path.join(self._chromeos_root, 'chroot', '%s-%s' %
+                                     (self._chroot_source_path, build_suffix))
+    build_mp = tc_enter_chroot.MountPoint(build_dir, mounted_build_dir,
+                                          getpass.getuser())
+    mount_points.append(build_mp)
+
+    if unmount_source:
+      unmount_statuses = [mp.UnMount() == 0 for mp in mount_points]
+      assert all(unmount_statuses), 'Could not unmount all mount points!'
+    else:
+      mount_statuses = [mp.DoMount() == 0 for mp in mount_points]
+
+      if not all(mount_statuses):
+        mounted = [mp
+                   for mp, status in zip(mount_points, mount_statuses)
+                   if status]
+        unmount_statuses = [mp.UnMount() == 0 for mp in mounted]
+        assert all(unmount_statuses), 'Could not unmount all mount points!'
+
+  def UninstallTool(self):
+    command = 'sudo CLEAN_DELAY=0 emerge -C cross-%s/%s' % (self._ctarget,
+                                                            self._name)
+    self._ce.ChrootRunCommand(self._chromeos_root, command)
+
+  def BuildTool(self):
+    env = self._build_env
+    # FEATURES=buildpkg adds minutes of time so we disable it.
+    # TODO(shenhan): keep '-sandbox' for a while for compatibility, then remove
+    # it after a while.
+    features = ('nostrip userpriv userfetch -usersandbox -sandbox noclean '
+                '-buildpkg')
+    env['FEATURES'] = features
+
+    if self._incremental:
+      env['FEATURES'] += ' keepwork'
+
+    if 'USE' in env:
+      env['USE'] += ' multislot mounted_%s' % self._name
+    else:
+      env['USE'] = 'multislot mounted_%s' % self._name
+
+    # Disable ccache in our compilers. cache may be problematic for us.
+    # It ignores compiler environments settings and it is not clear if
+    # the cache hit algorithm verifies all the compiler binaries or
+    # just the driver.
+    if self._name == 'gcc' and not self._gcc_enable_ccache:
+      env['USE'] += ' -wrapper_ccache'
+
+    env['%s_SOURCE_PATH' % self._name.upper()] = (
+        os.path.join('/', self._chroot_source_path))
+    env['ACCEPT_KEYWORDS'] = '~*'
+    env_string = ' '.join(["%s=\"%s\"" % var for var in env.items()])
+    command = 'emerge =cross-%s/%s-9999' % (self._ctarget, self._name)
+    full_command = 'sudo %s %s' % (env_string, command)
+    rv = self._ce.ChrootRunCommand(self._chromeos_root, full_command)
+    if rv != 0:
+      return rv
+    if self._name == 'gcc':
+      command = ('sudo cp -r /usr/lib/gcc/%s %s' %
+                 (self._ctarget, self._gcc_libs_dest))
+      rv = self._ce.ChrootRunCommand(self._chromeos_root, command)
+    return rv
+
+  def MoveMaskFile(self):
+    self._new_mask_file = None
+    if os.path.isfile(self._mask_file):
+      self._new_mask_file = tempfile.mktemp()
+      command = 'sudo mv %s %s' % (self._mask_file, self._new_mask_file)
+      self._ce.RunCommand(command)
+
+  def UnMoveMaskFile(self):
+    if self._new_mask_file:
+      command = 'sudo mv %s %s' % (self._new_mask_file, self._mask_file)
+      self._ce.RunCommand(command)
+
+
+def Main(argv):
+  """The main function."""
+  # Common initializations
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      default='../../',
+                      help=('ChromeOS root checkout directory'
+                            ' uses ../.. if none given.'))
+  parser.add_argument('-g',
+                      '--gcc_dir',
+                      dest='gcc_dir',
+                      help='The directory where gcc resides.')
+  parser.add_argument('--binutils_dir',
+                      dest='binutils_dir',
+                      help='The directory where binutils resides.')
+  parser.add_argument('-x',
+                      '--gdb_dir',
+                      dest='gdb_dir',
+                      help='The directory where gdb resides.')
+  parser.add_argument('-b',
+                      '--board',
+                      dest='board',
+                      default='x86-alex',
+                      help='The target board.')
+  parser.add_argument('-n',
+                      '--noincremental',
+                      dest='noincremental',
+                      default=False,
+                      action='store_true',
+                      help='Use FEATURES=keepwork to do incremental builds.')
+  parser.add_argument('--cflags',
+                      dest='cflags',
+                      default='',
+                      help='Build a compiler with specified CFLAGS')
+  parser.add_argument('--cxxflags',
+                      dest='cxxflags',
+                      default='',
+                      help='Build a compiler with specified CXXFLAGS')
+  parser.add_argument('--cflags_for_target',
+                      dest='cflags_for_target',
+                      default='',
+                      help='Build the target libraries with specified flags')
+  parser.add_argument('--cxxflags_for_target',
+                      dest='cxxflags_for_target',
+                      default='',
+                      help='Build the target libraries with specified flags')
+  parser.add_argument('--ldflags',
+                      dest='ldflags',
+                      default='',
+                      help='Build a compiler with specified LDFLAGS')
+  parser.add_argument('-d',
+                      '--debug',
+                      dest='debug',
+                      default=False,
+                      action='store_true',
+                      help='Build a compiler with -g3 -O0 appended to both'
+                      ' CFLAGS and CXXFLAGS.')
+  parser.add_argument('-m',
+                      '--mount_only',
+                      dest='mount_only',
+                      default=False,
+                      action='store_true',
+                      help='Just mount the tool directories.')
+  parser.add_argument('-u',
+                      '--unmount_only',
+                      dest='unmount_only',
+                      default=False,
+                      action='store_true',
+                      help='Just unmount the tool directories.')
+  parser.add_argument('--extra_use_flags',
+                      dest='extra_use_flags',
+                      default='',
+                      help='Extra flag for USE, to be passed to the ebuild. '
+                      "('multislot' and 'mounted_<tool>' are always passed.)")
+  parser.add_argument('--gcc_enable_ccache',
+                      dest='gcc_enable_ccache',
+                      default=False,
+                      action='store_true',
+                      help='Enable ccache for the gcc invocations')
+
+  options = parser.parse_args(argv)
+
+  chromeos_root = misc.CanonicalizePath(options.chromeos_root)
+  if options.gcc_dir:
+    gcc_dir = misc.CanonicalizePath(options.gcc_dir)
+    assert gcc_dir and os.path.isdir(gcc_dir), 'gcc_dir does not exist!'
+  if options.binutils_dir:
+    binutils_dir = misc.CanonicalizePath(options.binutils_dir)
+    assert os.path.isdir(binutils_dir), 'binutils_dir does not exist!'
+  if options.gdb_dir:
+    gdb_dir = misc.CanonicalizePath(options.gdb_dir)
+    assert os.path.isdir(gdb_dir), 'gdb_dir does not exist!'
+  if options.unmount_only:
+    options.mount_only = False
+  elif options.mount_only:
+    options.unmount_only = False
+  build_env = {}
+  if options.cflags:
+    build_env['CFLAGS'] = '`portageq envvar CFLAGS` ' + options.cflags
+  if options.cxxflags:
+    build_env['CXXFLAGS'] = '`portageq envvar CXXFLAGS` ' + options.cxxflags
+  if options.cflags_for_target:
+    build_env['CFLAGS_FOR_TARGET'] = options.cflags_for_target
+  if options.cxxflags_for_target:
+    build_env['CXXFLAGS_FOR_TARGET'] = options.cxxflags_for_target
+  if options.ldflags:
+    build_env['LDFLAGS'] = options.ldflags
+  if options.debug:
+    debug_flags = '-g3 -O0'
+    if 'CFLAGS' in build_env:
+      build_env['CFLAGS'] += ' %s' % (debug_flags)
+    else:
+      build_env['CFLAGS'] = debug_flags
+    if 'CXXFLAGS' in build_env:
+      build_env['CXXFLAGS'] += ' %s' % (debug_flags)
+    else:
+      build_env['CXXFLAGS'] = debug_flags
+  if options.extra_use_flags:
+    build_env['USE'] = options.extra_use_flags
+
+  # Create toolchain parts
+  toolchain_parts = {}
+  for board in options.board.split(','):
+    if options.gcc_dir:
+      tp = ToolchainPart('gcc', gcc_dir, chromeos_root, board,
+                         not options.noincremental, build_env,
+                         options.gcc_enable_ccache)
+      toolchain_parts[tp.tag] = tp
+      tp.RunSetupBoardIfNecessary()
+    if options.binutils_dir:
+      tp = ToolchainPart('binutils', binutils_dir, chromeos_root, board,
+                         not options.noincremental, build_env)
+      toolchain_parts[tp.tag] = tp
+      tp.RunSetupBoardIfNecessary()
+    if options.gdb_dir:
+      tp = ToolchainPart('gdb', gdb_dir, chromeos_root, board,
+                         not options.noincremental, build_env)
+      toolchain_parts[tp.tag] = tp
+      tp.RunSetupBoardIfNecessary()
+
+  rv = 0
+  try:
+    for tag in toolchain_parts:
+      tp = toolchain_parts[tag]
+      if options.mount_only or options.unmount_only:
+        tp.MountSources(options.unmount_only)
+      else:
+        rv = rv + tp.Build()
+  finally:
+    print('Exiting...')
+  return rv
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/build_tool.py b/build_tool.py
new file mode 100755
index 0000000..1df4695
--- /dev/null
+++ b/build_tool.py
@@ -0,0 +1,853 @@
+#!/usr/bin/python2
+"""Script to bootstrap the chroot using new toolchain.
+
+This script allows you to build/install a customized version of gcc/binutils,
+either by specifying branch or a local directory.
+
+This script must be executed outside chroot.
+
+Below is some typical usage -
+
+## Build gcc located at /local/gcc/dir and do a bootstrap using the new
+## compiler for the chromeos root.  The script tries to find a valid chromeos
+## tree all the way up from your current working directory.
+./build_tool.py --gcc_dir=/loca/gcc/dir --bootstrap
+
+## Build binutils, using remote branch "mobile_toolchain_v17" and do a
+## bootstrap using the new binutils for the chromeos root. The script tries to
+## find a valid chromeos tree all the way up from your current working
+## directory.
+./build_tool.py --binutils_branch=cros/mobile_toolchain_v17 \
+    --chromeos_root=/chromeos/dir --bootstrap
+
+## Same as above except only do it for board daisy - no bootstrapping involved.
+./build_tool.py --binutils_branch=cros/mobile_toolchain_v16 \
+    --chromeos_root=/chromeos/dir --board=daisy
+"""
+
+from __future__ import print_function
+
+__author__ = 'shenhan@google.com (Han Shen)'
+
+import argparse
+import os
+import re
+import sys
+
+
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import misc
+import repo_to_repo
+
+REPO_PATH_PATTERN = 'src/third_party/{0}'
+TEMP_BRANCH_NAME = 'internal_testing_branch_no_use'
+CHROMIUMOS_OVERLAY_PATH = 'src/third_party/chromiumos-overlay'
+EBUILD_PATH_PATTERN = 'src/third_party/chromiumos-overlay/sys-devel/{0}'
+
+
+class Bootstrapper(object):
+  """Class that handles bootstrap process."""
+
+  def __init__(self,
+               chromeos_root,
+               ndk_dir,
+               gcc_branch=None,
+               gcc_dir=None,
+               binutils_branch=None,
+               binutils_dir=None,
+               board=None,
+               disable_2nd_bootstrap=False,
+               setup_tool_ebuild_file_only=False):
+    self._chromeos_root = chromeos_root
+    self._ndk_dir = ndk_dir
+
+    self._gcc_branch = gcc_branch
+    self._gcc_branch_tree = None
+    self._gcc_dir = gcc_dir
+    self._gcc_ebuild_file = None
+    self._gcc_ebuild_file_name = None
+
+    self._binutils_branch = binutils_branch
+    self._binutils_branch_tree = None
+    self._binutils_dir = binutils_dir
+    self._binutils_ebuild_file = None
+    self._binutils_ebuild_file_name = None
+
+    self._setup_tool_ebuild_file_only = setup_tool_ebuild_file_only
+
+    self._ce = command_executer.GetCommandExecuter()
+    self._logger = logger.GetLogger()
+    self._board = board
+    self._disable_2nd_bootstrap = disable_2nd_bootstrap
+
+  def IsTreeSame(self, t1, t2):
+    diff = 'diff -qr -x .git -x .svn "{0}" "{1}"'.format(t1, t2)
+    if self._ce.RunCommand(diff, print_to_console=False) == 0:
+      self._logger.LogOutput('"{0}" and "{1}" are the same."'.format(t1, t2))
+      return True
+    self._logger.LogWarning('"{0}" and "{1}" are different."'.format(t1, t2))
+    return False
+
+  def SubmitToLocalBranch(self):
+    """Copy source code to the chromium source tree and submit it locally."""
+    if self._gcc_dir:
+      if not self.SubmitToolToLocalBranch(tool_name='gcc',
+                                          tool_dir=self._gcc_dir):
+        return False
+      self._gcc_branch = TEMP_BRANCH_NAME
+
+    if self._binutils_dir:
+      if not self.SubmitToolToLocalBranch(tool_name='binutils',
+                                          tool_dir=self._binutils_dir):
+        return False
+      self._binutils_branch = TEMP_BRANCH_NAME
+
+    return True
+
+  def SubmitToolToLocalBranch(self, tool_name, tool_dir):
+    """Copy the source code to local chromium source tree.
+
+    Args:
+      tool_name: either 'gcc' or 'binutils'
+      tool_dir: the tool source dir to be used
+
+    Returns:
+      True if all succeeded False otherwise.
+    """
+
+    # The next few steps creates an internal branch to sync with the tool dir
+    # user provided.
+    chrome_tool_dir = self.GetChromeOsToolDir(tool_name)
+
+    # 0. Test to see if git tree is free of local changes.
+    if not misc.IsGitTreeClean(chrome_tool_dir):
+      self._logger.LogError('Git repository "{0}" not clean, aborted.'.format(
+          chrome_tool_dir))
+      return False
+
+    # 1. Checkout/create a (new) branch for testing.
+    command = 'cd "{0}" && git checkout -B {1}'.format(chrome_tool_dir,
+                                                       TEMP_BRANCH_NAME)
+    ret = self._ce.RunCommand(command)
+    if ret:
+      self._logger.LogError('Failed to create a temp branch for test, aborted.')
+      return False
+
+    if self.IsTreeSame(tool_dir, chrome_tool_dir):
+      self._logger.LogOutput(
+          '"{0}" and "{1}" are the same, sync skipped.'.format(tool_dir,
+                                                               chrome_tool_dir))
+      return True
+
+    # 2. Sync sources from user provided tool dir to chromiumos tool git.
+    local_tool_repo = repo_to_repo.FileRepo(tool_dir)
+    chrome_tool_repo = repo_to_repo.GitRepo(chrome_tool_dir, TEMP_BRANCH_NAME)
+    chrome_tool_repo.SetRoot(chrome_tool_dir)
+    # Delete all stuff except '.git' before start mapping.
+    self._ce.RunCommand(
+        'cd {0} && find . -maxdepth 1 -not -name ".git" -not -name "." '
+        r'\( -type f -exec rm {{}} \; -o '
+        r'   -type d -exec rm -fr {{}} \; \)'.format(chrome_tool_dir))
+    local_tool_repo.MapSources(chrome_tool_repo.GetRoot())
+
+    # 3. Ensure after sync tree is the same.
+    if self.IsTreeSame(tool_dir, chrome_tool_dir):
+      self._logger.LogOutput('Sync successfully done.')
+    else:
+      self._logger.LogError('Sync not successful, aborted.')
+      return False
+
+    # 4. Commit all changes.
+    # 4.1 Try to get some information about the tool dir we are using.
+    cmd = 'cd {0} && git log -1 --pretty=oneline'.format(tool_dir)
+    tool_dir_extra_info = None
+    ret, tool_dir_extra_info, _ = self._ce.RunCommandWOutput(
+        cmd,
+        print_to_console=False)
+    commit_message = 'Synced with tool source tree at - "{0}".'.format(tool_dir)
+    if not ret:
+      commit_message += '\nGit log for {0}:\n{1}'.format(
+          tool_dir, tool_dir_extra_info.strip())
+
+    if chrome_tool_repo.CommitLocally(commit_message):
+      self._logger.LogError(
+          'Commit to local branch "{0}" failed, aborted.'.format(
+              TEMP_BRANCH_NAME))
+      return False
+    return True
+
+  def CheckoutBranch(self):
+    """Checkout working branch for the tools.
+
+    Returns:
+      True: if operation succeeds.
+    """
+
+    if self._gcc_branch:
+      rv = self.CheckoutToolBranch('gcc', self._gcc_branch)
+      if rv:
+        self._gcc_branch_tree = rv
+      else:
+        return False
+
+    if self._binutils_branch:
+      rv = self.CheckoutToolBranch('binutils', self._binutils_branch)
+      if rv:
+        self._binutils_branch_tree = rv
+      else:
+        return False
+
+    return True
+
+  def CheckoutToolBranch(self, tool_name, tool_branch):
+    """Checkout the tool branch for a certain tool.
+
+    Args:
+      tool_name: either 'gcc' or 'binutils'
+      tool_branch: tool branch to use
+
+    Returns:
+      True: if operation succeeds. Otherwise False.
+    """
+
+    chrome_tool_dir = self.GetChromeOsToolDir(tool_name)
+    command = 'cd "{0}" && git checkout {1}'.format(chrome_tool_dir,
+                                                    tool_branch)
+    if not self._ce.RunCommand(command, print_to_console=True):
+      # Get 'TREE' value of this commit
+      command = ('cd "{0}" && git cat-file -p {1} '
+                 '| grep -E "^tree [a-f0-9]+$" '
+                 '| cut -d" " -f2').format(chrome_tool_dir, tool_branch)
+      ret, stdout, _ = self._ce.RunCommandWOutput(command,
+                                                  print_to_console=False)
+      # Pipe operation always has a zero return value. So need to check if
+      # stdout is valid.
+      if not ret and stdout and re.match('[0-9a-h]{40}', stdout.strip(),
+                                         re.IGNORECASE):
+        tool_branch_tree = stdout.strip()
+        self._logger.LogOutput('Find tree for {0} branch "{1}" - "{2}"'.format(
+            tool_name, tool_branch, tool_branch_tree))
+        return tool_branch_tree
+    self._logger.LogError(('Failed to checkout "{0}" or failed to '
+                           'get tree value, aborted.').format(tool_branch))
+    return None
+
+  def FindEbuildFile(self):
+    """Find the ebuild files for the tools.
+
+    Returns:
+      True: if operation succeeds.
+    """
+
+    if self._gcc_branch:
+      (rv, ef, efn) = self.FindToolEbuildFile('gcc')
+      if rv:
+        self._gcc_ebuild_file = ef
+        self._gcc_ebuild_file_name = efn
+      else:
+        return False
+
+    if self._binutils_branch:
+      (rv, ef, efn) = self.FindToolEbuildFile('binutils')
+      if rv:
+        self._binutils_ebuild_file = ef
+        self._binutils_ebuild_file_name = efn
+      else:
+        return False
+
+    return True
+
+  def FindToolEbuildFile(self, tool_name):
+    """Find ebuild file for a specific tool.
+
+    Args:
+      tool_name: either "gcc" or "binutils".
+
+    Returns:
+      A triplet that consisits of whether operation succeeds or not,
+      tool ebuild file full path and tool ebuild file name.
+    """
+
+    # To get the active gcc ebuild file, we need a workable chroot first.
+    if not os.path.exists(os.path.join(
+        self._chromeos_root, 'chroot')) and self._ce.RunCommand(
+            'cd "{0}" && cros_sdk --create'.format(self._chromeos_root)):
+      self._logger.LogError(('Failed to install a initial chroot, aborted.\n'
+                             'If previous bootstrap failed, do a '
+                             '"cros_sdk --delete" to remove '
+                             'in-complete chroot.'))
+      return (False, None, None)
+
+    rv, stdout, _ = self._ce.ChrootRunCommandWOutput(
+        self._chromeos_root,
+        'equery w sys-devel/{0}'.format(tool_name),
+        print_to_console=True)
+    if rv:
+      self._logger.LogError(('Failed to execute inside chroot '
+                             '"equery w sys-devel/{0}", aborted.').format(
+                                 tool_name))
+      return (False, None, None)
+    m = re.match(r'^.*/({0}/(.*\.ebuild))$'.format(EBUILD_PATH_PATTERN.format(
+        tool_name)), stdout)
+    if not m:
+      self._logger.LogError(
+          ('Failed to find {0} ebuild file, aborted. '
+           'If previous bootstrap failed, do a "cros_sdk --delete" to remove '
+           'in-complete chroot.').format(tool_name))
+      return (False, None, None)
+    tool_ebuild_file = os.path.join(self._chromeos_root, m.group(1))
+    tool_ebuild_file_name = m.group(2)
+
+    return (True, tool_ebuild_file, tool_ebuild_file_name)
+
+  def InplaceModifyEbuildFile(self):
+    """Modify the ebuild file.
+
+    Returns:
+      True if operation succeeds.
+    """
+
+    # Note we shall not use remote branch name (eg. "cros/gcc.gnu.org/...") in
+    # CROS_WORKON_COMMIT, we have to use GITHASH. So we call GitGetCommitHash on
+    # tool_branch.
+    tool = None
+    toolbranch = None
+    if self._gcc_branch:
+      tool = 'gcc'
+      toolbranch = self._gcc_branch
+      tooltree = self._gcc_branch_tree
+      toolebuild = self._gcc_ebuild_file
+    elif self._binutils_branch:
+      tool = 'binutils'
+      toolbranch = self._binutils_branch
+      tooltree = self._binutils_branch_tree
+      toolebuild = self._binutils_ebuild_file
+
+
+    assert tool
+
+    # An example for the following variables would be:
+    #   tooldir = '~/android/master-ndk/toolchain/gcc/gcc-4.9'
+    #   tool_branch_githash = xxxxx
+    #   toolcomponents = toolchain/gcc
+    tooldir = self.GetChromeOsToolDir(tool)
+    toolgithash = misc.GitGetCommitHash(tooldir, toolbranch)
+    if not toolgithash:
+      return False
+    toolcomponents = 'toolchain/{}'.format(tool)
+    return self.InplaceModifyToolEbuildFile(toolcomponents,
+                                            toolgithash,
+                                            tooltree,
+                                            toolebuild)
+
+  @staticmethod
+  def ResetToolEbuildFile(chromeos_root, tool_name):
+    """Reset tool ebuild file to clean state.
+
+    Args:
+      chromeos_root: chromeos source tree
+      tool_name: either "gcc" or "binutils"
+
+    Returns:
+      True if operation succeds.
+    """
+    rv = misc.GetGitChangesAsList(
+        os.path.join(chromeos_root, CHROMIUMOS_OVERLAY_PATH),
+        path=('sys-devel/{0}/{0}-*.ebuild'.format(tool_name)),
+        staged=False)
+    if rv:
+      cmd = 'cd {0} && git checkout --'.format(os.path.join(
+          chromeos_root, CHROMIUMOS_OVERLAY_PATH))
+      for g in rv:
+        cmd += ' ' + g
+      rv = command_executer.GetCommandExecuter().RunCommand(cmd)
+      if rv:
+        logger.GetLogger().LogWarning(
+            'Failed to reset the ebuild file. Please refer to log above.')
+        return False
+    else:
+      logger.GetLogger().LogWarning(
+          'Note - did not find any modified {0} ebuild file.'.format(tool_name))
+      # Fall through
+    return True
+
+  def GetChromeOsToolDir(self, tool_name):
+    """Return the chromeos git dir for a specific tool.
+
+    Note, after we unified ChromeOs and Android, the tool dir is under
+    ndk_dir/toolchain/[gcc,binutils].
+
+    Args:
+      tool_name: either 'gcc' or 'binutils'.
+
+    Returns:
+      Absolute git path for the tool.
+    """
+
+    tool_toppath = os.path.join(self._ndk_dir, 'toolchain', tool_name)
+    # There may be sub-directories like 'binutils-2.25', 'binutils-2.24',
+    # 'gcc-4.9', 'gcc-4.8', etc. find the newest binutils version.
+    cmd = ('find {} -maxdepth 1 -type d -name "{}-*" '
+           '| sort -r | head -1').format(tool_toppath, tool_name)
+    rv, out, _ = self._ce.RunCommandWOutput(cmd, print_to_console=False)
+    if rv:
+      return None
+    repo = out.strip()
+
+    # cros-workon eclass expects every CROS_WORKON_PROJECT ends with ".git".
+    self._ce.RunCommand(('cd $(dirname {0}) && '
+                         'ln -sf $(basename {0}) $(basename {0}).git').format(
+                             repo, print_to_console=True))
+    return repo
+
+
+  def InplaceModifyToolEbuildFile(self,
+                                  tool_components,
+                                  tool_branch_githash,
+                                  tool_branch_tree,
+                                  tool_ebuild_file):
+    """Using sed to fill properly values into the ebuild file.
+
+    Args:
+      tool_components: either "toolchain/gcc" or "toolchain/binutils"
+      tool_branch_githash: githash for tool_branch
+      tool_branch_tree: treeish for the tool branch
+      tool_ebuild_file: tool ebuild file
+
+    Returns:
+      True: if operation succeeded.
+    """
+
+    command = ('sed -i '
+               '-e \'/^CROS_WORKON_REPO=".*"/i'
+               ' # The following line is modified by script.\' '
+               '-e \'s!^CROS_WORKON_REPO=".*"$!CROS_WORKON_REPO="{0}"!\' '
+               '-e \'/^CROS_WORKON_PROJECT=".*"/i'
+               ' # The following line is modified by script.\' '
+               '-e \'s!^CROS_WORKON_PROJECT=.*$!CROS_WORKON_PROJECT="{1}"!\' '
+               '-e \'/^CROS_WORKON_COMMIT=".*"/i'
+               ' # The following line is modified by script.\' '
+               '-e \'s!^CROS_WORKON_COMMIT=".*"$!CROS_WORKON_COMMIT="{2}"!\' '
+               '-e \'/^CROS_WORKON_TREE=".*"/i'
+               ' # The following line is modified by script.\' '
+               '-e \'s!^CROS_WORKON_TREE=".*"$!CROS_WORKON_TREE="{3}"!\' '
+               '{4}').format('/home/{}/ndk-root'.format(os.environ['USER']),
+                             tool_components,
+                             tool_branch_githash,
+                             tool_branch_tree,
+                             tool_ebuild_file)
+    rv = self._ce.RunCommand(command)
+    if rv:
+      self._logger.LogError(
+          'Failed to modify commit and tree value for "{0}"", aborted.'.format(
+              tool_ebuild_file))
+      return False
+
+    # Warn that the ebuild file has been modified.
+    self._logger.LogWarning(
+        ('Ebuild file "{0}" is modified, to revert the file - \n'
+         'bootstrap_compiler.py --chromeos_root={1} '
+         '--reset_tool_ebuild_file').format(tool_ebuild_file,
+                                            self._chromeos_root))
+    return True
+
+  def DoBuildForBoard(self):
+    """Build tool for a specific board.
+
+    Returns:
+      True if operation succeeds.
+    """
+
+    if self._gcc_branch:
+      if not self.DoBuildToolForBoard('gcc'):
+        return False
+    if self._binutils_branch:
+      if not self.DoBuildToolForBoard('binutils'):
+        return False
+    return True
+
+  def DoBuildToolForBoard(self, tool_name):
+    """Build a specific tool for a specific board.
+
+    Args:
+      tool_name: either "gcc" or "binutils"
+
+    Returns:
+      True if operation succeeds.
+    """
+
+    chroot_ndk_root = os.path.join(self._chromeos_root, 'chroot',
+                                   'home', os.environ['USER'],
+                                   'ndk-root')
+    self._ce.RunCommand('mkdir -p {}'.format(chroot_ndk_root))
+    if self._ce.RunCommand('sudo mount --bind {} {}'.format(
+        self._ndk_dir, chroot_ndk_root)):
+      self._logger.LogError('Failed to mount ndk dir into chroot')
+      return False
+
+    try:
+      boards_to_build = self._board.split(',')
+      target_built = set()
+      failed = []
+      for board in boards_to_build:
+        if board == 'host':
+          command = 'sudo emerge sys-devel/{0}'.format(tool_name)
+        else:
+          target = misc.GetCtargetFromBoard(board, self._chromeos_root)
+          if not target:
+            self._logger.LogError(
+                'Unsupported board "{0}", skip.'.format(board))
+            failed.append(board)
+            continue
+          # Skip this board if we have already built for a board that has the
+          # same target.
+          if target in target_built:
+            self._logger.LogWarning(
+                'Skipping toolchain for board "{}"'.format(board))
+            continue
+          target_built.add(target)
+          command = 'sudo emerge cross-{0}/{1}'.format(target, tool_name)
+
+        rv = self._ce.ChrootRunCommand(self._chromeos_root,
+                                       command,
+                                       print_to_console=True)
+        if rv:
+          self._logger.LogError('Build {0} failed for {1}, aborted.'.format(
+              tool_name, board))
+          failed.append(board)
+        else:
+          self._logger.LogOutput('Successfully built {0} for board {1}.'.format(
+              tool_name, board))
+    finally:
+      # Make sure we un-mount ndk-root before we leave here, regardless of the
+      # build result of the tool. Otherwise we may inadvertently delete ndk-root
+      # dir, which is not part of the chroot and could be disastrous.
+      if chroot_ndk_root:
+        if self._ce.RunCommand('sudo umount {}'.format(chroot_ndk_root)):
+          self._logger.LogWarning(('Failed to umount "{}", please check '
+                                   'before deleting chroot.').format(
+                                       chroot_ndk_root))
+
+      # Clean up soft links created during build.
+      self._ce.RunCommand('cd {}/toolchain/{} && git clean -df'.format(
+          self._ndk_dir, tool_name))
+
+    if failed:
+      self._logger.LogError(
+          'Failed to build {0} for the following board(s): "{1}"'.format(
+              tool_name, ' '.join(failed)))
+      return False
+    # All boards build successfully
+    return True
+
+  def DoBootstrapping(self):
+    """Do bootstrapping the chroot.
+
+    This step firstly downloads a prestine sdk, then use this sdk to build the
+    new sdk, finally use the new sdk to build every host package.
+
+    Returns:
+      True if operation succeeds.
+    """
+
+    logfile = os.path.join(self._chromeos_root, 'bootstrap.log')
+    command = 'cd "{0}" && cros_sdk --delete --bootstrap |& tee "{1}"'.format(
+        self._chromeos_root, logfile)
+    rv = self._ce.RunCommand(command, print_to_console=True)
+    if rv:
+      self._logger.LogError('Bootstrapping failed, log file - "{0}"\n'.format(
+          logfile))
+      return False
+
+    self._logger.LogOutput('Bootstrap succeeded.')
+    return True
+
+  def BuildAndInstallAmd64Host(self):
+    """Build amd64-host (host) packages.
+
+    Build all host packages in the newly-bootstrapped 'chroot' using *NEW*
+    toolchain.
+
+    So actually we perform 2 builds of all host packages -
+      1. build new toolchain using old toolchain and build all host packages
+         using the newly built toolchain
+      2. build the new toolchain again but using new toolchain built in step 1,
+         and build all host packages using the newly built toolchain
+
+    Returns:
+      True if operation succeeds.
+    """
+
+    cmd = ('cd {0} && cros_sdk -- -- ./setup_board --board=amd64-host '
+           '--accept_licenses=@CHROMEOS --skip_chroot_upgrade --nousepkg '
+           '--reuse_pkgs_from_local_boards').format(self._chromeos_root)
+    rv = self._ce.RunCommand(cmd, print_to_console=True)
+    if rv:
+      self._logger.LogError('Build amd64-host failed.')
+      return False
+
+    # Package amd64-host into 'built-sdk.tar.xz'.
+    sdk_package = os.path.join(self._chromeos_root, 'built-sdk.tar.xz')
+    cmd = ('cd {0}/chroot/build/amd64-host && sudo XZ_OPT="-e9" '
+           'tar --exclude="usr/lib/debug/*" --exclude="packages/*" '
+           '--exclude="tmp/*" --exclude="usr/local/build/autotest/*" '
+           '--sparse -I xz -vcf {1} . && sudo chmod a+r {1}').format(
+               self._chromeos_root, sdk_package)
+    rv = self._ce.RunCommand(cmd, print_to_console=True)
+    if rv:
+      self._logger.LogError('Failed to create "built-sdk.tar.xz".')
+      return False
+
+    # Install amd64-host into a new chroot.
+    cmd = ('cd {0} && cros_sdk --chroot new-sdk-chroot --download --replace '
+           '--nousepkg --url file://{1}').format(self._chromeos_root,
+                                                 sdk_package)
+    rv = self._ce.RunCommand(cmd, print_to_console=True)
+    if rv:
+      self._logger.LogError('Failed to install "built-sdk.tar.xz".')
+      return False
+    self._logger.LogOutput(
+        'Successfully installed built-sdk.tar.xz into a new chroot.\nAll done.')
+
+    # Rename the newly created new-sdk-chroot to chroot.
+    cmd = ('cd {0} && sudo mv chroot chroot-old && '
+           'sudo mv new-sdk-chroot chroot').format(self._chromeos_root)
+    rv = self._ce.RunCommand(cmd, print_to_console=True)
+    return rv == 0
+
+  def Do(self):
+    """Entrance of the class.
+
+    Returns:
+      True if everything is ok.
+    """
+
+    if (self.SubmitToLocalBranch() and self.CheckoutBranch() and
+        self.FindEbuildFile() and self.InplaceModifyEbuildFile()):
+      if self._setup_tool_ebuild_file_only:
+        # Everything is done, we are good.
+        ret = True
+      else:
+        if self._board:
+          ret = self.DoBuildForBoard()
+        else:
+          # This implies '--bootstrap'.
+          ret = (self.DoBootstrapping() and (self._disable_2nd_bootstrap or
+                                             self.BuildAndInstallAmd64Host()))
+    else:
+      ret = False
+    return ret
+
+
+def Main(argv):
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      help=('Optional. ChromeOs root dir. '
+                            'When not specified, chromeos root will be deduced'
+                            ' from current working directory.'))
+  parser.add_argument('--ndk_dir',
+                      dest='ndk_dir',
+                      help=('Topmost android ndk dir, required. '
+                            'Do not need to include the "toolchain/*" part.'))
+  parser.add_argument('--gcc_branch',
+                      dest='gcc_branch',
+                      help=('The branch to test against. '
+                            'This branch must be a local branch '
+                            'inside "src/third_party/gcc". '
+                            'Notice, this must not be used with "--gcc_dir".'))
+  parser.add_argument('--binutils_branch',
+                      dest='binutils_branch',
+                      help=('The branch to test against binutils. '
+                            'This branch must be a local branch '
+                            'inside "src/third_party/binutils". '
+                            'Notice, this must not be used with '
+                            '"--binutils_dir".'))
+  parser.add_argument('-g',
+                      '--gcc_dir',
+                      dest='gcc_dir',
+                      help=('Use a local gcc tree to do bootstrapping. '
+                            'Notice, this must not be used with '
+                            '"--gcc_branch".'))
+  parser.add_argument('--binutils_dir',
+                      dest='binutils_dir',
+                      help=('Use a local binutils tree to do bootstrapping. '
+                            'Notice, this must not be used with '
+                            '"--binutils_branch".'))
+  parser.add_argument('--fixperm',
+                      dest='fixperm',
+                      default=False,
+                      action='store_true',
+                      help=('Fix the (notorious) permission error '
+                            'while trying to bootstrap the chroot. '
+                            'Note this takes an extra 10-15 minutes '
+                            'and is only needed once per chromiumos tree.'))
+  parser.add_argument('--setup_tool_ebuild_file_only',
+                      dest='setup_tool_ebuild_file_only',
+                      default=False,
+                      action='store_true',
+                      help=('Setup gcc and/or binutils ebuild file '
+                            'to pick up the branch (--gcc/binutils_branch) or '
+                            'use gcc and/or binutils source '
+                            '(--gcc/binutils_dir) and exit. Keep chroot as is.'
+                            ' This should not be used with '
+                            '--gcc/binutils_dir/branch options.'))
+  parser.add_argument('--reset_tool_ebuild_file',
+                      dest='reset_tool_ebuild_file',
+                      default=False,
+                      action='store_true',
+                      help=('Reset the modification that is done by this '
+                            'script. Note, when this script is running, it '
+                            'will modify the active gcc/binutils ebuild file. '
+                            'Use this option to reset (what this script has '
+                            'done) and exit. This should not be used with -- '
+                            'gcc/binutils_dir/branch options.'))
+  parser.add_argument('--board',
+                      dest='board',
+                      default=None,
+                      help=('Only build toolchain for specific board(s). '
+                            'Use "host" to build for host. '
+                            'Use "," to seperate multiple boards. '
+                            'This does not perform a chroot bootstrap.'))
+  parser.add_argument('--bootstrap',
+                      dest='bootstrap',
+                      default=False,
+                      action='store_true',
+                      help=('Performs a chroot bootstrap. '
+                            'Note, this will *destroy* your current chroot.'))
+  parser.add_argument('--disable-2nd-bootstrap',
+                      dest='disable_2nd_bootstrap',
+                      default=False,
+                      action='store_true',
+                      help=('Disable a second bootstrap '
+                            '(build of amd64-host stage).'))
+
+  options = parser.parse_args(argv)
+  # Trying to deduce chromeos root from current directory.
+  if not options.chromeos_root:
+    logger.GetLogger().LogOutput('Trying to deduce chromeos root ...')
+    wdir = os.getcwd()
+    while wdir and wdir != '/':
+      if misc.IsChromeOsTree(wdir):
+        logger.GetLogger().LogOutput('Find chromeos_root: {}'.format(wdir))
+        options.chromeos_root = wdir
+        break
+      wdir = os.path.dirname(wdir)
+
+  if not options.chromeos_root:
+    parser.error('Missing or failing to deduce mandatory option "--chromeos".')
+    return 1
+
+  options.chromeos_root = os.path.abspath(os.path.expanduser(
+      options.chromeos_root))
+
+  if not os.path.isdir(options.chromeos_root):
+    logger.GetLogger().LogError('"{0}" does not exist.'.format(
+        options.chromeos_root))
+    return 1
+
+  options.ndk_dir = os.path.expanduser(options.ndk_dir)
+  if not options.ndk_dir:
+    parser.error('Missing mandatory option "--ndk_dir".')
+    return 1
+
+  # Some tolerance regarding user input. We only need the ndk_root part, do not
+  # include toolchain/(gcc|binutils)/ part in this option.
+  options.ndk_dir = re.sub(
+      '/toolchain(/gcc|/binutils)?/?$', '', options.ndk_dir)
+
+  if not (os.path.isdir(options.ndk_dir) and
+          os.path.isdir(os.path.join(options.ndk_dir, 'toolchain'))):
+    logger.GetLogger().LogError(
+        '"toolchain" directory not found under "{0}".'.format(options.ndk_dir))
+    return 1
+
+  if options.fixperm:
+    # Fix perm error before continuing.
+    cmd = (
+        r'sudo find "{0}" \( -name ".cache" -type d -prune \) -o '
+        r'\( -name "chroot" -type d -prune \) -o '
+        r'\( -type f -exec chmod a+r {{}} \; \) -o '
+        r'\( -type d -exec chmod a+rx {{}} \; \)').format(options.chromeos_root)
+    logger.GetLogger().LogOutput(
+        'Fixing perm issues for chromeos root, this might take some time.')
+    command_executer.GetCommandExecuter().RunCommand(cmd)
+
+  if options.reset_tool_ebuild_file:
+    if (options.gcc_dir or options.gcc_branch or options.binutils_dir or
+        options.binutils_branch):
+      logger.GetLogger().LogWarning(
+          'Ignoring any "--gcc/binutils_dir" and/or "--gcc/binutils_branch".')
+    if options.setup_tool_ebuild_file_only:
+      logger.GetLogger().LogError(
+          ('Conflict options "--reset_tool_ebuild_file" '
+           'and "--setup_tool_ebuild_file_only".'))
+      return 1
+    rv = Bootstrapper.ResetToolEbuildFile(options.chromeos_root, 'gcc')
+    rv1 = Bootstrapper.ResetToolEbuildFile(options.chromeos_root, 'binutils')
+    return 0 if (rv and rv1) else 1
+
+  if options.gcc_dir:
+    options.gcc_dir = os.path.abspath(os.path.expanduser(options.gcc_dir))
+    if not os.path.isdir(options.gcc_dir):
+      logger.GetLogger().LogError('"{0}" does not exist.'.format(
+          options.gcc_dir))
+      return 1
+
+  if options.gcc_branch and options.gcc_dir:
+    parser.error('Only one of "--gcc_dir" and "--gcc_branch" can be specified.')
+    return 1
+
+  if options.binutils_dir:
+    options.binutils_dir = os.path.abspath(os.path.expanduser(
+        options.binutils_dir))
+    if not os.path.isdir(options.binutils_dir):
+      logger.GetLogger().LogError('"{0}" does not exist.'.format(
+          options.binutils_dir))
+      return 1
+
+  if options.binutils_branch and options.binutils_dir:
+    parser.error('Only one of "--binutils_dir" and '
+                 '"--binutils_branch" can be specified.')
+    return 1
+
+  if (not (options.binutils_branch or options.binutils_dir or options.gcc_branch
+           or options.gcc_dir)):
+    parser.error(('At least one of "--gcc_dir", "--gcc_branch", '
+                  '"--binutils_dir" and "--binutils_branch" must '
+                  'be specified.'))
+    return 1
+
+  if not options.board and not options.bootstrap:
+    parser.error('You must specify either "--board" or "--bootstrap".')
+    return 1
+
+  if (options.board and options.bootstrap and
+      not options.setup_tool_ebuild_file_only):
+    parser.error('You must specify only one of "--board" and "--bootstrap".')
+    return 1
+
+  if not options.bootstrap and options.disable_2nd_bootstrap:
+    parser.error('"--disable-2nd-bootstrap" has no effect '
+                 'without specifying "--bootstrap".')
+    return 1
+
+  if Bootstrapper(
+      options.chromeos_root,
+      options.ndk_dir,
+      gcc_branch=options.gcc_branch,
+      gcc_dir=options.gcc_dir,
+      binutils_branch=options.binutils_branch,
+      binutils_dir=options.binutils_dir,
+      board=options.board,
+      disable_2nd_bootstrap=options.disable_2nd_bootstrap,
+      setup_tool_ebuild_file_only=options.setup_tool_ebuild_file_only).Do():
+    return 0
+  return 1
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/buildbot_test_llvm.py b/buildbot_test_llvm.py
new file mode 100755
index 0000000..a43db75
--- /dev/null
+++ b/buildbot_test_llvm.py
@@ -0,0 +1,167 @@
+#!/usr/bin/env python2
+"""Script for running llvm validation tests on ChromeOS.
+
+This script launches a buildbot to build ChromeOS with the llvm on
+a particular board; then it finds and downloads the trybot image and the
+corresponding official image, and runs test for correctness.
+It then generates a report, emails it to the c-compiler-chrome, as
+well as copying the result into a directory.
+"""
+
+# Script to test different toolchains against ChromeOS benchmarks.
+
+from __future__ import print_function
+
+import argparse
+import datetime
+import os
+import sys
+import time
+
+from cros_utils import command_executer
+from cros_utils import logger
+
+from cros_utils import buildbot_utils
+
+# CL that uses LLVM to build the peppy image.
+USE_LLVM_PATCH = '295217'
+
+CROSTC_ROOT = '/usr/local/google/crostc'
+ROLE_ACCOUNT = 'mobiletc-prebuild'
+TOOLCHAIN_DIR = os.path.dirname(os.path.realpath(__file__))
+MAIL_PROGRAM = '~/var/bin/mail-sheriff'
+VALIDATION_RESULT_DIR = os.path.join(CROSTC_ROOT, 'validation_result')
+START_DATE = datetime.date(2016, 1, 1)
+TEST_PER_DAY = 2
+TEST_BOARD = [
+    'squawks',      # x86_64, rambi  (baytrail)
+    'terra',        # x86_64, strago (braswell)
+    'lulu',         # x86_64, auron  (broadwell)
+    'peach_pit',    # arm,    peach  (exynos-5420)
+    'peppy',        # x86_64, slippy (haswell celeron)
+    'link',         # x86_64, ivybridge (ivybridge)
+    'nyan_big',     # arm,    nyan   (tegra)
+    'sentry',       # x86_64, kunimitsu (skylake-u)
+    'chell',        # x86_64, glados (skylake-y)
+    'daisy',        # arm,    daisy  (exynos)
+    'caroline',     # amd64
+    'kevin',        # arm,    gru  (Rockchip)
+]
+
+
+class ToolchainVerifier(object):
+  """Class for the toolchain verifier."""
+
+  def __init__(self, board, chromeos_root, weekday, patches, compiler):
+    self._board = board
+    self._chromeos_root = chromeos_root
+    self._base_dir = os.getcwd()
+    self._ce = command_executer.GetCommandExecuter()
+    self._l = logger.GetLogger()
+    self._compiler = compiler
+    self._build = '%s-%s-toolchain' % (board, compiler)
+    self._patches = patches.split(',') if patches else []
+    self._patches_string = '_'.join(str(p) for p in self._patches)
+
+    if not weekday:
+      self._weekday = time.strftime('%a')
+    else:
+      self._weekday = weekday
+    self._reports = os.path.join(VALIDATION_RESULT_DIR, compiler, board)
+
+  def _FinishSetup(self):
+    """Make sure testing_rsa file is properly set up."""
+    # Fix protections on ssh key
+    command = ('chmod 600 /var/cache/chromeos-cache/distfiles/target'
+               '/chrome-src-internal/src/third_party/chromite/ssh_keys'
+               '/testing_rsa')
+    ret_val = self._ce.ChrootRunCommand(self._chromeos_root, command)
+    if ret_val != 0:
+      raise RuntimeError('chmod for testing_rsa failed')
+
+  def DoAll(self):
+    """Main function inside ToolchainComparator class.
+
+    Launch trybot, get image names, create crosperf experiment file, run
+    crosperf, and copy images into seven-day report directories.
+    """
+    flags = ['--hwtest']
+    date_str = datetime.date.today()
+    description = 'master_%s_%s_%s' % (self._patches_string, self._build,
+                                       date_str)
+    _ = buildbot_utils.GetTrybotImage(
+        self._chromeos_root,
+        self._build,
+        self._patches,
+        description,
+        other_flags=flags,
+        async=True)
+
+    return 0
+
+def Main(argv):
+  """The main function."""
+
+  # Common initializations
+  command_executer.InitCommandExecuter()
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '--chromeos_root',
+      dest='chromeos_root',
+      help='The chromeos root from which to run tests.')
+  parser.add_argument(
+      '--weekday',
+      default='',
+      dest='weekday',
+      help='The day of the week for which to run tests.')
+  parser.add_argument(
+      '--board', default='', dest='board', help='The board to test.')
+  parser.add_argument(
+      '--patch',
+      dest='patches',
+      default='',
+      help='The patches to use for the testing, '
+      "seprate the patch numbers with ',' "
+      'for more than one patches.')
+  parser.add_argument(
+      '--compiler',
+      dest='compiler',
+      help='Which compiler (llvm, llvm-next or gcc) to use for '
+      'testing.')
+
+  options = parser.parse_args(argv[1:])
+  if not options.chromeos_root:
+    print('Please specify the ChromeOS root directory.')
+    return 1
+  if not options.compiler:
+    print('Please specify which compiler to test (gcc, llvm, or llvm-next).')
+    return 1
+  patches = options.patches
+  if not patches and options.compiler == 'llvm':
+    patches = USE_LLVM_PATCH
+
+  if options.board:
+    fv = ToolchainVerifier(options.board, options.chromeos_root,
+                           options.weekday, patches, options.compiler)
+    return fv.Doall()
+
+  today = datetime.date.today()
+  delta = today - START_DATE
+  days = delta.days
+
+  start_board = (days * TEST_PER_DAY) % len(TEST_BOARD)
+  for i in range(TEST_PER_DAY):
+    try:
+      board = TEST_BOARD[(start_board + i) % len(TEST_BOARD)]
+      fv = ToolchainVerifier(board, options.chromeos_root, options.weekday,
+                             patches, options.compiler)
+      fv.DoAll()
+    except SystemExit:
+      logfile = os.path.join(VALIDATION_RESULT_DIR, options.compiler, board)
+      with open(logfile, 'w') as f:
+        f.write('Verifier got an exception, please check the log.\n')
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/buildbot_test_toolchains.py b/buildbot_test_toolchains.py
new file mode 100755
index 0000000..5bef28a
--- /dev/null
+++ b/buildbot_test_toolchains.py
@@ -0,0 +1,356 @@
+#!/usr/bin/env python2
+#
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Script for running nightly compiler tests on ChromeOS.
+
+This script launches a buildbot to build ChromeOS with the latest compiler on
+a particular board; then it finds and downloads the trybot image and the
+corresponding official image, and runs crosperf performance tests comparing
+the two.  It then generates a report, emails it to the c-compiler-chrome, as
+well as copying the images into the seven-day reports directory.
+"""
+
+# Script to test different toolchains against ChromeOS benchmarks.
+
+from __future__ import print_function
+
+import argparse
+import datetime
+import os
+import re
+import sys
+import time
+
+from cros_utils import command_executer
+from cros_utils import logger
+
+from cros_utils import buildbot_utils
+
+# CL that updated GCC ebuilds to use 'next_gcc'.
+USE_NEXT_GCC_PATCH = '230260'
+
+# CL that uses LLVM to build the peppy image.
+USE_LLVM_PATCH = '295217'
+
+# CL that uses LLVM-Next to build the images (includes chrome).
+USE_LLVM_NEXT_PATCH = '424123'
+
+CROSTC_ROOT = '/usr/local/google/crostc'
+ROLE_ACCOUNT = 'mobiletc-prebuild'
+TOOLCHAIN_DIR = os.path.dirname(os.path.realpath(__file__))
+MAIL_PROGRAM = '~/var/bin/mail-sheriff'
+PENDING_ARCHIVES_DIR = os.path.join(CROSTC_ROOT, 'pending_archives')
+NIGHTLY_TESTS_DIR = os.path.join(CROSTC_ROOT, 'nightly_test_reports')
+
+IMAGE_DIR = '{board}-{image_type}'
+IMAGE_VERSION_STR = r'{chrome_version}-{tip}\.{branch}\.{branch_branch}'
+IMAGE_FS = IMAGE_DIR + '/' + IMAGE_VERSION_STR
+TRYBOT_IMAGE_FS = 'trybot-' + IMAGE_FS + '-{build_id}'
+PFQ_IMAGE_FS = IMAGE_FS + '-rc1'
+IMAGE_RE_GROUPS = {
+    'board': r'(?P<board>\S+)',
+    'image_type': r'(?P<image_type>\S+)',
+    'chrome_version': r'(?P<chrome_version>R\d+)',
+    'tip': r'(?P<tip>\d+)',
+    'branch': r'(?P<branch>\d+)',
+    'branch_branch': r'(?P<branch_branch>\d+)',
+    'build_id': r'(?P<build_id>b\d+)'
+}
+TRYBOT_IMAGE_RE = TRYBOT_IMAGE_FS.format(**IMAGE_RE_GROUPS)
+
+
+class ToolchainComparator(object):
+  """Class for doing the nightly tests work."""
+
+  def __init__(self,
+               board,
+               remotes,
+               chromeos_root,
+               weekday,
+               patches,
+               noschedv2=False):
+    self._board = board
+    self._remotes = remotes
+    self._chromeos_root = chromeos_root
+    self._base_dir = os.getcwd()
+    self._ce = command_executer.GetCommandExecuter()
+    self._l = logger.GetLogger()
+    self._build = '%s-release' % board
+    self._patches = patches.split(',')
+    self._patches_string = '_'.join(str(p) for p in self._patches)
+    self._noschedv2 = noschedv2
+
+    if not weekday:
+      self._weekday = time.strftime('%a')
+    else:
+      self._weekday = weekday
+    timestamp = datetime.datetime.strftime(datetime.datetime.now(),
+                                           '%Y-%m-%d_%H:%M:%S')
+    self._reports_dir = os.path.join(
+        NIGHTLY_TESTS_DIR,
+        '%s.%s' % (timestamp, board),)
+
+  def _GetVanillaImageName(self, trybot_image):
+    """Given a trybot artifact name, get latest vanilla image name.
+
+    Args:
+      trybot_image: artifact name such as
+          'trybot-daisy-release/R40-6394.0.0-b1389'
+
+    Returns:
+      Latest official image name, e.g. 'daisy-release/R57-9089.0.0'.
+    """
+    mo = re.search(TRYBOT_IMAGE_RE, trybot_image)
+    assert mo
+    dirname = IMAGE_DIR.replace('\\', '').format(**mo.groupdict())
+    version = buildbot_utils.GetGSContent(self._chromeos_root,
+                                          dirname + '/LATEST-master')
+    return dirname + '/' + version
+
+  def _GetNonAFDOImageName(self, trybot_image):
+    """Given a trybot artifact name, get corresponding non-AFDO image name.
+
+    We get the non-AFDO image from the PFQ builders. This image
+    is not generated for all the boards and, the closest PFQ image
+    was the one build for the previous ChromeOS version (the chrome
+    used in the current version is the one validated in the previous
+    version).
+    The previous ChromeOS does not always exist either. So, we try
+    a couple of versions before.
+
+    Args:
+      trybot_image: artifact name such as
+          'trybot-daisy-release/R40-6394.0.0-b1389'
+
+    Returns:
+      Corresponding chrome PFQ image name, e.g.
+      'daisy-chrome-pfq/R40-6393.0.0-rc1'.
+    """
+    mo = re.search(TRYBOT_IMAGE_RE, trybot_image)
+    assert mo
+    image_dict = mo.groupdict()
+    image_dict['image_type'] = 'chrome-pfq'
+    for _ in xrange(2):
+      image_dict['tip'] = str(int(image_dict['tip']) - 1)
+      nonafdo_image = PFQ_IMAGE_FS.replace('\\', '').format(**image_dict)
+      if buildbot_utils.DoesImageExist(self._chromeos_root, nonafdo_image):
+        return nonafdo_image
+    return ''
+
+  def _FinishSetup(self):
+    """Make sure testing_rsa file is properly set up."""
+    # Fix protections on ssh key
+    command = ('chmod 600 /var/cache/chromeos-cache/distfiles/target'
+               '/chrome-src-internal/src/third_party/chromite/ssh_keys'
+               '/testing_rsa')
+    ret_val = self._ce.ChrootRunCommand(self._chromeos_root, command)
+    if ret_val != 0:
+      raise RuntimeError('chmod for testing_rsa failed')
+
+  def _TestImages(self, trybot_image, vanilla_image, nonafdo_image):
+    """Create crosperf experiment file.
+
+    Given the names of the trybot, vanilla and non-AFDO images, create the
+    appropriate crosperf experiment file and launch crosperf on it.
+    """
+    experiment_file_dir = os.path.join(self._chromeos_root, '..', self._weekday)
+    experiment_file_name = '%s_toolchain_experiment.txt' % self._board
+
+    compiler_string = 'gcc'
+    if USE_LLVM_NEXT_PATCH in self._patches_string:
+      experiment_file_name = '%s_llvm_next_experiment.txt' % self._board
+      compiler_string = 'llvm_next'
+    elif USE_LLVM_PATCH in self._patches_string:
+      experiment_file_name = '%s_llvm_experiment.txt' % self._board
+      compiler_string = 'llvm'
+
+    experiment_file = os.path.join(experiment_file_dir, experiment_file_name)
+    experiment_header = """
+    board: %s
+    remote: %s
+    retries: 1
+    """ % (self._board, self._remotes)
+    experiment_tests = """
+    benchmark: all_toolchain_perf {
+      suite: telemetry_Crosperf
+      iterations: 3
+    }
+
+    benchmark: page_cycler_v2.typical_25 {
+      suite: telemetry_Crosperf
+      iterations: 2
+      run_local: False
+      retries: 0
+    }
+    """
+
+    with open(experiment_file, 'w') as f:
+      f.write(experiment_header)
+      f.write(experiment_tests)
+
+      # Now add vanilla to test file.
+      official_image = """
+          vanilla_image {
+            chromeos_root: %s
+            build: %s
+            compiler: gcc
+          }
+          """ % (self._chromeos_root, vanilla_image)
+      f.write(official_image)
+
+      # Now add non-AFDO image to test file.
+      if nonafdo_image:
+        official_nonafdo_image = """
+          nonafdo_image {
+            chromeos_root: %s
+            build: %s
+            compiler: gcc
+          }
+          """ % (self._chromeos_root, nonafdo_image)
+        f.write(official_nonafdo_image)
+
+      label_string = '%s_trybot_image' % compiler_string
+      if USE_NEXT_GCC_PATCH in self._patches:
+        label_string = 'gcc_next_trybot_image'
+
+      # Reuse autotest files from vanilla image for trybot images
+      autotest_files = os.path.join('/tmp', vanilla_image, 'autotest_files')
+      experiment_image = """
+          %s {
+            chromeos_root: %s
+            build: %s
+            autotest_path: %s
+            compiler: %s
+          }
+          """ % (label_string, self._chromeos_root, trybot_image,
+                 autotest_files, compiler_string)
+      f.write(experiment_image)
+
+    crosperf = os.path.join(TOOLCHAIN_DIR, 'crosperf', 'crosperf')
+    noschedv2_opts = '--noschedv2' if self._noschedv2 else ''
+    command = ('{crosperf} --no_email=True --results_dir={r_dir} '
+               '--json_report=True {noschedv2_opts} {exp_file}').format(
+                   crosperf=crosperf,
+                   r_dir=self._reports_dir,
+                   noschedv2_opts=noschedv2_opts,
+                   exp_file=experiment_file)
+
+    ret = self._ce.RunCommand(command)
+    if ret != 0:
+      raise RuntimeError('Crosperf execution error!')
+    else:
+      # Copy json report to pending archives directory.
+      command = 'cp %s/*.json %s/.' % (self._reports_dir, PENDING_ARCHIVES_DIR)
+      ret = self._ce.RunCommand(command)
+    return
+
+  def _SendEmail(self):
+    """Find email message generated by crosperf and send it."""
+    filename = os.path.join(self._reports_dir, 'msg_body.html')
+    if (os.path.exists(filename) and
+        os.path.exists(os.path.expanduser(MAIL_PROGRAM))):
+      email_title = 'buildbot test results'
+      if USE_LLVM_NEXT_PATCH in self._patches_string:
+        email_title = 'buildbot llvm_next test results'
+      elif USE_LLVM_PATCH in self._patches_string:
+        email_title = 'buildbot llvm test results'
+      command = ('cat %s | %s -s "%s, %s" -team -html' %
+                 (filename, MAIL_PROGRAM, email_title, self._board))
+      self._ce.RunCommand(command)
+
+  def DoAll(self):
+    """Main function inside ToolchainComparator class.
+
+    Launch trybot, get image names, create crosperf experiment file, run
+    crosperf, and copy images into seven-day report directories.
+    """
+    date_str = datetime.date.today()
+    description = 'master_%s_%s_%s' % (self._patches_string, self._build,
+                                       date_str)
+    build_id, trybot_image = buildbot_utils.GetTrybotImage(
+        self._chromeos_root,
+        self._build,
+        self._patches,
+        description,
+        other_flags=['--notests'],
+        build_toolchain=True)
+
+    print('trybot_url: \
+       https://uberchromegw.corp.google.com/i/chromiumos.tryserver/builders/release/builds/%s'
+          % build_id)
+    if len(trybot_image) == 0:
+      self._l.LogError('Unable to find trybot_image for %s!' % description)
+      return 1
+
+    vanilla_image = self._GetVanillaImageName(trybot_image)
+    nonafdo_image = self._GetNonAFDOImageName(trybot_image)
+
+    print('trybot_image: %s' % trybot_image)
+    print('vanilla_image: %s' % vanilla_image)
+    print('nonafdo_image: %s' % nonafdo_image)
+
+    if os.getlogin() == ROLE_ACCOUNT:
+      self._FinishSetup()
+
+    self._TestImages(trybot_image, vanilla_image, nonafdo_image)
+    self._SendEmail()
+    return 0
+
+
+def Main(argv):
+  """The main function."""
+
+  # Common initializations
+  command_executer.InitCommandExecuter()
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '--remote', dest='remote', help='Remote machines to run tests on.')
+  parser.add_argument(
+      '--board', dest='board', default='x86-zgb', help='The target board.')
+  parser.add_argument(
+      '--chromeos_root',
+      dest='chromeos_root',
+      help='The chromeos root from which to run tests.')
+  parser.add_argument(
+      '--weekday',
+      default='',
+      dest='weekday',
+      help='The day of the week for which to run tests.')
+  parser.add_argument(
+      '--patch',
+      dest='patches',
+      help='The patches to use for the testing, '
+      "seprate the patch numbers with ',' "
+      'for more than one patches.')
+  parser.add_argument(
+      '--noschedv2',
+      dest='noschedv2',
+      action='store_true',
+      default=False,
+      help='Pass --noschedv2 to crosperf.')
+
+  options = parser.parse_args(argv[1:])
+  if not options.board:
+    print('Please give a board.')
+    return 1
+  if not options.remote:
+    print('Please give at least one remote machine.')
+    return 1
+  if not options.chromeos_root:
+    print('Please specify the ChromeOS root directory.')
+    return 1
+  if options.patches:
+    patches = options.patches
+  else:
+    patches = USE_NEXT_GCC_PATCH
+
+  fc = ToolchainComparator(options.board, options.remote, options.chromeos_root,
+                           options.weekday, patches, options.noschedv2)
+  return fc.DoAll()
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/chromiumos_image_diff.py b/chromiumos_image_diff.py
new file mode 100755
index 0000000..68791ac
--- /dev/null
+++ b/chromiumos_image_diff.py
@@ -0,0 +1,333 @@
+#!/usr/bin/python2
+"""Diff 2 chromiumos images by comparing each elf file.
+
+   The script diffs every *ELF* files by dissembling every *executable*
+   section, which means it is not a FULL elf differ.
+
+   A simple usage example -
+     chromiumos_image_diff.py --image1 image-path-1 --image2 image-path-2
+
+   Note that image path should be inside the chroot, if not (ie, image is
+   downloaded from web), please specify a chromiumos checkout via
+   "--chromeos_root".
+
+   And this script should be executed outside chroot.
+"""
+
+from __future__ import print_function
+
+__author__ = 'shenhan@google.com (Han Shen)'
+
+import argparse
+import os
+import re
+import sys
+import tempfile
+
+import image_chromeos
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import misc
+
+
+class CrosImage(object):
+  """A cros image object."""
+
+  def __init__(self, image, chromeos_root, no_unmount):
+    self.image = image
+    self.chromeos_root = chromeos_root
+    self.mounted = False
+    self._ce = command_executer.GetCommandExecuter()
+    self.logger = logger.GetLogger()
+    self.elf_files = []
+    self.no_unmount = no_unmount
+    self.unmount_script = ''
+    self.stateful = ''
+    self.rootfs = ''
+
+  def MountImage(self, mount_basename):
+    """Mount/unpack the image."""
+
+    if mount_basename:
+      self.rootfs = '/tmp/{0}.rootfs'.format(mount_basename)
+      self.stateful = '/tmp/{0}.stateful'.format(mount_basename)
+      self.unmount_script = '/tmp/{0}.unmount.sh'.format(mount_basename)
+    else:
+      self.rootfs = tempfile.mkdtemp(suffix='.rootfs',
+                                     prefix='chromiumos_image_diff')
+      ## rootfs is like /tmp/tmpxyz012.rootfs.
+      match = re.match(r'^(.*)\.rootfs$', self.rootfs)
+      basename = match.group(1)
+      self.stateful = basename + '.stateful'
+      os.mkdir(self.stateful)
+      self.unmount_script = '{0}.unmount.sh'.format(basename)
+
+    self.logger.LogOutput('Mounting "{0}" onto "{1}" and "{2}"'.format(
+        self.image, self.rootfs, self.stateful))
+    ## First of all creating an unmount image
+    self.CreateUnmountScript()
+    command = image_chromeos.GetImageMountCommand(
+        self.chromeos_root, self.image, self.rootfs, self.stateful)
+    rv = self._ce.RunCommand(command, print_to_console=True)
+    self.mounted = (rv == 0)
+    if not self.mounted:
+      self.logger.LogError('Failed to mount "{0}" onto "{1}" and "{2}".'.format(
+          self.image, self.rootfs, self.stateful))
+    return self.mounted
+
+  def CreateUnmountScript(self):
+    command = ('sudo umount {r}/usr/local {r}/usr/share/oem '
+               '{r}/var {r}/mnt/stateful_partition {r}; sudo umount {s} ; '
+               'rmdir {r} ; rmdir {s}\n').format(r=self.rootfs, s=self.stateful)
+    f = open(self.unmount_script, 'w')
+    f.write(command)
+    f.close()
+    self._ce.RunCommand('chmod +x {}'.format(self.unmount_script),
+                        print_to_console=False)
+    self.logger.LogOutput('Created an unmount script - "{0}"'.format(
+        self.unmount_script))
+
+  def UnmountImage(self):
+    """Unmount the image and delete mount point."""
+
+    self.logger.LogOutput('Unmounting image "{0}" from "{1}" and "{2}"'.format(
+        self.image, self.rootfs, self.stateful))
+    if self.mounted:
+      command = 'bash "{0}"'.format(self.unmount_script)
+      if self.no_unmount:
+        self.logger.LogOutput(('Please unmount manually - \n'
+                               '\t bash "{0}"'.format(self.unmount_script)))
+      else:
+        if self._ce.RunCommand(command, print_to_console=True) == 0:
+          self._ce.RunCommand('rm {0}'.format(self.unmount_script))
+          self.mounted = False
+          self.rootfs = None
+          self.stateful = None
+          self.unmount_script = None
+
+    return not self.mounted
+
+  def FindElfFiles(self):
+    """Find all elf files for the image.
+
+    Returns:
+      Always true
+    """
+
+    self.logger.LogOutput('Finding all elf files in "{0}" ...'.format(
+        self.rootfs))
+    # Note '\;' must be prefixed by 'r'.
+    command = ('find "{0}" -type f -exec '
+               'bash -c \'file -b "{{}}" | grep -q "ELF"\'' r' \; '
+               r'-exec echo "{{}}" \;').format(self.rootfs)
+    self.logger.LogCmd(command)
+    _, out, _ = self._ce.RunCommandWOutput(command, print_to_console=False)
+    self.elf_files = out.splitlines()
+    self.logger.LogOutput(
+        'Total {0} elf files found.'.format(len(self.elf_files)))
+    return True
+
+
+class ImageComparator(object):
+  """A class that wraps comparsion actions."""
+
+  def __init__(self, images, diff_file):
+    self.images = images
+    self.logger = logger.GetLogger()
+    self.diff_file = diff_file
+    self.tempf1 = None
+    self.tempf2 = None
+
+  def Cleanup(self):
+    if self.tempf1 and self.tempf2:
+      command_executer.GetCommandExecuter().RunCommand(
+          'rm {0} {1}'.format(self.tempf1, self.tempf2))
+      logger.GetLogger('Removed "{0}" and "{1}".'.format(
+          self.tempf1, self.tempf2))
+
+  def CheckElfFileSetEquality(self):
+    """Checking whether images have exactly number of elf files."""
+
+    self.logger.LogOutput('Checking elf file equality ...')
+    i1 = self.images[0]
+    i2 = self.images[1]
+    t1 = i1.rootfs + '/'
+    elfset1 = set([e.replace(t1, '') for e in i1.elf_files])
+    t2 = i2.rootfs + '/'
+    elfset2 = set([e.replace(t2, '') for e in i2.elf_files])
+    dif1 = elfset1.difference(elfset2)
+    msg = None
+    if dif1:
+      msg = 'The following files are not in "{image}" - "{rootfs}":\n'.format(
+          image=i2.image, rootfs=i2.rootfs)
+      for d in dif1:
+        msg += '\t' + d + '\n'
+    dif2 = elfset2.difference(elfset1)
+    if dif2:
+      msg = 'The following files are not in "{image}" - "{rootfs}":\n'.format(
+          image=i1.image, rootfs=i1.rootfs)
+      for d in dif2:
+        msg += '\t' + d + '\n'
+    if msg:
+      self.logger.LogError(msg)
+      return False
+    return True
+
+  def CompareImages(self):
+    """Do the comparsion work."""
+
+    if not self.CheckElfFileSetEquality():
+      return False
+
+    mismatch_list = []
+    match_count = 0
+    i1 = self.images[0]
+    i2 = self.images[1]
+    self.logger.LogOutput('Start comparing {0} elf file by file ...'.format(
+        len(i1.elf_files)))
+    ## Note - i1.elf_files and i2.elf_files have exactly the same entries here.
+
+    ## Create 2 temp files to be used for all disassembed files.
+    handle, self.tempf1 = tempfile.mkstemp()
+    os.close(handle)  # We do not need the handle
+    handle, self.tempf2 = tempfile.mkstemp()
+    os.close(handle)
+
+    cmde = command_executer.GetCommandExecuter()
+    for elf1 in i1.elf_files:
+      tmp_rootfs = i1.rootfs + '/'
+      f1 = elf1.replace(tmp_rootfs, '')
+      full_path1 = elf1
+      full_path2 = elf1.replace(i1.rootfs, i2.rootfs)
+
+      if full_path1 == full_path2:
+        self.logger.LogError(
+            'Error:  We\'re comparing the SAME file - {0}'.format(f1))
+        continue
+
+      command = ('objdump -d "{f1}" > {tempf1} ; '
+                 'objdump -d "{f2}" > {tempf2} ; '
+                 # Remove path string inside the dissemble
+                 'sed -i \'s!{rootfs1}!!g\' {tempf1} ; '
+                 'sed -i \'s!{rootfs2}!!g\' {tempf2} ; '
+                 'diff {tempf1} {tempf2} 1>/dev/null 2>&1').format(
+                     f1=full_path1, f2=full_path2,
+                     rootfs1=i1.rootfs, rootfs2=i2.rootfs,
+                     tempf1=self.tempf1, tempf2=self.tempf2)
+      ret = cmde.RunCommand(command, print_to_console=False)
+      if ret != 0:
+        self.logger.LogOutput('*** Not match - "{0}" "{1}"'.format(
+            full_path1, full_path2))
+        mismatch_list.append(f1)
+        if self.diff_file:
+          command = (
+              'echo "Diffs of disassemble of \"{f1}\" and \"{f2}\"" '
+              '>> {diff_file} ; diff {tempf1} {tempf2} '
+              '>> {diff_file}').format(
+                  f1=full_path1, f2=full_path2, diff_file=self.diff_file,
+                  tempf1=self.tempf1, tempf2=self.tempf2)
+          cmde.RunCommand(command, print_to_console=False)
+      else:
+        match_count += 1
+    ## End of comparing every elf files.
+
+    if not mismatch_list:
+      self.logger.LogOutput('** COOL, ALL {0} BINARIES MATCHED!! **'.format(
+          match_count))
+      return True
+
+    mismatch_str = 'Found {0} mismatch:\n'.format(len(mismatch_list))
+    for b in mismatch_list:
+      mismatch_str += '\t' + b + '\n'
+
+    self.logger.LogOutput(mismatch_str)
+    return False
+
+
+def Main(argv):
+  """The main function."""
+
+  command_executer.InitCommandExecuter()
+  images = []
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '--no_unmount', action='store_true', dest='no_unmount', default=False,
+      help='Do not unmount after finish, this is useful for debugging.')
+  parser.add_argument(
+      '--chromeos_root', dest='chromeos_root', default=None, action='store',
+      help=('[Optional] Specify a chromeos tree instead of '
+            'deducing it from image path so that we can compare '
+            '2 images that are downloaded.'))
+  parser.add_argument(
+      '--mount_basename', dest='mount_basename', default=None, action='store',
+      help=('Specify a meaningful name for the mount point. With this being '
+            'set, the mount points would be "/tmp/mount_basename.x.rootfs" '
+            ' and "/tmp/mount_basename.x.stateful". (x is 1 or 2).'))
+  parser.add_argument('--diff_file', dest='diff_file', default=None,
+                      help='Dumping all the diffs (if any) to the diff file')
+  parser.add_argument('--image1', dest='image1', default=None,
+                      required=True, help=('Image 1 file name.'))
+  parser.add_argument('--image2', dest='image2', default=None,
+                      required=True, help=('Image 2 file name.'))
+  options = parser.parse_args(argv[1:])
+
+  if options.mount_basename and options.mount_basename.find('/') >= 0:
+    logger.GetLogger().LogError(
+        '"--mount_basename" must be a name, not a path.')
+    parser.print_help()
+    return 1
+
+  result = False
+  image_comparator = None
+  try:
+    for i, image_path in enumerate([options.image1, options.image2], start=1):
+      image_path = os.path.realpath(image_path)
+      if not os.path.isfile(image_path):
+        logger.getLogger().LogError('"{0}" is not a file.'.format(image_path))
+        return 1
+
+      chromeos_root = None
+      if options.chromeos_root:
+        chromeos_root = options.chromeos_root
+      else:
+        ## Deduce chromeos root from image
+        t = image_path
+        while t != '/':
+          if misc.IsChromeOsTree(t):
+            break
+          t = os.path.dirname(t)
+        if misc.IsChromeOsTree(t):
+          chromeos_root = t
+
+      if not chromeos_root:
+        logger.GetLogger().LogError(
+            'Please provide a valid chromeos root via --chromeos_root')
+        return 1
+
+      image = CrosImage(image_path, chromeos_root, options.no_unmount)
+
+      if options.mount_basename:
+        mount_basename = '{basename}.{index}'.format(
+            basename=options.mount_basename, index=i)
+      else:
+        mount_basename = None
+
+      if image.MountImage(mount_basename):
+        images.append(image)
+        image.FindElfFiles()
+
+    if len(images) == 2:
+      image_comparator = ImageComparator(images, options.diff_file)
+      result = image_comparator.CompareImages()
+  finally:
+    for image in images:
+      image.UnmountImage()
+    if image_comparator:
+      image_comparator.Cleanup()
+
+  return 0 if result else 1
+
+
+if __name__ == '__main__':
+  Main(sys.argv)
diff --git a/command_executer_timeout_test.py b/command_executer_timeout_test.py
new file mode 100755
index 0000000..ba0207e
--- /dev/null
+++ b/command_executer_timeout_test.py
@@ -0,0 +1,33 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Timeout test for command_executer."""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import sys
+
+from cros_utils import command_executer
+
+
+def Usage(parser, message):
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def Main(argv):
+  parser = argparse.ArgumentParser()
+  _ = parser.parse_args(argv)
+
+  command = 'sleep 1000'
+  ce = command_executer.GetCommandExecuter()
+  ce.RunCommand(command, command_timeout=1)
+  return 0
+
+
+if __name__ == '__main__':
+  Main(sys.argv[1:])
diff --git a/compiler-test.sh b/compiler-test.sh
new file mode 100755
index 0000000..8083e2d
--- /dev/null
+++ b/compiler-test.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+#  This script is supposed to verify which compiler (GCC or clang) was
+#  used to build the packages in a ChromeOS image.  To use the script,
+#  just pass the path to the tree containing the *.debug files for a
+#  ChromeOS image.  It then reads the debug info in each .debug file
+#  it can find, checking the AT_producer field to determine whether
+#  the package was built with clang or GCC.  It counts the total
+#  number of .debug files found as well as how many are built with
+#  each compiler.  It writes out these statistics when it is done.
+#
+#  For a locally-built ChromeOS image, the debug directory is usually:
+#  ${chromeos_root}/chroot/build/${board}/usr/lib/debug (from outside
+#   chroot)
+#  or
+#  /build/${board}/usr/lib/debug (from inside chroot)
+#
+#  For a buildbot-built image you can usually download the debug tree
+#  (using 'gsutil cp') from
+#  gs://chromeos-archive-image/<path-to-your-artifact-tree>/debug.tgz
+#  After downloading it somewhere, you will need to uncompress and
+#  untar it before running this script.
+#
+
+DEBUG_TREE=$1
+
+clang_count=0
+gcc_count=0
+file_count=0
+
+# Verify the argument.
+
+if [[ $# != 1 ]]; then
+    echo "Usage error:"
+    echo "compiler-test.sh <debug_directory>"
+    exit 1
+fi
+
+
+if [[ ! -d ${DEBUG_TREE} ]] ; then
+    echo "Cannot find ${DEBUG_TREE}."
+    exit 1
+fi
+
+cd ${DEBUG_TREE}
+for f in `find . -name "*.debug" -type f` ; do
+    at_producer=`readelf --debug-dump=info $f | head -25 | grep AT_producer `;
+    if echo ${at_producer} | grep -q 'GNU C' ; then
+        ((gcc_count++))
+    elif echo ${at_producer} | grep -q 'clang'; then
+        ((clang_count++));
+    fi;
+    ((file_count++))
+done
+
+echo "GCC count: ${gcc_count}"
+echo "Clang count: ${clang_count}"
+echo "Total file count: ${file_count}"
+
+
+exit 0
diff --git a/crb/autotest_gatherer.py b/crb/autotest_gatherer.py
new file mode 100644
index 0000000..f8f7b43
--- /dev/null
+++ b/crb/autotest_gatherer.py
@@ -0,0 +1,67 @@
+from table_formatter import TableFormatter as TableFormatter
+
+
+class AutotestGatherer(TableFormatter):
+
+  def __init__(self):
+    self.runs = []
+    TableFormatter.__init__(self)
+
+  def GetFormattedMainTable(self, percents_only, fit_string):
+    ret = ''
+    table = self.GetTableValues()
+    ret += self.GetTableLabels(table)
+    ret += self.GetFormattedTable(table,
+                                  percents_only=percents_only,
+                                  fit_string=fit_string)
+    return ret
+
+  def GetFormattedSummaryTable(self, percents_only, fit_string):
+    ret = ''
+    table = self.GetTableValues()
+    summary_table = self.GetSummaryTableValues(table)
+    ret += self.GetTableLabels(summary_table)
+    ret += self.GetFormattedTable(summary_table,
+                                  percents_only=percents_only,
+                                  fit_string=fit_string)
+    return ret
+
+  def GetBenchmarksString(self):
+    ret = 'Benchmarks (in order):'
+    ret = '\n'.join(self.GetAllBenchmarks())
+    return ret
+
+  def GetAllBenchmarks(self):
+    all_benchmarks = []
+    for run in self.runs:
+      for key in run.results.keys():
+        if key not in all_benchmarks:
+          all_benchmarks.append(key)
+    all_benchmarks.sort()
+    return all_benchmarks
+
+  def GetTableValues(self):
+    table = []
+    row = []
+
+    row.append('Benchmark')
+    for i in range(len(self.runs)):
+      run = self.runs[i]
+      label = run.GetLabel()
+      label = self.GetLabelWithIteration(label, run.iteration)
+      row.append(label)
+    table.append(row)
+
+    all_benchmarks = self.GetAllBenchmarks()
+    for benchmark in all_benchmarks:
+      row = []
+      row.append(benchmark)
+      for run in self.runs:
+        results = run.results
+        if benchmark in results:
+          row.append(results[benchmark])
+        else:
+          row.append('')
+      table.append(row)
+
+    return table
diff --git a/crb/autotest_run.py b/crb/autotest_run.py
new file mode 100644
index 0000000..380c578
--- /dev/null
+++ b/crb/autotest_run.py
@@ -0,0 +1,317 @@
+import datetime
+import getpass
+import glob
+import os
+import pickle
+import re
+import threading
+import time
+import image_chromeos
+import machine_manager_singleton
+import table_formatter
+from cros_utils import command_executer
+from cros_utils import logger
+
+SCRATCH_DIR = '/home/%s/cros_scratch' % getpass.getuser()
+PICKLE_FILE = 'pickle.txt'
+VERSION = '1'
+
+
+def ConvertToFilename(text):
+  ret = text
+  ret = re.sub('/', '__', ret)
+  ret = re.sub(' ', '_', ret)
+  ret = re.sub('=', '', ret)
+  ret = re.sub("\"", '', ret)
+  return ret
+
+
+class AutotestRun(threading.Thread):
+
+  def __init__(self,
+               autotest,
+               chromeos_root='',
+               chromeos_image='',
+               board='',
+               remote='',
+               iteration=0,
+               image_checksum='',
+               exact_remote=False,
+               rerun=False,
+               rerun_if_failed=False):
+    self.autotest = autotest
+    self.chromeos_root = chromeos_root
+    self.chromeos_image = chromeos_image
+    self.board = board
+    self.remote = remote
+    self.iteration = iteration
+    l = logger.GetLogger()
+    l.LogFatalIf(not image_checksum, "Checksum shouldn't be None")
+    self.image_checksum = image_checksum
+    self.results = {}
+    threading.Thread.__init__(self)
+    self.terminate = False
+    self.retval = None
+    self.status = 'PENDING'
+    self.run_completed = False
+    self.exact_remote = exact_remote
+    self.rerun = rerun
+    self.rerun_if_failed = rerun_if_failed
+    self.results_dir = None
+    self.full_name = None
+
+  @staticmethod
+  def MeanExcludingSlowest(array):
+    mean = sum(array) / len(array)
+    array2 = []
+
+    for v in array:
+      if mean != 0 and abs(v - mean) / mean < 0.2:
+        array2.append(v)
+
+    if array2:
+      return sum(array2) / len(array2)
+    else:
+      return mean
+
+  @staticmethod
+  def AddComposite(results_dict):
+    composite_keys = []
+    composite_dict = {}
+    for key in results_dict:
+      mo = re.match('(.*){\d+}', key)
+      if mo:
+        composite_keys.append(mo.group(1))
+    for key in results_dict:
+      for composite_key in composite_keys:
+        if (key.count(composite_key) != 0 and
+            table_formatter.IsFloat(results_dict[key])):
+          if composite_key not in composite_dict:
+            composite_dict[composite_key] = []
+          composite_dict[composite_key].append(float(results_dict[key]))
+          break
+
+    for composite_key in composite_dict:
+      v = composite_dict[composite_key]
+      results_dict['%s[c]' % composite_key] = sum(v) / len(v)
+      mean_excluding_slowest = AutotestRun.MeanExcludingSlowest(v)
+      results_dict['%s[ce]' % composite_key] = mean_excluding_slowest
+
+    return results_dict
+
+  def ParseOutput(self):
+    p = re.compile('^-+.*?^-+', re.DOTALL | re.MULTILINE)
+    matches = p.findall(self.out)
+    for i in range(len(matches)):
+      results = matches[i]
+      results_dict = {}
+      for line in results.splitlines()[1:-1]:
+        mo = re.match('(.*\S)\s+\[\s+(PASSED|FAILED)\s+\]', line)
+        if mo:
+          results_dict[mo.group(1)] = mo.group(2)
+          continue
+        mo = re.match('(.*\S)\s+(.*)', line)
+        if mo:
+          results_dict[mo.group(1)] = mo.group(2)
+
+      # Add a composite keyval for tests like startup.
+      results_dict = AutotestRun.AddComposite(results_dict)
+
+      self.results = results_dict
+
+      # This causes it to not parse the table again
+      # Autotest recently added a secondary table
+      # That reports errors and screws up the final pretty output.
+      break
+    mo = re.search('Results placed in (\S+)', self.out)
+    if mo:
+      self.results_dir = mo.group(1)
+      self.full_name = os.path.basename(self.results_dir)
+
+  def GetCacheHashBase(self):
+    ret = ('%s %s %s' %
+           (self.image_checksum, self.autotest.name, self.iteration))
+    if self.autotest.args:
+      ret += ' %s' % self.autotest.args
+    ret += '-%s' % VERSION
+    return ret
+
+  def GetLabel(self):
+    ret = '%s %s remote:%s' % (self.chromeos_image, self.autotest.name,
+                               self.remote)
+    return ret
+
+  def TryToLoadFromCache(self):
+    base = self.GetCacheHashBase()
+    if self.exact_remote:
+      if not self.remote:
+        return False
+      cache_dir_glob = '%s_%s' % (ConvertToFilename(base), self.remote)
+    else:
+      cache_dir_glob = '%s*' % ConvertToFilename(base)
+    cache_path_glob = os.path.join(SCRATCH_DIR, cache_dir_glob)
+    matching_dirs = glob.glob(cache_path_glob)
+    if matching_dirs:
+      matching_dir = matching_dirs[0]
+      cache_file = os.path.join(matching_dir, PICKLE_FILE)
+      assert os.path.isfile(cache_file)
+      self._logger.LogOutput('Trying to read from cache file: %s' % cache_file)
+      return self.ReadFromCache(cache_file)
+    self._logger.LogOutput('Cache miss. AM going to run: %s for: %s' %
+                           (self.autotest.name, self.chromeos_image))
+    return False
+
+  def ReadFromCache(self, cache_file):
+    with open(cache_file, 'rb') as f:
+      self.retval = pickle.load(f)
+      self.out = pickle.load(f)
+      self.err = pickle.load(f)
+      self._logger.LogOutput(self.out)
+      return True
+    return False
+
+  def StoreToCache(self):
+    base = self.GetCacheHashBase()
+    self.cache_dir = os.path.join(SCRATCH_DIR,
+                                  '%s_%s' % (ConvertToFilename(base),
+                                             self.remote))
+    cache_file = os.path.join(self.cache_dir, PICKLE_FILE)
+    command = 'mkdir -p %s' % os.path.dirname(cache_file)
+    ret = self._ce.RunCommand(command)
+    assert ret == 0, "Couldn't create cache dir"
+    with open(cache_file, 'wb') as f:
+      pickle.dump(self.retval, f)
+      pickle.dump(self.out, f)
+      pickle.dump(self.err, f)
+
+  def run(self):
+    self._logger = logger.Logger(
+        os.path.dirname(__file__), '%s.%s' % (os.path.basename(__file__),
+                                              self.name), True)
+    self._ce = command_executer.GetCommandExecuter(self._logger)
+    self.RunCached()
+
+  def RunCached(self):
+    self.status = 'WAITING'
+    cache_hit = False
+    if not self.rerun:
+      cache_hit = self.TryToLoadFromCache()
+    else:
+      self._logger.LogOutput('--rerun passed. Not using cached results.')
+    if self.rerun_if_failed and self.retval:
+      self._logger.LogOutput('--rerun_if_failed passed and existing test '
+                             'failed. Rerunning...')
+      cache_hit = False
+    if not cache_hit:
+      # Get machine
+      while True:
+        if self.terminate:
+          return 1
+        self.machine = (machine_manager_singleton.MachineManagerSingleton(
+        ).AcquireMachine(self.image_checksum))
+        if self.machine:
+          self._logger.LogOutput('%s: Machine %s acquired at %s' %
+                                 (self.name, self.machine.name,
+                                  datetime.datetime.now()))
+          break
+        else:
+          sleep_duration = 10
+          time.sleep(sleep_duration)
+      try:
+        self.remote = self.machine.name
+
+        if self.machine.checksum != self.image_checksum:
+          self.retval = self.ImageTo(self.machine.name)
+          if self.retval:
+            return self.retval
+          self.machine.checksum = self.image_checksum
+          self.machine.image = self.chromeos_image
+        self.status = 'RUNNING: %s' % self.autotest.name
+        [self.retval, self.out, self.err] = self.RunTestOn(self.machine.name)
+        self.run_completed = True
+
+      finally:
+        self._logger.LogOutput('Releasing machine: %s' % self.machine.name)
+        machine_manager_singleton.MachineManagerSingleton().ReleaseMachine(
+            self.machine)
+        self._logger.LogOutput('Released machine: %s' % self.machine.name)
+
+      self.StoreToCache()
+
+    if not self.retval:
+      self.status = 'SUCCEEDED'
+    else:
+      self.status = 'FAILED'
+
+    self.ParseOutput()
+    # Copy results directory to the scratch dir
+    if (not cache_hit and not self.retval and self.autotest.args and
+        '--profile' in self.autotest.args):
+      results_dir = os.path.join(self.chromeos_root, 'chroot',
+                                 self.results_dir.lstrip('/'))
+      tarball = os.path.join(
+          self.cache_dir, os.path.basename(os.path.dirname(self.results_dir)))
+      command = ('cd %s && tar cjf %s.tbz2 .' % (results_dir, tarball))
+      self._ce.RunCommand(command)
+      perf_data_file = os.path.join(self.results_dir, self.full_name,
+                                    'profiling/iteration.1/perf.data')
+
+      # Attempt to build a perf report and keep it with the results.
+      command = ('cd %s/src/scripts &&'
+                 ' cros_sdk -- /usr/sbin/perf report --symfs=/build/%s'
+                 ' -i %s --stdio' % (self.chromeos_root, self.board,
+                                     perf_data_file))
+      ret, out, err = self._ce.RunCommandWOutput(command)
+      with open(os.path.join(self.cache_dir, 'perf.report'), 'wb') as f:
+        f.write(out)
+    return self.retval
+
+  def ImageTo(self, machine_name):
+    image_args = [image_chromeos.__file__, '--chromeos_root=%s' %
+                  self.chromeos_root, '--image=%s' % self.chromeos_image,
+                  '--remote=%s' % machine_name]
+    if self.board:
+      image_args.append('--board=%s' % self.board)
+
+###    devserver_port = 8080
+###    mo = re.search("\d+", self.name)
+###    if mo:
+###      to_add = int(mo.group(0))
+###      assert to_add < 100, "Too many threads launched!"
+###      devserver_port += to_add
+
+###    # I tried --noupdate_stateful, but that still fails when run in parallel.
+###    image_args.append("--image_to_live_args=\"--devserver_port=%s"
+###                      " --noupdate_stateful\"" % devserver_port)
+###    image_args.append("--image_to_live_args=--devserver_port=%s" %
+###                      devserver_port)
+
+# Currently can't image two machines at once.
+# So have to serialized on this lock.
+    self.status = 'WAITING ON IMAGE_LOCK'
+    with machine_manager_singleton.MachineManagerSingleton().image_lock:
+      self.status = 'IMAGING'
+      retval = self._ce.RunCommand(' '.join(['python'] + image_args))
+      machine_manager_singleton.MachineManagerSingleton().num_reimages += 1
+      if retval:
+        self.status = 'ABORTED DUE TO IMAGE FAILURE'
+    return retval
+
+  def DoPowerdHack(self):
+    command = 'sudo initctl stop powerd'
+    self._ce.CrosRunCommand(command,
+                            machine=self.machine.name,
+                            chromeos_root=self.chromeos_root)
+
+  def RunTestOn(self, machine_name):
+    command = 'cd %s/src/scripts' % self.chromeos_root
+    options = ''
+    if self.board:
+      options += ' --board=%s' % self.board
+    if self.autotest.args:
+      options += " --args='%s'" % self.autotest.args
+    if 'tegra2' in self.board:
+      self.DoPowerdHack()
+    command += ('&& cros_sdk -- /usr/bin/test_that %s %s %s' %
+                (options, machine_name, self.autotest.name))
+    return self._ce.RunCommand(command, True)
diff --git a/crb/crb_driver.py b/crb/crb_driver.py
new file mode 100755
index 0000000..8c767fb
--- /dev/null
+++ b/crb/crb_driver.py
@@ -0,0 +1,370 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+import datetime
+import optparse
+import os
+import smtplib
+import sys
+import time
+from email.mime.text import MIMEText
+
+from autotest_gatherer import AutotestGatherer as AutotestGatherer
+from autotest_run import AutotestRun as AutotestRun
+from machine_manager_singleton import MachineManagerSingleton as MachineManagerSingleton
+from cros_utils import logger
+from cros_utils.file_utils import FileUtils
+
+
+def CanonicalizeChromeOSRoot(chromeos_root):
+  chromeos_root = os.path.expanduser(chromeos_root)
+  if os.path.isfile(os.path.join(chromeos_root, 'src/scripts/enter_chroot.sh')):
+    return chromeos_root
+  else:
+    return None
+
+
+class Autotest(object):
+
+  def __init__(self, autotest_string):
+    self.name = None
+    self.iterations = None
+    self.args = None
+    fields = autotest_string.split(',', 1)
+    self.name = fields[0]
+    if len(fields) > 1:
+      autotest_string = fields[1]
+      fields = autotest_string.split(',', 1)
+    else:
+      return
+    self.iterations = int(fields[0])
+    if len(fields) > 1:
+      self.args = fields[1]
+    else:
+      return
+
+  def __str__(self):
+    return '\n'.join([self.name, self.iterations, self.args])
+
+
+def CreateAutotestListFromString(autotest_strings, default_iterations=None):
+  autotest_list = []
+  for autotest_string in autotest_strings.split(':'):
+    autotest = Autotest(autotest_string)
+    if default_iterations and not autotest.iterations:
+      autotest.iterations = default_iterations
+
+    autotest_list.append(autotest)
+  return autotest_list
+
+
+def CreateAutotestRuns(images,
+                       autotests,
+                       remote,
+                       board,
+                       exact_remote,
+                       rerun,
+                       rerun_if_failed,
+                       main_chromeos_root=None):
+  autotest_runs = []
+  for image in images:
+    logger.GetLogger().LogOutput('Computing md5sum of: %s' % image)
+    image_checksum = FileUtils().Md5File(image)
+    logger.GetLogger().LogOutput('md5sum %s: %s' % (image, image_checksum))
+    ###    image_checksum = "abcdefghi"
+
+    chromeos_root = main_chromeos_root
+    if not main_chromeos_root:
+      image_chromeos_root = os.path.join(
+          os.path.dirname(image), '../../../../..')
+      chromeos_root = CanonicalizeChromeOSRoot(image_chromeos_root)
+      assert chromeos_root, 'chromeos_root: %s invalid' % image_chromeos_root
+    else:
+      chromeos_root = CanonicalizeChromeOSRoot(main_chromeos_root)
+      assert chromeos_root, 'chromeos_root: %s invalid' % main_chromeos_root
+
+    # We just need a single ChromeOS root in the MachineManagerSingleton. It is
+    # needed because we can save re-image time by checking the image checksum at
+    # the beginning and assigning autotests to machines appropriately.
+    if not MachineManagerSingleton().chromeos_root:
+      MachineManagerSingleton().chromeos_root = chromeos_root
+
+    for autotest in autotests:
+      for iteration in range(autotest.iterations):
+        autotest_run = AutotestRun(autotest,
+                                   chromeos_root=chromeos_root,
+                                   chromeos_image=image,
+                                   board=board,
+                                   remote=remote,
+                                   iteration=iteration,
+                                   image_checksum=image_checksum,
+                                   exact_remote=exact_remote,
+                                   rerun=rerun,
+                                   rerun_if_failed=rerun_if_failed)
+        autotest_runs.append(autotest_run)
+  return autotest_runs
+
+
+def GetNamesAndIterations(autotest_runs):
+  strings = []
+  for autotest_run in autotest_runs:
+    strings.append('%s:%s' % (autotest_run.autotest.name,
+                              autotest_run.iteration))
+  return ' %s (%s)' % (len(strings), ' '.join(strings))
+
+
+def GetStatusString(autotest_runs):
+  status_bins = {}
+  for autotest_run in autotest_runs:
+    if autotest_run.status not in status_bins:
+      status_bins[autotest_run.status] = []
+    status_bins[autotest_run.status].append(autotest_run)
+
+  status_strings = []
+  for key, val in status_bins.items():
+    status_strings.append('%s: %s' % (key, GetNamesAndIterations(val)))
+  return 'Thread Status:\n%s' % '\n'.join(status_strings)
+
+
+def GetProgressBar(num_done, num_total):
+  ret = 'Done: %s%%' % int(100.0 * num_done / num_total)
+  bar_length = 50
+  done_char = '>'
+  undone_char = ' '
+  num_done_chars = bar_length * num_done / num_total
+  num_undone_chars = bar_length - num_done_chars
+  ret += ' [%s%s]' % (num_done_chars * done_char,
+                      num_undone_chars * undone_char)
+  return ret
+
+
+def GetProgressString(start_time, num_remain, num_total):
+  current_time = time.time()
+  elapsed_time = current_time - start_time
+  try:
+    eta_seconds = float(num_remain) * elapsed_time / (num_total - num_remain)
+    eta_seconds = int(eta_seconds)
+    eta = datetime.timedelta(seconds=eta_seconds)
+  except ZeroDivisionError:
+    eta = 'Unknown'
+  strings = []
+  strings.append('Current time: %s Elapsed: %s ETA: %s' %
+                 (datetime.datetime.now(),
+                  datetime.timedelta(seconds=int(elapsed_time)), eta))
+  strings.append(GetProgressBar(num_total - num_remain, num_total))
+  return '\n'.join(strings)
+
+
+def RunAutotestRunsInParallel(autotest_runs):
+  start_time = time.time()
+  active_threads = []
+  for autotest_run in autotest_runs:
+    # Set threads to daemon so program exits when ctrl-c is pressed.
+    autotest_run.daemon = True
+    autotest_run.start()
+    active_threads.append(autotest_run)
+
+  print_interval = 30
+  last_printed_time = time.time()
+  while active_threads:
+    try:
+      active_threads = [t for t in active_threads
+                        if t is not None and t.isAlive()]
+      for t in active_threads:
+        t.join(1)
+      if time.time() - last_printed_time > print_interval:
+        border = '=============================='
+        logger.GetLogger().LogOutput(border)
+        logger.GetLogger().LogOutput(GetProgressString(start_time, len(
+            [t for t in autotest_runs if t.status not in ['SUCCEEDED', 'FAILED']
+            ]), len(autotest_runs)))
+        logger.GetLogger().LogOutput(GetStatusString(autotest_runs))
+        logger.GetLogger().LogOutput('%s\n' %
+                                     MachineManagerSingleton().AsString())
+        logger.GetLogger().LogOutput(border)
+        last_printed_time = time.time()
+    except KeyboardInterrupt:
+      print 'C-c received... cleaning up threads.'
+      for t in active_threads:
+        t.terminate = True
+      return 1
+  return 0
+
+
+def RunAutotestRunsSerially(autotest_runs):
+  for autotest_run in autotest_runs:
+    retval = autotest_run.Run()
+    if retval:
+      return retval
+
+
+def ProduceTables(autotest_runs, full_table, fit_string):
+  l = logger.GetLogger()
+  ags_dict = {}
+  for autotest_run in autotest_runs:
+    name = autotest_run.full_name
+    if name not in ags_dict:
+      ags_dict[name] = AutotestGatherer()
+    ags_dict[name].runs.append(autotest_run)
+    output = ''
+  for b, ag in ags_dict.items():
+    output += 'Benchmark: %s\n' % b
+    output += ag.GetFormattedMainTable(percents_only=not full_table,
+                                       fit_string=fit_string)
+    output += '\n'
+
+  summary = ''
+  for b, ag in ags_dict.items():
+    summary += 'Benchmark Summary Table: %s\n' % b
+    summary += ag.GetFormattedSummaryTable(percents_only=not full_table,
+                                           fit_string=fit_string)
+    summary += '\n'
+
+  output += summary
+  output += ('Number of re-images performed: %s' %
+             MachineManagerSingleton().num_reimages)
+  l.LogOutput(output)
+
+  if autotest_runs:
+    board = autotest_runs[0].board
+  else:
+    board = ''
+
+  subject = '%s: %s' % (board, ', '.join(ags_dict.keys()))
+
+  if any(autotest_run.run_completed for autotest_run in autotest_runs):
+    SendEmailToUser(subject, summary)
+
+
+def SendEmailToUser(subject, text_to_send):
+  # Email summary to the current user.
+  msg = MIMEText(text_to_send)
+
+  # me == the sender's email address
+  # you == the recipient's email address
+  me = os.path.basename(__file__)
+  you = os.getlogin()
+  msg['Subject'] = '[%s] %s' % (os.path.basename(__file__), subject)
+  msg['From'] = me
+  msg['To'] = you
+
+  # Send the message via our own SMTP server, but don't include the
+  # envelope header.
+  s = smtplib.SMTP('localhost')
+  s.sendmail(me, [you], msg.as_string())
+  s.quit()
+
+
+def Main(argv):
+  """The main function."""
+  # Common initializations
+  ###  command_executer.InitCommandExecuter(True)
+  l = logger.GetLogger()
+
+  parser = optparse.OptionParser()
+  parser.add_option('-t',
+                    '--tests',
+                    dest='tests',
+                    help=('Tests to compare.'
+                          'Optionally specify per-test iterations by:'
+                          '<test>,<iter>:<args>'))
+  parser.add_option('-c',
+                    '--chromeos_root',
+                    dest='chromeos_root',
+                    help='A *single* chromeos_root where scripts can be found.')
+  parser.add_option('-n',
+                    '--iterations',
+                    dest='iterations',
+                    help='Iterations to run per benchmark.',
+                    default=1)
+  parser.add_option('-r',
+                    '--remote',
+                    dest='remote',
+                    help='The remote chromeos machine.')
+  parser.add_option('-b', '--board', dest='board', help='The remote board.')
+  parser.add_option('--full_table',
+                    dest='full_table',
+                    help='Print full tables.',
+                    action='store_true',
+                    default=True)
+  parser.add_option('--exact_remote',
+                    dest='exact_remote',
+                    help='Run tests on the exact remote.',
+                    action='store_true',
+                    default=False)
+  parser.add_option('--fit_string',
+                    dest='fit_string',
+                    help='Fit strings to fixed sizes.',
+                    action='store_true',
+                    default=False)
+  parser.add_option('--rerun',
+                    dest='rerun',
+                    help='Re-run regardless of cache hit.',
+                    action='store_true',
+                    default=False)
+  parser.add_option('--rerun_if_failed',
+                    dest='rerun_if_failed',
+                    help='Re-run if previous run was a failure.',
+                    action='store_true',
+                    default=False)
+  parser.add_option('--no_lock',
+                    dest='no_lock',
+                    help='Do not lock the machine before running the tests.',
+                    action='store_true',
+                    default=False)
+  l.LogOutput(' '.join(argv))
+  [options, args] = parser.parse_args(argv)
+
+  if options.remote is None:
+    l.LogError('No remote machine specified.')
+    parser.print_help()
+    return 1
+
+  if not options.board:
+    l.LogError('No board specified.')
+    parser.print_help()
+    return 1
+
+  remote = options.remote
+  tests = options.tests
+  board = options.board
+  exact_remote = options.exact_remote
+  iterations = int(options.iterations)
+
+  autotests = CreateAutotestListFromString(tests, iterations)
+
+  main_chromeos_root = options.chromeos_root
+  images = args[1:]
+  fit_string = options.fit_string
+  full_table = options.full_table
+  rerun = options.rerun
+  rerun_if_failed = options.rerun_if_failed
+
+  MachineManagerSingleton().no_lock = options.no_lock
+
+  # Now try creating all the Autotests
+  autotest_runs = CreateAutotestRuns(images, autotests, remote, board,
+                                     exact_remote, rerun, rerun_if_failed,
+                                     main_chromeos_root)
+
+  try:
+    # At this point we have all the autotest runs.
+    for machine in remote.split(','):
+      MachineManagerSingleton().AddMachine(machine)
+
+    retval = RunAutotestRunsInParallel(autotest_runs)
+    if retval:
+      return retval
+
+    # Now print tables
+    ProduceTables(autotest_runs, full_table, fit_string)
+  finally:
+    # not sure why this isn't called at the end normally...
+    MachineManagerSingleton().__del__()
+
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv))
diff --git a/crb/machine_manager_singleton.py b/crb/machine_manager_singleton.py
new file mode 100644
index 0000000..6ffe968
--- /dev/null
+++ b/crb/machine_manager_singleton.py
@@ -0,0 +1,153 @@
+import image_chromeos
+import lock_machine
+import sys
+import threading
+import time
+from cros_utils import command_executer
+from cros_utils import logger
+
+
+class CrosMachine(object):
+
+  def __init__(self, name):
+    self.name = name
+    self.image = None
+    self.checksum = None
+    self.locked = False
+    self.released_time = time.time()
+    self.autotest_run = None
+
+  def __str__(self):
+    l = []
+    l.append(self.name)
+    l.append(str(self.image))
+    l.append(str(self.checksum))
+    l.append(str(self.locked))
+    l.append(str(self.released_time))
+    return ', '.join(l)
+
+
+class MachineManagerSingleton(object):
+  _instance = None
+  _lock = threading.RLock()
+  _all_machines = []
+  _machines = []
+  image_lock = threading.Lock()
+  num_reimages = 0
+  chromeos_root = None
+  no_lock = False
+
+  def __new__(cls, *args, **kwargs):
+    with cls._lock:
+      if not cls._instance:
+        cls._instance = super(MachineManagerSingleton, cls).__new__(cls, *args,
+                                                                    **kwargs)
+      return cls._instance
+
+  def TryToLockMachine(self, cros_machine):
+    with self._lock:
+      assert cros_machine, "Machine can't be None"
+      for m in self._machines:
+        assert m.name != cros_machine.name, ('Tried to double-lock %s' %
+                                             cros_machine.name)
+      if self.no_lock:
+        locked = True
+      else:
+        locked = lock_machine.Machine(cros_machine.name).Lock(True, sys.argv[0])
+      if locked:
+        ce = command_executer.GetCommandExecuter()
+        command = 'cat %s' % image_chromeos.checksum_file
+        ret, out, err = ce.CrosRunCommandWOutput(
+            command,
+            chromeos_root=self.chromeos_root,
+            machine=cros_machine.name)
+        if ret == 0:
+          cros_machine.checksum = out.strip()
+        self._machines.append(cros_machine)
+      else:
+        logger.GetLogger().LogOutput("Warning: Couldn't lock: %s" %
+                                     cros_machine.name)
+
+  # This is called from single threaded mode.
+  def AddMachine(self, machine_name):
+    with self._lock:
+      for m in self._all_machines:
+        assert m.name != machine_name, 'Tried to double-add %s' % machine_name
+      self._all_machines.append(CrosMachine(machine_name))
+
+  def AcquireMachine(self, image_checksum):
+    with self._lock:
+      # Lazily external lock machines
+      if not self._machines:
+        for m in self._all_machines:
+          self.TryToLockMachine(m)
+      assert self._machines, ('Could not lock any machine in %s' %
+                              self._all_machines)
+
+      ###      for m in self._machines:
+      ###        if (m.locked and time.time() - m.released_time < 10 and
+      ###            m.checksum == image_checksum):
+      ###          return None
+      for m in [machine for machine in self._machines if not machine.locked]:
+        if m.checksum == image_checksum:
+          m.locked = True
+          m.autotest_run = threading.current_thread()
+          return m
+      for m in [machine for machine in self._machines if not machine.locked]:
+        if not m.checksum:
+          m.locked = True
+          m.autotest_run = threading.current_thread()
+          return m
+      for m in [machine for machine in self._machines if not machine.locked]:
+        if time.time() - m.released_time > 20:
+          m.locked = True
+          m.autotest_run = threading.current_thread()
+          return m
+    return None
+
+  def ReleaseMachine(self, machine):
+    with self._lock:
+      for m in self._machines:
+        if machine.name == m.name:
+          assert m.locked == True, 'Tried to double-release %s' % m.name
+          m.released_time = time.time()
+          m.locked = False
+          m.status = 'Available'
+          break
+
+  def __del__(self):
+    with self._lock:
+      # Unlock all machines.
+      for m in self._machines:
+        if not self.no_lock:
+          assert lock_machine.Machine(m.name).Unlock(True) == True, (
+              "Couldn't unlock machine: %s" % m.name)
+
+  def __str__(self):
+    with self._lock:
+      l = ['MachineManager Status:']
+      for m in self._machines:
+        l.append(str(m))
+      return '\n'.join(l)
+
+  def AsString(self):
+    with self._lock:
+      stringify_fmt = '%-30s %-10s %-4s %-25s %-32s'
+      header = stringify_fmt % ('Machine', 'Thread', 'Lock', 'Status',
+                                'Checksum')
+      table = [header]
+      for m in self._machines:
+        if m.autotest_run:
+          autotest_name = m.autotest_run.name
+          autotest_status = m.autotest_run.status
+        else:
+          autotest_name = ''
+          autotest_status = ''
+
+        try:
+          machine_string = stringify_fmt % (m.name, autotest_name, m.locked,
+                                            autotest_status, m.checksum)
+        except:
+          machine_string = ''
+        table.append(machine_string)
+      return 'Machine Status:\n%s' % '\n'.join(table)
diff --git a/crb/table_formatter.py b/crb/table_formatter.py
new file mode 100644
index 0000000..b8e25d5
--- /dev/null
+++ b/crb/table_formatter.py
@@ -0,0 +1,258 @@
+import numpy
+import re
+
+
+def IsFloat(text):
+  if text is None:
+    return False
+  try:
+    float(text)
+    return True
+  except ValueError:
+    return False
+
+
+def RemoveTrailingZeros(x):
+  ret = x
+  ret = re.sub('\.0*$', '', ret)
+  ret = re.sub('(\.[1-9]*)0+$', '\\1', ret)
+  return ret
+
+
+def HumanizeFloat(x, n=2):
+  if not IsFloat(x):
+    return x
+  digits = re.findall('[0-9.]', str(x))
+  decimal_found = False
+  ret = ''
+  sig_figs = 0
+  for digit in digits:
+    if digit == '.':
+      decimal_found = True
+    elif sig_figs != 0 or digit != '0':
+      sig_figs += 1
+    if decimal_found and sig_figs >= n:
+      break
+    ret += digit
+  return ret
+
+
+def GetNSigFigs(x, n=2):
+  if not IsFloat(x):
+    return x
+  my_fmt = '%.' + str(n - 1) + 'e'
+  x_string = my_fmt % x
+  f = float(x_string)
+  return f
+
+
+def GetFormattedPercent(baseline, other, bad_result='--'):
+  result = '%8s' % GetPercent(baseline, other, bad_result)
+  return result
+
+
+def GetPercent(baseline, other, bad_result='--'):
+  result = bad_result
+  if IsFloat(baseline) and IsFloat(other):
+    try:
+      pct = (float(other) / float(baseline) - 1) * 100
+      result = '%+1.1f' % pct
+    except ZeroDivisionError:
+      pass
+  return result
+
+
+def FitString(text, length):
+  if len(text) == length:
+    return text
+  elif len(text) > length:
+    return text[-length:]
+  else:
+    fmt = '%%%ds' % length
+    return fmt % text
+
+
+class TableFormatter(object):
+
+  def __init__(self):
+    self.d = '\t'
+    self.bad_result = 'x'
+
+  def GetTablePercents(self, table):
+    # Assumes table is not transposed.
+    pct_table = []
+
+    pct_table.append(table[0])
+    for i in range(1, len(table)):
+      row = []
+      row.append(table[i][0])
+      for j in range(1, len(table[0])):
+        c = table[i][j]
+        b = table[i][1]
+        p = GetPercent(b, c, self.bad_result)
+        row.append(p)
+      pct_table.append(row)
+    return pct_table
+
+  def FormatFloat(self, c, max_length=8):
+    if not IsFloat(c):
+      return c
+    f = float(c)
+    ret = HumanizeFloat(f, 4)
+    ret = RemoveTrailingZeros(ret)
+    if len(ret) > max_length:
+      ret = '%1.1ef' % f
+    return ret
+
+  def TransposeTable(self, table):
+    transposed_table = []
+    for i in range(len(table[0])):
+      row = []
+      for j in range(len(table)):
+        row.append(table[j][i])
+      transposed_table.append(row)
+    return transposed_table
+
+  def GetTableLabels(self, table):
+    ret = ''
+    header = table[0]
+    for i in range(1, len(header)):
+      ret += '%d: %s\n' % (i, header[i])
+    return ret
+
+  def GetFormattedTable(self,
+                        table,
+                        transposed=False,
+                        first_column_width=30,
+                        column_width=14,
+                        percents_only=True,
+                        fit_string=True):
+    o = ''
+    pct_table = self.GetTablePercents(table)
+    if transposed == True:
+      table = self.TransposeTable(table)
+      pct_table = self.TransposeTable(table)
+
+    for i in range(0, len(table)):
+      for j in range(len(table[0])):
+        if j == 0:
+          width = first_column_width
+        else:
+          width = column_width
+
+        c = table[i][j]
+        p = pct_table[i][j]
+
+        # Replace labels with numbers: 0... n
+        if IsFloat(c):
+          c = self.FormatFloat(c)
+
+        if IsFloat(p) and not percents_only:
+          p = '%s%%' % p
+
+        # Print percent values side by side.
+        if j != 0:
+          if percents_only:
+            c = '%s' % p
+          else:
+            c = '%s (%s)' % (c, p)
+
+        if i == 0 and j != 0:
+          c = str(j)
+
+        if fit_string:
+          o += FitString(c, width) + self.d
+        else:
+          o += c + self.d
+      o += '\n'
+    return o
+
+  def GetGroups(self, table):
+    labels = table[0]
+    groups = []
+    group_dict = {}
+    for i in range(1, len(labels)):
+      label = labels[i]
+      stripped_label = self.GetStrippedLabel(label)
+      if stripped_label not in group_dict:
+        group_dict[stripped_label] = len(groups)
+        groups.append([])
+      groups[group_dict[stripped_label]].append(i)
+    return groups
+
+  def GetSummaryTableValues(self, table):
+    # First get the groups
+    groups = self.GetGroups(table)
+
+    summary_table = []
+
+    labels = table[0]
+
+    summary_labels = ['Summary Table']
+    for group in groups:
+      label = labels[group[0]]
+      stripped_label = self.GetStrippedLabel(label)
+      group_label = '%s (%d runs)' % (stripped_label, len(group))
+      summary_labels.append(group_label)
+    summary_table.append(summary_labels)
+
+    for i in range(1, len(table)):
+      row = table[i]
+      summary_row = [row[0]]
+      for group in groups:
+        group_runs = []
+        for index in group:
+          group_runs.append(row[index])
+        group_run = self.AggregateResults(group_runs)
+        summary_row.append(group_run)
+      summary_table.append(summary_row)
+
+    return summary_table
+
+  # Drop N% slowest and M% fastest numbers, and return arithmean of
+  # the remaining.
+  @staticmethod
+  def AverageWithDrops(numbers, slow_percent=20, fast_percent=20):
+    sorted_numbers = list(numbers)
+    sorted_numbers.sort()
+    num_slow = int(slow_percent / 100.0 * len(sorted_numbers))
+    num_fast = int(fast_percent / 100.0 * len(sorted_numbers))
+    sorted_numbers = sorted_numbers[num_slow:]
+    if num_fast:
+      sorted_numbers = sorted_numbers[:-num_fast]
+    return numpy.average(sorted_numbers)
+
+  @staticmethod
+  def AggregateResults(group_results):
+    ret = ''
+    if not group_results:
+      return ret
+    all_floats = True
+    all_passes = True
+    all_fails = True
+    for group_result in group_results:
+      if not IsFloat(group_result):
+        all_floats = False
+      if group_result != 'PASSED':
+        all_passes = False
+      if group_result != 'FAILED':
+        all_fails = False
+    if all_floats == True:
+      float_results = [float(v) for v in group_results]
+      ret = '%f' % TableFormatter.AverageWithDrops(float_results)
+      # Add this line for standard deviation.
+      ###      ret += " %f" % numpy.std(float_results)
+    elif all_passes == True:
+      ret = 'ALL_PASS'
+    elif all_fails == True:
+      ret = 'ALL_FAILS'
+    return ret
+
+  @staticmethod
+  def GetStrippedLabel(label):
+    return re.sub('\s*\S+:\S+\s*', '', label)
+###    return re.sub("\s*remote:\S*\s*i:\d+$", "", label)
+
+  @staticmethod
+  def GetLabelWithIteration(label, iteration):
+    return '%s i:%d' % (label, iteration)
diff --git a/cros_login.py b/cros_login.py
new file mode 100755
index 0000000..32dfcb7
--- /dev/null
+++ b/cros_login.py
@@ -0,0 +1,118 @@
+#!/usr/bin/python2
+#
+# Copyright 2010~2015 Google Inc. All Rights Reserved.
+"""Script to get past the login screen of ChromeOS.
+
+"""
+from __future__ import print_function
+
+import argparse
+import os
+import sys
+import tempfile
+
+from cros_utils import command_executer
+
+LOGIN_PROMPT_VISIBLE_MAGIC_FILE = '/tmp/uptime-login-prompt-visible'
+LOGGED_IN_MAGIC_FILE = '/var/run/state/logged-in'
+
+script_header = """
+import os
+import autox
+import time
+"""
+
+wait_for_login_screen = """
+
+while True:
+  print 'Waiting for login screen to appear...'
+  if os.path.isfile('%s'):
+    break
+  time.sleep(1)
+  print 'Done'
+
+time.sleep(20)
+""" % LOGIN_PROMPT_VISIBLE_MAGIC_FILE
+
+do_login = """
+xauth_filename = '/home/chronos/.Xauthority'
+os.environ.setdefault('XAUTHORITY', xauth_filename)
+os.environ.setdefault('DISPLAY', ':0.0')
+
+print 'Now sending the hotkeys for logging in.'
+ax = autox.AutoX()
+# navigate to login screen
+ax.send_hotkey('Ctrl+Shift+q')
+ax.send_hotkey('Ctrl+Alt+l')
+# escape out of any login screen menus (e.g., the network select menu)
+time.sleep(2)
+ax.send_hotkey('Escape')
+time.sleep(2)
+ax.send_hotkey('Tab')
+time.sleep(0.5)
+ax.send_hotkey('Tab')
+time.sleep(0.5)
+ax.send_hotkey('Tab')
+time.sleep(0.5)
+ax.send_hotkey('Tab')
+time.sleep(0.5)
+ax.send_hotkey('Return')
+print 'Waiting for Chrome to appear...'
+while True:
+  if os.path.isfile('%s'):
+    break
+  time.sleep(1)
+print 'Done'
+""" % LOGGED_IN_MAGIC_FILE
+
+
+def RestartUI(remote, chromeos_root, login=True):
+  chromeos_root = os.path.expanduser(chromeos_root)
+  ce = command_executer.GetCommandExecuter()
+  # First, restart ui.
+  command = 'rm -rf %s && restart ui' % LOGIN_PROMPT_VISIBLE_MAGIC_FILE
+  ce.CrosRunCommand(command, machine=remote, chromeos_root=chromeos_root)
+  host_login_script = tempfile.mktemp()
+  device_login_script = '/tmp/login.py'
+  login_script_list = [script_header, wait_for_login_screen]
+  if login:
+    login_script_list.append(do_login)
+
+  full_login_script_contents = '\n'.join(login_script_list)
+
+  with open(host_login_script, 'w') as f:
+    f.write(full_login_script_contents)
+  ce.CopyFiles(host_login_script,
+               device_login_script,
+               dest_machine=remote,
+               chromeos_root=chromeos_root,
+               recursive=False,
+               dest_cros=True)
+  ret = ce.CrosRunCommand('python %s' % device_login_script,
+                          chromeos_root=chromeos_root,
+                          machine=remote)
+  if os.path.exists(host_login_script):
+    os.remove(host_login_script)
+  return ret
+
+
+def Main(argv):
+  """The main function."""
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-r',
+                      '--remote',
+                      dest='remote',
+                      help='The remote ChromeOS box.')
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      help='The ChromeOS root.')
+
+  options = parser.parse_args(argv)
+
+  return RestartUI(options.remote, options.chromeos_root)
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/cros_utils/__init__.py b/cros_utils/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/cros_utils/__init__.py
@@ -0,0 +1 @@
+
diff --git a/cros_utils/buildbot_json.py b/cros_utils/buildbot_json.py
new file mode 100755
index 0000000..8a9d9cb
--- /dev/null
+++ b/cros_utils/buildbot_json.py
@@ -0,0 +1,1518 @@
+#!/usr/bin/env python2
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#    * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#    * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#    * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# NOTE: This file is NOT under GPL.  See above.
+"""Queries buildbot through the json interface.
+"""
+
+from __future__ import print_function
+
+__author__ = 'maruel@chromium.org'
+__version__ = '1.2'
+
+import code
+import datetime
+import functools
+import json
+
+# Pylint recommends we use "from chromite.lib import cros_logging as logging".
+# Chromite specific policy message, we want to keep using the standard logging.
+# pylint: disable=cros-logging-import
+import logging
+
+# pylint: disable=deprecated-module
+import optparse
+
+import time
+import urllib
+import urllib2
+import sys
+
+try:
+  from natsort import natsorted
+except ImportError:
+  # natsorted is a simple helper to sort "naturally", e.g. "vm40" is sorted
+  # after "vm7". Defaults to normal sorting.
+  natsorted = sorted
+
+# These values are buildbot constants used for Build and BuildStep.
+# This line was copied from master/buildbot/status/builder.py.
+SUCCESS, WARNINGS, FAILURE, SKIPPED, EXCEPTION, RETRY = range(6)
+
+## Generic node caching code.
+
+
+class Node(object):
+  """Root class for all nodes in the graph.
+
+  Provides base functionality for any node in the graph, independent if it has
+  children or not or if its content can be addressed through an url or needs to
+  be fetched as part of another node.
+
+  self.printable_attributes is only used for self documentation and for str()
+  implementation.
+  """
+  printable_attributes = []
+
+  def __init__(self, parent, url):
+    self.printable_attributes = self.printable_attributes[:]
+    if url:
+      self.printable_attributes.append('url')
+      url = url.rstrip('/')
+    if parent is not None:
+      self.printable_attributes.append('parent')
+    self.url = url
+    self.parent = parent
+
+  def __str__(self):
+    return self.to_string()
+
+  def __repr__(self):
+    """Embeds key if present."""
+    key = getattr(self, 'key', None)
+    if key is not None:
+      return '<%s key=%s>' % (self.__class__.__name__, key)
+    cached_keys = getattr(self, 'cached_keys', None)
+    if cached_keys is not None:
+      return '<%s keys=%s>' % (self.__class__.__name__, cached_keys)
+    return super(Node, self).__repr__()
+
+  def to_string(self, maximum=100):
+    out = ['%s:' % self.__class__.__name__]
+    assert not 'printable_attributes' in self.printable_attributes
+
+    def limit(txt):
+      txt = str(txt)
+      if maximum > 0:
+        if len(txt) > maximum + 2:
+          txt = txt[:maximum] + '...'
+      return txt
+
+    for k in sorted(self.printable_attributes):
+      if k == 'parent':
+        # Avoid infinite recursion.
+        continue
+      out.append(limit('  %s: %r' % (k, getattr(self, k))))
+    return '\n'.join(out)
+
+  def refresh(self):
+    """Refreshes the data."""
+    self.discard()
+    return self.cache()
+
+  def cache(self):  # pragma: no cover
+    """Caches the data."""
+    raise NotImplementedError()
+
+  def discard(self):  # pragma: no cover
+    """Discards cached data.
+
+    Pretty much everything is temporary except completed Build.
+    """
+    raise NotImplementedError()
+
+
+class AddressableBaseDataNode(Node):  # pylint: disable=W0223
+  """A node that contains a dictionary of data that can be fetched with an url.
+
+  The node is directly addressable. It also often can be fetched by the parent.
+  """
+  printable_attributes = Node.printable_attributes + ['data']
+
+  def __init__(self, parent, url, data):
+    super(AddressableBaseDataNode, self).__init__(parent, url)
+    self._data = data
+
+  @property
+  def cached_data(self):
+    return self._data
+
+  @property
+  def data(self):
+    self.cache()
+    return self._data
+
+  def cache(self):
+    if self._data is None:
+      self._data = self._readall()
+      return True
+    return False
+
+  def discard(self):
+    self._data = None
+
+  def read(self, suburl):
+    assert self.url, self.__class__.__name__
+    url = self.url
+    if suburl:
+      url = '%s/%s' % (self.url, suburl)
+    return self.parent.read(url)
+
+  def _readall(self):
+    return self.read('')
+
+
+class AddressableDataNode(AddressableBaseDataNode):  # pylint: disable=W0223
+  """Automatically encodes the url."""
+
+  def __init__(self, parent, url, data):
+    super(AddressableDataNode, self).__init__(parent, urllib.quote(url), data)
+
+
+class NonAddressableDataNode(Node):  # pylint: disable=W0223
+  """A node that cannot be addressed by an unique url.
+
+  The data comes directly from the parent.
+  """
+
+  def __init__(self, parent, subkey):
+    super(NonAddressableDataNode, self).__init__(parent, None)
+    self.subkey = subkey
+
+  @property
+  def cached_data(self):
+    if self.parent.cached_data is None:
+      return None
+    return self.parent.cached_data[self.subkey]
+
+  @property
+  def data(self):
+    return self.parent.data[self.subkey]
+
+  def cache(self):
+    self.parent.cache()
+
+  def discard(self):  # pragma: no cover
+    """Avoid invalid state when parent recreate the object."""
+    raise AttributeError('Call parent discard() instead')
+
+
+class VirtualNodeList(Node):
+  """Base class for every node that has children.
+
+  Adds partial supports for keys and iterator functionality. 'key' can be a
+  string or a int. Not to be used directly.
+  """
+  printable_attributes = Node.printable_attributes + ['keys']
+
+  def __init__(self, parent, url):
+    super(VirtualNodeList, self).__init__(parent, url)
+    # Keeps the keys independently when ordering is needed.
+    self._is_cached = False
+    self._has_keys_cached = False
+
+  def __contains__(self, key):
+    """Enables 'if i in obj:'."""
+    return key in self.keys
+
+  def __iter__(self):
+    """Enables 'for i in obj:'. It returns children."""
+    self.cache_keys()
+    for key in self.keys:
+      yield self[key]
+
+  def __len__(self):
+    """Enables 'len(obj)' to get the number of childs."""
+    return len(self.keys)
+
+  def discard(self):
+    """Discards data.
+
+    The default behavior is to not invalidate cached keys. The only place where
+    keys need to be invalidated is with Builds.
+    """
+    self._is_cached = False
+    self._has_keys_cached = False
+
+  @property
+  def cached_children(self):  # pragma: no cover
+    """Returns an iterator over the children that are cached."""
+    raise NotImplementedError()
+
+  @property
+  def cached_keys(self):  # pragma: no cover
+    raise NotImplementedError()
+
+  @property
+  def keys(self):  # pragma: no cover
+    """Returns the keys for every children."""
+    raise NotImplementedError()
+
+  def __getitem__(self, key):  # pragma: no cover
+    """Returns a child, without fetching its data.
+
+    The children could be invalid since no verification is done.
+    """
+    raise NotImplementedError()
+
+  def cache(self):  # pragma: no cover
+    """Cache all the children."""
+    raise NotImplementedError()
+
+  def cache_keys(self):  # pragma: no cover
+    """Cache all children's keys."""
+    raise NotImplementedError()
+
+
+class NodeList(VirtualNodeList):  # pylint: disable=W0223
+  """Adds a cache of the keys."""
+
+  def __init__(self, parent, url):
+    super(NodeList, self).__init__(parent, url)
+    self._keys = []
+
+  @property
+  def cached_keys(self):
+    return self._keys
+
+  @property
+  def keys(self):
+    self.cache_keys()
+    return self._keys
+
+
+class NonAddressableNodeList(VirtualNodeList):  # pylint: disable=W0223
+  """A node that contains children but retrieves all its data from its parent.
+
+  I.e. there's no url to get directly this data.
+  """
+  # Child class object for children of this instance. For example, BuildSteps
+  # has BuildStep children.
+  _child_cls = None
+
+  def __init__(self, parent, subkey):
+    super(NonAddressableNodeList, self).__init__(parent, None)
+    self.subkey = subkey
+    assert (not isinstance(self._child_cls, NonAddressableDataNode) and
+            issubclass(self._child_cls, NonAddressableDataNode)), (
+                self._child_cls.__name__)
+
+  @property
+  def cached_children(self):
+    if self.parent.cached_data is not None:
+      for i in xrange(len(self.parent.cached_data[self.subkey])):
+        yield self[i]
+
+  @property
+  def cached_data(self):
+    if self.parent.cached_data is None:
+      return None
+    return self.parent.data.get(self.subkey, None)
+
+  @property
+  def cached_keys(self):
+    if self.parent.cached_data is None:
+      return None
+    return range(len(self.parent.data.get(self.subkey, [])))
+
+  @property
+  def data(self):
+    return self.parent.data[self.subkey]
+
+  def cache(self):
+    self.parent.cache()
+
+  def cache_keys(self):
+    self.parent.cache()
+
+  def discard(self):  # pragma: no cover
+    """Do not call.
+
+    Avoid infinite recursion by having the caller calls the parent's
+    discard() explicitely.
+    """
+    raise AttributeError('Call parent discard() instead')
+
+  def __iter__(self):
+    """Enables 'for i in obj:'. It returns children."""
+    if self.data:
+      for i in xrange(len(self.data)):
+        yield self[i]
+
+  def __getitem__(self, key):
+    """Doesn't cache the value, it's not needed.
+
+    TODO(maruel): Cache?
+    """
+    if isinstance(key, int) and key < 0:
+      key = len(self.data) + key
+    # pylint: disable=E1102
+    return self._child_cls(self, key)
+
+
+class AddressableNodeList(NodeList):
+  """A node that has children that can be addressed with an url."""
+
+  # Child class object for children of this instance. For example, Builders has
+  # Builder children and Builds has Build children.
+  _child_cls = None
+
+  def __init__(self, parent, url):
+    super(AddressableNodeList, self).__init__(parent, url)
+    self._cache = {}
+    assert (not isinstance(self._child_cls, AddressableDataNode) and
+            issubclass(self._child_cls, AddressableDataNode)), (
+                self._child_cls.__name__)
+
+  @property
+  def cached_children(self):
+    for item in self._cache.itervalues():
+      if item.cached_data is not None:
+        yield item
+
+  @property
+  def cached_keys(self):
+    return self._cache.keys()
+
+  def __getitem__(self, key):
+    """Enables 'obj[i]'."""
+    if self._has_keys_cached and not key in self._keys:
+      raise KeyError(key)
+
+    if not key in self._cache:
+      # Create an empty object.
+      self._create_obj(key, None)
+    return self._cache[key]
+
+  def cache(self):
+    if not self._is_cached:
+      data = self._readall()
+      for key in sorted(data):
+        self._create_obj(key, data[key])
+      self._is_cached = True
+      self._has_keys_cached = True
+
+  def cache_partial(self, children):
+    """Caches a partial number of children.
+
+    This method is more efficient since it does a single request for all the
+    children instead of one request per children.
+
+    It only grab objects not already cached.
+    """
+    # pylint: disable=W0212
+    if not self._is_cached:
+      to_fetch = [
+          child
+          for child in children
+          if not (child in self._cache and self._cache[child].cached_data)
+      ]
+      if to_fetch:
+        # Similar to cache(). The only reason to sort is to simplify testing.
+        params = '&'.join('select=%s' % urllib.quote(str(v))
+                          for v in sorted(to_fetch))
+        data = self.read('?' + params)
+        for key in sorted(data):
+          self._create_obj(key, data[key])
+
+  def cache_keys(self):
+    """Implement to speed up enumeration. Defaults to call cache()."""
+    if not self._has_keys_cached:
+      self.cache()
+      assert self._has_keys_cached
+
+  def discard(self):
+    """Discards temporary children."""
+    super(AddressableNodeList, self).discard()
+    for v in self._cache.itervalues():
+      v.discard()
+
+  def read(self, suburl):
+    assert self.url, self.__class__.__name__
+    url = self.url
+    if suburl:
+      url = '%s/%s' % (self.url, suburl)
+    return self.parent.read(url)
+
+  def _create_obj(self, key, data):
+    """Creates an object of type self._child_cls."""
+    # pylint: disable=E1102
+    obj = self._child_cls(self, key, data)
+    # obj.key and key may be different.
+    # No need to overide cached data with None.
+    if data is not None or obj.key not in self._cache:
+      self._cache[obj.key] = obj
+    if obj.key not in self._keys:
+      self._keys.append(obj.key)
+
+  def _readall(self):
+    return self.read('')
+
+
+class SubViewNodeList(VirtualNodeList):  # pylint: disable=W0223
+  """A node that shows a subset of children that comes from another structure.
+
+  The node is not addressable.
+
+  E.g. the keys are retrieved from parent but the actual data comes from
+  virtual_parent.
+  """
+
+  def __init__(self, parent, virtual_parent, subkey):
+    super(SubViewNodeList, self).__init__(parent, None)
+    self.subkey = subkey
+    self.virtual_parent = virtual_parent
+    assert isinstance(self.parent, AddressableDataNode)
+    assert isinstance(self.virtual_parent, NodeList)
+
+  @property
+  def cached_children(self):
+    if self.parent.cached_data is not None:
+      for item in self.keys:
+        if item in self.virtual_parent.keys:
+          child = self[item]
+          if child.cached_data is not None:
+            yield child
+
+  @property
+  def cached_keys(self):
+    return (self.parent.cached_data or {}).get(self.subkey, [])
+
+  @property
+  def keys(self):
+    self.cache_keys()
+    return self.parent.data.get(self.subkey, [])
+
+  def cache(self):
+    """Batch request for each child in a single read request."""
+    if not self._is_cached:
+      self.virtual_parent.cache_partial(self.keys)
+      self._is_cached = True
+
+  def cache_keys(self):
+    if not self._has_keys_cached:
+      self.parent.cache()
+      self._has_keys_cached = True
+
+  def discard(self):
+    if self.parent.cached_data is not None:
+      for child in self.virtual_parent.cached_children:
+        if child.key in self.keys:
+          child.discard()
+      self.parent.discard()
+    super(SubViewNodeList, self).discard()
+
+  def __getitem__(self, key):
+    """Makes sure the key is in our key but grab it from the virtual parent."""
+    return self.virtual_parent[key]
+
+  def __iter__(self):
+    self.cache()
+    return super(SubViewNodeList, self).__iter__()
+
+###############################################################################
+## Buildbot-specific code
+
+
+class Slave(AddressableDataNode):
+  """Buildbot slave class."""
+  printable_attributes = AddressableDataNode.printable_attributes + [
+      'name',
+      'key',
+      'connected',
+      'version',
+  ]
+
+  def __init__(self, parent, name, data):
+    super(Slave, self).__init__(parent, name, data)
+    self.name = name
+    self.key = self.name
+    # TODO(maruel): Add SlaveBuilders and a 'builders' property.
+    # TODO(maruel): Add a 'running_builds' property.
+
+  @property
+  def connected(self):
+    return self.data.get('connected', False)
+
+  @property
+  def version(self):
+    return self.data.get('version')
+
+
+class Slaves(AddressableNodeList):
+  """Buildbot slaves."""
+  _child_cls = Slave
+  printable_attributes = AddressableNodeList.printable_attributes + ['names']
+
+  def __init__(self, parent):
+    super(Slaves, self).__init__(parent, 'slaves')
+
+  @property
+  def names(self):
+    return self.keys
+
+
+class BuilderSlaves(SubViewNodeList):
+  """Similar to Slaves but only list slaves connected to a specific builder."""
+  printable_attributes = SubViewNodeList.printable_attributes + ['names']
+
+  def __init__(self, parent):
+    super(BuilderSlaves, self).__init__(parent, parent.parent.parent.slaves,
+                                        'slaves')
+
+  @property
+  def names(self):
+    return self.keys
+
+
+class BuildStep(NonAddressableDataNode):
+  """Class for a buildbot build step."""
+  printable_attributes = NonAddressableDataNode.printable_attributes + [
+      'name',
+      'number',
+      'start_time',
+      'end_time',
+      'duration',
+      'is_started',
+      'is_finished',
+      'is_running',
+      'result',
+      'simplified_result',
+  ]
+
+  def __init__(self, parent, number):
+    """Pre-loaded, since the data is retrieved via the Build object."""
+    assert isinstance(number, int)
+    super(BuildStep, self).__init__(parent, number)
+    self.number = number
+
+  @property
+  def start_time(self):
+    if self.data.get('times'):
+      return int(round(self.data['times'][0]))
+
+  @property
+  def end_time(self):
+    times = self.data.get('times')
+    if times and len(times) == 2 and times[1]:
+      return int(round(times[1]))
+
+  @property
+  def duration(self):
+    if self.start_time:
+      return (self.end_time or int(round(time.time()))) - self.start_time
+
+  @property
+  def name(self):
+    return self.data['name']
+
+  @property
+  def is_started(self):
+    return self.data.get('isStarted', False)
+
+  @property
+  def is_finished(self):
+    return self.data.get('isFinished', False)
+
+  @property
+  def is_running(self):
+    return self.is_started and not self.is_finished
+
+  @property
+  def result(self):
+    result = self.data.get('results')
+    if result is None:
+      # results may be 0, in that case with filter=1, the value won't be
+      # present.
+      if self.data.get('isFinished'):
+        result = self.data.get('results', 0)
+    while isinstance(result, list):
+      result = result[0]
+    return result
+
+  @property
+  def simplified_result(self):
+    """Returns a simplified 3 state value, True, False or None."""
+    result = self.result
+    if result in (SUCCESS, WARNINGS):
+      return True
+    elif result in (FAILURE, EXCEPTION, RETRY):
+      return False
+    assert result in (None, SKIPPED), (result, self.data)
+    return None
+
+
+class BuildSteps(NonAddressableNodeList):
+  """Duplicates keys to support lookup by both step number and step name."""
+  printable_attributes = NonAddressableNodeList.printable_attributes + [
+      'failed',
+  ]
+  _child_cls = BuildStep
+
+  def __init__(self, parent):
+    """Pre-loaded, since the data is retrieved via the Build object."""
+    super(BuildSteps, self).__init__(parent, 'steps')
+
+  @property
+  def keys(self):
+    """Returns the steps name in order."""
+    return [i['name'] for i in self.data or []]
+
+  @property
+  def failed(self):
+    """Shortcuts that lists the step names of steps that failed."""
+    return [step.name for step in self if step.simplified_result is False]
+
+  def __getitem__(self, key):
+    """Accept step name in addition to index number."""
+    if isinstance(key, basestring):
+      # It's a string, try to find the corresponding index.
+      for i, step in enumerate(self.data):
+        if step['name'] == key:
+          key = i
+          break
+      else:
+        raise KeyError(key)
+    return super(BuildSteps, self).__getitem__(key)
+
+
+class Build(AddressableDataNode):
+  """Buildbot build info."""
+  printable_attributes = AddressableDataNode.printable_attributes + [
+      'key',
+      'number',
+      'steps',
+      'blame',
+      'reason',
+      'revision',
+      'result',
+      'simplified_result',
+      'start_time',
+      'end_time',
+      'duration',
+      'slave',
+      'properties',
+      'completed',
+  ]
+
+  def __init__(self, parent, key, data):
+    super(Build, self).__init__(parent, str(key), data)
+    self.number = int(key)
+    self.key = self.number
+    self.steps = BuildSteps(self)
+
+  @property
+  def blame(self):
+    return self.data.get('blame', [])
+
+  @property
+  def builder(self):
+    """Returns the Builder object.
+
+    Goes up the hierarchy to find the Buildbot.builders[builder] instance.
+    """
+    return self.parent.parent.parent.parent.builders[self.data['builderName']]
+
+  @property
+  def start_time(self):
+    if self.data.get('times'):
+      return int(round(self.data['times'][0]))
+
+  @property
+  def end_time(self):
+    times = self.data.get('times')
+    if times and len(times) == 2 and times[1]:
+      return int(round(times[1]))
+
+  @property
+  def duration(self):
+    if self.start_time:
+      return (self.end_time or int(round(time.time()))) - self.start_time
+
+  @property
+  def eta(self):
+    return self.data.get('eta', 0)
+
+  @property
+  def completed(self):
+    return self.data.get('currentStep') is None
+
+  @property
+  def properties(self):
+    return self.data.get('properties', [])
+
+  @property
+  def reason(self):
+    return self.data.get('reason')
+
+  @property
+  def result(self):
+    result = self.data.get('results')
+    while isinstance(result, list):
+      result = result[0]
+    if result is None and self.steps:
+      # results may be 0, in that case with filter=1, the value won't be
+      # present.
+      result = self.steps[-1].result
+    return result
+
+  @property
+  def revision(self):
+    return self.data.get('sourceStamp', {}).get('revision')
+
+  @property
+  def simplified_result(self):
+    """Returns a simplified 3 state value, True, False or None."""
+    result = self.result
+    if result in (SUCCESS, WARNINGS, SKIPPED):
+      return True
+    elif result in (FAILURE, EXCEPTION, RETRY):
+      return False
+    assert result is None, (result, self.data)
+    return None
+
+  @property
+  def slave(self):
+    """Returns the Slave object.
+
+    Goes up the hierarchy to find the Buildbot.slaves[slave] instance.
+    """
+    return self.parent.parent.parent.parent.slaves[self.data['slave']]
+
+  def discard(self):
+    """Completed Build isn't discarded."""
+    if self._data and self.result is None:
+      assert not self.steps or not self.steps[-1].data.get('isFinished')
+      self._data = None
+
+
+class CurrentBuilds(SubViewNodeList):
+  """Lists of the current builds."""
+
+  def __init__(self, parent):
+    super(CurrentBuilds, self).__init__(parent, parent.builds, 'currentBuilds')
+
+
+class PendingBuilds(AddressableDataNode):
+  """List of the pending builds."""
+
+  def __init__(self, parent):
+    super(PendingBuilds, self).__init__(parent, 'pendingBuilds', None)
+
+
+class Builds(AddressableNodeList):
+  """Supports iteration.
+
+  Recommends using .cache() to speed up if a significant number of builds are
+  iterated over.
+  """
+  _child_cls = Build
+
+  def __init__(self, parent):
+    super(Builds, self).__init__(parent, 'builds')
+
+  def __getitem__(self, key):
+    """Support for negative reference and enable retrieving non-cached builds.
+
+    e.g. -1 is the last build, -2 is the previous build before the last one.
+    """
+    key = int(key)
+    if key < 0:
+      # Convert negative to positive build number.
+      self.cache_keys()
+      # Since the negative value can be outside of the cache keys range, use the
+      # highest key value and calculate from it.
+      key = max(self._keys) + key + 1
+
+    if not key in self._cache:
+      # Create an empty object.
+      self._create_obj(key, None)
+    return self._cache[key]
+
+  def __iter__(self):
+    """Returns cached Build objects in reversed order.
+
+    The most recent build is returned first and then in reverse chronological
+    order, up to the oldest cached build by the server. Older builds can be
+    accessed but will trigger significantly more I/O so they are not included by
+    default in the iteration.
+
+    To access the older builds, use self.iterall() instead.
+    """
+    self.cache()
+    return reversed(self._cache.values())
+
+  def iterall(self):
+    """Returns Build objects in decreasing order unbounded up to build 0.
+
+    The most recent build is returned first and then in reverse chronological
+    order. Older builds can be accessed and will trigger significantly more I/O
+    so use this carefully.
+    """
+    # Only cache keys here.
+    self.cache_keys()
+    if self._keys:
+      for i in xrange(max(self._keys), -1, -1):
+        yield self[i]
+
+  def cache_keys(self):
+    """Grabs the keys (build numbers) from the builder."""
+    if not self._has_keys_cached:
+      for i in self.parent.data.get('cachedBuilds', []):
+        i = int(i)
+        self._cache.setdefault(i, Build(self, i, None))
+        if i not in self._keys:
+          self._keys.append(i)
+      self._has_keys_cached = True
+
+  def discard(self):
+    super(Builds, self).discard()
+    # Can't keep keys.
+    self._has_keys_cached = False
+
+  def _readall(self):
+    return self.read('_all')
+
+
+class Builder(AddressableDataNode):
+  """Builder status."""
+  printable_attributes = AddressableDataNode.printable_attributes + [
+      'name',
+      'key',
+      'builds',
+      'slaves',
+      'pending_builds',
+      'current_builds',
+  ]
+
+  def __init__(self, parent, name, data):
+    super(Builder, self).__init__(parent, name, data)
+    self.name = name
+    self.key = name
+    self.builds = Builds(self)
+    self.slaves = BuilderSlaves(self)
+    self.current_builds = CurrentBuilds(self)
+    self.pending_builds = PendingBuilds(self)
+
+  def discard(self):
+    super(Builder, self).discard()
+    self.builds.discard()
+    self.slaves.discard()
+    self.current_builds.discard()
+
+
+class Builders(AddressableNodeList):
+  """Root list of builders."""
+  _child_cls = Builder
+
+  def __init__(self, parent):
+    super(Builders, self).__init__(parent, 'builders')
+
+
+class Buildbot(AddressableBaseDataNode):
+  """This object should be recreated on a master restart as it caches data."""
+  # Throttle fetches to not kill the server.
+  auto_throttle = None
+  printable_attributes = AddressableDataNode.printable_attributes + [
+      'slaves',
+      'builders',
+      'last_fetch',
+  ]
+
+  def __init__(self, url):
+    super(Buildbot, self).__init__(None, url.rstrip('/') + '/json', None)
+    self._builders = Builders(self)
+    self._slaves = Slaves(self)
+    self.last_fetch = None
+
+  @property
+  def builders(self):
+    return self._builders
+
+  @property
+  def slaves(self):
+    return self._slaves
+
+  def discard(self):
+    """Discards information about Builders and Slaves."""
+    super(Buildbot, self).discard()
+    self._builders.discard()
+    self._slaves.discard()
+
+  def read(self, suburl):
+    if self.auto_throttle:
+      if self.last_fetch:
+        delta = datetime.datetime.utcnow() - self.last_fetch
+        remaining = (datetime.timedelta(seconds=self.auto_throttle) - delta)
+        if remaining > datetime.timedelta(seconds=0):
+          logging.debug('Sleeping for %ss', remaining)
+          time.sleep(remaining.seconds)
+      self.last_fetch = datetime.datetime.utcnow()
+    url = '%s/%s' % (self.url, suburl)
+    if '?' in url:
+      url += '&filter=1'
+    else:
+      url += '?filter=1'
+    logging.info('read(%s)', suburl)
+    channel = urllib.urlopen(url)
+    data = channel.read()
+    try:
+      return json.loads(data)
+    except ValueError:
+      if channel.getcode() >= 400:
+        # Convert it into an HTTPError for easier processing.
+        raise urllib2.HTTPError(url, channel.getcode(), '%s:\n%s' % (url, data),
+                                channel.headers, None)
+      raise
+
+  def _readall(self):
+    return self.read('project')
+
+###############################################################################
+## Controller code
+
+
+def usage(more):
+
+  def hook(fn):
+    fn.func_usage_more = more
+    return fn
+
+  return hook
+
+
+def need_buildbot(fn):
+  """Post-parse args to create a buildbot object."""
+
+  @functools.wraps(fn)
+  def hook(parser, args, *extra_args, **kwargs):
+    old_parse_args = parser.parse_args
+
+    def new_parse_args(args):
+      options, args = old_parse_args(args)
+      if len(args) < 1:
+        parser.error('Need to pass the root url of the buildbot')
+      url = args.pop(0)
+      if not url.startswith('http'):
+        url = 'http://' + url
+      buildbot = Buildbot(url)
+      buildbot.auto_throttle = options.throttle
+      return options, args, buildbot
+
+    parser.parse_args = new_parse_args
+    # Call the original function with the modified parser.
+    return fn(parser, args, *extra_args, **kwargs)
+
+  hook.func_usage_more = '[options] <url>'
+  return hook
+
+
+@need_buildbot
+def CMDpending(parser, args):
+  """Lists pending jobs."""
+  parser.add_option('-b',
+                    '--builder',
+                    dest='builders',
+                    action='append',
+                    default=[],
+                    help='Builders to filter on')
+  options, args, buildbot = parser.parse_args(args)
+  if args:
+    parser.error('Unrecognized parameters: %s' % ' '.join(args))
+  if not options.builders:
+    options.builders = buildbot.builders.keys
+  for builder in options.builders:
+    builder = buildbot.builders[builder]
+    pending_builds = builder.data.get('pendingBuilds', 0)
+    if not pending_builds:
+      continue
+    print('Builder %s: %d' % (builder.name, pending_builds))
+    if not options.quiet:
+      for pending in builder.pending_builds.data:
+        if 'revision' in pending['source']:
+          print('  revision: %s' % pending['source']['revision'])
+        for change in pending['source']['changes']:
+          print('  change:')
+          print('    comment: %r' % unicode(change['comments'][:50]))
+          print('    who:     %s' % change['who'])
+  return 0
+
+
+@usage('[options] <url> [commands] ...')
+@need_buildbot
+def CMDrun(parser, args):
+  """Runs commands passed as parameters.
+
+  When passing commands on the command line, each command will be run as if it
+  was on its own line.
+  """
+  parser.add_option('-f', '--file', help='Read script from file')
+  parser.add_option('-i',
+                    dest='use_stdin',
+                    action='store_true',
+                    help='Read script on stdin')
+  # Variable 'buildbot' is not used directly.
+  # pylint: disable=W0612
+  options, args, buildbot = parser.parse_args(args)
+  if (bool(args) + bool(options.use_stdin) + bool(options.file)) != 1:
+    parser.error('Need to pass only one of: <commands>, -f <file> or -i')
+  if options.use_stdin:
+    cmds = sys.stdin.read()
+  elif options.file:
+    cmds = open(options.file).read()
+  else:
+    cmds = '\n'.join(args)
+  compiled = compile(cmds, '<cmd line>', 'exec')
+  # pylint: disable=eval-used
+  eval(compiled, globals(), locals())
+  return 0
+
+
+@need_buildbot
+def CMDinteractive(parser, args):
+  """Runs an interactive shell to run queries."""
+  _, args, buildbot = parser.parse_args(args)
+  if args:
+    parser.error('Unrecognized parameters: %s' % ' '.join(args))
+  prompt = (
+      'Buildbot interactive console for "%s".\n'
+      'Hint: Start with typing: \'buildbot.printable_attributes\' or '
+      '\'print str(buildbot)\' to explore.') % buildbot.url[:-len('/json')]
+  local_vars = {'buildbot': buildbot, 'b': buildbot}
+  code.interact(prompt, None, local_vars)
+
+
+@need_buildbot
+def CMDidle(parser, args):
+  """Lists idle slaves."""
+  return find_idle_busy_slaves(parser, args, True)
+
+
+@need_buildbot
+def CMDbusy(parser, args):
+  """Lists idle slaves."""
+  return find_idle_busy_slaves(parser, args, False)
+
+
+@need_buildbot
+def CMDdisconnected(parser, args):
+  """Lists disconnected slaves."""
+  _, args, buildbot = parser.parse_args(args)
+  if args:
+    parser.error('Unrecognized parameters: %s' % ' '.join(args))
+  for slave in buildbot.slaves:
+    if not slave.connected:
+      print(slave.name)
+  return 0
+
+
+def find_idle_busy_slaves(parser, args, show_idle):
+  parser.add_option('-b',
+                    '--builder',
+                    dest='builders',
+                    action='append',
+                    default=[],
+                    help='Builders to filter on')
+  parser.add_option('-s',
+                    '--slave',
+                    dest='slaves',
+                    action='append',
+                    default=[],
+                    help='Slaves to filter on')
+  options, args, buildbot = parser.parse_args(args)
+  if args:
+    parser.error('Unrecognized parameters: %s' % ' '.join(args))
+  if not options.builders:
+    options.builders = buildbot.builders.keys
+  for builder in options.builders:
+    builder = buildbot.builders[builder]
+    if options.slaves:
+      # Only the subset of slaves connected to the builder.
+      slaves = list(set(options.slaves).intersection(set(builder.slaves.names)))
+      if not slaves:
+        continue
+    else:
+      slaves = builder.slaves.names
+    busy_slaves = [build.slave.name for build in builder.current_builds]
+    if show_idle:
+      slaves = natsorted(set(slaves) - set(busy_slaves))
+    else:
+      slaves = natsorted(set(slaves) & set(busy_slaves))
+    if options.quiet:
+      for slave in slaves:
+        print(slave)
+    else:
+      if slaves:
+        print('Builder %s: %s' % (builder.name, ', '.join(slaves)))
+  return 0
+
+
+def last_failure(buildbot,
+                 builders=None,
+                 slaves=None,
+                 steps=None,
+                 no_cache=False):
+  """Returns Build object with last failure with the specific filters."""
+  builders = builders or buildbot.builders.keys
+  for builder in builders:
+    builder = buildbot.builders[builder]
+    if slaves:
+      # Only the subset of slaves connected to the builder.
+      builder_slaves = list(set(slaves).intersection(set(builder.slaves.names)))
+      if not builder_slaves:
+        continue
+    else:
+      builder_slaves = builder.slaves.names
+
+    if not no_cache and len(builder.slaves) > 2:
+      # Unless you just want the last few builds, it's often faster to
+      # fetch the whole thing at once, at the cost of a small hickup on
+      # the buildbot.
+      # TODO(maruel): Cache only N last builds or all builds since
+      # datetime.
+      builder.builds.cache()
+
+    found = []
+    for build in builder.builds:
+      if build.slave.name not in builder_slaves or build.slave.name in found:
+        continue
+      # Only add the slave for the first completed build but still look for
+      # incomplete builds.
+      if build.completed:
+        found.append(build.slave.name)
+
+      if steps:
+        if any(build.steps[step].simplified_result is False for step in steps):
+          yield build
+      elif build.simplified_result is False:
+        yield build
+
+      if len(found) == len(builder_slaves):
+        # Found all the slaves, quit.
+        break
+
+
+@need_buildbot
+def CMDlast_failure(parser, args):
+  """Lists all slaves that failed on that step on their last build.
+
+  Example: to find all slaves where their last build was a compile failure,
+  run with --step compile
+  """
+  parser.add_option(
+      '-S',
+      '--step',
+      dest='steps',
+      action='append',
+      default=[],
+      help='List all slaves that failed on that step on their last build')
+  parser.add_option('-b',
+                    '--builder',
+                    dest='builders',
+                    action='append',
+                    default=[],
+                    help='Builders to filter on')
+  parser.add_option('-s',
+                    '--slave',
+                    dest='slaves',
+                    action='append',
+                    default=[],
+                    help='Slaves to filter on')
+  parser.add_option('-n',
+                    '--no_cache',
+                    action='store_true',
+                    help='Don\'t load all builds at once')
+  options, args, buildbot = parser.parse_args(args)
+  if args:
+    parser.error('Unrecognized parameters: %s' % ' '.join(args))
+  print_builders = not options.quiet and len(options.builders) != 1
+  last_builder = None
+  for build in last_failure(buildbot,
+                            builders=options.builders,
+                            slaves=options.slaves,
+                            steps=options.steps,
+                            no_cache=options.no_cache):
+
+    if print_builders and last_builder != build.builder:
+      print(build.builder.name)
+      last_builder = build.builder
+
+    if options.quiet:
+      if options.slaves:
+        print('%s: %s' % (build.builder.name, build.slave.name))
+      else:
+        print(build.slave.name)
+    else:
+      out = '%d on %s: blame:%s' % (build.number, build.slave.name,
+                                    ', '.join(build.blame))
+      if print_builders:
+        out = '  ' + out
+      print(out)
+
+      if len(options.steps) != 1:
+        for step in build.steps:
+          if step.simplified_result is False:
+            # Assume the first line is the text name anyway.
+            summary = ', '.join(step.data['text'][1:])[:40]
+            out = '  %s: "%s"' % (step.data['name'], summary)
+            if print_builders:
+              out = '  ' + out
+            print(out)
+  return 0
+
+
+@need_buildbot
+def CMDcurrent(parser, args):
+  """Lists current jobs."""
+  parser.add_option('-b',
+                    '--builder',
+                    dest='builders',
+                    action='append',
+                    default=[],
+                    help='Builders to filter on')
+  parser.add_option('--blame',
+                    action='store_true',
+                    help='Only print the blame list')
+  options, args, buildbot = parser.parse_args(args)
+  if args:
+    parser.error('Unrecognized parameters: %s' % ' '.join(args))
+  if not options.builders:
+    options.builders = buildbot.builders.keys
+
+  if options.blame:
+    blame = set()
+    for builder in options.builders:
+      for build in buildbot.builders[builder].current_builds:
+        if build.blame:
+          for blamed in build.blame:
+            blame.add(blamed)
+    print('\n'.join(blame))
+    return 0
+
+  for builder in options.builders:
+    builder = buildbot.builders[builder]
+    if not options.quiet and builder.current_builds:
+      print(builder.name)
+    for build in builder.current_builds:
+      if options.quiet:
+        print(build.slave.name)
+      else:
+        out = '%4d: slave=%10s' % (build.number, build.slave.name)
+        out += '  duration=%5d' % (build.duration or 0)
+        if build.eta:
+          out += '  eta=%5.0f' % build.eta
+        else:
+          out += '           '
+        if build.blame:
+          out += '  blame=' + ', '.join(build.blame)
+        print(out)
+
+  return 0
+
+
+@need_buildbot
+def CMDbuilds(parser, args):
+  """Lists all builds.
+
+  Example: to find all builds on a single slave, run with -b bar -s foo
+  """
+  parser.add_option('-r',
+                    '--result',
+                    type='int',
+                    help='Build result to filter on')
+  parser.add_option('-b',
+                    '--builder',
+                    dest='builders',
+                    action='append',
+                    default=[],
+                    help='Builders to filter on')
+  parser.add_option('-s',
+                    '--slave',
+                    dest='slaves',
+                    action='append',
+                    default=[],
+                    help='Slaves to filter on')
+  parser.add_option('-n',
+                    '--no_cache',
+                    action='store_true',
+                    help='Don\'t load all builds at once')
+  options, args, buildbot = parser.parse_args(args)
+  if args:
+    parser.error('Unrecognized parameters: %s' % ' '.join(args))
+  builders = options.builders or buildbot.builders.keys
+  for builder in builders:
+    builder = buildbot.builders[builder]
+    for build in builder.builds:
+      if not options.slaves or build.slave.name in options.slaves:
+        if options.quiet:
+          out = ''
+          if options.builders:
+            out += '%s/' % builder.name
+          if len(options.slaves) != 1:
+            out += '%s/' % build.slave.name
+          out += '%d  revision:%s  result:%s  blame:%s' % (
+              build.number, build.revision, build.result, ','.join(build.blame))
+          print(out)
+        else:
+          print(build)
+  return 0
+
+
+@need_buildbot
+def CMDcount(parser, args):
+  """Count the number of builds that occured during a specific period."""
+  parser.add_option('-o',
+                    '--over',
+                    type='int',
+                    help='Number of seconds to look for')
+  parser.add_option('-b',
+                    '--builder',
+                    dest='builders',
+                    action='append',
+                    default=[],
+                    help='Builders to filter on')
+  options, args, buildbot = parser.parse_args(args)
+  if args:
+    parser.error('Unrecognized parameters: %s' % ' '.join(args))
+  if not options.over:
+    parser.error(
+        'Specify the number of seconds, e.g. --over 86400 for the last 24 '
+        'hours')
+  builders = options.builders or buildbot.builders.keys
+  counts = {}
+  since = time.time() - options.over
+  for builder in builders:
+    builder = buildbot.builders[builder]
+    counts[builder.name] = 0
+    if not options.quiet:
+      print(builder.name)
+    for build in builder.builds.iterall():
+      try:
+        start_time = build.start_time
+      except urllib2.HTTPError:
+        # The build was probably trimmed.
+        print('Failed to fetch build %s/%d' % (builder.name, build.number),
+              file=sys.stderr)
+        continue
+      if start_time >= since:
+        counts[builder.name] += 1
+      else:
+        break
+    if not options.quiet:
+      print('.. %d' % counts[builder.name])
+
+  align_name = max(len(b) for b in counts)
+  align_number = max(len(str(c)) for c in counts.itervalues())
+  for builder in sorted(counts):
+    print('%*s: %*d' % (align_name, builder, align_number, counts[builder]))
+  print('Total: %d' % sum(counts.itervalues()))
+  return 0
+
+
+def gen_parser():
+  """Returns an OptionParser instance with default options.
+
+  It should be then processed with gen_usage() before being used.
+  """
+  parser = optparse.OptionParser(version=__version__)
+  # Remove description formatting
+  parser.format_description = lambda x: parser.description
+  # Add common parsing.
+  old_parser_args = parser.parse_args
+
+  def Parse(*args, **kwargs):
+    options, args = old_parser_args(*args, **kwargs)
+    if options.verbose >= 2:
+      logging.basicConfig(level=logging.DEBUG)
+    elif options.verbose:
+      logging.basicConfig(level=logging.INFO)
+    else:
+      logging.basicConfig(level=logging.WARNING)
+    return options, args
+
+  parser.parse_args = Parse
+
+  parser.add_option('-v',
+                    '--verbose',
+                    action='count',
+                    help='Use multiple times to increase logging leve')
+  parser.add_option(
+      '-q',
+      '--quiet',
+      action='store_true',
+      help='Reduces the output to be parsed by scripts, independent of -v')
+  parser.add_option('--throttle',
+                    type='float',
+                    help='Minimum delay to sleep between requests')
+  return parser
+
+###############################################################################
+## Generic subcommand handling code
+
+
+def Command(name):
+  return getattr(sys.modules[__name__], 'CMD' + name, None)
+
+
+@usage('<command>')
+def CMDhelp(parser, args):
+  """Print list of commands or use 'help <command>'."""
+  _, args = parser.parse_args(args)
+  if len(args) == 1:
+    return main(args + ['--help'])
+  parser.print_help()
+  return 0
+
+
+def gen_usage(parser, command):
+  """Modifies an OptionParser object with the command's documentation.
+
+  The documentation is taken from the function's docstring.
+  """
+  obj = Command(command)
+  more = getattr(obj, 'func_usage_more')
+  # OptParser.description prefer nicely non-formatted strings.
+  parser.description = obj.__doc__ + '\n'
+  parser.set_usage('usage: %%prog %s %s' % (command, more))
+
+
+def main(args=None):
+  # Do it late so all commands are listed.
+  # pylint: disable=E1101
+  CMDhelp.__doc__ += '\n\nCommands are:\n' + '\n'.join(
+      '  %-12s %s' % (fn[3:], Command(fn[3:]).__doc__.split('\n', 1)[0])
+      for fn in dir(sys.modules[__name__]) if fn.startswith('CMD'))
+
+  parser = gen_parser()
+  if args is None:
+    args = sys.argv[1:]
+  if args:
+    command = Command(args[0])
+    if command:
+      # "fix" the usage and the description now that we know the subcommand.
+      gen_usage(parser, args[0])
+      return command(parser, args[1:])
+
+  # Not a known command. Default to help.
+  gen_usage(parser, 'help')
+  return CMDhelp(parser, args)
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/cros_utils/buildbot_utils.py b/cros_utils/buildbot_utils.py
new file mode 100644
index 0000000..d140355
--- /dev/null
+++ b/cros_utils/buildbot_utils.py
@@ -0,0 +1,385 @@
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Utilities for launching and accessing ChromeOS buildbots."""
+
+from __future__ import print_function
+
+import base64
+import json
+import os
+import time
+import urllib2
+
+# pylint: disable=no-name-in-module
+from oauth2client.service_account import ServiceAccountCredentials
+
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import buildbot_json
+
+INITIAL_SLEEP_TIME = 7200  # 2 hours; wait time before polling buildbot.
+SLEEP_TIME = 600  # 10 minutes; time between polling of buildbot.
+TIME_OUT = 28800  # Decide the build is dead or will never finish
+# after this time (8 hours).
+OK_STATUS = [  # List of result status values that are 'ok'.
+    # This was obtained from:
+    #   https://chromium.googlesource.com/chromium/tools/build/+/
+    #       master/third_party/buildbot_8_4p1/buildbot/status/results.py
+    0,  # "success"
+    1,  # "warnings"
+    6,  # "retry"
+]
+
+
+class BuildbotTimeout(Exception):
+  """Exception to throw when a buildbot operation timesout."""
+  pass
+
+
+def ParseReportLog(url, build):
+  """Scrape the trybot image name off the Reports log page.
+
+  This takes the URL for a trybot Reports Stage web page,
+  and a trybot build type, such as 'daisy-release'.  It
+  opens the web page and parses it looking for the trybot
+  artifact name (e.g. something like
+  'trybot-daisy-release/R40-6394.0.0-b1389'). It returns the
+  artifact name, if found.
+  """
+  trybot_image = ''
+  url += '/text'
+  newurl = url.replace('uberchromegw', 'chromegw')
+  webpage = urllib2.urlopen(newurl)
+  data = webpage.read()
+  lines = data.split('\n')
+  for l in lines:
+    if l.find('Artifacts') > 0 and l.find('trybot') > 0:
+      trybot_name = 'trybot-%s' % build
+      start_pos = l.find(trybot_name)
+      end_pos = l.find('@https://storage')
+      trybot_image = l[start_pos:end_pos]
+
+  return trybot_image
+
+
+def GetBuildData(buildbot_queue, build_id):
+  """Find the Reports stage web page for a trybot build.
+
+  This takes the name of a buildbot_queue, such as 'daisy-release'
+  and a build id (the build number), and uses the json buildbot api to
+  find the Reports stage web page for that build, if it exists.
+  """
+  builder = buildbot_json.Buildbot(
+      'http://chromegw/p/tryserver.chromiumos/').builders[buildbot_queue]
+  build_data = builder.builds[build_id].data
+  logs = build_data['logs']
+  for l in logs:
+    fname = l[1]
+    if 'steps/Report/' in fname:
+      return fname
+
+  return ''
+
+
+def FindBuildRecordFromLog(description, build_info):
+  """Find the right build record in the build logs.
+
+  Get the first build record from build log with a reason field
+  that matches 'description'. ('description' is a special tag we
+  created when we launched the buildbot, so we could find it at this
+  point.)
+  """
+  for build_log in build_info:
+    if description in build_log['reason']:
+      return build_log
+  return {}
+
+
+def GetBuildInfo(file_dir, waterfall_builder):
+  """Get all the build records for the trybot builds."""
+
+  builder = ''
+  if waterfall_builder.endswith('-release'):
+    builder = 'release'
+  elif waterfall_builder.endswith('-gcc-toolchain'):
+    builder = 'gcc_toolchain'
+  elif waterfall_builder.endswith('-llvm-toolchain'):
+    builder = 'llvm_toolchain'
+  elif waterfall_builder.endswith('-llvm-next-toolchain'):
+    builder = 'llvm_next_toolchain'
+
+  sa_file = os.path.expanduser(
+      os.path.join(file_dir, 'cros_utils',
+                   'chromeos-toolchain-credentials.json'))
+  scopes = ['https://www.googleapis.com/auth/userinfo.email']
+
+  credentials = ServiceAccountCredentials.from_json_keyfile_name(
+      sa_file, scopes=scopes)
+  url = (
+      'https://luci-milo.appspot.com/prpc/milo.Buildbot/GetBuildbotBuildsJSON')
+
+  # NOTE: If we want to get build logs for the main waterfall builders, the
+  # 'master' field below should be 'chromeos' instead of 'chromiumos.tryserver'.
+  # Builder would be 'amd64-gcc-toolchain' or 'arm-llvm-toolchain', etc.
+
+  body = json.dumps({
+      'master': 'chromiumos.tryserver',
+      'builder': builder,
+      'include_current': True,
+      'limit': 100
+  })
+  access_token = credentials.get_access_token()
+  headers = {
+      'Accept': 'application/json',
+      'Content-Type': 'application/json',
+      'Authorization': 'Bearer %s' % access_token.access_token
+  }
+  r = urllib2.Request(url, body, headers)
+  u = urllib2.urlopen(r, timeout=60)
+  u.read(4)
+  o = json.load(u)
+  data = [base64.b64decode(item['data']) for item in o['builds']]
+  result = []
+  for d in data:
+    tmp = json.loads(d)
+    result.append(tmp)
+  return result
+
+
+def FindArchiveImage(chromeos_root, build, build_id):
+  """Returns name of the trybot artifact for board/build_id."""
+  ce = command_executer.GetCommandExecuter()
+  command = ('gsutil ls gs://chromeos-image-archive/trybot-%s/*b%s'
+             '/chromiumos_test_image.tar.xz' % (build, build_id))
+  _, out, _ = ce.ChrootRunCommandWOutput(
+      chromeos_root, command, print_to_console=False)
+  #
+  # If build_id is not unique, there may be multiple archive images
+  # to choose from; sort them & pick the first (newest).
+  #
+  # If there are multiple archive images found, out will look something
+  # like this:
+  #
+  # 'gs://.../R35-5692.0.0-b105/chromiumos_test_image.tar.xz
+  #  gs://.../R46-7339.0.0-b105/chromiumos_test_image.tar.xz'
+  #
+  out = out.rstrip('\n')
+  tmp_list = out.split('\n')
+  # After stripping the final '\n' and splitting on any other '\n', we get
+  # something like this:
+  #  tmp_list = [ 'gs://.../R35-5692.0.0-b105/chromiumos_test_image.tar.xz' ,
+  #               'gs://.../R46-7339.0.0-b105/chromiumos_test_image.tar.xz' ]
+  #
+  #  If we sort this in descending order, we should end up with the most
+  #  recent test image first, so that's what we do here.
+  #
+  if len(tmp_list) > 1:
+    tmp_list = sorted(tmp_list, reverse=True)
+  out = tmp_list[0]
+
+  trybot_image = ''
+  trybot_name = 'trybot-%s' % build
+  if out and out.find(trybot_name) > 0:
+    start_pos = out.find(trybot_name)
+    end_pos = out.find('/chromiumos_test_image')
+    trybot_image = out[start_pos:end_pos]
+
+  return trybot_image
+
+
+def GetTrybotImage(chromeos_root,
+                   buildbot_name,
+                   patch_list,
+                   build_tag,
+                   other_flags=None,
+                   build_toolchain=False,
+                   async=False):
+  """Launch buildbot and get resulting trybot artifact name.
+
+  This function launches a buildbot with the appropriate flags to
+  build the test ChromeOS image, with the current ToT mobile compiler.  It
+  checks every 10 minutes to see if the trybot has finished.  When the trybot
+  has finished, it parses the resulting report logs to find the trybot
+  artifact (if one was created), and returns that artifact name.
+
+  chromeos_root is the path to the ChromeOS root, needed for finding chromite
+  and launching the buildbot.
+
+  buildbot_name is the name of the buildbot queue, such as lumpy-release or
+  daisy-paladin.
+
+  patch_list a python list of the patches, if any, for the buildbot to use.
+
+  build_tag is a (unique) string to be used to look up the buildbot results
+  from among all the build records.
+  """
+  ce = command_executer.GetCommandExecuter()
+  cbuildbot_path = os.path.join(chromeos_root, 'chromite/cbuildbot')
+  base_dir = os.getcwd()
+  patch_arg = ''
+  if patch_list:
+    for p in patch_list:
+      patch_arg = patch_arg + ' -g ' + repr(p)
+  toolchain_flags = ''
+  if build_toolchain:
+    toolchain_flags += '--latest-toolchain'
+  os.chdir(cbuildbot_path)
+  if other_flags:
+    optional_flags = ' '.join(other_flags)
+  else:
+    optional_flags = ''
+
+  # Launch buildbot with appropriate flags.
+  build = buildbot_name
+  description = build_tag
+  command_prefix = ''
+  if not patch_arg:
+    command_prefix = 'yes | '
+  command = ('%s ./cbuildbot --remote --nochromesdk %s'
+             ' --remote-description=%s %s %s %s' % (command_prefix,
+                                                    optional_flags, description,
+                                                    toolchain_flags, patch_arg,
+                                                    build))
+  _, out, _ = ce.RunCommandWOutput(command)
+  if 'Tryjob submitted!' not in out:
+    logger.GetLogger().LogFatal('Error occurred while launching trybot job: '
+                                '%s' % command)
+
+  os.chdir(base_dir)
+
+  build_id = 0
+  build_status = None
+  # Wait for  buildbot to finish running (check every 10 minutes).  Wait
+  # 10 minutes before the first check to give the buildbot time to launch
+  # (so we don't start looking for build data before it's out there).
+  time.sleep(SLEEP_TIME)
+  done = False
+  pending = True
+  # pending_time is the time between when we submit the job and when the
+  # buildbot actually launches the build.  running_time is the time between
+  # when the buildbot job launches and when it finishes.  The job is
+  # considered 'pending' until we can find an entry for it in the buildbot
+  # logs.
+  pending_time = SLEEP_TIME
+  running_time = 0
+  long_slept = False
+  while not done:
+    done = True
+    build_info = GetBuildInfo(base_dir, build)
+    if not build_info:
+      if pending_time > TIME_OUT:
+        logger.GetLogger().LogFatal('Unable to get build logs for target %s.' %
+                                    build)
+      else:
+        pending_message = 'Unable to find build log; job may be pending.'
+        done = False
+
+    if done:
+      data_dict = FindBuildRecordFromLog(description, build_info)
+      if not data_dict:
+        # Trybot job may be pending (not actually launched yet).
+        if pending_time > TIME_OUT:
+          logger.GetLogger().LogFatal('Unable to find build record for trybot'
+                                      ' %s.' % description)
+        else:
+          pending_message = 'Unable to find build record; job may be pending.'
+          done = False
+
+      else:
+        # Now that we have actually found the entry for the build
+        # job in the build log, we know the job is actually
+        # runnning, not pending, so we flip the 'pending' flag.  We
+        # still have to wait for the buildbot job to finish running
+        # however.
+        pending = False
+        build_id = data_dict['number']
+
+        if async:
+          # Do not wait for trybot job to finish; return immediately
+          return build_id, ' '
+
+        if not long_slept:
+          # The trybot generally takes more than 2 hours to finish.
+          # Wait two hours before polling the status.
+          long_slept = True
+          time.sleep(INITIAL_SLEEP_TIME)
+          pending_time += INITIAL_SLEEP_TIME
+        if True == data_dict['finished']:
+          build_status = data_dict['results']
+        else:
+          done = False
+
+    if not done:
+      if pending:
+        logger.GetLogger().LogOutput(pending_message)
+        logger.GetLogger().LogOutput('Current pending time: %d minutes.' %
+                                     (pending_time / 60))
+        pending_time += SLEEP_TIME
+      else:
+        logger.GetLogger().LogOutput('{0} minutes passed.'.format(running_time /
+                                                                  60))
+        logger.GetLogger().LogOutput('Sleeping {0} seconds.'.format(SLEEP_TIME))
+        running_time += SLEEP_TIME
+
+      time.sleep(SLEEP_TIME)
+      if running_time > TIME_OUT:
+        done = True
+
+  trybot_image = ''
+
+  if build.endswith('-toolchain'):
+    # For rotating testers, we don't care about their build_status
+    # result, because if any HWTest failed it will be non-zero.
+    trybot_image = FindArchiveImage(chromeos_root, build, build_id)
+  else:
+    # The nightly performance tests do not run HWTests, so if
+    # their build_status is non-zero, we do care.  In this case
+    # non-zero means the image itself probably did not build.
+    if build_status in OK_STATUS:
+      trybot_image = FindArchiveImage(chromeos_root, build, build_id)
+  if not trybot_image:
+    logger.GetLogger().LogError('Trybot job %s failed with status %d;'
+                                ' no trybot image generated.' %
+                                (description, build_status))
+
+  logger.GetLogger().LogOutput("trybot_image is '%s'" % trybot_image)
+  logger.GetLogger().LogOutput('build_status is %d' % build_status)
+  return build_id, trybot_image
+
+
+def GetGSContent(chromeos_root, path):
+  """gsutil cat path"""
+
+  ce = command_executer.GetCommandExecuter()
+  command = ('gsutil cat gs://chromeos-image-archive/%s' % path)
+  _, out, _ = ce.ChrootRunCommandWOutput(
+      chromeos_root, command, print_to_console=False)
+  return out
+
+
+def DoesImageExist(chromeos_root, build):
+  """Check if the image for the given build exists."""
+
+  ce = command_executer.GetCommandExecuter()
+  command = ('gsutil ls gs://chromeos-image-archive/%s'
+             '/chromiumos_test_image.tar.xz' % (build))
+  ret = ce.ChrootRunCommand(chromeos_root, command, print_to_console=False)
+  return not ret
+
+
+def WaitForImage(chromeos_root, build):
+  """Wait for an image to be ready."""
+
+  elapsed_time = 0
+  while elapsed_time < TIME_OUT:
+    if DoesImageExist(chromeos_root, build):
+      return
+    logger.GetLogger().LogOutput('Image %s not ready, waiting for 10 minutes' %
+                                 build)
+    time.sleep(SLEEP_TIME)
+    elapsed_time += SLEEP_TIME
+
+  logger.GetLogger().LogOutput('Image %s not found, waited for %d hours' %
+                               (build, (TIME_OUT / 3600)))
+  raise BuildbotTimeout('Timeout while waiting for image %s' % build)
diff --git a/cros_utils/chromeos-toolchain-credentials.json b/cros_utils/chromeos-toolchain-credentials.json
new file mode 100644
index 0000000..aed9a52
--- /dev/null
+++ b/cros_utils/chromeos-toolchain-credentials.json
@@ -0,0 +1,12 @@
+{
+  "type": "service_account",
+  "project_id": "chromeos-toolchain-u",
+  "private_key_id": "d0efe593ad39aad4c685273ee80e4c24bb3f2e92",
+  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC5Rm6aqSjMNrRp\ntYNc++ec79L3QZ2MxLMYKyhlgGhppVt6p/wiSvLdI19nS5TAkKMjKv71rb9DbQlG\nfQVckiY+MlADJKi29lJrwqqNDCcRgB7CL6hgDfmhWMKonZn2MwvBVROD0gi7sY+A\nipIe92jVeqG8Gvp5kOgsBxCRV5YQok8j1FxE5fIsS2sg93VS1YAzH8uPYadWb/Z5\n9uwc8U7SL0mEPjXjsLEm8Y70zovGVjv7kOLqYBMUmROLvSouG/HrZWy9uTgxFOb5\njOhxKhDcDMPVM3g8lfc0EwPUB1NxXztoST9qBJVqdzQmHpPjeDxgru0A+zaQMkWA\ne8Sn5EQrAgMBAAECggEAUnhbe1SY6G3hWLyHQLiQnHbUPWNjselMnxF25deGoqAM\nXEiyHsGl4XGBYgVurVi0hU76NnmkjWrXmhzEajRT+ZODsiJ7RxXWEkmQiUBDk7Kn\n/mAgXsFZwMw1ucCNa93E+cXY7fBsGsAq1FjaOhZ+/6eanpSTsdEix5ZNdaS7E6Op\n9zIba9EjLIvSl435+eWq0C3aU9nd1RbbRwD6vGpgG8L/r957s+AAALTqdSZGWxJX\nEC9OKT07e76qvwAsq2BoBx5vW0xmeQdZgKrA10LLDWa7UjFbwSDJIBESYtd4rYMj\nAqg5eND0bC1RrgzI+RD/10l6Vj8bBFo/403s0P5LYQKBgQDiVGVFkrw5LSy82CGC\nvSraxPriivEweMfpkp6buMbD2Je0RMR4glc1vW5m0QUJmy+ymiIHVMCmE9xNBwbS\nRyCBnrs2+3FtdnruNdcaGh6sbTlY+qJI0rEZUdbb5OhlHZF47KW66hI6sWJ1YF8O\niLQTokW8ejybprCtl1HvEHhEbwKBgQDRkD/acZrvmcnqqmorqW6mgJEkrRF/i5Th\npDo3WegXA4irX0tNqh5w+wms8r41vUZSCZYvyi0Of9LMObVdB/gA/qVzETE0p5he\ns3Skp/VK8nF53pAUd+4dKlnCvD3TOEkIq+kxuEOs2iHJcvSjmKtMgqfMK/UtieB4\n7+MaOcbyBQKBgHOUndMVyEF6rGoUBaj6abQm++hNBDa4t360fYMQrZC+P1qz85GH\nHno3LvYar/Pj6EvRIqeTxH4LjmlXuUgRQqxvHzRI2/gGlWio3hxaUmfDr5GdDNsb\nnY1MmejZ0UQyAWQ7lbcKahzHEXzXpjOJ5ExShkJmOiVSzs8Xg6QOSRzJAoGAemYs\nRWQxQFysqJlcZaASdsGFBMzo+XwHOzt2nTmv6zEvNBj2nKgOG6MkZZVqL20bk3Lx\n+3u0kVFrR8k0+t9apQoWjHywJrb0setS55EKHfo4+RtbP/lEZFiGEM1ttt6bGat/\nCoE7VcwaC9VOufbDpm5xnzjVfQGY0EocdQbmAhkCgYB/isdqeDyafawr+38fcU1r\nX2+cK5JCrEzHIwg2QN3Z56cRrqrb+kK1H3w/F7ZfrlPSmS8XMwZV73QwieoGNIYL\nie9UZqRoZSG73FzIw5mXhWWA1adFz8HpGG5wRNshnPI2liOPwhnblfadJUfXb2br\n021vPgpsxamLjHSDSmSf6Q==\n-----END PRIVATE KEY-----\n",
+  "client_email": "mobiletc-prebuild-2@chromeos-toolchain-u.iam.gserviceaccount.com",
+  "client_id": "114495086044042319417",
+  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
+  "token_uri": "https://accounts.google.com/o/oauth2/token",
+  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
+  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/mobiletc-prebuild-2%40chromeos-toolchain-u.iam.gserviceaccount.com"
+}
diff --git a/cros_utils/command_executer.py b/cros_utils/command_executer.py
new file mode 100644
index 0000000..c561451
--- /dev/null
+++ b/cros_utils/command_executer.py
@@ -0,0 +1,685 @@
+# Copyright 2011 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Utilities to run commands in outside/inside chroot and on the board."""
+
+from __future__ import print_function
+
+import getpass
+import os
+import re
+import select
+import signal
+import subprocess
+import sys
+import tempfile
+import time
+
+import logger
+import misc
+
+mock_default = False
+
+LOG_LEVEL = ('none', 'quiet', 'average', 'verbose')
+
+
+def InitCommandExecuter(mock=False):
+  # pylint: disable=global-statement
+  global mock_default
+  # Whether to default to a mock command executer or not
+  mock_default = mock
+
+
+def GetCommandExecuter(logger_to_set=None, mock=False, log_level='verbose'):
+  # If the default is a mock executer, always return one.
+  if mock_default or mock:
+    return MockCommandExecuter(log_level, logger_to_set)
+  else:
+    return CommandExecuter(log_level, logger_to_set)
+
+
+class CommandExecuter(object):
+  """Provides several methods to execute commands on several environments."""
+
+  def __init__(self, log_level, logger_to_set=None):
+    self.log_level = log_level
+    if log_level == 'none':
+      self.logger = None
+    else:
+      if logger_to_set is not None:
+        self.logger = logger_to_set
+      else:
+        self.logger = logger.GetLogger()
+
+  def GetLogLevel(self):
+    return self.log_level
+
+  def SetLogLevel(self, log_level):
+    self.log_level = log_level
+
+  def RunCommandGeneric(self,
+                        cmd,
+                        return_output=False,
+                        machine=None,
+                        username=None,
+                        command_terminator=None,
+                        command_timeout=None,
+                        terminated_timeout=10,
+                        print_to_console=True,
+                        except_handler=lambda p, e: None):
+    """Run a command.
+
+    Returns triplet (returncode, stdout, stderr).
+    """
+
+    cmd = str(cmd)
+
+    if self.log_level == 'quiet':
+      print_to_console = False
+
+    if self.log_level == 'verbose':
+      self.logger.LogCmd(cmd, machine, username, print_to_console)
+    elif self.logger:
+      self.logger.LogCmdToFileOnly(cmd, machine, username)
+    if command_terminator and command_terminator.IsTerminated():
+      if self.logger:
+        self.logger.LogError('Command was terminated!', print_to_console)
+      return (1, '', '')
+
+    if machine is not None:
+      user = ''
+      if username is not None:
+        user = username + '@'
+      cmd = "ssh -t -t %s%s -- '%s'" % (user, machine, cmd)
+
+    # We use setsid so that the child will have a different session id
+    # and we can easily kill the process group. This is also important
+    # because the child will be disassociated from the parent terminal.
+    # In this way the child cannot mess the parent's terminal.
+    p = None
+    try:
+      p = subprocess.Popen(cmd,
+                           stdout=subprocess.PIPE,
+                           stderr=subprocess.PIPE,
+                           shell=True,
+                           preexec_fn=os.setsid)
+
+      full_stdout = ''
+      full_stderr = ''
+
+      # Pull output from pipes, send it to file/stdout/string
+      out = err = None
+      pipes = [p.stdout, p.stderr]
+
+      my_poll = select.poll()
+      my_poll.register(p.stdout, select.POLLIN)
+      my_poll.register(p.stderr, select.POLLIN)
+
+      terminated_time = None
+      started_time = time.time()
+
+      while len(pipes):
+        if command_terminator and command_terminator.IsTerminated():
+          os.killpg(os.getpgid(p.pid), signal.SIGTERM)
+          if self.logger:
+            self.logger.LogError('Command received termination request. '
+                                 'Killed child process group.',
+                                 print_to_console)
+          break
+
+        l = my_poll.poll(100)
+        for (fd, _) in l:
+          if fd == p.stdout.fileno():
+            out = os.read(p.stdout.fileno(), 16384)
+            if return_output:
+              full_stdout += out
+            if self.logger:
+              self.logger.LogCommandOutput(out, print_to_console)
+            if out == '':
+              pipes.remove(p.stdout)
+              my_poll.unregister(p.stdout)
+          if fd == p.stderr.fileno():
+            err = os.read(p.stderr.fileno(), 16384)
+            if return_output:
+              full_stderr += err
+            if self.logger:
+              self.logger.LogCommandError(err, print_to_console)
+            if err == '':
+              pipes.remove(p.stderr)
+              my_poll.unregister(p.stderr)
+
+        if p.poll() is not None:
+          if terminated_time is None:
+            terminated_time = time.time()
+          elif (terminated_timeout is not None and
+                time.time() - terminated_time > terminated_timeout):
+            if self.logger:
+              self.logger.LogWarning('Timeout of %s seconds reached since '
+                                     'process termination.' %
+                                     terminated_timeout,
+                                     print_to_console)
+            break
+
+        if (command_timeout is not None and
+            time.time() - started_time > command_timeout):
+          os.killpg(os.getpgid(p.pid), signal.SIGTERM)
+          if self.logger:
+            self.logger.LogWarning('Timeout of %s seconds reached since process'
+                                   'started. Killed child process group.' %
+                                   command_timeout, print_to_console)
+          break
+
+        if out == err == '':
+          break
+
+      p.wait()
+      if return_output:
+        return (p.returncode, full_stdout, full_stderr)
+      return (p.returncode, '', '')
+    except BaseException as e:
+      except_handler(p, e)
+      raise
+
+  def RunCommand(self, *args, **kwargs):
+    """Run a command.
+
+    Takes the same arguments as RunCommandGeneric except for return_output.
+    Returns a single value returncode.
+    """
+    # Make sure that args does not overwrite 'return_output'
+    assert len(args) <= 1
+    assert 'return_output' not in kwargs
+    kwargs['return_output'] = False
+    return self.RunCommandGeneric(*args, **kwargs)[0]
+
+  def RunCommandWExceptionCleanup(self, *args, **kwargs):
+    """Run a command and kill process if exception is thrown.
+
+    Takes the same arguments as RunCommandGeneric except for except_handler.
+    Returns same as RunCommandGeneric.
+    """
+
+    def KillProc(proc, _):
+      if proc:
+        os.killpg(os.getpgid(proc.pid), signal.SIGTERM)
+
+    # Make sure that args does not overwrite 'except_handler'
+    assert len(args) <= 8
+    assert 'except_handler' not in kwargs
+    kwargs['except_handler'] = KillProc
+    return self.RunCommandGeneric(*args, **kwargs)
+
+  def RunCommandWOutput(self, *args, **kwargs):
+    """Run a command.
+
+    Takes the same arguments as RunCommandGeneric except for return_output.
+    Returns a triplet (returncode, stdout, stderr).
+    """
+    # Make sure that args does not overwrite 'return_output'
+    assert len(args) <= 1
+    assert 'return_output' not in kwargs
+    kwargs['return_output'] = True
+    return self.RunCommandGeneric(*args, **kwargs)
+
+  def RemoteAccessInitCommand(self, chromeos_root, machine):
+    command = ''
+    command += '\nset -- --remote=' + machine
+    command += '\n. ' + chromeos_root + '/src/scripts/common.sh'
+    command += '\n. ' + chromeos_root + '/src/scripts/remote_access.sh'
+    command += '\nTMP=$(mktemp -d)'
+    command += "\nFLAGS \"$@\" || exit 1"
+    command += '\nremote_access_init'
+    return command
+
+  def WriteToTempShFile(self, contents):
+    handle, command_file = tempfile.mkstemp(prefix=os.uname()[1], suffix='.sh')
+    os.write(handle, '#!/bin/bash\n')
+    os.write(handle, contents)
+    os.close(handle)
+    return command_file
+
+  def CrosLearnBoard(self, chromeos_root, machine):
+    command = self.RemoteAccessInitCommand(chromeos_root, machine)
+    command += '\nlearn_board'
+    command += '\necho ${FLAGS_board}'
+    retval, output, _ = self.RunCommandWOutput(command)
+    if self.logger:
+      self.logger.LogFatalIf(retval, 'learn_board command failed')
+    elif retval:
+      sys.exit(1)
+    return output.split()[-1]
+
+  def CrosRunCommandGeneric(self,
+                            cmd,
+                            return_output=False,
+                            machine=None,
+                            command_terminator=None,
+                            chromeos_root=None,
+                            command_timeout=None,
+                            terminated_timeout=10,
+                            print_to_console=True):
+    """Run a command on a ChromeOS box.
+
+    Returns triplet (returncode, stdout, stderr).
+    """
+
+    if self.log_level != 'verbose':
+      print_to_console = False
+
+    if self.logger:
+      self.logger.LogCmd(cmd, print_to_console=print_to_console)
+      self.logger.LogFatalIf(not machine, 'No machine provided!')
+      self.logger.LogFatalIf(not chromeos_root, 'chromeos_root not given!')
+    else:
+      if not chromeos_root or not machine:
+        sys.exit(1)
+    chromeos_root = os.path.expanduser(chromeos_root)
+
+    # Write all commands to a file.
+    command_file = self.WriteToTempShFile(cmd)
+    retval = self.CopyFiles(command_file,
+                            command_file,
+                            dest_machine=machine,
+                            command_terminator=command_terminator,
+                            chromeos_root=chromeos_root,
+                            dest_cros=True,
+                            recursive=False,
+                            print_to_console=print_to_console)
+    if retval:
+      if self.logger:
+        self.logger.LogError('Could not run remote command on machine.'
+                             ' Is the machine up?')
+      return (retval, '', '')
+
+    command = self.RemoteAccessInitCommand(chromeos_root, machine)
+    command += '\nremote_sh bash %s' % command_file
+    command += "\nl_retval=$?; echo \"$REMOTE_OUT\"; exit $l_retval"
+    retval = self.RunCommandGeneric(command,
+                                    return_output,
+                                    command_terminator=command_terminator,
+                                    command_timeout=command_timeout,
+                                    terminated_timeout=terminated_timeout,
+                                    print_to_console=print_to_console)
+    if return_output:
+      connect_signature = (
+          'Initiating first contact with remote host\n' + 'Connection OK\n')
+      connect_signature_re = re.compile(connect_signature)
+      modded_retval = list(retval)
+      modded_retval[1] = connect_signature_re.sub('', retval[1])
+      return modded_retval
+    return retval
+
+  def CrosRunCommand(self, *args, **kwargs):
+    """Run a command on a ChromeOS box.
+
+    Takes the same arguments as CrosRunCommandGeneric except for return_output.
+    Returns a single value returncode.
+    """
+    # Make sure that args does not overwrite 'return_output'
+    assert len(args) <= 1
+    assert 'return_output' not in kwargs
+    kwargs['return_output'] = False
+    return self.CrosRunCommandGeneric(*args, **kwargs)[0]
+
+  def CrosRunCommandWOutput(self, *args, **kwargs):
+    """Run a command on a ChromeOS box.
+
+    Takes the same arguments as CrosRunCommandGeneric except for return_output.
+    Returns a triplet (returncode, stdout, stderr).
+    """
+    # Make sure that args does not overwrite 'return_output'
+    assert len(args) <= 1
+    assert 'return_output' not in kwargs
+    kwargs['return_output'] = True
+    return self.CrosRunCommandGeneric(*args, **kwargs)
+
+  def ChrootRunCommandGeneric(self,
+                              chromeos_root,
+                              command,
+                              return_output=False,
+                              command_terminator=None,
+                              command_timeout=None,
+                              terminated_timeout=10,
+                              print_to_console=True,
+                              cros_sdk_options=''):
+    """Runs a command within the chroot.
+
+    Returns triplet (returncode, stdout, stderr).
+    """
+
+    if self.log_level != 'verbose':
+      print_to_console = False
+
+    if self.logger:
+      self.logger.LogCmd(command, print_to_console=print_to_console)
+
+    handle, command_file = tempfile.mkstemp(
+        dir=os.path.join(chromeos_root, 'src/scripts'),
+        suffix='.sh',
+        prefix='in_chroot_cmd')
+    os.write(handle, '#!/bin/bash\n')
+    os.write(handle, command)
+    os.write(handle, '\n')
+    os.close(handle)
+
+    os.chmod(command_file, 0777)
+
+    # if return_output is set, run a dummy command first to make sure that
+    # the chroot already exists. We want the final returned output to skip
+    # the output from chroot creation steps.
+    if return_output:
+      ret = self.RunCommand('cd %s; cros_sdk %s -- true' %
+                            (chromeos_root, cros_sdk_options))
+      if ret:
+        return (ret, '', '')
+
+    # Run command_file inside the chroot, making sure that any "~" is expanded
+    # by the shell inside the chroot, not outside.
+    command = ("cd %s; cros_sdk %s -- bash -c '%s/%s'" %
+               (chromeos_root, cros_sdk_options, misc.CHROMEOS_SCRIPTS_DIR,
+                os.path.basename(command_file)))
+    ret = self.RunCommandGeneric(command,
+                                 return_output,
+                                 command_terminator=command_terminator,
+                                 command_timeout=command_timeout,
+                                 terminated_timeout=terminated_timeout,
+                                 print_to_console=print_to_console)
+    os.remove(command_file)
+    return ret
+
+  def ChrootRunCommand(self, *args, **kwargs):
+    """Runs a command within the chroot.
+
+    Takes the same arguments as ChrootRunCommandGeneric except for
+    return_output.
+    Returns a single value returncode.
+    """
+    # Make sure that args does not overwrite 'return_output'
+    assert len(args) <= 2
+    assert 'return_output' not in kwargs
+    kwargs['return_output'] = False
+    return self.ChrootRunCommandGeneric(*args, **kwargs)[0]
+
+  def ChrootRunCommandWOutput(self, *args, **kwargs):
+    """Runs a command within the chroot.
+
+    Takes the same arguments as ChrootRunCommandGeneric except for
+    return_output.
+    Returns a triplet (returncode, stdout, stderr).
+    """
+    # Make sure that args does not overwrite 'return_output'
+    assert len(args) <= 2
+    assert 'return_output' not in kwargs
+    kwargs['return_output'] = True
+    return self.ChrootRunCommandGeneric(*args, **kwargs)
+
+  def RunCommands(self,
+                  cmdlist,
+                  machine=None,
+                  username=None,
+                  command_terminator=None):
+    cmd = ' ;\n'.join(cmdlist)
+    return self.RunCommand(cmd,
+                           machine=machine,
+                           username=username,
+                           command_terminator=command_terminator)
+
+  def CopyFiles(self,
+                src,
+                dest,
+                src_machine=None,
+                dest_machine=None,
+                src_user=None,
+                dest_user=None,
+                recursive=True,
+                command_terminator=None,
+                chromeos_root=None,
+                src_cros=False,
+                dest_cros=False,
+                print_to_console=True):
+    src = os.path.expanduser(src)
+    dest = os.path.expanduser(dest)
+
+    if recursive:
+      src = src + '/'
+      dest = dest + '/'
+
+    if src_cros == True or dest_cros == True:
+      if self.logger:
+        self.logger.LogFatalIf(src_cros == dest_cros,
+                               'Only one of src_cros and desc_cros can '
+                               'be True.')
+        self.logger.LogFatalIf(not chromeos_root, 'chromeos_root not given!')
+      elif src_cros == dest_cros or not chromeos_root:
+        sys.exit(1)
+      if src_cros == True:
+        cros_machine = src_machine
+      else:
+        cros_machine = dest_machine
+
+      command = self.RemoteAccessInitCommand(chromeos_root, cros_machine)
+      ssh_command = (
+          'ssh -p ${FLAGS_ssh_port}' + ' -o StrictHostKeyChecking=no' +
+          ' -o UserKnownHostsFile=$(mktemp)' + ' -i $TMP_PRIVATE_KEY')
+      rsync_prefix = "\nrsync -r -e \"%s\" " % ssh_command
+      if dest_cros == True:
+        command += rsync_prefix + '%s root@%s:%s' % (src, dest_machine, dest)
+        return self.RunCommand(command,
+                               machine=src_machine,
+                               username=src_user,
+                               command_terminator=command_terminator,
+                               print_to_console=print_to_console)
+      else:
+        command += rsync_prefix + 'root@%s:%s %s' % (src_machine, src, dest)
+        return self.RunCommand(command,
+                               machine=dest_machine,
+                               username=dest_user,
+                               command_terminator=command_terminator,
+                               print_to_console=print_to_console)
+
+    if dest_machine == src_machine:
+      command = 'rsync -a %s %s' % (src, dest)
+    else:
+      if src_machine is None:
+        src_machine = os.uname()[1]
+        src_user = getpass.getuser()
+      command = 'rsync -a %s@%s:%s %s' % (src_user, src_machine, src, dest)
+    return self.RunCommand(command,
+                           machine=dest_machine,
+                           username=dest_user,
+                           command_terminator=command_terminator,
+                           print_to_console=print_to_console)
+
+  def RunCommand2(self,
+                  cmd,
+                  cwd=None,
+                  line_consumer=None,
+                  timeout=None,
+                  shell=True,
+                  join_stderr=True,
+                  env=None,
+                  except_handler=lambda p, e: None):
+    """Run the command with an extra feature line_consumer.
+
+    This version allow developers to provide a line_consumer which will be
+    fed execution output lines.
+
+    A line_consumer is a callback, which is given a chance to run for each
+    line the execution outputs (either to stdout or stderr). The
+    line_consumer must accept one and exactly one dict argument, the dict
+    argument has these items -
+      'line'   -  The line output by the binary. Notice, this string includes
+                  the trailing '\n'.
+      'output' -  Whether this is a stdout or stderr output, values are either
+                  'stdout' or 'stderr'. When join_stderr is True, this value
+                  will always be 'output'.
+      'pobject' - The object used to control execution, for example, call
+                  pobject.kill().
+
+    Note: As this is written, the stdin for the process executed is
+    not associated with the stdin of the caller of this routine.
+
+    Args:
+      cmd: Command in a single string.
+      cwd: Working directory for execution.
+      line_consumer: A function that will ba called by this function. See above
+        for details.
+      timeout: terminate command after this timeout.
+      shell: Whether to use a shell for execution.
+      join_stderr: Whether join stderr to stdout stream.
+      env: Execution environment.
+      except_handler: Callback for when exception is thrown during command
+        execution. Passed process object and exception.
+
+    Returns:
+      Execution return code.
+
+    Raises:
+      child_exception: if fails to start the command process (missing
+                       permission, no such file, etc)
+    """
+
+    class StreamHandler(object):
+      """Internal utility class."""
+
+      def __init__(self, pobject, fd, name, line_consumer):
+        self._pobject = pobject
+        self._fd = fd
+        self._name = name
+        self._buf = ''
+        self._line_consumer = line_consumer
+
+      def read_and_notify_line(self):
+        t = os.read(fd, 1024)
+        self._buf = self._buf + t
+        self.notify_line()
+
+      def notify_line(self):
+        p = self._buf.find('\n')
+        while p >= 0:
+          self._line_consumer(line=self._buf[:p + 1],
+                              output=self._name,
+                              pobject=self._pobject)
+          if p < len(self._buf) - 1:
+            self._buf = self._buf[p + 1:]
+            p = self._buf.find('\n')
+          else:
+            self._buf = ''
+            p = -1
+            break
+
+      def notify_eos(self):
+        # Notify end of stream. The last line may not end with a '\n'.
+        if self._buf != '':
+          self._line_consumer(line=self._buf,
+                              output=self._name,
+                              pobject=self._pobject)
+          self._buf = ''
+
+    if self.log_level == 'verbose':
+      self.logger.LogCmd(cmd)
+    elif self.logger:
+      self.logger.LogCmdToFileOnly(cmd)
+
+    # We use setsid so that the child will have a different session id
+    # and we can easily kill the process group. This is also important
+    # because the child will be disassociated from the parent terminal.
+    # In this way the child cannot mess the parent's terminal.
+    pobject = None
+    try:
+      pobject = subprocess.Popen(
+          cmd,
+          cwd=cwd,
+          bufsize=1024,
+          env=env,
+          shell=shell,
+          universal_newlines=True,
+          stdout=subprocess.PIPE,
+          stderr=subprocess.STDOUT if join_stderr else subprocess.PIPE,
+          preexec_fn=os.setsid)
+
+      # We provide a default line_consumer
+      if line_consumer is None:
+        line_consumer = lambda **d: None
+      start_time = time.time()
+      poll = select.poll()
+      outfd = pobject.stdout.fileno()
+      poll.register(outfd, select.POLLIN | select.POLLPRI)
+      handlermap = {outfd:
+                    StreamHandler(pobject, outfd, 'stdout', line_consumer)}
+      if not join_stderr:
+        errfd = pobject.stderr.fileno()
+        poll.register(errfd,
+                      select.POLLIN | select.POLLPRI)
+        handlermap[errfd] = StreamHandler(pobject,
+                                          errfd,
+                                          'stderr',
+                                          line_consumer)
+      while len(handlermap):
+        readables = poll.poll(300)
+        for (fd, evt) in readables:
+          handler = handlermap[fd]
+          if evt & (select.POLLPRI | select.POLLIN):
+            handler.read_and_notify_line()
+          elif evt & (select.POLLHUP | select.POLLERR | select.POLLNVAL):
+            handler.notify_eos()
+            poll.unregister(fd)
+            del handlermap[fd]
+
+        if timeout is not None and (time.time() - start_time > timeout):
+          os.killpg(os.getpgid(pobject.pid), signal.SIGTERM)
+
+      return pobject.wait()
+    except BaseException as e:
+      except_handler(pobject, e)
+      raise
+
+
+class MockCommandExecuter(CommandExecuter):
+  """Mock class for class CommandExecuter."""
+
+  def __init__(self, log_level, logger_to_set=None):
+    super(MockCommandExecuter, self).__init__(log_level, logger_to_set)
+
+  def RunCommandGeneric(self,
+                        cmd,
+                        return_output=False,
+                        machine=None,
+                        username=None,
+                        command_terminator=None,
+                        command_timeout=None,
+                        terminated_timeout=10,
+                        print_to_console=True,
+                        except_handler=lambda p, e: None):
+    assert not command_timeout
+    cmd = str(cmd)
+    if machine is None:
+      machine = 'localhost'
+    if username is None:
+      username = 'current'
+    logger.GetLogger().LogCmd('(Mock) ' + cmd, machine, username,
+                              print_to_console)
+    return (0, '', '')
+
+  def RunCommand(self, *args, **kwargs):
+    assert 'return_output' not in kwargs
+    kwargs['return_output'] = False
+    return self.RunCommandGeneric(*args, **kwargs)[0]
+
+  def RunCommandWOutput(self, *args, **kwargs):
+    assert 'return_output' not in kwargs
+    kwargs['return_output'] = True
+    return self.RunCommandGeneric(*args, **kwargs)
+
+
+class CommandTerminator(object):
+  """Object to request termination of a command in execution."""
+
+  def __init__(self):
+    self.terminated = False
+
+  def Terminate(self):
+    self.terminated = True
+
+  def IsTerminated(self):
+    return self.terminated
diff --git a/cros_utils/command_executer_unittest.py b/cros_utils/command_executer_unittest.py
new file mode 100755
index 0000000..f039ebc
--- /dev/null
+++ b/cros_utils/command_executer_unittest.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python2
+"""Unittest for command_executer.py."""
+
+from __future__ import print_function
+
+import time
+import unittest
+
+import command_executer
+
+
+class CommandExecuterTest(unittest.TestCase):
+  """Test for CommandExecuter class."""
+
+  def testTimeout(self):
+    timeout = 1
+    logging_level = 'average'
+    ce = command_executer.CommandExecuter(logging_level)
+    start = time.time()
+    command = 'sleep 20'
+    ce.RunCommand(command, command_timeout=timeout, terminated_timeout=timeout)
+    end = time.time()
+    self.assertTrue(round(end - start) == timeout)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/cros_utils/constants.py b/cros_utils/constants.py
new file mode 100644
index 0000000..827e923
--- /dev/null
+++ b/cros_utils/constants.py
@@ -0,0 +1,10 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Generic constants used accross modules.
+"""
+
+__author__ = 'shenhan@google.com (Han Shen)'
+
+MOUNTED_TOOLCHAIN_ROOT = '/usr/local/toolchain_root'
+
+# Root directory for night testing run.
+CROSTC_WORKSPACE = '/usr/local/google/crostc'
diff --git a/cros_utils/email_sender.py b/cros_utils/email_sender.py
new file mode 100755
index 0000000..e5a20ad
--- /dev/null
+++ b/cros_utils/email_sender.py
@@ -0,0 +1,144 @@
+#!/usr/bin/env python2
+
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Utilities to send email either through SMTP or SendGMR."""
+
+from __future__ import print_function
+
+from email import encoders as Encoders
+from email.mime.base import MIMEBase
+from email.mime.multipart import MIMEMultipart
+from email.mime.text import MIMEText
+import os
+import smtplib
+import tempfile
+
+from cros_utils import command_executer
+
+
+class EmailSender(object):
+  """Utility class to send email through SMTP or SendGMR."""
+
+  class Attachment(object):
+    """Small class to keep track of attachment info."""
+
+    def __init__(self, name, content):
+      self.name = name
+      self.content = content
+
+  def SendEmail(self,
+                email_to,
+                subject,
+                text_to_send,
+                email_cc=None,
+                email_bcc=None,
+                email_from=None,
+                msg_type='plain',
+                attachments=None):
+    """Choose appropriate email method and call it."""
+    if os.path.exists('/usr/bin/sendgmr'):
+      self.SendGMREmail(email_to, subject, text_to_send, email_cc, email_bcc,
+                        email_from, msg_type, attachments)
+    else:
+      self.SendSMTPEmail(email_to, subject, text_to_send, email_cc, email_bcc,
+                         email_from, msg_type, attachments)
+
+  def SendSMTPEmail(self, email_to, subject, text_to_send, email_cc, email_bcc,
+                    email_from, msg_type, attachments):
+    """Send email via standard smtp mail."""
+    # Email summary to the current user.
+    msg = MIMEMultipart()
+
+    if not email_from:
+      email_from = os.path.basename(__file__)
+
+    msg['To'] = ','.join(email_to)
+    msg['Subject'] = subject
+
+    if email_from:
+      msg['From'] = email_from
+    if email_cc:
+      msg['CC'] = ','.join(email_cc)
+      email_to += email_cc
+    if email_bcc:
+      msg['BCC'] = ','.join(email_bcc)
+      email_to += email_bcc
+
+    msg.attach(MIMEText(text_to_send, msg_type))
+    if attachments:
+      for attachment in attachments:
+        part = MIMEBase('application', 'octet-stream')
+        part.set_payload(attachment.content)
+        Encoders.encode_base64(part)
+        part.add_header('Content-Disposition',
+                        "attachment; filename=\"%s\"" % attachment.name)
+        msg.attach(part)
+
+    # Send the message via our own SMTP server, but don't include the
+    # envelope header.
+    s = smtplib.SMTP('localhost')
+    s.sendmail(email_from, email_to, msg.as_string())
+    s.quit()
+
+  def SendGMREmail(self, email_to, subject, text_to_send, email_cc, email_bcc,
+                   email_from, msg_type, attachments):
+    """Send email via sendgmr program."""
+    ce = command_executer.GetCommandExecuter(log_level='none')
+
+    if not email_from:
+      email_from = os.path.basename(__file__)
+
+    to_list = ','.join(email_to)
+
+    if not text_to_send:
+      text_to_send = 'Empty message body.'
+    body_fd, body_filename = tempfile.mkstemp()
+    to_be_deleted = [body_filename]
+
+    try:
+      os.write(body_fd, text_to_send)
+      os.close(body_fd)
+
+      # Fix single-quotes inside the subject. In bash, to escape a single quote
+      # (e.g 'don't') you need to replace it with '\'' (e.g. 'don'\''t'). To
+      # make Python read the backslash as a backslash rather than an escape
+      # character, you need to double it. So...
+      subject = subject.replace("'", "'\\''")
+
+      if msg_type == 'html':
+        command = ("sendgmr --to='%s' --subject='%s' --html_file='%s' "
+                   '--body_file=/dev/null' % (to_list, subject, body_filename))
+      else:
+        command = ("sendgmr --to='%s' --subject='%s' --body_file='%s'" %
+                   (to_list, subject, body_filename))
+      if email_from:
+        command += ' --from=%s' % email_from
+      if email_cc:
+        cc_list = ','.join(email_cc)
+        command += " --cc='%s'" % cc_list
+      if email_bcc:
+        bcc_list = ','.join(email_bcc)
+        command += " --bcc='%s'" % bcc_list
+
+      if attachments:
+        attachment_files = []
+        for attachment in attachments:
+          if '<html>' in attachment.content:
+            report_suffix = '_report.html'
+          else:
+            report_suffix = '_report.txt'
+          fd, fname = tempfile.mkstemp(suffix=report_suffix)
+          os.write(fd, attachment.content)
+          os.close(fd)
+          attachment_files.append(fname)
+        files = ','.join(attachment_files)
+        command += " --attachment_files='%s'" % files
+        to_be_deleted += attachment_files
+
+      # Send the message via our own GMR server.
+      status = ce.RunCommand(command)
+      return status
+
+    finally:
+      for f in to_be_deleted:
+        os.remove(f)
diff --git a/cros_utils/file_utils.py b/cros_utils/file_utils.py
new file mode 100644
index 0000000..777e625
--- /dev/null
+++ b/cros_utils/file_utils.py
@@ -0,0 +1,87 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Utilities for operations on files."""
+
+from __future__ import print_function
+
+import errno
+import os
+import shutil
+import command_executer
+
+
+class FileUtils(object):
+  """Utilities for operations on files."""
+  _instance = None
+  DRY_RUN = False
+
+  @classmethod
+  def Configure(cls, dry_run):
+    cls.DRY_RUN = dry_run
+
+  def __new__(cls, *args, **kwargs):
+    if not cls._instance:
+      if cls.DRY_RUN:
+        cls._instance = super(FileUtils, cls).__new__(MockFileUtils, *args,
+                                                      **kwargs)
+      else:
+        cls._instance = super(FileUtils, cls).__new__(cls, *args, **kwargs)
+    return cls._instance
+
+  def Md5File(self, filename, log_level='verbose', _block_size=2**10):
+    command = 'md5sum %s' % filename
+    ce = command_executer.GetCommandExecuter(log_level=log_level)
+    ret, out, _ = ce.RunCommandWOutput(command)
+    if ret:
+      raise RuntimeError('Could not run md5sum on: %s' % filename)
+
+    return out.strip().split()[0]
+
+  def CanonicalizeChromeOSRoot(self, chromeos_root):
+    chromeos_root = os.path.expanduser(chromeos_root)
+    if os.path.isdir(os.path.join(chromeos_root, 'chromite')):
+      return chromeos_root
+    else:
+      return None
+
+  def ChromeOSRootFromImage(self, chromeos_image):
+    chromeos_root = os.path.join(
+        os.path.dirname(chromeos_image), '../../../../..')
+    return self.CanonicalizeChromeOSRoot(chromeos_root)
+
+  def MkDirP(self, path):
+    try:
+      os.makedirs(path)
+    except OSError as exc:
+      if exc.errno == errno.EEXIST:
+        pass
+      else:
+        raise
+
+  def RmDir(self, path):
+    shutil.rmtree(path, ignore_errors=True)
+
+  def WriteFile(self, path, contents):
+    with open(path, 'wb') as f:
+      f.write(contents)
+
+
+class MockFileUtils(FileUtils):
+  """Mock class for file utilities."""
+
+  def Md5File(self, filename, log_level='verbose', _block_size=2**10):
+    return 'd41d8cd98f00b204e9800998ecf8427e'
+
+  def CanonicalizeChromeOSRoot(self, chromeos_root):
+    return '/tmp/chromeos_root'
+
+  def ChromeOSRootFromImage(self, chromeos_image):
+    return '/tmp/chromeos_root'
+
+  def RmDir(self, path):
+    pass
+
+  def MkDirP(self, path):
+    pass
+
+  def WriteFile(self, path, contents):
+    pass
diff --git a/cros_utils/html_tools.py b/cros_utils/html_tools.py
new file mode 100644
index 0000000..8ca795b
--- /dev/null
+++ b/cros_utils/html_tools.py
@@ -0,0 +1,91 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Utilities for generating html."""
+
+
+def GetPageHeader(page_title):
+  return """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<style type="text/css">
+table
+{
+border-collapse:collapse;
+}
+table, td, th
+{
+border:1px solid black;
+}
+</style>
+<script type="text/javascript">
+function displayRow(id){
+  var row = document.getElementById("group_"+id);
+  if (row.style.display == '')  row.style.display = 'none';
+    else row.style.display = '';
+  }
+</script>
+<title>%s</title>
+</head>
+<body>
+
+""" % page_title
+
+
+def GetListHeader():
+  return '<ul>'
+
+
+def GetListItem(text):
+  return '<li>%s</li>' % text
+
+
+def GetListFooter():
+  return '</ul>'
+
+
+def GetList(items):
+  return '<ul>%s</ul>' % ''.join(['<li>%s</li>' % item for item in items])
+
+
+def GetParagraph(text):
+  return '<p>%s</p>' % text
+
+
+def GetFooter():
+  return '</body>\n</html>'
+
+
+def GetHeader(text, h=1):
+  return '<h%s>%s</h%s>' % (h, text, h)
+
+
+def GetTableHeader(headers):
+  row = ''.join(['<th>%s</th>' % header for header in headers])
+  return '<table><tr>%s</tr>' % row
+
+
+def GetTableFooter():
+  return '</table>'
+
+
+def FormatLineBreaks(text):
+  return text.replace('\n', '<br/>')
+
+
+def GetTableCell(text):
+  return '<td>%s</td>' % FormatLineBreaks(str(text))
+
+
+def GetTableRow(columns):
+  return '<tr>%s</tr>' % '\n'.join([GetTableCell(column) for column in columns])
+
+
+def GetTable(headers, rows):
+  table = [GetTableHeader(headers)]
+  table.extend([GetTableRow(row) for row in rows])
+  table.append(GetTableFooter())
+  return '\n'.join(table)
+
+
+def GetLink(link, text):
+  return "<a href='%s'>%s</a>" % (link, text)
diff --git a/cros_utils/locks.py b/cros_utils/locks.py
new file mode 100644
index 0000000..cb96368
--- /dev/null
+++ b/cros_utils/locks.py
@@ -0,0 +1,44 @@
+# Copyright 2015 The Chromium OS Authors. All rights reserved.
+"""Utilities for locking machines."""
+
+from __future__ import print_function
+
+import time
+
+import afe_lock_machine
+
+import logger
+
+
+def AcquireLock(machines, chromeos_root, timeout=1200):
+  """Acquire lock for machine(s) with timeout, using AFE server for locking."""
+  start_time = time.time()
+  locked = True
+  sleep_time = min(10, timeout / 10.0)
+  while True:
+    try:
+      afe_lock_machine.AFELockManager(machines, False, chromeos_root,
+                                      None).UpdateMachines(True)
+      break
+    except Exception as e:
+      if time.time() - start_time > timeout:
+        locked = False
+        logger.GetLogger().LogWarning(
+            'Could not acquire lock on {0} within {1} seconds: {2}'.format(
+                repr(machines), timeout, str(e)))
+        break
+      time.sleep(sleep_time)
+  return locked
+
+
+def ReleaseLock(machines, chromeos_root):
+  """Release locked machine(s), using AFE server for locking."""
+  unlocked = True
+  try:
+    afe_lock_machine.AFELockManager(machines, False, chromeos_root,
+                                    None).UpdateMachines(False)
+  except Exception as e:
+    unlocked = False
+    logger.GetLogger().LogWarning('Could not unlock %s. %s' %
+                                  (repr(machines), str(e)))
+  return unlocked
diff --git a/cros_utils/logger.py b/cros_utils/logger.py
new file mode 100644
index 0000000..364d9c9
--- /dev/null
+++ b/cros_utils/logger.py
@@ -0,0 +1,369 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Logging helper module."""
+
+from __future__ import print_function
+
+# System modules
+import os.path
+import sys
+import traceback
+
+
+#TODO(yunlian@google.com): Use GetRoot from misc
+def GetRoot(scr_name):
+  """Break up pathname into (dir+name)."""
+  abs_path = os.path.abspath(scr_name)
+  return (os.path.dirname(abs_path), os.path.basename(abs_path))
+
+
+class Logger(object):
+  """Logging helper class."""
+
+  MAX_LOG_FILES = 10
+
+  def __init__(self, rootdir, basefilename, print_console, subdir='logs'):
+    logdir = os.path.join(rootdir, subdir)
+    basename = os.path.join(logdir, basefilename)
+
+    try:
+      os.makedirs(logdir)
+    except OSError:
+      pass
+      # print("Warning: Logs directory '%s' already exists." % logdir)
+
+    self.print_console = print_console
+
+    self._CreateLogFileHandles(basename)
+
+    self._WriteTo(self.cmdfd, ' '.join(sys.argv), True)
+
+  def _AddSuffix(self, basename, suffix):
+    return '%s%s' % (basename, suffix)
+
+  def _FindSuffix(self, basename):
+    timestamps = []
+    found_suffix = None
+    for i in range(self.MAX_LOG_FILES):
+      suffix = str(i)
+      suffixed_basename = self._AddSuffix(basename, suffix)
+      cmd_file = '%s.cmd' % suffixed_basename
+      if not os.path.exists(cmd_file):
+        found_suffix = suffix
+        break
+      timestamps.append(os.stat(cmd_file).st_mtime)
+
+    if found_suffix:
+      return found_suffix
+
+    # Try to pick the oldest file with the suffix and return that one.
+    suffix = str(timestamps.index(min(timestamps)))
+    # print ("Warning: Overwriting log file: %s" %
+    #       self._AddSuffix(basename, suffix))
+    return suffix
+
+  def _CreateLogFileHandle(self, name):
+    fd = None
+    try:
+      fd = open(name, 'w')
+    except IOError:
+      print('Warning: could not open %s for writing.' % name)
+    return fd
+
+  def _CreateLogFileHandles(self, basename):
+    suffix = self._FindSuffix(basename)
+    suffixed_basename = self._AddSuffix(basename, suffix)
+
+    self.cmdfd = self._CreateLogFileHandle('%s.cmd' % suffixed_basename)
+    self.stdout = self._CreateLogFileHandle('%s.out' % suffixed_basename)
+    self.stderr = self._CreateLogFileHandle('%s.err' % suffixed_basename)
+
+    self._CreateLogFileSymlinks(basename, suffixed_basename)
+
+  # Symlink unsuffixed basename to currently suffixed one.
+  def _CreateLogFileSymlinks(self, basename, suffixed_basename):
+    try:
+      for extension in ['cmd', 'out', 'err']:
+        src_file = '%s.%s' % (os.path.basename(suffixed_basename), extension)
+        dest_file = '%s.%s' % (basename, extension)
+        if os.path.exists(dest_file):
+          os.remove(dest_file)
+        os.symlink(src_file, dest_file)
+    except Exception as ex:
+      print('Exception while creating symlinks: %s' % str(ex))
+
+  def _WriteTo(self, fd, msg, flush):
+    if fd:
+      fd.write(msg)
+      if flush:
+        fd.flush()
+
+  def LogStartDots(self, print_to_console=True):
+    term_fd = self._GetStdout(print_to_console)
+    if term_fd:
+      term_fd.flush()
+      term_fd.write('. ')
+      term_fd.flush()
+
+  def LogAppendDot(self, print_to_console=True):
+    term_fd = self._GetStdout(print_to_console)
+    if term_fd:
+      term_fd.write('. ')
+      term_fd.flush()
+
+  def LogEndDots(self, print_to_console=True):
+    term_fd = self._GetStdout(print_to_console)
+    if term_fd:
+      term_fd.write('\n')
+      term_fd.flush()
+
+  def LogMsg(self, file_fd, term_fd, msg, flush=True):
+    if file_fd:
+      self._WriteTo(file_fd, msg, flush)
+    if self.print_console:
+      self._WriteTo(term_fd, msg, flush)
+
+  def _GetStdout(self, print_to_console):
+    if print_to_console:
+      return sys.stdout
+    return None
+
+  def _GetStderr(self, print_to_console):
+    if print_to_console:
+      return sys.stderr
+    return None
+
+  def LogCmdToFileOnly(self, cmd, machine='', user=None):
+    if not self.cmdfd:
+      return
+
+    host = ('%s@%s' % (user, machine)) if user else machine
+    flush = True
+    cmd_string = 'CMD (%s): %s\n' % (host, cmd)
+    self._WriteTo(self.cmdfd, cmd_string, flush)
+
+  def LogCmd(self, cmd, machine='', user=None, print_to_console=True):
+    if user:
+      host = '%s@%s' % (user, machine)
+    else:
+      host = machine
+
+    self.LogMsg(self.cmdfd, self._GetStdout(print_to_console),
+                'CMD (%s): %s\n' % (host, cmd))
+
+  def LogFatal(self, msg, print_to_console=True):
+    self.LogMsg(self.stderr, self._GetStderr(print_to_console),
+                'FATAL: %s\n' % msg)
+    self.LogMsg(self.stderr, self._GetStderr(print_to_console),
+                '\n'.join(traceback.format_stack()))
+    sys.exit(1)
+
+  def LogError(self, msg, print_to_console=True):
+    self.LogMsg(self.stderr, self._GetStderr(print_to_console),
+                'ERROR: %s\n' % msg)
+
+  def LogWarning(self, msg, print_to_console=True):
+    self.LogMsg(self.stderr, self._GetStderr(print_to_console),
+                'WARNING: %s\n' % msg)
+
+  def LogOutput(self, msg, print_to_console=True):
+    self.LogMsg(self.stdout, self._GetStdout(print_to_console),
+                'OUTPUT: %s\n' % msg)
+
+  def LogFatalIf(self, condition, msg):
+    if condition:
+      self.LogFatal(msg)
+
+  def LogErrorIf(self, condition, msg):
+    if condition:
+      self.LogError(msg)
+
+  def LogWarningIf(self, condition, msg):
+    if condition:
+      self.LogWarning(msg)
+
+  def LogCommandOutput(self, msg, print_to_console=True):
+    self.LogMsg(self.stdout,
+                self._GetStdout(print_to_console),
+                msg,
+                flush=False)
+
+  def LogCommandError(self, msg, print_to_console=True):
+    self.LogMsg(self.stderr,
+                self._GetStderr(print_to_console),
+                msg,
+                flush=False)
+
+  def Flush(self):
+    self.cmdfd.flush()
+    self.stdout.flush()
+    self.stderr.flush()
+
+
+class MockLogger(object):
+  """Logging helper class."""
+
+  MAX_LOG_FILES = 10
+
+  def __init__(self, *_args, **_kwargs):
+    self.stdout = sys.stdout
+    self.stderr = sys.stderr
+    return None
+
+  def _AddSuffix(self, basename, suffix):
+    return '%s%s' % (basename, suffix)
+
+  def _FindSuffix(self, basename):
+    timestamps = []
+    found_suffix = None
+    for i in range(self.MAX_LOG_FILES):
+      suffix = str(i)
+      suffixed_basename = self._AddSuffix(basename, suffix)
+      cmd_file = '%s.cmd' % suffixed_basename
+      if not os.path.exists(cmd_file):
+        found_suffix = suffix
+        break
+      timestamps.append(os.stat(cmd_file).st_mtime)
+
+    if found_suffix:
+      return found_suffix
+
+    # Try to pick the oldest file with the suffix and return that one.
+    suffix = str(timestamps.index(min(timestamps)))
+    # print ("Warning: Overwriting log file: %s" %
+    #       self._AddSuffix(basename, suffix))
+    return suffix
+
+  def _CreateLogFileHandle(self, name):
+    print('MockLogger: creating open file handle for %s (writing)' % name)
+
+  def _CreateLogFileHandles(self, basename):
+    suffix = self._FindSuffix(basename)
+    suffixed_basename = self._AddSuffix(basename, suffix)
+
+    print('MockLogger: opening file %s.cmd' % suffixed_basename)
+    print('MockLogger: opening file %s.out' % suffixed_basename)
+    print('MockLogger: opening file %s.err' % suffixed_basename)
+
+    self._CreateLogFileSymlinks(basename, suffixed_basename)
+
+  # Symlink unsuffixed basename to currently suffixed one.
+  def _CreateLogFileSymlinks(self, basename, suffixed_basename):
+    for extension in ['cmd', 'out', 'err']:
+      src_file = '%s.%s' % (os.path.basename(suffixed_basename), extension)
+      dest_file = '%s.%s' % (basename, extension)
+      print('MockLogger: Calling os.symlink(%s, %s)' % (src_file, dest_file))
+
+  def _WriteTo(self, _fd, msg, _flush):
+    print('MockLogger: %s' % msg)
+
+  def LogStartDots(self, _print_to_console=True):
+    print('. ')
+
+  def LogAppendDot(self, _print_to_console=True):
+    print('. ')
+
+  def LogEndDots(self, _print_to_console=True):
+    print('\n')
+
+  def LogMsg(self, _file_fd, _term_fd, msg, **_kwargs):
+    print('MockLogger: %s' % msg)
+
+  def _GetStdout(self, _print_to_console):
+    return None
+
+  def _GetStderr(self, _print_to_console):
+    return None
+
+  def LogCmdToFileOnly(self, *_args, **_kwargs):
+    return
+
+  # def LogCmdToFileOnly(self, cmd, machine='', user=None):
+  #   host = ('%s@%s' % (user, machine)) if user else machine
+  #   cmd_string = 'CMD (%s): %s\n' % (host, cmd)
+  #   print('MockLogger: Writing to file ONLY: %s' % cmd_string)
+
+  def LogCmd(self, cmd, machine='', user=None, print_to_console=True):
+    if user:
+      host = '%s@%s' % (user, machine)
+    else:
+      host = machine
+
+    self.LogMsg(0, self._GetStdout(print_to_console),
+                'CMD (%s): %s\n' % (host, cmd))
+
+  def LogFatal(self, msg, print_to_console=True):
+    self.LogMsg(0, self._GetStderr(print_to_console), 'FATAL: %s\n' % msg)
+    self.LogMsg(0, self._GetStderr(print_to_console),
+                '\n'.join(traceback.format_stack()))
+    print('MockLogger: Calling sysexit(1)')
+
+  def LogError(self, msg, print_to_console=True):
+    self.LogMsg(0, self._GetStderr(print_to_console), 'ERROR: %s\n' % msg)
+
+  def LogWarning(self, msg, print_to_console=True):
+    self.LogMsg(0, self._GetStderr(print_to_console), 'WARNING: %s\n' % msg)
+
+  def LogOutput(self, msg, print_to_console=True):
+    self.LogMsg(0, self._GetStdout(print_to_console), 'OUTPUT: %s\n' % msg)
+
+  def LogFatalIf(self, condition, msg):
+    if condition:
+      self.LogFatal(msg)
+
+  def LogErrorIf(self, condition, msg):
+    if condition:
+      self.LogError(msg)
+
+  def LogWarningIf(self, condition, msg):
+    if condition:
+      self.LogWarning(msg)
+
+  def LogCommandOutput(self, msg, print_to_console=True):
+    self.LogMsg(self.stdout,
+                self._GetStdout(print_to_console),
+                msg,
+                flush=False)
+
+  def LogCommandError(self, msg, print_to_console=True):
+    self.LogMsg(self.stderr,
+                self._GetStderr(print_to_console),
+                msg,
+                flush=False)
+
+  def Flush(self):
+    print('MockLogger: Flushing cmdfd, stdout, stderr')
+
+
+main_logger = None
+
+
+def InitLogger(script_name, log_dir, print_console=True, mock=False):
+  """Initialize a global logger. To be called only once."""
+  # pylint: disable=global-statement
+  global main_logger
+  assert not main_logger, 'The logger has already been initialized'
+  rootdir, basefilename = GetRoot(script_name)
+  if not log_dir:
+    log_dir = rootdir
+  if not mock:
+    main_logger = Logger(log_dir, basefilename, print_console)
+  else:
+    main_logger = MockLogger(log_dir, basefilename, print_console)
+
+
+def GetLogger(log_dir='', mock=False):
+  if not main_logger:
+    InitLogger(sys.argv[0], log_dir, mock=mock)
+  return main_logger
+
+
+def HandleUncaughtExceptions(fun):
+  """Catches all exceptions that would go outside decorated fun scope."""
+
+  def _Interceptor(*args, **kwargs):
+    try:
+      return fun(*args, **kwargs)
+    except StandardError:
+      GetLogger().LogFatal('Uncaught exception:\n%s' % traceback.format_exc())
+
+  return _Interceptor
diff --git a/cros_utils/machines.py b/cros_utils/machines.py
new file mode 100644
index 0000000..722df3b
--- /dev/null
+++ b/cros_utils/machines.py
@@ -0,0 +1,25 @@
+# Copyright 2015 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Utilities relating to machine-specific functions."""
+
+from __future__ import print_function
+
+from cros_utils import command_executer
+
+
+def MachineIsPingable(machine, logging_level='average'):
+  """Checks to see if a machine is responding to 'ping'.
+
+  Args:
+    machine: String containing the name or ip address of the machine to check.
+    logging_level: The logging level with which to initialize the
+      command_executer (from command_executor.LOG_LEVEL enum list).
+
+  Returns:
+    Boolean indicating whether machine is responding to ping or not.
+  """
+  ce = command_executer.GetCommandExecuter(log_level=logging_level)
+  cmd = 'ping -c 1 -w 3 %s' % machine
+  status = ce.RunCommand(cmd)
+  return status == 0
diff --git a/cros_utils/manifest_versions.py b/cros_utils/manifest_versions.py
new file mode 100644
index 0000000..52fd700
--- /dev/null
+++ b/cros_utils/manifest_versions.py
@@ -0,0 +1,97 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Tools for searching/manipulating the manifests repository."""
+
+from __future__ import print_function
+
+__author__ = 'llozano@google.com (Luis Lozano)'
+
+import os
+import re
+import shutil
+import tempfile
+import time
+
+import command_executer
+import logger
+
+
+def IsCrosVersion(version):
+  match = re.search(r'(\d+\.\d+\.\d+\.\d+)', version)
+  return match is not None
+
+
+def IsRFormatCrosVersion(version):
+  match = re.search(r'(R\d+-\d+\.\d+\.\d+)', version)
+  return match is not None
+
+
+def RFormatCrosVersion(version):
+  assert IsCrosVersion(version)
+  tmp_major, tmp_minor = version.split('.', 1)
+  rformat = 'R' + tmp_major + '-' + tmp_minor
+  assert IsRFormatCrosVersion(rformat)
+  return rformat
+
+
+class ManifestVersions(object):
+  """This class handles interactions with the manifests repo."""
+
+  def __init__(self, internal=True):
+    self.internal = internal
+    self.clone_location = tempfile.mkdtemp()
+    self.ce = command_executer.GetCommandExecuter()
+    if internal:
+      versions_git = ('https://chrome-internal.googlesource.com/'
+                      'chromeos/manifest-versions.git')
+    else:
+      versions_git = (
+          'https://chromium.googlesource.com/chromiumos/manifest-versions.git')
+    commands = ['cd {0}'.format(self.clone_location),
+                'git clone {0}'.format(versions_git)]
+    ret = self.ce.RunCommands(commands)
+    if ret:
+      logger.GetLogger().LogFatal('Failed to clone manifest-versions.')
+
+  def __del__(self):
+    if self.clone_location:
+      shutil.rmtree(self.clone_location)
+
+  def TimeToVersion(self, my_time):
+    """Convert timestamp to version number."""
+    cur_time = time.mktime(time.gmtime())
+    des_time = float(my_time)
+    if cur_time - des_time > 7000000:
+      logger.GetLogger().LogFatal('The time you specify is too early.')
+    commands = ['cd {0}'.format(self.clone_location), 'cd manifest-versions',
+                'git checkout -f $(git rev-list' +
+                ' --max-count=1 --before={0} origin/master)'.format(my_time)]
+    ret = self.ce.RunCommands(commands)
+    if ret:
+      logger.GetLogger().LogFatal('Failed to checkout manifest at '
+                                  'specified time')
+    path = os.path.realpath('{0}/manifest-versions/LKGM/lkgm.xml'.format(
+        self.clone_location))
+    pp = path.split('/')
+    small = os.path.basename(path).split('.xml')[0]
+    version = pp[-2] + '.' + small
+    commands = ['cd {0}'.format(self.clone_location), 'cd manifest-versions',
+                'git checkout master']
+    self.ce.RunCommands(commands)
+    return version
+
+  def GetManifest(self, version, to_file):
+    """Get the manifest file from a given chromeos-internal version."""
+    assert not IsRFormatCrosVersion(version)
+    version = version.split('.', 1)[1]
+    os.chdir(self.clone_location)
+    files = [os.path.join(r, f)
+             for r, _, fs in os.walk('.') for f in fs if version in f]
+    if files:
+      command = 'cp {0} {1}'.format(files[0], to_file)
+      ret = self.ce.RunCommand(command)
+      if ret:
+        raise RuntimeError('Cannot copy manifest to {0}'.format(to_file))
+    else:
+      raise RuntimeError('Version {0} is not available.'.format(version))
diff --git a/cros_utils/misc.py b/cros_utils/misc.py
new file mode 100644
index 0000000..6c7d290
--- /dev/null
+++ b/cros_utils/misc.py
@@ -0,0 +1,569 @@
+# Copyright 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Utilities for toolchain build."""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+from contextlib import contextmanager
+import os
+import re
+import shutil
+import sys
+import traceback
+
+import command_executer
+import logger
+
+CHROMEOS_SCRIPTS_DIR = '~/trunk/src/scripts'
+TOOLCHAIN_UTILS_PATH = '~/trunk/src/platform/dev/toolchain_utils.sh'
+
+
+def GetChromeOSVersionFromLSBVersion(lsb_version):
+  """Get Chromeos version from Lsb version."""
+  ce = command_executer.GetCommandExecuter()
+  command = ('git ls-remote '
+             'https://chromium.googlesource.com/chromiumos/manifest.git')
+  ret, out, _ = ce.RunCommandWOutput(command, print_to_console=False)
+  assert ret == 0, 'Command %s failed' % command
+  lower = []
+  for line in out.splitlines():
+    mo = re.search(r'refs/heads/release-R(\d+)-(\d+)\.B', line)
+    if mo:
+      revision = int(mo.group(1))
+      build = int(mo.group(2))
+      lsb_build = int(lsb_version.split('.')[0])
+      if lsb_build > build:
+        lower.append(revision)
+  lower = sorted(lower)
+  if lower:
+    return 'R%d-%s' % (lower[-1] + 1, lsb_version)
+  else:
+    return 'Unknown'
+
+
+def ApplySubs(string, *substitutions):
+  for pattern, replacement in substitutions:
+    string = re.sub(pattern, replacement, string)
+  return string
+
+
+def UnitToNumber(unit_num, base=1000):
+  """Convert a number with unit to float."""
+  unit_dict = {'kilo': base, 'mega': base**2, 'giga': base**3}
+  unit_num = unit_num.lower()
+  mo = re.search(r'(\d*)(.+)?', unit_num)
+  number = mo.group(1)
+  unit = mo.group(2)
+  if not unit:
+    return float(number)
+  for k, v in unit_dict.items():
+    if k.startswith(unit):
+      return float(number) * v
+  raise RuntimeError('Unit: %s not found in byte: %s!' % (unit, unit_num))
+
+
+def GetFilenameFromString(string):
+  return ApplySubs(string, (r'/', '__'), (r'\s', '_'), (r'[\\$="?^]', ''),)
+
+
+def GetRoot(scr_name):
+  """Break up pathname into (dir+name)."""
+  abs_path = os.path.abspath(scr_name)
+  return (os.path.dirname(abs_path), os.path.basename(abs_path))
+
+
+def GetChromeOSKeyFile(chromeos_root):
+  return os.path.join(chromeos_root, 'src', 'scripts', 'mod_for_test_scripts',
+                      'ssh_keys', 'testing_rsa')
+
+
+def GetChrootPath(chromeos_root):
+  return os.path.join(chromeos_root, 'chroot')
+
+
+def GetInsideChrootPath(chromeos_root, file_path):
+  if not file_path.startswith(GetChrootPath(chromeos_root)):
+    raise RuntimeError("File: %s doesn't seem to be in the chroot: %s" %
+                       (file_path, chromeos_root))
+  return file_path[len(GetChrootPath(chromeos_root)):]
+
+
+def GetOutsideChrootPath(chromeos_root, file_path):
+  return os.path.join(GetChrootPath(chromeos_root), file_path.lstrip('/'))
+
+
+def FormatQuotedCommand(command):
+  return ApplySubs(command, ('"', r'\"'))
+
+
+def FormatCommands(commands):
+  return ApplySubs(
+      str(commands), ('&&', '&&\n'), (';', ';\n'), (r'\n+\s*', '\n'))
+
+
+def GetImageDir(chromeos_root, board):
+  return os.path.join(chromeos_root, 'src', 'build', 'images', board)
+
+
+def LabelLatestImage(chromeos_root, board, label, vanilla_path=None):
+  image_dir = GetImageDir(chromeos_root, board)
+  latest_image_dir = os.path.join(image_dir, 'latest')
+  latest_image_dir = os.path.realpath(latest_image_dir)
+  latest_image_dir = os.path.basename(latest_image_dir)
+  retval = 0
+  with WorkingDirectory(image_dir):
+    command = 'ln -sf -T %s %s' % (latest_image_dir, label)
+    ce = command_executer.GetCommandExecuter()
+    retval = ce.RunCommand(command)
+    if retval:
+      return retval
+    if vanilla_path:
+      command = 'ln -sf -T %s %s' % (vanilla_path, 'vanilla')
+      retval2 = ce.RunCommand(command)
+      return retval2
+  return retval
+
+
+def DoesLabelExist(chromeos_root, board, label):
+  image_label = os.path.join(GetImageDir(chromeos_root, board), label)
+  return os.path.exists(image_label)
+
+
+def GetBuildPackagesCommand(board, usepkg=False, debug=False):
+  if usepkg:
+    usepkg_flag = '--usepkg'
+  else:
+    usepkg_flag = '--nousepkg'
+  if debug:
+    withdebug_flag = '--withdebug'
+  else:
+    withdebug_flag = '--nowithdebug'
+  return ('%s/build_packages %s --withdev --withtest --withautotest '
+          '--skip_toolchain_update %s --board=%s '
+          '--accept_licenses=@CHROMEOS' %
+          (CHROMEOS_SCRIPTS_DIR, usepkg_flag, withdebug_flag, board))
+
+
+def GetBuildImageCommand(board, dev=False):
+  dev_args = ''
+  if dev:
+    dev_args = '--noenable_rootfs_verification --disk_layout=2gb-rootfs'
+  return ('%s/build_image --board=%s %s test' %
+          (CHROMEOS_SCRIPTS_DIR, board, dev_args))
+
+
+def GetSetupBoardCommand(board,
+                         gcc_version=None,
+                         binutils_version=None,
+                         usepkg=None,
+                         force=None):
+  """Get setup_board command."""
+  options = []
+
+  if gcc_version:
+    options.append('--gcc_version=%s' % gcc_version)
+
+  if binutils_version:
+    options.append('--binutils_version=%s' % binutils_version)
+
+  if usepkg:
+    options.append('--usepkg')
+  else:
+    options.append('--nousepkg')
+
+  if force:
+    options.append('--force')
+
+  options.append('--accept_licenses=@CHROMEOS')
+
+  return ('%s/setup_board --board=%s %s' %
+          (CHROMEOS_SCRIPTS_DIR, board, ' '.join(options)))
+
+
+def CanonicalizePath(path):
+  path = os.path.expanduser(path)
+  path = os.path.realpath(path)
+  return path
+
+
+def GetCtargetFromBoard(board, chromeos_root):
+  """Get Ctarget from board."""
+  base_board = board.split('_')[0]
+  command = ('source %s; get_ctarget_from_board %s' %
+             (TOOLCHAIN_UTILS_PATH, base_board))
+  ce = command_executer.GetCommandExecuter()
+  ret, out, _ = ce.ChrootRunCommandWOutput(chromeos_root, command)
+  if ret != 0:
+    raise ValueError('Board %s is invalid!' % board)
+  # Remove ANSI escape sequences.
+  out = StripANSIEscapeSequences(out)
+  return out.strip()
+
+
+def GetArchFromBoard(board, chromeos_root):
+  """Get Arch from board."""
+  base_board = board.split('_')[0]
+  command = ('source %s; get_board_arch %s' %
+             (TOOLCHAIN_UTILS_PATH, base_board))
+  ce = command_executer.GetCommandExecuter()
+  ret, out, _ = ce.ChrootRunCommandWOutput(chromeos_root, command)
+  if ret != 0:
+    raise ValueError('Board %s is invalid!' % board)
+  # Remove ANSI escape sequences.
+  out = StripANSIEscapeSequences(out)
+  return out.strip()
+
+
+def GetGccLibsDestForBoard(board, chromeos_root):
+  """Get gcc libs destination from board."""
+  arch = GetArchFromBoard(board, chromeos_root)
+  if arch == 'x86':
+    return '/build/%s/usr/lib/gcc/' % board
+  if arch == 'amd64':
+    return '/build/%s/usr/lib64/gcc/' % board
+  if arch == 'arm':
+    return '/build/%s/usr/lib/gcc/' % board
+  if arch == 'arm64':
+    return '/build/%s/usr/lib/gcc/' % board
+  raise ValueError('Arch %s is invalid!' % arch)
+
+
+def StripANSIEscapeSequences(string):
+  string = re.sub(r'\x1b\[[0-9]*[a-zA-Z]', '', string)
+  return string
+
+
+def GetChromeSrcDir():
+  return 'var/cache/distfiles/target/chrome-src/src'
+
+
+def GetEnvStringFromDict(env_dict):
+  return ' '.join(["%s=\"%s\"" % var for var in env_dict.items()])
+
+
+def MergeEnvStringWithDict(env_string, env_dict, prepend=True):
+  """Merge env string with dict."""
+  if not env_string.strip():
+    return GetEnvStringFromDict(env_dict)
+  override_env_list = []
+  ce = command_executer.GetCommandExecuter()
+  for k, v in env_dict.items():
+    v = v.strip("\"'")
+    if prepend:
+      new_env = "%s=\"%s $%s\"" % (k, v, k)
+    else:
+      new_env = "%s=\"$%s %s\"" % (k, k, v)
+    command = '; '.join([env_string, new_env, 'echo $%s' % k])
+    ret, out, _ = ce.RunCommandWOutput(command)
+    override_env_list.append('%s=%r' % (k, out.strip()))
+  ret = env_string + ' ' + ' '.join(override_env_list)
+  return ret.strip()
+
+
+def GetAllImages(chromeos_root, board):
+  ce = command_executer.GetCommandExecuter()
+  command = ('find %s/src/build/images/%s -name chromiumos_test_image.bin' %
+             (chromeos_root, board))
+  ret, out, _ = ce.RunCommandWOutput(command)
+  assert ret == 0, 'Could not run command: %s' % command
+  return out.splitlines()
+
+
+def IsFloat(text):
+  if text is None:
+    return False
+  try:
+    float(text)
+    return True
+  except ValueError:
+    return False
+
+
+def RemoveChromeBrowserObjectFiles(chromeos_root, board):
+  """Remove any object files from all the posible locations."""
+  out_dir = os.path.join(
+      GetChrootPath(chromeos_root),
+      'var/cache/chromeos-chrome/chrome-src/src/out_%s' % board)
+  if os.path.exists(out_dir):
+    shutil.rmtree(out_dir)
+    logger.GetLogger().LogCmd('rm -rf %s' % out_dir)
+  out_dir = os.path.join(
+      GetChrootPath(chromeos_root),
+      'var/cache/chromeos-chrome/chrome-src-internal/src/out_%s' % board)
+  if os.path.exists(out_dir):
+    shutil.rmtree(out_dir)
+    logger.GetLogger().LogCmd('rm -rf %s' % out_dir)
+
+
+@contextmanager
+def WorkingDirectory(new_dir):
+  """Get the working directory."""
+  old_dir = os.getcwd()
+  if old_dir != new_dir:
+    msg = 'cd %s' % new_dir
+    logger.GetLogger().LogCmd(msg)
+  os.chdir(new_dir)
+  yield new_dir
+  if old_dir != new_dir:
+    msg = 'cd %s' % old_dir
+    logger.GetLogger().LogCmd(msg)
+  os.chdir(old_dir)
+
+
+def HasGitStagedChanges(git_dir):
+  """Return True if git repository has staged changes."""
+  command = 'cd {0} && git diff --quiet --cached --exit-code HEAD'.format(
+      git_dir)
+  return command_executer.GetCommandExecuter().RunCommand(
+      command,
+      print_to_console=False)
+
+
+def HasGitUnstagedChanges(git_dir):
+  """Return True if git repository has un-staged changes."""
+  command = 'cd {0} && git diff --quiet --exit-code HEAD'.format(git_dir)
+  return command_executer.GetCommandExecuter().RunCommand(
+      command,
+      print_to_console=False)
+
+
+def HasGitUntrackedChanges(git_dir):
+  """Return True if git repository has un-tracked changes."""
+  command = ('cd {0} && test -z '
+             '$(git ls-files --exclude-standard --others)').format(git_dir)
+  return command_executer.GetCommandExecuter().RunCommand(
+      command,
+      print_to_console=False)
+
+
+def GitGetCommitHash(git_dir, commit_symbolic_name):
+  """Return githash for the symbolic git commit.
+
+  For example, commit_symbolic_name could be
+  "cros/gcc.gnu.org/branches/gcc/gcc-4_8-mobile, this function returns the git
+  hash for this symbolic name.
+
+  Args:
+    git_dir: a git working tree.
+    commit_symbolic_name: a symbolic name for a particular git commit.
+
+  Returns:
+    The git hash for the symbolic name or None if fails.
+  """
+
+  command = ('cd {0} && git log -n 1 --pretty="format:%H" {1}').format(
+      git_dir, commit_symbolic_name)
+  rv, out, _ = command_executer.GetCommandExecuter().RunCommandWOutput(
+      command,
+      print_to_console=False)
+  if rv == 0:
+    return out.strip()
+  return None
+
+
+def IsGitTreeClean(git_dir):
+  """Test if git tree has no local changes.
+
+  Args:
+    git_dir: git tree directory.
+
+  Returns:
+    True if git dir is clean.
+  """
+  if HasGitStagedChanges(git_dir):
+    logger.GetLogger().LogWarning('Git tree has staged changes.')
+    return False
+  if HasGitUnstagedChanges(git_dir):
+    logger.GetLogger().LogWarning('Git tree has unstaged changes.')
+    return False
+  if HasGitUntrackedChanges(git_dir):
+    logger.GetLogger().LogWarning('Git tree has un-tracked changes.')
+    return False
+  return True
+
+
+def GetGitChangesAsList(git_dir, path=None, staged=False):
+  """Get changed files as a list.
+
+  Args:
+    git_dir: git tree directory.
+    path: a relative path that is part of the tree directory, could be null.
+    staged: whether to include staged files as well.
+
+  Returns:
+    A list containing all the changed files.
+  """
+  command = 'cd {0} && git diff --name-only'.format(git_dir)
+  if staged:
+    command += ' --cached'
+  if path:
+    command += ' -- ' + path
+  _, out, _ = command_executer.GetCommandExecuter().RunCommandWOutput(
+      command,
+      print_to_console=False)
+  rv = []
+  for line in out.splitlines():
+    rv.append(line)
+  return rv
+
+
+def IsChromeOsTree(chromeos_root):
+  return (os.path.isdir(os.path.join(chromeos_root,
+                                     'src/third_party/chromiumos-overlay')) and
+          os.path.isdir(os.path.join(chromeos_root, 'manifest')))
+
+
+def DeleteChromeOsTree(chromeos_root, dry_run=False):
+  """Delete a ChromeOs tree *safely*.
+
+  Args:
+    chromeos_root: dir of the tree, could be a relative one (but be careful)
+    dry_run: only prints out the command if True
+
+  Returns:
+    True if everything is ok.
+  """
+  if not IsChromeOsTree(chromeos_root):
+    logger.GetLogger().LogWarning(
+        '"{0}" does not seem to be a valid chromeos tree, do nothing.'.format(
+            chromeos_root))
+    return False
+  cmd0 = 'cd {0} && cros_sdk --delete'.format(chromeos_root)
+  if dry_run:
+    print(cmd0)
+  else:
+    if command_executer.GetCommandExecuter().RunCommand(
+        cmd0,
+        print_to_console=True) != 0:
+      return False
+
+  cmd1 = ('export CHROMEOSDIRNAME="$(dirname $(cd {0} && pwd))" && '
+          'export CHROMEOSBASENAME="$(basename $(cd {0} && pwd))" && '
+          'cd $CHROMEOSDIRNAME && sudo rm -fr $CHROMEOSBASENAME').format(
+              chromeos_root)
+  if dry_run:
+    print(cmd1)
+    return True
+
+  return command_executer.GetCommandExecuter().RunCommand(
+      cmd1,
+      print_to_console=True) == 0
+
+
+def ApplyGerritPatches(chromeos_root,
+                       gerrit_patch_string,
+                       branch='cros/master'):
+  """Apply gerrit patches on a chromeos tree.
+
+  Args:
+    chromeos_root: chromeos tree path
+    gerrit_patch_string: a patch string just like the one gives to cbuildbot,
+    'id1 id2 *id3 ... idn'. A prefix of '* means this is an internal patch.
+    branch: the tree based on which to apply the patches.
+
+  Returns:
+    True if success.
+  """
+
+  ### First of all, we need chromite libs
+  sys.path.append(os.path.join(chromeos_root, 'chromite'))
+  # Imports below are ok after modifying path to add chromite.
+  # Pylint cannot detect that and complains.
+  # pylint: disable=import-error
+  from lib import git
+  from lib import gerrit
+  manifest = git.ManifestCheckout(chromeos_root)
+  patch_list = gerrit_patch_string.split(' ')
+  ### This takes time, print log information.
+  logger.GetLogger().LogOutput('Retrieving patch information from server ...')
+  patch_info_list = gerrit.GetGerritPatchInfo(patch_list)
+  for pi in patch_info_list:
+    project_checkout = manifest.FindCheckout(pi.project, strict=False)
+    if not project_checkout:
+      logger.GetLogger().LogError(
+          'Failed to find patch project "{project}" in manifest.'.format(
+              project=pi.project))
+      return False
+
+    pi_str = '{project}:{ref}'.format(project=pi.project, ref=pi.ref)
+    try:
+      project_git_path = project_checkout.GetPath(absolute=True)
+      logger.GetLogger().LogOutput('Applying patch "{0}" in "{1}" ...'.format(
+          pi_str, project_git_path))
+      pi.Apply(project_git_path, branch, trivial=False)
+    except Exception:
+      traceback.print_exc(file=sys.stdout)
+      logger.GetLogger().LogError('Failed to apply patch "{0}"'.format(pi_str))
+      return False
+  return True
+
+
+def BooleanPrompt(prompt='Do you want to continue?',
+                  default=True,
+                  true_value='yes',
+                  false_value='no',
+                  prolog=None):
+  """Helper function for processing boolean choice prompts.
+
+  Args:
+    prompt: The question to present to the user.
+    default: Boolean to return if the user just presses enter.
+    true_value: The text to display that represents a True returned.
+    false_value: The text to display that represents a False returned.
+    prolog: The text to display before prompt.
+
+  Returns:
+    True or False.
+  """
+  true_value, false_value = true_value.lower(), false_value.lower()
+  true_text, false_text = true_value, false_value
+  if true_value == false_value:
+    raise ValueError('true_value and false_value must differ: got %r' %
+                     true_value)
+
+  if default:
+    true_text = true_text[0].upper() + true_text[1:]
+  else:
+    false_text = false_text[0].upper() + false_text[1:]
+
+  prompt = ('\n%s (%s/%s)? ' % (prompt, true_text, false_text))
+
+  if prolog:
+    prompt = ('\n%s\n%s' % (prolog, prompt))
+
+  while True:
+    try:
+      response = raw_input(prompt).lower()
+    except EOFError:
+      # If the user hits CTRL+D, or stdin is disabled, use the default.
+      print()
+      response = None
+    except KeyboardInterrupt:
+      # If the user hits CTRL+C, just exit the process.
+      print()
+      print('CTRL+C detected; exiting')
+      sys.exit()
+
+    if not response:
+      return default
+    if true_value.startswith(response):
+      if not false_value.startswith(response):
+        return True
+      # common prefix between the two...
+    elif false_value.startswith(response):
+      return False
+
+def rgb2short(r, g, b):
+  """  Converts RGB values to xterm-256 color. """
+
+  redcolor = [255, 124, 160, 196, 9 ]
+  greencolor = [255, 118, 82, 46, 10 ]
+
+  if g == 0:
+    return redcolor[r/52]
+  if r == 0:
+    return greencolor[g/52]
+  return 4
diff --git a/cros_utils/misc_test.py b/cros_utils/misc_test.py
new file mode 100644
index 0000000..8008220
--- /dev/null
+++ b/cros_utils/misc_test.py
@@ -0,0 +1,51 @@
+# Copyright 2012 Google Inc. All Rights Reserved.
+"""Tests for misc."""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+# System modules
+import unittest
+
+# Local modules
+import misc
+
+
+class UtilsTest(unittest.TestCase):
+  """Tests for misc."""
+
+  def testGetFilenameFromString(self):
+    string = 'a /b=c"d^$?\\'
+    filename = misc.GetFilenameFromString(string)
+    self.assertEqual(filename, 'a___bcd')
+
+  def testPrependMergeEnv(self):
+    var = 'USE'
+    use_flags = 'hello 123'
+    added_use_flags = 'bla bla'
+    env_string = '%s=%r' % (var, use_flags)
+    new_env_string = misc.MergeEnvStringWithDict(env_string,
+                                                 {var: added_use_flags})
+    expected_new_env = '%s=%r' % (var, ' '.join([added_use_flags, use_flags]))
+    self.assertEqual(new_env_string, ' '.join([env_string, expected_new_env]))
+
+  def testGetChromeOSVersionFromLSBVersion(self):
+    versions_dict = {'2630.0.0': '22', '2030.0.0': '19'}
+    f = misc.GetChromeOSVersionFromLSBVersion
+    for k, v in versions_dict.items():
+      self.assertEqual(f(k), 'R%s-%s' % (v, k))
+
+  def testPostpendMergeEnv(self):
+    var = 'USE'
+    use_flags = 'hello 123'
+    added_use_flags = 'bla bla'
+    env_string = '%s=%r' % (var, use_flags)
+    new_env_string = misc.MergeEnvStringWithDict(env_string,
+                                                 {var: added_use_flags}, False)
+    expected_new_env = '%s=%r' % (var, ' '.join([use_flags, added_use_flags]))
+    self.assertEqual(new_env_string, ' '.join([env_string, expected_new_env]))
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/cros_utils/no_pseudo_terminal_test.py b/cros_utils/no_pseudo_terminal_test.py
new file mode 100644
index 0000000..43eabb1
--- /dev/null
+++ b/cros_utils/no_pseudo_terminal_test.py
@@ -0,0 +1,53 @@
+"""Test to ensure we're not touching /dev/ptmx when running commands."""
+
+from __future__ import print_function
+
+import os
+import subprocess
+import tempfile
+import time
+import unittest
+from cros_utils import command_executer
+
+
+class NoPsuedoTerminalTest(unittest.TestCase):
+  """Test to ensure we're not touching /dev/ptmx when running commands."""
+
+  _strace_process = None
+  STRACE_TIMEOUT = 10
+
+  def _AttachStraceToSelf(self, output_file):
+    """Attaches strace to the current process."""
+    args = ['strace', '-o', output_file, '-p', str(os.getpid())]
+    print(args)
+    self._strace_process = subprocess.Popen(args)
+    # Wait until we see some activity.
+    start_time = time.time()
+    while time.time() - start_time < self.STRACE_TIMEOUT:
+      if os.path.isfile(output_file) and open(output_file).read(1):
+        return True
+      time.sleep(1)
+    return False
+
+  def _KillStraceProcess(self):
+    """Kills strace that was started by _AttachStraceToSelf()."""
+    self._strace_process.terminate()
+    self._strace_process.wait()
+    return True
+
+  def testNoPseudoTerminalWhenRunningCommand(self):
+    """Test to make sure we're not touching /dev/ptmx when running commands."""
+    temp_file = tempfile.mktemp()
+    self.assertTrue(self._AttachStraceToSelf(temp_file))
+
+    ce = command_executer.GetCommandExecuter()
+    ce.RunCommand('echo')
+
+    self.assertTrue(self._KillStraceProcess())
+
+    strace_contents = open(temp_file).read()
+    self.assertFalse('/dev/ptmx' in strace_contents)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/cros_utils/perf_diff.py b/cros_utils/perf_diff.py
new file mode 100755
index 0000000..31cde99
--- /dev/null
+++ b/cros_utils/perf_diff.py
@@ -0,0 +1,332 @@
+#!/usr/bin/env python2
+# Copyright 2012 Google Inc. All Rights Reserved.
+"""One-line documentation for perf_diff module.
+
+A detailed description of perf_diff.
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import re
+import sys
+
+import misc
+import tabulator
+
+ROWS_TO_SHOW = 'Rows_to_show_in_the_perf_table'
+TOTAL_EVENTS = 'Total_events_of_this_profile'
+
+
+def GetPerfDictFromReport(report_file):
+  output = {}
+  perf_report = PerfReport(report_file)
+  for k, v in perf_report.sections.items():
+    if k not in output:
+      output[k] = {}
+    output[k][ROWS_TO_SHOW] = 0
+    output[k][TOTAL_EVENTS] = 0
+    for function in v.functions:
+      out_key = '%s' % (function.name)
+      output[k][out_key] = function.count
+      output[k][TOTAL_EVENTS] += function.count
+      if function.percent > 1:
+        output[k][ROWS_TO_SHOW] += 1
+  return output
+
+
+def _SortDictionaryByValue(d):
+  l = [(k, v) for (k, v) in d.iteritems()]
+
+  def GetFloat(x):
+    if misc.IsFloat(x):
+      return float(x)
+    else:
+      return x
+
+  sorted_l = sorted(l, key=lambda x: GetFloat(x[1]))
+  sorted_l.reverse()
+  return [f[0] for f in sorted_l]
+
+
+class Tabulator(object):
+  """Make tables."""
+
+  def __init__(self, all_dicts):
+    self._all_dicts = all_dicts
+
+  def PrintTable(self):
+    for dicts in self._all_dicts:
+      self.PrintTableHelper(dicts)
+
+  def PrintTableHelper(self, dicts):
+    """Transfrom dicts to tables."""
+    fields = {}
+    for d in dicts:
+      for f in d.keys():
+        if f not in fields:
+          fields[f] = d[f]
+        else:
+          fields[f] = max(fields[f], d[f])
+    table = []
+    header = ['name']
+    for i in range(len(dicts)):
+      header.append(i)
+
+    table.append(header)
+
+    sorted_fields = _SortDictionaryByValue(fields)
+
+    for f in sorted_fields:
+      row = [f]
+      for d in dicts:
+        if f in d:
+          row.append(d[f])
+        else:
+          row.append('0')
+      table.append(row)
+
+    print(tabulator.GetSimpleTable(table))
+
+
+class Function(object):
+  """Function for formatting."""
+
+  def __init__(self):
+    self.count = 0
+    self.name = ''
+    self.percent = 0
+
+
+class Section(object):
+  """Section formatting."""
+
+  def __init__(self, contents):
+    self.name = ''
+    self.raw_contents = contents
+    self._ParseSection()
+
+  def _ParseSection(self):
+    matches = re.findall(r'Events: (\w+)\s+(.*)', self.raw_contents)
+    assert len(matches) <= 1, 'More than one event found in 1 section'
+    if not matches:
+      return
+    match = matches[0]
+    self.name = match[1]
+    self.count = misc.UnitToNumber(match[0])
+
+    self.functions = []
+    for line in self.raw_contents.splitlines():
+      if not line.strip():
+        continue
+      if '%' not in line:
+        continue
+      if not line.startswith('#'):
+        fields = [f for f in line.split(' ') if f]
+        function = Function()
+        function.percent = float(fields[0].strip('%'))
+        function.count = int(fields[1])
+        function.name = ' '.join(fields[2:])
+        self.functions.append(function)
+
+
+class PerfReport(object):
+  """Get report from raw report."""
+
+  def __init__(self, perf_file):
+    self.perf_file = perf_file
+    self._ReadFile()
+    self.sections = {}
+    self.metadata = {}
+    self._section_contents = []
+    self._section_header = ''
+    self._SplitSections()
+    self._ParseSections()
+    self._ParseSectionHeader()
+
+  def _ParseSectionHeader(self):
+    """Parse a header of a perf report file."""
+    # The "captured on" field is inaccurate - this actually refers to when the
+    # report was generated, not when the data was captured.
+    for line in self._section_header.splitlines():
+      line = line[2:]
+      if ':' in line:
+        key, val = line.strip().split(':', 1)
+        key = key.strip()
+        val = val.strip()
+        self.metadata[key] = val
+
+  def _ReadFile(self):
+    self._perf_contents = open(self.perf_file).read()
+
+  def _ParseSections(self):
+    self.event_counts = {}
+    self.sections = {}
+    for section_content in self._section_contents:
+      section = Section(section_content)
+      section.name = self._GetHumanReadableName(section.name)
+      self.sections[section.name] = section
+
+  # TODO(asharif): Do this better.
+  def _GetHumanReadableName(self, section_name):
+    if not 'raw' in section_name:
+      return section_name
+    raw_number = section_name.strip().split(' ')[-1]
+    for line in self._section_header.splitlines():
+      if raw_number in line:
+        name = line.strip().split(' ')[5]
+        return name
+
+  def _SplitSections(self):
+    self._section_contents = []
+    indices = [m.start() for m in re.finditer('# Events:', self._perf_contents)]
+    indices.append(len(self._perf_contents))
+    for i in range(len(indices) - 1):
+      section_content = self._perf_contents[indices[i]:indices[i + 1]]
+      self._section_contents.append(section_content)
+    self._section_header = ''
+    if indices:
+      self._section_header = self._perf_contents[0:indices[0]]
+
+
+class PerfDiffer(object):
+  """Perf differ class."""
+
+  def __init__(self, reports, num_symbols, common_only):
+    self._reports = reports
+    self._num_symbols = num_symbols
+    self._common_only = common_only
+    self._common_function_names = {}
+
+  def DoDiff(self):
+    """The function that does the diff."""
+    section_names = self._FindAllSections()
+
+    filename_dicts = []
+    summary_dicts = []
+    for report in self._reports:
+      d = {}
+      filename_dicts.append({'file': report.perf_file})
+      for section_name in section_names:
+        if section_name in report.sections:
+          d[section_name] = report.sections[section_name].count
+      summary_dicts.append(d)
+
+    all_dicts = [filename_dicts, summary_dicts]
+
+    for section_name in section_names:
+      function_names = self._GetTopFunctions(section_name, self._num_symbols)
+      self._FindCommonFunctions(section_name)
+      dicts = []
+      for report in self._reports:
+        d = {}
+        if section_name in report.sections:
+          section = report.sections[section_name]
+
+          # Get a common scaling factor for this report.
+          common_scaling_factor = self._GetCommonScalingFactor(section)
+
+          for function in section.functions:
+            if function.name in function_names:
+              key = '%s %s' % (section.name, function.name)
+              d[key] = function.count
+              # Compute a factor to scale the function count by in common_only
+              # mode.
+              if self._common_only and (
+                  function.name in self._common_function_names[section.name]):
+                d[key + ' scaled'] = common_scaling_factor * function.count
+        dicts.append(d)
+
+      all_dicts.append(dicts)
+
+    mytabulator = Tabulator(all_dicts)
+    mytabulator.PrintTable()
+
+  def _FindAllSections(self):
+    sections = {}
+    for report in self._reports:
+      for section in report.sections.values():
+        if section.name not in sections:
+          sections[section.name] = section.count
+        else:
+          sections[section.name] = max(sections[section.name], section.count)
+    return _SortDictionaryByValue(sections)
+
+  def _GetCommonScalingFactor(self, section):
+    unique_count = self._GetCount(
+        section, lambda x: x in self._common_function_names[section.name])
+    return 100.0 / unique_count
+
+  def _GetCount(self, section, filter_fun=None):
+    total_count = 0
+    for function in section.functions:
+      if not filter_fun or filter_fun(function.name):
+        total_count += int(function.count)
+    return total_count
+
+  def _FindCommonFunctions(self, section_name):
+    function_names_list = []
+    for report in self._reports:
+      if section_name in report.sections:
+        section = report.sections[section_name]
+        function_names = [f.name for f in section.functions]
+        function_names_list.append(function_names)
+
+    self._common_function_names[section_name] = (
+        reduce(set.intersection, map(set, function_names_list)))
+
+  def _GetTopFunctions(self, section_name, num_functions):
+    all_functions = {}
+    for report in self._reports:
+      if section_name in report.sections:
+        section = report.sections[section_name]
+        for f in section.functions[:num_functions]:
+          if f.name in all_functions:
+            all_functions[f.name] = max(all_functions[f.name], f.count)
+          else:
+            all_functions[f.name] = f.count
+    # FIXME(asharif): Don't really need to sort these...
+    return _SortDictionaryByValue(all_functions)
+
+  def _GetFunctionsDict(self, section, function_names):
+    d = {}
+    for function in section.functions:
+      if function.name in function_names:
+        d[function.name] = function.count
+    return d
+
+
+def Main(argv):
+  """The entry of the main."""
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-n',
+                      '--num_symbols',
+                      dest='num_symbols',
+                      default='5',
+                      help='The number of symbols to show.')
+  parser.add_argument('-c',
+                      '--common_only',
+                      dest='common_only',
+                      action='store_true',
+                      default=False,
+                      help='Diff common symbols only.')
+
+  options, args = parser.parse_known_args(argv)
+
+  try:
+    reports = []
+    for report in args[1:]:
+      report = PerfReport(report)
+      reports.append(report)
+    pd = PerfDiffer(reports, int(options.num_symbols), options.common_only)
+    pd.DoDiff()
+  finally:
+    pass
+
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv))
diff --git a/cros_utils/pstat.py b/cros_utils/pstat.py
new file mode 100644
index 0000000..602fc0c
--- /dev/null
+++ b/cros_utils/pstat.py
@@ -0,0 +1,1077 @@
+# We did not author this file nor mantain it. Skip linting it.
+#pylint: skip-file
+# Copyright (c) 1999-2007 Gary Strangman; All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+#
+# Comments and/or additions are welcome (send e-mail to:
+# strang@nmr.mgh.harvard.edu).
+#
+"""pstat.py module
+
+#################################################
+#######  Written by:  Gary Strangman  ###########
+#######  Last modified:  Dec 18, 2007 ###########
+#################################################
+
+This module provides some useful list and array manipulation routines
+modeled after those found in the |Stat package by Gary Perlman, plus a
+number of other useful list/file manipulation functions.  The list-based
+functions include:
+
+      abut (source,*args)
+      simpleabut (source, addon)
+      colex (listoflists,cnums)
+      collapse (listoflists,keepcols,collapsecols,fcn1=None,fcn2=None,cfcn=None)
+      dm (listoflists,criterion)
+      flat (l)
+      linexand (listoflists,columnlist,valuelist)
+      linexor (listoflists,columnlist,valuelist)
+      linedelimited (inlist,delimiter)
+      lineincols (inlist,colsize)
+      lineincustcols (inlist,colsizes)
+      list2string (inlist)
+      makelol(inlist)
+      makestr(x)
+      printcc (lst,extra=2)
+      printincols (listoflists,colsize)
+      pl (listoflists)
+      printl(listoflists)
+      replace (lst,oldval,newval)
+      recode (inlist,listmap,cols='all')
+      remap (listoflists,criterion)
+      roundlist (inlist,num_digits_to_round_floats_to)
+      sortby(listoflists,sortcols)
+      unique (inlist)
+      duplicates(inlist)
+      writedelimited (listoflists, delimiter, file, writetype='w')
+
+Some of these functions have alternate versions which are defined only if
+Numeric (NumPy) can be imported.  These functions are generally named as
+above, with an 'a' prefix.
+
+      aabut (source, *args)
+      acolex (a,indices,axis=1)
+      acollapse (a,keepcols,collapsecols,sterr=0,ns=0)
+      adm (a,criterion)
+      alinexand (a,columnlist,valuelist)
+      alinexor (a,columnlist,valuelist)
+      areplace (a,oldval,newval)
+      arecode (a,listmap,col='all')
+      arowcompare (row1, row2)
+      arowsame (row1, row2)
+      asortrows(a,axis=0)
+      aunique(inarray)
+      aduplicates(inarray)
+
+Currently, the code is all but completely un-optimized.  In many cases, the
+array versions of functions amount simply to aliases to built-in array
+functions/methods.  Their inclusion here is for function name consistency.
+"""
+
+## CHANGE LOG:
+## ==========
+## 07-11-26 ... edited to work with numpy
+## 01-11-15 ... changed list2string() to accept a delimiter
+## 01-06-29 ... converted exec()'s to eval()'s to make compatible with Py2.1
+## 01-05-31 ... added duplicates() and aduplicates() functions
+## 00-12-28 ... license made GPL, docstring and import requirements
+## 99-11-01 ... changed version to 0.3
+## 99-08-30 ... removed get, getstrings, put, aget, aput (into io.py)
+## 03/27/99 ... added areplace function, made replace fcn recursive
+## 12/31/98 ... added writefc function for ouput to fixed column sizes
+## 12/07/98 ... fixed import problem (failed on collapse() fcn)
+##              added __version__ variable (now 0.2)
+## 12/05/98 ... updated doc-strings
+##              added features to collapse() function
+##              added flat() function for lists
+##              fixed a broken asortrows()
+## 11/16/98 ... fixed minor bug in aput for 1D arrays
+##
+## 11/08/98 ... fixed aput to output large arrays correctly
+
+import stats  # required 3rd party module
+import string, copy
+from types import *
+
+__version__ = 0.4
+
+###===========================  LIST FUNCTIONS  ==========================
+###
+### Here are the list functions, DEFINED FOR ALL SYSTEMS.
+### Array functions (for NumPy-enabled computers) appear below.
+###
+
+
+def abut(source, *args):
+  """
+Like the |Stat abut command.  It concatenates two lists side-by-side
+and returns the result.  '2D' lists are also accomodated for either argument
+(source or addon).  CAUTION:  If one list is shorter, it will be repeated
+until it is as long as the longest list.  If this behavior is not desired,
+use pstat.simpleabut().
+
+Usage:   abut(source, args)   where args=any # of lists
+Returns: a list of lists as long as the LONGEST list past, source on the
+         'left', lists in <args> attached consecutively on the 'right'
+"""
+
+  if type(source) not in [ListType, TupleType]:
+    source = [source]
+  for addon in args:
+    if type(addon) not in [ListType, TupleType]:
+      addon = [addon]
+    if len(addon) < len(source):  # is source list longer?
+      if len(source) % len(addon) == 0:  # are they integer multiples?
+        repeats = len(source) / len(addon)  # repeat addon n times
+        origadd = copy.deepcopy(addon)
+        for i in range(repeats - 1):
+          addon = addon + origadd
+      else:
+        repeats = len(source) / len(addon) + 1  # repeat addon x times,
+        origadd = copy.deepcopy(addon)  #    x is NOT an integer
+        for i in range(repeats - 1):
+          addon = addon + origadd
+          addon = addon[0:len(source)]
+    elif len(source) < len(addon):  # is addon list longer?
+      if len(addon) % len(source) == 0:  # are they integer multiples?
+        repeats = len(addon) / len(source)  # repeat source n times
+        origsour = copy.deepcopy(source)
+        for i in range(repeats - 1):
+          source = source + origsour
+      else:
+        repeats = len(addon) / len(source) + 1  # repeat source x times,
+        origsour = copy.deepcopy(source)  #   x is NOT an integer
+        for i in range(repeats - 1):
+          source = source + origsour
+        source = source[0:len(addon)]
+
+    source = simpleabut(source, addon)
+  return source
+
+
+def simpleabut(source, addon):
+  """
+Concatenates two lists as columns and returns the result.  '2D' lists
+are also accomodated for either argument (source or addon).  This DOES NOT
+repeat either list to make the 2 lists of equal length.  Beware of list pairs
+with different lengths ... the resulting list will be the length of the
+FIRST list passed.
+
+Usage:   simpleabut(source,addon)  where source, addon=list (or list-of-lists)
+Returns: a list of lists as long as source, with source on the 'left' and
+                 addon on the 'right'
+"""
+  if type(source) not in [ListType, TupleType]:
+    source = [source]
+  if type(addon) not in [ListType, TupleType]:
+    addon = [addon]
+  minlen = min(len(source), len(addon))
+  list = copy.deepcopy(source)  # start abut process
+  if type(source[0]) not in [ListType, TupleType]:
+    if type(addon[0]) not in [ListType, TupleType]:
+      for i in range(minlen):
+        list[i] = [source[i]] + [addon[i]]  # source/addon = column
+    else:
+      for i in range(minlen):
+        list[i] = [source[i]] + addon[i]  # addon=list-of-lists
+  else:
+    if type(addon[0]) not in [ListType, TupleType]:
+      for i in range(minlen):
+        list[i] = source[i] + [addon[i]]  # source=list-of-lists
+    else:
+      for i in range(minlen):
+        list[i] = source[i] + addon[i]  # source/addon = list-of-lists
+  source = list
+  return source
+
+
+def colex(listoflists, cnums):
+  """
+Extracts from listoflists the columns specified in the list 'cnums'
+(cnums can be an integer, a sequence of integers, or a string-expression that
+corresponds to a slice operation on the variable x ... e.g., 'x[3:]' will colex
+columns 3 onward from the listoflists).
+
+Usage:   colex (listoflists,cnums)
+Returns: a list-of-lists corresponding to the columns from listoflists
+         specified by cnums, in the order the column numbers appear in cnums
+"""
+  global index
+  column = 0
+  if type(cnums) in [ListType, TupleType]:  # if multiple columns to get
+    index = cnums[0]
+    column = map(lambda x: x[index], listoflists)
+    for col in cnums[1:]:
+      index = col
+      column = abut(column, map(lambda x: x[index], listoflists))
+  elif type(cnums) == StringType:  # if an 'x[3:]' type expr.
+    evalstring = 'map(lambda x: x' + cnums + ', listoflists)'
+    column = eval(evalstring)
+  else:  # else it's just 1 col to get
+    index = cnums
+    column = map(lambda x: x[index], listoflists)
+  return column
+
+
+def collapse(listoflists,
+             keepcols,
+             collapsecols,
+             fcn1=None,
+             fcn2=None,
+             cfcn=None):
+  """
+Averages data in collapsecol, keeping all unique items in keepcols
+(using unique, which keeps unique LISTS of column numbers), retaining the
+unique sets of values in keepcols, the mean for each.  Setting fcn1
+and/or fcn2 to point to a function rather than None (e.g., stats.sterr, len)
+will append those results (e.g., the sterr, N) after each calculated mean.
+cfcn is the collapse function to apply (defaults to mean, defined here in the
+pstat module to avoid circular imports with stats.py, but harmonicmean or
+others could be passed).
+
+Usage:    collapse
+(listoflists,keepcols,collapsecols,fcn1=None,fcn2=None,cfcn=None)
+Returns: a list of lists with all unique permutations of entries appearing in
+     columns ("conditions") specified by keepcols, abutted with the result of
+     cfcn (if cfcn=None, defaults to the mean) of each column specified by
+     collapsecols.
+"""
+
+  def collmean(inlist):
+    s = 0
+    for item in inlist:
+      s = s + item
+    return s / float(len(inlist))
+
+  if type(keepcols) not in [ListType, TupleType]:
+    keepcols = [keepcols]
+  if type(collapsecols) not in [ListType, TupleType]:
+    collapsecols = [collapsecols]
+  if cfcn == None:
+    cfcn = collmean
+  if keepcols == []:
+    means = [0] * len(collapsecols)
+    for i in range(len(collapsecols)):
+      avgcol = colex(listoflists, collapsecols[i])
+      means[i] = cfcn(avgcol)
+      if fcn1:
+        try:
+          test = fcn1(avgcol)
+        except:
+          test = 'N/A'
+          means[i] = [means[i], test]
+      if fcn2:
+        try:
+          test = fcn2(avgcol)
+        except:
+          test = 'N/A'
+        try:
+          means[i] = means[i] + [len(avgcol)]
+        except TypeError:
+          means[i] = [means[i], len(avgcol)]
+    return means
+  else:
+    values = colex(listoflists, keepcols)
+    uniques = unique(values)
+    uniques.sort()
+    newlist = []
+    if type(keepcols) not in [ListType, TupleType]:
+      keepcols = [keepcols]
+    for item in uniques:
+      if type(item) not in [ListType, TupleType]:
+        item = [item]
+      tmprows = linexand(listoflists, keepcols, item)
+      for col in collapsecols:
+        avgcol = colex(tmprows, col)
+        item.append(cfcn(avgcol))
+        if fcn1 <> None:
+          try:
+            test = fcn1(avgcol)
+          except:
+            test = 'N/A'
+          item.append(test)
+        if fcn2 <> None:
+          try:
+            test = fcn2(avgcol)
+          except:
+            test = 'N/A'
+          item.append(test)
+        newlist.append(item)
+    return newlist
+
+
+def dm(listoflists, criterion):
+  """
+Returns rows from the passed list of lists that meet the criteria in
+the passed criterion expression (a string as a function of x; e.g., 'x[3]>=9'
+will return all rows where the 4th column>=9 and "x[2]=='N'" will return rows
+with column 2 equal to the string 'N').
+
+Usage:   dm (listoflists, criterion)
+Returns: rows from listoflists that meet the specified criterion.
+"""
+  function = 'filter(lambda x: ' + criterion + ',listoflists)'
+  lines = eval(function)
+  return lines
+
+
+def flat(l):
+  """
+Returns the flattened version of a '2D' list.  List-correlate to the a.ravel()()
+method of NumPy arrays.
+
+Usage:    flat(l)
+"""
+  newl = []
+  for i in range(len(l)):
+    for j in range(len(l[i])):
+      newl.append(l[i][j])
+  return newl
+
+
+def linexand(listoflists, columnlist, valuelist):
+  """
+Returns the rows of a list of lists where col (from columnlist) = val
+(from valuelist) for EVERY pair of values (columnlist[i],valuelists[i]).
+len(columnlist) must equal len(valuelist).
+
+Usage:   linexand (listoflists,columnlist,valuelist)
+Returns: the rows of listoflists where columnlist[i]=valuelist[i] for ALL i
+"""
+  if type(columnlist) not in [ListType, TupleType]:
+    columnlist = [columnlist]
+  if type(valuelist) not in [ListType, TupleType]:
+    valuelist = [valuelist]
+  criterion = ''
+  for i in range(len(columnlist)):
+    if type(valuelist[i]) == StringType:
+      critval = '\'' + valuelist[i] + '\''
+    else:
+      critval = str(valuelist[i])
+    criterion = criterion + ' x[' + str(columnlist[
+        i]) + ']==' + critval + ' and'
+  criterion = criterion[0:-3]  # remove the "and" after the last crit
+  function = 'filter(lambda x: ' + criterion + ',listoflists)'
+  lines = eval(function)
+  return lines
+
+
+def linexor(listoflists, columnlist, valuelist):
+  """
+Returns the rows of a list of lists where col (from columnlist) = val
+(from valuelist) for ANY pair of values (colunmlist[i],valuelist[i[).
+One value is required for each column in columnlist.  If only one value
+exists for columnlist but multiple values appear in valuelist, the
+valuelist values are all assumed to pertain to the same column.
+
+Usage:   linexor (listoflists,columnlist,valuelist)
+Returns: the rows of listoflists where columnlist[i]=valuelist[i] for ANY i
+"""
+  if type(columnlist) not in [ListType, TupleType]:
+    columnlist = [columnlist]
+  if type(valuelist) not in [ListType, TupleType]:
+    valuelist = [valuelist]
+  criterion = ''
+  if len(columnlist) == 1 and len(valuelist) > 1:
+    columnlist = columnlist * len(valuelist)
+  for i in range(len(columnlist)):  # build an exec string
+    if type(valuelist[i]) == StringType:
+      critval = '\'' + valuelist[i] + '\''
+    else:
+      critval = str(valuelist[i])
+    criterion = criterion + ' x[' + str(columnlist[i]) + ']==' + critval + ' or'
+  criterion = criterion[0:-2]  # remove the "or" after the last crit
+  function = 'filter(lambda x: ' + criterion + ',listoflists)'
+  lines = eval(function)
+  return lines
+
+
+def linedelimited(inlist, delimiter):
+  """
+Returns a string composed of elements in inlist, with each element
+separated by 'delimiter.'  Used by function writedelimited.  Use '\t'
+for tab-delimiting.
+
+Usage:   linedelimited (inlist,delimiter)
+"""
+  outstr = ''
+  for item in inlist:
+    if type(item) <> StringType:
+      item = str(item)
+    outstr = outstr + item + delimiter
+  outstr = outstr[0:-1]
+  return outstr
+
+
+def lineincols(inlist, colsize):
+  """
+Returns a string composed of elements in inlist, with each element
+right-aligned in columns of (fixed) colsize.
+
+Usage:   lineincols (inlist,colsize)   where colsize is an integer
+"""
+  outstr = ''
+  for item in inlist:
+    if type(item) <> StringType:
+      item = str(item)
+    size = len(item)
+    if size <= colsize:
+      for i in range(colsize - size):
+        outstr = outstr + ' '
+      outstr = outstr + item
+    else:
+      outstr = outstr + item[0:colsize + 1]
+  return outstr
+
+
+def lineincustcols(inlist, colsizes):
+  """
+Returns a string composed of elements in inlist, with each element
+right-aligned in a column of width specified by a sequence colsizes.  The
+length of colsizes must be greater than or equal to the number of columns
+in inlist.
+
+Usage:   lineincustcols (inlist,colsizes)
+Returns: formatted string created from inlist
+"""
+  outstr = ''
+  for i in range(len(inlist)):
+    if type(inlist[i]) <> StringType:
+      item = str(inlist[i])
+    else:
+      item = inlist[i]
+    size = len(item)
+    if size <= colsizes[i]:
+      for j in range(colsizes[i] - size):
+        outstr = outstr + ' '
+      outstr = outstr + item
+    else:
+      outstr = outstr + item[0:colsizes[i] + 1]
+  return outstr
+
+
+def list2string(inlist, delimit=' '):
+  """
+Converts a 1D list to a single long string for file output, using
+the string.join function.
+
+Usage:   list2string (inlist,delimit=' ')
+Returns: the string created from inlist
+"""
+  stringlist = map(makestr, inlist)
+  return string.join(stringlist, delimit)
+
+
+def makelol(inlist):
+  """
+Converts a 1D list to a 2D list (i.e., a list-of-lists).  Useful when you
+want to use put() to write a 1D list one item per line in the file.
+
+Usage:   makelol(inlist)
+Returns: if l = [1,2,'hi'] then returns [[1],[2],['hi']] etc.
+"""
+  x = []
+  for item in inlist:
+    x.append([item])
+  return x
+
+
+def makestr(x):
+  if type(x) <> StringType:
+    x = str(x)
+  return x
+
+
+def printcc(lst, extra=2):
+  """
+Prints a list of lists in columns, customized by the max size of items
+within the columns (max size of items in col, plus 'extra' number of spaces).
+Use 'dashes' or '\\n' in the list-of-lists to print dashes or blank lines,
+respectively.
+
+Usage:   printcc (lst,extra=2)
+Returns: None
+"""
+  if type(lst[0]) not in [ListType, TupleType]:
+    lst = [lst]
+  rowstokill = []
+  list2print = copy.deepcopy(lst)
+  for i in range(len(lst)):
+    if lst[i] == [
+        '\n'
+    ] or lst[i] == '\n' or lst[i] == 'dashes' or lst[i] == '' or lst[i] == ['']:
+      rowstokill = rowstokill + [i]
+  rowstokill.reverse()  # delete blank rows from the end
+  for row in rowstokill:
+    del list2print[row]
+  maxsize = [0] * len(list2print[0])
+  for col in range(len(list2print[0])):
+    items = colex(list2print, col)
+    items = map(makestr, items)
+    maxsize[col] = max(map(len, items)) + extra
+  for row in lst:
+    if row == ['\n'] or row == '\n' or row == '' or row == ['']:
+      print
+    elif row == ['dashes'] or row == 'dashes':
+      dashes = [0] * len(maxsize)
+      for j in range(len(maxsize)):
+        dashes[j] = '-' * (maxsize[j] - 2)
+      print lineincustcols(dashes, maxsize)
+    else:
+      print lineincustcols(row, maxsize)
+  return None
+
+
+def printincols(listoflists, colsize):
+  """
+Prints a list of lists in columns of (fixed) colsize width, where
+colsize is an integer.
+
+Usage:   printincols (listoflists,colsize)
+Returns: None
+"""
+  for row in listoflists:
+    print lineincols(row, colsize)
+  return None
+
+
+def pl(listoflists):
+  """
+Prints a list of lists, 1 list (row) at a time.
+
+Usage:   pl(listoflists)
+Returns: None
+"""
+  for row in listoflists:
+    if row[-1] == '\n':
+      print row,
+    else:
+      print row
+  return None
+
+
+def printl(listoflists):
+  """Alias for pl."""
+  pl(listoflists)
+  return
+
+
+def replace(inlst, oldval, newval):
+  """
+Replaces all occurrences of 'oldval' with 'newval', recursively.
+
+Usage:   replace (inlst,oldval,newval)
+"""
+  lst = inlst * 1
+  for i in range(len(lst)):
+    if type(lst[i]) not in [ListType, TupleType]:
+      if lst[i] == oldval:
+        lst[i] = newval
+    else:
+      lst[i] = replace(lst[i], oldval, newval)
+  return lst
+
+
+def recode(inlist, listmap, cols=None):
+  """
+Changes the values in a list to a new set of values (useful when
+you need to recode data from (e.g.) strings to numbers.  cols defaults
+to None (meaning all columns are recoded).
+
+Usage:   recode (inlist,listmap,cols=None)  cols=recode cols, listmap=2D list
+Returns: inlist with the appropriate values replaced with new ones
+"""
+  lst = copy.deepcopy(inlist)
+  if cols != None:
+    if type(cols) not in [ListType, TupleType]:
+      cols = [cols]
+    for col in cols:
+      for row in range(len(lst)):
+        try:
+          idx = colex(listmap, 0).index(lst[row][col])
+          lst[row][col] = listmap[idx][1]
+        except ValueError:
+          pass
+  else:
+    for row in range(len(lst)):
+      for col in range(len(lst)):
+        try:
+          idx = colex(listmap, 0).index(lst[row][col])
+          lst[row][col] = listmap[idx][1]
+        except ValueError:
+          pass
+  return lst
+
+
+def remap(listoflists, criterion):
+  """
+Remaps values in a given column of a 2D list (listoflists).  This requires
+a criterion as a function of 'x' so that the result of the following is
+returned ... map(lambda x: 'criterion',listoflists).
+
+Usage:   remap(listoflists,criterion)    criterion=string
+Returns: remapped version of listoflists
+"""
+  function = 'map(lambda x: ' + criterion + ',listoflists)'
+  lines = eval(function)
+  return lines
+
+
+def roundlist(inlist, digits):
+  """
+Goes through each element in a 1D or 2D inlist, and applies the following
+function to all elements of FloatType ... round(element,digits).
+
+Usage:   roundlist(inlist,digits)
+Returns: list with rounded floats
+"""
+  if type(inlist[0]) in [IntType, FloatType]:
+    inlist = [inlist]
+  l = inlist * 1
+  for i in range(len(l)):
+    for j in range(len(l[i])):
+      if type(l[i][j]) == FloatType:
+        l[i][j] = round(l[i][j], digits)
+  return l
+
+
+def sortby(listoflists, sortcols):
+  """
+Sorts a list of lists on the column(s) specified in the sequence
+sortcols.
+
+Usage:   sortby(listoflists,sortcols)
+Returns: sorted list, unchanged column ordering
+"""
+  newlist = abut(colex(listoflists, sortcols), listoflists)
+  newlist.sort()
+  try:
+    numcols = len(sortcols)
+  except TypeError:
+    numcols = 1
+  crit = '[' + str(numcols) + ':]'
+  newlist = colex(newlist, crit)
+  return newlist
+
+
+def unique(inlist):
+  """
+Returns all unique items in the passed list.  If the a list-of-lists
+is passed, unique LISTS are found (i.e., items in the first dimension are
+compared).
+
+Usage:   unique (inlist)
+Returns: the unique elements (or rows) in inlist
+"""
+  uniques = []
+  for item in inlist:
+    if item not in uniques:
+      uniques.append(item)
+  return uniques
+
+
+def duplicates(inlist):
+  """
+Returns duplicate items in the FIRST dimension of the passed list.
+
+Usage:   duplicates (inlist)
+"""
+  dups = []
+  for i in range(len(inlist)):
+    if inlist[i] in inlist[i + 1:]:
+      dups.append(inlist[i])
+  return dups
+
+
+def nonrepeats(inlist):
+  """
+Returns items that are NOT duplicated in the first dim of the passed list.
+
+Usage:   nonrepeats (inlist)
+"""
+  nonrepeats = []
+  for i in range(len(inlist)):
+    if inlist.count(inlist[i]) == 1:
+      nonrepeats.append(inlist[i])
+  return nonrepeats
+
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+#===================   PSTAT ARRAY FUNCTIONS  =====================
+
+try:  # DEFINE THESE *ONLY* IF numpy IS AVAILABLE
+  import numpy as N
+
+  def aabut(source, *args):
+    """
+Like the |Stat abut command.  It concatenates two arrays column-wise
+and returns the result.  CAUTION:  If one array is shorter, it will be
+repeated until it is as long as the other.
+
+Usage:   aabut (source, args)    where args=any # of arrays
+Returns: an array as long as the LONGEST array past, source appearing on the
+         'left', arrays in <args> attached on the 'right'.
+"""
+    if len(source.shape) == 1:
+      width = 1
+      source = N.resize(source, [source.shape[0], width])
+    else:
+      width = source.shape[1]
+    for addon in args:
+      if len(addon.shape) == 1:
+        width = 1
+        addon = N.resize(addon, [source.shape[0], width])
+      else:
+        width = source.shape[1]
+      if len(addon) < len(source):
+        addon = N.resize(addon, [source.shape[0], addon.shape[1]])
+      elif len(source) < len(addon):
+        source = N.resize(source, [addon.shape[0], source.shape[1]])
+      source = N.concatenate((source, addon), 1)
+    return source
+
+  def acolex(a, indices, axis=1):
+    """
+Extracts specified indices (a list) from passed array, along passed
+axis (column extraction is default).  BEWARE: A 1D array is presumed to be a
+column-array (and that the whole array will be returned as a column).
+
+Usage:   acolex (a,indices,axis=1)
+Returns: the columns of a specified by indices
+"""
+    if type(indices) not in [ListType, TupleType, N.ndarray]:
+      indices = [indices]
+    if len(N.shape(a)) == 1:
+      cols = N.resize(a, [a.shape[0], 1])
+    else:
+      #        print a[:3]
+      cols = N.take(a, indices, axis)
+#        print cols[:3]
+    return cols
+
+  def acollapse(a, keepcols, collapsecols, fcn1=None, fcn2=None, cfcn=None):
+    """
+Averages data in collapsecol, keeping all unique items in keepcols
+(using unique, which keeps unique LISTS of column numbers), retaining
+the unique sets of values in keepcols, the mean for each.  If stderror or
+N of the mean are desired, set either or both parameters to 1.
+
+Usage:   acollapse (a,keepcols,collapsecols,fcn1=None,fcn2=None,cfcn=None)
+Returns: unique 'conditions' specified by the contents of columns specified
+         by keepcols, abutted with the mean(s) of column(s) specified by
+         collapsecols
+"""
+
+    def acollmean(inarray):
+      return N.sum(N.ravel(inarray))
+
+    if type(keepcols) not in [ListType, TupleType, N.ndarray]:
+      keepcols = [keepcols]
+    if type(collapsecols) not in [ListType, TupleType, N.ndarray]:
+      collapsecols = [collapsecols]
+
+    if cfcn == None:
+      cfcn = acollmean
+    if keepcols == []:
+      avgcol = acolex(a, collapsecols)
+      means = N.sum(avgcol) / float(len(avgcol))
+      if fcn1 <> None:
+        try:
+          test = fcn1(avgcol)
+        except:
+          test = N.array(['N/A'] * len(means))
+        means = aabut(means, test)
+      if fcn2 <> None:
+        try:
+          test = fcn2(avgcol)
+        except:
+          test = N.array(['N/A'] * len(means))
+        means = aabut(means, test)
+      return means
+    else:
+      if type(keepcols) not in [ListType, TupleType, N.ndarray]:
+        keepcols = [keepcols]
+      values = colex(a, keepcols)  # so that "item" can be appended (below)
+      uniques = unique(values)  # get a LIST, so .sort keeps rows intact
+      uniques.sort()
+      newlist = []
+      for item in uniques:
+        if type(item) not in [ListType, TupleType, N.ndarray]:
+          item = [item]
+        tmprows = alinexand(a, keepcols, item)
+        for col in collapsecols:
+          avgcol = acolex(tmprows, col)
+          item.append(acollmean(avgcol))
+          if fcn1 <> None:
+            try:
+              test = fcn1(avgcol)
+            except:
+              test = 'N/A'
+            item.append(test)
+          if fcn2 <> None:
+            try:
+              test = fcn2(avgcol)
+            except:
+              test = 'N/A'
+            item.append(test)
+          newlist.append(item)
+      try:
+        new_a = N.array(newlist)
+      except TypeError:
+        new_a = N.array(newlist, 'O')
+      return new_a
+
+  def adm(a, criterion):
+    """
+Returns rows from the passed list of lists that meet the criteria in
+the passed criterion expression (a string as a function of x).
+
+Usage:   adm (a,criterion)   where criterion is like 'x[2]==37'
+"""
+    function = 'filter(lambda x: ' + criterion + ',a)'
+    lines = eval(function)
+    try:
+      lines = N.array(lines)
+    except:
+      lines = N.array(lines, dtype='O')
+    return lines
+
+  def isstring(x):
+    if type(x) == StringType:
+      return 1
+    else:
+      return 0
+
+  def alinexand(a, columnlist, valuelist):
+    """
+Returns the rows of an array where col (from columnlist) = val
+(from valuelist).  One value is required for each column in columnlist.
+
+Usage:   alinexand (a,columnlist,valuelist)
+Returns: the rows of a where columnlist[i]=valuelist[i] for ALL i
+"""
+    if type(columnlist) not in [ListType, TupleType, N.ndarray]:
+      columnlist = [columnlist]
+    if type(valuelist) not in [ListType, TupleType, N.ndarray]:
+      valuelist = [valuelist]
+    criterion = ''
+    for i in range(len(columnlist)):
+      if type(valuelist[i]) == StringType:
+        critval = '\'' + valuelist[i] + '\''
+      else:
+        critval = str(valuelist[i])
+      criterion = criterion + ' x[' + str(columnlist[
+          i]) + ']==' + critval + ' and'
+    criterion = criterion[0:-3]  # remove the "and" after the last crit
+    return adm(a, criterion)
+
+  def alinexor(a, columnlist, valuelist):
+    """
+Returns the rows of an array where col (from columnlist) = val (from
+valuelist).  One value is required for each column in columnlist.
+The exception is if either columnlist or valuelist has only 1 value,
+in which case that item will be expanded to match the length of the
+other list.
+
+Usage:   alinexor (a,columnlist,valuelist)
+Returns: the rows of a where columnlist[i]=valuelist[i] for ANY i
+"""
+    if type(columnlist) not in [ListType, TupleType, N.ndarray]:
+      columnlist = [columnlist]
+    if type(valuelist) not in [ListType, TupleType, N.ndarray]:
+      valuelist = [valuelist]
+    criterion = ''
+    if len(columnlist) == 1 and len(valuelist) > 1:
+      columnlist = columnlist * len(valuelist)
+    elif len(valuelist) == 1 and len(columnlist) > 1:
+      valuelist = valuelist * len(columnlist)
+    for i in range(len(columnlist)):
+      if type(valuelist[i]) == StringType:
+        critval = '\'' + valuelist[i] + '\''
+      else:
+        critval = str(valuelist[i])
+      criterion = criterion + ' x[' + str(columnlist[
+          i]) + ']==' + critval + ' or'
+    criterion = criterion[0:-2]  # remove the "or" after the last crit
+    return adm(a, criterion)
+
+  def areplace(a, oldval, newval):
+    """
+Replaces all occurrences of oldval with newval in array a.
+
+Usage:   areplace(a,oldval,newval)
+"""
+    return N.where(a == oldval, newval, a)
+
+  def arecode(a, listmap, col='all'):
+    """
+Remaps the values in an array to a new set of values (useful when
+you need to recode data from (e.g.) strings to numbers as most stats
+packages require.  Can work on SINGLE columns, or 'all' columns at once.
+@@@BROKEN 2007-11-26
+
+Usage:   arecode (a,listmap,col='all')
+Returns: a version of array a where listmap[i][0] = (instead) listmap[i][1]
+"""
+    ashape = a.shape
+    if col == 'all':
+      work = a.ravel()
+    else:
+      work = acolex(a, col)
+      work = work.ravel()
+    for pair in listmap:
+      if type(pair[
+          1]) == StringType or work.dtype.char == 'O' or a.dtype.char == 'O':
+        work = N.array(work, dtype='O')
+        a = N.array(a, dtype='O')
+        for i in range(len(work)):
+          if work[i] == pair[0]:
+            work[i] = pair[1]
+        if col == 'all':
+          return N.reshape(work, ashape)
+        else:
+          return N.concatenate(
+              [a[:, 0:col], work[:, N.newaxis], a[:, col + 1:]], 1)
+      else:  # must be a non-Object type array and replacement
+        work = N.where(work == pair[0], pair[1], work)
+        return N.concatenate(
+            [a[:, 0:col], work[:, N.newaxis], a[:, col + 1:]], 1)
+
+  def arowcompare(row1, row2):
+    """
+Compares two rows from an array, regardless of whether it is an
+array of numbers or of python objects (which requires the cmp function).
+@@@PURPOSE? 2007-11-26
+
+Usage:   arowcompare(row1,row2)
+Returns: an array of equal length containing 1s where the two rows had
+         identical elements and 0 otherwise
+"""
+    return
+    if row1.dtype.char == 'O' or row2.dtype == 'O':
+      cmpvect = N.logical_not(
+          abs(N.array(map(cmp, row1, row2))))  # cmp fcn gives -1,0,1
+    else:
+      cmpvect = N.equal(row1, row2)
+    return cmpvect
+
+  def arowsame(row1, row2):
+    """
+Compares two rows from an array, regardless of whether it is an
+array of numbers or of python objects (which requires the cmp function).
+
+Usage:   arowsame(row1,row2)
+Returns: 1 if the two rows are identical, 0 otherwise.
+"""
+    cmpval = N.alltrue(arowcompare(row1, row2))
+    return cmpval
+
+  def asortrows(a, axis=0):
+    """
+Sorts an array "by rows".  This differs from the Numeric.sort() function,
+which sorts elements WITHIN the given axis.  Instead, this function keeps
+the elements along the given axis intact, but shifts them 'up or down'
+relative to one another.
+
+Usage:   asortrows(a,axis=0)
+Returns: sorted version of a
+"""
+    return N.sort(a, axis=axis, kind='mergesort')
+
+  def aunique(inarray):
+    """
+Returns unique items in the FIRST dimension of the passed array. Only
+works on arrays NOT including string items.
+
+Usage:   aunique (inarray)
+"""
+    uniques = N.array([inarray[0]])
+    if len(uniques.shape) == 1:  # IF IT'S A 1D ARRAY
+      for item in inarray[1:]:
+        if N.add.reduce(N.equal(uniques, item).ravel()) == 0:
+          try:
+            uniques = N.concatenate([uniques, N.array[N.newaxis, :]])
+          except TypeError:
+            uniques = N.concatenate([uniques, N.array([item])])
+    else:  # IT MUST BE A 2+D ARRAY
+      if inarray.dtype.char != 'O':  # not an Object array
+        for item in inarray[1:]:
+          if not N.sum(N.alltrue(N.equal(uniques, item), 1)):
+            try:
+              uniques = N.concatenate([uniques, item[N.newaxis, :]])
+            except TypeError:  # the item to add isn't a list
+              uniques = N.concatenate([uniques, N.array([item])])
+          else:
+            pass  # this item is already in the uniques array
+      else:  # must be an Object array, alltrue/equal functions don't work
+        for item in inarray[1:]:
+          newflag = 1
+          for unq in uniques:  # NOTE: cmp --> 0=same, -1=<, 1=>
+            test = N.sum(abs(N.array(map(cmp, item, unq))))
+            if test == 0:  # if item identical to any 1 row in uniques
+              newflag = 0  # then not a novel item to add
+              break
+          if newflag == 1:
+            try:
+              uniques = N.concatenate([uniques, item[N.newaxis, :]])
+            except TypeError:  # the item to add isn't a list
+              uniques = N.concatenate([uniques, N.array([item])])
+    return uniques
+
+  def aduplicates(inarray):
+    """
+Returns duplicate items in the FIRST dimension of the passed array. Only
+works on arrays NOT including string items.
+
+Usage:   aunique (inarray)
+"""
+    inarray = N.array(inarray)
+    if len(inarray.shape) == 1:  # IF IT'S A 1D ARRAY
+      dups = []
+      inarray = inarray.tolist()
+      for i in range(len(inarray)):
+        if inarray[i] in inarray[i + 1:]:
+          dups.append(inarray[i])
+      dups = aunique(dups)
+    else:  # IT MUST BE A 2+D ARRAY
+      dups = []
+      aslist = inarray.tolist()
+      for i in range(len(aslist)):
+        if aslist[i] in aslist[i + 1:]:
+          dups.append(aslist[i])
+      dups = unique(dups)
+      dups = N.array(dups)
+    return dups
+
+except ImportError:  # IF NUMERIC ISN'T AVAILABLE, SKIP ALL arrayfuncs
+  pass
diff --git a/cros_utils/stats.py b/cros_utils/stats.py
new file mode 100644
index 0000000..0387a07
--- /dev/null
+++ b/cros_utils/stats.py
@@ -0,0 +1,4519 @@
+# We did not author this file nor mantain it. Skip linting it.
+#pylint: skip-file
+# Copyright (c) 1999-2008 Gary Strangman; All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+#
+# Comments and/or additions are welcome (send e-mail to:
+# strang@nmr.mgh.harvard.edu).
+#
+"""stats.py module
+
+(Requires pstat.py module.)
+
+#################################################
+#######  Written by:  Gary Strangman  ###########
+#######  Last modified:  Oct 31, 2008 ###########
+#################################################
+
+A collection of basic statistical functions for python.  The function
+names appear below.
+
+IMPORTANT:  There are really *3* sets of functions.  The first set has an 'l'
+prefix, which can be used with list or tuple arguments.  The second set has
+an 'a' prefix, which can accept NumPy array arguments.  These latter
+functions are defined only when NumPy is available on the system.  The third
+type has NO prefix (i.e., has the name that appears below).  Functions of
+this set are members of a "Dispatch" class, c/o David Ascher.  This class
+allows different functions to be called depending on the type of the passed
+arguments.  Thus, stats.mean is a member of the Dispatch class and
+stats.mean(range(20)) will call stats.lmean(range(20)) while
+stats.mean(Numeric.arange(20)) will call stats.amean(Numeric.arange(20)).
+This is a handy way to keep consistent function names when different
+argument types require different functions to be called.  Having
+implementated the Dispatch class, however, means that to get info on
+a given function, you must use the REAL function name ... that is
+"print stats.lmean.__doc__" or "print stats.amean.__doc__" work fine,
+while "print stats.mean.__doc__" will print the doc for the Dispatch
+class.  NUMPY FUNCTIONS ('a' prefix) generally have more argument options
+but should otherwise be consistent with the corresponding list functions.
+
+Disclaimers:  The function list is obviously incomplete and, worse, the
+functions are not optimized.  All functions have been tested (some more
+so than others), but they are far from bulletproof.  Thus, as with any
+free software, no warranty or guarantee is expressed or implied. :-)  A
+few extra functions that don't appear in the list below can be found by
+interested treasure-hunters.  These functions don't necessarily have
+both list and array versions but were deemed useful
+
+CENTRAL TENDENCY:  geometricmean
+                   harmonicmean
+                   mean
+                   median
+                   medianscore
+                   mode
+
+MOMENTS:  moment
+          variation
+          skew
+          kurtosis
+          skewtest   (for Numpy arrays only)
+          kurtosistest (for Numpy arrays only)
+          normaltest (for Numpy arrays only)
+
+ALTERED VERSIONS:  tmean  (for Numpy arrays only)
+                   tvar   (for Numpy arrays only)
+                   tmin   (for Numpy arrays only)
+                   tmax   (for Numpy arrays only)
+                   tstdev (for Numpy arrays only)
+                   tsem   (for Numpy arrays only)
+                   describe
+
+FREQUENCY STATS:  itemfreq
+                  scoreatpercentile
+                  percentileofscore
+                  histogram
+                  cumfreq
+                  relfreq
+
+VARIABILITY:  obrientransform
+              samplevar
+              samplestdev
+              signaltonoise (for Numpy arrays only)
+              var
+              stdev
+              sterr
+              sem
+              z
+              zs
+              zmap (for Numpy arrays only)
+
+TRIMMING FCNS:  threshold (for Numpy arrays only)
+                trimboth
+                trim1
+                round (round all vals to 'n' decimals; Numpy only)
+
+CORRELATION FCNS:  covariance  (for Numpy arrays only)
+                   correlation (for Numpy arrays only)
+                   paired
+                   pearsonr
+                   spearmanr
+                   pointbiserialr
+                   kendalltau
+                   linregress
+
+INFERENTIAL STATS:  ttest_1samp
+                    ttest_ind
+                    ttest_rel
+                    chisquare
+                    ks_2samp
+                    mannwhitneyu
+                    ranksums
+                    wilcoxont
+                    kruskalwallish
+                    friedmanchisquare
+
+PROBABILITY CALCS:  chisqprob
+                    erfcc
+                    zprob
+                    ksprob
+                    fprob
+                    betacf
+                    gammln
+                    betai
+
+ANOVA FUNCTIONS:  F_oneway
+                  F_value
+
+SUPPORT FUNCTIONS:  writecc
+                    incr
+                    sign  (for Numpy arrays only)
+                    sum
+                    cumsum
+                    ss
+                    summult
+                    sumdiffsquared
+                    square_of_sums
+                    shellsort
+                    rankdata
+                    outputpairedstats
+                    findwithin
+"""
+## CHANGE LOG:
+## ===========
+## 09-07-21 ... added capability for getting the 'proportion' out of l/amannwhitneyu (but comment-disabled)
+## 08-10-31 ... fixed import LinearAlgebra bug before glm fcns
+## 07-11-26 ... conversion for numpy started
+## 07-05-16 ... added Lin's Concordance Correlation Coefficient (alincc) and acov
+## 05-08-21 ... added "Dice's coefficient"
+## 04-10-26 ... added ap2t(), an ugly fcn for converting p-vals to T-vals
+## 04-04-03 ... added amasslinregress() function to do regression on N-D arrays
+## 03-01-03 ... CHANGED VERSION TO 0.6
+##              fixed atsem() to properly handle limits=None case
+##              improved histogram and median functions (estbinwidth) and
+##                   fixed atvar() function (wrong answers for neg numbers?!?)
+## 02-11-19 ... fixed attest_ind and attest_rel for div-by-zero Overflows
+## 02-05-10 ... fixed lchisqprob indentation (failed when df=even)
+## 00-12-28 ... removed aanova() to separate module, fixed licensing to
+##                   match Python License, fixed doc string & imports
+## 00-04-13 ... pulled all "global" statements, except from aanova()
+##              added/fixed lots of documentation, removed io.py dependency
+##              changed to version 0.5
+## 99-11-13 ... added asign() function
+## 99-11-01 ... changed version to 0.4 ... enough incremental changes now
+## 99-10-25 ... added acovariance and acorrelation functions
+## 99-10-10 ... fixed askew/akurtosis to avoid divide-by-zero errors
+##              added aglm function (crude, but will be improved)
+## 99-10-04 ... upgraded acumsum, ass, asummult, asamplevar, avar, etc. to
+##                   all handle lists of 'dimension's and keepdims
+##              REMOVED ar0, ar2, ar3, ar4 and replaced them with around
+##              reinserted fixes for abetai to avoid math overflows
+## 99-09-05 ... rewrote achisqprob/aerfcc/aksprob/afprob/abetacf/abetai to
+##                   handle multi-dimensional arrays (whew!)
+## 99-08-30 ... fixed l/amoment, l/askew, l/akurtosis per D'Agostino (1990)
+##              added anormaltest per same reference
+##              re-wrote azprob to calc arrays of probs all at once
+## 99-08-22 ... edited attest_ind printing section so arrays could be rounded
+## 99-08-19 ... fixed amean and aharmonicmean for non-error(!) overflow on
+##                   short/byte arrays (mean of #s btw 100-300 = -150??)
+## 99-08-09 ... fixed asum so that the None case works for Byte arrays
+## 99-08-08 ... fixed 7/3 'improvement' to handle t-calcs on N-D arrays
+## 99-07-03 ... improved attest_ind, attest_rel (zero-division errortrap)
+## 99-06-24 ... fixed bug(?) in attest_ind (n1=a.shape[0])
+## 04/11/99 ... added asignaltonoise, athreshold functions, changed all
+##                   max/min in array section to N.maximum/N.minimum,
+##                   fixed square_of_sums to prevent integer overflow
+## 04/10/99 ... !!! Changed function name ... sumsquared ==> square_of_sums
+## 03/18/99 ... Added ar0, ar2, ar3 and ar4 rounding functions
+## 02/28/99 ... Fixed aobrientransform to return an array rather than a list
+## 01/15/99 ... Essentially ceased updating list-versions of functions (!!!)
+## 01/13/99 ... CHANGED TO VERSION 0.3
+##              fixed bug in a/lmannwhitneyu p-value calculation
+## 12/31/98 ... fixed variable-name bug in ldescribe
+## 12/19/98 ... fixed bug in findwithin (fcns needed pstat. prefix)
+## 12/16/98 ... changed amedianscore to return float (not array) for 1 score
+## 12/14/98 ... added atmin and atmax functions
+##              removed umath from import line (not needed)
+##              l/ageometricmean modified to reduce chance of overflows (take
+##                   nth root first, then multiply)
+## 12/07/98 ... added __version__variable (now 0.2)
+##              removed all 'stats.' from anova() fcn
+## 12/06/98 ... changed those functions (except shellsort) that altered
+##                   arguments in-place ... cumsum, ranksort, ...
+##              updated (and fixed some) doc-strings
+## 12/01/98 ... added anova() function (requires NumPy)
+##              incorporated Dispatch class
+## 11/12/98 ... added functionality to amean, aharmonicmean, ageometricmean
+##              added 'asum' function (added functionality to N.add.reduce)
+##              fixed both moment and amoment (two errors)
+##              changed name of skewness and askewness to skew and askew
+##              fixed (a)histogram (which sometimes counted points <lowerlimit)
+
+import pstat  # required 3rd party module
+import math, string, copy  # required python modules
+from types import *
+
+__version__ = 0.6
+
+############# DISPATCH CODE ##############
+
+
+class Dispatch:
+  """
+The Dispatch class, care of David Ascher, allows different functions to
+be called depending on the argument types.  This way, there can be one
+function name regardless of the argument type.  To access function doc
+in stats.py module, prefix the function with an 'l' or 'a' for list or
+array arguments, respectively.  That is, print stats.lmean.__doc__ or
+print stats.amean.__doc__ or whatever.
+"""
+
+  def __init__(self, *tuples):
+    self._dispatch = {}
+    for func, types in tuples:
+      for t in types:
+        if t in self._dispatch.keys():
+          raise ValueError, "can't have two dispatches on " + str(t)
+        self._dispatch[t] = func
+    self._types = self._dispatch.keys()
+
+  def __call__(self, arg1, *args, **kw):
+    if type(arg1) not in self._types:
+      raise TypeError, "don't know how to dispatch %s arguments" % type(arg1)
+    return apply(self._dispatch[type(arg1)], (arg1,) + args, kw)
+
+##########################################################################
+########################   LIST-BASED FUNCTIONS   ########################
+##########################################################################
+
+### Define these regardless
+
+####################################
+#######  CENTRAL TENDENCY  #########
+####################################
+
+
+def lgeometricmean(inlist):
+  """
+Calculates the geometric mean of the values in the passed list.
+That is:  n-th root of (x1 * x2 * ... * xn).  Assumes a '1D' list.
+
+Usage:   lgeometricmean(inlist)
+"""
+  mult = 1.0
+  one_over_n = 1.0 / len(inlist)
+  for item in inlist:
+    mult = mult * pow(item, one_over_n)
+  return mult
+
+
+def lharmonicmean(inlist):
+  """
+Calculates the harmonic mean of the values in the passed list.
+That is:  n / (1/x1 + 1/x2 + ... + 1/xn).  Assumes a '1D' list.
+
+Usage:   lharmonicmean(inlist)
+"""
+  sum = 0
+  for item in inlist:
+    sum = sum + 1.0 / item
+  return len(inlist) / sum
+
+
+def lmean(inlist):
+  """
+Returns the arithematic mean of the values in the passed list.
+Assumes a '1D' list, but will function on the 1st dim of an array(!).
+
+Usage:   lmean(inlist)
+"""
+  sum = 0
+  for item in inlist:
+    sum = sum + item
+  return sum / float(len(inlist))
+
+
+def lmedian(inlist, numbins=1000):
+  """
+Returns the computed median value of a list of numbers, given the
+number of bins to use for the histogram (more bins brings the computed value
+closer to the median score, default number of bins = 1000).  See G.W.
+Heiman's Basic Stats (1st Edition), or CRC Probability & Statistics.
+
+Usage:   lmedian (inlist, numbins=1000)
+"""
+  (hist, smallest, binsize, extras) = histogram(
+      inlist, numbins, [min(inlist), max(inlist)])  # make histog
+  cumhist = cumsum(hist)  # make cumulative histogram
+  for i in range(len(cumhist)):  # get 1st(!) index holding 50%ile score
+    if cumhist[i] >= len(inlist) / 2.0:
+      cfbin = i
+      break
+  LRL = smallest + binsize * cfbin  # get lower read limit of that bin
+  cfbelow = cumhist[cfbin - 1]
+  freq = float(hist[cfbin])  # frequency IN the 50%ile bin
+  median = LRL + (
+      (len(inlist) / 2.0 - cfbelow) / float(freq)) * binsize  # median formula
+  return median
+
+
+def lmedianscore(inlist):
+  """
+Returns the 'middle' score of the passed list.  If there is an even
+number of scores, the mean of the 2 middle scores is returned.
+
+Usage:   lmedianscore(inlist)
+"""
+
+  newlist = copy.deepcopy(inlist)
+  newlist.sort()
+  if len(newlist) % 2 == 0:  # if even number of scores, average middle 2
+    index = len(newlist) / 2  # integer division correct
+    median = float(newlist[index] + newlist[index - 1]) / 2
+  else:
+    index = len(newlist) / 2  # int divsion gives mid value when count from 0
+    median = newlist[index]
+  return median
+
+
+def lmode(inlist):
+  """
+Returns a list of the modal (most common) score(s) in the passed
+list.  If there is more than one such score, all are returned.  The
+bin-count for the mode(s) is also returned.
+
+Usage:   lmode(inlist)
+Returns: bin-count for mode(s), a list of modal value(s)
+"""
+
+  scores = pstat.unique(inlist)
+  scores.sort()
+  freq = []
+  for item in scores:
+    freq.append(inlist.count(item))
+  maxfreq = max(freq)
+  mode = []
+  stillmore = 1
+  while stillmore:
+    try:
+      indx = freq.index(maxfreq)
+      mode.append(scores[indx])
+      del freq[indx]
+      del scores[indx]
+    except ValueError:
+      stillmore = 0
+  return maxfreq, mode
+
+####################################
+############  MOMENTS  #############
+####################################
+
+
+def lmoment(inlist, moment=1):
+  """
+Calculates the nth moment about the mean for a sample (defaults to
+the 1st moment).  Used to calculate coefficients of skewness and kurtosis.
+
+Usage:   lmoment(inlist,moment=1)
+Returns: appropriate moment (r) from ... 1/n * SUM((inlist(i)-mean)**r)
+"""
+  if moment == 1:
+    return 0.0
+  else:
+    mn = mean(inlist)
+    n = len(inlist)
+    s = 0
+    for x in inlist:
+      s = s + (x - mn)**moment
+    return s / float(n)
+
+
+def lvariation(inlist):
+  """
+Returns the coefficient of variation, as defined in CRC Standard
+Probability and Statistics, p.6.
+
+Usage:   lvariation(inlist)
+"""
+  return 100.0 * samplestdev(inlist) / float(mean(inlist))
+
+
+def lskew(inlist):
+  """
+Returns the skewness of a distribution, as defined in Numerical
+Recipies (alternate defn in CRC Standard Probability and Statistics, p.6.)
+
+Usage:   lskew(inlist)
+"""
+  return moment(inlist, 3) / pow(moment(inlist, 2), 1.5)
+
+
+def lkurtosis(inlist):
+  """
+Returns the kurtosis of a distribution, as defined in Numerical
+Recipies (alternate defn in CRC Standard Probability and Statistics, p.6.)
+
+Usage:   lkurtosis(inlist)
+"""
+  return moment(inlist, 4) / pow(moment(inlist, 2), 2.0)
+
+
+def ldescribe(inlist):
+  """
+Returns some descriptive statistics of the passed list (assumed to be 1D).
+
+Usage:   ldescribe(inlist)
+Returns: n, mean, standard deviation, skew, kurtosis
+"""
+  n = len(inlist)
+  mm = (min(inlist), max(inlist))
+  m = mean(inlist)
+  sd = stdev(inlist)
+  sk = skew(inlist)
+  kurt = kurtosis(inlist)
+  return n, mm, m, sd, sk, kurt
+
+####################################
+#######  FREQUENCY STATS  ##########
+####################################
+
+
+def litemfreq(inlist):
+  """
+Returns a list of pairs.  Each pair consists of one of the scores in inlist
+and it's frequency count.  Assumes a 1D list is passed.
+
+Usage:   litemfreq(inlist)
+Returns: a 2D frequency table (col [0:n-1]=scores, col n=frequencies)
+"""
+  scores = pstat.unique(inlist)
+  scores.sort()
+  freq = []
+  for item in scores:
+    freq.append(inlist.count(item))
+  return pstat.abut(scores, freq)
+
+
+def lscoreatpercentile(inlist, percent):
+  """
+Returns the score at a given percentile relative to the distribution
+given by inlist.
+
+Usage:   lscoreatpercentile(inlist,percent)
+"""
+  if percent > 1:
+    print '\nDividing percent>1 by 100 in lscoreatpercentile().\n'
+    percent = percent / 100.0
+  targetcf = percent * len(inlist)
+  h, lrl, binsize, extras = histogram(inlist)
+  cumhist = cumsum(copy.deepcopy(h))
+  for i in range(len(cumhist)):
+    if cumhist[i] >= targetcf:
+      break
+  score = binsize * (
+      (targetcf - cumhist[i - 1]) / float(h[i])) + (lrl + binsize * i)
+  return score
+
+
+def lpercentileofscore(inlist, score, histbins=10, defaultlimits=None):
+  """
+Returns the percentile value of a score relative to the distribution
+given by inlist.  Formula depends on the values used to histogram the data(!).
+
+Usage:   lpercentileofscore(inlist,score,histbins=10,defaultlimits=None)
+"""
+
+  h, lrl, binsize, extras = histogram(inlist, histbins, defaultlimits)
+  cumhist = cumsum(copy.deepcopy(h))
+  i = int((score - lrl) / float(binsize))
+  pct = (cumhist[i - 1] + (
+      (score -
+       (lrl + binsize * i)) / float(binsize)) * h[i]) / float(len(inlist)) * 100
+  return pct
+
+
+def lhistogram(inlist, numbins=10, defaultreallimits=None, printextras=0):
+  """
+Returns (i) a list of histogram bin counts, (ii) the smallest value
+of the histogram binning, and (iii) the bin width (the last 2 are not
+necessarily integers).  Default number of bins is 10.  If no sequence object
+is given for defaultreallimits, the routine picks (usually non-pretty) bins
+spanning all the numbers in the inlist.
+
+Usage:   lhistogram (inlist, numbins=10,
+defaultreallimits=None,suppressoutput=0)
+Returns: list of bin values, lowerreallimit, binsize, extrapoints
+"""
+  if (defaultreallimits <> None):
+    if type(defaultreallimits) not in [ListType, TupleType] or len(
+        defaultreallimits) == 1:  # only one limit given, assumed to be lower one & upper is calc'd
+      lowerreallimit = defaultreallimits
+      upperreallimit = 1.000001 * max(inlist)
+    else:  # assume both limits given
+      lowerreallimit = defaultreallimits[0]
+      upperreallimit = defaultreallimits[1]
+    binsize = (upperreallimit - lowerreallimit) / float(numbins)
+  else:  # no limits given for histogram, both must be calc'd
+    estbinwidth = (max(inlist) -
+                   min(inlist)) / float(numbins) + 1e-6  #1=>cover all
+    binsize = ((max(inlist) - min(inlist) + estbinwidth)) / float(numbins)
+    lowerreallimit = min(inlist) - binsize / 2  #lower real limit,1st bin
+  bins = [0] * (numbins)
+  extrapoints = 0
+  for num in inlist:
+    try:
+      if (num - lowerreallimit) < 0:
+        extrapoints = extrapoints + 1
+      else:
+        bintoincrement = int((num - lowerreallimit) / float(binsize))
+        bins[bintoincrement] = bins[bintoincrement] + 1
+    except:
+      extrapoints = extrapoints + 1
+  if (extrapoints > 0 and printextras == 1):
+    print '\nPoints outside given histogram range =', extrapoints
+  return (bins, lowerreallimit, binsize, extrapoints)
+
+
+def lcumfreq(inlist, numbins=10, defaultreallimits=None):
+  """
+Returns a cumulative frequency histogram, using the histogram function.
+
+Usage:   lcumfreq(inlist,numbins=10,defaultreallimits=None)
+Returns: list of cumfreq bin values, lowerreallimit, binsize, extrapoints
+"""
+  h, l, b, e = histogram(inlist, numbins, defaultreallimits)
+  cumhist = cumsum(copy.deepcopy(h))
+  return cumhist, l, b, e
+
+
+def lrelfreq(inlist, numbins=10, defaultreallimits=None):
+  """
+Returns a relative frequency histogram, using the histogram function.
+
+Usage:   lrelfreq(inlist,numbins=10,defaultreallimits=None)
+Returns: list of cumfreq bin values, lowerreallimit, binsize, extrapoints
+"""
+  h, l, b, e = histogram(inlist, numbins, defaultreallimits)
+  for i in range(len(h)):
+    h[i] = h[i] / float(len(inlist))
+  return h, l, b, e
+
+####################################
+#####  VARIABILITY FUNCTIONS  ######
+####################################
+
+
+def lobrientransform(*args):
+  """
+Computes a transform on input data (any number of columns).  Used to
+test for homogeneity of variance prior to running one-way stats.  From
+Maxwell and Delaney, p.112.
+
+Usage:   lobrientransform(*args)
+Returns: transformed data for use in an ANOVA
+"""
+  TINY = 1e-10
+  k = len(args)
+  n = [0.0] * k
+  v = [0.0] * k
+  m = [0.0] * k
+  nargs = []
+  for i in range(k):
+    nargs.append(copy.deepcopy(args[i]))
+    n[i] = float(len(nargs[i]))
+    v[i] = var(nargs[i])
+    m[i] = mean(nargs[i])
+  for j in range(k):
+    for i in range(n[j]):
+      t1 = (n[j] - 1.5) * n[j] * (nargs[j][i] - m[j])**2
+      t2 = 0.5 * v[j] * (n[j] - 1.0)
+      t3 = (n[j] - 1.0) * (n[j] - 2.0)
+      nargs[j][i] = (t1 - t2) / float(t3)
+  check = 1
+  for j in range(k):
+    if v[j] - mean(nargs[j]) > TINY:
+      check = 0
+  if check <> 1:
+    raise ValueError, 'Problem in obrientransform.'
+  else:
+    return nargs
+
+
+def lsamplevar(inlist):
+  """
+Returns the variance of the values in the passed list using
+N for the denominator (i.e., DESCRIBES the sample variance only).
+
+Usage:   lsamplevar(inlist)
+"""
+  n = len(inlist)
+  mn = mean(inlist)
+  deviations = []
+  for item in inlist:
+    deviations.append(item - mn)
+  return ss(deviations) / float(n)
+
+
+def lsamplestdev(inlist):
+  """
+Returns the standard deviation of the values in the passed list using
+N for the denominator (i.e., DESCRIBES the sample stdev only).
+
+Usage:   lsamplestdev(inlist)
+"""
+  return math.sqrt(samplevar(inlist))
+
+
+def lcov(x, y, keepdims=0):
+  """
+Returns the estimated covariance of the values in the passed
+array (i.e., N-1).  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).  Set keepdims=1 to return an array with the
+same number of dimensions as inarray.
+
+Usage:   lcov(x,y,keepdims=0)
+"""
+
+  n = len(x)
+  xmn = mean(x)
+  ymn = mean(y)
+  xdeviations = [0] * len(x)
+  ydeviations = [0] * len(y)
+  for i in range(len(x)):
+    xdeviations[i] = x[i] - xmn
+    ydeviations[i] = y[i] - ymn
+  ss = 0.0
+  for i in range(len(xdeviations)):
+    ss = ss + xdeviations[i] * ydeviations[i]
+  return ss / float(n - 1)
+
+
+def lvar(inlist):
+  """
+Returns the variance of the values in the passed list using N-1
+for the denominator (i.e., for estimating population variance).
+
+Usage:   lvar(inlist)
+"""
+  n = len(inlist)
+  mn = mean(inlist)
+  deviations = [0] * len(inlist)
+  for i in range(len(inlist)):
+    deviations[i] = inlist[i] - mn
+  return ss(deviations) / float(n - 1)
+
+
+def lstdev(inlist):
+  """
+Returns the standard deviation of the values in the passed list
+using N-1 in the denominator (i.e., to estimate population stdev).
+
+Usage:   lstdev(inlist)
+"""
+  return math.sqrt(var(inlist))
+
+
+def lsterr(inlist):
+  """
+Returns the standard error of the values in the passed list using N-1
+in the denominator (i.e., to estimate population standard error).
+
+Usage:   lsterr(inlist)
+"""
+  return stdev(inlist) / float(math.sqrt(len(inlist)))
+
+
+def lsem(inlist):
+  """
+Returns the estimated standard error of the mean (sx-bar) of the
+values in the passed list.  sem = stdev / sqrt(n)
+
+Usage:   lsem(inlist)
+"""
+  sd = stdev(inlist)
+  n = len(inlist)
+  return sd / math.sqrt(n)
+
+
+def lz(inlist, score):
+  """
+Returns the z-score for a given input score, given that score and the
+list from which that score came.  Not appropriate for population calculations.
+
+Usage:   lz(inlist, score)
+"""
+  z = (score - mean(inlist)) / samplestdev(inlist)
+  return z
+
+
+def lzs(inlist):
+  """
+Returns a list of z-scores, one for each score in the passed list.
+
+Usage:   lzs(inlist)
+"""
+  zscores = []
+  for item in inlist:
+    zscores.append(z(inlist, item))
+  return zscores
+
+####################################
+#######  TRIMMING FUNCTIONS  #######
+####################################
+
+
+def ltrimboth(l, proportiontocut):
+  """
+Slices off the passed proportion of items from BOTH ends of the passed
+list (i.e., with proportiontocut=0.1, slices 'leftmost' 10% AND 'rightmost'
+10% of scores.  Assumes list is sorted by magnitude.  Slices off LESS if
+proportion results in a non-integer slice index (i.e., conservatively
+slices off proportiontocut).
+
+Usage:   ltrimboth (l,proportiontocut)
+Returns: trimmed version of list l
+"""
+  lowercut = int(proportiontocut * len(l))
+  uppercut = len(l) - lowercut
+  return l[lowercut:uppercut]
+
+
+def ltrim1(l, proportiontocut, tail='right'):
+  """
+Slices off the passed proportion of items from ONE end of the passed
+list (i.e., if proportiontocut=0.1, slices off 'leftmost' or 'rightmost'
+10% of scores).  Slices off LESS if proportion results in a non-integer
+slice index (i.e., conservatively slices off proportiontocut).
+
+Usage:   ltrim1 (l,proportiontocut,tail='right')  or set tail='left'
+Returns: trimmed version of list l
+"""
+  if tail == 'right':
+    lowercut = 0
+    uppercut = len(l) - int(proportiontocut * len(l))
+  elif tail == 'left':
+    lowercut = int(proportiontocut * len(l))
+    uppercut = len(l)
+  return l[lowercut:uppercut]
+
+####################################
+#####  CORRELATION FUNCTIONS  ######
+####################################
+
+
+def lpaired(x, y):
+  """
+Interactively determines the type of data and then runs the
+appropriated statistic for paired group data.
+
+Usage:   lpaired(x,y)
+Returns: appropriate statistic name, value, and probability
+"""
+  samples = ''
+  while samples not in ['i', 'r', 'I', 'R', 'c', 'C']:
+    print '\nIndependent or related samples, or correlation (i,r,c): ',
+    samples = raw_input()
+
+  if samples in ['i', 'I', 'r', 'R']:
+    print '\nComparing variances ...',
+    # USE O'BRIEN'S TEST FOR HOMOGENEITY OF VARIANCE, Maxwell & delaney, p.112
+    r = obrientransform(x, y)
+    f, p = F_oneway(pstat.colex(r, 0), pstat.colex(r, 1))
+    if p < 0.05:
+      vartype = 'unequal, p=' + str(round(p, 4))
+    else:
+      vartype = 'equal'
+    print vartype
+    if samples in ['i', 'I']:
+      if vartype[0] == 'e':
+        t, p = ttest_ind(x, y, 0)
+        print '\nIndependent samples t-test:  ', round(t, 4), round(p, 4)
+      else:
+        if len(x) > 20 or len(y) > 20:
+          z, p = ranksums(x, y)
+          print '\nRank Sums test (NONparametric, n>20):  ', round(z, 4), round(
+              p, 4)
+        else:
+          u, p = mannwhitneyu(x, y)
+          print '\nMann-Whitney U-test (NONparametric, ns<20):  ', round(
+              u, 4), round(p, 4)
+
+    else:  # RELATED SAMPLES
+      if vartype[0] == 'e':
+        t, p = ttest_rel(x, y, 0)
+        print '\nRelated samples t-test:  ', round(t, 4), round(p, 4)
+      else:
+        t, p = ranksums(x, y)
+        print '\nWilcoxon T-test (NONparametric):  ', round(t, 4), round(p, 4)
+  else:  # CORRELATION ANALYSIS
+    corrtype = ''
+    while corrtype not in ['c', 'C', 'r', 'R', 'd', 'D']:
+      print '\nIs the data Continuous, Ranked, or Dichotomous (c,r,d): ',
+      corrtype = raw_input()
+    if corrtype in ['c', 'C']:
+      m, b, r, p, see = linregress(x, y)
+      print '\nLinear regression for continuous variables ...'
+      lol = [['Slope', 'Intercept', 'r', 'Prob', 'SEestimate'],
+             [round(m, 4), round(b, 4), round(r, 4), round(p, 4), round(see, 4)]
+            ]
+      pstat.printcc(lol)
+    elif corrtype in ['r', 'R']:
+      r, p = spearmanr(x, y)
+      print '\nCorrelation for ranked variables ...'
+      print "Spearman's r: ", round(r, 4), round(p, 4)
+    else:  # DICHOTOMOUS
+      r, p = pointbiserialr(x, y)
+      print '\nAssuming x contains a dichotomous variable ...'
+      print 'Point Biserial r: ', round(r, 4), round(p, 4)
+  print '\n\n'
+  return None
+
+
+def lpearsonr(x, y):
+  """
+Calculates a Pearson correlation coefficient and the associated
+probability value.  Taken from Heiman's Basic Statistics for the Behav.
+Sci (2nd), p.195.
+
+Usage:   lpearsonr(x,y)      where x and y are equal-length lists
+Returns: Pearson's r value, two-tailed p-value
+"""
+  TINY = 1.0e-30
+  if len(x) <> len(y):
+    raise ValueError, 'Input values not paired in pearsonr.  Aborting.'
+  n = len(x)
+  x = map(float, x)
+  y = map(float, y)
+  xmean = mean(x)
+  ymean = mean(y)
+  r_num = n * (summult(x, y)) - sum(x) * sum(y)
+  r_den = math.sqrt((n * ss(x) - square_of_sums(x)) *
+                    (n * ss(y) - square_of_sums(y)))
+  r = (r_num / r_den)  # denominator already a float
+  df = n - 2
+  t = r * math.sqrt(df / ((1.0 - r + TINY) * (1.0 + r + TINY)))
+  prob = betai(0.5 * df, 0.5, df / float(df + t * t))
+  return r, prob
+
+
+def llincc(x, y):
+  """
+Calculates Lin's concordance correlation coefficient.
+
+Usage:   alincc(x,y)    where x, y are equal-length arrays
+Returns: Lin's CC
+"""
+  covar = lcov(x, y) * (len(x) - 1) / float(len(x))  # correct denom to n
+  xvar = lvar(x) * (len(x) - 1) / float(len(x))  # correct denom to n
+  yvar = lvar(y) * (len(y) - 1) / float(len(y))  # correct denom to n
+  lincc = (2 * covar) / ((xvar + yvar) + ((amean(x) - amean(y))**2))
+  return lincc
+
+
+def lspearmanr(x, y):
+  """
+Calculates a Spearman rank-order correlation coefficient.  Taken
+from Heiman's Basic Statistics for the Behav. Sci (1st), p.192.
+
+Usage:   lspearmanr(x,y)      where x and y are equal-length lists
+Returns: Spearman's r, two-tailed p-value
+"""
+  TINY = 1e-30
+  if len(x) <> len(y):
+    raise ValueError, 'Input values not paired in spearmanr.  Aborting.'
+  n = len(x)
+  rankx = rankdata(x)
+  ranky = rankdata(y)
+  dsq = sumdiffsquared(rankx, ranky)
+  rs = 1 - 6 * dsq / float(n * (n**2 - 1))
+  t = rs * math.sqrt((n - 2) / ((rs + 1.0) * (1.0 - rs)))
+  df = n - 2
+  probrs = betai(0.5 * df, 0.5, df / (df + t * t))  # t already a float
+  # probability values for rs are from part 2 of the spearman function in
+  # Numerical Recipies, p.510.  They are close to tables, but not exact. (?)
+  return rs, probrs
+
+
+def lpointbiserialr(x, y):
+  """
+Calculates a point-biserial correlation coefficient and the associated
+probability value.  Taken from Heiman's Basic Statistics for the Behav.
+Sci (1st), p.194.
+
+Usage:   lpointbiserialr(x,y)      where x,y are equal-length lists
+Returns: Point-biserial r, two-tailed p-value
+"""
+  TINY = 1e-30
+  if len(x) <> len(y):
+    raise ValueError, 'INPUT VALUES NOT PAIRED IN pointbiserialr.  ABORTING.'
+  data = pstat.abut(x, y)
+  categories = pstat.unique(x)
+  if len(categories) <> 2:
+    raise ValueError, 'Exactly 2 categories required for pointbiserialr().'
+  else:  # there are 2 categories, continue
+    codemap = pstat.abut(categories, range(2))
+    recoded = pstat.recode(data, codemap, 0)
+    x = pstat.linexand(data, 0, categories[0])
+    y = pstat.linexand(data, 0, categories[1])
+    xmean = mean(pstat.colex(x, 1))
+    ymean = mean(pstat.colex(y, 1))
+    n = len(data)
+    adjust = math.sqrt((len(x) / float(n)) * (len(y) / float(n)))
+    rpb = (ymean - xmean) / samplestdev(pstat.colex(data, 1)) * adjust
+    df = n - 2
+    t = rpb * math.sqrt(df / ((1.0 - rpb + TINY) * (1.0 + rpb + TINY)))
+    prob = betai(0.5 * df, 0.5, df / (df + t * t))  # t already a float
+    return rpb, prob
+
+
+def lkendalltau(x, y):
+  """
+Calculates Kendall's tau ... correlation of ordinal data.  Adapted
+from function kendl1 in Numerical Recipies.  Needs good test-routine.@@@
+
+Usage:   lkendalltau(x,y)
+Returns: Kendall's tau, two-tailed p-value
+"""
+  n1 = 0
+  n2 = 0
+  iss = 0
+  for j in range(len(x) - 1):
+    for k in range(j, len(y)):
+      a1 = x[j] - x[k]
+      a2 = y[j] - y[k]
+      aa = a1 * a2
+      if (aa):  # neither list has a tie
+        n1 = n1 + 1
+        n2 = n2 + 1
+        if aa > 0:
+          iss = iss + 1
+        else:
+          iss = iss - 1
+      else:
+        if (a1):
+          n1 = n1 + 1
+        else:
+          n2 = n2 + 1
+  tau = iss / math.sqrt(n1 * n2)
+  svar = (4.0 * len(x) + 10.0) / (9.0 * len(x) * (len(x) - 1))
+  z = tau / math.sqrt(svar)
+  prob = erfcc(abs(z) / 1.4142136)
+  return tau, prob
+
+
+def llinregress(x, y):
+  """
+Calculates a regression line on x,y pairs.
+
+Usage:   llinregress(x,y)      x,y are equal-length lists of x-y coordinates
+Returns: slope, intercept, r, two-tailed prob, sterr-of-estimate
+"""
+  TINY = 1.0e-20
+  if len(x) <> len(y):
+    raise ValueError, 'Input values not paired in linregress.  Aborting.'
+  n = len(x)
+  x = map(float, x)
+  y = map(float, y)
+  xmean = mean(x)
+  ymean = mean(y)
+  r_num = float(n * (summult(x, y)) - sum(x) * sum(y))
+  r_den = math.sqrt((n * ss(x) - square_of_sums(x)) *
+                    (n * ss(y) - square_of_sums(y)))
+  r = r_num / r_den
+  z = 0.5 * math.log((1.0 + r + TINY) / (1.0 - r + TINY))
+  df = n - 2
+  t = r * math.sqrt(df / ((1.0 - r + TINY) * (1.0 + r + TINY)))
+  prob = betai(0.5 * df, 0.5, df / (df + t * t))
+  slope = r_num / float(n * ss(x) - square_of_sums(x))
+  intercept = ymean - slope * xmean
+  sterrest = math.sqrt(1 - r * r) * samplestdev(y)
+  return slope, intercept, r, prob, sterrest
+
+####################################
+#####  INFERENTIAL STATISTICS  #####
+####################################
+
+
+def lttest_1samp(a, popmean, printit=0, name='Sample', writemode='a'):
+  """
+Calculates the t-obtained for the independent samples T-test on ONE group
+of scores a, given a population mean.  If printit=1, results are printed
+to the screen.  If printit='filename', the results are output to 'filename'
+using the given writemode (default=append).  Returns t-value, and prob.
+
+Usage:   lttest_1samp(a,popmean,Name='Sample',printit=0,writemode='a')
+Returns: t-value, two-tailed prob
+"""
+  x = mean(a)
+  v = var(a)
+  n = len(a)
+  df = n - 1
+  svar = ((n - 1) * v) / float(df)
+  t = (x - popmean) / math.sqrt(svar * (1.0 / n))
+  prob = betai(0.5 * df, 0.5, float(df) / (df + t * t))
+
+  if printit <> 0:
+    statname = 'Single-sample T-test.'
+    outputpairedstats(printit, writemode, 'Population', '--', popmean, 0, 0, 0,
+                      name, n, x, v, min(a), max(a), statname, t, prob)
+  return t, prob
+
+
+def lttest_ind(a, b, printit=0, name1='Samp1', name2='Samp2', writemode='a'):
+  """
+Calculates the t-obtained T-test on TWO INDEPENDENT samples of
+scores a, and b.  From Numerical Recipies, p.483.  If printit=1, results
+are printed to the screen.  If printit='filename', the results are output
+to 'filename' using the given writemode (default=append).  Returns t-value,
+and prob.
+
+Usage:   lttest_ind(a,b,printit=0,name1='Samp1',name2='Samp2',writemode='a')
+Returns: t-value, two-tailed prob
+"""
+  x1 = mean(a)
+  x2 = mean(b)
+  v1 = stdev(a)**2
+  v2 = stdev(b)**2
+  n1 = len(a)
+  n2 = len(b)
+  df = n1 + n2 - 2
+  svar = ((n1 - 1) * v1 + (n2 - 1) * v2) / float(df)
+  if not svar:
+    svar = 1.0e-26
+  t = (x1 - x2) / math.sqrt(svar * (1.0 / n1 + 1.0 / n2))
+  prob = betai(0.5 * df, 0.5, df / (df + t * t))
+
+  if printit <> 0:
+    statname = 'Independent samples T-test.'
+    outputpairedstats(printit, writemode, name1, n1, x1, v1, min(a), max(a),
+                      name2, n2, x2, v2, min(b), max(b), statname, t, prob)
+  return t, prob
+
+
+def lttest_rel(a,
+               b,
+               printit=0,
+               name1='Sample1',
+               name2='Sample2',
+               writemode='a'):
+  """
+Calculates the t-obtained T-test on TWO RELATED samples of scores,
+a and b.  From Numerical Recipies, p.483.  If printit=1, results are
+printed to the screen.  If printit='filename', the results are output to
+'filename' using the given writemode (default=append).  Returns t-value,
+and prob.
+
+Usage:   lttest_rel(a,b,printit=0,name1='Sample1',name2='Sample2',writemode='a')
+Returns: t-value, two-tailed prob
+"""
+  if len(a) <> len(b):
+    raise ValueError, 'Unequal length lists in ttest_rel.'
+  x1 = mean(a)
+  x2 = mean(b)
+  v1 = var(a)
+  v2 = var(b)
+  n = len(a)
+  cov = 0
+  for i in range(len(a)):
+    cov = cov + (a[i] - x1) * (b[i] - x2)
+  df = n - 1
+  cov = cov / float(df)
+  sd = math.sqrt((v1 + v2 - 2.0 * cov) / float(n))
+  t = (x1 - x2) / sd
+  prob = betai(0.5 * df, 0.5, df / (df + t * t))
+
+  if printit <> 0:
+    statname = 'Related samples T-test.'
+    outputpairedstats(printit, writemode, name1, n, x1, v1, min(a), max(a),
+                      name2, n, x2, v2, min(b), max(b), statname, t, prob)
+  return t, prob
+
+
+def lchisquare(f_obs, f_exp=None):
+  """
+Calculates a one-way chi square for list of observed frequencies and returns
+the result.  If no expected frequencies are given, the total N is assumed to
+be equally distributed across all groups.
+
+Usage:   lchisquare(f_obs, f_exp=None)   f_obs = list of observed cell freq.
+Returns: chisquare-statistic, associated p-value
+"""
+  k = len(f_obs)  # number of groups
+  if f_exp == None:
+    f_exp = [sum(f_obs) / float(k)] * len(f_obs)  # create k bins with = freq.
+  chisq = 0
+  for i in range(len(f_obs)):
+    chisq = chisq + (f_obs[i] - f_exp[i])**2 / float(f_exp[i])
+  return chisq, chisqprob(chisq, k - 1)
+
+
+def lks_2samp(data1, data2):
+  """
+Computes the Kolmogorov-Smirnof statistic on 2 samples.  From
+Numerical Recipies in C, page 493.
+
+Usage:   lks_2samp(data1,data2)   data1&2 are lists of values for 2 conditions
+Returns: KS D-value, associated p-value
+"""
+  j1 = 0
+  j2 = 0
+  fn1 = 0.0
+  fn2 = 0.0
+  n1 = len(data1)
+  n2 = len(data2)
+  en1 = n1
+  en2 = n2
+  d = 0.0
+  data1.sort()
+  data2.sort()
+  while j1 < n1 and j2 < n2:
+    d1 = data1[j1]
+    d2 = data2[j2]
+    if d1 <= d2:
+      fn1 = (j1) / float(en1)
+      j1 = j1 + 1
+    if d2 <= d1:
+      fn2 = (j2) / float(en2)
+      j2 = j2 + 1
+    dt = (fn2 - fn1)
+    if math.fabs(dt) > math.fabs(d):
+      d = dt
+  try:
+    en = math.sqrt(en1 * en2 / float(en1 + en2))
+    prob = ksprob((en + 0.12 + 0.11 / en) * abs(d))
+  except:
+    prob = 1.0
+  return d, prob
+
+
+def lmannwhitneyu(x, y):
+  """
+Calculates a Mann-Whitney U statistic on the provided scores and
+returns the result.  Use only when the n in each condition is < 20 and
+you have 2 independent samples of ranks.  NOTE: Mann-Whitney U is
+significant if the u-obtained is LESS THAN or equal to the critical
+value of U found in the tables.  Equivalent to Kruskal-Wallis H with
+just 2 groups.
+
+Usage:   lmannwhitneyu(data)
+Returns: u-statistic, one-tailed p-value (i.e., p(z(U)))
+"""
+  n1 = len(x)
+  n2 = len(y)
+  ranked = rankdata(x + y)
+  rankx = ranked[0:n1]  # get the x-ranks
+  ranky = ranked[n1:]  # the rest are y-ranks
+  u1 = n1 * n2 + (n1 * (n1 + 1)) / 2.0 - sum(rankx)  # calc U for x
+  u2 = n1 * n2 - u1  # remainder is U for y
+  bigu = max(u1, u2)
+  smallu = min(u1, u2)
+  proportion = bigu / float(n1 * n2)
+  T = math.sqrt(tiecorrect(ranked))  # correction factor for tied scores
+  if T == 0:
+    raise ValueError, 'All numbers are identical in lmannwhitneyu'
+  sd = math.sqrt(T * n1 * n2 * (n1 + n2 + 1) / 12.0)
+  z = abs((bigu - n1 * n2 / 2.0) / sd)  # normal approximation for prob calc
+  return smallu, 1.0 - zprob(z)  #, proportion
+
+
+def ltiecorrect(rankvals):
+  """
+Corrects for ties in Mann Whitney U and Kruskal Wallis H tests.  See
+Siegel, S. (1956) Nonparametric Statistics for the Behavioral Sciences.
+New York: McGraw-Hill.  Code adapted from |Stat rankind.c code.
+
+Usage:   ltiecorrect(rankvals)
+Returns: T correction factor for U or H
+"""
+  sorted, posn = shellsort(rankvals)
+  n = len(sorted)
+  T = 0.0
+  i = 0
+  while (i < n - 1):
+    if sorted[i] == sorted[i + 1]:
+      nties = 1
+      while (i < n - 1) and (sorted[i] == sorted[i + 1]):
+        nties = nties + 1
+        i = i + 1
+      T = T + nties**3 - nties
+    i = i + 1
+  T = T / float(n**3 - n)
+  return 1.0 - T
+
+
+def lranksums(x, y):
+  """
+Calculates the rank sums statistic on the provided scores and
+returns the result.  Use only when the n in each condition is > 20 and you
+have 2 independent samples of ranks.
+
+Usage:   lranksums(x,y)
+Returns: a z-statistic, two-tailed p-value
+"""
+  n1 = len(x)
+  n2 = len(y)
+  alldata = x + y
+  ranked = rankdata(alldata)
+  x = ranked[:n1]
+  y = ranked[n1:]
+  s = sum(x)
+  expected = n1 * (n1 + n2 + 1) / 2.0
+  z = (s - expected) / math.sqrt(n1 * n2 * (n1 + n2 + 1) / 12.0)
+  prob = 2 * (1.0 - zprob(abs(z)))
+  return z, prob
+
+
+def lwilcoxont(x, y):
+  """
+Calculates the Wilcoxon T-test for related samples and returns the
+result.  A non-parametric T-test.
+
+Usage:   lwilcoxont(x,y)
+Returns: a t-statistic, two-tail probability estimate
+"""
+  if len(x) <> len(y):
+    raise ValueError, 'Unequal N in wilcoxont.  Aborting.'
+  d = []
+  for i in range(len(x)):
+    diff = x[i] - y[i]
+    if diff <> 0:
+      d.append(diff)
+  count = len(d)
+  absd = map(abs, d)
+  absranked = rankdata(absd)
+  r_plus = 0.0
+  r_minus = 0.0
+  for i in range(len(absd)):
+    if d[i] < 0:
+      r_minus = r_minus + absranked[i]
+    else:
+      r_plus = r_plus + absranked[i]
+  wt = min(r_plus, r_minus)
+  mn = count * (count + 1) * 0.25
+  se = math.sqrt(count * (count + 1) * (2.0 * count + 1.0) / 24.0)
+  z = math.fabs(wt - mn) / se
+  prob = 2 * (1.0 - zprob(abs(z)))
+  return wt, prob
+
+
+def lkruskalwallish(*args):
+  """
+The Kruskal-Wallis H-test is a non-parametric ANOVA for 3 or more
+groups, requiring at least 5 subjects in each group.  This function
+calculates the Kruskal-Wallis H-test for 3 or more independent samples
+and returns the result.
+
+Usage:   lkruskalwallish(*args)
+Returns: H-statistic (corrected for ties), associated p-value
+"""
+  args = list(args)
+  n = [0] * len(args)
+  all = []
+  n = map(len, args)
+  for i in range(len(args)):
+    all = all + args[i]
+  ranked = rankdata(all)
+  T = tiecorrect(ranked)
+  for i in range(len(args)):
+    args[i] = ranked[0:n[i]]
+    del ranked[0:n[i]]
+  rsums = []
+  for i in range(len(args)):
+    rsums.append(sum(args[i])**2)
+    rsums[i] = rsums[i] / float(n[i])
+  ssbn = sum(rsums)
+  totaln = sum(n)
+  h = 12.0 / (totaln * (totaln + 1)) * ssbn - 3 * (totaln + 1)
+  df = len(args) - 1
+  if T == 0:
+    raise ValueError, 'All numbers are identical in lkruskalwallish'
+  h = h / float(T)
+  return h, chisqprob(h, df)
+
+
+def lfriedmanchisquare(*args):
+  """
+Friedman Chi-Square is a non-parametric, one-way within-subjects
+ANOVA.  This function calculates the Friedman Chi-square test for repeated
+measures and returns the result, along with the associated probability
+value.  It assumes 3 or more repeated measures.  Only 3 levels requires a
+minimum of 10 subjects in the study.  Four levels requires 5 subjects per
+level(??).
+
+Usage:   lfriedmanchisquare(*args)
+Returns: chi-square statistic, associated p-value
+"""
+  k = len(args)
+  if k < 3:
+    raise ValueError, 'Less than 3 levels.  Friedman test not appropriate.'
+  n = len(args[0])
+  data = apply(pstat.abut, tuple(args))
+  for i in range(len(data)):
+    data[i] = rankdata(data[i])
+  ssbn = 0
+  for i in range(k):
+    ssbn = ssbn + sum(args[i])**2
+  chisq = 12.0 / (k * n * (k + 1)) * ssbn - 3 * n * (k + 1)
+  return chisq, chisqprob(chisq, k - 1)
+
+####################################
+####  PROBABILITY CALCULATIONS  ####
+####################################
+
+
+def lchisqprob(chisq, df):
+  """
+Returns the (1-tailed) probability value associated with the provided
+chi-square value and df.  Adapted from chisq.c in Gary Perlman's |Stat.
+
+Usage:   lchisqprob(chisq,df)
+"""
+  BIG = 20.0
+
+  def ex(x):
+    BIG = 20.0
+    if x < -BIG:
+      return 0.0
+    else:
+      return math.exp(x)
+
+  if chisq <= 0 or df < 1:
+    return 1.0
+  a = 0.5 * chisq
+  if df % 2 == 0:
+    even = 1
+  else:
+    even = 0
+  if df > 1:
+    y = ex(-a)
+  if even:
+    s = y
+  else:
+    s = 2.0 * zprob(-math.sqrt(chisq))
+  if (df > 2):
+    chisq = 0.5 * (df - 1.0)
+    if even:
+      z = 1.0
+    else:
+      z = 0.5
+    if a > BIG:
+      if even:
+        e = 0.0
+      else:
+        e = math.log(math.sqrt(math.pi))
+      c = math.log(a)
+      while (z <= chisq):
+        e = math.log(z) + e
+        s = s + ex(c * z - a - e)
+        z = z + 1.0
+      return s
+    else:
+      if even:
+        e = 1.0
+      else:
+        e = 1.0 / math.sqrt(math.pi) / math.sqrt(a)
+      c = 0.0
+      while (z <= chisq):
+        e = e * (a / float(z))
+        c = c + e
+        z = z + 1.0
+      return (c * y + s)
+  else:
+    return s
+
+
+def lerfcc(x):
+  """
+Returns the complementary error function erfc(x) with fractional
+error everywhere less than 1.2e-7.  Adapted from Numerical Recipies.
+
+Usage:   lerfcc(x)
+"""
+  z = abs(x)
+  t = 1.0 / (1.0 + 0.5 * z)
+  ans = t * math.exp(-z * z - 1.26551223 + t * (1.00002368 + t * (
+      0.37409196 + t * (0.09678418 + t * (-0.18628806 + t * (0.27886807 + t * (
+          -1.13520398 + t * (1.48851587 + t * (-0.82215223 + t * 0.17087277)))))
+                       ))))
+  if x >= 0:
+    return ans
+  else:
+    return 2.0 - ans
+
+
+def lzprob(z):
+  """
+Returns the area under the normal curve 'to the left of' the given z value.
+Thus,
+    for z<0, zprob(z) = 1-tail probability
+    for z>0, 1.0-zprob(z) = 1-tail probability
+    for any z, 2.0*(1.0-zprob(abs(z))) = 2-tail probability
+Adapted from z.c in Gary Perlman's |Stat.
+
+Usage:   lzprob(z)
+"""
+  Z_MAX = 6.0  # maximum meaningful z-value
+  if z == 0.0:
+    x = 0.0
+  else:
+    y = 0.5 * math.fabs(z)
+    if y >= (Z_MAX * 0.5):
+      x = 1.0
+    elif (y < 1.0):
+      w = y * y
+      x = ((
+          ((((((0.000124818987 * w - 0.001075204047) * w + 0.005198775019) * w -
+              0.019198292004) * w + 0.059054035642) * w - 0.151968751364) * w +
+           0.319152932694) * w - 0.531923007300) * w + 0.797884560593) * y * 2.0
+    else:
+      y = y - 2.0
+      x = (((((((
+          ((((((-0.000045255659 * y + 0.000152529290) * y - 0.000019538132) * y
+              - 0.000676904986) * y + 0.001390604284) * y - 0.000794620820) * y
+           - 0.002034254874) * y + 0.006549791214) * y - 0.010557625006) * y +
+               0.011630447319) * y - 0.009279453341) * y + 0.005353579108) * y -
+            0.002141268741) * y + 0.000535310849) * y + 0.999936657524
+  if z > 0.0:
+    prob = ((x + 1.0) * 0.5)
+  else:
+    prob = ((1.0 - x) * 0.5)
+  return prob
+
+
+def lksprob(alam):
+  """
+Computes a Kolmolgorov-Smirnov t-test significance level.  Adapted from
+Numerical Recipies.
+
+Usage:   lksprob(alam)
+"""
+  fac = 2.0
+  sum = 0.0
+  termbf = 0.0
+  a2 = -2.0 * alam * alam
+  for j in range(1, 201):
+    term = fac * math.exp(a2 * j * j)
+    sum = sum + term
+    if math.fabs(term) <= (0.001 * termbf) or math.fabs(term) < (1.0e-8 * sum):
+      return sum
+    fac = -fac
+    termbf = math.fabs(term)
+  return 1.0  # Get here only if fails to converge; was 0.0!!
+
+
+def lfprob(dfnum, dfden, F):
+  """
+Returns the (1-tailed) significance level (p-value) of an F
+statistic given the degrees of freedom for the numerator (dfR-dfF) and
+the degrees of freedom for the denominator (dfF).
+
+Usage:   lfprob(dfnum, dfden, F)   where usually dfnum=dfbn, dfden=dfwn
+"""
+  p = betai(0.5 * dfden, 0.5 * dfnum, dfden / float(dfden + dfnum * F))
+  return p
+
+
+def lbetacf(a, b, x):
+  """
+This function evaluates the continued fraction form of the incomplete
+Beta function, betai.  (Adapted from: Numerical Recipies in C.)
+
+Usage:   lbetacf(a,b,x)
+"""
+  ITMAX = 200
+  EPS = 3.0e-7
+
+  bm = az = am = 1.0
+  qab = a + b
+  qap = a + 1.0
+  qam = a - 1.0
+  bz = 1.0 - qab * x / qap
+  for i in range(ITMAX + 1):
+    em = float(i + 1)
+    tem = em + em
+    d = em * (b - em) * x / ((qam + tem) * (a + tem))
+    ap = az + d * am
+    bp = bz + d * bm
+    d = -(a + em) * (qab + em) * x / ((qap + tem) * (a + tem))
+    app = ap + d * az
+    bpp = bp + d * bz
+    aold = az
+    am = ap / bpp
+    bm = bp / bpp
+    az = app / bpp
+    bz = 1.0
+    if (abs(az - aold) < (EPS * abs(az))):
+      return az
+  print 'a or b too big, or ITMAX too small in Betacf.'
+
+
+def lgammln(xx):
+  """
+Returns the gamma function of xx.
+    Gamma(z) = Integral(0,infinity) of t^(z-1)exp(-t) dt.
+(Adapted from: Numerical Recipies in C.)
+
+Usage:   lgammln(xx)
+"""
+
+  coeff = [76.18009173, -86.50532033, 24.01409822, -1.231739516, 0.120858003e-2,
+           -0.536382e-5]
+  x = xx - 1.0
+  tmp = x + 5.5
+  tmp = tmp - (x + 0.5) * math.log(tmp)
+  ser = 1.0
+  for j in range(len(coeff)):
+    x = x + 1
+    ser = ser + coeff[j] / x
+  return -tmp + math.log(2.50662827465 * ser)
+
+
+def lbetai(a, b, x):
+  """
+Returns the incomplete beta function:
+
+    I-sub-x(a,b) = 1/B(a,b)*(Integral(0,x) of t^(a-1)(1-t)^(b-1) dt)
+
+where a,b>0 and B(a,b) = G(a)*G(b)/(G(a+b)) where G(a) is the gamma
+function of a.  The continued fraction formulation is implemented here,
+using the betacf function.  (Adapted from: Numerical Recipies in C.)
+
+Usage:   lbetai(a,b,x)
+"""
+  if (x < 0.0 or x > 1.0):
+    raise ValueError, 'Bad x in lbetai'
+  if (x == 0.0 or x == 1.0):
+    bt = 0.0
+  else:
+    bt = math.exp(gammln(a + b) - gammln(a) - gammln(b) + a * math.log(x) + b *
+                  math.log(1.0 - x))
+  if (x < (a + 1.0) / (a + b + 2.0)):
+    return bt * betacf(a, b, x) / float(a)
+  else:
+    return 1.0 - bt * betacf(b, a, 1.0 - x) / float(b)
+
+####################################
+#######  ANOVA CALCULATIONS  #######
+####################################
+
+
+def lF_oneway(*lists):
+  """
+Performs a 1-way ANOVA, returning an F-value and probability given
+any number of groups.  From Heiman, pp.394-7.
+
+Usage:   F_oneway(*lists)    where *lists is any number of lists, one per
+                                  treatment group
+Returns: F value, one-tailed p-value
+"""
+  a = len(lists)  # ANOVA on 'a' groups, each in it's own list
+  means = [0] * a
+  vars = [0] * a
+  ns = [0] * a
+  alldata = []
+  tmp = map(N.array, lists)
+  means = map(amean, tmp)
+  vars = map(avar, tmp)
+  ns = map(len, lists)
+  for i in range(len(lists)):
+    alldata = alldata + lists[i]
+  alldata = N.array(alldata)
+  bign = len(alldata)
+  sstot = ass(alldata) - (asquare_of_sums(alldata) / float(bign))
+  ssbn = 0
+  for list in lists:
+    ssbn = ssbn + asquare_of_sums(N.array(list)) / float(len(list))
+  ssbn = ssbn - (asquare_of_sums(alldata) / float(bign))
+  sswn = sstot - ssbn
+  dfbn = a - 1
+  dfwn = bign - a
+  msb = ssbn / float(dfbn)
+  msw = sswn / float(dfwn)
+  f = msb / msw
+  prob = fprob(dfbn, dfwn, f)
+  return f, prob
+
+
+def lF_value(ER, EF, dfnum, dfden):
+  """
+Returns an F-statistic given the following:
+        ER  = error associated with the null hypothesis (the Restricted model)
+        EF  = error associated with the alternate hypothesis (the Full model)
+        dfR-dfF = degrees of freedom of the numerator
+        dfF = degrees of freedom associated with the denominator/Full model
+
+Usage:   lF_value(ER,EF,dfnum,dfden)
+"""
+  return ((ER - EF) / float(dfnum) / (EF / float(dfden)))
+
+####################################
+########  SUPPORT FUNCTIONS  #######
+####################################
+
+
+def writecc(listoflists, file, writetype='w', extra=2):
+  """
+Writes a list of lists to a file in columns, customized by the max
+size of items within the columns (max size of items in col, +2 characters)
+to specified file.  File-overwrite is the default.
+
+Usage:   writecc (listoflists,file,writetype='w',extra=2)
+Returns: None
+"""
+  if type(listoflists[0]) not in [ListType, TupleType]:
+    listoflists = [listoflists]
+  outfile = open(file, writetype)
+  rowstokill = []
+  list2print = copy.deepcopy(listoflists)
+  for i in range(len(listoflists)):
+    if listoflists[i] == [
+        '\n'
+    ] or listoflists[i] == '\n' or listoflists[i] == 'dashes':
+      rowstokill = rowstokill + [i]
+  rowstokill.reverse()
+  for row in rowstokill:
+    del list2print[row]
+  maxsize = [0] * len(list2print[0])
+  for col in range(len(list2print[0])):
+    items = pstat.colex(list2print, col)
+    items = map(pstat.makestr, items)
+    maxsize[col] = max(map(len, items)) + extra
+  for row in listoflists:
+    if row == ['\n'] or row == '\n':
+      outfile.write('\n')
+    elif row == ['dashes'] or row == 'dashes':
+      dashes = [0] * len(maxsize)
+      for j in range(len(maxsize)):
+        dashes[j] = '-' * (maxsize[j] - 2)
+      outfile.write(pstat.lineincustcols(dashes, maxsize))
+    else:
+      outfile.write(pstat.lineincustcols(row, maxsize))
+    outfile.write('\n')
+  outfile.close()
+  return None
+
+
+def lincr(l, cap):  # to increment a list up to a max-list of 'cap'
+  """
+Simulate a counting system from an n-dimensional list.
+
+Usage:   lincr(l,cap)   l=list to increment, cap=max values for each list pos'n
+Returns: next set of values for list l, OR -1 (if overflow)
+"""
+  l[0] = l[0] + 1  # e.g., [0,0,0] --> [2,4,3] (=cap)
+  for i in range(len(l)):
+    if l[i] > cap[i] and i < len(l) - 1:  # if carryover AND not done
+      l[i] = 0
+      l[i + 1] = l[i + 1] + 1
+    elif l[i] > cap[i] and i == len(
+        l) - 1:  # overflow past last column, must be finished
+      l = -1
+  return l
+
+
+def lsum(inlist):
+  """
+Returns the sum of the items in the passed list.
+
+Usage:   lsum(inlist)
+"""
+  s = 0
+  for item in inlist:
+    s = s + item
+  return s
+
+
+def lcumsum(inlist):
+  """
+Returns a list consisting of the cumulative sum of the items in the
+passed list.
+
+Usage:   lcumsum(inlist)
+"""
+  newlist = copy.deepcopy(inlist)
+  for i in range(1, len(newlist)):
+    newlist[i] = newlist[i] + newlist[i - 1]
+  return newlist
+
+
+def lss(inlist):
+  """
+Squares each value in the passed list, adds up these squares and
+returns the result.
+
+Usage:   lss(inlist)
+"""
+  ss = 0
+  for item in inlist:
+    ss = ss + item * item
+  return ss
+
+
+def lsummult(list1, list2):
+  """
+Multiplies elements in list1 and list2, element by element, and
+returns the sum of all resulting multiplications.  Must provide equal
+length lists.
+
+Usage:   lsummult(list1,list2)
+"""
+  if len(list1) <> len(list2):
+    raise ValueError, 'Lists not equal length in summult.'
+  s = 0
+  for item1, item2 in pstat.abut(list1, list2):
+    s = s + item1 * item2
+  return s
+
+
+def lsumdiffsquared(x, y):
+  """
+Takes pairwise differences of the values in lists x and y, squares
+these differences, and returns the sum of these squares.
+
+Usage:   lsumdiffsquared(x,y)
+Returns: sum[(x[i]-y[i])**2]
+"""
+  sds = 0
+  for i in range(len(x)):
+    sds = sds + (x[i] - y[i])**2
+  return sds
+
+
+def lsquare_of_sums(inlist):
+  """
+Adds the values in the passed list, squares the sum, and returns
+the result.
+
+Usage:   lsquare_of_sums(inlist)
+Returns: sum(inlist[i])**2
+"""
+  s = sum(inlist)
+  return float(s) * s
+
+
+def lshellsort(inlist):
+  """
+Shellsort algorithm.  Sorts a 1D-list.
+
+Usage:   lshellsort(inlist)
+Returns: sorted-inlist, sorting-index-vector (for original list)
+"""
+  n = len(inlist)
+  svec = copy.deepcopy(inlist)
+  ivec = range(n)
+  gap = n / 2  # integer division needed
+  while gap > 0:
+    for i in range(gap, n):
+      for j in range(i - gap, -1, -gap):
+        while j >= 0 and svec[j] > svec[j + gap]:
+          temp = svec[j]
+          svec[j] = svec[j + gap]
+          svec[j + gap] = temp
+          itemp = ivec[j]
+          ivec[j] = ivec[j + gap]
+          ivec[j + gap] = itemp
+    gap = gap / 2  # integer division needed
+# svec is now sorted inlist, and ivec has the order svec[i] = vec[ivec[i]]
+  return svec, ivec
+
+
+def lrankdata(inlist):
+  """
+Ranks the data in inlist, dealing with ties appropritely.  Assumes
+a 1D inlist.  Adapted from Gary Perlman's |Stat ranksort.
+
+Usage:   lrankdata(inlist)
+Returns: a list of length equal to inlist, containing rank scores
+"""
+  n = len(inlist)
+  svec, ivec = shellsort(inlist)
+  sumranks = 0
+  dupcount = 0
+  newlist = [0] * n
+  for i in range(n):
+    sumranks = sumranks + i
+    dupcount = dupcount + 1
+    if i == n - 1 or svec[i] <> svec[i + 1]:
+      averank = sumranks / float(dupcount) + 1
+      for j in range(i - dupcount + 1, i + 1):
+        newlist[ivec[j]] = averank
+      sumranks = 0
+      dupcount = 0
+  return newlist
+
+
+def outputpairedstats(fname, writemode, name1, n1, m1, se1, min1, max1, name2,
+                      n2, m2, se2, min2, max2, statname, stat, prob):
+  """
+Prints or write to a file stats for two groups, using the name, n,
+mean, sterr, min and max for each group, as well as the statistic name,
+its value, and the associated p-value.
+
+Usage:   outputpairedstats(fname,writemode,
+                           name1,n1,mean1,stderr1,min1,max1,
+                           name2,n2,mean2,stderr2,min2,max2,
+                           statname,stat,prob)
+Returns: None
+"""
+  suffix = ''  # for *s after the p-value
+  try:
+    x = prob.shape
+    prob = prob[0]
+  except:
+    pass
+  if prob < 0.001:
+    suffix = '  ***'
+  elif prob < 0.01:
+    suffix = '  **'
+  elif prob < 0.05:
+    suffix = '  *'
+  title = [['Name', 'N', 'Mean', 'SD', 'Min', 'Max']]
+  lofl = title + [[name1, n1, round(m1, 3), round(
+      math.sqrt(se1), 3), min1, max1], [name2, n2, round(m2, 3), round(
+          math.sqrt(se2), 3), min2, max2]]
+  if type(fname) <> StringType or len(fname) == 0:
+    print
+    print statname
+    print
+    pstat.printcc(lofl)
+    print
+    try:
+      if stat.shape == ():
+        stat = stat[0]
+      if prob.shape == ():
+        prob = prob[0]
+    except:
+      pass
+    print 'Test statistic = ', round(stat, 3), '   p = ', round(prob, 3), suffix
+    print
+  else:
+    file = open(fname, writemode)
+    file.write('\n' + statname + '\n\n')
+    file.close()
+    writecc(lofl, fname, 'a')
+    file = open(fname, 'a')
+    try:
+      if stat.shape == ():
+        stat = stat[0]
+      if prob.shape == ():
+        prob = prob[0]
+    except:
+      pass
+    file.write(pstat.list2string(['\nTest statistic = ', round(stat, 4),
+                                  '   p = ', round(prob, 4), suffix, '\n\n']))
+    file.close()
+  return None
+
+
+def lfindwithin(data):
+  """
+Returns an integer representing a binary vector, where 1=within-
+subject factor, 0=between.  Input equals the entire data 2D list (i.e.,
+column 0=random factor, column -1=measured values (those two are skipped).
+Note: input data is in |Stat format ... a list of lists ("2D list") with
+one row per measured value, first column=subject identifier, last column=
+score, one in-between column per factor (these columns contain level
+designations on each factor).  See also stats.anova.__doc__.
+
+Usage:   lfindwithin(data)     data in |Stat format
+"""
+
+  numfact = len(data[0]) - 1
+  withinvec = 0
+  for col in range(1, numfact):
+    examplelevel = pstat.unique(pstat.colex(data, col))[0]
+    rows = pstat.linexand(data, col, examplelevel)  # get 1 level of this factor
+    factsubjs = pstat.unique(pstat.colex(rows, 0))
+    allsubjs = pstat.unique(pstat.colex(data, 0))
+    if len(factsubjs) == len(allsubjs):  # fewer Ss than scores on this factor?
+      withinvec = withinvec + (1 << col)
+  return withinvec
+
+#########################################################
+#########################################################
+####### DISPATCH LISTS AND TUPLES TO ABOVE FCNS #########
+#########################################################
+#########################################################
+
+## CENTRAL TENDENCY:
+geometricmean = Dispatch((lgeometricmean, (ListType, TupleType)),)
+harmonicmean = Dispatch((lharmonicmean, (ListType, TupleType)),)
+mean = Dispatch((lmean, (ListType, TupleType)),)
+median = Dispatch((lmedian, (ListType, TupleType)),)
+medianscore = Dispatch((lmedianscore, (ListType, TupleType)),)
+mode = Dispatch((lmode, (ListType, TupleType)),)
+
+## MOMENTS:
+moment = Dispatch((lmoment, (ListType, TupleType)),)
+variation = Dispatch((lvariation, (ListType, TupleType)),)
+skew = Dispatch((lskew, (ListType, TupleType)),)
+kurtosis = Dispatch((lkurtosis, (ListType, TupleType)),)
+describe = Dispatch((ldescribe, (ListType, TupleType)),)
+
+## FREQUENCY STATISTICS:
+itemfreq = Dispatch((litemfreq, (ListType, TupleType)),)
+scoreatpercentile = Dispatch((lscoreatpercentile, (ListType, TupleType)),)
+percentileofscore = Dispatch((lpercentileofscore, (ListType, TupleType)),)
+histogram = Dispatch((lhistogram, (ListType, TupleType)),)
+cumfreq = Dispatch((lcumfreq, (ListType, TupleType)),)
+relfreq = Dispatch((lrelfreq, (ListType, TupleType)),)
+
+## VARIABILITY:
+obrientransform = Dispatch((lobrientransform, (ListType, TupleType)),)
+samplevar = Dispatch((lsamplevar, (ListType, TupleType)),)
+samplestdev = Dispatch((lsamplestdev, (ListType, TupleType)),)
+var = Dispatch((lvar, (ListType, TupleType)),)
+stdev = Dispatch((lstdev, (ListType, TupleType)),)
+sterr = Dispatch((lsterr, (ListType, TupleType)),)
+sem = Dispatch((lsem, (ListType, TupleType)),)
+z = Dispatch((lz, (ListType, TupleType)),)
+zs = Dispatch((lzs, (ListType, TupleType)),)
+
+## TRIMMING FCNS:
+trimboth = Dispatch((ltrimboth, (ListType, TupleType)),)
+trim1 = Dispatch((ltrim1, (ListType, TupleType)),)
+
+## CORRELATION FCNS:
+paired = Dispatch((lpaired, (ListType, TupleType)),)
+pearsonr = Dispatch((lpearsonr, (ListType, TupleType)),)
+spearmanr = Dispatch((lspearmanr, (ListType, TupleType)),)
+pointbiserialr = Dispatch((lpointbiserialr, (ListType, TupleType)),)
+kendalltau = Dispatch((lkendalltau, (ListType, TupleType)),)
+linregress = Dispatch((llinregress, (ListType, TupleType)),)
+
+## INFERENTIAL STATS:
+ttest_1samp = Dispatch((lttest_1samp, (ListType, TupleType)),)
+ttest_ind = Dispatch((lttest_ind, (ListType, TupleType)),)
+ttest_rel = Dispatch((lttest_rel, (ListType, TupleType)),)
+chisquare = Dispatch((lchisquare, (ListType, TupleType)),)
+ks_2samp = Dispatch((lks_2samp, (ListType, TupleType)),)
+mannwhitneyu = Dispatch((lmannwhitneyu, (ListType, TupleType)),)
+ranksums = Dispatch((lranksums, (ListType, TupleType)),)
+tiecorrect = Dispatch((ltiecorrect, (ListType, TupleType)),)
+wilcoxont = Dispatch((lwilcoxont, (ListType, TupleType)),)
+kruskalwallish = Dispatch((lkruskalwallish, (ListType, TupleType)),)
+friedmanchisquare = Dispatch((lfriedmanchisquare, (ListType, TupleType)),)
+
+## PROBABILITY CALCS:
+chisqprob = Dispatch((lchisqprob, (IntType, FloatType)),)
+zprob = Dispatch((lzprob, (IntType, FloatType)),)
+ksprob = Dispatch((lksprob, (IntType, FloatType)),)
+fprob = Dispatch((lfprob, (IntType, FloatType)),)
+betacf = Dispatch((lbetacf, (IntType, FloatType)),)
+betai = Dispatch((lbetai, (IntType, FloatType)),)
+erfcc = Dispatch((lerfcc, (IntType, FloatType)),)
+gammln = Dispatch((lgammln, (IntType, FloatType)),)
+
+## ANOVA FUNCTIONS:
+F_oneway = Dispatch((lF_oneway, (ListType, TupleType)),)
+F_value = Dispatch((lF_value, (ListType, TupleType)),)
+
+## SUPPORT FUNCTIONS:
+incr = Dispatch((lincr, (ListType, TupleType)),)
+sum = Dispatch((lsum, (ListType, TupleType)),)
+cumsum = Dispatch((lcumsum, (ListType, TupleType)),)
+ss = Dispatch((lss, (ListType, TupleType)),)
+summult = Dispatch((lsummult, (ListType, TupleType)),)
+square_of_sums = Dispatch((lsquare_of_sums, (ListType, TupleType)),)
+sumdiffsquared = Dispatch((lsumdiffsquared, (ListType, TupleType)),)
+shellsort = Dispatch((lshellsort, (ListType, TupleType)),)
+rankdata = Dispatch((lrankdata, (ListType, TupleType)),)
+findwithin = Dispatch((lfindwithin, (ListType, TupleType)),)
+
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+#=============  THE ARRAY-VERSION OF THE STATS FUNCTIONS  ===============
+
+try:  # DEFINE THESE *ONLY* IF NUMERIC IS AVAILABLE
+  import numpy as N
+  import numpy.linalg as LA
+
+  #####################################
+  ########  ACENTRAL TENDENCY  ########
+  #####################################
+
+
+  def ageometricmean(inarray, dimension=None, keepdims=0):
+    """
+Calculates the geometric mean of the values in the passed array.
+That is:  n-th root of (x1 * x2 * ... * xn).  Defaults to ALL values in
+the passed array.  Use dimension=None to flatten array first.  REMEMBER: if
+dimension=0, it collapses over dimension 0 ('rows' in a 2D array) only, and
+if dimension is a sequence, it collapses over all specified dimensions.  If
+keepdims is set to 1, the resulting array will have as many dimensions as
+inarray, with only 1 'level' per dim that was collapsed over.
+
+Usage:   ageometricmean(inarray,dimension=None,keepdims=0)
+Returns: geometric mean computed over dim(s) listed in dimension
+"""
+    inarray = N.array(inarray, N.float_)
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      size = len(inarray)
+      mult = N.power(inarray, 1.0 / size)
+      mult = N.multiply.reduce(mult)
+    elif type(dimension) in [IntType, FloatType]:
+      size = inarray.shape[dimension]
+      mult = N.power(inarray, 1.0 / size)
+      mult = N.multiply.reduce(mult, dimension)
+      if keepdims == 1:
+        shp = list(inarray.shape)
+        shp[dimension] = 1
+        sum = N.reshape(sum, shp)
+    else:  # must be a SEQUENCE of dims to average over
+      dims = list(dimension)
+      dims.sort()
+      dims.reverse()
+      size = N.array(N.multiply.reduce(N.take(inarray.shape, dims)), N.float_)
+      mult = N.power(inarray, 1.0 / size)
+      for dim in dims:
+        mult = N.multiply.reduce(mult, dim)
+      if keepdims == 1:
+        shp = list(inarray.shape)
+        for dim in dims:
+          shp[dim] = 1
+        mult = N.reshape(mult, shp)
+    return mult
+
+  def aharmonicmean(inarray, dimension=None, keepdims=0):
+    """
+Calculates the harmonic mean of the values in the passed array.
+That is:  n / (1/x1 + 1/x2 + ... + 1/xn).  Defaults to ALL values in
+the passed array.  Use dimension=None to flatten array first.  REMEMBER: if
+dimension=0, it collapses over dimension 0 ('rows' in a 2D array) only, and
+if dimension is a sequence, it collapses over all specified dimensions.  If
+keepdims is set to 1, the resulting array will have as many dimensions as
+inarray, with only 1 'level' per dim that was collapsed over.
+
+Usage:   aharmonicmean(inarray,dimension=None,keepdims=0)
+Returns: harmonic mean computed over dim(s) in dimension
+"""
+    inarray = inarray.astype(N.float_)
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      size = len(inarray)
+      s = N.add.reduce(1.0 / inarray)
+    elif type(dimension) in [IntType, FloatType]:
+      size = float(inarray.shape[dimension])
+      s = N.add.reduce(1.0 / inarray, dimension)
+      if keepdims == 1:
+        shp = list(inarray.shape)
+        shp[dimension] = 1
+        s = N.reshape(s, shp)
+    else:  # must be a SEQUENCE of dims to average over
+      dims = list(dimension)
+      dims.sort()
+      nondims = []
+      for i in range(len(inarray.shape)):
+        if i not in dims:
+          nondims.append(i)
+      tinarray = N.transpose(inarray, nondims + dims)  # put keep-dims first
+      idx = [0] * len(nondims)
+      if idx == []:
+        size = len(N.ravel(inarray))
+        s = asum(1.0 / inarray)
+        if keepdims == 1:
+          s = N.reshape([s], N.ones(len(inarray.shape)))
+      else:
+        idx[0] = -1
+        loopcap = N.array(tinarray.shape[0:len(nondims)]) - 1
+        s = N.zeros(loopcap + 1, N.float_)
+        while incr(idx, loopcap) <> -1:
+          s[idx] = asum(1.0 / tinarray[idx])
+        size = N.multiply.reduce(N.take(inarray.shape, dims))
+        if keepdims == 1:
+          shp = list(inarray.shape)
+          for dim in dims:
+            shp[dim] = 1
+          s = N.reshape(s, shp)
+    return size / s
+
+  def amean(inarray, dimension=None, keepdims=0):
+    """
+Calculates the arithmatic mean of the values in the passed array.
+That is:  1/n * (x1 + x2 + ... + xn).  Defaults to ALL values in the
+passed array.  Use dimension=None to flatten array first.  REMEMBER: if
+dimension=0, it collapses over dimension 0 ('rows' in a 2D array) only, and
+if dimension is a sequence, it collapses over all specified dimensions.  If
+keepdims is set to 1, the resulting array will have as many dimensions as
+inarray, with only 1 'level' per dim that was collapsed over.
+
+Usage:   amean(inarray,dimension=None,keepdims=0)
+Returns: arithematic mean calculated over dim(s) in dimension
+"""
+    if inarray.dtype in [N.int_, N.short, N.ubyte]:
+      inarray = inarray.astype(N.float_)
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      sum = N.add.reduce(inarray)
+      denom = float(len(inarray))
+    elif type(dimension) in [IntType, FloatType]:
+      sum = asum(inarray, dimension)
+      denom = float(inarray.shape[dimension])
+      if keepdims == 1:
+        shp = list(inarray.shape)
+        shp[dimension] = 1
+        sum = N.reshape(sum, shp)
+    else:  # must be a TUPLE of dims to average over
+      dims = list(dimension)
+      dims.sort()
+      dims.reverse()
+      sum = inarray * 1.0
+      for dim in dims:
+        sum = N.add.reduce(sum, dim)
+      denom = N.array(N.multiply.reduce(N.take(inarray.shape, dims)), N.float_)
+      if keepdims == 1:
+        shp = list(inarray.shape)
+        for dim in dims:
+          shp[dim] = 1
+        sum = N.reshape(sum, shp)
+    return sum / denom
+
+  def amedian(inarray, numbins=1000):
+    """
+Calculates the COMPUTED median value of an array of numbers, given the
+number of bins to use for the histogram (more bins approaches finding the
+precise median value of the array; default number of bins = 1000).  From
+G.W. Heiman's Basic Stats, or CRC Probability & Statistics.
+NOTE:  THIS ROUTINE ALWAYS uses the entire passed array (flattens it first).
+
+Usage:   amedian(inarray,numbins=1000)
+Returns: median calculated over ALL values in inarray
+"""
+    inarray = N.ravel(inarray)
+    (hist, smallest, binsize, extras) = ahistogram(inarray, numbins,
+                                                   [min(inarray), max(inarray)])
+    cumhist = N.cumsum(hist)  # make cumulative histogram
+    otherbins = N.greater_equal(cumhist, len(inarray) / 2.0)
+    otherbins = list(otherbins)  # list of 0/1s, 1s start at median bin
+    cfbin = otherbins.index(1)  # get 1st(!) index holding 50%ile score
+    LRL = smallest + binsize * cfbin  # get lower read limit of that bin
+    cfbelow = N.add.reduce(hist[0:cfbin])  # cum. freq. below bin
+    freq = hist[cfbin]  # frequency IN the 50%ile bin
+    median = LRL + (
+        (len(inarray) / 2.0 - cfbelow) / float(freq)) * binsize  # MEDIAN
+    return median
+
+  def amedianscore(inarray, dimension=None):
+    """
+Returns the 'middle' score of the passed array.  If there is an even
+number of scores, the mean of the 2 middle scores is returned.  Can function
+with 1D arrays, or on the FIRST dimension of 2D arrays (i.e., dimension can
+be None, to pre-flatten the array, or else dimension must equal 0).
+
+Usage:   amedianscore(inarray,dimension=None)
+Returns: 'middle' score of the array, or the mean of the 2 middle scores
+"""
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      dimension = 0
+    inarray = N.sort(inarray, dimension)
+    if inarray.shape[dimension] % 2 == 0:  # if even number of elements
+      indx = inarray.shape[dimension] / 2  # integer division correct
+      median = N.asarray(inarray[indx] + inarray[indx - 1]) / 2.0
+    else:
+      indx = inarray.shape[dimension] / 2  # integer division correct
+      median = N.take(inarray, [indx], dimension)
+      if median.shape == (1,):
+        median = median[0]
+    return median
+
+  def amode(a, dimension=None):
+    """
+Returns an array of the modal (most common) score in the passed array.
+If there is more than one such score, ONLY THE FIRST is returned.
+The bin-count for the modal values is also returned.  Operates on whole
+array (dimension=None), or on a given dimension.
+
+Usage:   amode(a, dimension=None)
+Returns: array of bin-counts for mode(s), array of corresponding modal values
+"""
+
+    if dimension == None:
+      a = N.ravel(a)
+      dimension = 0
+    scores = pstat.aunique(N.ravel(a))  # get ALL unique values
+    testshape = list(a.shape)
+    testshape[dimension] = 1
+    oldmostfreq = N.zeros(testshape)
+    oldcounts = N.zeros(testshape)
+    for score in scores:
+      template = N.equal(a, score)
+      counts = asum(template, dimension, 1)
+      mostfrequent = N.where(counts > oldcounts, score, oldmostfreq)
+      oldcounts = N.where(counts > oldcounts, counts, oldcounts)
+      oldmostfreq = mostfrequent
+    return oldcounts, mostfrequent
+
+  def atmean(a, limits=None, inclusive=(1, 1)):
+    """
+Returns the arithmetic mean of all values in an array, ignoring values
+strictly outside the sequence passed to 'limits'.   Note: either limit
+in the sequence, or the value of limits itself, can be set to None.  The
+inclusive list/tuple determines whether the lower and upper limiting bounds
+(respectively) are open/exclusive (0) or closed/inclusive (1).
+
+Usage:   atmean(a,limits=None,inclusive=(1,1))
+"""
+    if a.dtype in [N.int_, N.short, N.ubyte]:
+      a = a.astype(N.float_)
+    if limits == None:
+      return mean(a)
+    assert type(limits) in [ListType, TupleType, N.ndarray
+                           ], 'Wrong type for limits in atmean'
+    if inclusive[0]:
+      lowerfcn = N.greater_equal
+    else:
+      lowerfcn = N.greater
+    if inclusive[1]:
+      upperfcn = N.less_equal
+    else:
+      upperfcn = N.less
+    if limits[0] > N.maximum.reduce(N.ravel(a)) or limits[1] < N.minimum.reduce(
+        N.ravel(a)):
+      raise ValueError, 'No array values within given limits (atmean).'
+    elif limits[0] == None and limits[1] <> None:
+      mask = upperfcn(a, limits[1])
+    elif limits[0] <> None and limits[1] == None:
+      mask = lowerfcn(a, limits[0])
+    elif limits[0] <> None and limits[1] <> None:
+      mask = lowerfcn(a, limits[0]) * upperfcn(a, limits[1])
+    s = float(N.add.reduce(N.ravel(a * mask)))
+    n = float(N.add.reduce(N.ravel(mask)))
+    return s / n
+
+  def atvar(a, limits=None, inclusive=(1, 1)):
+    """
+Returns the sample variance of values in an array, (i.e., using N-1),
+ignoring values strictly outside the sequence passed to 'limits'.
+Note: either limit in the sequence, or the value of limits itself,
+can be set to None.  The inclusive list/tuple determines whether the lower
+and upper limiting bounds (respectively) are open/exclusive (0) or
+closed/inclusive (1). ASSUMES A FLAT ARRAY (OR ELSE PREFLATTENS).
+
+Usage:   atvar(a,limits=None,inclusive=(1,1))
+"""
+    a = a.astype(N.float_)
+    if limits == None or limits == [None, None]:
+      return avar(a)
+    assert type(limits) in [ListType, TupleType, N.ndarray
+                           ], 'Wrong type for limits in atvar'
+    if inclusive[0]:
+      lowerfcn = N.greater_equal
+    else:
+      lowerfcn = N.greater
+    if inclusive[1]:
+      upperfcn = N.less_equal
+    else:
+      upperfcn = N.less
+    if limits[0] > N.maximum.reduce(N.ravel(a)) or limits[1] < N.minimum.reduce(
+        N.ravel(a)):
+      raise ValueError, 'No array values within given limits (atvar).'
+    elif limits[0] == None and limits[1] <> None:
+      mask = upperfcn(a, limits[1])
+    elif limits[0] <> None and limits[1] == None:
+      mask = lowerfcn(a, limits[0])
+    elif limits[0] <> None and limits[1] <> None:
+      mask = lowerfcn(a, limits[0]) * upperfcn(a, limits[1])
+
+    a = N.compress(mask, a)  # squish out excluded values
+    return avar(a)
+
+  def atmin(a, lowerlimit=None, dimension=None, inclusive=1):
+    """
+Returns the minimum value of a, along dimension, including only values less
+than (or equal to, if inclusive=1) lowerlimit.  If the limit is set to None,
+all values in the array are used.
+
+Usage:   atmin(a,lowerlimit=None,dimension=None,inclusive=1)
+"""
+    if inclusive:
+      lowerfcn = N.greater
+    else:
+      lowerfcn = N.greater_equal
+    if dimension == None:
+      a = N.ravel(a)
+      dimension = 0
+    if lowerlimit == None:
+      lowerlimit = N.minimum.reduce(N.ravel(a)) - 11
+    biggest = N.maximum.reduce(N.ravel(a))
+    ta = N.where(lowerfcn(a, lowerlimit), a, biggest)
+    return N.minimum.reduce(ta, dimension)
+
+  def atmax(a, upperlimit, dimension=None, inclusive=1):
+    """
+Returns the maximum value of a, along dimension, including only values greater
+than (or equal to, if inclusive=1) upperlimit.  If the limit is set to None,
+a limit larger than the max value in the array is used.
+
+Usage:   atmax(a,upperlimit,dimension=None,inclusive=1)
+"""
+    if inclusive:
+      upperfcn = N.less
+    else:
+      upperfcn = N.less_equal
+    if dimension == None:
+      a = N.ravel(a)
+      dimension = 0
+    if upperlimit == None:
+      upperlimit = N.maximum.reduce(N.ravel(a)) + 1
+    smallest = N.minimum.reduce(N.ravel(a))
+    ta = N.where(upperfcn(a, upperlimit), a, smallest)
+    return N.maximum.reduce(ta, dimension)
+
+  def atstdev(a, limits=None, inclusive=(1, 1)):
+    """
+Returns the standard deviation of all values in an array, ignoring values
+strictly outside the sequence passed to 'limits'.   Note: either limit
+in the sequence, or the value of limits itself, can be set to None.  The
+inclusive list/tuple determines whether the lower and upper limiting bounds
+(respectively) are open/exclusive (0) or closed/inclusive (1).
+
+Usage:   atstdev(a,limits=None,inclusive=(1,1))
+"""
+    return N.sqrt(tvar(a, limits, inclusive))
+
+  def atsem(a, limits=None, inclusive=(1, 1)):
+    """
+Returns the standard error of the mean for the values in an array,
+(i.e., using N for the denominator), ignoring values strictly outside
+the sequence passed to 'limits'.   Note: either limit in the sequence,
+or the value of limits itself, can be set to None.  The inclusive list/tuple
+determines whether the lower and upper limiting bounds (respectively) are
+open/exclusive (0) or closed/inclusive (1).
+
+Usage:   atsem(a,limits=None,inclusive=(1,1))
+"""
+    sd = tstdev(a, limits, inclusive)
+    if limits == None or limits == [None, None]:
+      n = float(len(N.ravel(a)))
+      limits = [min(a) - 1, max(a) + 1]
+    assert type(limits) in [ListType, TupleType, N.ndarray
+                           ], 'Wrong type for limits in atsem'
+    if inclusive[0]:
+      lowerfcn = N.greater_equal
+    else:
+      lowerfcn = N.greater
+    if inclusive[1]:
+      upperfcn = N.less_equal
+    else:
+      upperfcn = N.less
+    if limits[0] > N.maximum.reduce(N.ravel(a)) or limits[1] < N.minimum.reduce(
+        N.ravel(a)):
+      raise ValueError, 'No array values within given limits (atsem).'
+    elif limits[0] == None and limits[1] <> None:
+      mask = upperfcn(a, limits[1])
+    elif limits[0] <> None and limits[1] == None:
+      mask = lowerfcn(a, limits[0])
+    elif limits[0] <> None and limits[1] <> None:
+      mask = lowerfcn(a, limits[0]) * upperfcn(a, limits[1])
+    term1 = N.add.reduce(N.ravel(a * a * mask))
+    n = float(N.add.reduce(N.ravel(mask)))
+    return sd / math.sqrt(n)
+
+#####################################
+############  AMOMENTS  #############
+#####################################
+
+  def amoment(a, moment=1, dimension=None):
+    """
+Calculates the nth moment about the mean for a sample (defaults to the
+1st moment).  Generally used to calculate coefficients of skewness and
+kurtosis.  Dimension can equal None (ravel array first), an integer
+(the dimension over which to operate), or a sequence (operate over
+multiple dimensions).
+
+Usage:   amoment(a,moment=1,dimension=None)
+Returns: appropriate moment along given dimension
+"""
+    if dimension == None:
+      a = N.ravel(a)
+      dimension = 0
+    if moment == 1:
+      return 0.0
+    else:
+      mn = amean(a, dimension, 1)  # 1=keepdims
+      s = N.power((a - mn), moment)
+      return amean(s, dimension)
+
+  def avariation(a, dimension=None):
+    """
+Returns the coefficient of variation, as defined in CRC Standard
+Probability and Statistics, p.6. Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).
+
+Usage:   avariation(a,dimension=None)
+"""
+    return 100.0 * asamplestdev(a, dimension) / amean(a, dimension)
+
+  def askew(a, dimension=None):
+    """
+Returns the skewness of a distribution (normal ==> 0.0; >0 means extra
+weight in left tail).  Use askewtest() to see if it's close enough.
+Dimension can equal None (ravel array first), an integer (the
+dimension over which to operate), or a sequence (operate over multiple
+dimensions).
+
+Usage:   askew(a, dimension=None)
+Returns: skew of vals in a along dimension, returning ZERO where all vals equal
+"""
+    denom = N.power(amoment(a, 2, dimension), 1.5)
+    zero = N.equal(denom, 0)
+    if type(denom) == N.ndarray and asum(zero) <> 0:
+      print 'Number of zeros in askew: ', asum(zero)
+    denom = denom + zero  # prevent divide-by-zero
+    return N.where(zero, 0, amoment(a, 3, dimension) / denom)
+
+  def akurtosis(a, dimension=None):
+    """
+Returns the kurtosis of a distribution (normal ==> 3.0; >3 means
+heavier in the tails, and usually more peaked).  Use akurtosistest()
+to see if it's close enough.  Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).
+
+Usage:   akurtosis(a,dimension=None)
+Returns: kurtosis of values in a along dimension, and ZERO where all vals equal
+"""
+    denom = N.power(amoment(a, 2, dimension), 2)
+    zero = N.equal(denom, 0)
+    if type(denom) == N.ndarray and asum(zero) <> 0:
+      print 'Number of zeros in akurtosis: ', asum(zero)
+    denom = denom + zero  # prevent divide-by-zero
+    return N.where(zero, 0, amoment(a, 4, dimension) / denom)
+
+  def adescribe(inarray, dimension=None):
+    """
+Returns several descriptive statistics of the passed array.  Dimension
+can equal None (ravel array first), an integer (the dimension over
+which to operate), or a sequence (operate over multiple dimensions).
+
+Usage:   adescribe(inarray,dimension=None)
+Returns: n, (min,max), mean, standard deviation, skew, kurtosis
+"""
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      dimension = 0
+    n = inarray.shape[dimension]
+    mm = (N.minimum.reduce(inarray), N.maximum.reduce(inarray))
+    m = amean(inarray, dimension)
+    sd = astdev(inarray, dimension)
+    skew = askew(inarray, dimension)
+    kurt = akurtosis(inarray, dimension)
+    return n, mm, m, sd, skew, kurt
+
+#####################################
+########  NORMALITY TESTS  ##########
+#####################################
+
+  def askewtest(a, dimension=None):
+    """
+Tests whether the skew is significantly different from a normal
+distribution.  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).
+
+Usage:   askewtest(a,dimension=None)
+Returns: z-score and 2-tail z-probability
+"""
+    if dimension == None:
+      a = N.ravel(a)
+      dimension = 0
+    b2 = askew(a, dimension)
+    n = float(a.shape[dimension])
+    y = b2 * N.sqrt(((n + 1) * (n + 3)) / (6.0 * (n - 2)))
+    beta2 = (3.0 * (n * n + 27 * n - 70) * (n + 1) *
+             (n + 3)) / ((n - 2.0) * (n + 5) * (n + 7) * (n + 9))
+    W2 = -1 + N.sqrt(2 * (beta2 - 1))
+    delta = 1 / N.sqrt(N.log(N.sqrt(W2)))
+    alpha = N.sqrt(2 / (W2 - 1))
+    y = N.where(y == 0, 1, y)
+    Z = delta * N.log(y / alpha + N.sqrt((y / alpha)**2 + 1))
+    return Z, (1.0 - zprob(Z)) * 2
+
+  def akurtosistest(a, dimension=None):
+    """
+Tests whether a dataset has normal kurtosis (i.e.,
+kurtosis=3(n-1)/(n+1)) Valid only for n>20.  Dimension can equal None
+(ravel array first), an integer (the dimension over which to operate),
+or a sequence (operate over multiple dimensions).
+
+Usage:   akurtosistest(a,dimension=None)
+Returns: z-score and 2-tail z-probability, returns 0 for bad pixels
+"""
+    if dimension == None:
+      a = N.ravel(a)
+      dimension = 0
+    n = float(a.shape[dimension])
+    if n < 20:
+      print 'akurtosistest only valid for n>=20 ... continuing anyway, n=', n
+    b2 = akurtosis(a, dimension)
+    E = 3.0 * (n - 1) / (n + 1)
+    varb2 = 24.0 * n * (n - 2) * (n - 3) / ((n + 1) * (n + 1) * (n + 3) *
+                                            (n + 5))
+    x = (b2 - E) / N.sqrt(varb2)
+    sqrtbeta1 = 6.0 * (n * n - 5 * n + 2) / ((n + 7) * (n + 9)) * N.sqrt(
+        (6.0 * (n + 3) * (n + 5)) / (n * (n - 2) * (n - 3)))
+    A = 6.0 + 8.0 / sqrtbeta1 * (2.0 / sqrtbeta1 +
+                                 N.sqrt(1 + 4.0 / (sqrtbeta1**2)))
+    term1 = 1 - 2 / (9.0 * A)
+    denom = 1 + x * N.sqrt(2 / (A - 4.0))
+    denom = N.where(N.less(denom, 0), 99, denom)
+    term2 = N.where(
+        N.equal(denom, 0), term1, N.power(
+            (1 - 2.0 / A) / denom, 1 / 3.0))
+    Z = (term1 - term2) / N.sqrt(2 / (9.0 * A))
+    Z = N.where(N.equal(denom, 99), 0, Z)
+    return Z, (1.0 - zprob(Z)) * 2
+
+  def anormaltest(a, dimension=None):
+    """
+Tests whether skew and/OR kurtosis of dataset differs from normal
+curve.  Can operate over multiple dimensions.  Dimension can equal
+None (ravel array first), an integer (the dimension over which to
+operate), or a sequence (operate over multiple dimensions).
+
+Usage:   anormaltest(a,dimension=None)
+Returns: z-score and 2-tail probability
+"""
+    if dimension == None:
+      a = N.ravel(a)
+      dimension = 0
+    s, p = askewtest(a, dimension)
+    k, p = akurtosistest(a, dimension)
+    k2 = N.power(s, 2) + N.power(k, 2)
+    return k2, achisqprob(k2, 2)
+
+#####################################
+######  AFREQUENCY FUNCTIONS  #######
+#####################################
+
+  def aitemfreq(a):
+    """
+Returns a 2D array of item frequencies.  Column 1 contains item values,
+column 2 contains their respective counts.  Assumes a 1D array is passed.
+@@@sorting OK?
+
+Usage:   aitemfreq(a)
+Returns: a 2D frequency table (col [0:n-1]=scores, col n=frequencies)
+"""
+    scores = pstat.aunique(a)
+    scores = N.sort(scores)
+    freq = N.zeros(len(scores))
+    for i in range(len(scores)):
+      freq[i] = N.add.reduce(N.equal(a, scores[i]))
+    return N.array(pstat.aabut(scores, freq))
+
+  def ascoreatpercentile(inarray, percent):
+    """
+Usage:   ascoreatpercentile(inarray,percent)   0<percent<100
+Returns: score at given percentile, relative to inarray distribution
+"""
+    percent = percent / 100.0
+    targetcf = percent * len(inarray)
+    h, lrl, binsize, extras = histogram(inarray)
+    cumhist = cumsum(h * 1)
+    for i in range(len(cumhist)):
+      if cumhist[i] >= targetcf:
+        break
+    score = binsize * (
+        (targetcf - cumhist[i - 1]) / float(h[i])) + (lrl + binsize * i)
+    return score
+
+  def apercentileofscore(inarray, score, histbins=10, defaultlimits=None):
+    """
+Note: result of this function depends on the values used to histogram
+the data(!).
+
+Usage:   apercentileofscore(inarray,score,histbins=10,defaultlimits=None)
+Returns: percentile-position of score (0-100) relative to inarray
+"""
+    h, lrl, binsize, extras = histogram(inarray, histbins, defaultlimits)
+    cumhist = cumsum(h * 1)
+    i = int((score - lrl) / float(binsize))
+    pct = (cumhist[i - 1] + ((score - (lrl + binsize * i)) / float(binsize)) *
+           h[i]) / float(len(inarray)) * 100
+    return pct
+
+  def ahistogram(inarray, numbins=10, defaultlimits=None, printextras=1):
+    """
+Returns (i) an array of histogram bin counts, (ii) the smallest value
+of the histogram binning, and (iii) the bin width (the last 2 are not
+necessarily integers).  Default number of bins is 10.  Defaultlimits
+can be None (the routine picks bins spanning all the numbers in the
+inarray) or a 2-sequence (lowerlimit, upperlimit).  Returns all of the
+following: array of bin values, lowerreallimit, binsize, extrapoints.
+
+Usage:   ahistogram(inarray,numbins=10,defaultlimits=None,printextras=1)
+Returns: (array of bin counts, bin-minimum, min-width, #-points-outside-range)
+"""
+    inarray = N.ravel(inarray)  # flatten any >1D arrays
+    if (defaultlimits <> None):
+      lowerreallimit = defaultlimits[0]
+      upperreallimit = defaultlimits[1]
+      binsize = (upperreallimit - lowerreallimit) / float(numbins)
+    else:
+      Min = N.minimum.reduce(inarray)
+      Max = N.maximum.reduce(inarray)
+      estbinwidth = float(Max - Min) / float(numbins) + 1e-6
+      binsize = (Max - Min + estbinwidth) / float(numbins)
+      lowerreallimit = Min - binsize / 2.0  #lower real limit,1st bin
+    bins = N.zeros(numbins)
+    extrapoints = 0
+    for num in inarray:
+      try:
+        if (num - lowerreallimit) < 0:
+          extrapoints = extrapoints + 1
+        else:
+          bintoincrement = int((num - lowerreallimit) / float(binsize))
+          bins[bintoincrement] = bins[bintoincrement] + 1
+      except:  # point outside lower/upper limits
+        extrapoints = extrapoints + 1
+    if (extrapoints > 0 and printextras == 1):
+      print '\nPoints outside given histogram range =', extrapoints
+    return (bins, lowerreallimit, binsize, extrapoints)
+
+  def acumfreq(a, numbins=10, defaultreallimits=None):
+    """
+Returns a cumulative frequency histogram, using the histogram function.
+Defaultreallimits can be None (use all data), or a 2-sequence containing
+lower and upper limits on values to include.
+
+Usage:   acumfreq(a,numbins=10,defaultreallimits=None)
+Returns: array of cumfreq bin values, lowerreallimit, binsize, extrapoints
+"""
+    h, l, b, e = histogram(a, numbins, defaultreallimits)
+    cumhist = cumsum(h * 1)
+    return cumhist, l, b, e
+
+  def arelfreq(a, numbins=10, defaultreallimits=None):
+    """
+Returns a relative frequency histogram, using the histogram function.
+Defaultreallimits can be None (use all data), or a 2-sequence containing
+lower and upper limits on values to include.
+
+Usage:   arelfreq(a,numbins=10,defaultreallimits=None)
+Returns: array of cumfreq bin values, lowerreallimit, binsize, extrapoints
+"""
+    h, l, b, e = histogram(a, numbins, defaultreallimits)
+    h = N.array(h / float(a.shape[0]))
+    return h, l, b, e
+
+#####################################
+######  AVARIABILITY FUNCTIONS  #####
+#####################################
+
+  def aobrientransform(*args):
+    """
+Computes a transform on input data (any number of columns).  Used to
+test for homogeneity of variance prior to running one-way stats.  Each
+array in *args is one level of a factor.  If an F_oneway() run on the
+transformed data and found significant, variances are unequal.   From
+Maxwell and Delaney, p.112.
+
+Usage:   aobrientransform(*args)    *args = 1D arrays, one per level of factor
+Returns: transformed data for use in an ANOVA
+"""
+    TINY = 1e-10
+    k = len(args)
+    n = N.zeros(k, N.float_)
+    v = N.zeros(k, N.float_)
+    m = N.zeros(k, N.float_)
+    nargs = []
+    for i in range(k):
+      nargs.append(args[i].astype(N.float_))
+      n[i] = float(len(nargs[i]))
+      v[i] = var(nargs[i])
+      m[i] = mean(nargs[i])
+    for j in range(k):
+      for i in range(n[j]):
+        t1 = (n[j] - 1.5) * n[j] * (nargs[j][i] - m[j])**2
+        t2 = 0.5 * v[j] * (n[j] - 1.0)
+        t3 = (n[j] - 1.0) * (n[j] - 2.0)
+        nargs[j][i] = (t1 - t2) / float(t3)
+    check = 1
+    for j in range(k):
+      if v[j] - mean(nargs[j]) > TINY:
+        check = 0
+    if check <> 1:
+      raise ValueError, 'Lack of convergence in obrientransform.'
+    else:
+      return N.array(nargs)
+
+  def asamplevar(inarray, dimension=None, keepdims=0):
+    """
+Returns the sample standard deviation of the values in the passed
+array (i.e., using N).  Dimension can equal None (ravel array first),
+an integer (the dimension over which to operate), or a sequence
+(operate over multiple dimensions).  Set keepdims=1 to return an array
+with the same number of dimensions as inarray.
+
+Usage:   asamplevar(inarray,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      dimension = 0
+    if dimension == 1:
+      mn = amean(inarray, dimension)[:, N.NewAxis]
+    else:
+      mn = amean(inarray, dimension, keepdims=1)
+    deviations = inarray - mn
+    if type(dimension) == ListType:
+      n = 1
+      for d in dimension:
+        n = n * inarray.shape[d]
+    else:
+      n = inarray.shape[dimension]
+    svar = ass(deviations, dimension, keepdims) / float(n)
+    return svar
+
+  def asamplestdev(inarray, dimension=None, keepdims=0):
+    """
+Returns the sample standard deviation of the values in the passed
+array (i.e., using N).  Dimension can equal None (ravel array first),
+an integer (the dimension over which to operate), or a sequence
+(operate over multiple dimensions).  Set keepdims=1 to return an array
+with the same number of dimensions as inarray.
+
+Usage:   asamplestdev(inarray,dimension=None,keepdims=0)
+"""
+    return N.sqrt(asamplevar(inarray, dimension, keepdims))
+
+  def asignaltonoise(instack, dimension=0):
+    """
+Calculates signal-to-noise.  Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).
+
+Usage:   asignaltonoise(instack,dimension=0):
+Returns: array containing the value of (mean/stdev) along dimension,
+         or 0 when stdev=0
+"""
+    m = mean(instack, dimension)
+    sd = stdev(instack, dimension)
+    return N.where(sd == 0, 0, m / sd)
+
+  def acov(x, y, dimension=None, keepdims=0):
+    """
+Returns the estimated covariance of the values in the passed
+array (i.e., N-1).  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).  Set keepdims=1 to return an array with the
+same number of dimensions as inarray.
+
+Usage:   acov(x,y,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+      x = N.ravel(x)
+      y = N.ravel(y)
+      dimension = 0
+    xmn = amean(x, dimension, 1)  # keepdims
+    xdeviations = x - xmn
+    ymn = amean(y, dimension, 1)  # keepdims
+    ydeviations = y - ymn
+    if type(dimension) == ListType:
+      n = 1
+      for d in dimension:
+        n = n * x.shape[d]
+    else:
+      n = x.shape[dimension]
+    covar = N.sum(xdeviations * ydeviations) / float(n - 1)
+    return covar
+
+  def avar(inarray, dimension=None, keepdims=0):
+    """
+Returns the estimated population variance of the values in the passed
+array (i.e., N-1).  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).  Set keepdims=1 to return an array with the
+same number of dimensions as inarray.
+
+Usage:   avar(inarray,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      dimension = 0
+    mn = amean(inarray, dimension, 1)
+    deviations = inarray - mn
+    if type(dimension) == ListType:
+      n = 1
+      for d in dimension:
+        n = n * inarray.shape[d]
+    else:
+      n = inarray.shape[dimension]
+    var = ass(deviations, dimension, keepdims) / float(n - 1)
+    return var
+
+  def astdev(inarray, dimension=None, keepdims=0):
+    """
+Returns the estimated population standard deviation of the values in
+the passed array (i.e., N-1).  Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).  Set keepdims=1 to return
+an array with the same number of dimensions as inarray.
+
+Usage:   astdev(inarray,dimension=None,keepdims=0)
+"""
+    return N.sqrt(avar(inarray, dimension, keepdims))
+
+  def asterr(inarray, dimension=None, keepdims=0):
+    """
+Returns the estimated population standard error of the values in the
+passed array (i.e., N-1).  Dimension can equal None (ravel array
+first), an integer (the dimension over which to operate), or a
+sequence (operate over multiple dimensions).  Set keepdims=1 to return
+an array with the same number of dimensions as inarray.
+
+Usage:   asterr(inarray,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      dimension = 0
+    return astdev(inarray, dimension,
+                  keepdims) / float(N.sqrt(inarray.shape[dimension]))
+
+  def asem(inarray, dimension=None, keepdims=0):
+    """
+Returns the standard error of the mean (i.e., using N) of the values
+in the passed array.  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions).  Set keepdims=1 to return an array with the
+same number of dimensions as inarray.
+
+Usage:   asem(inarray,dimension=None, keepdims=0)
+"""
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      dimension = 0
+    if type(dimension) == ListType:
+      n = 1
+      for d in dimension:
+        n = n * inarray.shape[d]
+    else:
+      n = inarray.shape[dimension]
+    s = asamplestdev(inarray, dimension, keepdims) / N.sqrt(n - 1)
+    return s
+
+  def az(a, score):
+    """
+Returns the z-score of a given input score, given thearray from which
+that score came.  Not appropriate for population calculations, nor for
+arrays > 1D.
+
+Usage:   az(a, score)
+"""
+    z = (score - amean(a)) / asamplestdev(a)
+    return z
+
+  def azs(a):
+    """
+Returns a 1D array of z-scores, one for each score in the passed array,
+computed relative to the passed array.
+
+Usage:   azs(a)
+"""
+    zscores = []
+    for item in a:
+      zscores.append(z(a, item))
+    return N.array(zscores)
+
+  def azmap(scores, compare, dimension=0):
+    """
+Returns an array of z-scores the shape of scores (e.g., [x,y]), compared to
+array passed to compare (e.g., [time,x,y]).  Assumes collapsing over dim 0
+of the compare array.
+
+Usage:   azs(scores, compare, dimension=0)
+"""
+    mns = amean(compare, dimension)
+    sstd = asamplestdev(compare, 0)
+    return (scores - mns) / sstd
+
+#####################################
+#######  ATRIMMING FUNCTIONS  #######
+#####################################
+
+## deleted around() as it's in numpy now
+
+  def athreshold(a, threshmin=None, threshmax=None, newval=0):
+    """
+Like Numeric.clip() except that values <threshmid or >threshmax are replaced
+by newval instead of by threshmin/threshmax (respectively).
+
+Usage:   athreshold(a,threshmin=None,threshmax=None,newval=0)
+Returns: a, with values <threshmin or >threshmax replaced with newval
+"""
+    mask = N.zeros(a.shape)
+    if threshmin <> None:
+      mask = mask + N.where(a < threshmin, 1, 0)
+    if threshmax <> None:
+      mask = mask + N.where(a > threshmax, 1, 0)
+    mask = N.clip(mask, 0, 1)
+    return N.where(mask, newval, a)
+
+  def atrimboth(a, proportiontocut):
+    """
+Slices off the passed proportion of items from BOTH ends of the passed
+array (i.e., with proportiontocut=0.1, slices 'leftmost' 10% AND
+'rightmost' 10% of scores.  You must pre-sort the array if you want
+"proper" trimming.  Slices off LESS if proportion results in a
+non-integer slice index (i.e., conservatively slices off
+proportiontocut).
+
+Usage:   atrimboth (a,proportiontocut)
+Returns: trimmed version of array a
+"""
+    lowercut = int(proportiontocut * len(a))
+    uppercut = len(a) - lowercut
+    return a[lowercut:uppercut]
+
+  def atrim1(a, proportiontocut, tail='right'):
+    """
+Slices off the passed proportion of items from ONE end of the passed
+array (i.e., if proportiontocut=0.1, slices off 'leftmost' or 'rightmost'
+10% of scores).  Slices off LESS if proportion results in a non-integer
+slice index (i.e., conservatively slices off proportiontocut).
+
+Usage:   atrim1(a,proportiontocut,tail='right')  or set tail='left'
+Returns: trimmed version of array a
+"""
+    if string.lower(tail) == 'right':
+      lowercut = 0
+      uppercut = len(a) - int(proportiontocut * len(a))
+    elif string.lower(tail) == 'left':
+      lowercut = int(proportiontocut * len(a))
+      uppercut = len(a)
+    return a[lowercut:uppercut]
+
+#####################################
+#####  ACORRELATION FUNCTIONS  ######
+#####################################
+
+  def acovariance(X):
+    """
+Computes the covariance matrix of a matrix X.  Requires a 2D matrix input.
+
+Usage:   acovariance(X)
+Returns: covariance matrix of X
+"""
+    if len(X.shape) <> 2:
+      raise TypeError, 'acovariance requires 2D matrices'
+    n = X.shape[0]
+    mX = amean(X, 0)
+    return N.dot(N.transpose(X), X) / float(n) - N.multiply.outer(mX, mX)
+
+  def acorrelation(X):
+    """
+Computes the correlation matrix of a matrix X.  Requires a 2D matrix input.
+
+Usage:   acorrelation(X)
+Returns: correlation matrix of X
+"""
+    C = acovariance(X)
+    V = N.diagonal(C)
+    return C / N.sqrt(N.multiply.outer(V, V))
+
+  def apaired(x, y):
+    """
+Interactively determines the type of data in x and y, and then runs the
+appropriated statistic for paired group data.
+
+Usage:   apaired(x,y)     x,y = the two arrays of values to be compared
+Returns: appropriate statistic name, value, and probability
+"""
+    samples = ''
+    while samples not in ['i', 'r', 'I', 'R', 'c', 'C']:
+      print '\nIndependent or related samples, or correlation (i,r,c): ',
+      samples = raw_input()
+
+    if samples in ['i', 'I', 'r', 'R']:
+      print '\nComparing variances ...',
+      # USE O'BRIEN'S TEST FOR HOMOGENEITY OF VARIANCE, Maxwell & delaney, p.112
+      r = obrientransform(x, y)
+      f, p = F_oneway(pstat.colex(r, 0), pstat.colex(r, 1))
+      if p < 0.05:
+        vartype = 'unequal, p=' + str(round(p, 4))
+      else:
+        vartype = 'equal'
+      print vartype
+      if samples in ['i', 'I']:
+        if vartype[0] == 'e':
+          t, p = ttest_ind(x, y, None, 0)
+          print '\nIndependent samples t-test:  ', round(t, 4), round(p, 4)
+        else:
+          if len(x) > 20 or len(y) > 20:
+            z, p = ranksums(x, y)
+            print '\nRank Sums test (NONparametric, n>20):  ', round(
+                z, 4), round(p, 4)
+          else:
+            u, p = mannwhitneyu(x, y)
+            print '\nMann-Whitney U-test (NONparametric, ns<20):  ', round(
+                u, 4), round(p, 4)
+
+      else:  # RELATED SAMPLES
+        if vartype[0] == 'e':
+          t, p = ttest_rel(x, y, 0)
+          print '\nRelated samples t-test:  ', round(t, 4), round(p, 4)
+        else:
+          t, p = ranksums(x, y)
+          print '\nWilcoxon T-test (NONparametric):  ', round(t, 4), round(p, 4)
+    else:  # CORRELATION ANALYSIS
+      corrtype = ''
+      while corrtype not in ['c', 'C', 'r', 'R', 'd', 'D']:
+        print '\nIs the data Continuous, Ranked, or Dichotomous (c,r,d): ',
+        corrtype = raw_input()
+      if corrtype in ['c', 'C']:
+        m, b, r, p, see = linregress(x, y)
+        print '\nLinear regression for continuous variables ...'
+        lol = [
+            ['Slope', 'Intercept', 'r', 'Prob', 'SEestimate'],
+            [round(m, 4), round(b, 4), round(r, 4), round(p, 4), round(see, 4)]
+        ]
+        pstat.printcc(lol)
+      elif corrtype in ['r', 'R']:
+        r, p = spearmanr(x, y)
+        print '\nCorrelation for ranked variables ...'
+        print "Spearman's r: ", round(r, 4), round(p, 4)
+      else:  # DICHOTOMOUS
+        r, p = pointbiserialr(x, y)
+        print '\nAssuming x contains a dichotomous variable ...'
+        print 'Point Biserial r: ', round(r, 4), round(p, 4)
+    print '\n\n'
+    return None
+
+  def dices(x, y):
+    """
+Calculates Dice's coefficient ... (2*number of common terms)/(number of terms in
+x +
+number of terms in y). Returns a value between 0 (orthogonal) and 1.
+
+Usage:  dices(x,y)
+"""
+    import sets
+    x = sets.Set(x)
+    y = sets.Set(y)
+    common = len(x.intersection(y))
+    total = float(len(x) + len(y))
+    return 2 * common / total
+
+  def icc(x, y=None, verbose=0):
+    """
+Calculates intraclass correlation coefficients using simple, Type I sums of
+squares.
+If only one variable is passed, assumed it's an Nx2 matrix
+
+Usage:   icc(x,y=None,verbose=0)
+Returns: icc rho, prob ####PROB IS A GUESS BASED ON PEARSON
+"""
+    TINY = 1.0e-20
+    if y:
+      all = N.concatenate([x, y], 0)
+    else:
+      all = x + 0
+      x = all[:, 0]
+      y = all[:, 1]
+    totalss = ass(all - mean(all))
+    pairmeans = (x + y) / 2.
+    withinss = ass(x - pairmeans) + ass(y - pairmeans)
+    withindf = float(len(x))
+    betwdf = float(len(x) - 1)
+    withinms = withinss / withindf
+    betweenms = (totalss - withinss) / betwdf
+    rho = (betweenms - withinms) / (withinms + betweenms)
+    t = rho * math.sqrt(betwdf / ((1.0 - rho + TINY) * (1.0 + rho + TINY)))
+    prob = abetai(0.5 * betwdf, 0.5, betwdf / (betwdf + t * t), verbose)
+    return rho, prob
+
+  def alincc(x, y):
+    """
+Calculates Lin's concordance correlation coefficient.
+
+Usage:   alincc(x,y)    where x, y are equal-length arrays
+Returns: Lin's CC
+"""
+    x = N.ravel(x)
+    y = N.ravel(y)
+    covar = acov(x, y) * (len(x) - 1) / float(len(x))  # correct denom to n
+    xvar = avar(x) * (len(x) - 1) / float(len(x))  # correct denom to n
+    yvar = avar(y) * (len(y) - 1) / float(len(y))  # correct denom to n
+    lincc = (2 * covar) / ((xvar + yvar) + ((amean(x) - amean(y))**2))
+    return lincc
+
+  def apearsonr(x, y, verbose=1):
+    """
+Calculates a Pearson correlation coefficient and returns p.  Taken
+from Heiman's Basic Statistics for the Behav. Sci (2nd), p.195.
+
+Usage:   apearsonr(x,y,verbose=1)      where x,y are equal length arrays
+Returns: Pearson's r, two-tailed p-value
+"""
+    TINY = 1.0e-20
+    n = len(x)
+    xmean = amean(x)
+    ymean = amean(y)
+    r_num = n * (N.add.reduce(x * y)) - N.add.reduce(x) * N.add.reduce(y)
+    r_den = math.sqrt((n * ass(x) - asquare_of_sums(x)) *
+                      (n * ass(y) - asquare_of_sums(y)))
+    r = (r_num / r_den)
+    df = n - 2
+    t = r * math.sqrt(df / ((1.0 - r + TINY) * (1.0 + r + TINY)))
+    prob = abetai(0.5 * df, 0.5, df / (df + t * t), verbose)
+    return r, prob
+
+  def aspearmanr(x, y):
+    """
+Calculates a Spearman rank-order correlation coefficient.  Taken
+from Heiman's Basic Statistics for the Behav. Sci (1st), p.192.
+
+Usage:   aspearmanr(x,y)      where x,y are equal-length arrays
+Returns: Spearman's r, two-tailed p-value
+"""
+    TINY = 1e-30
+    n = len(x)
+    rankx = rankdata(x)
+    ranky = rankdata(y)
+    dsq = N.add.reduce((rankx - ranky)**2)
+    rs = 1 - 6 * dsq / float(n * (n**2 - 1))
+    t = rs * math.sqrt((n - 2) / ((rs + 1.0) * (1.0 - rs)))
+    df = n - 2
+    probrs = abetai(0.5 * df, 0.5, df / (df + t * t))
+    # probability values for rs are from part 2 of the spearman function in
+    # Numerical Recipies, p.510.  They close to tables, but not exact.(?)
+    return rs, probrs
+
+  def apointbiserialr(x, y):
+    """
+Calculates a point-biserial correlation coefficient and the associated
+probability value.  Taken from Heiman's Basic Statistics for the Behav.
+Sci (1st), p.194.
+
+Usage:   apointbiserialr(x,y)      where x,y are equal length arrays
+Returns: Point-biserial r, two-tailed p-value
+"""
+    TINY = 1e-30
+    categories = pstat.aunique(x)
+    data = pstat.aabut(x, y)
+    if len(categories) <> 2:
+      raise ValueError, ('Exactly 2 categories required (in x) for '
+                         'pointbiserialr().')
+    else:  # there are 2 categories, continue
+      codemap = pstat.aabut(categories, N.arange(2))
+      recoded = pstat.arecode(data, codemap, 0)
+      x = pstat.alinexand(data, 0, categories[0])
+      y = pstat.alinexand(data, 0, categories[1])
+      xmean = amean(pstat.acolex(x, 1))
+      ymean = amean(pstat.acolex(y, 1))
+      n = len(data)
+      adjust = math.sqrt((len(x) / float(n)) * (len(y) / float(n)))
+      rpb = (ymean - xmean) / asamplestdev(pstat.acolex(data, 1)) * adjust
+      df = n - 2
+      t = rpb * math.sqrt(df / ((1.0 - rpb + TINY) * (1.0 + rpb + TINY)))
+      prob = abetai(0.5 * df, 0.5, df / (df + t * t))
+      return rpb, prob
+
+  def akendalltau(x, y):
+    """
+Calculates Kendall's tau ... correlation of ordinal data.  Adapted
+from function kendl1 in Numerical Recipies.  Needs good test-cases.@@@
+
+Usage:   akendalltau(x,y)
+Returns: Kendall's tau, two-tailed p-value
+"""
+    n1 = 0
+    n2 = 0
+    iss = 0
+    for j in range(len(x) - 1):
+      for k in range(j, len(y)):
+        a1 = x[j] - x[k]
+        a2 = y[j] - y[k]
+        aa = a1 * a2
+        if (aa):  # neither array has a tie
+          n1 = n1 + 1
+          n2 = n2 + 1
+          if aa > 0:
+            iss = iss + 1
+          else:
+            iss = iss - 1
+        else:
+          if (a1):
+            n1 = n1 + 1
+          else:
+            n2 = n2 + 1
+    tau = iss / math.sqrt(n1 * n2)
+    svar = (4.0 * len(x) + 10.0) / (9.0 * len(x) * (len(x) - 1))
+    z = tau / math.sqrt(svar)
+    prob = erfcc(abs(z) / 1.4142136)
+    return tau, prob
+
+  def alinregress(*args):
+    """
+Calculates a regression line on two arrays, x and y, corresponding to x,y
+pairs.  If a single 2D array is passed, alinregress finds dim with 2 levels
+and splits data into x,y pairs along that dim.
+
+Usage:   alinregress(*args)    args=2 equal-length arrays, or one 2D array
+Returns: slope, intercept, r, two-tailed prob, sterr-of-the-estimate, n
+"""
+    TINY = 1.0e-20
+    if len(args) == 1:  # more than 1D array?
+      args = args[0]
+      if len(args) == 2:
+        x = args[0]
+        y = args[1]
+      else:
+        x = args[:, 0]
+        y = args[:, 1]
+    else:
+      x = args[0]
+      y = args[1]
+    n = len(x)
+    xmean = amean(x)
+    ymean = amean(y)
+    r_num = n * (N.add.reduce(x * y)) - N.add.reduce(x) * N.add.reduce(y)
+    r_den = math.sqrt((n * ass(x) - asquare_of_sums(x)) *
+                      (n * ass(y) - asquare_of_sums(y)))
+    r = r_num / r_den
+    z = 0.5 * math.log((1.0 + r + TINY) / (1.0 - r + TINY))
+    df = n - 2
+    t = r * math.sqrt(df / ((1.0 - r + TINY) * (1.0 + r + TINY)))
+    prob = abetai(0.5 * df, 0.5, df / (df + t * t))
+    slope = r_num / (float(n) * ass(x) - asquare_of_sums(x))
+    intercept = ymean - slope * xmean
+    sterrest = math.sqrt(1 - r * r) * asamplestdev(y)
+    return slope, intercept, r, prob, sterrest, n
+
+  def amasslinregress(*args):
+    """
+Calculates a regression line on one 1D array (x) and one N-D array (y).
+
+Returns: slope, intercept, r, two-tailed prob, sterr-of-the-estimate, n
+"""
+    TINY = 1.0e-20
+    if len(args) == 1:  # more than 1D array?
+      args = args[0]
+      if len(args) == 2:
+        x = N.ravel(args[0])
+        y = args[1]
+      else:
+        x = N.ravel(args[:, 0])
+        y = args[:, 1]
+    else:
+      x = args[0]
+      y = args[1]
+    x = x.astype(N.float_)
+    y = y.astype(N.float_)
+    n = len(x)
+    xmean = amean(x)
+    ymean = amean(y, 0)
+    shp = N.ones(len(y.shape))
+    shp[0] = len(x)
+    x.shape = shp
+    print x.shape, y.shape
+    r_num = n * (N.add.reduce(x * y, 0)) - N.add.reduce(x) * N.add.reduce(y, 0)
+    r_den = N.sqrt((n * ass(x) - asquare_of_sums(x)) *
+                   (n * ass(y, 0) - asquare_of_sums(y, 0)))
+    zerodivproblem = N.equal(r_den, 0)
+    r_den = N.where(zerodivproblem, 1, r_den
+                   )  # avoid zero-division in 1st place
+    r = r_num / r_den  # need to do this nicely for matrix division
+    r = N.where(zerodivproblem, 0.0, r)
+    z = 0.5 * N.log((1.0 + r + TINY) / (1.0 - r + TINY))
+    df = n - 2
+    t = r * N.sqrt(df / ((1.0 - r + TINY) * (1.0 + r + TINY)))
+    prob = abetai(0.5 * df, 0.5, df / (df + t * t))
+
+    ss = float(n) * ass(x) - asquare_of_sums(x)
+    s_den = N.where(ss == 0, 1, ss)  # avoid zero-division in 1st place
+    slope = r_num / s_den
+    intercept = ymean - slope * xmean
+    sterrest = N.sqrt(1 - r * r) * asamplestdev(y, 0)
+    return slope, intercept, r, prob, sterrest, n
+
+#####################################
+#####  AINFERENTIAL STATISTICS  #####
+#####################################
+
+  def attest_1samp(a, popmean, printit=0, name='Sample', writemode='a'):
+    """
+Calculates the t-obtained for the independent samples T-test on ONE group
+of scores a, given a population mean.  If printit=1, results are printed
+to the screen.  If printit='filename', the results are output to 'filename'
+using the given writemode (default=append).  Returns t-value, and prob.
+
+Usage:   attest_1samp(a,popmean,Name='Sample',printit=0,writemode='a')
+Returns: t-value, two-tailed prob
+"""
+    if type(a) != N.ndarray:
+      a = N.array(a)
+    x = amean(a)
+    v = avar(a)
+    n = len(a)
+    df = n - 1
+    svar = ((n - 1) * v) / float(df)
+    t = (x - popmean) / math.sqrt(svar * (1.0 / n))
+    prob = abetai(0.5 * df, 0.5, df / (df + t * t))
+
+    if printit <> 0:
+      statname = 'Single-sample T-test.'
+      outputpairedstats(printit, writemode, 'Population', '--', popmean, 0, 0,
+                        0, name, n, x, v, N.minimum.reduce(N.ravel(a)),
+                        N.maximum.reduce(N.ravel(a)), statname, t, prob)
+    return t, prob
+
+  def attest_ind(a,
+                 b,
+                 dimension=None,
+                 printit=0,
+                 name1='Samp1',
+                 name2='Samp2',
+                 writemode='a'):
+    """
+Calculates the t-obtained T-test on TWO INDEPENDENT samples of scores
+a, and b.  From Numerical Recipies, p.483.  If printit=1, results are
+printed to the screen.  If printit='filename', the results are output
+to 'filename' using the given writemode (default=append).  Dimension
+can equal None (ravel array first), or an integer (the dimension over
+which to operate on a and b).
+
+Usage:   attest_ind (a,b,dimension=None,printit=0,
+                     Name1='Samp1',Name2='Samp2',writemode='a')
+Returns: t-value, two-tailed p-value
+"""
+    if dimension == None:
+      a = N.ravel(a)
+      b = N.ravel(b)
+      dimension = 0
+    x1 = amean(a, dimension)
+    x2 = amean(b, dimension)
+    v1 = avar(a, dimension)
+    v2 = avar(b, dimension)
+    n1 = a.shape[dimension]
+    n2 = b.shape[dimension]
+    df = n1 + n2 - 2
+    svar = ((n1 - 1) * v1 + (n2 - 1) * v2) / float(df)
+    zerodivproblem = N.equal(svar, 0)
+    svar = N.where(zerodivproblem, 1, svar)  # avoid zero-division in 1st place
+    t = (x1 - x2) / N.sqrt(svar *
+                           (1.0 / n1 + 1.0 / n2))  # N-D COMPUTATION HERE!!!!!!
+    t = N.where(zerodivproblem, 1.0, t)  # replace NaN/wrong t-values with 1.0
+    probs = abetai(0.5 * df, 0.5, float(df) / (df + t * t))
+
+    if type(t) == N.ndarray:
+      probs = N.reshape(probs, t.shape)
+    if probs.shape == (1,):
+      probs = probs[0]
+
+    if printit <> 0:
+      if type(t) == N.ndarray:
+        t = t[0]
+      if type(probs) == N.ndarray:
+        probs = probs[0]
+      statname = 'Independent samples T-test.'
+      outputpairedstats(printit, writemode, name1, n1, x1, v1,
+                        N.minimum.reduce(N.ravel(a)),
+                        N.maximum.reduce(N.ravel(a)), name2, n2, x2, v2,
+                        N.minimum.reduce(N.ravel(b)),
+                        N.maximum.reduce(N.ravel(b)), statname, t, probs)
+      return
+    return t, probs
+
+  def ap2t(pval, df):
+    """
+Tries to compute a t-value from a p-value (or pval array) and associated df.
+SLOW for large numbers of elements(!) as it re-computes p-values 20 times
+(smaller step-sizes) at which point it decides it's done. Keeps the signs
+of the input array. Returns 1000 (or -1000) if t>100.
+
+Usage:  ap2t(pval,df)
+Returns: an array of t-values with the shape of pval
+    """
+    pval = N.array(pval)
+    signs = N.sign(pval)
+    pval = abs(pval)
+    t = N.ones(pval.shape, N.float_) * 50
+    step = N.ones(pval.shape, N.float_) * 25
+    print 'Initial ap2t() prob calc'
+    prob = abetai(0.5 * df, 0.5, float(df) / (df + t * t))
+    print 'ap2t() iter: ',
+    for i in range(10):
+      print i, ' ',
+      t = N.where(pval < prob, t + step, t - step)
+      prob = abetai(0.5 * df, 0.5, float(df) / (df + t * t))
+      step = step / 2
+    print
+    # since this is an ugly hack, we get ugly boundaries
+    t = N.where(t > 99.9, 1000, t)  # hit upper-boundary
+    t = t + signs
+    return t  #, prob, pval
+
+  def attest_rel(a,
+                 b,
+                 dimension=None,
+                 printit=0,
+                 name1='Samp1',
+                 name2='Samp2',
+                 writemode='a'):
+    """
+Calculates the t-obtained T-test on TWO RELATED samples of scores, a
+and b.  From Numerical Recipies, p.483.  If printit=1, results are
+printed to the screen.  If printit='filename', the results are output
+to 'filename' using the given writemode (default=append).  Dimension
+can equal None (ravel array first), or an integer (the dimension over
+which to operate on a and b).
+
+Usage:   attest_rel(a,b,dimension=None,printit=0,
+                    name1='Samp1',name2='Samp2',writemode='a')
+Returns: t-value, two-tailed p-value
+"""
+    if dimension == None:
+      a = N.ravel(a)
+      b = N.ravel(b)
+      dimension = 0
+    if len(a) <> len(b):
+      raise ValueError, 'Unequal length arrays.'
+    x1 = amean(a, dimension)
+    x2 = amean(b, dimension)
+    v1 = avar(a, dimension)
+    v2 = avar(b, dimension)
+    n = a.shape[dimension]
+    df = float(n - 1)
+    d = (a - b).astype('d')
+
+    denom = N.sqrt(
+        (n * N.add.reduce(d * d, dimension) - N.add.reduce(d, dimension)**2) /
+        df)
+    zerodivproblem = N.equal(denom, 0)
+    denom = N.where(zerodivproblem, 1, denom
+                   )  # avoid zero-division in 1st place
+    t = N.add.reduce(d, dimension) / denom  # N-D COMPUTATION HERE!!!!!!
+    t = N.where(zerodivproblem, 1.0, t)  # replace NaN/wrong t-values with 1.0
+    probs = abetai(0.5 * df, 0.5, float(df) / (df + t * t))
+    if type(t) == N.ndarray:
+      probs = N.reshape(probs, t.shape)
+    if probs.shape == (1,):
+      probs = probs[0]
+
+    if printit <> 0:
+      statname = 'Related samples T-test.'
+      outputpairedstats(printit, writemode, name1, n, x1, v1,
+                        N.minimum.reduce(N.ravel(a)),
+                        N.maximum.reduce(N.ravel(a)), name2, n, x2, v2,
+                        N.minimum.reduce(N.ravel(b)),
+                        N.maximum.reduce(N.ravel(b)), statname, t, probs)
+      return
+    return t, probs
+
+  def achisquare(f_obs, f_exp=None):
+    """
+Calculates a one-way chi square for array of observed frequencies and returns
+the result.  If no expected frequencies are given, the total N is assumed to
+be equally distributed across all groups.
+@@@NOT RIGHT??
+
+Usage:   achisquare(f_obs, f_exp=None)   f_obs = array of observed cell freq.
+Returns: chisquare-statistic, associated p-value
+"""
+
+    k = len(f_obs)
+    if f_exp == None:
+      f_exp = N.array([sum(f_obs) / float(k)] * len(f_obs), N.float_)
+    f_exp = f_exp.astype(N.float_)
+    chisq = N.add.reduce((f_obs - f_exp)**2 / f_exp)
+    return chisq, achisqprob(chisq, k - 1)
+
+  def aks_2samp(data1, data2):
+    """
+Computes the Kolmogorov-Smirnof statistic on 2 samples.  Modified from
+Numerical Recipies in C, page 493.  Returns KS D-value, prob.  Not ufunc-
+like.
+
+Usage:   aks_2samp(data1,data2)  where data1 and data2 are 1D arrays
+Returns: KS D-value, p-value
+"""
+    j1 = 0  # N.zeros(data1.shape[1:]) TRIED TO MAKE THIS UFUNC-LIKE
+    j2 = 0  # N.zeros(data2.shape[1:])
+    fn1 = 0.0  # N.zeros(data1.shape[1:],N.float_)
+    fn2 = 0.0  # N.zeros(data2.shape[1:],N.float_)
+    n1 = data1.shape[0]
+    n2 = data2.shape[0]
+    en1 = n1 * 1
+    en2 = n2 * 1
+    d = N.zeros(data1.shape[1:], N.float_)
+    data1 = N.sort(data1, 0)
+    data2 = N.sort(data2, 0)
+    while j1 < n1 and j2 < n2:
+      d1 = data1[j1]
+      d2 = data2[j2]
+      if d1 <= d2:
+        fn1 = (j1) / float(en1)
+        j1 = j1 + 1
+      if d2 <= d1:
+        fn2 = (j2) / float(en2)
+        j2 = j2 + 1
+      dt = (fn2 - fn1)
+      if abs(dt) > abs(d):
+        d = dt
+#    try:
+    en = math.sqrt(en1 * en2 / float(en1 + en2))
+    prob = aksprob((en + 0.12 + 0.11 / en) * N.fabs(d))
+    #    except:
+    #        prob = 1.0
+    return d, prob
+
+  def amannwhitneyu(x, y):
+    """
+Calculates a Mann-Whitney U statistic on the provided scores and
+returns the result.  Use only when the n in each condition is < 20 and
+you have 2 independent samples of ranks.  REMEMBER: Mann-Whitney U is
+significant if the u-obtained is LESS THAN or equal to the critical
+value of U.
+
+Usage:   amannwhitneyu(x,y)     where x,y are arrays of values for 2 conditions
+Returns: u-statistic, one-tailed p-value (i.e., p(z(U)))
+"""
+    n1 = len(x)
+    n2 = len(y)
+    ranked = rankdata(N.concatenate((x, y)))
+    rankx = ranked[0:n1]  # get the x-ranks
+    ranky = ranked[n1:]  # the rest are y-ranks
+    u1 = n1 * n2 + (n1 * (n1 + 1)) / 2.0 - sum(rankx)  # calc U for x
+    u2 = n1 * n2 - u1  # remainder is U for y
+    bigu = max(u1, u2)
+    smallu = min(u1, u2)
+    proportion = bigu / float(n1 * n2)
+    T = math.sqrt(tiecorrect(ranked))  # correction factor for tied scores
+    if T == 0:
+      raise ValueError, 'All numbers are identical in amannwhitneyu'
+    sd = math.sqrt(T * n1 * n2 * (n1 + n2 + 1) / 12.0)
+    z = abs((bigu - n1 * n2 / 2.0) / sd)  # normal approximation for prob calc
+    return smallu, 1.0 - azprob(z), proportion
+
+  def atiecorrect(rankvals):
+    """
+Tie-corrector for ties in Mann Whitney U and Kruskal Wallis H tests.
+See Siegel, S. (1956) Nonparametric Statistics for the Behavioral
+Sciences.  New York: McGraw-Hill.  Code adapted from |Stat rankind.c
+code.
+
+Usage:   atiecorrect(rankvals)
+Returns: T correction factor for U or H
+"""
+    sorted, posn = ashellsort(N.array(rankvals))
+    n = len(sorted)
+    T = 0.0
+    i = 0
+    while (i < n - 1):
+      if sorted[i] == sorted[i + 1]:
+        nties = 1
+        while (i < n - 1) and (sorted[i] == sorted[i + 1]):
+          nties = nties + 1
+          i = i + 1
+        T = T + nties**3 - nties
+      i = i + 1
+    T = T / float(n**3 - n)
+    return 1.0 - T
+
+  def aranksums(x, y):
+    """
+Calculates the rank sums statistic on the provided scores and returns
+the result.
+
+Usage:   aranksums(x,y)     where x,y are arrays of values for 2 conditions
+Returns: z-statistic, two-tailed p-value
+"""
+    n1 = len(x)
+    n2 = len(y)
+    alldata = N.concatenate((x, y))
+    ranked = arankdata(alldata)
+    x = ranked[:n1]
+    y = ranked[n1:]
+    s = sum(x)
+    expected = n1 * (n1 + n2 + 1) / 2.0
+    z = (s - expected) / math.sqrt(n1 * n2 * (n1 + n2 + 1) / 12.0)
+    prob = 2 * (1.0 - azprob(abs(z)))
+    return z, prob
+
+  def awilcoxont(x, y):
+    """
+Calculates the Wilcoxon T-test for related samples and returns the
+result.  A non-parametric T-test.
+
+Usage:   awilcoxont(x,y)     where x,y are equal-length arrays for 2 conditions
+Returns: t-statistic, two-tailed p-value
+"""
+    if len(x) <> len(y):
+      raise ValueError, 'Unequal N in awilcoxont.  Aborting.'
+    d = x - y
+    d = N.compress(N.not_equal(d, 0), d)  # Keep all non-zero differences
+    count = len(d)
+    absd = abs(d)
+    absranked = arankdata(absd)
+    r_plus = 0.0
+    r_minus = 0.0
+    for i in range(len(absd)):
+      if d[i] < 0:
+        r_minus = r_minus + absranked[i]
+      else:
+        r_plus = r_plus + absranked[i]
+    wt = min(r_plus, r_minus)
+    mn = count * (count + 1) * 0.25
+    se = math.sqrt(count * (count + 1) * (2.0 * count + 1.0) / 24.0)
+    z = math.fabs(wt - mn) / se
+    z = math.fabs(wt - mn) / se
+    prob = 2 * (1.0 - zprob(abs(z)))
+    return wt, prob
+
+  def akruskalwallish(*args):
+    """
+The Kruskal-Wallis H-test is a non-parametric ANOVA for 3 or more
+groups, requiring at least 5 subjects in each group.  This function
+calculates the Kruskal-Wallis H and associated p-value for 3 or more
+independent samples.
+
+Usage:   akruskalwallish(*args)     args are separate arrays for 3+ conditions
+Returns: H-statistic (corrected for ties), associated p-value
+"""
+    assert len(args) == 3, 'Need at least 3 groups in stats.akruskalwallish()'
+    args = list(args)
+    n = [0] * len(args)
+    n = map(len, args)
+    all = []
+    for i in range(len(args)):
+      all = all + args[i].tolist()
+    ranked = rankdata(all)
+    T = tiecorrect(ranked)
+    for i in range(len(args)):
+      args[i] = ranked[0:n[i]]
+      del ranked[0:n[i]]
+    rsums = []
+    for i in range(len(args)):
+      rsums.append(sum(args[i])**2)
+      rsums[i] = rsums[i] / float(n[i])
+    ssbn = sum(rsums)
+    totaln = sum(n)
+    h = 12.0 / (totaln * (totaln + 1)) * ssbn - 3 * (totaln + 1)
+    df = len(args) - 1
+    if T == 0:
+      raise ValueError, 'All numbers are identical in akruskalwallish'
+    h = h / float(T)
+    return h, chisqprob(h, df)
+
+  def afriedmanchisquare(*args):
+    """
+Friedman Chi-Square is a non-parametric, one-way within-subjects
+ANOVA.  This function calculates the Friedman Chi-square test for
+repeated measures and returns the result, along with the associated
+probability value.  It assumes 3 or more repeated measures.  Only 3
+levels requires a minimum of 10 subjects in the study.  Four levels
+requires 5 subjects per level(??).
+
+Usage:   afriedmanchisquare(*args)   args are separate arrays for 2+ conditions
+Returns: chi-square statistic, associated p-value
+"""
+    k = len(args)
+    if k < 3:
+      raise ValueError, ('\nLess than 3 levels.  Friedman test not '
+                         'appropriate.\n')
+    n = len(args[0])
+    data = apply(pstat.aabut, args)
+    data = data.astype(N.float_)
+    for i in range(len(data)):
+      data[i] = arankdata(data[i])
+    ssbn = asum(asum(args, 1)**2)
+    chisq = 12.0 / (k * n * (k + 1)) * ssbn - 3 * n * (k + 1)
+    return chisq, achisqprob(chisq, k - 1)
+
+#####################################
+####  APROBABILITY CALCULATIONS  ####
+#####################################
+
+  def achisqprob(chisq, df):
+    """
+Returns the (1-tail) probability value associated with the provided chi-square
+value and df.  Heavily modified from chisq.c in Gary Perlman's |Stat.  Can
+handle multiple dimensions.
+
+Usage:   achisqprob(chisq,df)    chisq=chisquare stat., df=degrees of freedom
+"""
+    BIG = 200.0
+
+    def ex(x):
+      BIG = 200.0
+      exponents = N.where(N.less(x, -BIG), -BIG, x)
+      return N.exp(exponents)
+
+    if type(chisq) == N.ndarray:
+      arrayflag = 1
+    else:
+      arrayflag = 0
+      chisq = N.array([chisq])
+    if df < 1:
+      return N.ones(chisq.shape, N.float)
+    probs = N.zeros(chisq.shape, N.float_)
+    probs = N.where(
+        N.less_equal(chisq, 0), 1.0, probs)  # set prob=1 for chisq<0
+    a = 0.5 * chisq
+    if df > 1:
+      y = ex(-a)
+    if df % 2 == 0:
+      even = 1
+      s = y * 1
+      s2 = s * 1
+    else:
+      even = 0
+      s = 2.0 * azprob(-N.sqrt(chisq))
+      s2 = s * 1
+    if (df > 2):
+      chisq = 0.5 * (df - 1.0)
+      if even:
+        z = N.ones(probs.shape, N.float_)
+      else:
+        z = 0.5 * N.ones(probs.shape, N.float_)
+      if even:
+        e = N.zeros(probs.shape, N.float_)
+      else:
+        e = N.log(N.sqrt(N.pi)) * N.ones(probs.shape, N.float_)
+      c = N.log(a)
+      mask = N.zeros(probs.shape)
+      a_big = N.greater(a, BIG)
+      a_big_frozen = -1 * N.ones(probs.shape, N.float_)
+      totalelements = N.multiply.reduce(N.array(probs.shape))
+      while asum(mask) <> totalelements:
+        e = N.log(z) + e
+        s = s + ex(c * z - a - e)
+        z = z + 1.0
+        #            print z, e, s
+        newmask = N.greater(z, chisq)
+        a_big_frozen = N.where(newmask * N.equal(mask, 0) * a_big, s,
+                               a_big_frozen)
+        mask = N.clip(newmask + mask, 0, 1)
+      if even:
+        z = N.ones(probs.shape, N.float_)
+        e = N.ones(probs.shape, N.float_)
+      else:
+        z = 0.5 * N.ones(probs.shape, N.float_)
+        e = 1.0 / N.sqrt(N.pi) / N.sqrt(a) * N.ones(probs.shape, N.float_)
+      c = 0.0
+      mask = N.zeros(probs.shape)
+      a_notbig_frozen = -1 * N.ones(probs.shape, N.float_)
+      while asum(mask) <> totalelements:
+        e = e * (a / z.astype(N.float_))
+        c = c + e
+        z = z + 1.0
+        #            print '#2', z, e, c, s, c*y+s2
+        newmask = N.greater(z, chisq)
+        a_notbig_frozen = N.where(newmask * N.equal(mask, 0) * (1 - a_big),
+                                  c * y + s2, a_notbig_frozen)
+        mask = N.clip(newmask + mask, 0, 1)
+      probs = N.where(
+          N.equal(probs, 1), 1, N.where(
+              N.greater(a, BIG), a_big_frozen, a_notbig_frozen))
+      return probs
+    else:
+      return s
+
+  def aerfcc(x):
+    """
+Returns the complementary error function erfc(x) with fractional error
+everywhere less than 1.2e-7.  Adapted from Numerical Recipies.  Can
+handle multiple dimensions.
+
+Usage:   aerfcc(x)
+"""
+    z = abs(x)
+    t = 1.0 / (1.0 + 0.5 * z)
+    ans = t * N.exp(-z * z - 1.26551223 + t * (1.00002368 + t * (
+        0.37409196 + t * (0.09678418 + t * (-0.18628806 + t * (
+            0.27886807 + t * (-1.13520398 + t * (1.48851587 + t * (
+                -0.82215223 + t * 0.17087277)))))))))
+    return N.where(N.greater_equal(x, 0), ans, 2.0 - ans)
+
+  def azprob(z):
+    """
+Returns the area under the normal curve 'to the left of' the given z value.
+Thus,
+    for z<0, zprob(z) = 1-tail probability
+    for z>0, 1.0-zprob(z) = 1-tail probability
+    for any z, 2.0*(1.0-zprob(abs(z))) = 2-tail probability
+Adapted from z.c in Gary Perlman's |Stat.  Can handle multiple dimensions.
+
+Usage:   azprob(z)    where z is a z-value
+"""
+
+    def yfunc(y):
+      x = (((((((
+          ((((((-0.000045255659 * y + 0.000152529290) * y - 0.000019538132) * y
+              - 0.000676904986) * y + 0.001390604284) * y - 0.000794620820) * y
+           - 0.002034254874) * y + 0.006549791214) * y - 0.010557625006) * y +
+               0.011630447319) * y - 0.009279453341) * y + 0.005353579108) * y -
+            0.002141268741) * y + 0.000535310849) * y + 0.999936657524
+      return x
+
+    def wfunc(w):
+      x = ((((((((0.000124818987 * w - 0.001075204047) * w + 0.005198775019) * w
+                - 0.019198292004) * w + 0.059054035642) * w - 0.151968751364) *
+             w + 0.319152932694) * w - 0.531923007300) * w +
+           0.797884560593) * N.sqrt(w) * 2.0
+      return x
+
+    Z_MAX = 6.0  # maximum meaningful z-value
+    x = N.zeros(z.shape, N.float_)  # initialize
+    y = 0.5 * N.fabs(z)
+    x = N.where(N.less(y, 1.0), wfunc(y * y), yfunc(y - 2.0))  # get x's
+    x = N.where(N.greater(y, Z_MAX * 0.5), 1.0, x)  # kill those with big Z
+    prob = N.where(N.greater(z, 0), (x + 1) * 0.5, (1 - x) * 0.5)
+    return prob
+
+  def aksprob(alam):
+    """
+Returns the probability value for a K-S statistic computed via ks_2samp.
+Adapted from Numerical Recipies.  Can handle multiple dimensions.
+
+Usage:   aksprob(alam)
+"""
+    if type(alam) == N.ndarray:
+      frozen = -1 * N.ones(alam.shape, N.float64)
+      alam = alam.astype(N.float64)
+      arrayflag = 1
+    else:
+      frozen = N.array(-1.)
+      alam = N.array(alam, N.float64)
+      arrayflag = 1
+    mask = N.zeros(alam.shape)
+    fac = 2.0 * N.ones(alam.shape, N.float_)
+    sum = N.zeros(alam.shape, N.float_)
+    termbf = N.zeros(alam.shape, N.float_)
+    a2 = N.array(-2.0 * alam * alam, N.float64)
+    totalelements = N.multiply.reduce(N.array(mask.shape))
+    for j in range(1, 201):
+      if asum(mask) == totalelements:
+        break
+      exponents = (a2 * j * j)
+      overflowmask = N.less(exponents, -746)
+      frozen = N.where(overflowmask, 0, frozen)
+      mask = mask + overflowmask
+      term = fac * N.exp(exponents)
+      sum = sum + term
+      newmask = N.where(
+          N.less_equal(
+              abs(term), (0.001 * termbf)) + N.less(
+                  abs(term), 1.0e-8 * sum), 1, 0)
+      frozen = N.where(newmask * N.equal(mask, 0), sum, frozen)
+      mask = N.clip(mask + newmask, 0, 1)
+      fac = -fac
+      termbf = abs(term)
+    if arrayflag:
+      return N.where(
+          N.equal(frozen, -1), 1.0, frozen)  # 1.0 if doesn't converge
+    else:
+      return N.where(
+          N.equal(frozen, -1), 1.0, frozen)[0]  # 1.0 if doesn't converge
+
+  def afprob(dfnum, dfden, F):
+    """
+Returns the 1-tailed significance level (p-value) of an F statistic
+given the degrees of freedom for the numerator (dfR-dfF) and the degrees
+of freedom for the denominator (dfF).  Can handle multiple dims for F.
+
+Usage:   afprob(dfnum, dfden, F)   where usually dfnum=dfbn, dfden=dfwn
+"""
+    if type(F) == N.ndarray:
+      return abetai(0.5 * dfden, 0.5 * dfnum, dfden / (1.0 * dfden + dfnum * F))
+    else:
+      return abetai(0.5 * dfden, 0.5 * dfnum, dfden / float(dfden + dfnum * F))
+
+  def abetacf(a, b, x, verbose=1):
+    """
+Evaluates the continued fraction form of the incomplete Beta function,
+betai.  (Adapted from: Numerical Recipies in C.)  Can handle multiple
+dimensions for x.
+
+Usage:   abetacf(a,b,x,verbose=1)
+"""
+    ITMAX = 200
+    EPS = 3.0e-7
+
+    arrayflag = 1
+    if type(x) == N.ndarray:
+      frozen = N.ones(x.shape,
+                      N.float_) * -1  #start out w/ -1s, should replace all
+    else:
+      arrayflag = 0
+      frozen = N.array([-1])
+      x = N.array([x])
+    mask = N.zeros(x.shape)
+    bm = az = am = 1.0
+    qab = a + b
+    qap = a + 1.0
+    qam = a - 1.0
+    bz = 1.0 - qab * x / qap
+    for i in range(ITMAX + 1):
+      if N.sum(N.ravel(N.equal(frozen, -1))) == 0:
+        break
+      em = float(i + 1)
+      tem = em + em
+      d = em * (b - em) * x / ((qam + tem) * (a + tem))
+      ap = az + d * am
+      bp = bz + d * bm
+      d = -(a + em) * (qab + em) * x / ((qap + tem) * (a + tem))
+      app = ap + d * az
+      bpp = bp + d * bz
+      aold = az * 1
+      am = ap / bpp
+      bm = bp / bpp
+      az = app / bpp
+      bz = 1.0
+      newmask = N.less(abs(az - aold), EPS * abs(az))
+      frozen = N.where(newmask * N.equal(mask, 0), az, frozen)
+      mask = N.clip(mask + newmask, 0, 1)
+    noconverge = asum(N.equal(frozen, -1))
+    if noconverge <> 0 and verbose:
+      print 'a or b too big, or ITMAX too small in Betacf for ', noconverge, ' elements'
+    if arrayflag:
+      return frozen
+    else:
+      return frozen[0]
+
+  def agammln(xx):
+    """
+Returns the gamma function of xx.
+    Gamma(z) = Integral(0,infinity) of t^(z-1)exp(-t) dt.
+Adapted from: Numerical Recipies in C.  Can handle multiple dims ... but
+probably doesn't normally have to.
+
+Usage:   agammln(xx)
+"""
+    coeff = [76.18009173, -86.50532033, 24.01409822, -1.231739516,
+             0.120858003e-2, -0.536382e-5]
+    x = xx - 1.0
+    tmp = x + 5.5
+    tmp = tmp - (x + 0.5) * N.log(tmp)
+    ser = 1.0
+    for j in range(len(coeff)):
+      x = x + 1
+      ser = ser + coeff[j] / x
+    return -tmp + N.log(2.50662827465 * ser)
+
+  def abetai(a, b, x, verbose=1):
+    """
+Returns the incomplete beta function:
+
+    I-sub-x(a,b) = 1/B(a,b)*(Integral(0,x) of t^(a-1)(1-t)^(b-1) dt)
+
+where a,b>0 and B(a,b) = G(a)*G(b)/(G(a+b)) where G(a) is the gamma
+function of a.  The continued fraction formulation is implemented
+here, using the betacf function.  (Adapted from: Numerical Recipies in
+C.)  Can handle multiple dimensions.
+
+Usage:   abetai(a,b,x,verbose=1)
+"""
+    TINY = 1e-15
+    if type(a) == N.ndarray:
+      if asum(N.less(x, 0) + N.greater(x, 1)) <> 0:
+        raise ValueError, 'Bad x in abetai'
+    x = N.where(N.equal(x, 0), TINY, x)
+    x = N.where(N.equal(x, 1.0), 1 - TINY, x)
+
+    bt = N.where(N.equal(x, 0) + N.equal(x, 1), 0, -1)
+    exponents = (gammln(a + b) - gammln(a) - gammln(b) + a * N.log(x) + b *
+                 N.log(1.0 - x))
+    # 746 (below) is the MAX POSSIBLE BEFORE OVERFLOW
+    exponents = N.where(N.less(exponents, -740), -740, exponents)
+    bt = N.exp(exponents)
+    if type(x) == N.ndarray:
+      ans = N.where(
+          N.less(x, (a + 1) / (a + b + 2.0)), bt * abetacf(a, b, x, verbose) /
+          float(a), 1.0 - bt * abetacf(b, a, 1.0 - x, verbose) / float(b))
+    else:
+      if x < (a + 1) / (a + b + 2.0):
+        ans = bt * abetacf(a, b, x, verbose) / float(a)
+      else:
+        ans = 1.0 - bt * abetacf(b, a, 1.0 - x, verbose) / float(b)
+    return ans
+
+#####################################
+#######  AANOVA CALCULATIONS  #######
+#####################################
+
+  import numpy.linalg, operator
+  LA = numpy.linalg
+
+  def aglm(data, para):
+    """
+Calculates a linear model fit ... anova/ancova/lin-regress/t-test/etc. Taken
+from:
+    Peterson et al. Statistical limitations in functional neuroimaging
+    I. Non-inferential methods and statistical models.  Phil Trans Royal Soc
+    Lond B 354: 1239-1260.
+
+Usage:   aglm(data,para)
+Returns: statistic, p-value ???
+"""
+    if len(para) <> len(data):
+      print 'data and para must be same length in aglm'
+      return
+    n = len(para)
+    p = pstat.aunique(para)
+    x = N.zeros((n, len(p)))  # design matrix
+    for l in range(len(p)):
+      x[:, l] = N.equal(para, p[l])
+    b = N.dot(
+        N.dot(
+            LA.inv(N.dot(
+                N.transpose(x), x)),  # i.e., b=inv(X'X)X'Y
+            N.transpose(x)),
+        data)
+    diffs = (data - N.dot(x, b))
+    s_sq = 1. / (n - len(p)) * N.dot(N.transpose(diffs), diffs)
+
+    if len(p) == 2:  # ttest_ind
+      c = N.array([1, -1])
+      df = n - 2
+      fact = asum(1.0 / asum(x, 0))  # i.e., 1/n1 + 1/n2 + 1/n3 ...
+      t = N.dot(c, b) / N.sqrt(s_sq * fact)
+      probs = abetai(0.5 * df, 0.5, float(df) / (df + t * t))
+      return t, probs
+
+  def aF_oneway(*args):
+    """
+Performs a 1-way ANOVA, returning an F-value and probability given
+any number of groups.  From Heiman, pp.394-7.
+
+Usage:   aF_oneway (*args)    where *args is 2 or more arrays, one per
+                                  treatment group
+Returns: f-value, probability
+"""
+    na = len(args)  # ANOVA on 'na' groups, each in it's own array
+    means = [0] * na
+    vars = [0] * na
+    ns = [0] * na
+    alldata = []
+    tmp = map(N.array, args)
+    means = map(amean, tmp)
+    vars = map(avar, tmp)
+    ns = map(len, args)
+    alldata = N.concatenate(args)
+    bign = len(alldata)
+    sstot = ass(alldata) - (asquare_of_sums(alldata) / float(bign))
+    ssbn = 0
+    for a in args:
+      ssbn = ssbn + asquare_of_sums(N.array(a)) / float(len(a))
+    ssbn = ssbn - (asquare_of_sums(alldata) / float(bign))
+    sswn = sstot - ssbn
+    dfbn = na - 1
+    dfwn = bign - na
+    msb = ssbn / float(dfbn)
+    msw = sswn / float(dfwn)
+    f = msb / msw
+    prob = fprob(dfbn, dfwn, f)
+    return f, prob
+
+  def aF_value(ER, EF, dfR, dfF):
+    """
+Returns an F-statistic given the following:
+        ER  = error associated with the null hypothesis (the Restricted model)
+        EF  = error associated with the alternate hypothesis (the Full model)
+        dfR = degrees of freedom the Restricted model
+        dfF = degrees of freedom associated with the Restricted model
+"""
+    return ((ER - EF) / float(dfR - dfF) / (EF / float(dfF)))
+
+  def outputfstats(Enum, Eden, dfnum, dfden, f, prob):
+    Enum = round(Enum, 3)
+    Eden = round(Eden, 3)
+    dfnum = round(Enum, 3)
+    dfden = round(dfden, 3)
+    f = round(f, 3)
+    prob = round(prob, 3)
+    suffix = ''  # for *s after the p-value
+    if prob < 0.001:
+      suffix = '  ***'
+    elif prob < 0.01:
+      suffix = '  **'
+    elif prob < 0.05:
+      suffix = '  *'
+    title = [['EF/ER', 'DF', 'Mean Square', 'F-value', 'prob', '']]
+    lofl = title + [[Enum, dfnum, round(Enum / float(dfnum), 3), f, prob, suffix
+                    ], [Eden, dfden, round(Eden / float(dfden), 3), '', '', '']]
+    pstat.printcc(lofl)
+    return
+
+  def F_value_multivariate(ER, EF, dfnum, dfden):
+    """
+Returns an F-statistic given the following:
+        ER  = error associated with the null hypothesis (the Restricted model)
+        EF  = error associated with the alternate hypothesis (the Full model)
+        dfR = degrees of freedom the Restricted model
+        dfF = degrees of freedom associated with the Restricted model
+where ER and EF are matrices from a multivariate F calculation.
+"""
+    if type(ER) in [IntType, FloatType]:
+      ER = N.array([[ER]])
+    if type(EF) in [IntType, FloatType]:
+      EF = N.array([[EF]])
+    n_um = (LA.det(ER) - LA.det(EF)) / float(dfnum)
+    d_en = LA.det(EF) / float(dfden)
+    return n_um / d_en
+
+#####################################
+#######  ASUPPORT FUNCTIONS  ########
+#####################################
+
+  def asign(a):
+    """
+Usage:   asign(a)
+Returns: array shape of a, with -1 where a<0 and +1 where a>=0
+"""
+    a = N.asarray(a)
+    if ((type(a) == type(1.4)) or (type(a) == type(1))):
+      return a - a - N.less(a, 0) + N.greater(a, 0)
+    else:
+      return N.zeros(N.shape(a)) - N.less(a, 0) + N.greater(a, 0)
+
+  def asum(a, dimension=None, keepdims=0):
+    """
+An alternative to the Numeric.add.reduce function, which allows one to
+(1) collapse over multiple dimensions at once, and/or (2) to retain
+all dimensions in the original array (squashing one down to size.
+Dimension can equal None (ravel array first), an integer (the
+dimension over which to operate), or a sequence (operate over multiple
+dimensions).  If keepdims=1, the resulting array will have as many
+dimensions as the input array.
+
+Usage:   asum(a, dimension=None, keepdims=0)
+Returns: array summed along 'dimension'(s), same _number_ of dims if keepdims=1
+"""
+    if type(a) == N.ndarray and a.dtype in [N.int_, N.short, N.ubyte]:
+      a = a.astype(N.float_)
+    if dimension == None:
+      s = N.sum(N.ravel(a))
+    elif type(dimension) in [IntType, FloatType]:
+      s = N.add.reduce(a, dimension)
+      if keepdims == 1:
+        shp = list(a.shape)
+        shp[dimension] = 1
+        s = N.reshape(s, shp)
+    else:  # must be a SEQUENCE of dims to sum over
+      dims = list(dimension)
+      dims.sort()
+      dims.reverse()
+      s = a * 1.0
+      for dim in dims:
+        s = N.add.reduce(s, dim)
+      if keepdims == 1:
+        shp = list(a.shape)
+        for dim in dims:
+          shp[dim] = 1
+        s = N.reshape(s, shp)
+    return s
+
+  def acumsum(a, dimension=None):
+    """
+Returns an array consisting of the cumulative sum of the items in the
+passed array.  Dimension can equal None (ravel array first), an
+integer (the dimension over which to operate), or a sequence (operate
+over multiple dimensions, but this last one just barely makes sense).
+
+Usage:   acumsum(a,dimension=None)
+"""
+    if dimension == None:
+      a = N.ravel(a)
+      dimension = 0
+    if type(dimension) in [ListType, TupleType, N.ndarray]:
+      dimension = list(dimension)
+      dimension.sort()
+      dimension.reverse()
+      for d in dimension:
+        a = N.add.accumulate(a, d)
+      return a
+    else:
+      return N.add.accumulate(a, dimension)
+
+  def ass(inarray, dimension=None, keepdims=0):
+    """
+Squares each value in the passed array, adds these squares & returns
+the result.  Unfortunate function name. :-) Defaults to ALL values in
+the array.  Dimension can equal None (ravel array first), an integer
+(the dimension over which to operate), or a sequence (operate over
+multiple dimensions).  Set keepdims=1 to maintain the original number
+of dimensions.
+
+Usage:   ass(inarray, dimension=None, keepdims=0)
+Returns: sum-along-'dimension' for (inarray*inarray)
+"""
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      dimension = 0
+    return asum(inarray * inarray, dimension, keepdims)
+
+  def asummult(array1, array2, dimension=None, keepdims=0):
+    """
+Multiplies elements in array1 and array2, element by element, and
+returns the sum (along 'dimension') of all resulting multiplications.
+Dimension can equal None (ravel array first), an integer (the
+dimension over which to operate), or a sequence (operate over multiple
+dimensions).  A trivial function, but included for completeness.
+
+Usage:   asummult(array1,array2,dimension=None,keepdims=0)
+"""
+    if dimension == None:
+      array1 = N.ravel(array1)
+      array2 = N.ravel(array2)
+      dimension = 0
+    return asum(array1 * array2, dimension, keepdims)
+
+  def asquare_of_sums(inarray, dimension=None, keepdims=0):
+    """
+Adds the values in the passed array, squares that sum, and returns the
+result.  Dimension can equal None (ravel array first), an integer (the
+dimension over which to operate), or a sequence (operate over multiple
+dimensions).  If keepdims=1, the returned array will have the same
+NUMBER of dimensions as the original.
+
+Usage:   asquare_of_sums(inarray, dimension=None, keepdims=0)
+Returns: the square of the sum over dim(s) in dimension
+"""
+    if dimension == None:
+      inarray = N.ravel(inarray)
+      dimension = 0
+    s = asum(inarray, dimension, keepdims)
+    if type(s) == N.ndarray:
+      return s.astype(N.float_) * s
+    else:
+      return float(s) * s
+
+  def asumdiffsquared(a, b, dimension=None, keepdims=0):
+    """
+Takes pairwise differences of the values in arrays a and b, squares
+these differences, and returns the sum of these squares.  Dimension
+can equal None (ravel array first), an integer (the dimension over
+which to operate), or a sequence (operate over multiple dimensions).
+keepdims=1 means the return shape = len(a.shape) = len(b.shape)
+
+Usage:   asumdiffsquared(a,b)
+Returns: sum[ravel(a-b)**2]
+"""
+    if dimension == None:
+      inarray = N.ravel(a)
+      dimension = 0
+    return asum((a - b)**2, dimension, keepdims)
+
+  def ashellsort(inarray):
+    """
+Shellsort algorithm.  Sorts a 1D-array.
+
+Usage:   ashellsort(inarray)
+Returns: sorted-inarray, sorting-index-vector (for original array)
+"""
+    n = len(inarray)
+    svec = inarray * 1.0
+    ivec = range(n)
+    gap = n / 2  # integer division needed
+    while gap > 0:
+      for i in range(gap, n):
+        for j in range(i - gap, -1, -gap):
+          while j >= 0 and svec[j] > svec[j + gap]:
+            temp = svec[j]
+            svec[j] = svec[j + gap]
+            svec[j + gap] = temp
+            itemp = ivec[j]
+            ivec[j] = ivec[j + gap]
+            ivec[j + gap] = itemp
+      gap = gap / 2  # integer division needed
+#    svec is now sorted input vector, ivec has the order svec[i] = vec[ivec[i]]
+    return svec, ivec
+
+  def arankdata(inarray):
+    """
+Ranks the data in inarray, dealing with ties appropritely.  Assumes
+a 1D inarray.  Adapted from Gary Perlman's |Stat ranksort.
+
+Usage:   arankdata(inarray)
+Returns: array of length equal to inarray, containing rank scores
+"""
+    n = len(inarray)
+    svec, ivec = ashellsort(inarray)
+    sumranks = 0
+    dupcount = 0
+    newarray = N.zeros(n, N.float_)
+    for i in range(n):
+      sumranks = sumranks + i
+      dupcount = dupcount + 1
+      if i == n - 1 or svec[i] <> svec[i + 1]:
+        averank = sumranks / float(dupcount) + 1
+        for j in range(i - dupcount + 1, i + 1):
+          newarray[ivec[j]] = averank
+        sumranks = 0
+        dupcount = 0
+    return newarray
+
+  def afindwithin(data):
+    """
+Returns a binary vector, 1=within-subject factor, 0=between.  Input
+equals the entire data array (i.e., column 1=random factor, last
+column = measured values.
+
+Usage:   afindwithin(data)     data in |Stat format
+"""
+    numfact = len(data[0]) - 2
+    withinvec = [0] * numfact
+    for col in range(1, numfact + 1):
+      rows = pstat.linexand(data, col, pstat.unique(pstat.colex(data, 1))[0]
+                           )  # get 1 level of this factor
+      if len(pstat.unique(pstat.colex(rows, 0))) < len(
+          rows):  # if fewer subjects than scores on this factor
+        withinvec[col - 1] = 1
+    return withinvec
+
+  #########################################################
+  #########################################################
+  ######  RE-DEFINE DISPATCHES TO INCLUDE ARRAYS  #########
+  #########################################################
+  #########################################################
+
+  ## CENTRAL TENDENCY:
+  geometricmean = Dispatch(
+      (lgeometricmean, (ListType, TupleType)), (ageometricmean, (N.ndarray,)))
+  harmonicmean = Dispatch(
+      (lharmonicmean, (ListType, TupleType)), (aharmonicmean, (N.ndarray,)))
+  mean = Dispatch((lmean, (ListType, TupleType)), (amean, (N.ndarray,)))
+  median = Dispatch((lmedian, (ListType, TupleType)), (amedian, (N.ndarray,)))
+  medianscore = Dispatch(
+      (lmedianscore, (ListType, TupleType)), (amedianscore, (N.ndarray,)))
+  mode = Dispatch((lmode, (ListType, TupleType)), (amode, (N.ndarray,)))
+  tmean = Dispatch((atmean, (N.ndarray,)))
+  tvar = Dispatch((atvar, (N.ndarray,)))
+  tstdev = Dispatch((atstdev, (N.ndarray,)))
+  tsem = Dispatch((atsem, (N.ndarray,)))
+
+  ## VARIATION:
+  moment = Dispatch((lmoment, (ListType, TupleType)), (amoment, (N.ndarray,)))
+  variation = Dispatch(
+      (lvariation, (ListType, TupleType)), (avariation, (N.ndarray,)))
+  skew = Dispatch((lskew, (ListType, TupleType)), (askew, (N.ndarray,)))
+  kurtosis = Dispatch(
+      (lkurtosis, (ListType, TupleType)), (akurtosis, (N.ndarray,)))
+  describe = Dispatch(
+      (ldescribe, (ListType, TupleType)), (adescribe, (N.ndarray,)))
+
+  ## DISTRIBUTION TESTS
+
+  skewtest = Dispatch(
+      (askewtest, (ListType, TupleType)), (askewtest, (N.ndarray,)))
+  kurtosistest = Dispatch(
+      (akurtosistest, (ListType, TupleType)), (akurtosistest, (N.ndarray,)))
+  normaltest = Dispatch(
+      (anormaltest, (ListType, TupleType)), (anormaltest, (N.ndarray,)))
+
+  ## FREQUENCY STATS:
+  itemfreq = Dispatch(
+      (litemfreq, (ListType, TupleType)), (aitemfreq, (N.ndarray,)))
+  scoreatpercentile = Dispatch(
+      (lscoreatpercentile, (ListType, TupleType)), (ascoreatpercentile,
+                                                    (N.ndarray,)))
+  percentileofscore = Dispatch(
+      (lpercentileofscore, (ListType, TupleType)), (apercentileofscore,
+                                                    (N.ndarray,)))
+  histogram = Dispatch(
+      (lhistogram, (ListType, TupleType)), (ahistogram, (N.ndarray,)))
+  cumfreq = Dispatch(
+      (lcumfreq, (ListType, TupleType)), (acumfreq, (N.ndarray,)))
+  relfreq = Dispatch(
+      (lrelfreq, (ListType, TupleType)), (arelfreq, (N.ndarray,)))
+
+  ## VARIABILITY:
+  obrientransform = Dispatch(
+      (lobrientransform, (ListType, TupleType)), (aobrientransform,
+                                                  (N.ndarray,)))
+  samplevar = Dispatch(
+      (lsamplevar, (ListType, TupleType)), (asamplevar, (N.ndarray,)))
+  samplestdev = Dispatch(
+      (lsamplestdev, (ListType, TupleType)), (asamplestdev, (N.ndarray,)))
+  signaltonoise = Dispatch((asignaltonoise, (N.ndarray,)),)
+  var = Dispatch((lvar, (ListType, TupleType)), (avar, (N.ndarray,)))
+  stdev = Dispatch((lstdev, (ListType, TupleType)), (astdev, (N.ndarray,)))
+  sterr = Dispatch((lsterr, (ListType, TupleType)), (asterr, (N.ndarray,)))
+  sem = Dispatch((lsem, (ListType, TupleType)), (asem, (N.ndarray,)))
+  z = Dispatch((lz, (ListType, TupleType)), (az, (N.ndarray,)))
+  zs = Dispatch((lzs, (ListType, TupleType)), (azs, (N.ndarray,)))
+
+  ## TRIMMING FCNS:
+  threshold = Dispatch((athreshold, (N.ndarray,)),)
+  trimboth = Dispatch(
+      (ltrimboth, (ListType, TupleType)), (atrimboth, (N.ndarray,)))
+  trim1 = Dispatch((ltrim1, (ListType, TupleType)), (atrim1, (N.ndarray,)))
+
+  ## CORRELATION FCNS:
+  paired = Dispatch((lpaired, (ListType, TupleType)), (apaired, (N.ndarray,)))
+  lincc = Dispatch((llincc, (ListType, TupleType)), (alincc, (N.ndarray,)))
+  pearsonr = Dispatch(
+      (lpearsonr, (ListType, TupleType)), (apearsonr, (N.ndarray,)))
+  spearmanr = Dispatch(
+      (lspearmanr, (ListType, TupleType)), (aspearmanr, (N.ndarray,)))
+  pointbiserialr = Dispatch(
+      (lpointbiserialr, (ListType, TupleType)), (apointbiserialr, (N.ndarray,)))
+  kendalltau = Dispatch(
+      (lkendalltau, (ListType, TupleType)), (akendalltau, (N.ndarray,)))
+  linregress = Dispatch(
+      (llinregress, (ListType, TupleType)), (alinregress, (N.ndarray,)))
+
+  ## INFERENTIAL STATS:
+  ttest_1samp = Dispatch(
+      (lttest_1samp, (ListType, TupleType)), (attest_1samp, (N.ndarray,)))
+  ttest_ind = Dispatch(
+      (lttest_ind, (ListType, TupleType)), (attest_ind, (N.ndarray,)))
+  ttest_rel = Dispatch(
+      (lttest_rel, (ListType, TupleType)), (attest_rel, (N.ndarray,)))
+  chisquare = Dispatch(
+      (lchisquare, (ListType, TupleType)), (achisquare, (N.ndarray,)))
+  ks_2samp = Dispatch(
+      (lks_2samp, (ListType, TupleType)), (aks_2samp, (N.ndarray,)))
+  mannwhitneyu = Dispatch(
+      (lmannwhitneyu, (ListType, TupleType)), (amannwhitneyu, (N.ndarray,)))
+  tiecorrect = Dispatch(
+      (ltiecorrect, (ListType, TupleType)), (atiecorrect, (N.ndarray,)))
+  ranksums = Dispatch(
+      (lranksums, (ListType, TupleType)), (aranksums, (N.ndarray,)))
+  wilcoxont = Dispatch(
+      (lwilcoxont, (ListType, TupleType)), (awilcoxont, (N.ndarray,)))
+  kruskalwallish = Dispatch(
+      (lkruskalwallish, (ListType, TupleType)), (akruskalwallish, (N.ndarray,)))
+  friedmanchisquare = Dispatch(
+      (lfriedmanchisquare, (ListType, TupleType)), (afriedmanchisquare,
+                                                    (N.ndarray,)))
+
+  ## PROBABILITY CALCS:
+  chisqprob = Dispatch(
+      (lchisqprob, (IntType, FloatType)), (achisqprob, (N.ndarray,)))
+  zprob = Dispatch((lzprob, (IntType, FloatType)), (azprob, (N.ndarray,)))
+  ksprob = Dispatch((lksprob, (IntType, FloatType)), (aksprob, (N.ndarray,)))
+  fprob = Dispatch((lfprob, (IntType, FloatType)), (afprob, (N.ndarray,)))
+  betacf = Dispatch((lbetacf, (IntType, FloatType)), (abetacf, (N.ndarray,)))
+  betai = Dispatch((lbetai, (IntType, FloatType)), (abetai, (N.ndarray,)))
+  erfcc = Dispatch((lerfcc, (IntType, FloatType)), (aerfcc, (N.ndarray,)))
+  gammln = Dispatch((lgammln, (IntType, FloatType)), (agammln, (N.ndarray,)))
+
+  ## ANOVA FUNCTIONS:
+  F_oneway = Dispatch(
+      (lF_oneway, (ListType, TupleType)), (aF_oneway, (N.ndarray,)))
+  F_value = Dispatch(
+      (lF_value, (ListType, TupleType)), (aF_value, (N.ndarray,)))
+
+  ## SUPPORT FUNCTIONS:
+  incr = Dispatch((lincr, (ListType, TupleType, N.ndarray)),)
+  sum = Dispatch((lsum, (ListType, TupleType)), (asum, (N.ndarray,)))
+  cumsum = Dispatch((lcumsum, (ListType, TupleType)), (acumsum, (N.ndarray,)))
+  ss = Dispatch((lss, (ListType, TupleType)), (ass, (N.ndarray,)))
+  summult = Dispatch(
+      (lsummult, (ListType, TupleType)), (asummult, (N.ndarray,)))
+  square_of_sums = Dispatch(
+      (lsquare_of_sums, (ListType, TupleType)), (asquare_of_sums, (N.ndarray,)))
+  sumdiffsquared = Dispatch(
+      (lsumdiffsquared, (ListType, TupleType)), (asumdiffsquared, (N.ndarray,)))
+  shellsort = Dispatch(
+      (lshellsort, (ListType, TupleType)), (ashellsort, (N.ndarray,)))
+  rankdata = Dispatch(
+      (lrankdata, (ListType, TupleType)), (arankdata, (N.ndarray,)))
+  findwithin = Dispatch(
+      (lfindwithin, (ListType, TupleType)), (afindwithin, (N.ndarray,)))
+
+######################  END OF NUMERIC FUNCTION BLOCK  #####################
+
+######################  END OF STATISTICAL FUNCTIONS  ######################
+
+except ImportError:
+  pass
diff --git a/cros_utils/tabulator.py b/cros_utils/tabulator.py
new file mode 100644
index 0000000..98f126b
--- /dev/null
+++ b/cros_utils/tabulator.py
@@ -0,0 +1,1245 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Table generating, analyzing and printing functions.
+
+This defines several classes that are used to generate, analyze and print
+tables.
+
+Example usage:
+
+  from cros_utils import tabulator
+
+  data = [["benchmark1", "33", "44"],["benchmark2", "44", "33"]]
+  tabulator.GetSimpleTable(data)
+
+You could also use it to generate more complex tables with analysis such as
+p-values, custom colors, etc. Tables are generated by TableGenerator and
+analyzed/formatted by TableFormatter. TableFormatter can take in a list of
+columns with custom result computation and coloring, and will compare values in
+each row according to taht scheme. Here is a complex example on printing a
+table:
+
+  from cros_utils import tabulator
+
+  runs = [[{"k1": "10", "k2": "12", "k5": "40", "k6": "40",
+            "ms_1": "20", "k7": "FAIL", "k8": "PASS", "k9": "PASS",
+            "k10": "0"},
+           {"k1": "13", "k2": "14", "k3": "15", "ms_1": "10", "k8": "PASS",
+            "k9": "FAIL", "k10": "0"}],
+          [{"k1": "50", "k2": "51", "k3": "52", "k4": "53", "k5": "35", "k6":
+            "45", "ms_1": "200", "ms_2": "20", "k7": "FAIL", "k8": "PASS", "k9":
+            "PASS"}]]
+  labels = ["vanilla", "modified"]
+  tg = TableGenerator(runs, labels, TableGenerator.SORT_BY_VALUES_DESC)
+  table = tg.GetTable()
+  columns = [Column(LiteralResult(),
+                    Format(),
+                    "Literal"),
+             Column(AmeanResult(),
+                    Format()),
+             Column(StdResult(),
+                    Format()),
+             Column(CoeffVarResult(),
+                    CoeffVarFormat()),
+             Column(NonEmptyCountResult(),
+                    Format()),
+             Column(AmeanRatioResult(),
+                    PercentFormat()),
+             Column(AmeanRatioResult(),
+                    RatioFormat()),
+             Column(GmeanRatioResult(),
+                    RatioFormat()),
+             Column(PValueResult(),
+                    PValueFormat()),
+            ]
+  tf = TableFormatter(table, columns)
+  cell_table = tf.GetCellTable()
+  tp = TablePrinter(cell_table, out_to)
+  print tp.Print()
+
+"""
+
+from __future__ import print_function
+
+import getpass
+import math
+import sys
+import numpy
+
+from email_sender import EmailSender
+import misc
+
+
+def _AllFloat(values):
+  return all([misc.IsFloat(v) for v in values])
+
+
+def _GetFloats(values):
+  return [float(v) for v in values]
+
+
+def _StripNone(results):
+  res = []
+  for result in results:
+    if result is not None:
+      res.append(result)
+  return res
+
+
+class TableGenerator(object):
+  """Creates a table from a list of list of dicts.
+
+  The main public function is called GetTable().
+  """
+  SORT_BY_KEYS = 0
+  SORT_BY_KEYS_DESC = 1
+  SORT_BY_VALUES = 2
+  SORT_BY_VALUES_DESC = 3
+
+  MISSING_VALUE = 'x'
+
+  def __init__(self, d, l, sort=SORT_BY_KEYS, key_name='keys'):
+    self._runs = d
+    self._labels = l
+    self._sort = sort
+    self._key_name = key_name
+
+  def _AggregateKeys(self):
+    keys = set([])
+    for run_list in self._runs:
+      for run in run_list:
+        keys = keys.union(run.keys())
+    return keys
+
+  def _GetHighestValue(self, key):
+    values = []
+    for run_list in self._runs:
+      for run in run_list:
+        if key in run:
+          values.append(run[key])
+    values = _StripNone(values)
+    if _AllFloat(values):
+      values = _GetFloats(values)
+    return max(values)
+
+  def _GetLowestValue(self, key):
+    values = []
+    for run_list in self._runs:
+      for run in run_list:
+        if key in run:
+          values.append(run[key])
+    values = _StripNone(values)
+    if _AllFloat(values):
+      values = _GetFloats(values)
+    return min(values)
+
+  def _SortKeys(self, keys):
+    if self._sort == self.SORT_BY_KEYS:
+      return sorted(keys)
+    elif self._sort == self.SORT_BY_VALUES:
+      # pylint: disable=unnecessary-lambda
+      return sorted(keys, key=lambda x: self._GetLowestValue(x))
+    elif self._sort == self.SORT_BY_VALUES_DESC:
+      # pylint: disable=unnecessary-lambda
+      return sorted(keys, key=lambda x: self._GetHighestValue(x), reverse=True)
+    else:
+      assert 0, 'Unimplemented sort %s' % self._sort
+
+  def _GetKeys(self):
+    keys = self._AggregateKeys()
+    return self._SortKeys(keys)
+
+  def GetTable(self, number_of_rows=sys.maxint):
+    """Returns a table from a list of list of dicts.
+
+    The list of list of dicts is passed into the constructor of TableGenerator.
+    This method converts that into a canonical list of lists which represents a
+    table of values.
+
+    Args:
+      number_of_rows: Maximum number of rows to return from the table.
+
+    Returns:
+      A list of lists which is the table.
+
+    Example:
+      We have the following runs:
+        [[{"k1": "v1", "k2": "v2"}, {"k1": "v3"}],
+         [{"k1": "v4", "k4": "v5"}]]
+      and the following labels:
+        ["vanilla", "modified"]
+      it will return:
+        [["Key", "vanilla", "modified"]
+         ["k1", ["v1", "v3"], ["v4"]]
+         ["k2", ["v2"], []]
+         ["k4", [], ["v5"]]]
+      The returned table can then be processed further by other classes in this
+      module.
+    """
+    keys = self._GetKeys()
+    header = [self._key_name] + self._labels
+    table = [header]
+    rows = 0
+    for k in keys:
+      row = [k]
+      unit = None
+      for run_list in self._runs:
+        v = []
+        for run in run_list:
+          if k in run:
+            if type(run[k]) is list:
+              val = run[k][0]
+              unit = run[k][1]
+            else:
+              val = run[k]
+            v.append(val)
+          else:
+            v.append(None)
+        row.append(v)
+      # If we got a 'unit' value, append the units name to the key name.
+      if unit:
+        keyname = row[0] + ' (%s) ' % unit
+        row[0] = keyname
+      table.append(row)
+      rows += 1
+      if rows == number_of_rows:
+        break
+    return table
+
+
+class Result(object):
+  """A class that respresents a single result.
+
+  This single result is obtained by condensing the information from a list of
+  runs and a list of baseline runs.
+  """
+
+  def __init__(self):
+    pass
+
+  def _AllStringsSame(self, values):
+    values_set = set(values)
+    return len(values_set) == 1
+
+  def NeedsBaseline(self):
+    return False
+
+  # pylint: disable=unused-argument
+  def _Literal(self, cell, values, baseline_values):
+    cell.value = ' '.join([str(v) for v in values])
+
+  def _ComputeFloat(self, cell, values, baseline_values):
+    self._Literal(cell, values, baseline_values)
+
+  def _ComputeString(self, cell, values, baseline_values):
+    self._Literal(cell, values, baseline_values)
+
+  def _InvertIfLowerIsBetter(self, cell):
+    pass
+
+  def _GetGmean(self, values):
+    if not values:
+      return float('nan')
+    if any([v < 0 for v in values]):
+      return float('nan')
+    if any([v == 0 for v in values]):
+      return 0.0
+    log_list = [math.log(v) for v in values]
+    gmean_log = sum(log_list) / len(log_list)
+    return math.exp(gmean_log)
+
+  def Compute(self, cell, values, baseline_values):
+    """Compute the result given a list of values and baseline values.
+
+    Args:
+      cell: A cell data structure to populate.
+      values: List of values.
+      baseline_values: List of baseline values. Can be none if this is the
+      baseline itself.
+    """
+    all_floats = True
+    values = _StripNone(values)
+    if not values:
+      cell.value = ''
+      return
+    if _AllFloat(values):
+      float_values = _GetFloats(values)
+    else:
+      all_floats = False
+    if baseline_values:
+      baseline_values = _StripNone(baseline_values)
+    if baseline_values:
+      if _AllFloat(baseline_values):
+        float_baseline_values = _GetFloats(baseline_values)
+      else:
+        all_floats = False
+    else:
+      if self.NeedsBaseline():
+        cell.value = ''
+        return
+      float_baseline_values = None
+    if all_floats:
+      self._ComputeFloat(cell, float_values, float_baseline_values)
+      self._InvertIfLowerIsBetter(cell)
+    else:
+      self._ComputeString(cell, values, baseline_values)
+
+
+class LiteralResult(Result):
+  """A literal result."""
+
+  def __init__(self, iteration=0):
+    super(LiteralResult, self).__init__()
+    self.iteration = iteration
+
+  def Compute(self, cell, values, baseline_values):
+    try:
+      cell.value = values[self.iteration]
+    except IndexError:
+      cell.value = '-'
+
+
+class NonEmptyCountResult(Result):
+  """A class that counts the number of non-empty results.
+
+  The number of non-empty values will be stored in the cell.
+  """
+
+  def Compute(self, cell, values, baseline_values):
+    """Put the number of non-empty values in the cell result.
+
+    Args:
+      cell: Put the result in cell.value.
+      values: A list of values for the row.
+      baseline_values: A list of baseline values for the row.
+    """
+    cell.value = len(_StripNone(values))
+    if not baseline_values:
+      return
+    base_value = len(_StripNone(baseline_values))
+    if cell.value == base_value:
+      return
+    f = ColorBoxFormat()
+    len_values = len(values)
+    len_baseline_values = len(baseline_values)
+    tmp_cell = Cell()
+    tmp_cell.value = 1.0 + (float(cell.value - base_value) /
+                            (max(len_values, len_baseline_values)))
+    f.Compute(tmp_cell)
+    cell.bgcolor = tmp_cell.bgcolor
+
+
+class StringMeanResult(Result):
+  """Mean of string values."""
+
+  def _ComputeString(self, cell, values, baseline_values):
+    if self._AllStringsSame(values):
+      cell.value = str(values[0])
+    else:
+      cell.value = '?'
+
+
+class AmeanResult(StringMeanResult):
+  """Arithmetic mean."""
+
+  def _ComputeFloat(self, cell, values, baseline_values):
+    cell.value = numpy.mean(values)
+
+
+class RawResult(Result):
+  """Raw result."""
+  pass
+
+
+class MinResult(Result):
+  """Minimum."""
+
+  def _ComputeFloat(self, cell, values, baseline_values):
+    cell.value = min(values)
+
+  def _ComputeString(self, cell, values, baseline_values):
+    if values:
+      cell.value = min(values)
+    else:
+      cell.value = ''
+
+
+class MaxResult(Result):
+  """Maximum."""
+
+  def _ComputeFloat(self, cell, values, baseline_values):
+    cell.value = max(values)
+
+  def _ComputeString(self, cell, values, baseline_values):
+    if values:
+      cell.value = max(values)
+    else:
+      cell.value = ''
+
+
+class NumericalResult(Result):
+  """Numerical result."""
+
+  def _ComputeString(self, cell, values, baseline_values):
+    cell.value = '?'
+
+
+class StdResult(NumericalResult):
+  """Standard deviation."""
+
+  def _ComputeFloat(self, cell, values, baseline_values):
+    cell.value = numpy.std(values)
+
+
+class CoeffVarResult(NumericalResult):
+  """Standard deviation / Mean"""
+
+  def _ComputeFloat(self, cell, values, baseline_values):
+    if numpy.mean(values) != 0.0:
+      noise = numpy.abs(numpy.std(values) / numpy.mean(values))
+    else:
+      noise = 0.0
+    cell.value = noise
+
+
+class ComparisonResult(Result):
+  """Same or Different."""
+
+  def NeedsBaseline(self):
+    return True
+
+  def _ComputeString(self, cell, values, baseline_values):
+    value = None
+    baseline_value = None
+    if self._AllStringsSame(values):
+      value = values[0]
+    if self._AllStringsSame(baseline_values):
+      baseline_value = baseline_values[0]
+    if value is not None and baseline_value is not None:
+      if value == baseline_value:
+        cell.value = 'SAME'
+      else:
+        cell.value = 'DIFFERENT'
+    else:
+      cell.value = '?'
+
+
+class PValueResult(ComparisonResult):
+  """P-value."""
+
+  def _ComputeFloat(self, cell, values, baseline_values):
+    if len(values) < 2 or len(baseline_values) < 2:
+      cell.value = float('nan')
+      return
+    import stats
+    _, cell.value = stats.lttest_ind(values, baseline_values)
+
+  def _ComputeString(self, cell, values, baseline_values):
+    return float('nan')
+
+
+class KeyAwareComparisonResult(ComparisonResult):
+  """Automatic key aware comparison."""
+
+  def _IsLowerBetter(self, key):
+    # TODO(llozano): Trying to guess direction by looking at the name of the
+    # test does not seem like a good idea. Test frameworks should provide this
+    # info explicitly. I believe Telemetry has this info. Need to find it out.
+    #
+    # Below are some test names for which we are not sure what the
+    # direction is.
+    #
+    # For these we dont know what the direction is. But, since we dont
+    # specify anything, crosperf will assume higher is better:
+    # --percent_impl_scrolled--percent_impl_scrolled--percent
+    # --solid_color_tiles_analyzed--solid_color_tiles_analyzed--count
+    # --total_image_cache_hit_count--total_image_cache_hit_count--count
+    # --total_texture_upload_time_by_url
+    #
+    # About these we are doubtful but we made a guess:
+    # --average_num_missing_tiles_by_url--*--units (low is good)
+    # --experimental_mean_frame_time_by_url--*--units (low is good)
+    # --experimental_median_frame_time_by_url--*--units (low is good)
+    # --texture_upload_count--texture_upload_count--count (high is good)
+    # --total_deferred_image_decode_count--count (low is good)
+    # --total_tiles_analyzed--total_tiles_analyzed--count (high is good)
+    lower_is_better_keys = ['milliseconds', 'ms_', 'seconds_', 'KB', 'rdbytes',
+                            'wrbytes', 'dropped_percent', '(ms)', '(seconds)',
+                            '--ms', '--average_num_missing_tiles',
+                            '--experimental_jank', '--experimental_mean_frame',
+                            '--experimental_median_frame_time',
+                            '--total_deferred_image_decode_count', '--seconds']
+
+    return any([l in key for l in lower_is_better_keys])
+
+  def _InvertIfLowerIsBetter(self, cell):
+    if self._IsLowerBetter(cell.name):
+      if cell.value:
+        cell.value = 1.0 / cell.value
+
+
+class AmeanRatioResult(KeyAwareComparisonResult):
+  """Ratio of arithmetic means of values vs. baseline values."""
+
+  def _ComputeFloat(self, cell, values, baseline_values):
+    if numpy.mean(baseline_values) != 0:
+      cell.value = numpy.mean(values) / numpy.mean(baseline_values)
+    elif numpy.mean(values) != 0:
+      cell.value = 0.00
+      # cell.value = 0 means the values and baseline_values have big difference
+    else:
+      cell.value = 1.00
+      # no difference if both values and baseline_values are 0
+
+
+class GmeanRatioResult(KeyAwareComparisonResult):
+  """Ratio of geometric means of values vs. baseline values."""
+
+  def _ComputeFloat(self, cell, values, baseline_values):
+    if self._GetGmean(baseline_values) != 0:
+      cell.value = self._GetGmean(values) / self._GetGmean(baseline_values)
+    elif self._GetGmean(values) != 0:
+      cell.value = 0.00
+    else:
+      cell.value = 1.00
+
+
+class Color(object):
+  """Class that represents color in RGBA format."""
+
+  def __init__(self, r=0, g=0, b=0, a=0):
+    self.r = r
+    self.g = g
+    self.b = b
+    self.a = a
+
+  def __str__(self):
+    return 'r: %s g: %s: b: %s: a: %s' % (self.r, self.g, self.b, self.a)
+
+  def Round(self):
+    """Round RGBA values to the nearest integer."""
+    self.r = int(self.r)
+    self.g = int(self.g)
+    self.b = int(self.b)
+    self.a = int(self.a)
+
+  def GetRGB(self):
+    """Get a hex representation of the color."""
+    return '%02x%02x%02x' % (self.r, self.g, self.b)
+
+  @classmethod
+  def Lerp(cls, ratio, a, b):
+    """Perform linear interpolation between two colors.
+
+    Args:
+      ratio: The ratio to use for linear polation.
+      a: The first color object (used when ratio is 0).
+      b: The second color object (used when ratio is 1).
+
+    Returns:
+      Linearly interpolated color.
+    """
+    ret = cls()
+    ret.r = (b.r - a.r) * ratio + a.r
+    ret.g = (b.g - a.g) * ratio + a.g
+    ret.b = (b.b - a.b) * ratio + a.b
+    ret.a = (b.a - a.a) * ratio + a.a
+    return ret
+
+
+class Format(object):
+  """A class that represents the format of a column."""
+
+  def __init__(self):
+    pass
+
+  def Compute(self, cell):
+    """Computes the attributes of a cell based on its value.
+
+    Attributes typically are color, width, etc.
+
+    Args:
+      cell: The cell whose attributes are to be populated.
+    """
+    if cell.value is None:
+      cell.string_value = ''
+    if isinstance(cell.value, float):
+      self._ComputeFloat(cell)
+    else:
+      self._ComputeString(cell)
+
+  def _ComputeFloat(self, cell):
+    cell.string_value = '{0:.2f}'.format(cell.value)
+
+  def _ComputeString(self, cell):
+    cell.string_value = str(cell.value)
+
+  def _GetColor(self, value, low, mid, high, power=6, mid_value=1.0):
+    min_value = 0.0
+    max_value = 2.0
+    if math.isnan(value):
+      return mid
+    if value > mid_value:
+      value = max_value - mid_value / value
+
+    return self._GetColorBetweenRange(value, min_value, mid_value, max_value,
+                                      low, mid, high, power)
+
+  def _GetColorBetweenRange(self, value, min_value, mid_value, max_value,
+                            low_color, mid_color, high_color, power):
+    assert value <= max_value
+    assert value >= min_value
+    if value > mid_value:
+      value = (max_value - value) / (max_value - mid_value)
+      value **= power
+      ret = Color.Lerp(value, high_color, mid_color)
+    else:
+      value = (value - min_value) / (mid_value - min_value)
+      value **= power
+      ret = Color.Lerp(value, low_color, mid_color)
+    ret.Round()
+    return ret
+
+
+class PValueFormat(Format):
+  """Formatting for p-value."""
+
+  def _ComputeFloat(self, cell):
+    cell.string_value = '%0.2f' % float(cell.value)
+    if float(cell.value) < 0.05:
+      cell.bgcolor = self._GetColor(cell.value,
+                                    Color(255, 255, 0, 0),
+                                    Color(255, 255, 255, 0),
+                                    Color(255, 255, 255, 0),
+                                    mid_value=0.05,
+                                    power=1)
+
+
+class StorageFormat(Format):
+  """Format the cell as a storage number.
+
+  Example:
+    If the cell contains a value of 1024, the string_value will be 1.0K.
+  """
+
+  def _ComputeFloat(self, cell):
+    base = 1024
+    suffices = ['K', 'M', 'G']
+    v = float(cell.value)
+    current = 0
+    while v >= base**(current + 1) and current < len(suffices):
+      current += 1
+
+    if current:
+      divisor = base**current
+      cell.string_value = '%1.1f%s' % ((v / divisor), suffices[current - 1])
+    else:
+      cell.string_value = str(cell.value)
+
+
+class CoeffVarFormat(Format):
+  """Format the cell as a percent.
+
+  Example:
+    If the cell contains a value of 1.5, the string_value will be +150%.
+  """
+
+  def _ComputeFloat(self, cell):
+    cell.string_value = '%1.1f%%' % (float(cell.value) * 100)
+    cell.color = self._GetColor(cell.value,
+                                Color(0, 255, 0, 0),
+                                Color(0, 0, 0, 0),
+                                Color(255, 0, 0, 0),
+                                mid_value=0.02,
+                                power=1)
+
+
+class PercentFormat(Format):
+  """Format the cell as a percent.
+
+  Example:
+    If the cell contains a value of 1.5, the string_value will be +50%.
+  """
+
+  def _ComputeFloat(self, cell):
+    cell.string_value = '%+1.1f%%' % ((float(cell.value) - 1) * 100)
+    cell.color = self._GetColor(cell.value, Color(255, 0, 0, 0),
+                                Color(0, 0, 0, 0), Color(0, 255, 0, 0))
+
+
+class RatioFormat(Format):
+  """Format the cell as a ratio.
+
+  Example:
+    If the cell contains a value of 1.5642, the string_value will be 1.56.
+  """
+
+  def _ComputeFloat(self, cell):
+    cell.string_value = '%+1.1f%%' % ((cell.value - 1) * 100)
+    cell.color = self._GetColor(cell.value, Color(255, 0, 0, 0),
+                                Color(0, 0, 0, 0), Color(0, 255, 0, 0))
+
+
+class ColorBoxFormat(Format):
+  """Format the cell as a color box.
+
+  Example:
+    If the cell contains a value of 1.5, it will get a green color.
+    If the cell contains a value of 0.5, it will get a red color.
+    The intensity of the green/red will be determined by how much above or below
+    1.0 the value is.
+  """
+
+  def _ComputeFloat(self, cell):
+    cell.string_value = '--'
+    bgcolor = self._GetColor(cell.value, Color(255, 0, 0, 0),
+                             Color(255, 255, 255, 0), Color(0, 255, 0, 0))
+    cell.bgcolor = bgcolor
+    cell.color = bgcolor
+
+
+class Cell(object):
+  """A class to represent a cell in a table.
+
+  Attributes:
+    value: The raw value of the cell.
+    color: The color of the cell.
+    bgcolor: The background color of the cell.
+    string_value: The string value of the cell.
+    suffix: A string suffix to be attached to the value when displaying.
+    prefix: A string prefix to be attached to the value when displaying.
+    color_row: Indicates whether the whole row is to inherit this cell's color.
+    bgcolor_row: Indicates whether the whole row is to inherit this cell's
+    bgcolor.
+    width: Optional specifier to make a column narrower than the usual width.
+    The usual width of a column is the max of all its cells widths.
+    colspan: Set the colspan of the cell in the HTML table, this is used for
+    table headers. Default value is 1.
+    name: the test name of the cell.
+    header: Whether this is a header in html.
+  """
+
+  def __init__(self):
+    self.value = None
+    self.color = None
+    self.bgcolor = None
+    self.string_value = None
+    self.suffix = None
+    self.prefix = None
+    # Entire row inherits this color.
+    self.color_row = False
+    self.bgcolor_row = False
+    self.width = None
+    self.colspan = 1
+    self.name = None
+    self.header = False
+
+  def __str__(self):
+    l = []
+    l.append('value: %s' % self.value)
+    l.append('string_value: %s' % self.string_value)
+    return ' '.join(l)
+
+
+class Column(object):
+  """Class representing a column in a table.
+
+  Attributes:
+    result: an object of the Result class.
+    fmt: an object of the Format class.
+  """
+
+  def __init__(self, result, fmt, name=''):
+    self.result = result
+    self.fmt = fmt
+    self.name = name
+
+
+# Takes in:
+# ["Key", "Label1", "Label2"]
+# ["k", ["v", "v2"], [v3]]
+# etc.
+# Also takes in a format string.
+# Returns a table like:
+# ["Key", "Label1", "Label2"]
+# ["k", avg("v", "v2"), stddev("v", "v2"), etc.]]
+# according to format string
+class TableFormatter(object):
+  """Class to convert a plain table into a cell-table.
+
+  This class takes in a table generated by TableGenerator and a list of column
+  formats to apply to the table and returns a table of cells.
+  """
+
+  def __init__(self, table, columns):
+    """The constructor takes in a table and a list of columns.
+
+    Args:
+      table: A list of lists of values.
+      columns: A list of column containing what to produce and how to format it.
+    """
+    self._table = table
+    self._columns = columns
+    self._table_columns = []
+    self._out_table = []
+
+  def GenerateCellTable(self, table_type):
+    row_index = 0
+    all_failed = False
+
+    for row in self._table[1:]:
+      # It does not make sense to put retval in the summary table.
+      if str(row[0]) == 'retval' and table_type == 'summary':
+        # Check to see if any runs passed, and update all_failed.
+        all_failed = True
+        for values in row[1:]:
+          if 0 in values:
+            all_failed = False
+        continue
+      key = Cell()
+      key.string_value = str(row[0])
+      out_row = [key]
+      baseline = None
+      for values in row[1:]:
+        for column in self._columns:
+          cell = Cell()
+          cell.name = key.string_value
+          if column.result.NeedsBaseline():
+            if baseline is not None:
+              column.result.Compute(cell, values, baseline)
+              column.fmt.Compute(cell)
+              out_row.append(cell)
+              if not row_index:
+                self._table_columns.append(column)
+          else:
+            column.result.Compute(cell, values, baseline)
+            column.fmt.Compute(cell)
+            out_row.append(cell)
+            if not row_index:
+              self._table_columns.append(column)
+
+        if baseline is None:
+          baseline = values
+      self._out_table.append(out_row)
+      row_index += 1
+
+    # If this is a summary table, and the only row in it is 'retval', and
+    # all the test runs failed, we need to a 'Results' row to the output
+    # table.
+    if table_type == 'summary' and all_failed and len(self._table) == 2:
+      labels_row = self._table[0]
+      key = Cell()
+      key.string_value = 'Results'
+      out_row = [key]
+      baseline = None
+      for _ in labels_row[1:]:
+        for column in self._columns:
+          cell = Cell()
+          cell.name = key.string_value
+          column.result.Compute(cell, ['Fail'], baseline)
+          column.fmt.Compute(cell)
+          out_row.append(cell)
+          if not row_index:
+            self._table_columns.append(column)
+      self._out_table.append(out_row)
+
+  def AddColumnName(self):
+    """Generate Column name at the top of table."""
+    key = Cell()
+    key.header = True
+    key.string_value = 'Keys'
+    header = [key]
+    for column in self._table_columns:
+      cell = Cell()
+      cell.header = True
+      if column.name:
+        cell.string_value = column.name
+      else:
+        result_name = column.result.__class__.__name__
+        format_name = column.fmt.__class__.__name__
+
+        cell.string_value = '%s %s' % (result_name.replace('Result', ''),
+                                       format_name.replace('Format', ''))
+
+      header.append(cell)
+
+    self._out_table = [header] + self._out_table
+
+  def AddHeader(self, s):
+    """Put additional string on the top of the table."""
+    cell = Cell()
+    cell.header = True
+    cell.string_value = str(s)
+    header = [cell]
+    colspan = max(1, max(len(row) for row in self._table))
+    cell.colspan = colspan
+    self._out_table = [header] + self._out_table
+
+  def GetPassesAndFails(self, values):
+    passes = 0
+    fails = 0
+    for val in values:
+      if val == 0:
+        passes = passes + 1
+      else:
+        fails = fails + 1
+    return passes, fails
+
+  def AddLabelName(self):
+    """Put label on the top of the table."""
+    top_header = []
+    base_colspan = len([c for c in self._columns if not c.result.NeedsBaseline()
+                       ])
+    compare_colspan = len(self._columns)
+    # Find the row with the key 'retval', if it exists.  This
+    # will be used to calculate the number of iterations that passed and
+    # failed for each image label.
+    retval_row = None
+    for row in self._table:
+      if row[0] == 'retval':
+        retval_row = row
+    # The label is organized as follows
+    # "keys" label_base, label_comparison1, label_comparison2
+    # The first cell has colspan 1, the second is base_colspan
+    # The others are compare_colspan
+    column_position = 0
+    for label in self._table[0]:
+      cell = Cell()
+      cell.header = True
+      # Put the number of pass/fail iterations in the image label header.
+      if column_position > 0 and retval_row:
+        retval_values = retval_row[column_position]
+        if type(retval_values) is list:
+          passes, fails = self.GetPassesAndFails(retval_values)
+          cell.string_value = str(label) + '  (pass:%d fail:%d)' % (passes,
+                                                                    fails)
+        else:
+          cell.string_value = str(label)
+      else:
+        cell.string_value = str(label)
+      if top_header:
+        cell.colspan = base_colspan
+      if len(top_header) > 1:
+        cell.colspan = compare_colspan
+      top_header.append(cell)
+      column_position = column_position + 1
+    self._out_table = [top_header] + self._out_table
+
+  def _PrintOutTable(self):
+    o = ''
+    for row in self._out_table:
+      for cell in row:
+        o += str(cell) + ' '
+      o += '\n'
+    print(o)
+
+  def GetCellTable(self, table_type='full', headers=True):
+    """Function to return a table of cells.
+
+    The table (list of lists) is converted into a table of cells by this
+    function.
+
+    Args:
+      table_type: Can be 'full' or 'summary'
+      headers: A boolean saying whether we want default headers
+
+    Returns:
+      A table of cells with each cell having the properties and string values as
+      requiested by the columns passed in the constructor.
+    """
+    # Generate the cell table, creating a list of dynamic columns on the fly.
+    if not self._out_table:
+      self.GenerateCellTable(table_type)
+    if headers:
+      self.AddColumnName()
+      self.AddLabelName()
+    return self._out_table
+
+
+class TablePrinter(object):
+  """Class to print a cell table to the console, file or html."""
+  PLAIN = 0
+  CONSOLE = 1
+  HTML = 2
+  TSV = 3
+  EMAIL = 4
+
+  def __init__(self, table, output_type):
+    """Constructor that stores the cell table and output type."""
+    self._table = table
+    self._output_type = output_type
+    self._row_styles = []
+    self._column_styles = []
+
+  # Compute whole-table properties like max-size, etc.
+  def _ComputeStyle(self):
+    self._row_styles = []
+    for row in self._table:
+      row_style = Cell()
+      for cell in row:
+        if cell.color_row:
+          assert cell.color, 'Cell color not set but color_row set!'
+          assert not row_style.color, 'Multiple row_style.colors found!'
+          row_style.color = cell.color
+        if cell.bgcolor_row:
+          assert cell.bgcolor, 'Cell bgcolor not set but bgcolor_row set!'
+          assert not row_style.bgcolor, 'Multiple row_style.bgcolors found!'
+          row_style.bgcolor = cell.bgcolor
+      self._row_styles.append(row_style)
+
+    self._column_styles = []
+    if len(self._table) < 2:
+      return
+
+    for i in range(max(len(row) for row in self._table)):
+      column_style = Cell()
+      for row in self._table:
+        if not any([cell.colspan != 1 for cell in row]):
+          column_style.width = max(column_style.width, len(row[i].string_value))
+      self._column_styles.append(column_style)
+
+  def _GetBGColorFix(self, color):
+    if self._output_type == self.CONSOLE:
+      prefix = misc.rgb2short(color.r, color.g, color.b)
+      # pylint: disable=anomalous-backslash-in-string
+      prefix = '\033[48;5;%sm' % prefix
+      suffix = '\033[0m'
+    elif self._output_type in [self.EMAIL, self.HTML]:
+      rgb = color.GetRGB()
+      prefix = ("<FONT style=\"BACKGROUND-COLOR:#{0}\">".format(rgb))
+      suffix = '</FONT>'
+    elif self._output_type in [self.PLAIN, self.TSV]:
+      prefix = ''
+      suffix = ''
+    return prefix, suffix
+
+  def _GetColorFix(self, color):
+    if self._output_type == self.CONSOLE:
+      prefix = misc.rgb2short(color.r, color.g, color.b)
+      # pylint: disable=anomalous-backslash-in-string
+      prefix = '\033[38;5;%sm' % prefix
+      suffix = '\033[0m'
+    elif self._output_type in [self.EMAIL, self.HTML]:
+      rgb = color.GetRGB()
+      prefix = '<FONT COLOR=#{0}>'.format(rgb)
+      suffix = '</FONT>'
+    elif self._output_type in [self.PLAIN, self.TSV]:
+      prefix = ''
+      suffix = ''
+    return prefix, suffix
+
+  def Print(self):
+    """Print the table to a console, html, etc.
+
+    Returns:
+      A string that contains the desired representation of the table.
+    """
+    self._ComputeStyle()
+    return self._GetStringValue()
+
+  def _GetCellValue(self, i, j):
+    cell = self._table[i][j]
+    out = cell.string_value
+    raw_width = len(out)
+
+    if cell.color:
+      p, s = self._GetColorFix(cell.color)
+      out = '%s%s%s' % (p, out, s)
+
+    if cell.bgcolor:
+      p, s = self._GetBGColorFix(cell.bgcolor)
+      out = '%s%s%s' % (p, out, s)
+
+    if self._output_type in [self.PLAIN, self.CONSOLE, self.EMAIL]:
+      if cell.width:
+        width = cell.width
+      else:
+        if self._column_styles:
+          width = self._column_styles[j].width
+        else:
+          width = len(cell.string_value)
+      if cell.colspan > 1:
+        width = 0
+        start = 0
+        for k in range(j):
+          start += self._table[i][k].colspan
+        for k in range(cell.colspan):
+          width += self._column_styles[start + k].width
+      if width > raw_width:
+        padding = ('%' + str(width - raw_width) + 's') % ''
+        out = padding + out
+
+    if self._output_type == self.HTML:
+      if cell.header:
+        tag = 'th'
+      else:
+        tag = 'td'
+      out = "<{0} colspan = \"{2}\"> {1} </{0}>".format(tag, out, cell.colspan)
+
+    return out
+
+  def _GetHorizontalSeparator(self):
+    if self._output_type in [self.CONSOLE, self.PLAIN, self.EMAIL]:
+      return ' '
+    if self._output_type == self.HTML:
+      return ''
+    if self._output_type == self.TSV:
+      return '\t'
+
+  def _GetVerticalSeparator(self):
+    if self._output_type in [self.PLAIN, self.CONSOLE, self.TSV, self.EMAIL]:
+      return '\n'
+    if self._output_type == self.HTML:
+      return '</tr>\n<tr>'
+
+  def _GetPrefix(self):
+    if self._output_type in [self.PLAIN, self.CONSOLE, self.TSV, self.EMAIL]:
+      return ''
+    if self._output_type == self.HTML:
+      return "<p></p><table id=\"box-table-a\">\n<tr>"
+
+  def _GetSuffix(self):
+    if self._output_type in [self.PLAIN, self.CONSOLE, self.TSV, self.EMAIL]:
+      return ''
+    if self._output_type == self.HTML:
+      return '</tr>\n</table>'
+
+  def _GetStringValue(self):
+    o = ''
+    o += self._GetPrefix()
+    for i in range(len(self._table)):
+      row = self._table[i]
+      # Apply row color and bgcolor.
+      p = s = bgp = bgs = ''
+      if self._row_styles[i].bgcolor:
+        bgp, bgs = self._GetBGColorFix(self._row_styles[i].bgcolor)
+      if self._row_styles[i].color:
+        p, s = self._GetColorFix(self._row_styles[i].color)
+      o += p + bgp
+      for j in range(len(row)):
+        out = self._GetCellValue(i, j)
+        o += out + self._GetHorizontalSeparator()
+      o += s + bgs
+      o += self._GetVerticalSeparator()
+    o += self._GetSuffix()
+    return o
+
+
+# Some common drivers
+def GetSimpleTable(table, out_to=TablePrinter.CONSOLE):
+  """Prints a simple table.
+
+  This is used by code that has a very simple list-of-lists and wants to produce
+  a table with ameans, a percentage ratio of ameans and a colorbox.
+
+  Args:
+    table: a list of lists.
+    out_to: specify the fomat of output. Currently it supports HTML and CONSOLE.
+
+  Returns:
+    A string version of the table that can be printed to the console.
+
+  Example:
+    GetSimpleConsoleTable([["binary", "b1", "b2"],["size", "300", "400"]])
+    will produce a colored table that can be printed to the console.
+  """
+  columns = [
+      Column(AmeanResult(), Format()),
+      Column(AmeanRatioResult(), PercentFormat()),
+      Column(AmeanRatioResult(), ColorBoxFormat()),
+  ]
+  our_table = [table[0]]
+  for row in table[1:]:
+    our_row = [row[0]]
+    for v in row[1:]:
+      our_row.append([v])
+    our_table.append(our_row)
+
+  tf = TableFormatter(our_table, columns)
+  cell_table = tf.GetCellTable()
+  tp = TablePrinter(cell_table, out_to)
+  return tp.Print()
+
+
+# pylint: disable=redefined-outer-name
+def GetComplexTable(runs, labels, out_to=TablePrinter.CONSOLE):
+  """Prints a complex table.
+
+  This can be used to generate a table with arithmetic mean, standard deviation,
+  coefficient of variation, p-values, etc.
+
+  Args:
+    runs: A list of lists with data to tabulate.
+    labels: A list of labels that correspond to the runs.
+    out_to: specifies the format of the table (example CONSOLE or HTML).
+
+  Returns:
+    A string table that can be printed to the console or put in an HTML file.
+  """
+  tg = TableGenerator(runs, labels, TableGenerator.SORT_BY_VALUES_DESC)
+  table = tg.GetTable()
+  columns = [Column(LiteralResult(), Format(), 'Literal'),
+             Column(AmeanResult(), Format()), Column(StdResult(), Format()),
+             Column(CoeffVarResult(), CoeffVarFormat()),
+             Column(NonEmptyCountResult(), Format()),
+             Column(AmeanRatioResult(), PercentFormat()),
+             Column(AmeanRatioResult(), RatioFormat()),
+             Column(GmeanRatioResult(), RatioFormat()),
+             Column(PValueResult(), PValueFormat())]
+  tf = TableFormatter(table, columns)
+  cell_table = tf.GetCellTable()
+  tp = TablePrinter(cell_table, out_to)
+  return tp.Print()
+
+
+if __name__ == '__main__':
+  # Run a few small tests here.
+  runs = [[{'k1': '10',
+            'k2': '12',
+            'k5': '40',
+            'k6': '40',
+            'ms_1': '20',
+            'k7': 'FAIL',
+            'k8': 'PASS',
+            'k9': 'PASS',
+            'k10': '0'}, {'k1': '13',
+                          'k2': '14',
+                          'k3': '15',
+                          'ms_1': '10',
+                          'k8': 'PASS',
+                          'k9': 'FAIL',
+                          'k10': '0'}], [{'k1': '50',
+                                          'k2': '51',
+                                          'k3': '52',
+                                          'k4': '53',
+                                          'k5': '35',
+                                          'k6': '45',
+                                          'ms_1': '200',
+                                          'ms_2': '20',
+                                          'k7': 'FAIL',
+                                          'k8': 'PASS',
+                                          'k9': 'PASS'}]]
+  labels = ['vanilla', 'modified']
+  t = GetComplexTable(runs, labels, TablePrinter.CONSOLE)
+  print(t)
+  email = GetComplexTable(runs, labels, TablePrinter.EMAIL)
+
+  runs = [[{'k1': '1'}, {'k1': '1.1'}, {'k1': '1.2'}],
+          [{'k1': '5'}, {'k1': '5.1'}, {'k1': '5.2'}]]
+  t = GetComplexTable(runs, labels, TablePrinter.CONSOLE)
+  print(t)
+
+  simple_table = [
+      ['binary', 'b1', 'b2', 'b3'],
+      ['size', 100, 105, 108],
+      ['rodata', 100, 80, 70],
+      ['data', 100, 100, 100],
+      ['debug', 100, 140, 60],
+  ]
+  t = GetSimpleTable(simple_table)
+  print(t)
+  email += GetSimpleTable(simple_table, TablePrinter.HTML)
+  email_to = [getpass.getuser()]
+  email = "<pre style='font-size: 13px'>%s</pre>" % email
+  EmailSender().SendEmail(email_to, 'SimpleTableTest', email, msg_type='html')
diff --git a/cros_utils/tabulator_test.py b/cros_utils/tabulator_test.py
new file mode 100644
index 0000000..21cd1e7
--- /dev/null
+++ b/cros_utils/tabulator_test.py
@@ -0,0 +1,141 @@
+# Copyright 2012 Google Inc. All Rights Reserved.
+"""Tests for the tabulator module."""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+# System modules
+import unittest
+
+# Local modules
+import tabulator
+
+
+class TabulatorTest(unittest.TestCase):
+  """Tests for the Tabulator class."""
+
+  def testResult(self):
+    table = ['k1', ['1', '3'], ['55']]
+    result = tabulator.Result()
+    cell = tabulator.Cell()
+    result.Compute(cell, table[2], table[1])
+    expected = ' '.join([str(float(v)) for v in table[2]])
+    self.assertTrue(cell.value == expected)
+
+    result = tabulator.AmeanResult()
+    cell = tabulator.Cell()
+    result.Compute(cell, table[2], table[1])
+    self.assertTrue(cell.value == float(table[2][0]))
+
+  def testStringMean(self):
+    smr = tabulator.StringMeanResult()
+    cell = tabulator.Cell()
+    value = 'PASS'
+    values = [value for _ in range(3)]
+    smr.Compute(cell, values, None)
+    self.assertTrue(cell.value == value)
+    values.append('FAIL')
+    smr.Compute(cell, values, None)
+    self.assertTrue(cell.value == '?')
+
+  def testStorageFormat(self):
+    sf = tabulator.StorageFormat()
+    cell = tabulator.Cell()
+    base = 1024.0
+    cell.value = base
+    sf.Compute(cell)
+    self.assertTrue(cell.string_value == '1.0K')
+    cell.value = base**2
+    sf.Compute(cell)
+    self.assertTrue(cell.string_value == '1.0M')
+    cell.value = base**3
+    sf.Compute(cell)
+    self.assertTrue(cell.string_value == '1.0G')
+
+  def testLerp(self):
+    c1 = tabulator.Color(0, 0, 0, 0)
+    c2 = tabulator.Color(255, 0, 0, 0)
+    c3 = tabulator.Color.Lerp(0.5, c1, c2)
+    self.assertTrue(c3.r == 127.5)
+    self.assertTrue(c3.g == 0)
+    self.assertTrue(c3.b == 0)
+    self.assertTrue(c3.a == 0)
+    c3.Round()
+    self.assertTrue(c3.r == 127)
+
+  def testGmean(self):
+    a = [1.0e+308] * 3
+    # pylint: disable=protected-access
+    b = tabulator.Result()._GetGmean(a)
+    self.assertTrue(b >= 0.99e+308 and b <= 1.01e+308)
+
+  def testTableGenerator(self):
+    runs = [[{'k1': '10',
+              'k2': '12'}, {'k1': '13',
+                            'k2': '14',
+                            'k3': '15'}], [{'k1': '50',
+                                            'k2': '51',
+                                            'k3': '52',
+                                            'k4': '53'}]]
+    labels = ['vanilla', 'modified']
+    tg = tabulator.TableGenerator(runs, labels)
+    table = tg.GetTable()
+    header = table.pop(0)
+
+    self.assertTrue(header == ['keys', 'vanilla', 'modified'])
+    row = table.pop(0)
+    self.assertTrue(row == ['k1', ['10', '13'], ['50']])
+    row = table.pop(0)
+    self.assertTrue(row == ['k2', ['12', '14'], ['51']])
+    row = table.pop(0)
+    self.assertTrue(row == ['k3', [None, '15'], ['52']])
+    row = table.pop(0)
+    self.assertTrue(row == ['k4', [None, None], ['53']])
+
+    table = tg.GetTable()
+    columns = [
+        tabulator.Column(tabulator.AmeanResult(), tabulator.Format()),
+        tabulator.Column(tabulator.AmeanRatioResult(),
+                         tabulator.PercentFormat()),
+    ]
+    tf = tabulator.TableFormatter(table, columns)
+    table = tf.GetCellTable()
+    self.assertTrue(table)
+
+  def testColspan(self):
+    simple_table = [
+        ['binary', 'b1', 'b2', 'b3'],
+        ['size', 100, 105, 108],
+        ['rodata', 100, 80, 70],
+        ['data', 100, 100, 100],
+        ['debug', 100, 140, 60],
+    ]
+    columns = [
+        tabulator.Column(tabulator.AmeanResult(), tabulator.Format()),
+        tabulator.Column(tabulator.MinResult(), tabulator.Format()),
+        tabulator.Column(tabulator.AmeanRatioResult(),
+                         tabulator.PercentFormat()),
+        tabulator.Column(tabulator.AmeanRatioResult(),
+                         tabulator.ColorBoxFormat()),
+    ]
+    our_table = [simple_table[0]]
+    for row in simple_table[1:]:
+      our_row = [row[0]]
+      for v in row[1:]:
+        our_row.append([v])
+      our_table.append(our_row)
+
+    tf = tabulator.TableFormatter(our_table, columns)
+    cell_table = tf.GetCellTable()
+    self.assertTrue(cell_table[0][0].colspan == 1)
+    self.assertTrue(cell_table[0][1].colspan == 2)
+    self.assertTrue(cell_table[0][2].colspan == 4)
+    self.assertTrue(cell_table[0][3].colspan == 4)
+    for row in cell_table[1:]:
+      for cell in row:
+        self.assertTrue(cell.colspan == 1)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/cros_utils/timeline.py b/cros_utils/timeline.py
new file mode 100644
index 0000000..873aaa3
--- /dev/null
+++ b/cros_utils/timeline.py
@@ -0,0 +1,52 @@
+# Copyright 2012 Google Inc. All Rights Reserved.
+#
+"""Tools for recording and reporting timeline of benchmark_run."""
+
+from __future__ import print_function
+
+__author__ = 'yunlian@google.com (Yunlian Jiang)'
+
+import time
+
+
+class Event(object):
+  """One event on the timeline."""
+
+  def __init__(self, name='', cur_time=0):
+    self.name = name
+    self.timestamp = cur_time
+
+
+class Timeline(object):
+  """Use a dict to store the timeline."""
+
+  def __init__(self):
+    self.events = []
+
+  def Record(self, event):
+    for e in self.events:
+      assert e.name != event, ('The event {0} is already recorded.'
+                               .format(event))
+    cur_event = Event(name=event, cur_time=time.time())
+    self.events.append(cur_event)
+
+  def GetEvents(self):
+    return ([e.name for e in self.events])
+
+  def GetEventDict(self):
+    tl = {}
+    for e in self.events:
+      tl[e.name] = e.timestamp
+    return tl
+
+  def GetEventTime(self, event):
+    for e in self.events:
+      if e.name == event:
+        return e.timestamp
+    raise IndexError, 'The event {0} is not recorded'.format(event)
+
+  def GetLastEventTime(self):
+    return self.events[-1].timestamp
+
+  def GetLastEvent(self):
+    return self.events[-1].name
diff --git a/cros_utils/timeline_test.py b/cros_utils/timeline_test.py
new file mode 100644
index 0000000..c93a127
--- /dev/null
+++ b/cros_utils/timeline_test.py
@@ -0,0 +1,57 @@
+# Copyright 2012 Google Inc. All Rights Reserved.
+"""Tests for time_line.py."""
+
+from __future__ import print_function
+
+__author__ = 'yunlian@google.com (Yunlian Jiang)'
+
+import time
+import unittest
+
+import timeline
+
+
+class TimeLineTest(unittest.TestCase):
+  """Tests for the Timeline class."""
+
+  def testRecord(self):
+    tl = timeline.Timeline()
+    tl.Record('A')
+    t = time.time()
+    t1 = tl.events[0].timestamp
+    self.assertEqual(int(t1 - t), 0)
+    self.assertRaises(AssertionError, tl.Record, 'A')
+
+  def testGetEvents(self):
+    tl = timeline.Timeline()
+    tl.Record('A')
+    e = tl.GetEvents()
+    self.assertEqual(e, ['A'])
+    tl.Record('B')
+    e = tl.GetEvents()
+    self.assertEqual(e, ['A', 'B'])
+
+  def testGetEventTime(self):
+    tl = timeline.Timeline()
+    tl.Record('A')
+    t = time.time()
+    t1 = tl.GetEventTime('A')
+    self.assertEqual(int(t1 - t), 0)
+    self.assertRaises(IndexError, tl.GetEventTime, 'B')
+
+  def testGetLastEventTime(self):
+    tl = timeline.Timeline()
+    self.assertRaises(IndexError, tl.GetLastEventTime)
+    tl.Record('A')
+    t = time.time()
+    t1 = tl.GetLastEventTime()
+    self.assertEqual(int(t1 - t), 0)
+    time.sleep(2)
+    tl.Record('B')
+    t = time.time()
+    t1 = tl.GetLastEventTime()
+    self.assertEqual(int(t1 - t), 0)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/benchmark.py b/crosperf/benchmark.py
new file mode 100644
index 0000000..a2a34bc
--- /dev/null
+++ b/crosperf/benchmark.py
@@ -0,0 +1,45 @@
+
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Define a type that wraps a Benchmark instance."""
+
+class Benchmark(object):
+  """Class representing a benchmark to be run.
+
+  Contains details of the benchmark suite, arguments to pass to the suite,
+  iterations to run the benchmark suite and so on. Note that the benchmark name
+  can be different to the test suite name. For example, you may want to have
+  two different benchmarks which run the same test_name with different
+  arguments.
+  """
+
+  def __init__(self,
+               name,
+               test_name,
+               test_args,
+               iterations,
+               rm_chroot_tmp,
+               perf_args,
+               suite='',
+               show_all_results=False,
+               retries=0,
+               run_local=False):
+    self.name = name
+    #For telemetry, this is the benchmark name.
+    self.test_name = test_name
+    #For telemetry, this is the data.
+    self.test_args = test_args
+    self.iterations = iterations
+    self.perf_args = perf_args
+    self.rm_chroot_tmp = rm_chroot_tmp
+    self.iteration_adjusted = False
+    self.suite = suite
+    self.show_all_results = show_all_results
+    self.retries = retries
+    if self.suite == 'telemetry':
+      self.show_all_results = True
+    if run_local and self.suite != 'telemetry_Crosperf':
+      raise RuntimeError('run_local is only supported by telemetry_Crosperf.')
+    self.run_local = run_local
diff --git a/crosperf/benchmark_run.py b/crosperf/benchmark_run.py
new file mode 100644
index 0000000..e53187e
--- /dev/null
+++ b/crosperf/benchmark_run.py
@@ -0,0 +1,265 @@
+
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Module of benchmark runs."""
+from __future__ import print_function
+
+import datetime
+import threading
+import time
+import traceback
+
+from cros_utils import command_executer
+from cros_utils import timeline
+
+from suite_runner import SuiteRunner
+from results_cache import MockResult
+from results_cache import MockResultsCache
+from results_cache import Result
+from results_cache import ResultsCache
+
+STATUS_FAILED = 'FAILED'
+STATUS_SUCCEEDED = 'SUCCEEDED'
+STATUS_IMAGING = 'IMAGING'
+STATUS_RUNNING = 'RUNNING'
+STATUS_WAITING = 'WAITING'
+STATUS_PENDING = 'PENDING'
+
+
+class BenchmarkRun(threading.Thread):
+  """The benchmarkrun class."""
+  def __init__(self, name, benchmark, label, iteration, cache_conditions,
+               machine_manager, logger_to_use, log_level, share_cache):
+    threading.Thread.__init__(self)
+    self.name = name
+    self._logger = logger_to_use
+    self.log_level = log_level
+    self.benchmark = benchmark
+    self.iteration = iteration
+    self.label = label
+    self.result = None
+    self.terminated = False
+    self.retval = None
+    self.run_completed = False
+    self.machine_manager = machine_manager
+    self.suite_runner = SuiteRunner(self._logger, self.log_level)
+    self.machine = None
+    self.cache_conditions = cache_conditions
+    self.runs_complete = 0
+    self.cache_hit = False
+    self.failure_reason = ''
+    self.test_args = benchmark.test_args
+    self.cache = None
+    self.profiler_args = self.GetExtraAutotestArgs()
+    self._ce = command_executer.GetCommandExecuter(self._logger,
+                                                   log_level=self.log_level)
+    self.timeline = timeline.Timeline()
+    self.timeline.Record(STATUS_PENDING)
+    self.share_cache = share_cache
+    self.cache_has_been_read = False
+
+    # This is used by schedv2.
+    self.owner_thread = None
+
+  def ReadCache(self):
+    # Just use the first machine for running the cached version,
+    # without locking it.
+    self.cache = ResultsCache()
+    self.cache.Init(self.label.chromeos_image, self.label.chromeos_root,
+                    self.benchmark.test_name, self.iteration, self.test_args,
+                    self.profiler_args, self.machine_manager, self.machine,
+                    self.label.board, self.cache_conditions, self._logger,
+                    self.log_level, self.label, self.share_cache,
+                    self.benchmark.suite, self.benchmark.show_all_results,
+                    self.benchmark.run_local)
+
+    self.result = self.cache.ReadResult()
+    self.cache_hit = (self.result is not None)
+    self.cache_has_been_read = True
+
+  def run(self):
+    try:
+      if not self.cache_has_been_read:
+        self.ReadCache()
+
+      if self.result:
+        self._logger.LogOutput('%s: Cache hit.' % self.name)
+        self._logger.LogOutput(self.result.out, print_to_console=False)
+        self._logger.LogError(self.result.err, print_to_console=False)
+
+      elif self.label.cache_only:
+        self._logger.LogOutput('%s: No cache hit.' % self.name)
+        output = '%s: No Cache hit.' % self.name
+        retval = 1
+        err = 'No cache hit.'
+        self.result = Result.CreateFromRun(
+            self._logger, self.log_level, self.label, self.machine, output, err,
+            retval, self.benchmark.test_name,
+            self.benchmark.suite)
+
+      else:
+        self._logger.LogOutput('%s: No cache hit.' % self.name)
+        self.timeline.Record(STATUS_WAITING)
+        # Try to acquire a machine now.
+        self.machine = self.AcquireMachine()
+        self.cache.machine = self.machine
+        self.result = self.RunTest(self.machine)
+
+        self.cache.remote = self.machine.name
+        self.label.chrome_version = self.machine_manager.GetChromeVersion(
+            self.machine)
+        self.cache.StoreResult(self.result)
+
+      if not self.label.chrome_version:
+        if self.machine:
+          self.label.chrome_version = self.machine_manager.GetChromeVersion(
+              self.machine)
+        elif self.result.chrome_version:
+          self.label.chrome_version = self.result.chrome_version
+
+      if self.terminated:
+        return
+
+      if not self.result.retval:
+        self.timeline.Record(STATUS_SUCCEEDED)
+      else:
+        if self.timeline.GetLastEvent() != STATUS_FAILED:
+          self.failure_reason = 'Return value of test suite was non-zero.'
+          self.timeline.Record(STATUS_FAILED)
+
+    except Exception, e:
+      self._logger.LogError("Benchmark run: '%s' failed: %s" % (self.name, e))
+      traceback.print_exc()
+      if self.timeline.GetLastEvent() != STATUS_FAILED:
+        self.timeline.Record(STATUS_FAILED)
+        self.failure_reason = str(e)
+    finally:
+      if self.owner_thread is not None:
+        # In schedv2 mode, we do not lock machine locally. So noop here.
+        pass
+      elif self.machine:
+        if not self.machine.IsReachable():
+          self._logger.LogOutput('Machine %s is not reachable, removing it.' %
+                                 self.machine.name)
+          self.machine_manager.RemoveMachine(self.machine.name)
+        self._logger.LogOutput('Releasing machine: %s' % self.machine.name)
+        self.machine_manager.ReleaseMachine(self.machine)
+        self._logger.LogOutput('Released machine: %s' % self.machine.name)
+
+  def Terminate(self):
+    self.terminated = True
+    self.suite_runner.Terminate()
+    if self.timeline.GetLastEvent() != STATUS_FAILED:
+      self.timeline.Record(STATUS_FAILED)
+      self.failure_reason = 'Thread terminated.'
+
+  def AcquireMachine(self):
+    if self.owner_thread is not None:
+      # No need to lock machine locally, DutWorker, which is a thread, is
+      # responsible for running br.
+      return self.owner_thread.dut()
+    while True:
+      machine = None
+      if self.terminated:
+        raise RuntimeError('Thread terminated while trying to acquire machine.')
+
+      machine = self.machine_manager.AcquireMachine(self.label)
+
+      if machine:
+        self._logger.LogOutput('%s: Machine %s acquired at %s' %
+                               (self.name, machine.name,
+                                datetime.datetime.now()))
+        break
+      time.sleep(10)
+    return machine
+
+  def GetExtraAutotestArgs(self):
+    if self.benchmark.perf_args and self.benchmark.suite == 'telemetry':
+      self._logger.LogError('Telemetry does not support profiler.')
+      self.benchmark.perf_args = ''
+
+    if self.benchmark.perf_args and self.benchmark.suite == 'test_that':
+      self._logger.LogError('test_that does not support profiler.')
+      self.benchmark.perf_args = ''
+
+    if self.benchmark.perf_args:
+      perf_args_list = self.benchmark.perf_args.split(' ')
+      perf_args_list = [perf_args_list[0]] + ['-a'] + perf_args_list[1:]
+      perf_args = ' '.join(perf_args_list)
+      if not perf_args_list[0] in ['record', 'stat']:
+        raise SyntaxError('perf_args must start with either record or stat')
+      extra_test_args = ['--profiler=custom_perf',
+                         ("--profiler_args='perf_options=\"%s\"'" % perf_args)]
+      return ' '.join(extra_test_args)
+    else:
+      return ''
+
+  def RunTest(self, machine):
+    self.timeline.Record(STATUS_IMAGING)
+    if self.owner_thread is not None:
+      # In schedv2 mode, do not even call ImageMachine. Machine image is
+      # guarenteed.
+      pass
+    else:
+      self.machine_manager.ImageMachine(machine, self.label)
+    self.timeline.Record(STATUS_RUNNING)
+    retval, out, err = self.suite_runner.Run(machine.name, self.label,
+                                             self.benchmark, self.test_args,
+                                             self.profiler_args)
+    self.run_completed = True
+    return Result.CreateFromRun(self._logger, self.log_level, self.label,
+                                self.machine, out, err, retval,
+                                self.benchmark.test_name, self.benchmark.suite)
+
+  def SetCacheConditions(self, cache_conditions):
+    self.cache_conditions = cache_conditions
+
+  def logger(self):
+    """Return the logger, only used by unittest.
+
+    Returns:
+      self._logger
+    """
+
+    return self._logger
+
+  def __str__(self):
+    """For better debugging."""
+
+    return 'BenchmarkRun[name="{}"]'.format(self.name)
+
+
+class MockBenchmarkRun(BenchmarkRun):
+  """Inherited from BenchmarkRun."""
+
+  def ReadCache(self):
+    # Just use the first machine for running the cached version,
+    # without locking it.
+    self.cache = MockResultsCache()
+    self.cache.Init(self.label.chromeos_image, self.label.chromeos_root,
+                    self.benchmark.test_name, self.iteration, self.test_args,
+                    self.profiler_args, self.machine_manager, self.machine,
+                    self.label.board, self.cache_conditions, self._logger,
+                    self.log_level, self.label, self.share_cache,
+                    self.benchmark.suite, self.benchmark.show_all_results,
+                    self.benchmark.run_local)
+
+    self.result = self.cache.ReadResult()
+    self.cache_hit = (self.result is not None)
+
+  def RunTest(self, machine):
+    """Remove Result.CreateFromRun for testing."""
+    self.timeline.Record(STATUS_IMAGING)
+    self.machine_manager.ImageMachine(machine, self.label)
+    self.timeline.Record(STATUS_RUNNING)
+    [retval, out, err] = self.suite_runner.Run(machine.name, self.label,
+                                               self.benchmark, self.test_args,
+                                               self.profiler_args)
+    self.run_completed = True
+    rr = MockResult('logger', self.label, self.log_level, machine)
+    rr.out = out
+    rr.err = err
+    rr.retval = retval
+    return rr
diff --git a/crosperf/benchmark_run_unittest.py b/crosperf/benchmark_run_unittest.py
new file mode 100755
index 0000000..9af66a3
--- /dev/null
+++ b/crosperf/benchmark_run_unittest.py
@@ -0,0 +1,430 @@
+#!/usr/bin/env python2
+
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Testing of benchmark_run."""
+
+from __future__ import print_function
+
+import mock
+import unittest
+import inspect
+
+from cros_utils import logger
+
+import benchmark_run
+
+from suite_runner import MockSuiteRunner
+from suite_runner import SuiteRunner
+from label import MockLabel
+from benchmark import Benchmark
+from machine_manager import MockMachineManager
+from machine_manager import MachineManager
+from machine_manager import MockCrosMachine
+from results_cache import MockResultsCache
+from results_cache import CacheConditions
+from results_cache import Result
+from results_cache import ResultsCache
+
+
+class BenchmarkRunTest(unittest.TestCase):
+  """Unit tests for the BenchmarkRun class and all of its methods."""
+
+  def setUp(self):
+    self.status = []
+    self.called_ReadCache = None
+    self.log_error = []
+    self.log_output = []
+    self.err_msg = None
+    self.test_benchmark = Benchmark(
+        'page_cycler.netsim.top_10',  # name
+        'page_cycler.netsim.top_10',  # test_name
+        '',  # test_args
+        1,  # iterations
+        False,  # rm_chroot_tmp
+        '',  # perf_args
+        suite='telemetry_Crosperf')  # suite
+
+    self.test_label = MockLabel(
+        'test1',
+        'image1',
+        'autotest_dir',
+        '/tmp/test_benchmark_run',
+        'x86-alex',
+        'chromeos2-row1-rack4-host9.cros',
+        image_args='',
+        cache_dir='',
+        cache_only=False,
+        log_level='average',
+        compiler='gcc')
+
+    self.test_cache_conditions = [
+        CacheConditions.CACHE_FILE_EXISTS, CacheConditions.CHECKSUMS_MATCH
+    ]
+
+    self.mock_logger = logger.GetLogger(log_dir='', mock=True)
+
+    self.mock_machine_manager = mock.Mock(spec=MachineManager)
+
+  def testDryRun(self):
+    my_label = MockLabel(
+        'test1',
+        'image1',
+        'autotest_dir',
+        '/tmp/test_benchmark_run',
+        'x86-alex',
+        'chromeos2-row1-rack4-host9.cros',
+        image_args='',
+        cache_dir='',
+        cache_only=False,
+        log_level='average',
+        compiler='gcc')
+
+    logging_level = 'average'
+    m = MockMachineManager('/tmp/chromeos_root', 0, logging_level, '')
+    m.AddMachine('chromeos2-row1-rack4-host9.cros')
+    bench = Benchmark(
+        'page_cycler.netsim.top_10',  # name
+        'page_cycler.netsim.top_10',  # test_name
+        '',  # test_args
+        1,  # iterations
+        False,  # rm_chroot_tmp
+        '',  # perf_args
+        suite='telemetry_Crosperf')  # suite
+    b = benchmark_run.MockBenchmarkRun('test run', bench, my_label, 1, [], m,
+                                       logger.GetLogger(), logging_level, '')
+    b.cache = MockResultsCache()
+    b.suite_runner = MockSuiteRunner()
+    b.start()
+
+    # Make sure the arguments to BenchmarkRun.__init__ have not changed
+    # since the last time this test was updated:
+    args_list = [
+        'self', 'name', 'benchmark', 'label', 'iteration', 'cache_conditions',
+        'machine_manager', 'logger_to_use', 'log_level', 'share_cache'
+    ]
+    arg_spec = inspect.getargspec(benchmark_run.BenchmarkRun.__init__)
+    self.assertEqual(len(arg_spec.args), len(args_list))
+    self.assertEqual(arg_spec.args, args_list)
+
+  def test_init(self):
+    # Nothing really worth testing here; just field assignments.
+    pass
+
+  def test_read_cache(self):
+    # Nothing really worth testing here, either.
+    pass
+
+  def test_run(self):
+    br = benchmark_run.BenchmarkRun('test_run', self.test_benchmark,
+                                    self.test_label, 1,
+                                    self.test_cache_conditions,
+                                    self.mock_machine_manager, self.mock_logger,
+                                    'average', '')
+
+    def MockLogOutput(msg, print_to_console=False):
+      'Helper function for test_run.'
+      del print_to_console
+      self.log_output.append(msg)
+
+    def MockLogError(msg, print_to_console=False):
+      'Helper function for test_run.'
+      del print_to_console
+      self.log_error.append(msg)
+
+    def MockRecordStatus(msg):
+      'Helper function for test_run.'
+      self.status.append(msg)
+
+    def FakeReadCache():
+      'Helper function for test_run.'
+      br.cache = mock.Mock(spec=ResultsCache)
+      self.called_ReadCache = True
+      return 0
+
+    def FakeReadCacheSucceed():
+      'Helper function for test_run.'
+      br.cache = mock.Mock(spec=ResultsCache)
+      br.result = mock.Mock(spec=Result)
+      br.result.out = 'result.out stuff'
+      br.result.err = 'result.err stuff'
+      br.result.retval = 0
+      self.called_ReadCache = True
+      return 0
+
+    def FakeReadCacheException():
+      'Helper function for test_run.'
+      raise RuntimeError('This is an exception test; it is supposed to happen')
+
+    def FakeAcquireMachine():
+      'Helper function for test_run.'
+      mock_machine = MockCrosMachine('chromeos1-row3-rack5-host7.cros',
+                                     'chromeos', 'average')
+      return mock_machine
+
+    def FakeRunTest(_machine):
+      'Helper function for test_run.'
+      mock_result = mock.Mock(spec=Result)
+      mock_result.retval = 0
+      return mock_result
+
+    def FakeRunTestFail(_machine):
+      'Helper function for test_run.'
+      mock_result = mock.Mock(spec=Result)
+      mock_result.retval = 1
+      return mock_result
+
+    def ResetTestValues():
+      'Helper function for test_run.'
+      self.log_output = []
+      self.log_error = []
+      self.status = []
+      br.result = None
+      self.called_ReadCache = False
+
+    # Assign all the fake functions to the appropriate objects.
+    br.logger().LogOutput = MockLogOutput
+    br.logger().LogError = MockLogError
+    br.timeline.Record = MockRecordStatus
+    br.ReadCache = FakeReadCache
+    br.RunTest = FakeRunTest
+    br.AcquireMachine = FakeAcquireMachine
+
+    # First test:  No cache hit, all goes well.
+    ResetTestValues()
+    br.run()
+    self.assertTrue(self.called_ReadCache)
+    self.assertEqual(self.log_output, [
+        'test_run: No cache hit.',
+        'Releasing machine: chromeos1-row3-rack5-host7.cros',
+        'Released machine: chromeos1-row3-rack5-host7.cros'
+    ])
+    self.assertEqual(len(self.log_error), 0)
+    self.assertEqual(self.status, ['WAITING', 'SUCCEEDED'])
+
+    # Second test: No cached result found; test run was "terminated" for some
+    # reason.
+    ResetTestValues()
+    br.terminated = True
+    br.run()
+    self.assertTrue(self.called_ReadCache)
+    self.assertEqual(self.log_output, [
+        'test_run: No cache hit.',
+        'Releasing machine: chromeos1-row3-rack5-host7.cros',
+        'Released machine: chromeos1-row3-rack5-host7.cros'
+    ])
+    self.assertEqual(len(self.log_error), 0)
+    self.assertEqual(self.status, ['WAITING'])
+
+    # Third test.  No cached result found; RunTest failed for some reason.
+    ResetTestValues()
+    br.terminated = False
+    br.RunTest = FakeRunTestFail
+    br.run()
+    self.assertTrue(self.called_ReadCache)
+    self.assertEqual(self.log_output, [
+        'test_run: No cache hit.',
+        'Releasing machine: chromeos1-row3-rack5-host7.cros',
+        'Released machine: chromeos1-row3-rack5-host7.cros'
+    ])
+    self.assertEqual(len(self.log_error), 0)
+    self.assertEqual(self.status, ['WAITING', 'FAILED'])
+
+    # Fourth test: ReadCache found a cached result.
+    ResetTestValues()
+    br.RunTest = FakeRunTest
+    br.ReadCache = FakeReadCacheSucceed
+    br.run()
+    self.assertTrue(self.called_ReadCache)
+    self.assertEqual(self.log_output, [
+        'test_run: Cache hit.', 'result.out stuff',
+        'Releasing machine: chromeos1-row3-rack5-host7.cros',
+        'Released machine: chromeos1-row3-rack5-host7.cros'
+    ])
+    self.assertEqual(self.log_error, ['result.err stuff'])
+    self.assertEqual(self.status, ['SUCCEEDED'])
+
+    # Fifth test: ReadCache generates an exception; does the try/finally block
+    # work?
+    ResetTestValues()
+    br.ReadCache = FakeReadCacheException
+    br.machine = FakeAcquireMachine()
+    br.run()
+    self.assertEqual(self.log_error, [
+        "Benchmark run: 'test_run' failed: This is an exception test; it is "
+        'supposed to happen'
+    ])
+    self.assertEqual(self.status, ['FAILED'])
+
+  def test_terminate_pass(self):
+    br = benchmark_run.BenchmarkRun('test_run', self.test_benchmark,
+                                    self.test_label, 1,
+                                    self.test_cache_conditions,
+                                    self.mock_machine_manager, self.mock_logger,
+                                    'average', '')
+
+    def GetLastEventPassed():
+      'Helper function for test_terminate_pass'
+      return benchmark_run.STATUS_SUCCEEDED
+
+    def RecordStub(status):
+      'Helper function for test_terminate_pass'
+      self.status = status
+
+    self.status = benchmark_run.STATUS_SUCCEEDED
+    self.assertFalse(br.terminated)
+    self.assertFalse(br.suite_runner.CommandTerminator().IsTerminated())
+
+    br.timeline.GetLastEvent = GetLastEventPassed
+    br.timeline.Record = RecordStub
+
+    br.Terminate()
+
+    self.assertTrue(br.terminated)
+    self.assertTrue(br.suite_runner.CommandTerminator().IsTerminated())
+    self.assertEqual(self.status, benchmark_run.STATUS_FAILED)
+
+  def test_terminate_fail(self):
+    br = benchmark_run.BenchmarkRun('test_run', self.test_benchmark,
+                                    self.test_label, 1,
+                                    self.test_cache_conditions,
+                                    self.mock_machine_manager, self.mock_logger,
+                                    'average', '')
+
+    def GetLastEventFailed():
+      'Helper function for test_terminate_fail'
+      return benchmark_run.STATUS_FAILED
+
+    def RecordStub(status):
+      'Helper function for test_terminate_fail'
+      self.status = status
+
+    self.status = benchmark_run.STATUS_SUCCEEDED
+    self.assertFalse(br.terminated)
+    self.assertFalse(br.suite_runner.CommandTerminator().IsTerminated())
+
+    br.timeline.GetLastEvent = GetLastEventFailed
+    br.timeline.Record = RecordStub
+
+    br.Terminate()
+
+    self.assertTrue(br.terminated)
+    self.assertTrue(br.suite_runner.CommandTerminator().IsTerminated())
+    self.assertEqual(self.status, benchmark_run.STATUS_SUCCEEDED)
+
+  def test_acquire_machine(self):
+    br = benchmark_run.BenchmarkRun('test_run', self.test_benchmark,
+                                    self.test_label, 1,
+                                    self.test_cache_conditions,
+                                    self.mock_machine_manager, self.mock_logger,
+                                    'average', '')
+
+    br.terminated = True
+    self.assertRaises(Exception, br.AcquireMachine)
+
+    br.terminated = False
+    mock_machine = MockCrosMachine('chromeos1-row3-rack5-host7.cros',
+                                   'chromeos', 'average')
+    self.mock_machine_manager.AcquireMachine.return_value = mock_machine
+
+    machine = br.AcquireMachine()
+    self.assertEqual(machine.name, 'chromeos1-row3-rack5-host7.cros')
+
+  def test_get_extra_autotest_args(self):
+    br = benchmark_run.BenchmarkRun('test_run', self.test_benchmark,
+                                    self.test_label, 1,
+                                    self.test_cache_conditions,
+                                    self.mock_machine_manager, self.mock_logger,
+                                    'average', '')
+
+    def MockLogError(err_msg):
+      'Helper function for test_get_extra_autotest_args'
+      self.err_msg = err_msg
+
+    self.mock_logger.LogError = MockLogError
+
+    result = br.GetExtraAutotestArgs()
+    self.assertEqual(result, '')
+
+    self.test_benchmark.perf_args = 'record -e cycles'
+    result = br.GetExtraAutotestArgs()
+    self.assertEqual(
+        result,
+        "--profiler=custom_perf --profiler_args='perf_options=\"record -a -e "
+        "cycles\"'")
+
+    self.test_benchmark.suite = 'telemetry'
+    result = br.GetExtraAutotestArgs()
+    self.assertEqual(result, '')
+    self.assertEqual(self.err_msg, 'Telemetry does not support profiler.')
+
+    self.test_benchmark.perf_args = 'record -e cycles'
+    self.test_benchmark.suite = 'test_that'
+    result = br.GetExtraAutotestArgs()
+    self.assertEqual(result, '')
+    self.assertEqual(self.err_msg, 'test_that does not support profiler.')
+
+    self.test_benchmark.perf_args = 'junk args'
+    self.test_benchmark.suite = 'telemetry_Crosperf'
+    self.assertRaises(Exception, br.GetExtraAutotestArgs)
+
+  @mock.patch.object(SuiteRunner, 'Run')
+  @mock.patch.object(Result, 'CreateFromRun')
+  def test_run_test(self, mock_result, mock_runner):
+    br = benchmark_run.BenchmarkRun('test_run', self.test_benchmark,
+                                    self.test_label, 1,
+                                    self.test_cache_conditions,
+                                    self.mock_machine_manager, self.mock_logger,
+                                    'average', '')
+
+    self.status = []
+
+    def MockRecord(status):
+      self.status.append(status)
+
+    br.timeline.Record = MockRecord
+    mock_machine = MockCrosMachine('chromeos1-row3-rack5-host7.cros',
+                                   'chromeos', 'average')
+    mock_runner.return_value = [0, "{'Score':100}", '']
+
+    br.RunTest(mock_machine)
+
+    self.assertTrue(br.run_completed)
+    self.assertEqual(
+        self.status,
+        [benchmark_run.STATUS_IMAGING, benchmark_run.STATUS_RUNNING])
+
+    self.assertEqual(br.machine_manager.ImageMachine.call_count, 1)
+    br.machine_manager.ImageMachine.assert_called_with(mock_machine,
+                                                       self.test_label)
+    self.assertEqual(mock_runner.call_count, 1)
+    mock_runner.assert_called_with(mock_machine.name, br.label, br.benchmark,
+                                   '', br.profiler_args)
+
+    self.assertEqual(mock_result.call_count, 1)
+    mock_result.assert_called_with(self.mock_logger, 'average', self.test_label,
+                                   None, "{'Score':100}", '', 0,
+                                   'page_cycler.netsim.top_10',
+                                   'telemetry_Crosperf')
+
+  def test_set_cache_conditions(self):
+    br = benchmark_run.BenchmarkRun('test_run', self.test_benchmark,
+                                    self.test_label, 1,
+                                    self.test_cache_conditions,
+                                    self.mock_machine_manager, self.mock_logger,
+                                    'average', '')
+
+    phony_cache_conditions = [123, 456, True, False]
+
+    self.assertEqual(br.cache_conditions, self.test_cache_conditions)
+
+    br.SetCacheConditions(phony_cache_conditions)
+    self.assertEqual(br.cache_conditions, phony_cache_conditions)
+
+    br.SetCacheConditions(self.test_cache_conditions)
+    self.assertEqual(br.cache_conditions, self.test_cache_conditions)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/benchmark_unittest.py b/crosperf/benchmark_unittest.py
new file mode 100755
index 0000000..320ede6
--- /dev/null
+++ b/crosperf/benchmark_unittest.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc.  All Rights Reserved
+"""Unit tests for the Crosperf Benchmark class."""
+
+from __future__ import print_function
+
+import inspect
+from benchmark import Benchmark
+
+import unittest
+
+
+class BenchmarkTestCase(unittest.TestCase):
+  """Individual tests for the Benchmark class."""
+
+  def test_benchmark(self):
+    # Test creating a benchmark with all the fields filled out.
+    b1 = Benchmark('b1_test',  # name
+                   'octane',  # test_name
+                   '',  # test_args
+                   3,  # iterations
+                   False,  # rm_chroot_tmp
+                   'record -e cycles',  # perf_args
+                   'telemetry_Crosperf',  # suite
+                   True)  # show_all_results
+    self.assertTrue(b1.suite, 'telemetry_Crosperf')
+
+    # Test creating a benchmark field with default fields left out.
+    b2 = Benchmark('b2_test',  # name
+                   'octane',  # test_name
+                   '',  # test_args
+                   3,  # iterations
+                   False,  # rm_chroot_tmp
+                   'record -e cycles')  # perf_args
+    self.assertEqual(b2.suite, '')
+    self.assertFalse(b2.show_all_results)
+
+    # Test explicitly creating 'suite=Telemetry' and 'show_all_results=False"
+    # and see what happens.
+    b3 = Benchmark('b3_test',  # name
+                   'octane',  # test_name
+                   '',  # test_args
+                   3,  # iterations
+                   False,  # rm_chroot_tmp
+                   'record -e cycles',  # perf_args
+                   'telemetry',  # suite
+                   False)  # show_all_results
+    self.assertTrue(b3.show_all_results)
+
+    # Check to see if the args to Benchmark have changed since the last time
+    # this test was updated.
+    args_list = ['self', 'name', 'test_name', 'test_args', 'iterations',
+                 'rm_chroot_tmp', 'perf_args', 'suite', 'show_all_results',
+                 'retries', 'run_local']
+    arg_spec = inspect.getargspec(Benchmark.__init__)
+    self.assertEqual(len(arg_spec.args), len(args_list))
+    for arg in args_list:
+      self.assertIn(arg, arg_spec.args)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/column_chart.py b/crosperf/column_chart.py
new file mode 100644
index 0000000..7e6821d
--- /dev/null
+++ b/crosperf/column_chart.py
@@ -0,0 +1,59 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Module to draw column chart."""
+
+
+class ColumnChart(object):
+  """class to draw column chart."""
+
+  def __init__(self, title, width, height):
+    self.title = title
+    self.chart_div = filter(str.isalnum, title)
+    self.width = width
+    self.height = height
+    self.columns = []
+    self.rows = []
+    self.series = []
+
+  def AddSeries(self, column_name, series_type, color):
+    for i in range(len(self.columns)):
+      if column_name == self.columns[i][1]:
+        self.series.append((i - 1, series_type, color))
+        break
+
+  def AddColumn(self, name, column_type):
+    self.columns.append((column_type, name))
+
+  def AddRow(self, row):
+    self.rows.append(row)
+
+  def GetJavascript(self):
+    res = 'var data = new google.visualization.DataTable();\n'
+    for column in self.columns:
+      res += "data.addColumn('%s', '%s');\n" % column
+    res += 'data.addRows(%s);\n' % len(self.rows)
+    for row in range(len(self.rows)):
+      for column in range(len(self.columns)):
+        val = self.rows[row][column]
+        if isinstance(val, str):
+          val = "'%s'" % val
+        res += 'data.setValue(%s, %s, %s);\n' % (row, column, val)
+
+    series_javascript = ''
+    for series in self.series:
+      series_javascript += "%s: {type: '%s', color: '%s'}, " % series
+
+    chart_add_javascript = """
+var chart_%s = new google.visualization.ComboChart(
+  document.getElementById('%s'));
+chart_%s.draw(data, {width: %s, height: %s, title: '%s', legend: 'none',
+  seriesType: "bars", lineWidth: 0, pointSize: 5, series: {%s},
+  vAxis: {minValue: 0}})
+"""
+
+    res += chart_add_javascript % (self.chart_div, self.chart_div,
+                                   self.chart_div, self.width, self.height,
+                                   self.title, series_javascript)
+    return res
+
+  def GetDiv(self):
+    return "<div id='%s' class='chart'></div>" % self.chart_div
diff --git a/crosperf/compare_machines.py b/crosperf/compare_machines.py
new file mode 100644
index 0000000..0a61eeb
--- /dev/null
+++ b/crosperf/compare_machines.py
@@ -0,0 +1,64 @@
+# Copyright 2014 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Module to compare two machines."""
+
+from __future__ import print_function
+
+import os.path
+import sys
+import argparse
+
+from machine_manager import CrosMachine
+
+
+def PrintUsage(msg):
+  print(msg)
+  print('Usage: ')
+  print('\n compare_machines.py --chromeos_root=/path/to/chroot/ '
+        'machine1 machine2 ...')
+
+
+def Main(argv):
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('--chromeos_root',
+                      default='/path/to/chromeos',
+                      dest='chromeos_root',
+                      help='ChromeOS root checkout directory')
+  parser.add_argument('remotes', nargs=argparse.REMAINDER)
+
+  options = parser.parse_args(argv)
+
+  machine_list = options.remotes
+  if len(machine_list) < 2:
+    PrintUsage('ERROR: Must specify at least two machines.')
+    return 1
+  elif not os.path.exists(options.chromeos_root):
+    PrintUsage('Error: chromeos_root does not exist %s' % options.chromeos_root)
+    return 1
+
+  chroot = options.chromeos_root
+  cros_machines = []
+  test_machine_checksum = None
+  for m in machine_list:
+    cm = CrosMachine(m, chroot, 'average')
+    cros_machines = cros_machines + [cm]
+    test_machine_checksum = cm.machine_checksum
+
+  ret = 0
+  for cm in cros_machines:
+    print('checksum for %s : %s' % (cm.name, cm.machine_checksum))
+    if cm.machine_checksum != test_machine_checksum:
+      ret = 1
+      print('Machine checksums do not all match')
+
+  if ret == 0:
+    print('Machines all match.')
+
+  return ret
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/crosperf/config.py b/crosperf/config.py
new file mode 100644
index 0000000..7617566
--- /dev/null
+++ b/crosperf/config.py
@@ -0,0 +1,13 @@
+# Copyright 2011 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""A configure file."""
+config = {}
+
+
+def GetConfig(key):
+  return config.get(key)
+
+
+def AddConfig(key, value):
+  config[key] = value
diff --git a/crosperf/config_unittest.py b/crosperf/config_unittest.py
new file mode 100755
index 0000000..637dae9
--- /dev/null
+++ b/crosperf/config_unittest.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc. All Rights Reserved.
+"""Unit tests for config.py"""
+
+from __future__ import print_function
+
+import config
+
+import unittest
+
+
+class ConfigTestCase(unittest.TestCase):
+  """Class for the config unit tests."""
+
+  def test_config(self):
+    # Verify that config exists, that it's a dictionary, and that it's
+    # empty.
+    self.assertTrue(type(config.config) is dict)
+    self.assertEqual(len(config.config), 0)
+
+    # Verify that attempting to get a non-existant key out of the
+    # dictionary returns None.
+    self.assertIsNone(config.GetConfig('rabbit'))
+    self.assertIsNone(config.GetConfig('key1'))
+
+    config.AddConfig('key1', 16)
+    config.AddConfig('key2', 32)
+    config.AddConfig('key3', 'third value')
+
+    # Verify that after 3 calls to AddConfig we have 3 values in the
+    # dictionary.
+    self.assertEqual(len(config.config), 3)
+
+    # Verify that GetConfig works and gets the expected values.
+    self.assertIs(config.GetConfig('key2'), 32)
+    self.assertIs(config.GetConfig('key3'), 'third value')
+    self.assertIs(config.GetConfig('key1'), 16)
+
+    # Re-set config.
+    config.config.clear()
+
+    # Verify that config exists, that it's a dictionary, and that it's
+    # empty.
+    self.assertTrue(type(config.config) is dict)
+    self.assertEqual(len(config.config), 0)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/crosperf b/crosperf/crosperf
new file mode 100755
index 0000000..a29dcbf
--- /dev/null
+++ b/crosperf/crosperf
@@ -0,0 +1,2 @@
+#!/bin/bash
+PYTHONPATH=$(dirname $0)/..:$PYTHONPATH exec python $(dirname $0)/crosperf.py "$@"
diff --git a/crosperf/crosperf.py b/crosperf/crosperf.py
new file mode 100755
index 0000000..b78c8b9
--- /dev/null
+++ b/crosperf/crosperf.py
@@ -0,0 +1,144 @@
+#!/usr/bin/env python2
+
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""The driver script for running performance benchmarks on ChromeOS."""
+
+from __future__ import print_function
+
+import atexit
+import argparse
+import os
+import signal
+import sys
+from experiment_runner import ExperimentRunner
+from experiment_runner import MockExperimentRunner
+from experiment_factory import ExperimentFactory
+from experiment_file import ExperimentFile
+from settings_factory import GlobalSettings
+
+# This import causes pylint to warn about "No name 'logger' in module
+# 'cros_utils'". I do not understand why. The import works fine in python.
+# pylint: disable=no-name-in-module
+from cros_utils import logger
+
+import test_flag
+
+
+def SetupParserOptions(parser):
+  """Add all options to the parser."""
+  parser.add_argument(
+      '--dry_run',
+      dest='dry_run',
+      help=('Parse the experiment file and '
+            'show what will be done'),
+      action='store_true',
+      default=False)
+  # Allow each of the global fields to be overridden by passing in
+  # options. Add each global field as an option.
+  option_settings = GlobalSettings('')
+  for field_name in option_settings.fields:
+    field = option_settings.fields[field_name]
+    parser.add_argument(
+        '--%s' % field.name,
+        dest=field.name,
+        help=field.description,
+        action='store')
+
+
+def ConvertOptionsToSettings(options):
+  """Convert options passed in into global settings."""
+  option_settings = GlobalSettings('option_settings')
+  for option_name in options.__dict__:
+    if (options.__dict__[option_name] is not None and
+        option_name in option_settings.fields):
+      option_settings.SetField(option_name, options.__dict__[option_name])
+  return option_settings
+
+
+def Cleanup(experiment):
+  """Handler function which is registered to the atexit handler."""
+  experiment.Cleanup()
+
+
+def CallExitHandler(signum, _):
+  """Signal handler that transforms a signal into a call to exit.
+
+  This is useful because functionality registered by "atexit" will
+  be called. It also means you can "catch" the signal by catching
+  the SystemExit exception.
+  """
+  sys.exit(128 + signum)
+
+
+def RunCrosperf(argv):
+  parser = argparse.ArgumentParser()
+
+  parser.add_argument(
+      '--noschedv2',
+      dest='noschedv2',
+      default=False,
+      action='store_true',
+      help=('Do not use new scheduler. '
+            'Use original scheduler instead.'))
+  parser.add_argument(
+      '-l',
+      '--log_dir',
+      dest='log_dir',
+      default='',
+      help='The log_dir, default is under <crosperf_logs>/logs')
+
+  SetupParserOptions(parser)
+  options, args = parser.parse_known_args(argv)
+
+  # Convert the relevant options that are passed in into a settings
+  # object which will override settings in the experiment file.
+  option_settings = ConvertOptionsToSettings(options)
+  log_dir = os.path.abspath(os.path.expanduser(options.log_dir))
+  logger.GetLogger(log_dir)
+
+  if len(args) == 2:
+    experiment_filename = args[1]
+  else:
+    parser.error('Invalid number arguments.')
+
+  working_directory = os.getcwd()
+  if options.dry_run:
+    test_flag.SetTestMode(True)
+
+  experiment_file = ExperimentFile(
+      open(experiment_filename, 'rb'), option_settings)
+  if not experiment_file.GetGlobalSettings().GetField('name'):
+    experiment_name = os.path.basename(experiment_filename)
+    experiment_file.GetGlobalSettings().SetField('name', experiment_name)
+  experiment = ExperimentFactory().GetExperiment(experiment_file,
+                                                 working_directory, log_dir)
+
+  json_report = experiment_file.GetGlobalSettings().GetField('json_report')
+
+  signal.signal(signal.SIGTERM, CallExitHandler)
+  atexit.register(Cleanup, experiment)
+
+  if options.dry_run:
+    runner = MockExperimentRunner(experiment, json_report)
+  else:
+    runner = ExperimentRunner(
+        experiment, json_report, using_schedv2=(not options.noschedv2))
+
+  runner.Run()
+
+
+def Main(argv):
+  try:
+    RunCrosperf(argv)
+  except Exception as ex:
+    # Flush buffers before exiting to avoid out of order printing
+    sys.stdout.flush()
+    sys.stderr.flush()
+    print('Crosperf error: %s' % repr(ex))
+    sys.stdout.flush()
+    sys.stderr.flush()
+    sys.exit(1)
+
+
+if __name__ == '__main__':
+  Main(sys.argv)
diff --git a/crosperf/crosperf_test.py b/crosperf/crosperf_test.py
new file mode 100755
index 0000000..085efaf
--- /dev/null
+++ b/crosperf/crosperf_test.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python2
+
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Test for crosperf."""
+
+from __future__ import print_function
+
+import os
+import tempfile
+import unittest
+import crosperf
+from cros_utils.file_utils import FileUtils
+
+EXPERIMENT_FILE_1 = """
+  board: x86-alex
+  remote: chromeos-alex3
+
+  benchmark: PageCycler {
+    iterations: 3
+  }
+
+  image1 {
+    chromeos_image: /usr/local/google/cros_image1.bin
+  }
+
+  image2 {
+    chromeos_image: /usr/local/google/cros_image2.bin
+  }
+  """
+
+
+class CrosPerfTest(unittest.TestCase):
+  """Class to test Crosperf."""
+
+  def testDryRun(self):
+    filehandle, filename = tempfile.mkstemp()
+    os.write(filehandle, EXPERIMENT_FILE_1)
+    crosperf.Main(['', filename, '--dry_run'])
+    os.remove(filename)
+
+
+if __name__ == '__main__':
+  FileUtils.Configure(True)
+  unittest.main()
diff --git a/crosperf/crosperf_unittest.py b/crosperf/crosperf_unittest.py
new file mode 100755
index 0000000..4a46896
--- /dev/null
+++ b/crosperf/crosperf_unittest.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc. All Rights Reserved.
+"""Unittest for crosperf."""
+
+from __future__ import print_function
+
+import argparse
+import StringIO
+
+import unittest
+
+import crosperf
+import settings_factory
+import experiment_file
+
+EXPERIMENT_FILE_1 = """
+  board: x86-alex
+  remote: chromeos-alex3
+  perf_args: record -a -e cycles
+  benchmark: PageCycler {
+    iterations: 3
+  }
+
+  image1 {
+    chromeos_image: /usr/local/google/cros_image1.bin
+  }
+
+  image2 {
+    remote: chromeos-lumpy1
+    chromeos_image: /usr/local/google/cros_image2.bin
+  }
+  """
+
+
+class CrosperfTest(unittest.TestCase):
+  """Crosperf test class."""
+
+  def setUp(self):
+    input_file = StringIO.StringIO(EXPERIMENT_FILE_1)
+    self.exp_file = experiment_file.ExperimentFile(input_file)
+
+  def test_convert_options_to_settings(self):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('-l',
+                        '--log_dir',
+                        dest='log_dir',
+                        default='',
+                        help='The log_dir, default is under '
+                             '<crosperf_logs>/logs')
+    crosperf.SetupParserOptions(parser)
+    argv = ['crosperf/crosperf.py', 'temp.exp', '--rerun=True']
+    options, _ = parser.parse_known_args(argv)
+    settings = crosperf.ConvertOptionsToSettings(options)
+    self.assertIsNotNone(settings)
+    self.assertIsInstance(settings, settings_factory.GlobalSettings)
+    self.assertEqual(len(settings.fields), 25)
+    self.assertTrue(settings.GetField('rerun'))
+    argv = ['crosperf/crosperf.py', 'temp.exp']
+    options, _ = parser.parse_known_args(argv)
+    settings = crosperf.ConvertOptionsToSettings(options)
+    self.assertFalse(settings.GetField('rerun'))
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/default-telemetry-results.json b/crosperf/default-telemetry-results.json
new file mode 100644
index 0000000..7099ac7
--- /dev/null
+++ b/crosperf/default-telemetry-results.json
@@ -0,0 +1,174 @@
+{
+  "peacekeeper.html": [
+    "Total__Score", 
+    "workerContrast01__Score", 
+    "workerContrast02__Score"
+  ], 
+  "page_cycler_v2.intl_hi_ru": [
+    "cold_times__page_load_time", 
+    "warm_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "smoothness.tough_webgl_cases": [
+    "percentage_smooth__percentage_smooth", 
+    "percentage_smooth__summary"
+  ], 
+  "page_cycler_v2.intl_es_fr_pt-BR": [
+    "cold_times__page_load_time", 
+    "warm_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "dromaeo.jslibeventjquery": [
+    "jslib_event_jquery__jslib_event_jquery"
+  ], 
+  "browsermark": [
+    "Score__Score"
+  ], 
+  "smoothness.top_25": [
+    "frame_times__frame_times", 
+    "mean_frame_time__mean_frame_time"
+  ], 
+  "page_cycler_v2.morejs": [
+    "warm_times__page_load_time", 
+    "cold_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "page_cycler_v2.dhtml": [
+    "warm_times__page_load_time", 
+    "cold_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "page_cycler_v2.bloat": [
+    "warm_times__page_load_time", 
+    "cold_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "dromaeo.jslibstyleprototype": [
+    "jslib_style_prototype__jslib_style_prototype"
+  ], 
+  "dromaeo.jslibstylejquery": [
+    "jslib_style_jquery__jslib_style_jquery"
+  ], 
+  "dromaeo.jslibeventprototype": [
+    "jslib_event_prototype__jslib_event_prototype"
+  ], 
+  "page_cycler_v2.moz": [
+    "warm_times__page_load_time", 
+    "cold_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "speedometer": [
+    "Total__Total", 
+    "Total__summary"
+  ], 
+  "octane": [
+    "Total__Score"
+  ], 
+  "jsgamebench": [
+    "Score__Score"
+  ], 
+  "page_cycler_v2.indexed_db.basic_insert": [
+    "warm_times__page_load_time", 
+    "cold_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "spaceport": [
+    "Score__Score"
+  ], 
+  "dromaeo.jslibtraverseprototype": [
+    "jslib_traverse_prototype__jslib_traverse_prototype"
+  ], 
+  "page_cycler_v2.netsim.top_10": [
+    "cold_times__page_load_time", 
+    "warm_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "robohornet_pro": [
+    "Total__Total",
+    "Total__summary"
+  ], 
+  "dromaeo.domcoreattr": [
+    "dom_attr__dom_attr", 
+    "dom__summary"
+  ], 
+  "dromaeo.jslibattrprototype": [
+    "jslib_attr_prototype__jslib_attr_prototype"
+  ], 
+  "sunspider": [
+    "Total__Total",
+    "Total__summary"
+  ], 
+  "dromaeo.jslibattrjquery": [
+    "jslib_attr_jquery__jslib_attr_jquery"
+  ], 
+  "page_cycler_v2.typical_25": [
+    "warm_times-page_load_time__warm_times-page_load_time", 
+    "cold_times-page_load_time__cold_times-page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "dromaeo.domcoretraverse": [
+    "dom_traverse__dom_traverse",
+    "dom__summary"
+  ], 
+  "dromaeo.domcoremodify": [
+    "dom_modify__dom_modify", 
+    "dom__summary"
+  ], 
+  "page_cycler_v2.intl_ar_fa_he": [
+    "warm_times__page_load_time", 
+    "cold_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "page_cycler_v2.intl_ja_zh": [
+    "warm_times__page_load_time", 
+    "cold_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "graphics_WebGLAquarium": [
+    "avg_fps_1000_fishes",
+    "avg_fps_1000_fishes__summary"
+  ], 
+  "page_cycler_v2.intl_ko_th_vi": [
+    "warm_times__page_load_time", 
+    "cold_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "canvasmark": [
+    "Score__Score"
+  ], 
+  "dromaeo.domcorequery": [
+    "dom_query__dom_query",
+    "dom__summary"
+  ], 
+  "dromaeo.jslibtraversejquery": [
+    "jslib_traverse_jquery__jslib_traverse_jquery"
+  ], 
+  "dromaeo.jslibmodifyprototype": [
+    "jslib_modify_prototype__jslib_modify_prototype"
+  ], 
+  "page_cycler_v2.tough_layout_cases": [
+    "warm_times__page_load_time", 
+    "cold_times__page_load_time",
+    "pcv1-warm@@timeToOnload_avg__summary",
+    "pcv1-cold@@timeToOnload_avg__summary"
+  ], 
+  "kraken": [
+    "Total__Total", 
+    "Total__summary"
+  ], 
+  "dromaeo.jslibmodifyjquery": [
+    "jslib_modify_jquery__jslib_modify_jquery"
+  ]
+}
diff --git a/crosperf/default_remotes b/crosperf/default_remotes
new file mode 100644
index 0000000..619068f
--- /dev/null
+++ b/crosperf/default_remotes
@@ -0,0 +1,8 @@
+x86-alex  : chromeos2-row9-rack10-host1.cros  chromeos2-row9-rack10-host3.cros  chromeos2-row9-rack10-host5.cros
+lumpy     : chromeos2-row9-rack9-host9.cros   chromeos2-row9-rack9-host11.cros  chromeos2-row9-rack9-host13.cros
+parrot    : chromeos2-row9-rack9-host15.cros  chromeos2-row9-rack9-host17.cros  chromeos2-row9-rack9-host19.cros
+daisy     : chromeos2-row9-rack9-host3.cros   chromeos2-row9-rack9-host5.cros   chromeos2-row9-rack9-host7.cros
+peach_pit : chromeos2-row9-rack10-host13.cros chromeos2-row9-rack10-host15.cros chromeos2-row9-rack10-host17.cros
+peppy     : chromeos2-row9-rack10-host19.cros chromeos2-row9-rack10-host21.cros chromeos2-row9-rack9-host1.cros
+squawks   : chromeos2-row9-rack10-host7.cros  chromeos2-row9-rack10-host9.cros  chromeos2-row9-rack10-host11.cros
+elm       : chromeos2-row9-rack8-host19.cros  chromeos2-row9-rack8-host21.cros
diff --git a/crosperf/download_images.py b/crosperf/download_images.py
new file mode 100644
index 0000000..8ceaa87
--- /dev/null
+++ b/crosperf/download_images.py
@@ -0,0 +1,286 @@
+# Copyright (c) 2014-2015 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Download images from Cloud Storage."""
+
+from __future__ import print_function
+
+import ast
+import os
+
+import test_flag
+
+from cros_utils import command_executer
+
+GS_UTIL = 'chromium/tools/depot_tools/gsutil.py'
+
+
+class MissingImage(Exception):
+  """Raised when the requested image does not exist in gs://"""
+
+
+class MissingFile(Exception):
+  """Raised when the requested file does not exist in gs://"""
+
+
+class RunCommandExceptionHandler(object):
+  """Handle Exceptions from calls to RunCommand"""
+
+  def __init__(self, logger_to_use, log_level, cmd_exec, command):
+    self.logger = logger_to_use
+    self.log_level = log_level
+    self.ce = cmd_exec
+    self.cleanup_command = command
+
+  def HandleException(self, _, e):
+    # Exception handler, Run specified command
+    if self.log_level != 'verbose' and self.cleanup_command is not None:
+      self.logger.LogOutput('CMD: %s' % self.cleanup_command)
+    if self.cleanup_command is not None:
+      _ = self.ce.RunCommand(self.cleanup_command)
+    # Raise exception again
+    raise e
+
+
+class ImageDownloader(object):
+  """Download images from Cloud Storage."""
+
+  def __init__(self, logger_to_use=None, log_level='verbose', cmd_exec=None):
+    self._logger = logger_to_use
+    self.log_level = log_level
+    self._ce = cmd_exec or command_executer.GetCommandExecuter(
+        self._logger, log_level=self.log_level)
+
+  def GetBuildID(self, chromeos_root, xbuddy_label):
+    # Get the translation of the xbuddy_label into the real Google Storage
+    # image name.
+    command = ('cd ~/trunk/src/third_party/toolchain-utils/crosperf; '
+               "python translate_xbuddy.py '%s'" % xbuddy_label)
+    _, build_id_tuple_str, _ = self._ce.ChrootRunCommandWOutput(chromeos_root,
+                                                                command)
+    if not build_id_tuple_str:
+      raise MissingImage("Unable to find image for '%s'" % xbuddy_label)
+
+    build_id_tuple = ast.literal_eval(build_id_tuple_str)
+    build_id = build_id_tuple[0]
+
+    return build_id
+
+  def DownloadImage(self, chromeos_root, build_id, image_name):
+    if self.log_level == 'average':
+      self._logger.LogOutput('Preparing to download %s image to local '
+                             'directory.' % build_id)
+
+    # Make sure the directory for downloading the image exists.
+    download_path = os.path.join(chromeos_root, 'chroot/tmp', build_id)
+    image_path = os.path.join(download_path, 'chromiumos_test_image.bin')
+    if not os.path.exists(download_path):
+      os.makedirs(download_path)
+
+    # Check to see if the image has already been downloaded.  If not,
+    # download the image.
+    if not os.path.exists(image_path):
+      gsutil_cmd = os.path.join(chromeos_root, GS_UTIL)
+      command = '%s cp %s %s' % (gsutil_cmd, image_name, download_path)
+
+      if self.log_level != 'verbose':
+        self._logger.LogOutput('CMD: %s' % command)
+      status = self._ce.RunCommand(command)
+      downloaded_image_name = os.path.join(download_path,
+                                           'chromiumos_test_image.tar.xz')
+      if status != 0 or not os.path.exists(downloaded_image_name):
+        raise MissingImage('Cannot download image: %s.' % downloaded_image_name)
+
+    return image_path
+
+  def UncompressImage(self, chromeos_root, build_id):
+    # Check to see if the file has already been uncompresssed, etc.
+    if os.path.exists(
+        os.path.join(chromeos_root, 'chroot/tmp', build_id,
+                     'chromiumos_test_image.bin')):
+      return
+
+    # Uncompress and untar the downloaded image.
+    download_path = os.path.join(chromeos_root, 'chroot/tmp', build_id)
+    command = ('cd %s ; tar -Jxf chromiumos_test_image.tar.xz ' % download_path)
+    # Cleanup command for exception handler
+    clean_cmd = ('cd %s ; rm -f chromiumos_test_image.bin ' % download_path)
+    exception_handler = RunCommandExceptionHandler(self._logger, self.log_level,
+                                                   self._ce, clean_cmd)
+    if self.log_level != 'verbose':
+      self._logger.LogOutput('CMD: %s' % command)
+      print('(Uncompressing and un-tarring may take a couple of minutes...'
+            'please be patient.)')
+    retval = self._ce.RunCommand(
+        command, except_handler=exception_handler.HandleException)
+    if retval != 0:
+      if self.log_level != 'verbose':
+        self._logger.LogOutput('CMD: %s' % clean_cmd)
+        print('(Removing file chromiumos_test_image.bin.)')
+      # Remove partially uncompressed file
+      _ = self._ce.RunCommand(clean_cmd)
+      # Raise exception for failure to uncompress
+      raise MissingImage('Cannot uncompress image: %s.' % build_id)
+
+    # Remove compressed image
+    command = ('cd %s ; rm -f chromiumos_test_image.tar.xz; ' % download_path)
+    if self.log_level != 'verbose':
+      self._logger.LogOutput('CMD: %s' % command)
+      print('(Removing file chromiumos_test_image.tar.xz.)')
+    # try removing file, its ok to have an error, print if encountered
+    retval = self._ce.RunCommand(command)
+    if retval != 0:
+      print('(Warning: Could not remove file chromiumos_test_image.tar.xz .)')
+
+  def DownloadSingleAutotestFile(self, chromeos_root, build_id,
+                                 package_file_name):
+    # Verify if package files exist
+    status = 0
+    gs_package_name = ('gs://chromeos-image-archive/%s/%s' %
+                       (build_id, package_file_name))
+    gsutil_cmd = os.path.join(chromeos_root, GS_UTIL)
+    if not test_flag.GetTestMode():
+      cmd = '%s ls %s' % (gsutil_cmd, gs_package_name)
+      status = self._ce.RunCommand(cmd)
+    if status != 0:
+      raise MissingFile('Cannot find autotest package file: %s.' %
+                        package_file_name)
+
+    if self.log_level == 'average':
+      self._logger.LogOutput('Preparing to download %s package to local '
+                             'directory.' % package_file_name)
+
+    # Make sure the directory for downloading the package exists.
+    download_path = os.path.join(chromeos_root, 'chroot/tmp', build_id)
+    package_path = os.path.join(download_path, package_file_name)
+    if not os.path.exists(download_path):
+      os.makedirs(download_path)
+
+    # Check to see if the package file has already been downloaded.  If not,
+    # download it.
+    if not os.path.exists(package_path):
+      command = '%s cp %s %s' % (gsutil_cmd, gs_package_name, download_path)
+
+      if self.log_level != 'verbose':
+        self._logger.LogOutput('CMD: %s' % command)
+      status = self._ce.RunCommand(command)
+      if status != 0 or not os.path.exists(package_path):
+        raise MissingFile('Cannot download package: %s .' % package_path)
+
+  def UncompressSingleAutotestFile(self, chromeos_root, build_id,
+                                   package_file_name, uncompress_cmd):
+    # Uncompress file
+    download_path = os.path.join(chromeos_root, 'chroot/tmp', build_id)
+    command = ('cd %s ; %s %s' %
+               (download_path, uncompress_cmd, package_file_name))
+
+    if self.log_level != 'verbose':
+      self._logger.LogOutput('CMD: %s' % command)
+      print('(Uncompressing autotest file %s .)' % package_file_name)
+    retval = self._ce.RunCommand(command)
+    if retval != 0:
+      raise MissingFile('Cannot uncompress file: %s.' % package_file_name)
+    # Remove uncompressed downloaded file
+    command = ('cd %s ; rm -f %s' % (download_path, package_file_name))
+    if self.log_level != 'verbose':
+      self._logger.LogOutput('CMD: %s' % command)
+      print('(Removing processed autotest file %s .)' % package_file_name)
+    # try removing file, its ok to have an error, print if encountered
+    retval = self._ce.RunCommand(command)
+    if retval != 0:
+      print('(Warning: Could not remove file %s .)' % package_file_name)
+
+  def VerifyAutotestFilesExist(self, chromeos_root, build_id, package_file):
+    # Quickly verify if the files are there
+    status = 0
+    gs_package_name = ('gs://chromeos-image-archive/%s/%s' %
+                       (build_id, package_file))
+    gsutil_cmd = os.path.join(chromeos_root, GS_UTIL)
+    if not test_flag.GetTestMode():
+      cmd = '%s ls %s' % (gsutil_cmd, gs_package_name)
+      if self.log_level != 'verbose':
+        self._logger.LogOutput('CMD: %s' % cmd)
+      status = self._ce.RunCommand(cmd)
+      if status != 0:
+        print('(Warning: Could not find file %s )' % gs_package_name)
+        return 1
+    # Package exists on server
+    return 0
+
+  def DownloadAutotestFiles(self, chromeos_root, build_id):
+    # Download autest package files (3 files)
+    autotest_packages_name = ('autotest_packages.tar')
+    autotest_server_package_name = ('autotest_server_package.tar.bz2')
+    autotest_control_files_name = ('control_files.tar')
+
+    download_path = os.path.join(chromeos_root, 'chroot/tmp', build_id)
+    # Autotest directory relative path wrt chroot
+    autotest_rel_path = os.path.join('/tmp', build_id, 'autotest_files')
+    # Absolute Path to download files
+    autotest_path = os.path.join(chromeos_root, 'chroot/tmp', build_id,
+                                 'autotest_files')
+
+    if not os.path.exists(autotest_path):
+      # Quickly verify if the files are present on server
+      # If not, just exit with warning
+      status = self.VerifyAutotestFilesExist(chromeos_root, build_id,
+                                             autotest_packages_name)
+      if status != 0:
+        default_autotest_dir = '~/trunk/src/third_party/autotest/files'
+        print('(Warning: Could not find autotest packages .)\n'
+              '(Warning: Defaulting autotest path to %s .' %
+              default_autotest_dir)
+        return default_autotest_dir
+
+      # Files exist on server, download and uncompress them
+      self.DownloadSingleAutotestFile(chromeos_root, build_id,
+                                      autotest_packages_name)
+      self.DownloadSingleAutotestFile(chromeos_root, build_id,
+                                      autotest_server_package_name)
+      self.DownloadSingleAutotestFile(chromeos_root, build_id,
+                                      autotest_control_files_name)
+
+      self.UncompressSingleAutotestFile(chromeos_root, build_id,
+                                        autotest_packages_name, 'tar -xvf ')
+      self.UncompressSingleAutotestFile(chromeos_root, build_id,
+                                        autotest_server_package_name,
+                                        'tar -jxvf ')
+      self.UncompressSingleAutotestFile(chromeos_root, build_id,
+                                        autotest_control_files_name,
+                                        'tar -xvf ')
+      # Rename created autotest directory to autotest_files
+      command = ('cd %s ; mv autotest autotest_files' % download_path)
+      if self.log_level != 'verbose':
+        self._logger.LogOutput('CMD: %s' % command)
+        print('(Moving downloaded autotest files to autotest_files)')
+      retval = self._ce.RunCommand(command)
+      if retval != 0:
+        raise MissingFile('Could not create directory autotest_files')
+
+    return autotest_rel_path
+
+  def Run(self, chromeos_root, xbuddy_label, autotest_path):
+    build_id = self.GetBuildID(chromeos_root, xbuddy_label)
+    image_name = ('gs://chromeos-image-archive/%s/chromiumos_test_image.tar.xz'
+                  % build_id)
+
+    # Verify that image exists for build_id, before attempting to
+    # download it.
+    status = 0
+    if not test_flag.GetTestMode():
+      gsutil_cmd = os.path.join(chromeos_root, GS_UTIL)
+      cmd = '%s ls %s' % (gsutil_cmd, image_name)
+      status = self._ce.RunCommand(cmd)
+    if status != 0:
+      raise MissingImage('Cannot find official image: %s.' % image_name)
+
+    image_path = self.DownloadImage(chromeos_root, build_id, image_name)
+    self.UncompressImage(chromeos_root, build_id)
+
+    if self.log_level != 'quiet':
+      self._logger.LogOutput('Using image from %s.' % image_path)
+
+    if autotest_path == '':
+      autotest_path = self.DownloadAutotestFiles(chromeos_root, build_id)
+
+    return image_path, autotest_path
diff --git a/crosperf/download_images_buildid_test.py b/crosperf/download_images_buildid_test.py
new file mode 100755
index 0000000..3e7f00c
--- /dev/null
+++ b/crosperf/download_images_buildid_test.py
@@ -0,0 +1,111 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc.  All Rights Reserved
+"""Test translation of xbuddy names."""
+
+from __future__ import print_function
+
+import argparse
+import sys
+
+import download_images
+
+#On May 1, 2014:
+#latest         : lumpy-release/R34-5500.132.0
+#latest-beta    : lumpy-release/R35-5712.43.0
+#latest-official: lumpy-release/R36-5814.0.0
+#latest-dev     : lumpy-release/R36-5814.0.0
+#latest-canary  : lumpy-release/R36-5814.0.0
+
+
+class ImageDownloaderBuildIDTest(object):
+  """Test translation of xbuddy names."""
+
+  def __init__(self):
+    parser = argparse.ArgumentParser()
+    parser.add_argument(
+        '-c',
+        '--chromeos_root',
+        dest='chromeos_root',
+        help='Directory containing ChromeOS root.')
+
+    options = parser.parse_known_args(sys.argv[1:])[0]
+    if options.chromeos_root is None:
+      self._usage(parser, '--chromeos_root must be set')
+    self.chromeos_root = options.chromeos_root
+    self.tests_passed = 0
+    self.tests_run = 0
+    self.tests_failed = 0
+
+  def _usage(self, parser, message):
+    print('ERROR: ' + message)
+    parser.print_help()
+    sys.exit(0)
+
+  def print_test_status(self):
+    print('----------------------------------------\n')
+    print('Tests attempted: %d' % self.tests_run)
+    print('Tests passed:    %d' % self.tests_passed)
+    print('Tests failed:    %d' % self.tests_failed)
+    print('\n----------------------------------------')
+
+  def assert_failure(self, msg):
+    print('Assert failure: %s' % msg)
+    self.print_test_status()
+    sys.exit(1)
+
+  def assertIsNotNone(self, arg, arg_name):
+    if arg == None:
+      self.tests_failed = self.tests_failed + 1
+      self.assert_failure('%s is not None' % arg_name)
+
+  def assertNotEqual(self, arg1, arg2, arg1_name, arg2_name):
+    if arg1 == arg2:
+      self.tests_failed = self.tests_failed + 1
+      self.assert_failure('%s is not NotEqual to %s' % (arg1_name, arg2_name))
+
+  def assertEqual(self, arg1, arg2, arg1_name, arg2_name):
+    if arg1 != arg2:
+      self.tests_failed = self.tests_failed + 1
+      self.assert_failure('%s is not Equal to %s' % (arg1_name, arg2_name))
+
+  def test_one_id(self, downloader, test_id, result_string, exact_match):
+    print("Translating '%s'" % test_id)
+    self.tests_run = self.tests_run + 1
+
+    result = downloader.GetBuildID(self.chromeos_root, test_id)
+    # Verify that we got a build id back.
+    self.assertIsNotNone(result, 'result')
+
+    # Verify that the result either contains or exactly matches the
+    # result_string, depending on the exact_match argument.
+    if exact_match:
+      self.assertEqual(result, result_string, 'result', result_string)
+    else:
+      self.assertNotEqual(result.find(result_string), -1, 'result.find', '-1')
+    self.tests_passed = self.tests_passed + 1
+
+  def test_get_build_id(self):
+    """Test that the actual translating of xbuddy names is working properly."""
+    downloader = download_images.ImageDownloader(log_level='quiet')
+
+    self.test_one_id(downloader, 'remote/lumpy/latest-dev', 'lumpy-release/R',
+                     False)
+    self.test_one_id(downloader,
+                     'remote/trybot-lumpy-release-afdo-use/R35-5672.0.0-b86',
+                     'trybot-lumpy-release-afdo-use/R35-5672.0.0-b86', True)
+    self.test_one_id(downloader, 'remote/lumpy-release/R35-5672.0.0',
+                     'lumpy-release/R35-5672.0.0', True)
+    self.test_one_id(downloader, 'remote/lumpy/latest-dev', 'lumpy-release/R',
+                     False)
+    self.test_one_id(downloader, 'remote/lumpy/latest-official',
+                     'lumpy-release/R', False)
+    self.test_one_id(downloader, 'remote/lumpy/latest-beta', 'lumpy-release/R',
+                     False)
+
+    self.print_test_status()
+
+
+if __name__ == '__main__':
+  tester = ImageDownloaderBuildIDTest()
+  tester.test_get_build_id()
diff --git a/crosperf/download_images_unittest.py b/crosperf/download_images_unittest.py
new file mode 100755
index 0000000..7a4f385
--- /dev/null
+++ b/crosperf/download_images_unittest.py
@@ -0,0 +1,251 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc.  All Rights Reserved
+"""Download image unittest."""
+
+from __future__ import print_function
+
+import os
+import mock
+import unittest
+
+import download_images
+from cros_utils import command_executer
+from cros_utils import logger
+
+import test_flag
+
+MOCK_LOGGER = logger.GetLogger(log_dir='', mock=True)
+
+
+class ImageDownloaderTestcast(unittest.TestCase):
+  """The image downloader test class."""
+
+  def __init__(self, *args, **kwargs):
+    super(ImageDownloaderTestcast, self).__init__(*args, **kwargs)
+    self.called_download_image = False
+    self.called_uncompress_image = False
+    self.called_get_build_id = False
+    self.called_download_autotest_files = False
+
+  @mock.patch.object(os, 'makedirs')
+  @mock.patch.object(os.path, 'exists')
+  def test_download_image(self, mock_path_exists, mock_mkdirs):
+
+    # Set mock and test values.
+    mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
+    test_chroot = '/usr/local/home/chromeos'
+    test_build_id = 'lumpy-release/R36-5814.0.0'
+    image_path = ('gs://chromeos-image-archive/%s/chromiumos_test_image.tar.xz'
+                  % test_build_id)
+
+    downloader = download_images.ImageDownloader(
+        logger_to_use=MOCK_LOGGER, cmd_exec=mock_cmd_exec)
+
+    # Set os.path.exists to always return False and run downloader
+    mock_path_exists.return_value = False
+    test_flag.SetTestMode(True)
+    self.assertRaises(download_images.MissingImage, downloader.DownloadImage,
+                      test_chroot, test_build_id, image_path)
+
+    # Verify os.path.exists was called twice, with proper arguments.
+    self.assertEqual(mock_path_exists.call_count, 2)
+    mock_path_exists.assert_called_with(
+        '/usr/local/home/chromeos/chroot/tmp/lumpy-release/'
+        'R36-5814.0.0/chromiumos_test_image.bin')
+    mock_path_exists.assert_any_call(
+        '/usr/local/home/chromeos/chroot/tmp/lumpy-release/R36-5814.0.0')
+
+    # Verify we called os.mkdirs
+    self.assertEqual(mock_mkdirs.call_count, 1)
+    mock_mkdirs.assert_called_with(
+        '/usr/local/home/chromeos/chroot/tmp/lumpy-release/R36-5814.0.0')
+
+    # Verify we called RunCommand once, with proper arguments.
+    self.assertEqual(mock_cmd_exec.RunCommand.call_count, 1)
+    expected_args = (
+        '/usr/local/home/chromeos/chromium/tools/depot_tools/gsutil.py '
+        'cp gs://chromeos-image-archive/lumpy-release/R36-5814.0.0/'
+        'chromiumos_test_image.tar.xz '
+        '/usr/local/home/chromeos/chroot/tmp/lumpy-release/R36-5814.0.0')
+
+    mock_cmd_exec.RunCommand.assert_called_with(expected_args)
+
+    # Reset the velues in the mocks; set os.path.exists to always return True.
+    mock_path_exists.reset_mock()
+    mock_cmd_exec.reset_mock()
+    mock_path_exists.return_value = True
+
+    # Run downloader
+    downloader.DownloadImage(test_chroot, test_build_id, image_path)
+
+    # Verify os.path.exists was called twice, with proper arguments.
+    self.assertEqual(mock_path_exists.call_count, 2)
+    mock_path_exists.assert_called_with(
+        '/usr/local/home/chromeos/chroot/tmp/lumpy-release/'
+        'R36-5814.0.0/chromiumos_test_image.bin')
+    mock_path_exists.assert_any_call(
+        '/usr/local/home/chromeos/chroot/tmp/lumpy-release/R36-5814.0.0')
+
+    # Verify we made no RunCommand or ChrootRunCommand calls (since
+    # os.path.exists returned True, there was no work do be done).
+    self.assertEqual(mock_cmd_exec.RunCommand.call_count, 0)
+    self.assertEqual(mock_cmd_exec.ChrootRunCommand.call_count, 0)
+
+  @mock.patch.object(os.path, 'exists')
+  def test_uncompress_image(self, mock_path_exists):
+
+    # set mock and test values.
+    mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
+    test_chroot = '/usr/local/home/chromeos'
+    test_build_id = 'lumpy-release/R36-5814.0.0'
+
+    downloader = download_images.ImageDownloader(
+        logger_to_use=MOCK_LOGGER, cmd_exec=mock_cmd_exec)
+
+    # Set os.path.exists to always return False and run uncompress.
+    mock_path_exists.return_value = False
+    self.assertRaises(download_images.MissingImage, downloader.UncompressImage,
+                      test_chroot, test_build_id)
+
+    # Verify os.path.exists was called once, with correct arguments.
+    self.assertEqual(mock_path_exists.call_count, 1)
+    mock_path_exists.assert_called_with(
+        '/usr/local/home/chromeos/chroot/tmp/lumpy-release/'
+        'R36-5814.0.0/chromiumos_test_image.bin')
+
+    # Verify RunCommand was called twice with correct arguments.
+    self.assertEqual(mock_cmd_exec.RunCommand.call_count, 2)
+    # Call 1, should have 2 arguments
+    self.assertEqual(len(mock_cmd_exec.RunCommand.call_args_list[0]), 2)
+    actual_arg = mock_cmd_exec.RunCommand.call_args_list[0][0]
+    expected_arg = (
+        'cd /usr/local/home/chromeos/chroot/tmp/lumpy-release/R36-5814.0.0 ; '
+        'tar -Jxf chromiumos_test_image.tar.xz ',)
+    self.assertEqual(expected_arg, actual_arg)
+    # 2nd arg must be exception handler
+    except_handler_string = 'RunCommandExceptionHandler.HandleException'
+    self.assertTrue(
+        except_handler_string in
+        repr(mock_cmd_exec.RunCommand.call_args_list[0][1]))
+
+    # Call 2, should have 2 arguments
+    self.assertEqual(len(mock_cmd_exec.RunCommand.call_args_list[1]), 2)
+    actual_arg = mock_cmd_exec.RunCommand.call_args_list[1][0]
+    expected_arg = (
+        'cd /usr/local/home/chromeos/chroot/tmp/lumpy-release/R36-5814.0.0 ; '
+        'rm -f chromiumos_test_image.bin ',)
+    self.assertEqual(expected_arg, actual_arg)
+    # 2nd arg must be empty
+    self.assertTrue('{}' in repr(mock_cmd_exec.RunCommand.call_args_list[1][1]))
+
+    # Set os.path.exists to always return True and run uncompress.
+    mock_path_exists.reset_mock()
+    mock_cmd_exec.reset_mock()
+    mock_path_exists.return_value = True
+    downloader.UncompressImage(test_chroot, test_build_id)
+
+    # Verify os.path.exists was called once, with correct arguments.
+    self.assertEqual(mock_path_exists.call_count, 1)
+    mock_path_exists.assert_called_with(
+        '/usr/local/home/chromeos/chroot/tmp/lumpy-release/'
+        'R36-5814.0.0/chromiumos_test_image.bin')
+
+    # Verify RunCommand was not called.
+    self.assertEqual(mock_cmd_exec.RunCommand.call_count, 0)
+
+  def test_run(self):
+
+    # Set test arguments
+    test_chroot = '/usr/local/home/chromeos'
+    test_build_id = 'remote/lumpy/latest-dev'
+    test_empty_autotest_path = ''
+    test_autotest_path = '/tmp/autotest'
+
+    # Set values to test/check.
+    self.called_download_image = False
+    self.called_uncompress_image = False
+    self.called_get_build_id = False
+    self.called_download_autotest_files = False
+
+    # Define fake stub functions for Run to call
+    def FakeGetBuildID(unused_root, unused_xbuddy_label):
+      self.called_get_build_id = True
+      return 'lumpy-release/R36-5814.0.0'
+
+    def GoodDownloadImage(root, build_id, image_path):
+      if root or build_id or image_path:
+        pass
+      self.called_download_image = True
+      return 'chromiumos_test_image.bin'
+
+    def BadDownloadImage(root, build_id, image_path):
+      if root or build_id or image_path:
+        pass
+      self.called_download_image = True
+      raise download_images.MissingImage('Could not download image')
+
+    def FakeUncompressImage(root, build_id):
+      if root or build_id:
+        pass
+      self.called_uncompress_image = True
+      return 0
+
+    def FakeDownloadAutotestFiles(root, build_id):
+      if root or build_id:
+        pass
+      self.called_download_autotest_files = True
+      return 'autotest'
+
+    # Initialize downloader
+    downloader = download_images.ImageDownloader(logger_to_use=MOCK_LOGGER)
+
+    # Set downloader to call fake stubs.
+    downloader.GetBuildID = FakeGetBuildID
+    downloader.UncompressImage = FakeUncompressImage
+    downloader.DownloadImage = GoodDownloadImage
+    downloader.DownloadAutotestFiles = FakeDownloadAutotestFiles
+
+    # Call Run.
+    image_path, autotest_path = downloader.Run(test_chroot, test_build_id,
+                                               test_empty_autotest_path)
+
+    # Make sure it called both _DownloadImage and _UncompressImage
+    self.assertTrue(self.called_download_image)
+    self.assertTrue(self.called_uncompress_image)
+    # Make sure it called DownloadAutotestFiles
+    self.assertTrue(self.called_download_autotest_files)
+    # Make sure it returned an image and  autotest path returned from this call
+    self.assertTrue(image_path == 'chromiumos_test_image.bin')
+    self.assertTrue(autotest_path == 'autotest')
+
+    # Call Run with a non-empty autotest path
+    self.called_download_autotest_files = False
+
+    image_path, autotest_path = downloader.Run(test_chroot, test_build_id,
+                                               test_autotest_path)
+
+    # Verify that downloadAutotestFiles was not called
+    self.assertFalse(self.called_download_autotest_files)
+    # Make sure it returned the specified autotest path returned from this call
+    self.assertTrue(autotest_path == test_autotest_path)
+
+    # Reset values; Now use fake stub that simulates DownloadImage failing.
+    self.called_download_image = False
+    self.called_uncompress_image = False
+    self.called_download_autotest_files = False
+    downloader.DownloadImage = BadDownloadImage
+
+    # Call Run again.
+    self.assertRaises(download_images.MissingImage, downloader.Run, test_chroot,
+                      test_autotest_path, test_build_id)
+
+    # Verify that UncompressImage and downloadAutotestFiles were not called,
+    # since _DownloadImage "failed"
+    self.assertTrue(self.called_download_image)
+    self.assertFalse(self.called_uncompress_image)
+    self.assertFalse(self.called_download_autotest_files)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/experiment.py b/crosperf/experiment.py
new file mode 100644
index 0000000..dbcde21
--- /dev/null
+++ b/crosperf/experiment.py
@@ -0,0 +1,212 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""The experiment setting module."""
+
+from __future__ import print_function
+
+import os
+import time
+
+import afe_lock_machine
+from threading import Lock
+
+from cros_utils import logger
+from cros_utils import misc
+
+import benchmark_run
+from machine_manager import BadChecksum
+from machine_manager import MachineManager
+from machine_manager import MockMachineManager
+import test_flag
+
+
+class Experiment(object):
+  """Class representing an Experiment to be run."""
+
+  def __init__(self, name, remote, working_directory, chromeos_root,
+               cache_conditions, labels, benchmarks, experiment_file, email_to,
+               acquire_timeout, log_dir, log_level, share_cache,
+               results_directory, locks_directory):
+    self.name = name
+    self.working_directory = working_directory
+    self.remote = remote
+    self.chromeos_root = chromeos_root
+    self.cache_conditions = cache_conditions
+    self.experiment_file = experiment_file
+    self.email_to = email_to
+    if not results_directory:
+      self.results_directory = os.path.join(self.working_directory,
+                                            self.name + '_results')
+    else:
+      self.results_directory = misc.CanonicalizePath(results_directory)
+    self.log_dir = log_dir
+    self.log_level = log_level
+    self.labels = labels
+    self.benchmarks = benchmarks
+    self.num_complete = 0
+    self.num_run_complete = 0
+    self.share_cache = share_cache
+    self.active_threads = []
+    # If locks_directory (self.lock_dir) not blank, we will use the file
+    # locking mechanism; if it is blank then we will use the AFE server
+    # locking mechanism.
+    self.locks_dir = locks_directory
+    self.locked_machines = []
+
+    if not remote:
+      raise RuntimeError('No remote hosts specified')
+    if not self.benchmarks:
+      raise RuntimeError('No benchmarks specified')
+    if not self.labels:
+      raise RuntimeError('No labels specified')
+
+    # We need one chromeos_root to run the benchmarks in, but it doesn't
+    # matter where it is, unless the ABIs are different.
+    if not chromeos_root:
+      for label in self.labels:
+        if label.chromeos_root:
+          chromeos_root = label.chromeos_root
+          break
+    if not chromeos_root:
+      raise RuntimeError('No chromeos_root given and could not determine '
+                         'one from the image path.')
+
+    machine_manager_fn = MachineManager
+    if test_flag.GetTestMode():
+      machine_manager_fn = MockMachineManager
+    self.machine_manager = machine_manager_fn(chromeos_root, acquire_timeout,
+                                              log_level, locks_directory)
+    self.l = logger.GetLogger(log_dir)
+
+    for machine in self.remote:
+      # machine_manager.AddMachine only adds reachable machines.
+      self.machine_manager.AddMachine(machine)
+    # Now machine_manager._all_machines contains a list of reachable
+    # machines. This is a subset of self.remote. We make both lists the same.
+    self.remote = [m.name for m in self.machine_manager.GetAllMachines()]
+    if not self.remote:
+      raise RuntimeError('No machine available for running experiment.')
+
+    for label in labels:
+      # We filter out label remotes that are not reachable (not in
+      # self.remote). So each label.remote is a sublist of experiment.remote.
+      label.remote = [r for r in label.remote if r in self.remote]
+      try:
+        self.machine_manager.ComputeCommonCheckSum(label)
+      except BadChecksum:
+        # Force same image on all machines, then we do checksum again. No
+        # bailout if checksums still do not match.
+        self.machine_manager.ForceSameImageToAllMachines(label)
+        self.machine_manager.ComputeCommonCheckSum(label)
+
+      self.machine_manager.ComputeCommonCheckSumString(label)
+
+    self.start_time = None
+    self.benchmark_runs = self._GenerateBenchmarkRuns()
+
+    self._schedv2 = None
+    self._internal_counter_lock = Lock()
+
+  def set_schedv2(self, schedv2):
+    self._schedv2 = schedv2
+
+  def schedv2(self):
+    return self._schedv2
+
+  def _GenerateBenchmarkRuns(self):
+    """Generate benchmark runs from labels and benchmark defintions."""
+    benchmark_runs = []
+    for label in self.labels:
+      for benchmark in self.benchmarks:
+        for iteration in xrange(1, benchmark.iterations + 1):
+
+          benchmark_run_name = '%s: %s (%s)' % (label.name, benchmark.name,
+                                                iteration)
+          full_name = '%s_%s_%s' % (label.name, benchmark.name, iteration)
+          logger_to_use = logger.Logger(self.log_dir, 'run.%s' % (full_name),
+                                        True)
+          benchmark_runs.append(benchmark_run.BenchmarkRun(
+              benchmark_run_name, benchmark, label, iteration,
+              self.cache_conditions, self.machine_manager, logger_to_use,
+              self.log_level, self.share_cache))
+
+    return benchmark_runs
+
+  def Build(self):
+    pass
+
+  def Terminate(self):
+    if self._schedv2 is not None:
+      self._schedv2.terminate()
+    else:
+      for t in self.benchmark_runs:
+        if t.isAlive():
+          self.l.LogError("Terminating run: '%s'." % t.name)
+          t.Terminate()
+
+  def IsComplete(self):
+    if self._schedv2:
+      return self._schedv2.is_complete()
+    if self.active_threads:
+      for t in self.active_threads:
+        if t.isAlive():
+          t.join(0)
+        if not t.isAlive():
+          self.num_complete += 1
+          if not t.cache_hit:
+            self.num_run_complete += 1
+          self.active_threads.remove(t)
+      return False
+    return True
+
+  def BenchmarkRunFinished(self, br):
+    """Update internal counters after br finishes.
+
+    Note this is only used by schedv2 and is called by multiple threads.
+    Never throw any exception here.
+    """
+
+    assert self._schedv2 is not None
+    with self._internal_counter_lock:
+      self.num_complete += 1
+      if not br.cache_hit:
+        self.num_run_complete += 1
+
+  def Run(self):
+    self.start_time = time.time()
+    if self._schedv2 is not None:
+      self._schedv2.run_sched()
+    else:
+      self.active_threads = []
+      for run in self.benchmark_runs:
+        # Set threads to daemon so program exits when ctrl-c is pressed.
+        run.daemon = True
+        run.start()
+        self.active_threads.append(run)
+
+  def SetCacheConditions(self, cache_conditions):
+    for run in self.benchmark_runs:
+      run.SetCacheConditions(cache_conditions)
+
+  def Cleanup(self):
+    """Make sure all machines are unlocked."""
+    if self.locks_dir:
+      # We are using the file locks mechanism, so call machine_manager.Cleanup
+      # to unlock everything.
+      self.machine_manager.Cleanup()
+    else:
+      if test_flag.GetTestMode():
+        return
+
+      all_machines = self.locked_machines
+      if not all_machines:
+        return
+
+      # If we locked any machines earlier, make sure we unlock them now.
+      lock_mgr = afe_lock_machine.AFELockManager(
+          all_machines, '', self.labels[0].chromeos_root, None)
+      machine_states = lock_mgr.GetMachineStates('unlock')
+      for k, state in machine_states.iteritems():
+        if state['locked']:
+          lock_mgr.UpdateLockInAFE(False, k)
diff --git a/crosperf/experiment_factory.py b/crosperf/experiment_factory.py
new file mode 100644
index 0000000..2278015
--- /dev/null
+++ b/crosperf/experiment_factory.py
@@ -0,0 +1,331 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""A module to generate experiments."""
+
+from __future__ import print_function
+import os
+import re
+import socket
+
+from benchmark import Benchmark
+import config
+from experiment import Experiment
+from label import Label
+from label import MockLabel
+from results_cache import CacheConditions
+import test_flag
+import file_lock_machine
+
+# Users may want to run Telemetry tests either individually, or in
+# specified sets.  Here we define sets of tests that users may want
+# to run together.
+
+telemetry_perfv2_tests = [
+    'dromaeo.domcoreattr', 'dromaeo.domcoremodify', 'dromaeo.domcorequery',
+    'dromaeo.domcoretraverse', 'kraken', 'octane', 'robohornet_pro', 'sunspider'
+]
+
+telemetry_pagecycler_tests = [
+    'page_cycler_v2.intl_ar_fa_he',
+    'page_cycler_v2.intl_es_fr_pt-BR',
+    'page_cycler_v2.intl_hi_ru',
+    'page_cycler_v2.intl_ja_zh',
+    'page_cycler_v2.intl_ko_th_vi',
+    #                              'page_cycler_v2.morejs',
+    #                              'page_cycler_v2.moz',
+    #                              'page_cycler_v2.netsim.top_10',
+    'page_cycler_v2.tough_layout_cases',
+    'page_cycler_v2.typical_25'
+]
+
+telemetry_toolchain_old_perf_tests = [
+    'dromaeo.domcoremodify', 'page_cycler_v2.intl_es_fr_pt-BR',
+    'page_cycler_v2.intl_hi_ru', 'page_cycler_v2.intl_ja_zh',
+    'page_cycler_v2.intl_ko_th_vi', 'page_cycler_v2.netsim.top_10',
+    'page_cycler_v2.typical_25', 'robohornet_pro', 'spaceport',
+    'tab_switching.top_10'
+]
+telemetry_toolchain_perf_tests = [
+    'octane',
+    'kraken',
+    'speedometer',
+    'dromaeo.domcoreattr',
+    'dromaeo.domcoremodify',
+    'smoothness.tough_webgl_cases',
+]
+graphics_perf_tests = [
+    'graphics_GLBench',
+    'graphics_GLMark2',
+    'graphics_SanAngeles',
+    'graphics_WebGLAquarium',
+    'graphics_WebGLPerformance',
+]
+telemetry_crosbolt_perf_tests = [
+    'octane',
+    'kraken',
+    'speedometer',
+    'jetstream',
+    'startup.cold.blank_page',
+    'smoothness.top_25_smooth',
+]
+crosbolt_perf_tests = [
+    'graphics_WebGLAquarium',
+    'video_PlaybackPerf.h264',
+    'video_PlaybackPerf.vp9',
+    'video_WebRtcPerf',
+    'BootPerfServerCrosPerf',
+    'power_Resume',
+    'video_PlaybackPerf.h264',
+    'build_RootFilesystemSize',
+#    'cheets_AntutuTest',
+#    'cheets_PerfBootServer',
+#    'cheets_CandyCrushTest',
+#    'cheets_LinpackTest',
+]
+
+
+class ExperimentFactory(object):
+  """Factory class for building an Experiment, given an ExperimentFile as input.
+
+  This factory is currently hardcoded to produce an experiment for running
+  ChromeOS benchmarks, but the idea is that in the future, other types
+  of experiments could be produced.
+  """
+
+  def AppendBenchmarkSet(self, benchmarks, benchmark_list, test_args,
+                         iterations, rm_chroot_tmp, perf_args, suite,
+                         show_all_results, retries, run_local):
+    """Add all the tests in a set to the benchmarks list."""
+    for test_name in benchmark_list:
+      telemetry_benchmark = Benchmark(test_name, test_name, test_args,
+                                      iterations, rm_chroot_tmp, perf_args,
+                                      suite, show_all_results, retries,
+                                      run_local)
+      benchmarks.append(telemetry_benchmark)
+
+  def GetExperiment(self, experiment_file, working_directory, log_dir):
+    """Construct an experiment from an experiment file."""
+    global_settings = experiment_file.GetGlobalSettings()
+    experiment_name = global_settings.GetField('name')
+    board = global_settings.GetField('board')
+    remote = global_settings.GetField('remote')
+    # This is used to remove the ",' from the remote if user
+    # add them to the remote string.
+    new_remote = []
+    if remote:
+      for i in remote:
+        c = re.sub('["\']', '', i)
+        new_remote.append(c)
+    remote = new_remote
+    chromeos_root = global_settings.GetField('chromeos_root')
+    rm_chroot_tmp = global_settings.GetField('rm_chroot_tmp')
+    perf_args = global_settings.GetField('perf_args')
+    acquire_timeout = global_settings.GetField('acquire_timeout')
+    cache_dir = global_settings.GetField('cache_dir')
+    cache_only = global_settings.GetField('cache_only')
+    config.AddConfig('no_email', global_settings.GetField('no_email'))
+    share_cache = global_settings.GetField('share_cache')
+    results_dir = global_settings.GetField('results_dir')
+    use_file_locks = global_settings.GetField('use_file_locks')
+    locks_dir = global_settings.GetField('locks_dir')
+    # If we pass a blank locks_dir to the Experiment, it will use the AFE server
+    # lock mechanism.  So if the user specified use_file_locks, but did not
+    # specify a locks dir, set the locks  dir to the default locks dir in
+    # file_lock_machine.
+    if use_file_locks and not locks_dir:
+      locks_dir = file_lock_machine.Machine.LOCKS_DIR
+    chrome_src = global_settings.GetField('chrome_src')
+    show_all_results = global_settings.GetField('show_all_results')
+    log_level = global_settings.GetField('logging_level')
+    if log_level not in ('quiet', 'average', 'verbose'):
+      log_level = 'verbose'
+    # Default cache hit conditions. The image checksum in the cache and the
+    # computed checksum of the image must match. Also a cache file must exist.
+    cache_conditions = [
+        CacheConditions.CACHE_FILE_EXISTS, CacheConditions.CHECKSUMS_MATCH
+    ]
+    if global_settings.GetField('rerun_if_failed'):
+      cache_conditions.append(CacheConditions.RUN_SUCCEEDED)
+    if global_settings.GetField('rerun'):
+      cache_conditions.append(CacheConditions.FALSE)
+    if global_settings.GetField('same_machine'):
+      cache_conditions.append(CacheConditions.SAME_MACHINE_MATCH)
+    if global_settings.GetField('same_specs'):
+      cache_conditions.append(CacheConditions.MACHINES_MATCH)
+
+    # Construct benchmarks.
+    # Some fields are common with global settings. The values are
+    # inherited and/or merged with the global settings values.
+    benchmarks = []
+    all_benchmark_settings = experiment_file.GetSettings('benchmark')
+    for benchmark_settings in all_benchmark_settings:
+      benchmark_name = benchmark_settings.name
+      test_name = benchmark_settings.GetField('test_name')
+      if not test_name:
+        test_name = benchmark_name
+      test_args = benchmark_settings.GetField('test_args')
+      iterations = benchmark_settings.GetField('iterations')
+      suite = benchmark_settings.GetField('suite')
+      retries = benchmark_settings.GetField('retries')
+      run_local = benchmark_settings.GetField('run_local')
+
+      if suite == 'telemetry_Crosperf':
+        if test_name == 'all_perfv2':
+          self.AppendBenchmarkSet(benchmarks, telemetry_perfv2_tests, test_args,
+                                  iterations, rm_chroot_tmp, perf_args, suite,
+                                  show_all_results, retries, run_local)
+        elif test_name == 'all_pagecyclers':
+          self.AppendBenchmarkSet(benchmarks, telemetry_pagecycler_tests,
+                                  test_args, iterations, rm_chroot_tmp,
+                                  perf_args, suite, show_all_results, retries,
+                                  run_local)
+        elif test_name == 'all_toolchain_perf':
+          self.AppendBenchmarkSet(benchmarks, telemetry_toolchain_perf_tests,
+                                  test_args, iterations, rm_chroot_tmp,
+                                  perf_args, suite, show_all_results, retries,
+                                  run_local)
+          # Add non-telemetry toolchain-perf benchmarks:
+          benchmarks.append(
+              Benchmark(
+                  'graphics_WebGLAquarium',
+                  'graphics_WebGLAquarium',
+                  '',
+                  iterations,
+                  rm_chroot_tmp,
+                  perf_args,
+                  '',
+                  show_all_results,
+                  retries,
+                  run_local=False))
+        elif test_name == 'all_toolchain_perf_old':
+          self.AppendBenchmarkSet(benchmarks,
+                                  telemetry_toolchain_old_perf_tests, test_args,
+                                  iterations, rm_chroot_tmp, perf_args, suite,
+                                  show_all_results, retries, run_local)
+        else:
+          benchmark = Benchmark(test_name, test_name, test_args, iterations,
+                                rm_chroot_tmp, perf_args, suite,
+                                show_all_results, retries, run_local)
+          benchmarks.append(benchmark)
+      else:
+        if test_name == 'all_graphics_perf':
+          self.AppendBenchmarkSet(benchmarks,
+                                  graphics_perf_tests, '',
+                                  iterations, rm_chroot_tmp, perf_args, '',
+                                  show_all_results, retries, run_local=False)
+        elif test_name == 'all_crosbolt_perf':
+          self.AppendBenchmarkSet(benchmarks,
+                                  telemetry_crosbolt_perf_tests, test_args,
+                                  iterations, rm_chroot_tmp, perf_args,
+                                  'telemetry_Crosperf', show_all_results,
+                                  retries, run_local)
+          self.AppendBenchmarkSet(benchmarks,
+                                  crosbolt_perf_tests, '',
+                                  iterations, rm_chroot_tmp, perf_args, '',
+                                  show_all_results, retries, run_local=False)
+        else:
+          # Add the single benchmark.
+          benchmark = Benchmark(
+              benchmark_name,
+              test_name,
+              test_args,
+              iterations,
+              rm_chroot_tmp,
+              perf_args,
+              suite,
+              show_all_results,
+              retries,
+              run_local=False)
+          benchmarks.append(benchmark)
+
+    if not benchmarks:
+      raise RuntimeError('No benchmarks specified')
+
+    # Construct labels.
+    # Some fields are common with global settings. The values are
+    # inherited and/or merged with the global settings values.
+    labels = []
+    all_label_settings = experiment_file.GetSettings('label')
+    all_remote = list(remote)
+    for label_settings in all_label_settings:
+      label_name = label_settings.name
+      image = label_settings.GetField('chromeos_image')
+      autotest_path = label_settings.GetField('autotest_path')
+      chromeos_root = label_settings.GetField('chromeos_root')
+      my_remote = label_settings.GetField('remote')
+      compiler = label_settings.GetField('compiler')
+      new_remote = []
+      if my_remote:
+        for i in my_remote:
+          c = re.sub('["\']', '', i)
+          new_remote.append(c)
+      my_remote = new_remote
+      if image == '':
+        build = label_settings.GetField('build')
+        if len(build) == 0:
+          raise RuntimeError("Can not have empty 'build' field!")
+        image, autotest_path = label_settings.GetXbuddyPath(build,
+                                                            autotest_path,
+                                                            board,
+                                                            chromeos_root,
+                                                            log_level)
+
+      cache_dir = label_settings.GetField('cache_dir')
+      chrome_src = label_settings.GetField('chrome_src')
+
+      # TODO(yunlian): We should consolidate code in machine_manager.py
+      # to derermine whether we are running from within google or not
+      if ('corp.google.com' in socket.gethostname() and
+          (not my_remote or my_remote == remote and
+           global_settings.GetField('board') != board)):
+        my_remote = self.GetDefaultRemotes(board)
+      if global_settings.GetField('same_machine') and len(my_remote) > 1:
+        raise RuntimeError('Only one remote is allowed when same_machine '
+                           'is turned on')
+      all_remote += my_remote
+      image_args = label_settings.GetField('image_args')
+      if test_flag.GetTestMode():
+        # pylint: disable=too-many-function-args
+        label = MockLabel(label_name, image, autotest_path, chromeos_root,
+                          board, my_remote, image_args, cache_dir, cache_only,
+                          log_level, compiler, chrome_src)
+      else:
+        label = Label(label_name, image, autotest_path, chromeos_root, board,
+                      my_remote, image_args, cache_dir, cache_only, log_level,
+                      compiler, chrome_src)
+      labels.append(label)
+
+    if not labels:
+      raise RuntimeError('No labels specified')
+
+    email = global_settings.GetField('email')
+    all_remote += list(set(my_remote))
+    all_remote = list(set(all_remote))
+    experiment = Experiment(experiment_name, all_remote, working_directory,
+                            chromeos_root, cache_conditions, labels, benchmarks,
+                            experiment_file.Canonicalize(), email,
+                            acquire_timeout, log_dir, log_level, share_cache,
+                            results_dir, locks_dir)
+
+    return experiment
+
+  def GetDefaultRemotes(self, board):
+    default_remotes_file = os.path.join(
+        os.path.dirname(__file__), 'default_remotes')
+    try:
+      with open(default_remotes_file) as f:
+        for line in f:
+          key, v = line.split(':')
+          if key.strip() == board:
+            remotes = v.strip().split()
+            if remotes:
+              return remotes
+            else:
+              raise RuntimeError('There is no remote for {0}'.format(board))
+    except IOError:
+      # TODO: rethrow instead of throwing different exception.
+      raise RuntimeError('IOError while reading file {0}'
+                         .format(default_remotes_file))
+    else:
+      raise RuntimeError('There is not remote for {0}'.format(board))
diff --git a/crosperf/experiment_factory_unittest.py b/crosperf/experiment_factory_unittest.py
new file mode 100755
index 0000000..02bfd0a
--- /dev/null
+++ b/crosperf/experiment_factory_unittest.py
@@ -0,0 +1,242 @@
+#!/usr/bin/env python2
+
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Unit test for experiment_factory.py"""
+
+from __future__ import print_function
+
+import StringIO
+import socket
+import mock
+import unittest
+
+from cros_utils.file_utils import FileUtils
+
+from experiment_factory import ExperimentFactory
+from experiment_file import ExperimentFile
+import test_flag
+import benchmark
+import experiment_factory
+import settings_factory
+
+EXPERIMENT_FILE_1 = """
+  board: x86-alex
+  remote: chromeos-alex3
+
+  benchmark: PageCycler {
+    iterations: 3
+  }
+
+  image1 {
+    chromeos_image: /usr/local/google/cros_image1.bin
+  }
+
+  image2 {
+    chromeos_image: /usr/local/google/cros_image2.bin
+  }
+  """
+
+# pylint: disable=too-many-function-args
+
+
+class ExperimentFactoryTest(unittest.TestCase):
+  """Class for running experiment factory unittests."""
+
+  def setUp(self):
+    self.append_benchmark_call_args = []
+
+  def testLoadExperimentFile1(self):
+    experiment_file = ExperimentFile(StringIO.StringIO(EXPERIMENT_FILE_1))
+    exp = ExperimentFactory().GetExperiment(
+        experiment_file, working_directory='', log_dir='')
+    self.assertEqual(exp.remote, ['chromeos-alex3'])
+
+    self.assertEqual(len(exp.benchmarks), 1)
+    self.assertEqual(exp.benchmarks[0].name, 'PageCycler')
+    self.assertEqual(exp.benchmarks[0].test_name, 'PageCycler')
+    self.assertEqual(exp.benchmarks[0].iterations, 3)
+
+    self.assertEqual(len(exp.labels), 2)
+    self.assertEqual(exp.labels[0].chromeos_image,
+                     '/usr/local/google/cros_image1.bin')
+    self.assertEqual(exp.labels[0].board, 'x86-alex')
+
+  def test_append_benchmark_set(self):
+    ef = ExperimentFactory()
+
+    bench_list = []
+    ef.AppendBenchmarkSet(bench_list, experiment_factory.telemetry_perfv2_tests,
+                          '', 1, False, '', 'telemetry_Crosperf', False, 0,
+                          False)
+    self.assertEqual(
+        len(bench_list), len(experiment_factory.telemetry_perfv2_tests))
+    self.assertTrue(type(bench_list[0]) is benchmark.Benchmark)
+
+    bench_list = []
+    ef.AppendBenchmarkSet(bench_list,
+                          experiment_factory.telemetry_pagecycler_tests, '', 1,
+                          False, '', 'telemetry_Crosperf', False, 0, False)
+    self.assertEqual(
+        len(bench_list), len(experiment_factory.telemetry_pagecycler_tests))
+    self.assertTrue(type(bench_list[0]) is benchmark.Benchmark)
+
+    bench_list = []
+    ef.AppendBenchmarkSet(bench_list,
+                          experiment_factory.telemetry_toolchain_perf_tests, '',
+                          1, False, '', 'telemetry_Crosperf', False, 0, False)
+    self.assertEqual(
+        len(bench_list), len(experiment_factory.telemetry_toolchain_perf_tests))
+    self.assertTrue(type(bench_list[0]) is benchmark.Benchmark)
+
+  @mock.patch.object(socket, 'gethostname')
+  def test_get_experiment(self, mock_socket):
+
+    test_flag.SetTestMode(False)
+    self.append_benchmark_call_args = []
+
+    def FakeAppendBenchmarkSet(bench_list, set_list, args, iters, rm_ch,
+                               perf_args, suite, show_all):
+      'Helper function for test_get_experiment'
+      arg_list = [
+          bench_list, set_list, args, iters, rm_ch, perf_args, suite, show_all
+      ]
+      self.append_benchmark_call_args.append(arg_list)
+
+    def FakeGetDefaultRemotes(board):
+      if not board:
+        return []
+      return ['fake_chromeos_machine1.cros', 'fake_chromeos_machine2.cros']
+
+    def FakeGetXbuddyPath(build, autotest_dir, board, chroot, log_level):
+      autotest_path = autotest_dir
+      if not autotest_path:
+        autotest_path = 'fake_autotest_path'
+      if not build or not board or not chroot or not log_level:
+        return '', autotest_path
+      return 'fake_image_path', autotest_path
+
+    ef = ExperimentFactory()
+    ef.AppendBenchmarkSet = FakeAppendBenchmarkSet
+    ef.GetDefaultRemotes = FakeGetDefaultRemotes
+
+    label_settings = settings_factory.LabelSettings('image_label')
+    benchmark_settings = settings_factory.BenchmarkSettings('bench_test')
+    global_settings = settings_factory.GlobalSettings('test_name')
+
+    label_settings.GetXbuddyPath = FakeGetXbuddyPath
+
+    mock_experiment_file = ExperimentFile(StringIO.StringIO(''))
+    mock_experiment_file.all_settings = []
+
+    test_flag.SetTestMode(True)
+    # Basic test.
+    global_settings.SetField('name', 'unittest_test')
+    global_settings.SetField('board', 'lumpy')
+    global_settings.SetField('remote', '123.45.67.89 123.45.76.80')
+    benchmark_settings.SetField('test_name', 'kraken')
+    benchmark_settings.SetField('suite', 'telemetry_Crosperf')
+    benchmark_settings.SetField('iterations', 1)
+    label_settings.SetField(
+        'chromeos_image',
+        'chromeos/src/build/images/lumpy/latest/chromiumos_test_image.bin')
+    label_settings.SetField('chrome_src', '/usr/local/google/home/chrome-top')
+    label_settings.SetField('autotest_path', '/tmp/autotest')
+
+    mock_experiment_file.global_settings = global_settings
+    mock_experiment_file.all_settings.append(label_settings)
+    mock_experiment_file.all_settings.append(benchmark_settings)
+    mock_experiment_file.all_settings.append(global_settings)
+
+    mock_socket.return_value = ''
+
+    # First test. General test.
+    exp = ef.GetExperiment(mock_experiment_file, '', '')
+    self.assertEqual(exp.remote, ['123.45.67.89', '123.45.76.80'])
+    self.assertEqual(exp.cache_conditions, [0, 2, 1])
+    self.assertEqual(exp.log_level, 'average')
+
+    self.assertEqual(len(exp.benchmarks), 1)
+    self.assertEqual(exp.benchmarks[0].name, 'kraken')
+    self.assertEqual(exp.benchmarks[0].test_name, 'kraken')
+    self.assertEqual(exp.benchmarks[0].iterations, 1)
+    self.assertEqual(exp.benchmarks[0].suite, 'telemetry_Crosperf')
+    self.assertFalse(exp.benchmarks[0].show_all_results)
+
+    self.assertEqual(len(exp.labels), 1)
+    self.assertEqual(exp.labels[0].chromeos_image,
+                     'chromeos/src/build/images/lumpy/latest/'
+                     'chromiumos_test_image.bin')
+    self.assertEqual(exp.labels[0].autotest_path, '/tmp/autotest')
+    self.assertEqual(exp.labels[0].board, 'lumpy')
+
+    # Second test: Remotes listed in labels.
+    test_flag.SetTestMode(True)
+    label_settings.SetField('remote', 'chromeos1.cros chromeos2.cros')
+    exp = ef.GetExperiment(mock_experiment_file, '', '')
+    self.assertEqual(
+        exp.remote,
+        ['chromeos1.cros', 'chromeos2.cros', '123.45.67.89', '123.45.76.80'])
+
+    # Third test: Automatic fixing of bad  logging_level param:
+    global_settings.SetField('logging_level', 'really loud!')
+    exp = ef.GetExperiment(mock_experiment_file, '', '')
+    self.assertEqual(exp.log_level, 'verbose')
+
+    # Fourth test: Setting cache conditions; only 1 remote with "same_machine"
+    global_settings.SetField('rerun_if_failed', 'true')
+    global_settings.SetField('rerun', 'true')
+    global_settings.SetField('same_machine', 'true')
+    global_settings.SetField('same_specs', 'true')
+
+    self.assertRaises(Exception, ef.GetExperiment, mock_experiment_file, '', '')
+    label_settings.SetField('remote', '')
+    global_settings.SetField('remote', '123.45.67.89')
+    exp = ef.GetExperiment(mock_experiment_file, '', '')
+    self.assertEqual(exp.cache_conditions, [0, 2, 3, 4, 6, 1])
+
+    # Fifth Test: Adding a second label; calling GetXbuddyPath; omitting all
+    # remotes (Call GetDefaultRemotes).
+    mock_socket.return_value = 'test.corp.google.com'
+    global_settings.SetField('remote', '')
+    global_settings.SetField('same_machine', 'false')
+
+    label_settings_2 = settings_factory.LabelSettings('official_image_label')
+    label_settings_2.SetField('chromeos_root', 'chromeos')
+    label_settings_2.SetField('build', 'official-dev')
+    label_settings_2.SetField('autotest_path', '')
+    label_settings_2.GetXbuddyPath = FakeGetXbuddyPath
+
+    mock_experiment_file.all_settings.append(label_settings_2)
+    exp = ef.GetExperiment(mock_experiment_file, '', '')
+    self.assertEqual(len(exp.labels), 2)
+    self.assertEqual(exp.labels[1].chromeos_image, 'fake_image_path')
+    self.assertEqual(exp.labels[1].autotest_path, 'fake_autotest_path')
+    self.assertEqual(
+        exp.remote,
+        ['fake_chromeos_machine1.cros', 'fake_chromeos_machine2.cros'])
+
+  def test_get_default_remotes(self):
+    board_list = [
+        'x86-alex', 'lumpy', 'elm', 'parrot', 'daisy', 'peach_pit', 'peppy',
+        'squawks'
+    ]
+
+    ef = ExperimentFactory()
+    self.assertRaises(Exception, ef.GetDefaultRemotes, 'bad-board')
+
+    # Verify that we have entries for every board, and that we get three
+    # machines back for each board.
+    for b in board_list:
+      remotes = ef.GetDefaultRemotes(b)
+      if b == 'elm':
+        self.assertEqual(len(remotes), 2)
+      else:
+        self.assertEqual(len(remotes), 3)
+
+
+if __name__ == '__main__':
+  FileUtils.Configure(True)
+  test_flag.SetTestMode(True)
+  unittest.main()
diff --git a/crosperf/experiment_file.py b/crosperf/experiment_file.py
new file mode 100644
index 0000000..016e9d8
--- /dev/null
+++ b/crosperf/experiment_file.py
@@ -0,0 +1,205 @@
+# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""The experiment file module. It manages the input file of crosperf."""
+
+from __future__ import print_function
+import os.path
+import re
+from settings_factory import SettingsFactory
+
+
+class ExperimentFile(object):
+  """Class for parsing the experiment file format.
+
+  The grammar for this format is:
+
+  experiment = { _FIELD_VALUE_RE | settings }
+  settings = _OPEN_SETTINGS_RE
+             { _FIELD_VALUE_RE }
+             _CLOSE_SETTINGS_RE
+
+  Where the regexes are terminals defined below. This results in an format
+  which looks something like:
+
+  field_name: value
+  settings_type: settings_name {
+    field_name: value
+    field_name: value
+  }
+  """
+
+  # Field regex, e.g. "iterations: 3"
+  _FIELD_VALUE_RE = re.compile(r'(\+)?\s*(\w+?)(?:\.(\S+))?\s*:\s*(.*)')
+  # Open settings regex, e.g. "label {"
+  _OPEN_SETTINGS_RE = re.compile(r'(?:([\w.-]+):)?\s*([\w.-]+)\s*{')
+  # Close settings regex.
+  _CLOSE_SETTINGS_RE = re.compile(r'}')
+
+  def __init__(self, experiment_file, overrides=None):
+    """Construct object from file-like experiment_file.
+
+    Args:
+      experiment_file: file-like object with text description of experiment.
+      overrides: A settings object that will override fields in other settings.
+
+    Raises:
+      Exception: if invalid build type or description is invalid.
+    """
+    self.all_settings = []
+    self.global_settings = SettingsFactory().GetSettings('global', 'global')
+    self.all_settings.append(self.global_settings)
+
+    self._Parse(experiment_file)
+
+    for settings in self.all_settings:
+      settings.Inherit()
+      settings.Validate()
+      if overrides:
+        settings.Override(overrides)
+
+  def GetSettings(self, settings_type):
+    """Return nested fields from the experiment file."""
+    res = []
+    for settings in self.all_settings:
+      if settings.settings_type == settings_type:
+        res.append(settings)
+    return res
+
+  def GetGlobalSettings(self):
+    """Return the global fields from the experiment file."""
+    return self.global_settings
+
+  def _ParseField(self, reader):
+    """Parse a key/value field."""
+    line = reader.CurrentLine().strip()
+    match = ExperimentFile._FIELD_VALUE_RE.match(line)
+    append, name, _, text_value = match.groups()
+    return (name, text_value, append)
+
+  def _ParseSettings(self, reader):
+    """Parse a settings block."""
+    line = reader.CurrentLine().strip()
+    match = ExperimentFile._OPEN_SETTINGS_RE.match(line)
+    settings_type = match.group(1)
+    if settings_type is None:
+      settings_type = ''
+    settings_name = match.group(2)
+    settings = SettingsFactory().GetSettings(settings_name, settings_type)
+    settings.SetParentSettings(self.global_settings)
+
+    while reader.NextLine():
+      line = reader.CurrentLine().strip()
+
+      if not line:
+        continue
+      elif ExperimentFile._FIELD_VALUE_RE.match(line):
+        field = self._ParseField(reader)
+        settings.SetField(field[0], field[1], field[2])
+      elif ExperimentFile._CLOSE_SETTINGS_RE.match(line):
+        return settings
+
+    raise EOFError('Unexpected EOF while parsing settings block.')
+
+  def _Parse(self, experiment_file):
+    """Parse experiment file and create settings."""
+    reader = ExperimentFileReader(experiment_file)
+    settings_names = {}
+    try:
+      while reader.NextLine():
+        line = reader.CurrentLine().strip()
+
+        if not line:
+          continue
+        elif ExperimentFile._OPEN_SETTINGS_RE.match(line):
+          new_settings = self._ParseSettings(reader)
+          if new_settings.name in settings_names:
+            raise SyntaxError("Duplicate settings name: '%s'." %
+                              new_settings.name)
+          settings_names[new_settings.name] = True
+          self.all_settings.append(new_settings)
+        elif ExperimentFile._FIELD_VALUE_RE.match(line):
+          field = self._ParseField(reader)
+          self.global_settings.SetField(field[0], field[1], field[2])
+        else:
+          raise IOError('Unexpected line.')
+    except Exception, err:
+      raise RuntimeError('Line %d: %s\n==> %s' % (reader.LineNo(), str(err),
+                                                  reader.CurrentLine(False)))
+
+  def Canonicalize(self):
+    """Convert parsed experiment file back into an experiment file."""
+    res = ''
+    board = ''
+    for field_name in self.global_settings.fields:
+      field = self.global_settings.fields[field_name]
+      if field.assigned:
+        res += '%s: %s\n' % (field.name, field.GetString())
+      if field.name == 'board':
+        board = field.GetString()
+    res += '\n'
+
+    for settings in self.all_settings:
+      if settings.settings_type != 'global':
+        res += '%s: %s {\n' % (settings.settings_type, settings.name)
+        for field_name in settings.fields:
+          field = settings.fields[field_name]
+          if field.assigned:
+            res += '\t%s: %s\n' % (field.name, field.GetString())
+            if field.name == 'chromeos_image':
+              real_file = (
+                  os.path.realpath(os.path.expanduser(field.GetString())))
+              if real_file != field.GetString():
+                res += '\t#actual_image: %s\n' % real_file
+            if field.name == 'build':
+              chromeos_root_field = settings.fields['chromeos_root']
+              if chromeos_root_field:
+                chromeos_root = chromeos_root_field.GetString()
+              value = field.GetString()
+              autotest_field = settings.fields['autotest_path']
+              autotest_path = ''
+              if autotest_field.assigned:
+                autotest_path = autotest_field.GetString()
+              image_path, autotest_path = settings.GetXbuddyPath(value,
+                                                                 autotest_path,
+                                                                 board,
+                                                                 chromeos_root,
+                                                                 'quiet')
+              res += '\t#actual_image: %s\n' % image_path
+              if not autotest_field.assigned:
+                res += '\t#actual_autotest_path: %s\n' % autotest_path
+
+        res += '}\n\n'
+
+    return res
+
+
+class ExperimentFileReader(object):
+  """Handle reading lines from an experiment file."""
+
+  def __init__(self, file_object):
+    self.file_object = file_object
+    self.current_line = None
+    self.current_line_no = 0
+
+  def CurrentLine(self, strip_comment=True):
+    """Return the next line from the file, without advancing the iterator."""
+    if strip_comment:
+      return self._StripComment(self.current_line)
+    return self.current_line
+
+  def NextLine(self, strip_comment=True):
+    """Advance the iterator and return the next line of the file."""
+    self.current_line_no += 1
+    self.current_line = self.file_object.readline()
+    return self.CurrentLine(strip_comment)
+
+  def _StripComment(self, line):
+    """Strip comments starting with # from a line."""
+    if '#' in line:
+      line = line[:line.find('#')] + line[-1]
+    return line
+
+  def LineNo(self):
+    """Return the current line number."""
+    return self.current_line_no
diff --git a/crosperf/experiment_file_unittest.py b/crosperf/experiment_file_unittest.py
new file mode 100755
index 0000000..ed1f176
--- /dev/null
+++ b/crosperf/experiment_file_unittest.py
@@ -0,0 +1,135 @@
+#!/usr/bin/env python2
+
+# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""The unittest of experiment_file."""
+from __future__ import print_function
+import StringIO
+import unittest
+from experiment_file import ExperimentFile
+
+EXPERIMENT_FILE_1 = """
+  board: x86-alex
+  remote: chromeos-alex3
+  perf_args: record -a -e cycles
+  benchmark: PageCycler {
+    iterations: 3
+  }
+
+  image1 {
+    chromeos_image: /usr/local/google/cros_image1.bin
+  }
+
+  image2 {
+    remote: chromeos-lumpy1
+    chromeos_image: /usr/local/google/cros_image2.bin
+  }
+  """
+
+EXPERIMENT_FILE_2 = """
+  board: x86-alex
+  remote: chromeos-alex3
+  iterations: 3
+
+  benchmark: PageCycler {
+  }
+
+  benchmark: AndroidBench {
+    iterations: 2
+  }
+
+  image1 {
+    chromeos_image:/usr/local/google/cros_image1.bin
+  }
+
+  image2 {
+    chromeos_image: /usr/local/google/cros_image2.bin
+  }
+  """
+
+EXPERIMENT_FILE_3 = """
+  board: x86-alex
+  remote: chromeos-alex3
+  iterations: 3
+
+  benchmark: PageCycler {
+  }
+
+  image1 {
+    chromeos_image:/usr/local/google/cros_image1.bin
+  }
+
+  image1 {
+    chromeos_image: /usr/local/google/cros_image2.bin
+  }
+  """
+
+OUTPUT_FILE = """board: x86-alex
+remote: chromeos-alex3
+perf_args: record -a -e cycles
+
+benchmark: PageCycler {
+\titerations: 3
+}
+
+label: image1 {
+\tremote: chromeos-alex3
+\tchromeos_image: /usr/local/google/cros_image1.bin
+}
+
+label: image2 {
+\tremote: chromeos-lumpy1
+\tchromeos_image: /usr/local/google/cros_image2.bin
+}\n\n"""
+
+
+class ExperimentFileTest(unittest.TestCase):
+  """The main class for Experiment File test."""
+  def testLoadExperimentFile1(self):
+    input_file = StringIO.StringIO(EXPERIMENT_FILE_1)
+    experiment_file = ExperimentFile(input_file)
+    global_settings = experiment_file.GetGlobalSettings()
+    self.assertEqual(global_settings.GetField('remote'), ['chromeos-alex3'])
+    self.assertEqual(
+        global_settings.GetField('perf_args'), 'record -a -e cycles')
+    benchmark_settings = experiment_file.GetSettings('benchmark')
+    self.assertEqual(len(benchmark_settings), 1)
+    self.assertEqual(benchmark_settings[0].name, 'PageCycler')
+    self.assertEqual(benchmark_settings[0].GetField('iterations'), 3)
+
+    label_settings = experiment_file.GetSettings('label')
+    self.assertEqual(len(label_settings), 2)
+    self.assertEqual(label_settings[0].name, 'image1')
+    self.assertEqual(label_settings[0].GetField('chromeos_image'),
+                     '/usr/local/google/cros_image1.bin')
+    self.assertEqual(label_settings[1].GetField('remote'), ['chromeos-lumpy1'])
+    self.assertEqual(label_settings[0].GetField('remote'), ['chromeos-alex3'])
+
+  def testOverrideSetting(self):
+    input_file = StringIO.StringIO(EXPERIMENT_FILE_2)
+    experiment_file = ExperimentFile(input_file)
+    global_settings = experiment_file.GetGlobalSettings()
+    self.assertEqual(global_settings.GetField('remote'), ['chromeos-alex3'])
+
+    benchmark_settings = experiment_file.GetSettings('benchmark')
+    self.assertEqual(len(benchmark_settings), 2)
+    self.assertEqual(benchmark_settings[0].name, 'PageCycler')
+    self.assertEqual(benchmark_settings[0].GetField('iterations'), 3)
+    self.assertEqual(benchmark_settings[1].name, 'AndroidBench')
+    self.assertEqual(benchmark_settings[1].GetField('iterations'), 2)
+
+  def testDuplicateLabel(self):
+    input_file = StringIO.StringIO(EXPERIMENT_FILE_3)
+    self.assertRaises(Exception, ExperimentFile, input_file)
+
+  def testCanonicalize(self):
+    input_file = StringIO.StringIO(EXPERIMENT_FILE_1)
+    experiment_file = ExperimentFile(input_file)
+    res = experiment_file.Canonicalize()
+    self.assertEqual(res, OUTPUT_FILE)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/experiment_files/README b/crosperf/experiment_files/README
new file mode 100644
index 0000000..d9c9687
--- /dev/null
+++ b/crosperf/experiment_files/README
@@ -0,0 +1,34 @@
+To use these experiment files, replace the board, remote and images
+placeholders and run crosperf on them.
+
+Further information about crosperf:
+https://sites.google.com/a/google.com/chromeos-toolchain-team-home2/home/team-tools-and-scripts/crosperf-cros-image-performance-comparison-tool
+
+The final experiment file should look something like the following (but with 
+different actual values for the fields):
+
+board: lumpy
+remote: 123.45.67.089
+
+# Add images you want to test:
+my_image {
+  chromeos_image: /usr/local/chromeos/src/build/images/lumpy/chromiumos_test_image.bin
+}
+
+vanilla_image {
+   chromeos_root: /usr/local/chromeos
+   build: lumpy-release/R35-5672.0.0
+}
+
+# Paste experiment benchmarks here. Example, I pasted
+# page_cycler_v2.morejs here.
+
+# This experiment just runs a short autotest which measures the performance of
+# Telemetry's page_cycler_v2.morejs. In addition, it profiles
+
+perg_args: record -e cycles
+
+benchmark: page_cycler_v2.morejs {
+   suite: telemetry_Crosperf
+   iterations: 1
+}
diff --git a/crosperf/experiment_files/aes_perf.exp b/crosperf/experiment_files/aes_perf.exp
new file mode 100644
index 0000000..063c74b
--- /dev/null
+++ b/crosperf/experiment_files/aes_perf.exp
@@ -0,0 +1,21 @@
+# This experiment just runs a short autotest which measures the performance of
+# aes encryption.
+#
+# You should replace all the placeholders, marked by angle-brackets, with the
+# appropriate actual values.
+
+name: aes_example
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+benchmark: platform_AesThroughput {
+}
+
+# Replace the chromeos image below with the actual path to your test image.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
diff --git a/crosperf/experiment_files/bloat_perf.exp b/crosperf/experiment_files/bloat_perf.exp
new file mode 100644
index 0000000..1468177
--- /dev/null
+++ b/crosperf/experiment_files/bloat_perf.exp
@@ -0,0 +1,25 @@
+# This experiment just runs a short telemety autotest which measures
+# the performance of the page_cycler_v2.bloat test.
+#
+# You should replace all the placeholders, marked by angle-brackets, with the
+# appropriate actual values.
+
+name: bloat_perf_example
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+perf_args: record -e cycles
+
+benchmark: page_cycler_v2.bloat {
+	suite: telemetry_Crosperf
+	iterations:1
+}
+
+# Replace the chromeos image below with the actual path to your test image.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
diff --git a/crosperf/experiment_files/morejs_perf.exp b/crosperf/experiment_files/morejs_perf.exp
new file mode 100644
index 0000000..ebc5475
--- /dev/null
+++ b/crosperf/experiment_files/morejs_perf.exp
@@ -0,0 +1,25 @@
+# This experiment just runs a short telemety autotest which measures
+# the performance of the page_cycler_v2.morejs test.
+#
+# You should replace all the placeholders, marked by angle-brackets, with the
+# appropriate actual values.
+
+name: morejs_perf_example
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+perf_args: record -e cycles
+
+benchmark: page_cycler_v2.morejs {
+	suite: telemetry_Crosperf
+	iterations: 1
+}
+
+# Replace the chromeos image below with the actual path to your test image.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
diff --git a/crosperf/experiment_files/non-telemetry-tests.exp b/crosperf/experiment_files/non-telemetry-tests.exp
new file mode 100644
index 0000000..0ad1fe5
--- /dev/null
+++ b/crosperf/experiment_files/non-telemetry-tests.exp
@@ -0,0 +1,31 @@
+# This example experiment file showa how to run some basic non-Telemetry
+# autotest tests.
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+name: non_telemetry_tests_example
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+benchmark: BootPerfServer {
+  test_name: BootPerfServer
+  iterations: 1
+}
+
+benchmark: bvt {
+  test_name: suite:bvt
+}
+
+benchmark: login_LoginSuccess {
+  test_name: login_LoginSuccess
+}
+
+# Replace the chromeos image below with the actual path to your test image.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
diff --git a/crosperf/experiment_files/official-image.exp b/crosperf/experiment_files/official-image.exp
new file mode 100644
index 0000000..bce7d6a
--- /dev/null
+++ b/crosperf/experiment_files/official-image.exp
@@ -0,0 +1,41 @@
+# This example experiment file shows how to run a basic test, using
+# official images.
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+name: official_image_example
+
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+benchmark: canvasmark {
+  suite:telemetry_Crosperf
+  iterations: 1
+}
+
+
+# Replace <path-to-your-chroot-goes-here> with the actual directory path
+# to the top of your ChromimumOS chroot.
+first_official_image {
+  chromeos_root:<path-to-your-chroot-goes-here>
+  # Replace "latest-official" with the appropriate xbuddy version alias
+  # for the official image you want to use (see
+  # http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/using-the-dev-server/xbuddy-for-devserver#TOC-XBuddy-Paths
+  # for xbuddy syntax).  
+  build: latest-official
+}
+
+second_official_image {
+  # Replace <path-to-your-chroot-goes-here> with actual path.
+  chromeos_root:<path-to-your-chroot-goes-here>
+  # Replace "lumpy-release/R35-5672.0.0" with the official image you want
+  # to use.
+  build:lumpy-release/R35-5672.0.0
+}
+
+
diff --git a/crosperf/experiment_files/page_cycler.exp b/crosperf/experiment_files/page_cycler.exp
new file mode 100644
index 0000000..6cb6166
--- /dev/null
+++ b/crosperf/experiment_files/page_cycler.exp
@@ -0,0 +1,28 @@
+# This experiment file shows how to run all of the Telemetry
+# page_cycler tests.
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+name: all_page_cyclers_example
+board: <your-board-goes-here>
+
+# Note: You can specify multiple remotes, to run your tests in
+# parallel on multiple machines. e.g. "remote: test-machine-1.com
+# test-machine2.come test-machine3.com"
+
+remote: <your-remote-goes-here>
+
+
+# NOTE: all_pagecyclers is a Crosperf alias that will cause all of the 
+# Telemetry page_cycler benchmark tests to be run. 
+benchmark: all_pagecyclers {
+	suite: telemetry_Crosperf
+	iterations: 2
+}
+
+# Replace the chromeos image below with the actual path to your test
+# image.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
diff --git a/crosperf/experiment_files/page_cycler_perf.exp b/crosperf/experiment_files/page_cycler_perf.exp
new file mode 100644
index 0000000..cd66173
--- /dev/null
+++ b/crosperf/experiment_files/page_cycler_perf.exp
@@ -0,0 +1,45 @@
+# This experiment profiles some of the Telemetry page cycler tests,
+# uisng 'perf' on the remotes to get performance profiles.
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+name: aes_example
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+perf_args: record -e cycles,instructions
+
+benchmark: page_cycler_v2.morejs {
+	suite: telemetry_Crosperf
+	iterations: 10
+}
+
+benchmark: page_cycler_v2.bloat {
+	suite: telemetry_Crosperf
+	iterations: 10
+}
+
+benchmark: page_cycler_v2.dhtml {
+	suite: telemetry_Crosperf
+	iterations: 10
+}
+
+benchmark: page_cycler_v2.intl_ar_fa_he {
+	suite: telemetry_Crosperf
+	iterations: 10
+}
+
+benchmark: page_cycler_v2.moz {
+	suite: telemetry_Crosperf
+	iterations: 10
+}
+
+# Replace the chromeos image below with the actual path to your test image.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
diff --git a/crosperf/experiment_files/telemetry-crosperf-suites.exp b/crosperf/experiment_files/telemetry-crosperf-suites.exp
new file mode 100644
index 0000000..2caa588
--- /dev/null
+++ b/crosperf/experiment_files/telemetry-crosperf-suites.exp
@@ -0,0 +1,54 @@
+# This example experiment file shows how to invoke sets of tests (a
+# set is a group of tests that can be invoked by a single alias).
+# There are currently three sets defined for crosperf_Telemetry:
+# all_perfv2, all_pagecyclers, and all_toolchain_perf.
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+
+name: telemetry_crosperf_suites_example
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+# The example below will run all the benchmarks in the perf_v2 suite.
+# The exact list of benchmarks that will be run can be seen in
+# crosperf/experiment_factory.py
+benchmark: all_perfv2 {
+  suite:telemetry_Crosperf
+  iterations: 2
+}
+
+# The example below will run all the Telemetry page_cycler benchmarks.
+# The exact list of benchmarks that will be run can be seen in
+# crosperf/experiment_factory.py
+benchmark: all_pagecyclers {
+  suite:telemetry_Crosperf
+  iterations: 1
+}
+
+# The example below will run all the Telemetry page_cycler benchmarks.
+# The exact list of benchmarks that will be run can be seen in
+# crosperf/experiment_factory.py
+benchmark: all_toolchain_perf {
+  suite:telemetry_Crosperf
+  iterations: 1
+}
+
+# Replace the chromeos image below with the actual path to your test image.
+test_image_1 {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
+
+# Replace the chromeos image below with the actual path to your second
+# test image (if desired).
+new_image {
+  chromeos_image:<path-to-your-other-chroot-goes-here>/src/build/images/<board-goes-here>/latest/chromiumos_test_image.bin
+}
+
+
+
diff --git a/crosperf/experiment_files/telemetry-crosperf-with-external-chrome-src.exp b/crosperf/experiment_files/telemetry-crosperf-with-external-chrome-src.exp
new file mode 100644
index 0000000..517c13f
--- /dev/null
+++ b/crosperf/experiment_files/telemetry-crosperf-with-external-chrome-src.exp
@@ -0,0 +1,31 @@
+# This example experiment file showings how to specify an external
+# chrome source tree (rather than using the one inside the chroot).
+# The Telemetry tests will be run from the external Chrome source
+# tree.
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+name: telemetry_crosperf_external_src_example
+
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+benchmark: octane {
+    suite: telemetry_Crosperf
+    iterations: 1
+}
+
+# Replace the chromeos image below with the actual path to your test imnage.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+  # Replace '/usr/local/google/chrome-top' with the path to the
+  # top of your Chrome source tree. From that directory
+  # "./src/tools/perf/run_benchmark" should be a valid file path.
+  chrome_src:/usr/local/google/chrome-top
+}
+
diff --git a/crosperf/experiment_files/telemetry-crosperf-with-profiler.exp b/crosperf/experiment_files/telemetry-crosperf-with-profiler.exp
new file mode 100644
index 0000000..4c2b88f
--- /dev/null
+++ b/crosperf/experiment_files/telemetry-crosperf-with-profiler.exp
@@ -0,0 +1,35 @@
+# This example experiment file shows how to invoke the profiler (via
+# the perf_args above the benchmark).
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+
+name: telemetry_crosperf_profiler_example
+
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+# Below is the line that causes the profiler to run.  Currently the
+# only profiler option is running 'perf' on the remote machine.  If
+# you want you can replace 'record' with 'stat'.  You would also need
+# to change the other args accordingly.  Crosperf automatically
+# inserts a '-a' if you use 'record' for you perf_args.  The results
+# of the perf run (perf.data and perf.report files) will be available
+# with the rest of the Crosperf results.
+perf_args: record -e cycles,instructions
+
+benchmark: page_cycler_v2.dhtml {
+    suite: telemetry_Crosperf
+    iterations: 1
+}
+
+# Replace the chromeos image below with the actual path to your test imnage.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
+
diff --git a/crosperf/experiment_files/telemetry-crosperf.exp b/crosperf/experiment_files/telemetry-crosperf.exp
new file mode 100644
index 0000000..111001d
--- /dev/null
+++ b/crosperf/experiment_files/telemetry-crosperf.exp
@@ -0,0 +1,32 @@
+# This example experiment file shows how to run a Telemetry test,
+# using autotest (via "suite: telemetry_Crosperf").  This runs the
+# Telemetry's "run_benchmark" for the specified test.
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+name: basic_telemetry_crosperf_example
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+# Replace "octane" below with the name of the Telemetry benchmark you 
+# want to run.
+benchmark: octane {
+    suite: telemetry_Crosperf
+    iterations: 1
+}
+
+# NOTE: You must specify at least one image; you may specify more than one.
+# Replace <path-to-your-chroot-goes-here> and <board-goes-here> below.
+vanilla_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/vanilla-image/chromiumos_test_image.bin
+}
+
+# Replace the chromeos image below with the actual path to your test image.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
diff --git a/crosperf/experiment_files/telemetry-without-autotest.exp b/crosperf/experiment_files/telemetry-without-autotest.exp
new file mode 100644
index 0000000..ce3f207
--- /dev/null
+++ b/crosperf/experiment_files/telemetry-without-autotest.exp
@@ -0,0 +1,31 @@
+# This example experiment file shows how to run a Telemetry test
+# directly, bypassing autotest.  This runs the "run_measurement"
+# script.  You need to supply both the name of the Telemetry test and
+# the page_set (via the test_args argument).
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+name: telemetry_without_autotest_example
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+# Replace "page_cycler_dhtml" below with the name of the Telemetry test
+# that you want run_measurement to run.  Also replace the page set below
+# (in the test_args field) with the appropriate page set for your test.
+# N.B.  The key to running telemetry without autotest is the 'suite' field.
+# Make sure your suite is 'telemtry', NOT 'telemetry_Crosperf'.
+benchmark: page_cycler_dhtml {
+    suite: telemetry 
+    iterations: 1
+    test_args: ./page_sets/page_cycler/dhtml.json
+}
+
+# Replace the chromeos image below with the actual path to your test image.
+test_image {
+  chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+}
diff --git a/crosperf/experiment_files/telemetry_perf_perf b/crosperf/experiment_files/telemetry_perf_perf
new file mode 100755
index 0000000..acdf96d
--- /dev/null
+++ b/crosperf/experiment_files/telemetry_perf_perf
@@ -0,0 +1,77 @@
+#!/bin/bash
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# Script for generating and running telemetry benchmarkes via crosperf with
+# different perf command lines in order to measure the impact of the perf
+# commands on performance. Crosperf cannot run the same benchmark multiple
+# times, so this script runs crosperf multpilpe times instead. Unfortunately,
+# this means you must compare the results yourself.
+#
+# Perf will run for the entire benchmark run, so results should be interpreted
+# in that context. i.e, if this shows a 3% overhead for a particular perf
+# command, that overhead would only be seen during the 2 seconds of measurement
+# during a Chrome OS Wide Profiling collection.
+set -e
+
+board=xxx #<you-board-here>
+remote=xxx #<your-remote-here>
+iterations=5
+chromeos_root=~/chromiumos
+chrome_src=~/chromium
+
+
+function GenerateExperiment() {
+  local perf_args="${1:+perf_args: $1}"
+  local track="$2"  # stable, beta, dev
+
+  cat <<_EOF
+$perf_args
+benchmark: page_cycler_v2.typical_25 {
+    suite: telemetry_Crosperf
+}
+
+$track {
+  build: latest-$track
+}
+_EOF
+}
+
+function RunExperiment() {
+  local name="$1"
+  local perf_command="$2"
+  GenerateExperiment "$perf_command" "stable" > /tmp/crosperf.exp
+  ./crosperf /tmp/crosperf.exp \
+    --name telemetry_perf_perf_${name} \
+    --board="${board}" \
+    --remote="${remote}" \
+    --iterations="${iterations}" \
+    --chromeos_root="${chromeos_root}" \
+    --chrome_src="${chrome_src}" \
+    --rerun=true \
+    --use_file_locks=true \
+    --locks_dir=/tmp/crosperf.locks
+}
+
+if [ "$board" = "xxx" -o "$remote" = "xxx" ]; then
+  echo "Please set board and remote at the top of this script before running."
+  exit -1
+fi
+
+
+# Note that "-a" is automatically inserted in the perf command line.
+
+# Control: No profiling.
+RunExperiment 'control' ''
+# This is our baseline standard 'cycles' perf command.
+RunExperiment 'cycles.flat' \
+  'record -e cycles -c 1000003'
+# Callgraph profiling.
+RunExperiment 'cycles.callgraph' \
+  'record -g -e cycles -c 4000037'
+# Memory bandwidth profiling. As a perf stat command, we expect imperceptible
+# overhead.
+RunExperiment 'memory.bandwidth' \
+  'stat -e cycles -e instructions -e uncore_imc/data_reads/ -e uncore_imc/data_writes/ -e cpu/event=0xD0,umask=0x11,name=MEM_UOPS_RETIRED-STLB_MISS_LOADS/ -e cpu/event=0xD0,umask=0x12,name=MEM_UOPS_RETIRED-STLB_MISS_STORES/'
+
diff --git a/crosperf/experiment_files/trybot-image.exp b/crosperf/experiment_files/trybot-image.exp
new file mode 100644
index 0000000..a261e08
--- /dev/null
+++ b/crosperf/experiment_files/trybot-image.exp
@@ -0,0 +1,33 @@
+# This example experiment shows how to run a basic test, using a
+# (previously made) trybot image.
+
+#
+# You should replace all the placeholders, marked by angle-brackets,
+# with the appropriate actual values.
+
+name: trybot_example
+board: <your-board-goes-here>
+
+# Note:  You can specify multiple remotes, to run your tests in parallel on
+# multiple machines. e.g. "remote: test-machine-1.com test-machine2.come
+# test-machine3.com"
+remote: <your-remote-goes-here>
+
+
+benchmark: canvasmark {
+  suite:telemetry_Crosperf
+  iterations: 1
+}
+
+
+# Replace <path-to-your-chroot-goes-here> with the actual directory path
+# to the top of your ChromimumOS chroot.
+trybot_image {
+  chromeos_root:<path-to-your-chroot-goes-here>
+  # Replace "trybot-lumpy-paladin/R34-5417.0.0-b1506" with the name of the
+  # trybot image that you wish to use.  You can find this by going to the
+  # trybot build log, going to the 'Report' stage, and looking for 'Build
+  # Artifacts' at the bottom. You can extract the trybot image name from that.
+  build:trybot-lumpy-paladin/R34-5417.0.0-b1506
+}
+
diff --git a/crosperf/experiment_runner.py b/crosperf/experiment_runner.py
new file mode 100644
index 0000000..b30c8bd
--- /dev/null
+++ b/crosperf/experiment_runner.py
@@ -0,0 +1,309 @@
+# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""The experiment runner module."""
+from __future__ import print_function
+
+import getpass
+import os
+import shutil
+import time
+
+import afe_lock_machine
+import test_flag
+
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils.email_sender import EmailSender
+from cros_utils.file_utils import FileUtils
+
+import config
+from experiment_status import ExperimentStatus
+from results_cache import CacheConditions
+from results_cache import ResultsCache
+from results_report import HTMLResultsReport
+from results_report import TextResultsReport
+from results_report import JSONResultsReport
+from schedv2 import Schedv2
+
+def _WriteJSONReportToFile(experiment, results_dir, json_report):
+  """Writes a JSON report to a file in results_dir."""
+  has_llvm = any('llvm' in l.compiler for l in experiment.labels)
+  compiler_string = 'llvm' if has_llvm else 'gcc'
+  board = experiment.labels[0].board
+  filename = 'report_%s_%s_%s.%s.json' % (
+      board, json_report.date, json_report.time.replace(':', '.'),
+      compiler_string)
+  fullname = os.path.join(results_dir, filename)
+  report_text = json_report.GetReport()
+  with open(fullname, 'w') as out_file:
+    out_file.write(report_text)
+
+
+class ExperimentRunner(object):
+  """ExperimentRunner Class."""
+
+  STATUS_TIME_DELAY = 30
+  THREAD_MONITOR_DELAY = 2
+
+  def __init__(self,
+               experiment,
+               json_report,
+               using_schedv2=False,
+               log=None,
+               cmd_exec=None):
+    self._experiment = experiment
+    self.l = log or logger.GetLogger(experiment.log_dir)
+    self._ce = cmd_exec or command_executer.GetCommandExecuter(self.l)
+    self._terminated = False
+    self.json_report = json_report
+    self.locked_machines = []
+    if experiment.log_level != 'verbose':
+      self.STATUS_TIME_DELAY = 10
+
+    # Setting this to True will use crosperf sched v2 (feature in progress).
+    self._using_schedv2 = using_schedv2
+
+  def _GetMachineList(self):
+    """Return a list of all requested machines.
+
+    Create a list of all the requested machines, both global requests and
+    label-specific requests, and return the list.
+    """
+    machines = self._experiment.remote
+    # All Label.remote is a sublist of experiment.remote.
+    for l in self._experiment.labels:
+      for r in l.remote:
+        assert r in machines
+    return machines
+
+  def _UpdateMachineList(self, locked_machines):
+    """Update machines lists to contain only locked machines.
+
+    Go through all the lists of requested machines, both global and
+    label-specific requests, and remove any machine that we were not
+    able to lock.
+
+    Args:
+      locked_machines: A list of the machines we successfully locked.
+    """
+    for m in self._experiment.remote:
+      if m not in locked_machines:
+        self._experiment.remote.remove(m)
+
+    for l in self._experiment.labels:
+      for m in l.remote:
+        if m not in locked_machines:
+          l.remote.remove(m)
+
+  def _LockAllMachines(self, experiment):
+    """Attempt to globally lock all of the machines requested for run.
+
+    This method will use the AFE server to globally lock all of the machines
+    requested for this crosperf run, to prevent any other crosperf runs from
+    being able to update/use the machines while this experiment is running.
+    """
+    if test_flag.GetTestMode():
+      self.locked_machines = self._GetMachineList()
+      self._experiment.locked_machines = self.locked_machines
+    else:
+      lock_mgr = afe_lock_machine.AFELockManager(
+          self._GetMachineList(),
+          '',
+          experiment.labels[0].chromeos_root,
+          None,
+          log=self.l,)
+      for m in lock_mgr.machines:
+        if not lock_mgr.MachineIsKnown(m):
+          lock_mgr.AddLocalMachine(m)
+      machine_states = lock_mgr.GetMachineStates('lock')
+      lock_mgr.CheckMachineLocks(machine_states, 'lock')
+      self.locked_machines = lock_mgr.UpdateMachines(True)
+      self._experiment.locked_machines = self.locked_machines
+      self._UpdateMachineList(self.locked_machines)
+      self._experiment.machine_manager.RemoveNonLockedMachines(
+          self.locked_machines)
+      if len(self.locked_machines) == 0:
+        raise RuntimeError('Unable to lock any machines.')
+
+  def _UnlockAllMachines(self, experiment):
+    """Attempt to globally unlock all of the machines requested for run.
+
+    The method will use the AFE server to globally unlock all of the machines
+    requested for this crosperf run.
+    """
+    if not self.locked_machines or test_flag.GetTestMode():
+      return
+
+    lock_mgr = afe_lock_machine.AFELockManager(
+        self.locked_machines,
+        '',
+        experiment.labels[0].chromeos_root,
+        None,
+        log=self.l,)
+    machine_states = lock_mgr.GetMachineStates('unlock')
+    lock_mgr.CheckMachineLocks(machine_states, 'unlock')
+    lock_mgr.UpdateMachines(False)
+
+  def _ClearCacheEntries(self, experiment):
+    for br in experiment.benchmark_runs:
+      cache = ResultsCache()
+      cache.Init(br.label.chromeos_image, br.label.chromeos_root,
+                 br.benchmark.test_name, br.iteration, br.test_args,
+                 br.profiler_args, br.machine_manager, br.machine,
+                 br.label.board, br.cache_conditions, br._logger, br.log_level,
+                 br.label, br.share_cache, br.benchmark.suite,
+                 br.benchmark.show_all_results, br.benchmark.run_local)
+      cache_dir = cache.GetCacheDirForWrite()
+      if os.path.exists(cache_dir):
+        self.l.LogOutput('Removing cache dir: %s' % cache_dir)
+        shutil.rmtree(cache_dir)
+
+  def _Run(self, experiment):
+    try:
+      if not experiment.locks_dir:
+        self._LockAllMachines(experiment)
+      if self._using_schedv2:
+        schedv2 = Schedv2(experiment)
+        experiment.set_schedv2(schedv2)
+      if CacheConditions.FALSE in experiment.cache_conditions:
+        self._ClearCacheEntries(experiment)
+      status = ExperimentStatus(experiment)
+      experiment.Run()
+      last_status_time = 0
+      last_status_string = ''
+      try:
+        if experiment.log_level != 'verbose':
+          self.l.LogStartDots()
+        while not experiment.IsComplete():
+          if last_status_time + self.STATUS_TIME_DELAY < time.time():
+            last_status_time = time.time()
+            border = '=============================='
+            if experiment.log_level == 'verbose':
+              self.l.LogOutput(border)
+              self.l.LogOutput(status.GetProgressString())
+              self.l.LogOutput(status.GetStatusString())
+              self.l.LogOutput(border)
+            else:
+              current_status_string = status.GetStatusString()
+              if current_status_string != last_status_string:
+                self.l.LogEndDots()
+                self.l.LogOutput(border)
+                self.l.LogOutput(current_status_string)
+                self.l.LogOutput(border)
+                last_status_string = current_status_string
+              else:
+                self.l.LogAppendDot()
+          time.sleep(self.THREAD_MONITOR_DELAY)
+      except KeyboardInterrupt:
+        self._terminated = True
+        self.l.LogError('Ctrl-c pressed. Cleaning up...')
+        experiment.Terminate()
+        raise
+      except SystemExit:
+        self._terminated = True
+        self.l.LogError('Unexpected exit. Cleaning up...')
+        experiment.Terminate()
+        raise
+    finally:
+      if not experiment.locks_dir:
+        self._UnlockAllMachines(experiment)
+
+  def _PrintTable(self, experiment):
+    self.l.LogOutput(TextResultsReport.FromExperiment(experiment).GetReport())
+
+  def _Email(self, experiment):
+    # Only email by default if a new run was completed.
+    send_mail = False
+    for benchmark_run in experiment.benchmark_runs:
+      if not benchmark_run.cache_hit:
+        send_mail = True
+        break
+    if (not send_mail and not experiment.email_to or
+        config.GetConfig('no_email')):
+      return
+
+    label_names = []
+    for label in experiment.labels:
+      label_names.append(label.name)
+    subject = '%s: %s' % (experiment.name, ' vs. '.join(label_names))
+
+    text_report = TextResultsReport.FromExperiment(experiment, True).GetReport()
+    text_report += ('\nResults are stored in %s.\n' %
+                    experiment.results_directory)
+    text_report = "<pre style='font-size: 13px'>%s</pre>" % text_report
+    html_report = HTMLResultsReport.FromExperiment(experiment).GetReport()
+    attachment = EmailSender.Attachment('report.html', html_report)
+    email_to = experiment.email_to or []
+    email_to.append(getpass.getuser())
+    EmailSender().SendEmail(email_to,
+                            subject,
+                            text_report,
+                            attachments=[attachment],
+                            msg_type='html')
+
+  def _StoreResults(self, experiment):
+    if self._terminated:
+      return
+    results_directory = experiment.results_directory
+    FileUtils().RmDir(results_directory)
+    FileUtils().MkDirP(results_directory)
+    self.l.LogOutput('Storing experiment file in %s.' % results_directory)
+    experiment_file_path = os.path.join(results_directory, 'experiment.exp')
+    FileUtils().WriteFile(experiment_file_path, experiment.experiment_file)
+
+    self.l.LogOutput('Storing results report in %s.' % results_directory)
+    results_table_path = os.path.join(results_directory, 'results.html')
+    report = HTMLResultsReport.FromExperiment(experiment).GetReport()
+    if self.json_report:
+      json_report = JSONResultsReport.FromExperiment(experiment,
+                                                     json_args={'indent': 2})
+      _WriteJSONReportToFile(experiment, results_directory, json_report)
+
+    FileUtils().WriteFile(results_table_path, report)
+
+    self.l.LogOutput('Storing email message body in %s.' % results_directory)
+    msg_file_path = os.path.join(results_directory, 'msg_body.html')
+    text_report = TextResultsReport.FromExperiment(experiment, True).GetReport()
+    text_report += ('\nResults are stored in %s.\n' %
+                    experiment.results_directory)
+    msg_body = "<pre style='font-size: 13px'>%s</pre>" % text_report
+    FileUtils().WriteFile(msg_file_path, msg_body)
+
+    self.l.LogOutput('Storing results of each benchmark run.')
+    for benchmark_run in experiment.benchmark_runs:
+      if benchmark_run.result:
+        benchmark_run_name = filter(str.isalnum, benchmark_run.name)
+        benchmark_run_path = os.path.join(results_directory, benchmark_run_name)
+        benchmark_run.result.CopyResultsTo(benchmark_run_path)
+        benchmark_run.result.CleanUp(benchmark_run.benchmark.rm_chroot_tmp)
+
+  def Run(self):
+    try:
+      self._Run(self._experiment)
+    finally:
+      # Always print the report at the end of the run.
+      self._PrintTable(self._experiment)
+      if not self._terminated:
+        self._StoreResults(self._experiment)
+        self._Email(self._experiment)
+
+
+class MockExperimentRunner(ExperimentRunner):
+  """Mocked ExperimentRunner for testing."""
+
+  def __init__(self, experiment, json_report):
+    super(MockExperimentRunner, self).__init__(experiment, json_report)
+
+  def _Run(self, experiment):
+    self.l.LogOutput("Would run the following experiment: '%s'." %
+                     experiment.name)
+
+  def _PrintTable(self, experiment):
+    self.l.LogOutput('Would print the experiment table.')
+
+  def _Email(self, experiment):
+    self.l.LogOutput('Would send result email.')
+
+  def _StoreResults(self, experiment):
+    self.l.LogOutput('Would store the results.')
diff --git a/crosperf/experiment_runner_unittest.py b/crosperf/experiment_runner_unittest.py
new file mode 100755
index 0000000..38ac387
--- /dev/null
+++ b/crosperf/experiment_runner_unittest.py
@@ -0,0 +1,450 @@
+#!/usr/bin/env python2
+#
+# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Tests for the experiment runner module."""
+
+from __future__ import print_function
+
+import StringIO
+import getpass
+import os
+
+import mock
+import unittest
+
+import experiment_runner
+import experiment_status
+import machine_manager
+import config
+import test_flag
+
+from experiment_factory import ExperimentFactory
+from experiment_file import ExperimentFile
+from results_cache import Result
+from results_report import HTMLResultsReport
+from results_report import TextResultsReport
+
+from cros_utils import command_executer
+from cros_utils.email_sender import EmailSender
+from cros_utils.file_utils import FileUtils
+
+EXPERIMENT_FILE_1 = """
+  board: parrot
+  remote: chromeos-parrot1.cros chromreos-parrot2.cros
+
+  benchmark: kraken {
+    suite: telemetry_Crosperf
+    iterations: 3
+  }
+
+  image1 {
+    chromeos_root: /usr/local/google/chromeos
+    chromeos_image: /usr/local/google/chromeos/src/build/images/parrot/latest/cros_image1.bin
+  }
+
+  image2 {
+    chromeos_image: /usr/local/google/chromeos/src/build/imaages/parrot/latest/cros_image2.bin
+  }
+  """
+
+# pylint: disable=protected-access
+
+
+class FakeLogger(object):
+  """Fake logger for tests."""
+
+  def __init__(self):
+    self.LogOutputCount = 0
+    self.LogErrorCount = 0
+    self.output_msgs = []
+    self.error_msgs = []
+    self.dot_count = 0
+    self.LogStartDotsCount = 0
+    self.LogEndDotsCount = 0
+    self.LogAppendDotCount = 0
+
+  def LogOutput(self, msg):
+    self.LogOutputCount += 1
+    self.output_msgs.append(msg)
+
+  def LogError(self, msg):
+    self.LogErrorCount += 1
+    self.error_msgs.append(msg)
+
+  def LogStartDots(self):
+    self.LogStartDotsCount += 1
+    self.dot_count += 1
+
+  def LogAppendDot(self):
+    self.LogAppendDotCount += 1
+    self.dot_count += 1
+
+  def LogEndDots(self):
+    self.LogEndDotsCount += 1
+
+  def Reset(self):
+    self.LogOutputCount = 0
+    self.LogErrorCount = 0
+    self.output_msgs = []
+    self.error_msgs = []
+    self.dot_count = 0
+    self.LogStartDotsCount = 0
+    self.LogEndDotsCount = 0
+    self.LogAppendDotCount = 0
+
+
+class ExperimentRunnerTest(unittest.TestCase):
+  """Test for experiment runner class."""
+
+  run_count = 0
+  is_complete_count = 0
+  mock_logger = FakeLogger()
+  mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
+
+  def make_fake_experiment(self):
+    test_flag.SetTestMode(True)
+    experiment_file = ExperimentFile(StringIO.StringIO(EXPERIMENT_FILE_1))
+    experiment = ExperimentFactory().GetExperiment(experiment_file,
+                                                   working_directory='',
+                                                   log_dir='')
+    return experiment
+
+  @mock.patch.object(machine_manager.MachineManager, 'AddMachine')
+  @mock.patch.object(os.path, 'isfile')
+
+  # pylint: disable=arguments-differ
+  def setUp(self, mock_isfile, _mock_addmachine):
+    mock_isfile.return_value = True
+    self.exp = self.make_fake_experiment()
+
+  def test_init(self):
+    er = experiment_runner.ExperimentRunner(self.exp,
+                                            json_report=False,
+                                            using_schedv2=False,
+                                            log=self.mock_logger,
+                                            cmd_exec=self.mock_cmd_exec)
+    self.assertFalse(er._terminated)
+    self.assertEqual(er.STATUS_TIME_DELAY, 10)
+
+    self.exp.log_level = 'verbose'
+    er = experiment_runner.ExperimentRunner(self.exp,
+                                            json_report=False,
+                                            using_schedv2=False,
+                                            log=self.mock_logger,
+                                            cmd_exec=self.mock_cmd_exec)
+    self.assertEqual(er.STATUS_TIME_DELAY, 30)
+
+  @mock.patch.object(experiment_status.ExperimentStatus, 'GetStatusString')
+  @mock.patch.object(experiment_status.ExperimentStatus, 'GetProgressString')
+  def test_run(self, mock_progress_string, mock_status_string):
+
+    self.run_count = 0
+    self.is_complete_count = 0
+
+    def reset():
+      self.run_count = 0
+      self.is_complete_count = 0
+
+    def FakeRun():
+      self.run_count += 1
+      return 0
+
+    def FakeIsComplete():
+      self.is_complete_count += 1
+      if self.is_complete_count < 3:
+        return False
+      else:
+        return True
+
+    self.mock_logger.Reset()
+    self.exp.Run = FakeRun
+    self.exp.IsComplete = FakeIsComplete
+
+    # Test 1: log_level == "quiet"
+    self.exp.log_level = 'quiet'
+    er = experiment_runner.ExperimentRunner(self.exp,
+                                            json_report=False,
+                                            using_schedv2=False,
+                                            log=self.mock_logger,
+                                            cmd_exec=self.mock_cmd_exec)
+    er.STATUS_TIME_DELAY = 2
+    mock_status_string.return_value = 'Fake status string'
+    er._Run(self.exp)
+    self.assertEqual(self.run_count, 1)
+    self.assertTrue(self.is_complete_count > 0)
+    self.assertEqual(self.mock_logger.LogStartDotsCount, 1)
+    self.assertEqual(self.mock_logger.LogAppendDotCount, 1)
+    self.assertEqual(self.mock_logger.LogEndDotsCount, 1)
+    self.assertEqual(self.mock_logger.dot_count, 2)
+    self.assertEqual(mock_progress_string.call_count, 0)
+    self.assertEqual(mock_status_string.call_count, 2)
+    self.assertEqual(self.mock_logger.output_msgs,
+                     ['==============================', 'Fake status string',
+                      '=============================='])
+    self.assertEqual(len(self.mock_logger.error_msgs), 0)
+
+    # Test 2: log_level == "average"
+    self.mock_logger.Reset()
+    reset()
+    self.exp.log_level = 'average'
+    mock_status_string.call_count = 0
+    er = experiment_runner.ExperimentRunner(self.exp,
+                                            json_report=False,
+                                            using_schedv2=False,
+                                            log=self.mock_logger,
+                                            cmd_exec=self.mock_cmd_exec)
+    er.STATUS_TIME_DELAY = 2
+    mock_status_string.return_value = 'Fake status string'
+    er._Run(self.exp)
+    self.assertEqual(self.run_count, 1)
+    self.assertTrue(self.is_complete_count > 0)
+    self.assertEqual(self.mock_logger.LogStartDotsCount, 1)
+    self.assertEqual(self.mock_logger.LogAppendDotCount, 1)
+    self.assertEqual(self.mock_logger.LogEndDotsCount, 1)
+    self.assertEqual(self.mock_logger.dot_count, 2)
+    self.assertEqual(mock_progress_string.call_count, 0)
+    self.assertEqual(mock_status_string.call_count, 2)
+    self.assertEqual(self.mock_logger.output_msgs,
+                     ['==============================', 'Fake status string',
+                      '=============================='])
+    self.assertEqual(len(self.mock_logger.error_msgs), 0)
+
+    # Test 3: log_level == "verbose"
+    self.mock_logger.Reset()
+    reset()
+    self.exp.log_level = 'verbose'
+    mock_status_string.call_count = 0
+    er = experiment_runner.ExperimentRunner(self.exp,
+                                            json_report=False,
+                                            using_schedv2=False,
+                                            log=self.mock_logger,
+                                            cmd_exec=self.mock_cmd_exec)
+    er.STATUS_TIME_DELAY = 2
+    mock_status_string.return_value = 'Fake status string'
+    mock_progress_string.return_value = 'Fake progress string'
+    er._Run(self.exp)
+    self.assertEqual(self.run_count, 1)
+    self.assertTrue(self.is_complete_count > 0)
+    self.assertEqual(self.mock_logger.LogStartDotsCount, 0)
+    self.assertEqual(self.mock_logger.LogAppendDotCount, 0)
+    self.assertEqual(self.mock_logger.LogEndDotsCount, 0)
+    self.assertEqual(self.mock_logger.dot_count, 0)
+    self.assertEqual(mock_progress_string.call_count, 2)
+    self.assertEqual(mock_status_string.call_count, 2)
+    self.assertEqual(self.mock_logger.output_msgs,
+                     ['==============================', 'Fake progress string',
+                      'Fake status string', '==============================',
+                      '==============================', 'Fake progress string',
+                      'Fake status string', '=============================='])
+    self.assertEqual(len(self.mock_logger.error_msgs), 0)
+
+  @mock.patch.object(TextResultsReport, 'GetReport')
+  def test_print_table(self, mock_report):
+    self.mock_logger.Reset()
+    mock_report.return_value = 'This is a fake experiment report.'
+    er = experiment_runner.ExperimentRunner(self.exp,
+                                            json_report=False,
+                                            using_schedv2=False,
+                                            log=self.mock_logger,
+                                            cmd_exec=self.mock_cmd_exec)
+    er._PrintTable(self.exp)
+    self.assertEqual(mock_report.call_count, 1)
+    self.assertEqual(self.mock_logger.output_msgs,
+                     ['This is a fake experiment report.'])
+
+  @mock.patch.object(HTMLResultsReport, 'GetReport')
+  @mock.patch.object(TextResultsReport, 'GetReport')
+  @mock.patch.object(EmailSender, 'Attachment')
+  @mock.patch.object(EmailSender, 'SendEmail')
+  @mock.patch.object(getpass, 'getuser')
+  def test_email(self, mock_getuser, mock_emailer, mock_attachment,
+                 mock_text_report, mock_html_report):
+
+    mock_getuser.return_value = 'john.smith@google.com'
+    mock_text_report.return_value = 'This is a fake text report.'
+    mock_html_report.return_value = 'This is a fake html report.'
+
+    self.mock_logger.Reset()
+    config.AddConfig('no_email', True)
+    self.exp.email_to = ['jane.doe@google.com']
+    er = experiment_runner.ExperimentRunner(self.exp,
+                                            json_report=False,
+                                            using_schedv2=False,
+                                            log=self.mock_logger,
+                                            cmd_exec=self.mock_cmd_exec)
+    # Test 1. Config:no_email; exp.email_to set ==> no email sent
+    er._Email(self.exp)
+    self.assertEqual(mock_getuser.call_count, 0)
+    self.assertEqual(mock_emailer.call_count, 0)
+    self.assertEqual(mock_attachment.call_count, 0)
+    self.assertEqual(mock_text_report.call_count, 0)
+    self.assertEqual(mock_html_report.call_count, 0)
+
+    # Test 2. Config: email. exp.email_to set; cache hit.  => send email
+    self.mock_logger.Reset()
+    config.AddConfig('no_email', False)
+    for r in self.exp.benchmark_runs:
+      r.cache_hit = True
+    er._Email(self.exp)
+    self.assertEqual(mock_getuser.call_count, 1)
+    self.assertEqual(mock_emailer.call_count, 1)
+    self.assertEqual(mock_attachment.call_count, 1)
+    self.assertEqual(mock_text_report.call_count, 1)
+    self.assertEqual(mock_html_report.call_count, 1)
+    self.assertEqual(len(mock_emailer.call_args), 2)
+    self.assertEqual(mock_emailer.call_args[0],
+                     (['jane.doe@google.com', 'john.smith@google.com'],
+                      ': image1 vs. image2',
+                      "<pre style='font-size: 13px'>This is a fake text "
+                      'report.\nResults are stored in _results.\n</pre>'))
+    self.assertTrue(type(mock_emailer.call_args[1]) is dict)
+    self.assertEqual(len(mock_emailer.call_args[1]), 2)
+    self.assertTrue('attachments' in mock_emailer.call_args[1].keys())
+    self.assertEqual(mock_emailer.call_args[1]['msg_type'], 'html')
+
+    mock_attachment.assert_called_with('report.html',
+                                       'This is a fake html report.')
+
+    # Test 3. Config: email; exp.mail_to set; no cache hit.  => send email
+    self.mock_logger.Reset()
+    mock_getuser.reset_mock()
+    mock_emailer.reset_mock()
+    mock_attachment.reset_mock()
+    mock_text_report.reset_mock()
+    mock_html_report.reset_mock()
+    config.AddConfig('no_email', False)
+    for r in self.exp.benchmark_runs:
+      r.cache_hit = False
+    er._Email(self.exp)
+    self.assertEqual(mock_getuser.call_count, 1)
+    self.assertEqual(mock_emailer.call_count, 1)
+    self.assertEqual(mock_attachment.call_count, 1)
+    self.assertEqual(mock_text_report.call_count, 1)
+    self.assertEqual(mock_html_report.call_count, 1)
+    self.assertEqual(len(mock_emailer.call_args), 2)
+    self.assertEqual(mock_emailer.call_args[0],
+                     (['jane.doe@google.com', 'john.smith@google.com',
+                       'john.smith@google.com'], ': image1 vs. image2',
+                      "<pre style='font-size: 13px'>This is a fake text "
+                      'report.\nResults are stored in _results.\n</pre>'))
+    self.assertTrue(type(mock_emailer.call_args[1]) is dict)
+    self.assertEqual(len(mock_emailer.call_args[1]), 2)
+    self.assertTrue('attachments' in mock_emailer.call_args[1].keys())
+    self.assertEqual(mock_emailer.call_args[1]['msg_type'], 'html')
+
+    mock_attachment.assert_called_with('report.html',
+                                       'This is a fake html report.')
+
+    # Test 4. Config: email; exp.mail_to = None; no cache hit. => send email
+    self.mock_logger.Reset()
+    mock_getuser.reset_mock()
+    mock_emailer.reset_mock()
+    mock_attachment.reset_mock()
+    mock_text_report.reset_mock()
+    mock_html_report.reset_mock()
+    self.exp.email_to = []
+    er._Email(self.exp)
+    self.assertEqual(mock_getuser.call_count, 1)
+    self.assertEqual(mock_emailer.call_count, 1)
+    self.assertEqual(mock_attachment.call_count, 1)
+    self.assertEqual(mock_text_report.call_count, 1)
+    self.assertEqual(mock_html_report.call_count, 1)
+    self.assertEqual(len(mock_emailer.call_args), 2)
+    self.assertEqual(mock_emailer.call_args[0],
+                     (['john.smith@google.com'], ': image1 vs. image2',
+                      "<pre style='font-size: 13px'>This is a fake text "
+                      'report.\nResults are stored in _results.\n</pre>'))
+    self.assertTrue(type(mock_emailer.call_args[1]) is dict)
+    self.assertEqual(len(mock_emailer.call_args[1]), 2)
+    self.assertTrue('attachments' in mock_emailer.call_args[1].keys())
+    self.assertEqual(mock_emailer.call_args[1]['msg_type'], 'html')
+
+    mock_attachment.assert_called_with('report.html',
+                                       'This is a fake html report.')
+
+    # Test 5. Config: email; exp.mail_to = None; cache hit => no email sent
+    self.mock_logger.Reset()
+    mock_getuser.reset_mock()
+    mock_emailer.reset_mock()
+    mock_attachment.reset_mock()
+    mock_text_report.reset_mock()
+    mock_html_report.reset_mock()
+    for r in self.exp.benchmark_runs:
+      r.cache_hit = True
+    er._Email(self.exp)
+    self.assertEqual(mock_getuser.call_count, 0)
+    self.assertEqual(mock_emailer.call_count, 0)
+    self.assertEqual(mock_attachment.call_count, 0)
+    self.assertEqual(mock_text_report.call_count, 0)
+    self.assertEqual(mock_html_report.call_count, 0)
+
+  @mock.patch.object(FileUtils, 'RmDir')
+  @mock.patch.object(FileUtils, 'MkDirP')
+  @mock.patch.object(FileUtils, 'WriteFile')
+  @mock.patch.object(HTMLResultsReport, 'FromExperiment')
+  @mock.patch.object(TextResultsReport, 'FromExperiment')
+  @mock.patch.object(Result, 'CopyResultsTo')
+  @mock.patch.object(Result, 'CleanUp')
+  def test_store_results(self, mock_cleanup, mock_copy, _mock_text_report,
+                         mock_report, mock_writefile, mock_mkdir, mock_rmdir):
+
+    self.mock_logger.Reset()
+    self.exp.results_directory = '/usr/local/crosperf-results'
+    bench_run = self.exp.benchmark_runs[5]
+    bench_path = '/usr/local/crosperf-results/' + filter(str.isalnum,
+                                                         bench_run.name)
+    self.assertEqual(len(self.exp.benchmark_runs), 6)
+
+    er = experiment_runner.ExperimentRunner(self.exp,
+                                            json_report=False,
+                                            using_schedv2=False,
+                                            log=self.mock_logger,
+                                            cmd_exec=self.mock_cmd_exec)
+
+    # Test 1. Make sure nothing is done if _terminated is true.
+    er._terminated = True
+    er._StoreResults(self.exp)
+    self.assertEqual(mock_cleanup.call_count, 0)
+    self.assertEqual(mock_copy.call_count, 0)
+    self.assertEqual(mock_report.call_count, 0)
+    self.assertEqual(mock_writefile.call_count, 0)
+    self.assertEqual(mock_mkdir.call_count, 0)
+    self.assertEqual(mock_rmdir.call_count, 0)
+    self.assertEqual(self.mock_logger.LogOutputCount, 0)
+
+    # Test 2. _terminated is false; everything works properly.
+    fake_result = Result(self.mock_logger, self.exp.labels[0], 'average',
+                         'daisy1')
+    for r in self.exp.benchmark_runs:
+      r.result = fake_result
+    er._terminated = False
+    er._StoreResults(self.exp)
+    self.assertEqual(mock_cleanup.call_count, 6)
+    mock_cleanup.called_with(bench_run.benchmark.rm_chroot_tmp)
+    self.assertEqual(mock_copy.call_count, 6)
+    mock_copy.called_with(bench_path)
+    self.assertEqual(mock_writefile.call_count, 3)
+    self.assertEqual(len(mock_writefile.call_args_list), 3)
+    first_args = mock_writefile.call_args_list[0]
+    second_args = mock_writefile.call_args_list[1]
+    self.assertEqual(first_args[0][0],
+                     '/usr/local/crosperf-results/experiment.exp')
+    self.assertEqual(second_args[0][0],
+                     '/usr/local/crosperf-results/results.html')
+    self.assertEqual(mock_mkdir.call_count, 1)
+    mock_mkdir.called_with('/usr/local/crosperf-results')
+    self.assertEqual(mock_rmdir.call_count, 1)
+    mock_rmdir.called_with('/usr/local/crosperf-results')
+    self.assertEqual(self.mock_logger.LogOutputCount, 4)
+    self.assertEqual(
+        self.mock_logger.output_msgs,
+        ['Storing experiment file in /usr/local/crosperf-results.',
+         'Storing results report in /usr/local/crosperf-results.',
+         'Storing email message body in /usr/local/crosperf-results.',
+         'Storing results of each benchmark run.'])
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/experiment_status.py b/crosperf/experiment_status.py
new file mode 100644
index 0000000..627db99
--- /dev/null
+++ b/crosperf/experiment_status.py
@@ -0,0 +1,145 @@
+# Copyright 2011 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""The class to show the banner."""
+
+from __future__ import print_function
+
+import collections
+import datetime
+import time
+
+
+class ExperimentStatus(object):
+  """The status class."""
+
+  def __init__(self, experiment):
+    self.experiment = experiment
+    self.num_total = len(self.experiment.benchmark_runs)
+    self.completed = 0
+    self.new_job_start_time = time.time()
+    self.log_level = experiment.log_level
+
+  def _GetProgressBar(self, num_complete, num_total):
+    ret = 'Done: %s%%' % int(100.0 * num_complete / num_total)
+    bar_length = 50
+    done_char = '>'
+    undone_char = ' '
+    num_complete_chars = bar_length * num_complete / num_total
+    num_undone_chars = bar_length - num_complete_chars
+    ret += ' [%s%s]' % (num_complete_chars * done_char,
+                        num_undone_chars * undone_char)
+    return ret
+
+  def GetProgressString(self):
+    """Get the elapsed_time, ETA."""
+    current_time = time.time()
+    if self.experiment.start_time:
+      elapsed_time = current_time - self.experiment.start_time
+    else:
+      elapsed_time = 0
+    try:
+      if self.completed != self.experiment.num_complete:
+        self.completed = self.experiment.num_complete
+        self.new_job_start_time = current_time
+      time_completed_jobs = (elapsed_time -
+                             (current_time - self.new_job_start_time))
+      # eta is calculated as:
+      #   ETA = (num_jobs_not_yet_started * estimated_time_per_job)
+      #          + time_left_for_current_job
+      #
+      #   where
+      #        num_jobs_not_yet_started = (num_total - num_complete - 1)
+      #
+      #        estimated_time_per_job = time_completed_jobs / num_run_complete
+      #
+      #        time_left_for_current_job = estimated_time_per_job -
+      #                                    time_spent_so_far_on_current_job
+      #
+      #  The biggest problem with this calculation is its assumption that
+      #  all jobs have roughly the same running time (blatantly false!).
+      #
+      #  ETA can come out negative if the time spent on the current job is
+      #  greater than the estimated time per job (e.g. you're running the
+      #  first long job, after a series of short jobs).  For now, if that
+      #  happens, we set the ETA to "Unknown."
+      #
+      eta_seconds = (float(self.num_total - self.experiment.num_complete - 1) *
+                     time_completed_jobs / self.experiment.num_run_complete +
+                     (time_completed_jobs / self.experiment.num_run_complete -
+                      (current_time - self.new_job_start_time)))
+
+      eta_seconds = int(eta_seconds)
+      if eta_seconds > 0:
+        eta = datetime.timedelta(seconds=eta_seconds)
+      else:
+        eta = 'Unknown'
+    except ZeroDivisionError:
+      eta = 'Unknown'
+    strings = []
+    strings.append('Current time: %s Elapsed: %s ETA: %s' %
+                   (datetime.datetime.now(),
+                    datetime.timedelta(seconds=int(elapsed_time)), eta))
+    strings.append(self._GetProgressBar(self.experiment.num_complete,
+                                        self.num_total))
+    return '\n'.join(strings)
+
+  def GetStatusString(self):
+    """Get the status string of all the benchmark_runs."""
+    status_bins = collections.defaultdict(list)
+    for benchmark_run in self.experiment.benchmark_runs:
+      status_bins[benchmark_run.timeline.GetLastEvent()].append(benchmark_run)
+
+    status_strings = []
+    for key, val in status_bins.iteritems():
+      if key == 'RUNNING':
+        get_description = self._GetNamesAndIterations
+      else:
+        get_description = self._GetCompactNamesAndIterations
+      status_strings.append('%s: %s' % (key, get_description(val)))
+
+    thread_status = ''
+    thread_status_format = 'Thread Status: \n{}\n'
+    if (self.experiment.schedv2() is None and
+        self.experiment.log_level == 'verbose'):
+      # Add the machine manager status.
+      thread_status = thread_status_format.format(
+          self.experiment.machine_manager.AsString())
+    elif self.experiment.schedv2():
+      # In schedv2 mode, we always print out thread status.
+      thread_status = thread_status_format.format(self.experiment.schedv2(
+      ).threads_status_as_string())
+
+    result = '{}{}'.format(thread_status, '\n'.join(status_strings))
+
+    return result
+
+  def _GetNamesAndIterations(self, benchmark_runs):
+    strings = []
+    t = time.time()
+    for benchmark_run in benchmark_runs:
+      t_last = benchmark_run.timeline.GetLastEventTime()
+      elapsed = str(datetime.timedelta(seconds=int(t - t_last)))
+      strings.append("'{0}' {1}".format(benchmark_run.name, elapsed))
+    return ' %s (%s)' % (len(strings), ', '.join(strings))
+
+  def _GetCompactNamesAndIterations(self, benchmark_runs):
+    grouped_benchmarks = collections.defaultdict(list)
+    for benchmark_run in benchmark_runs:
+      grouped_benchmarks[benchmark_run.label.name].append(benchmark_run)
+
+    output_segs = []
+    for label_name, label_runs in grouped_benchmarks.iteritems():
+      strings = []
+      benchmark_iterations = collections.defaultdict(list)
+      for benchmark_run in label_runs:
+        assert benchmark_run.label.name == label_name
+        benchmark_name = benchmark_run.benchmark.name
+        benchmark_iterations[benchmark_name].append(benchmark_run.iteration)
+      for key, val in benchmark_iterations.iteritems():
+        val.sort()
+        iterations = ','.join(map(str, val))
+        strings.append('{} [{}]'.format(key, iterations))
+      output_segs.append('  ' + label_name + ': ' + ', '.join(strings) + '\n')
+
+    return ' %s \n%s' % (len(benchmark_runs), ''.join(output_segs))
diff --git a/crosperf/field.py b/crosperf/field.py
new file mode 100644
index 0000000..bc92e2c
--- /dev/null
+++ b/crosperf/field.py
@@ -0,0 +1,152 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Module to represent a Field in an experiment file."""
+
+
+class Field(object):
+  """Class representing a Field in an experiment file."""
+
+  def __init__(self, name, required, default, inheritable, description):
+    self.name = name
+    self.required = required
+    self.assigned = False
+    self.default = default
+    self._value = default
+    self.inheritable = inheritable
+    self.description = description
+
+  def Set(self, value, parse=True):
+    if parse:
+      self._value = self._Parse(value)
+    else:
+      self._value = value
+    self.assigned = True
+
+  def Append(self, value):
+    self._value += self._Parse(value)
+    self.assigned = True
+
+  def _Parse(self, value):
+    return value
+
+  def Get(self):
+    return self._value
+
+  def GetString(self):
+    return str(self._value)
+
+
+class TextField(Field):
+  """Class of text field."""
+
+  def __init__(self,
+               name,
+               required=False,
+               default='',
+               inheritable=False,
+               description=''):
+    super(TextField, self).__init__(name, required, default, inheritable,
+                                    description)
+
+  def _Parse(self, value):
+    return str(value)
+
+
+class BooleanField(Field):
+  """Class of boolean field."""
+
+  def __init__(self,
+               name,
+               required=False,
+               default=False,
+               inheritable=False,
+               description=''):
+    super(BooleanField, self).__init__(name, required, default, inheritable,
+                                       description)
+
+  def _Parse(self, value):
+    if value.lower() == 'true':
+      return True
+    elif value.lower() == 'false':
+      return False
+    raise TypeError("Invalid value for '%s'. Must be true or false." %
+                    self.name)
+
+
+class IntegerField(Field):
+  """Class of integer field."""
+
+  def __init__(self,
+               name,
+               required=False,
+               default=0,
+               inheritable=False,
+               description=''):
+    super(IntegerField, self).__init__(name, required, default, inheritable,
+                                       description)
+
+  def _Parse(self, value):
+    return int(value)
+
+
+class FloatField(Field):
+  """Class of float field."""
+
+  def __init__(self,
+               name,
+               required=False,
+               default=0,
+               inheritable=False,
+               description=''):
+    super(FloatField, self).__init__(name, required, default, inheritable,
+                                     description)
+
+  def _Parse(self, value):
+    return float(value)
+
+
+class ListField(Field):
+  """Class of list field."""
+
+  def __init__(self,
+               name,
+               required=False,
+               default=None,
+               inheritable=False,
+               description=''):
+    super(ListField, self).__init__(name, required, default, inheritable,
+                                    description)
+
+  def _Parse(self, value):
+    return value.split()
+
+  def GetString(self):
+    return ' '.join(self._value)
+
+  def Append(self, value):
+    v = self._Parse(value)
+    if not self._value:
+      self._value = v
+    else:
+      self._value += v
+    self.assigned = True
+
+
+class EnumField(Field):
+  """Class of enum field."""
+
+  def __init__(self,
+               name,
+               options,
+               required=False,
+               default='',
+               inheritable=False,
+               description=''):
+    super(EnumField, self).__init__(name, required, default, inheritable,
+                                    description)
+    self.options = options
+
+  def _Parse(self, value):
+    if value not in self.options:
+      raise TypeError("Invalid enum value for field '%s'. Must be one of (%s)" %
+                      (self.name, ', '.join(self.options)))
+    return str(value)
diff --git a/crosperf/flag_test_unittest.py b/crosperf/flag_test_unittest.py
new file mode 100755
index 0000000..9f2a713
--- /dev/null
+++ b/crosperf/flag_test_unittest.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc. All Rights Reserved.
+
+"""The unittest of flags."""
+
+from __future__ import print_function
+import test_flag
+
+import unittest
+
+
+class FlagTestCase(unittest.TestCase):
+  """The unittest class."""
+  def test_test_flag(self):
+    # Verify that test_flag.is_test exists, that it is a list,
+    # and that it contains 1 element.
+    self.assertTrue(type(test_flag.is_test) is list)
+    self.assertEqual(len(test_flag.is_test), 1)
+
+    # Verify that the getting the flag works and that the flag
+    # contains False, its starting value.
+    save_flag = test_flag.GetTestMode()
+    self.assertFalse(save_flag)
+
+    # Verify that setting the flat to True, then getting it, works.
+    test_flag.SetTestMode(True)
+    self.assertTrue(test_flag.GetTestMode())
+
+    # Verify that setting the flag to False, then getting it, works.
+    test_flag.SetTestMode(save_flag)
+    self.assertFalse(test_flag.GetTestMode())
+
+    # Verify that test_flag.is_test still exists, that it still is a
+    # list, and that it still contains 1 element.
+    self.assertTrue(type(test_flag.is_test) is list)
+    self.assertEqual(len(test_flag.is_test), 1)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/generate_report.py b/crosperf/generate_report.py
new file mode 100755
index 0000000..e0add99
--- /dev/null
+++ b/crosperf/generate_report.py
@@ -0,0 +1,277 @@
+#!/usr/bin/env python2
+#
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Given a specially-formatted JSON object, generates results report(s).
+
+The JSON object should look like:
+{"data": BenchmarkData, "platforms": BenchmarkPlatforms}
+
+BenchmarkPlatforms is a [str], each of which names a platform the benchmark
+  was run on (e.g. peppy, shamu, ...). Note that the order of this list is
+  related with the order of items in BenchmarkData.
+
+BenchmarkData is a {str: [PlatformData]}. The str is the name of the benchmark,
+and a PlatformData is a set of data for a given platform. There must be one
+PlatformData for each benchmark, for each element in BenchmarkPlatforms.
+
+A PlatformData is a [{str: float}], where each str names a metric we recorded,
+and the float is the value for that metric. Each element is considered to be
+the metrics collected from an independent run of this benchmark. NOTE: Each
+PlatformData is expected to have a "retval" key, with the return value of
+the benchmark. If the benchmark is successful, said return value should be 0.
+Otherwise, this will break some of our JSON functionality.
+
+Putting it all together, a JSON object will end up looking like:
+  { "platforms": ["peppy", "peppy-new-crosstool"],
+    "data": {
+      "bench_draw_line": [
+        [{"time (ms)": 1.321, "memory (mb)": 128.1, "retval": 0},
+         {"time (ms)": 1.920, "memory (mb)": 128.4, "retval": 0}],
+        [{"time (ms)": 1.221, "memory (mb)": 124.3, "retval": 0},
+         {"time (ms)": 1.423, "memory (mb)": 123.9, "retval": 0}]
+      ]
+    }
+  }
+
+Which says that we ran a benchmark on platforms named peppy, and
+  peppy-new-crosstool.
+We ran one benchmark, named bench_draw_line.
+It was run twice on each platform.
+Peppy's runs took 1.321ms and 1.920ms, while peppy-new-crosstool's took 1.221ms
+  and 1.423ms. None of the runs failed to complete.
+"""
+
+from __future__ import division
+from __future__ import print_function
+
+import argparse
+import functools
+import json
+import os
+import sys
+import traceback
+
+from results_report import BenchmarkResults
+from results_report import HTMLResultsReport
+from results_report import JSONResultsReport
+from results_report import TextResultsReport
+
+
+def CountBenchmarks(benchmark_runs):
+  """Counts the number of iterations for each benchmark in benchmark_runs."""
+  # Example input for benchmark_runs:
+  # {"bench": [[run1, run2, run3], [run1, run2, run3, run4]]}
+  def _MaxLen(results):
+    return 0 if not results else max(len(r) for r in results)
+  return [(name, _MaxLen(results))
+          for name, results in benchmark_runs.iteritems()]
+
+
+def CutResultsInPlace(results, max_keys=50, complain_on_update=True):
+  """Limits the given benchmark results to max_keys keys in-place.
+
+  This takes the `data` field from the benchmark input, and mutates each
+  benchmark run to contain `max_keys` elements (ignoring special elements, like
+  "retval"). At the moment, it just selects the first `max_keys` keyvals,
+  alphabetically.
+
+  If complain_on_update is true, this will print a message noting that a
+  truncation occurred.
+
+  This returns the `results` object that was passed in, for convenience.
+
+  e.g.
+  >>> benchmark_data = {
+  ...   "bench_draw_line": [
+  ...     [{"time (ms)": 1.321, "memory (mb)": 128.1, "retval": 0},
+  ...      {"time (ms)": 1.920, "memory (mb)": 128.4, "retval": 0}],
+  ...     [{"time (ms)": 1.221, "memory (mb)": 124.3, "retval": 0},
+  ...      {"time (ms)": 1.423, "memory (mb)": 123.9, "retval": 0}]
+  ...   ]
+  ... }
+  >>> CutResultsInPlace(benchmark_data, max_keys=1, complain_on_update=False)
+  {
+    'bench_draw_line': [
+      [{'memory (mb)': 128.1, 'retval': 0},
+       {'memory (mb)': 128.4, 'retval': 0}],
+      [{'memory (mb)': 124.3, 'retval': 0},
+       {'memory (mb)': 123.9, 'retval': 0}]
+    ]
+  }
+  """
+  actually_updated = False
+  for bench_results in results.itervalues():
+    for platform_results in bench_results:
+      for i, result in enumerate(platform_results):
+        # Keep the keys that come earliest when sorted alphabetically.
+        # Forcing alphabetical order is arbitrary, but necessary; otherwise,
+        # the keyvals we'd emit would depend on our iteration order through a
+        # map.
+        removable_keys = sorted(k for k in result if k != 'retval')
+        retained_keys = removable_keys[:max_keys]
+        platform_results[i] = {k: result[k] for k in retained_keys}
+        # retval needs to be passed through all of the time.
+        retval = result.get('retval')
+        if retval is not None:
+          platform_results[i]['retval'] = retval
+        actually_updated = actually_updated or \
+          len(retained_keys) != len(removable_keys)
+
+  if actually_updated and complain_on_update:
+    print("Warning: Some benchmark keyvals have been truncated.",
+          file=sys.stderr)
+  return results
+
+
+def _ConvertToASCII(obj):
+  """Convert an object loaded from JSON to ASCII; JSON gives us unicode."""
+
+  # Using something like `object_hook` is insufficient, since it only fires on
+  # actual JSON objects. `encoding` fails, too, since the default decoder always
+  # uses unicode() to decode strings.
+  if isinstance(obj, unicode):
+    return str(obj)
+  if isinstance(obj, dict):
+    return {_ConvertToASCII(k): _ConvertToASCII(v) for k, v in obj.iteritems()}
+  if isinstance(obj, list):
+    return [_ConvertToASCII(v) for v in obj]
+  return obj
+
+
+def _PositiveInt(s):
+  i = int(s)
+  if i < 0:
+    raise argparse.ArgumentTypeError('%d is not a positive integer.' % (i, ))
+  return i
+
+
+def _AccumulateActions(args):
+  """Given program arguments, determines what actions we want to run.
+
+  Returns [(ResultsReportCtor, str)], where ResultsReportCtor can construct a
+  ResultsReport, and the str is the file extension for the given report.
+  """
+  results = []
+  # The order of these is arbitrary.
+  if args.json:
+    results.append((JSONResultsReport, 'json'))
+  if args.text:
+    results.append((TextResultsReport, 'txt'))
+  if args.email:
+    email_ctor = functools.partial(TextResultsReport, email=True)
+    results.append((email_ctor, 'email'))
+  # We emit HTML if nothing else was specified.
+  if args.html or not results:
+    results.append((HTMLResultsReport, 'html'))
+  return results
+
+
+# Note: get_contents is a function, because it may be expensive (generating some
+# HTML reports takes O(seconds) on my machine, depending on the size of the
+# input data).
+def WriteFile(output_prefix, extension, get_contents, overwrite, verbose):
+  """Writes `contents` to a file named "${output_prefix}.${extension}".
+
+  get_contents should be a zero-args function that returns a string (of the
+  contents to write).
+  If output_prefix == '-', this writes to stdout.
+  If overwrite is False, this will not overwrite files.
+  """
+  if output_prefix == '-':
+    if verbose:
+      print('Writing %s report to stdout' % (extension, ), file=sys.stderr)
+    sys.stdout.write(get_contents())
+    return
+
+  file_name = '%s.%s' % (output_prefix, extension)
+  if not overwrite and os.path.exists(file_name):
+    raise IOError('Refusing to write %s -- it already exists' % (file_name, ))
+
+  with open(file_name, 'w') as out_file:
+    if verbose:
+      print('Writing %s report to %s' % (extension, file_name), file=sys.stderr)
+    out_file.write(get_contents())
+
+
+def RunActions(actions, benchmark_results, output_prefix, overwrite, verbose):
+  """Runs `actions`, returning True if all succeeded."""
+  failed = False
+
+  report_ctor = None # Make the linter happy
+  for report_ctor, extension in actions:
+    try:
+      get_contents = lambda: report_ctor(benchmark_results).GetReport()
+      WriteFile(output_prefix, extension, get_contents, overwrite, verbose)
+    except Exception:
+      # Complain and move along; we may have more actions that might complete
+      # successfully.
+      failed = True
+      traceback.print_exc()
+  return not failed
+
+
+def PickInputFile(input_name):
+  """Given program arguments, returns file to read for benchmark input."""
+  return sys.stdin if input_name == '-' else open(input_name)
+
+
+def _NoPerfReport(_label_name, _benchmark_name, _benchmark_iteration):
+  return {}
+
+
+def _ParseArgs(argv):
+  parser = argparse.ArgumentParser(description='Turns JSON into results '
+                                   'report(s).')
+  parser.add_argument('-v', '--verbose', action='store_true',
+                      help='Be a tiny bit more verbose.')
+  parser.add_argument('-f', '--force', action='store_true',
+                      help='Overwrite existing results files.')
+  parser.add_argument('-o', '--output', default='report', type=str,
+                      help='Prefix of the output filename (default: report). '
+                      '- means stdout.')
+  parser.add_argument('-i', '--input', required=True, type=str,
+                      help='Where to read the JSON from. - means stdin.')
+  parser.add_argument('-l', '--statistic-limit', default=0, type=_PositiveInt,
+                      help='The maximum number of benchmark statistics to '
+                      'display from a single run. 0 implies unlimited.')
+  parser.add_argument('--json', action='store_true',
+                      help='Output a JSON report.')
+  parser.add_argument('--text', action='store_true',
+                      help='Output a text report.')
+  parser.add_argument('--email', action='store_true',
+                      help='Output a text report suitable for email.')
+  parser.add_argument('--html', action='store_true',
+                      help='Output an HTML report (this is the default if no '
+                      'other output format is specified).')
+  return parser.parse_args(argv)
+
+
+def Main(argv):
+  args = _ParseArgs(argv)
+  # JSON likes to load UTF-8; our results reporter *really* doesn't like
+  # UTF-8.
+  with PickInputFile(args.input) as in_file:
+    raw_results = _ConvertToASCII(json.load(in_file))
+
+  platform_names = raw_results['platforms']
+  results = raw_results['data']
+  if args.statistic_limit:
+    results = CutResultsInPlace(results, max_keys=args.statistic_limit)
+  benches = CountBenchmarks(results)
+  # In crosperf, a label is essentially a platform+configuration. So, a name of
+  # a label and a name of a platform are equivalent for our purposes.
+  bench_results = BenchmarkResults(label_names=platform_names,
+                                   benchmark_names_and_iterations=benches,
+                                   run_keyvals=results,
+                                   read_perf_report=_NoPerfReport)
+  actions = _AccumulateActions(args)
+  ok = RunActions(actions, bench_results, args.output, args.force,
+                  args.verbose)
+  return 0 if ok else 1
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv[1:]))
diff --git a/crosperf/generate_report_unittest.py b/crosperf/generate_report_unittest.py
new file mode 100755
index 0000000..a5d0063
--- /dev/null
+++ b/crosperf/generate_report_unittest.py
@@ -0,0 +1,146 @@
+#!/usr/bin/env python2
+#
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Test for generate_report.py."""
+
+from __future__ import division
+from __future__ import print_function
+
+from StringIO import StringIO
+
+import copy
+import json
+import mock
+import test_flag
+import unittest
+
+import generate_report
+import results_report
+
+class _ContextualStringIO(StringIO):
+  """StringIO that can be used in `with` statements."""
+  def __init__(self, *args):
+    StringIO.__init__(self, *args)
+
+  def __enter__(self):
+    return self
+
+  def __exit__(self, _type, _value, _traceback):
+    pass
+
+
+class GenerateReportTests(unittest.TestCase):
+  """Tests for generate_report.py."""
+  def testCountBenchmarks(self):
+    runs = {
+        'foo': [[{}, {}, {}], [{}, {}, {}, {}]],
+        'bar': [],
+        'baz': [[], [{}], [{}, {}, {}]]
+    }
+    results = generate_report.CountBenchmarks(runs)
+    expected_results = [('foo', 4), ('bar', 0), ('baz', 3)]
+    self.assertItemsEqual(expected_results, results)
+
+  def testCutResultsInPlace(self):
+    bench_data = {
+        'foo': [[{'a': 1, 'b': 2, 'c': 3}, {'a': 3, 'b': 2.5, 'c': 1}]],
+        'bar': [[{'d': 11, 'e': 12, 'f': 13}]],
+        'baz': [[{'g': 12, 'h': 13}]],
+        'qux': [[{'i': 11}]],
+    }
+    original_bench_data = copy.deepcopy(bench_data)
+
+    max_keys = 2
+    results = generate_report.CutResultsInPlace(bench_data, max_keys=max_keys,
+                                                complain_on_update=False)
+    # Cuts should be in-place.
+    self.assertIs(results, bench_data)
+    self.assertItemsEqual(original_bench_data.keys(), bench_data.keys())
+    for bench_name, original_runs in original_bench_data.iteritems():
+      bench_runs = bench_data[bench_name]
+      self.assertEquals(len(original_runs), len(bench_runs))
+      # Order of these sub-lists shouldn't have changed.
+      for original_list, new_list in zip(original_runs, bench_runs):
+        self.assertEqual(len(original_list), len(new_list))
+        for original_keyvals, sub_keyvals in zip(original_list, new_list):
+          # sub_keyvals must be a subset of original_keyvals
+          self.assertDictContainsSubset(sub_keyvals, original_keyvals)
+
+
+  def testCutResultsInPlaceLeavesRetval(self):
+    bench_data = {
+        'foo': [[{'retval': 0, 'a': 1}]],
+        'bar': [[{'retval': 1}]],
+        'baz': [[{'RETVAL': 1}]],
+    }
+    results = generate_report.CutResultsInPlace(bench_data, max_keys=0,
+                                                complain_on_update=False)
+    # Just reach into results assuming we know it otherwise outputs things
+    # sanely. If it doesn't, testCutResultsInPlace should give an indication as
+    # to what, exactly, is broken.
+    self.assertEqual(results['foo'][0][0].items(), [('retval', 0)])
+    self.assertEqual(results['bar'][0][0].items(), [('retval', 1)])
+    self.assertEqual(results['baz'][0][0].items(), [])
+
+  def _RunMainWithInput(self, args, input_obj):
+    assert '-i' not in args
+    args += ['-i', '-']
+    input_buf = _ContextualStringIO(json.dumps(input_obj))
+    with mock.patch('generate_report.PickInputFile', return_value=input_buf) \
+        as patched_pick:
+      result = generate_report.Main(args)
+      patched_pick.assert_called_once_with('-')
+      return result
+
+  @mock.patch('generate_report.RunActions')
+  def testMain(self, mock_run_actions):
+    # Email is left out because it's a bit more difficult to test, and it'll be
+    # mildly obvious if it's failing.
+    args = ['--json', '--html', '--text']
+    return_code = self._RunMainWithInput(args, {'platforms': [], 'data': {}})
+    self.assertEqual(0, return_code)
+    self.assertEqual(mock_run_actions.call_count, 1)
+    ctors = [ctor for ctor, _ in mock_run_actions.call_args[0][0]]
+    self.assertItemsEqual(ctors, [
+        results_report.JSONResultsReport,
+        results_report.TextResultsReport,
+        results_report.HTMLResultsReport,
+    ])
+
+  @mock.patch('generate_report.RunActions')
+  def testMainSelectsHTMLIfNoReportsGiven(self, mock_run_actions):
+    args = []
+    return_code = self._RunMainWithInput(args, {'platforms': [], 'data': {}})
+    self.assertEqual(0, return_code)
+    self.assertEqual(mock_run_actions.call_count, 1)
+    ctors = [ctor for ctor, _ in mock_run_actions.call_args[0][0]]
+    self.assertItemsEqual(ctors, [results_report.HTMLResultsReport])
+
+  # We only mock print_exc so we don't have exception info printed to stdout.
+  @mock.patch('generate_report.WriteFile', side_effect=ValueError('Oh noo'))
+  @mock.patch('traceback.print_exc')
+  def testRunActionsRunsAllActionsRegardlessOfExceptions(self, mock_print_exc,
+                                                         mock_write_file):
+    actions = [(None, 'json'), (None, 'html'), (None, 'text'), (None, 'email')]
+    output_prefix = '-'
+    ok = generate_report.RunActions(actions, {}, output_prefix, overwrite=False,
+                                    verbose=False)
+    self.assertFalse(ok)
+    self.assertEqual(mock_write_file.call_count, len(actions))
+    self.assertEqual(mock_print_exc.call_count, len(actions))
+
+  @mock.patch('generate_report.WriteFile')
+  def testRunActionsReturnsTrueIfAllActionsSucceed(self, mock_write_file):
+    actions = [(None, 'json'), (None, 'html'), (None, 'text')]
+    output_prefix = '-'
+    ok = generate_report.RunActions(actions, {}, output_prefix, overwrite=False,
+                                    verbose=False)
+    self.assertEqual(mock_write_file.call_count, len(actions))
+    self.assertTrue(ok)
+
+
+if __name__ == '__main__':
+  test_flag.SetTestMode(True)
+  unittest.main()
diff --git a/crosperf/help.py b/crosperf/help.py
new file mode 100644
index 0000000..61ed8ea
--- /dev/null
+++ b/crosperf/help.py
@@ -0,0 +1,114 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Module to print help message."""
+
+from __future__ import print_function
+
+import sys
+import textwrap
+from settings_factory import BenchmarkSettings
+from settings_factory import GlobalSettings
+from settings_factory import LabelSettings
+
+
+class Help(object):
+  """The help class."""
+
+  def GetUsage(self):
+    return """%s [OPTIONS] EXPERIMENT_FILE""" % (sys.argv[0])
+
+  def _WrapLine(self, line):
+    return '\n'.join(textwrap.wrap(line, 80))
+
+  def _GetFieldDescriptions(self, fields):
+    res = ''
+    for field_name in fields:
+      field = fields[field_name]
+      res += 'Field:\t\t%s\n' % field.name
+      res += self._WrapLine('Description:\t%s' % field.description) + '\n'
+      res += 'Type:\t\t%s\n' % type(field).__name__.replace('Field', '')
+      res += 'Required:\t%s\n' % field.required
+      if field.default:
+        res += 'Default:\t%s\n' % field.default
+      res += '\n'
+    return res
+
+  def GetHelp(self):
+    global_fields = self._GetFieldDescriptions(GlobalSettings('').fields)
+    benchmark_fields = self._GetFieldDescriptions(BenchmarkSettings('').fields)
+    label_fields = self._GetFieldDescriptions(LabelSettings('').fields)
+
+    return """%s is a script for running performance experiments on
+ChromeOS. It allows one to run ChromeOS Autotest benchmarks over
+several images and compare the results to determine whether there
+is a performance difference.
+
+Comparing several images using %s is referred to as running an
+"experiment". An "experiment file" is a configuration file which holds
+all the information that describes the experiment and how it should be
+run. An example of a simple experiment file is below:
+
+--------------------------------- test.exp ---------------------------------
+name: my_experiment
+board: x86-alex
+remote: chromeos2-row1-rack4-host7.cros 172.18.122.132
+
+benchmark: page_cycler_v2.morejs {
+  suite: telemetry_Crosperf
+  iterations: 3
+}
+
+my_first_image {
+  chromeos_image: /usr/local/chromeos-1/chromiumos_image.bin
+}
+
+my_second_image {
+  chromeos_image:  /usr/local/chromeos-2/chromiumos_image.bin
+}
+----------------------------------------------------------------------------
+
+This experiment file names the experiment "my_experiment". It will be
+run on the board x86-alex. Benchmarks will be run using two remote
+devices, one is a device specified by a hostname and the other is a
+device specified by it's IP address. Benchmarks will be run in
+parallel across these devices.  There is currently no way to specify
+which benchmark will run on each device.
+
+We define one "benchmark" that will be run, page_cycler_v2.morejs. This
+benchmark has two "fields", one which specifies that this benchmark is
+part of the telemetry_Crosperf suite (this is the common way to run
+most Telemetry benchmarks), and the other which specifies how many
+iterations it will run for.
+
+We specify one or more "labels" or images which will be compared. The
+page_cycler_v2.morejs benchmark will be run on each of these images 3
+times and a result table will be output which compares them for all
+the images specified.
+
+The full list of fields that can be specified in the experiment file
+are as follows:
+=================
+Global Fields
+=================
+%s
+=================
+Benchmark Fields
+=================
+%s
+=================
+Label Fields
+=================
+%s
+
+Note that global fields are overidden by label or benchmark fields, if
+they can be specified in both places. Fields that are specified as
+arguments override fields specified in experiment files.
+
+%s is invoked by passing it a path to an experiment file,
+as well as any options (in addition to those specified in the
+experiment file).  Crosperf runs the experiment and caches the results
+(or reads the previously cached experiment results out of the cache),
+generates and displays a report based on the run, and emails the
+report to the user.  If the results were all read out of the cache,
+then by default no email is generated.
+""" % (sys.argv[0], sys.argv[0], global_fields, benchmark_fields, label_fields,
+       sys.argv[0])
diff --git a/crosperf/image_checksummer.py b/crosperf/image_checksummer.py
new file mode 100644
index 0000000..e330084
--- /dev/null
+++ b/crosperf/image_checksummer.py
@@ -0,0 +1,69 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Compute image checksum."""
+
+from __future__ import print_function
+
+import os
+import threading
+
+from cros_utils import logger
+from cros_utils.file_utils import FileUtils
+
+
+class ImageChecksummer(object):
+  """Compute image checksum."""
+
+  class PerImageChecksummer(object):
+    """Compute checksum for an image."""
+
+    def __init__(self, label, log_level):
+      self._lock = threading.Lock()
+      self.label = label
+      self._checksum = None
+      self.log_level = log_level
+
+    def Checksum(self):
+      with self._lock:
+        if not self._checksum:
+          logger.GetLogger().LogOutput("Acquiring checksum for '%s'." %
+                                       self.label.name)
+          self._checksum = None
+          if self.label.image_type != 'local':
+            raise RuntimeError('Called Checksum on non-local image!')
+          if self.label.chromeos_image:
+            if os.path.exists(self.label.chromeos_image):
+              self._checksum = FileUtils().Md5File(
+                  self.label.chromeos_image, log_level=self.log_level)
+              logger.GetLogger().LogOutput('Computed checksum is '
+                                           ': %s' % self._checksum)
+          if not self._checksum:
+            raise RuntimeError('Checksum computing error.')
+          logger.GetLogger().LogOutput('Checksum is: %s' % self._checksum)
+        return self._checksum
+
+  _instance = None
+  _lock = threading.Lock()
+  _per_image_checksummers = {}
+
+  def __new__(cls, *args, **kwargs):
+    with cls._lock:
+      if not cls._instance:
+        cls._instance = super(ImageChecksummer, cls).__new__(cls, *args,
+                                                             **kwargs)
+      return cls._instance
+
+  def Checksum(self, label, log_level):
+    if label.image_type != 'local':
+      raise RuntimeError('Attempt to call Checksum on non-local image.')
+    with self._lock:
+      if label.name not in self._per_image_checksummers:
+        self._per_image_checksummers[label.name] = (
+            ImageChecksummer.PerImageChecksummer(label, log_level))
+      checksummer = self._per_image_checksummers[label.name]
+
+    try:
+      return checksummer.Checksum()
+    except:
+      logger.GetLogger().LogError('Could not compute checksum of image in label'
+                                  " '%s'." % label.name)
+      raise
diff --git a/crosperf/label.py b/crosperf/label.py
new file mode 100644
index 0000000..d993c15
--- /dev/null
+++ b/crosperf/label.py
@@ -0,0 +1,159 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""The label of benchamrks."""
+
+from __future__ import print_function
+
+import hashlib
+import os
+
+from image_checksummer import ImageChecksummer
+from cros_utils.file_utils import FileUtils
+from cros_utils import misc
+
+
+class Label(object):
+  """The label class."""
+
+  def __init__(self,
+               name,
+               chromeos_image,
+               autotest_path,
+               chromeos_root,
+               board,
+               remote,
+               image_args,
+               cache_dir,
+               cache_only,
+               log_level,
+               compiler,
+               chrome_src=None):
+
+    self.image_type = self._GetImageType(chromeos_image)
+
+    # Expand ~
+    chromeos_root = os.path.expanduser(chromeos_root)
+    if self.image_type == 'local':
+      chromeos_image = os.path.expanduser(chromeos_image)
+
+    self.name = name
+    self.chromeos_image = chromeos_image
+    self.autotest_path = autotest_path
+    self.board = board
+    self.remote = remote
+    self.image_args = image_args
+    self.cache_dir = cache_dir
+    self.cache_only = cache_only
+    self.log_level = log_level
+    self.chrome_version = ''
+    self.compiler = compiler
+
+    if not chromeos_root:
+      if self.image_type == 'local':
+        chromeos_root = FileUtils().ChromeOSRootFromImage(chromeos_image)
+      if not chromeos_root:
+        raise RuntimeError("No ChromeOS root given for label '%s' and could "
+                           "not determine one from image path: '%s'." %
+                           (name, chromeos_image))
+    else:
+      chromeos_root = FileUtils().CanonicalizeChromeOSRoot(chromeos_root)
+      if not chromeos_root:
+        raise RuntimeError("Invalid ChromeOS root given for label '%s': '%s'." %
+                           (name, chromeos_root))
+
+    self.chromeos_root = chromeos_root
+    if not chrome_src:
+      self.chrome_src = os.path.join(
+          self.chromeos_root, '.cache/distfiles/target/chrome-src-internal')
+      if not os.path.exists(self.chrome_src):
+        self.chrome_src = os.path.join(self.chromeos_root,
+                                       '.cache/distfiles/target/chrome-src')
+    else:
+      chromeos_src = misc.CanonicalizePath(chrome_src)
+      if not chromeos_src:
+        raise RuntimeError("Invalid Chrome src given for label '%s': '%s'." %
+                           (name, chrome_src))
+      self.chrome_src = chromeos_src
+
+    self._SetupChecksum()
+
+  def _SetupChecksum(self):
+    """Compute label checksum only once."""
+
+    self.checksum = None
+    if self.image_type == 'local':
+      self.checksum = ImageChecksummer().Checksum(self, self.log_level)
+    elif self.image_type == 'trybot':
+      self.checksum = hashlib.md5(self.chromeos_image).hexdigest()
+
+  def _GetImageType(self, chromeos_image):
+    image_type = None
+    if chromeos_image.find('xbuddy://') < 0:
+      image_type = 'local'
+    elif chromeos_image.find('trybot') >= 0:
+      image_type = 'trybot'
+    else:
+      image_type = 'official'
+    return image_type
+
+  def __hash__(self):
+    """Label objects are used in a map, so provide "hash" and "equal"."""
+
+    return hash(self.name)
+
+  def __eq__(self, other):
+    """Label objects are used in a map, so provide "hash" and "equal"."""
+
+    return isinstance(other, Label) and other.name == self.name
+
+  def __str__(self):
+    """For better debugging."""
+
+    return 'label[name="{}"]'.format(self.name)
+
+
+class MockLabel(object):
+  """The mock label class."""
+
+  def __init__(self,
+               name,
+               chromeos_image,
+               autotest_path,
+               chromeos_root,
+               board,
+               remote,
+               image_args,
+               cache_dir,
+               cache_only,
+               log_level,
+               compiler,
+               chrome_src=None):
+    self.name = name
+    self.chromeos_image = chromeos_image
+    self.autotest_path = autotest_path
+    self.board = board
+    self.remote = remote
+    self.cache_dir = cache_dir
+    self.cache_only = cache_only
+    if not chromeos_root:
+      self.chromeos_root = '/tmp/chromeos_root'
+    else:
+      self.chromeos_root = chromeos_root
+    self.image_args = image_args
+    self.chrome_src = chrome_src
+    self.image_type = self._GetImageType(chromeos_image)
+    self.checksum = ''
+    self.log_level = log_level
+    self.compiler = compiler
+    self.chrome_version = 'Fake Chrome Version 50'
+
+  def _GetImageType(self, chromeos_image):
+    image_type = None
+    if chromeos_image.find('xbuddy://') < 0:
+      image_type = 'local'
+    elif chromeos_image.find('trybot') >= 0:
+      image_type = 'trybot'
+    else:
+      image_type = 'official'
+    return image_type
diff --git a/crosperf/machine_image_manager.py b/crosperf/machine_image_manager.py
new file mode 100644
index 0000000..3cc464b
--- /dev/null
+++ b/crosperf/machine_image_manager.py
@@ -0,0 +1,304 @@
+
+# Copyright 2015 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""MachineImageManager allocates images to duts."""
+
+class MachineImageManager(object):
+  """Management of allocating images to duts.
+
+    * Data structure we have -
+
+      duts_ - list of duts, for each duts, we assume the following 2 properties
+      exist - label_ (the current label the duts_ carries or None, if it has an
+      alien image) and name (a string)
+
+      labels_ - a list of labels, for each label, we assume these properties
+      exist - remote (a set/vector/list of dut names (not dut object), to each
+      of which this image is compatible), remote could be none, which means
+      universal compatible.
+
+      label_duts_ - for each label, we maintain a list of duts, onto which the
+      label is imaged. Note this is an array of lists. Each element of each list
+      is an integer which is dut oridnal. We access this array using label
+      ordinal.
+
+      allocate_log_ - a list of allocation record. For example, if we allocate
+      l1 to d1, then l2 to d2, then allocate_log_ would be [(1, 1), (2, 2)].
+      This is used for debug/log, etc. All tuples in the list are integer pairs
+      (label_ordinal, dut_ordinal).
+
+      n_duts_ - number of duts.
+
+      n_labels_ - number of labels.
+
+      dut_name_ordinal_ - mapping from dut name (a string) to an integer,
+      starting from 0. So that duts_[dut_name_ordinal_[a_dut.name]]= a_dut.
+
+    * Problem abstraction -
+
+      Assume we have the following matrix - label X machine (row X col). A 'X'
+      in (i, j) in the matrix means machine and lable is not compatible, or that
+      we cannot image li to Mj.
+
+           M1   M2   M3
+      L1    X
+
+      L2             X
+
+      L3    X    X
+
+      Now that we'll try to find a way to fill Ys in the matrix so that -
+
+        a) - each row at least get a Y, this ensures that each label get imaged
+        at least once, an apparent prerequiste.
+
+        b) - each column get at most N Ys. This make sure we can successfully
+        finish all tests by re-image each machine at most N times. That being
+        said, we could *OPTIONALLY* reimage some machines more than N times to
+        *accelerate* the test speed.
+
+      How to choose initial N for b) -
+      If number of duts (nd) is equal to or more than that of labels (nl), we
+      start from N == 1. Else we start from N = nl - nd + 1.
+
+      We will begin the search with pre-defined N, if we fail to find such a
+      solution for such N, we increase N by 1 and continue the search till we
+      get N == nl, at this case we fails.
+
+      Such a solution ensures minimal number of reimages.
+
+    * Solution representation
+
+      The solution will be placed inside the matrix, like below
+
+           M1   M2   M3   M4
+      L1    X    X    Y
+
+      L2    Y         X
+
+      L3    X    Y    X
+
+    * Allocation algorithm
+
+      When Mj asks for a image, we check column j, pick the first cell that
+      contains a 'Y', and mark the cell '_'. If no such 'Y' exists (like M4 in
+      the above solution matrix), we just pick an image that the minimal reimage
+      number.
+
+      After allocate for M3
+           M1   M2   M3   M4
+      L1    X    X    _
+
+      L2    Y         X
+
+      L3    X    Y    X
+
+      After allocate for M4
+           M1   M2   M3   M4
+      L1    X    X    _
+
+      L2    Y         X    _
+
+      L3    X    Y    X
+
+      After allocate for M2
+           M1   M2   M3   M4
+      L1    X    X    _
+
+      L2    Y         X    _
+
+      L3    X    _    X
+
+      After allocate for M1
+           M1   M2   M3   M4
+      L1    X    X    _
+
+      L2    _         X    _
+
+      L3    X    _    X
+
+      After allocate for M2
+           M1   M2   M3   M4
+      L1    X    X    _
+
+      L2    _    _    X    _
+
+      L3    X    _    X
+
+      If we try to allocate for M1 or M2 or M3 again, we get None.
+
+    * Special / common case to handle seperately
+
+      We have only 1 dut or if we have only 1 label, that's simple enough.
+
+    """
+
+  def __init__(self, labels, duts):
+    self.labels_ = labels
+    self.duts_ = duts
+    self.n_labels_ = len(labels)
+    self.n_duts_ = len(duts)
+    self.dut_name_ordinal_ = dict()
+    for idx, dut in enumerate(self.duts_):
+      self.dut_name_ordinal_[dut.name] = idx
+
+    # Generate initial matrix containg 'X' or ' '.
+    self.matrix_ = [['X' if (l.remote and len(l.remote)) else ' ' \
+                     for _ in range(self.n_duts_)] for l in self.labels_]
+    for ol, l in enumerate(self.labels_):
+      if l.remote:
+        for r in l.remote:
+          self.matrix_[ol][self.dut_name_ordinal_[r]] = ' '
+
+    self.label_duts_ = [[] for _ in range(self.n_labels_)]
+    self.allocate_log_ = []
+
+  def compute_initial_allocation(self):
+    """Compute the initial label-dut allocation.
+
+        This method finds the most efficient way that every label gets imaged at
+        least once.
+
+        Returns:
+          False, only if not all labels could be imaged to a certain machine,
+          otherwise True.
+        """
+
+    if self.n_duts_ == 1:
+      for i, v in self.matrix_vertical_generator(0):
+        if v != 'X':
+          self.matrix_[i][0] = 'Y'
+      return
+
+    if self.n_labels_ == 1:
+      for j, v in self.matrix_horizontal_generator(0):
+        if v != 'X':
+          self.matrix_[0][j] = 'Y'
+      return
+
+    if self.n_duts_ >= self.n_labels_:
+      n = 1
+    else:
+      n = self.n_labels_ - self.n_duts_ + 1
+    while n <= self.n_labels_:
+      if self._compute_initial_allocation_internal(0, n):
+        break
+      n += 1
+
+    return n <= self.n_labels_
+
+  def _record_allocate_log(self, label_i, dut_j):
+    self.allocate_log_.append((label_i, dut_j))
+    self.label_duts_[label_i].append(dut_j)
+
+  def allocate(self, dut, schedv2=None):
+    """Allocate a label for dut.
+
+        Args:
+          dut: the dut that asks for a new image.
+          schedv2: the scheduling instance, we need the benchmark run
+                   information with schedv2 for a better allocation.
+
+        Returns:
+          a label to image onto the dut or None if no more available images for
+          the dut.
+        """
+    j = self.dut_name_ordinal_[dut.name]
+    # 'can_' prefix means candidate label's.
+    can_reimage_number = 999
+    can_i = 999
+    can_label = None
+    can_pending_br_num = 0
+    for i, v in self.matrix_vertical_generator(j):
+      label = self.labels_[i]
+
+      # 2 optimizations here regarding allocating label to dut.
+      # Note schedv2 might be None in case we do not need this
+      # optimization or we are in testing mode.
+      if schedv2 is not None:
+        pending_br_num = len(schedv2.get_label_map()[label])
+        if pending_br_num == 0:
+          # (A) - we have finished all br of this label,
+          # apparently, we do not want to reimaeg dut to
+          # this label.
+          continue
+      else:
+        # In case we do not have a schedv2 instance, mark
+        # pending_br_num as 0, so pending_br_num >=
+        # can_pending_br_num is always True.
+        pending_br_num = 0
+
+      # For this time being, I just comment this out until we have a
+      # better estimation how long each benchmarkrun takes.
+      # if (pending_br_num <= 5 and
+      #     len(self.label_duts_[i]) >= 1):
+      #     # (B) this is heuristic - if there are just a few test cases
+      #     # (say <5) left undone for this label, and there is at least
+      #     # 1 other machine working on this lable, we probably not want
+      #     # to bother to reimage this dut to help with these 5 test
+      #     # cases
+      #     continue
+
+      if v == 'Y':
+        self.matrix_[i][j] = '_'
+        self._record_allocate_log(i, j)
+        return label
+      if v == ' ':
+        label_reimage_number = len(self.label_duts_[i])
+        if ((can_label is None) or
+            (label_reimage_number < can_reimage_number or
+             (label_reimage_number == can_reimage_number and
+              pending_br_num >= can_pending_br_num))):
+          can_reimage_number = label_reimage_number
+          can_i = i
+          can_label = label
+          can_pending_br_num = pending_br_num
+
+    # All labels are marked either '_' (already taken) or 'X' (not
+    # compatible), so return None to notify machine thread to quit.
+    if can_label is None:
+      return None
+
+    # At this point, we don't find any 'Y' for the machine, so we go the
+    # 'min' approach.
+    self.matrix_[can_i][j] = '_'
+    self._record_allocate_log(can_i, j)
+    return can_label
+
+  def matrix_vertical_generator(self, col):
+    """Iterate matrix vertically at column 'col'.
+
+        Yield row number i and value at matrix_[i][col].
+        """
+    for i, _ in enumerate(self.labels_):
+      yield i, self.matrix_[i][col]
+
+  def matrix_horizontal_generator(self, row):
+    """Iterate matrix horizontally at row 'row'.
+
+        Yield col number j and value at matrix_[row][j].
+        """
+    for j, _ in enumerate(self.duts_):
+      yield j, self.matrix_[row][j]
+
+  def _compute_initial_allocation_internal(self, level, N):
+    """Search matrix for d with N."""
+
+    if level == self.n_labels_:
+      return True
+
+    for j, v in self.matrix_horizontal_generator(level):
+      if v == ' ':
+        # Before we put a 'Y', we check how many Y column 'j' has.
+        # Note y[0] is row idx, y[1] is the cell value.
+        ny = reduce(lambda x, y: x + 1 if (y[1] == 'Y') else x,
+                    self.matrix_vertical_generator(j), 0)
+        if ny < N:
+          self.matrix_[level][j] = 'Y'
+          if self._compute_initial_allocation_internal(level + 1, N):
+            return True
+          self.matrix_[level][j] = ' '
+
+    return False
diff --git a/crosperf/machine_image_manager_unittest.py b/crosperf/machine_image_manager_unittest.py
new file mode 100755
index 0000000..fe41dc0
--- /dev/null
+++ b/crosperf/machine_image_manager_unittest.py
@@ -0,0 +1,290 @@
+#!/usr/bin/env python2
+
+# Copyright 2015 Google Inc. All Rights Reserved.
+
+"""Unit tests for the MachineImageManager class."""
+
+from __future__ import print_function
+
+import random
+import unittest
+
+from machine_image_manager import MachineImageManager
+
+
+class MockLabel(object):
+  """Class for generating a mock Label."""
+
+  def __init__(self, name, remotes=None):
+    self.name = name
+    self.remote = remotes
+
+  def __hash__(self):
+    """Provide hash function for label.
+
+       This is required because Label object is used inside a dict as key.
+       """
+    return hash(self.name)
+
+  def __eq__(self, other):
+    """Provide eq function for label.
+
+       This is required because Label object is used inside a dict as key.
+       """
+    return isinstance(other, MockLabel) and other.name == self.name
+
+
+class MockDut(object):
+  """Class for creating a mock Device-Under-Test (DUT)."""
+
+  def __init__(self, name, label=None):
+    self.name = name
+    self.label_ = label
+
+
+class MachineImageManagerTester(unittest.TestCase):
+  """Class for testing MachineImageManager."""
+
+  def gen_duts_by_name(self, *names):
+    duts = []
+    for n in names:
+      duts.append(MockDut(n))
+    return duts
+
+  def print_matrix(self, matrix):
+    for r in matrix:
+      for v in r:
+        print('{} '.format('.' if v == ' ' else v)),
+      print('')
+
+  def create_labels_and_duts_from_pattern(self, pattern):
+    labels = []
+    duts = []
+    for i, r in enumerate(pattern):
+      l = MockLabel('l{}'.format(i), [])
+      for j, v in enumerate(r.split()):
+        if v == '.':
+          l.remote.append('m{}'.format(j))
+        if i == 0:
+          duts.append(MockDut('m{}'.format(j)))
+      labels.append(l)
+    return labels, duts
+
+  def check_matrix_against_pattern(self, matrix, pattern):
+    for i, s in enumerate(pattern):
+      for j, v in enumerate(s.split()):
+        self.assertTrue(v == '.' and matrix[i][j] == ' ' or v == matrix[i][j])
+
+  def pattern_based_test(self, inp, output):
+    labels, duts = self.create_labels_and_duts_from_pattern(inp)
+    mim = MachineImageManager(labels, duts)
+    self.assertTrue(mim.compute_initial_allocation())
+    self.check_matrix_against_pattern(mim.matrix_, output)
+    return mim
+
+  def test_single_dut(self):
+    labels = [MockLabel('l1'), MockLabel('l2'), MockLabel('l3')]
+    dut = MockDut('m1')
+    mim = MachineImageManager(labels, [dut])
+    mim.compute_initial_allocation()
+    self.assertTrue(mim.matrix_ == [['Y'], ['Y'], ['Y']])
+
+  def test_single_label(self):
+    labels = [MockLabel('l1')]
+    duts = self.gen_duts_by_name('m1', 'm2', 'm3')
+    mim = MachineImageManager(labels, duts)
+    mim.compute_initial_allocation()
+    self.assertTrue(mim.matrix_ == [['Y', 'Y', 'Y']])
+
+  def test_case1(self):
+    labels = [MockLabel('l1', ['m1', 'm2']), MockLabel('l2', ['m2', 'm3']),
+              MockLabel('l3', ['m1'])]
+    duts = [MockDut('m1'), MockDut('m2'), MockDut('m3')]
+    mim = MachineImageManager(labels, duts)
+    self.assertTrue(mim.matrix_ == [[' ', ' ', 'X'], ['X', ' ', ' '], [' ', 'X',
+                                                                       'X']])
+    mim.compute_initial_allocation()
+    self.assertTrue(mim.matrix_ == [[' ', 'Y', 'X'], ['X', ' ', 'Y'], ['Y', 'X',
+                                                                       'X']])
+
+  def test_case2(self):
+    labels = [MockLabel('l1', ['m1', 'm2']), MockLabel('l2', ['m2', 'm3']),
+              MockLabel('l3', ['m1'])]
+    duts = [MockDut('m1'), MockDut('m2'), MockDut('m3')]
+    mim = MachineImageManager(labels, duts)
+    self.assertTrue(mim.matrix_ == [[' ', ' ', 'X'], ['X', ' ', ' '], [' ', 'X',
+                                                                       'X']])
+    mim.compute_initial_allocation()
+    self.assertTrue(mim.matrix_ == [[' ', 'Y', 'X'], ['X', ' ', 'Y'], ['Y', 'X',
+                                                                       'X']])
+
+  def test_case3(self):
+    labels = [MockLabel('l1', ['m1', 'm2']), MockLabel('l2', ['m2', 'm3']),
+              MockLabel('l3', ['m1'])]
+    duts = [MockDut('m1', labels[0]), MockDut('m2'), MockDut('m3')]
+    mim = MachineImageManager(labels, duts)
+    mim.compute_initial_allocation()
+    self.assertTrue(mim.matrix_ == [[' ', 'Y', 'X'], ['X', ' ', 'Y'], ['Y', 'X',
+                                                                       'X']])
+
+  def test_case4(self):
+    labels = [MockLabel('l1', ['m1', 'm2']), MockLabel('l2', ['m2', 'm3']),
+              MockLabel('l3', ['m1'])]
+    duts = [MockDut('m1'), MockDut('m2', labels[0]), MockDut('m3')]
+    mim = MachineImageManager(labels, duts)
+    mim.compute_initial_allocation()
+    self.assertTrue(mim.matrix_ == [[' ', 'Y', 'X'], ['X', ' ', 'Y'], ['Y', 'X',
+                                                                       'X']])
+
+  def test_case5(self):
+    labels = [MockLabel('l1', ['m3']), MockLabel('l2', ['m3']),
+              MockLabel('l3', ['m1'])]
+    duts = self.gen_duts_by_name('m1', 'm2', 'm3')
+    mim = MachineImageManager(labels, duts)
+    self.assertTrue(mim.compute_initial_allocation())
+    self.assertTrue(mim.matrix_ == [['X', 'X', 'Y'], ['X', 'X', 'Y'], ['Y', 'X',
+                                                                       'X']])
+
+  def test_2x2_with_allocation(self):
+    labels = [MockLabel('l0'), MockLabel('l1')]
+    duts = [MockDut('m0'), MockDut('m1')]
+    mim = MachineImageManager(labels, duts)
+    self.assertTrue(mim.compute_initial_allocation())
+    self.assertTrue(mim.allocate(duts[0]) == labels[0])
+    self.assertTrue(mim.allocate(duts[0]) == labels[1])
+    self.assertTrue(mim.allocate(duts[0]) is None)
+    self.assertTrue(mim.matrix_[0][0] == '_')
+    self.assertTrue(mim.matrix_[1][0] == '_')
+    self.assertTrue(mim.allocate(duts[1]) == labels[1])
+
+  def test_10x10_general(self):
+    """Gen 10x10 matrix."""
+    n = 10
+    labels = []
+    duts = []
+    for i in range(n):
+      labels.append(MockLabel('l{}'.format(i)))
+      duts.append(MockDut('m{}'.format(i)))
+    mim = MachineImageManager(labels, duts)
+    self.assertTrue(mim.compute_initial_allocation())
+    for i in range(n):
+      for j in range(n):
+        if i == j:
+          self.assertTrue(mim.matrix_[i][j] == 'Y')
+        else:
+          self.assertTrue(mim.matrix_[i][j] == ' ')
+    self.assertTrue(mim.allocate(duts[3]).name == 'l3')
+
+  def test_random_generated(self):
+    n = 10
+    labels = []
+    duts = []
+    for i in range(10):
+      # generate 3-5 machines that is compatible with this label
+      l = MockLabel('l{}'.format(i), [])
+      r = random.random()
+      for _ in range(4):
+        t = int(r * 10) % n
+        r *= 10
+        l.remote.append('m{}'.format(t))
+      labels.append(l)
+      duts.append(MockDut('m{}'.format(i)))
+    mim = MachineImageManager(labels, duts)
+    self.assertTrue(mim.compute_initial_allocation())
+
+  def test_10x10_fully_random(self):
+    inp = ['X  .  .  .  X  X  .  X  X  .', 'X  X  .  X  .  X  .  X  X  .',
+           'X  X  X  .  .  X  .  X  .  X', 'X  .  X  X  .  .  X  X  .  X',
+           'X  X  X  X  .  .  .  X  .  .', 'X  X  .  X  .  X  .  .  X  .',
+           '.  X  .  X  .  X  X  X  .  .', '.  X  .  X  X  .  X  X  .  .',
+           'X  X  .  .  .  X  X  X  .  .', '.  X  X  X  X  .  .  .  .  X']
+    output = ['X  Y  .  .  X  X  .  X  X  .', 'X  X  Y  X  .  X  .  X  X  .',
+              'X  X  X  Y  .  X  .  X  .  X', 'X  .  X  X  Y  .  X  X  .  X',
+              'X  X  X  X  .  Y  .  X  .  .', 'X  X  .  X  .  X  Y  .  X  .',
+              'Y  X  .  X  .  X  X  X  .  .', '.  X  .  X  X  .  X  X  Y  .',
+              'X  X  .  .  .  X  X  X  .  Y', '.  X  X  X  X  .  .  Y  .  X']
+    self.pattern_based_test(inp, output)
+
+  def test_10x10_fully_random2(self):
+    inp = ['X  .  X  .  .  X  .  X  X  X', 'X  X  X  X  X  X  .  .  X  .',
+           'X  .  X  X  X  X  X  .  .  X', 'X  X  X  .  X  .  X  X  .  .',
+           '.  X  .  X  .  X  X  X  X  X', 'X  X  X  X  X  X  X  .  .  X',
+           'X  .  X  X  X  X  X  .  .  X', 'X  X  X  .  X  X  X  X  .  .',
+           'X  X  X  .  .  .  X  X  X  X', '.  X  X  .  X  X  X  .  X  X']
+    output = ['X  .  X  Y  .  X  .  X  X  X', 'X  X  X  X  X  X  Y  .  X  .',
+              'X  Y  X  X  X  X  X  .  .  X', 'X  X  X  .  X  Y  X  X  .  .',
+              '.  X  Y  X  .  X  X  X  X  X', 'X  X  X  X  X  X  X  Y  .  X',
+              'X  .  X  X  X  X  X  .  Y  X', 'X  X  X  .  X  X  X  X  .  Y',
+              'X  X  X  .  Y  .  X  X  X  X', 'Y  X  X  .  X  X  X  .  X  X']
+    self.pattern_based_test(inp, output)
+
+  def test_3x4_with_allocation(self):
+    inp = ['X  X  .  .', '.  .  X  .', 'X  .  X  .']
+    output = ['X  X  Y  .', 'Y  .  X  .', 'X  Y  X  .']
+    mim = self.pattern_based_test(inp, output)
+    self.assertTrue(mim.allocate(mim.duts_[2]) == mim.labels_[0])
+    self.assertTrue(mim.allocate(mim.duts_[3]) == mim.labels_[2])
+    self.assertTrue(mim.allocate(mim.duts_[0]) == mim.labels_[1])
+    self.assertTrue(mim.allocate(mim.duts_[1]) == mim.labels_[2])
+    self.assertTrue(mim.allocate(mim.duts_[3]) == mim.labels_[1])
+    self.assertTrue(mim.allocate(mim.duts_[3]) == mim.labels_[0])
+    self.assertTrue(mim.allocate(mim.duts_[3]) is None)
+    self.assertTrue(mim.allocate(mim.duts_[2]) is None)
+    self.assertTrue(mim.allocate(mim.duts_[1]) == mim.labels_[1])
+    self.assertTrue(mim.allocate(mim.duts_[1]) == None)
+    self.assertTrue(mim.allocate(mim.duts_[0]) == None)
+    self.assertTrue(mim.label_duts_[0] == [2, 3])
+    self.assertTrue(mim.label_duts_[1] == [0, 3, 1])
+    self.assertTrue(mim.label_duts_[2] == [3, 1])
+    self.assertTrue(mim.allocate_log_ == [(0, 2), (2, 3), (1, 0), (2, 1),
+                                          (1, 3), (0, 3), (1, 1)])
+
+  def test_cornercase_1(self):
+    """This corner case is brought up by Caroline.
+
+        The description is -
+
+        If you have multiple labels and multiple machines, (so we don't
+        automatically fall into the 1 dut or 1 label case), but all of the
+        labels specify the same 1 remote, then instead of assigning the same
+        machine to all the labels, your algorithm fails to assign any...
+
+        So first step is to create an initial matrix like below, l0, l1 and l2
+        all specify the same 1 remote - m0.
+
+             m0    m1    m2
+        l0   .     X     X
+
+        l1   .     X     X
+
+        l2   .     X     X
+
+        The search process will be like this -
+        a) try to find a solution with at most 1 'Y's per column (but ensure at
+        least 1 Y per row), fail
+        b) try to find a solution with at most 2 'Y's per column (but ensure at
+        least 1 Y per row), fail
+        c) try to find a solution with at most 3 'Y's per column (but ensure at
+        least 1 Y per row), succeed, so we end up having this solution
+
+            m0    m1    m2
+        l0   Y     X     X
+
+        l1   Y     X     X
+
+        l2   Y     X     X
+        """
+
+    inp = ['.  X  X', '.  X  X', '.  X  X']
+    output = ['Y  X  X', 'Y  X  X', 'Y  X  X']
+    mim = self.pattern_based_test(inp, output)
+    self.assertTrue(mim.allocate(mim.duts_[1]) is None)
+    self.assertTrue(mim.allocate(mim.duts_[2]) is None)
+    self.assertTrue(mim.allocate(mim.duts_[0]) == mim.labels_[0])
+    self.assertTrue(mim.allocate(mim.duts_[0]) == mim.labels_[1])
+    self.assertTrue(mim.allocate(mim.duts_[0]) == mim.labels_[2])
+    self.assertTrue(mim.allocate(mim.duts_[0]) is None)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/machine_manager.py b/crosperf/machine_manager.py
new file mode 100644
index 0000000..2fdf141
--- /dev/null
+++ b/crosperf/machine_manager.py
@@ -0,0 +1,709 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Machine Manager module."""
+
+from __future__ import print_function
+
+import collections
+import file_lock_machine
+import hashlib
+import image_chromeos
+import math
+import os.path
+import re
+import sys
+import threading
+import time
+
+import test_flag
+from cros_utils import command_executer
+from cros_utils import logger
+
+CHECKSUM_FILE = '/usr/local/osimage_checksum_file'
+
+
+class BadChecksum(Exception):
+  """Raised if all machines for a label don't have the same checksum."""
+  pass
+
+
+class BadChecksumString(Exception):
+  """Raised if all machines for a label don't have the same checksum string."""
+  pass
+
+
+class MissingLocksDirectory(Exception):
+  """Raised when cannot find/access the machine locks directory."""
+
+
+class CrosCommandError(Exception):
+  """Raised when an error occurs running command on DUT."""
+
+
+class CrosMachine(object):
+  """The machine class."""
+
+  def __init__(self, name, chromeos_root, log_level, cmd_exec=None):
+    self.name = name
+    self.image = None
+    # We relate a dut with a label if we reimage the dut using label or we
+    # detect at the very beginning that the dut is running this label.
+    self.label = None
+    self.checksum = None
+    self.locked = False
+    self.released_time = time.time()
+    self.test_run = None
+    self.chromeos_root = chromeos_root
+    self.log_level = log_level
+    self.cpuinfo = None
+    self.machine_id = None
+    self.checksum_string = None
+    self.meminfo = None
+    self.phys_kbytes = None
+    self.ce = cmd_exec or command_executer.GetCommandExecuter(
+        log_level=self.log_level)
+    self.SetUpChecksumInfo()
+
+  def SetUpChecksumInfo(self):
+    if not self.IsReachable():
+      self.machine_checksum = None
+      return
+    self._GetMemoryInfo()
+    self._GetCPUInfo()
+    self._ComputeMachineChecksumString()
+    self._GetMachineID()
+    self.machine_checksum = self._GetMD5Checksum(self.checksum_string)
+    self.machine_id_checksum = self._GetMD5Checksum(self.machine_id)
+
+  def IsReachable(self):
+    command = 'ls'
+    ret = self.ce.CrosRunCommand(command,
+                                 machine=self.name,
+                                 chromeos_root=self.chromeos_root)
+    if ret:
+      return False
+    return True
+
+  def _ParseMemoryInfo(self):
+    line = self.meminfo.splitlines()[0]
+    usable_kbytes = int(line.split()[1])
+    # This code is from src/third_party/test/files/client/bin/base_utils.py
+    # usable_kbytes is system's usable DRAM in kbytes,
+    #   as reported by memtotal() from device /proc/meminfo memtotal
+    #   after Linux deducts 1.5% to 9.5% for system table overhead
+    # Undo the unknown actual deduction by rounding up
+    #   to next small multiple of a big power-of-two
+    #   eg  12GB - 5.1% gets rounded back up to 12GB
+    mindeduct = 0.005  # 0.5 percent
+    maxdeduct = 0.095  # 9.5 percent
+    # deduction range 1.5% .. 9.5% supports physical mem sizes
+    #    6GB .. 12GB in steps of .5GB
+    #   12GB .. 24GB in steps of 1 GB
+    #   24GB .. 48GB in steps of 2 GB ...
+    # Finer granularity in physical mem sizes would require
+    #   tighter spread between min and max possible deductions
+
+    # increase mem size by at least min deduction, without rounding
+    min_kbytes = int(usable_kbytes / (1.0 - mindeduct))
+    # increase mem size further by 2**n rounding, by 0..roundKb or more
+    round_kbytes = int(usable_kbytes / (1.0 - maxdeduct)) - min_kbytes
+    # find least binary roundup 2**n that covers worst-cast roundKb
+    mod2n = 1 << int(math.ceil(math.log(round_kbytes, 2)))
+    # have round_kbytes <= mod2n < round_kbytes*2
+    # round min_kbytes up to next multiple of mod2n
+    phys_kbytes = min_kbytes + mod2n - 1
+    phys_kbytes -= phys_kbytes % mod2n  # clear low bits
+    self.phys_kbytes = phys_kbytes
+
+  def _GetMemoryInfo(self):
+    #TODO yunlian: when the machine in rebooting, it will not return
+    #meminfo, the assert does not catch it either
+    command = 'cat /proc/meminfo'
+    ret, self.meminfo, _ = self.ce.CrosRunCommandWOutput(
+        command,
+        machine=self.name,
+        chromeos_root=self.chromeos_root)
+    assert ret == 0, 'Could not get meminfo from machine: %s' % self.name
+    if ret == 0:
+      self._ParseMemoryInfo()
+
+  def _GetCPUInfo(self):
+    command = 'cat /proc/cpuinfo'
+    ret, self.cpuinfo, _ = self.ce.CrosRunCommandWOutput(
+        command,
+        machine=self.name,
+        chromeos_root=self.chromeos_root)
+    assert ret == 0, 'Could not get cpuinfo from machine: %s' % self.name
+
+  def _ComputeMachineChecksumString(self):
+    self.checksum_string = ''
+    exclude_lines_list = ['MHz', 'BogoMIPS', 'bogomips']
+    for line in self.cpuinfo.splitlines():
+      if not any(e in line for e in exclude_lines_list):
+        self.checksum_string += line
+    self.checksum_string += ' ' + str(self.phys_kbytes)
+
+  def _GetMD5Checksum(self, ss):
+    if ss:
+      return hashlib.md5(ss).hexdigest()
+    else:
+      return ''
+
+  def _GetMachineID(self):
+    command = 'dump_vpd_log --full --stdout'
+    _, if_out, _ = self.ce.CrosRunCommandWOutput(
+        command,
+        machine=self.name,
+        chromeos_root=self.chromeos_root)
+    b = if_out.splitlines()
+    a = [l for l in b if 'Product' in l]
+    if len(a):
+      self.machine_id = a[0]
+      return
+    command = 'ifconfig'
+    _, if_out, _ = self.ce.CrosRunCommandWOutput(
+        command,
+        machine=self.name,
+        chromeos_root=self.chromeos_root)
+    b = if_out.splitlines()
+    a = [l for l in b if 'HWaddr' in l]
+    if len(a):
+      self.machine_id = '_'.join(a)
+      return
+    a = [l for l in b if 'ether' in l]
+    if len(a):
+      self.machine_id = '_'.join(a)
+      return
+    assert 0, 'Could not get machine_id from machine: %s' % self.name
+
+  def __str__(self):
+    l = []
+    l.append(self.name)
+    l.append(str(self.image))
+    l.append(str(self.checksum))
+    l.append(str(self.locked))
+    l.append(str(self.released_time))
+    return ', '.join(l)
+
+
+class MachineManager(object):
+  """Lock, image and unlock machines locally for benchmark runs.
+
+  This class contains methods and calls to lock, unlock and image
+  machines and distribute machines to each benchmark run.  The assumption is
+  that all of the machines for the experiment have been globally locked
+  (using an AFE server) in the ExperimentRunner, but the machines still need
+  to be locally locked/unlocked (allocated to benchmark runs) to prevent
+  multiple benchmark runs within the same experiment from trying to use the
+  same machine at the same time.
+  """
+
+  def __init__(self,
+               chromeos_root,
+               acquire_timeout,
+               log_level,
+               locks_dir,
+               cmd_exec=None,
+               lgr=None):
+    self._lock = threading.RLock()
+    self._all_machines = []
+    self._machines = []
+    self.image_lock = threading.Lock()
+    self.num_reimages = 0
+    self.chromeos_root = None
+    self.machine_checksum = {}
+    self.machine_checksum_string = {}
+    self.acquire_timeout = acquire_timeout
+    self.log_level = log_level
+    self.locks_dir = locks_dir
+    self.ce = cmd_exec or command_executer.GetCommandExecuter(
+        log_level=self.log_level)
+    self.logger = lgr or logger.GetLogger()
+
+    if self.locks_dir and not os.path.isdir(self.locks_dir):
+      raise MissingLocksDirectory('Cannot access locks directory: %s' %
+                                  self.locks_dir)
+
+    self._initialized_machines = []
+    self.chromeos_root = chromeos_root
+
+  def RemoveNonLockedMachines(self, locked_machines):
+    for m in self._all_machines:
+      if m.name not in locked_machines:
+        self._all_machines.remove(m)
+
+    for m in self._machines:
+      if m.name not in locked_machines:
+        self._machines.remove(m)
+
+  def GetChromeVersion(self, machine):
+    """Get the version of Chrome running on the DUT."""
+
+    cmd = '/opt/google/chrome/chrome --version'
+    ret, version, _ = self.ce.CrosRunCommandWOutput(
+        cmd,
+        machine=machine.name,
+        chromeos_root=self.chromeos_root)
+    if ret != 0:
+      raise CrosCommandError("Couldn't get Chrome version from %s." %
+                             machine.name)
+
+    if ret != 0:
+      version = ''
+    return version.rstrip()
+
+  def ImageMachine(self, machine, label):
+    checksum = label.checksum
+
+    if checksum and (machine.checksum == checksum):
+      return
+    chromeos_root = label.chromeos_root
+    if not chromeos_root:
+      chromeos_root = self.chromeos_root
+    image_chromeos_args = [image_chromeos.__file__, '--no_lock',
+                           '--chromeos_root=%s' % chromeos_root,
+                           '--image=%s' % label.chromeos_image,
+                           '--image_args=%s' % label.image_args, '--remote=%s' %
+                           machine.name, '--logging_level=%s' % self.log_level]
+    if label.board:
+      image_chromeos_args.append('--board=%s' % label.board)
+
+    # Currently can't image two machines at once.
+    # So have to serialized on this lock.
+    save_ce_log_level = self.ce.log_level
+    if self.log_level != 'verbose':
+      self.ce.log_level = 'average'
+
+    with self.image_lock:
+      if self.log_level != 'verbose':
+        self.logger.LogOutput('Pushing image onto machine.')
+        self.logger.LogOutput('Running image_chromeos.DoImage with %s' %
+                              ' '.join(image_chromeos_args))
+      retval = 0
+      if not test_flag.GetTestMode():
+        retval = image_chromeos.DoImage(image_chromeos_args)
+      if retval:
+        cmd = 'reboot && exit'
+        if self.log_level != 'verbose':
+          self.logger.LogOutput('reboot & exit.')
+        self.ce.CrosRunCommand(cmd,
+                               machine=machine.name,
+                               chromeos_root=self.chromeos_root)
+        time.sleep(60)
+        if self.log_level != 'verbose':
+          self.logger.LogOutput('Pushing image onto machine.')
+          self.logger.LogOutput('Running image_chromeos.DoImage with %s' %
+                                ' '.join(image_chromeos_args))
+        retval = image_chromeos.DoImage(image_chromeos_args)
+      if retval:
+        raise RuntimeError("Could not image machine: '%s'." % machine.name)
+      else:
+        self.num_reimages += 1
+      machine.checksum = checksum
+      machine.image = label.chromeos_image
+      machine.label = label
+
+    if not label.chrome_version:
+      label.chrome_version = self.GetChromeVersion(machine)
+
+    self.ce.log_level = save_ce_log_level
+    return retval
+
+  def ComputeCommonCheckSum(self, label):
+    # Since this is used for cache lookups before the machines have been
+    # compared/verified, check here to make sure they all have the same
+    # checksum (otherwise the cache lookup may not be valid).
+    common_checksum = None
+    for machine in self.GetMachines(label):
+      # Make sure the machine's checksums are calculated.
+      if not machine.machine_checksum:
+        machine.SetUpChecksumInfo()
+      cs = machine.machine_checksum
+      # If this is the first machine we've examined, initialize
+      # common_checksum.
+      if not common_checksum:
+        common_checksum = cs
+      # Make sure this machine's checksum matches our 'common' checksum.
+      if cs != common_checksum:
+        raise BadChecksum('Machine checksums do not match!')
+    self.machine_checksum[label.name] = common_checksum
+
+  def ComputeCommonCheckSumString(self, label):
+    # The assumption is that this function is only called AFTER
+    # ComputeCommonCheckSum, so there is no need to verify the machines
+    # are the same here.  If this is ever changed, this function should be
+    # modified to verify that all the machines for a given label are the
+    # same.
+    for machine in self.GetMachines(label):
+      if machine.checksum_string:
+        self.machine_checksum_string[label.name] = machine.checksum_string
+        break
+
+  def _TryToLockMachine(self, cros_machine):
+    with self._lock:
+      assert cros_machine, "Machine can't be None"
+      for m in self._machines:
+        if m.name == cros_machine.name:
+          return
+      locked = True
+      if self.locks_dir:
+        locked = file_lock_machine.Machine(cros_machine.name,
+                                           self.locks_dir).Lock(True,
+                                                                sys.argv[0])
+      if locked:
+        self._machines.append(cros_machine)
+        command = 'cat %s' % CHECKSUM_FILE
+        ret, out, _ = self.ce.CrosRunCommandWOutput(
+            command,
+            chromeos_root=self.chromeos_root,
+            machine=cros_machine.name)
+        if ret == 0:
+          cros_machine.checksum = out.strip()
+      elif self.locks_dir:
+        self.logger.LogOutput("Couldn't lock: %s" % cros_machine.name)
+
+  # This is called from single threaded mode.
+  def AddMachine(self, machine_name):
+    with self._lock:
+      for m in self._all_machines:
+        assert m.name != machine_name, 'Tried to double-add %s' % machine_name
+
+      if self.log_level != 'verbose':
+        self.logger.LogOutput('Setting up remote access to %s' % machine_name)
+        self.logger.LogOutput('Checking machine characteristics for %s' %
+                              machine_name)
+      cm = CrosMachine(machine_name, self.chromeos_root, self.log_level)
+      if cm.machine_checksum:
+        self._all_machines.append(cm)
+
+  def RemoveMachine(self, machine_name):
+    with self._lock:
+      self._machines = [m for m in self._machines if m.name != machine_name]
+      if self.locks_dir:
+        res = file_lock_machine.Machine(machine_name,
+                                        self.locks_dir).Unlock(True)
+        if not res:
+          self.logger.LogError("Could not unlock machine: '%s'." % machine_name)
+
+  def ForceSameImageToAllMachines(self, label):
+    machines = self.GetMachines(label)
+    for m in machines:
+      self.ImageMachine(m, label)
+      m.SetUpChecksumInfo()
+
+  def AcquireMachine(self, label):
+    image_checksum = label.checksum
+    machines = self.GetMachines(label)
+    check_interval_time = 120
+    with self._lock:
+      # Lazily external lock machines
+      while self.acquire_timeout >= 0:
+        for m in machines:
+          new_machine = m not in self._all_machines
+          self._TryToLockMachine(m)
+          if new_machine:
+            m.released_time = time.time()
+        if self.GetAvailableMachines(label):
+          break
+        sleep_time = max(1, min(self.acquire_timeout, check_interval_time))
+        time.sleep(sleep_time)
+        self.acquire_timeout -= sleep_time
+
+      if self.acquire_timeout < 0:
+        self.logger.LogFatal('Could not acquire any of the '
+                             "following machines: '%s'" %
+                             ', '.join(machine.name for machine in machines))
+
+###      for m in self._machines:
+###        if (m.locked and time.time() - m.released_time < 10 and
+###            m.checksum == image_checksum):
+###          return None
+      unlocked_machines = [machine
+                           for machine in self.GetAvailableMachines(label)
+                           if not machine.locked]
+      for m in unlocked_machines:
+        if image_checksum and m.checksum == image_checksum:
+          m.locked = True
+          m.test_run = threading.current_thread()
+          return m
+      for m in unlocked_machines:
+        if not m.checksum:
+          m.locked = True
+          m.test_run = threading.current_thread()
+          return m
+      # This logic ensures that threads waiting on a machine will get a machine
+      # with a checksum equal to their image over other threads. This saves time
+      # when crosperf initially assigns the machines to threads by minimizing
+      # the number of re-images.
+      # TODO(asharif): If we centralize the thread-scheduler, we wont need this
+      # code and can implement minimal reimaging code more cleanly.
+      for m in unlocked_machines:
+        if time.time() - m.released_time > 15:
+          # The release time gap is too large, so it is probably in the start
+          # stage, we need to reset the released_time.
+          m.released_time = time.time()
+        elif time.time() - m.released_time > 8:
+          m.locked = True
+          m.test_run = threading.current_thread()
+          return m
+    return None
+
+  def GetAvailableMachines(self, label=None):
+    if not label:
+      return self._machines
+    return [m for m in self._machines if m.name in label.remote]
+
+  def GetMachines(self, label=None):
+    if not label:
+      return self._all_machines
+    return [m for m in self._all_machines if m.name in label.remote]
+
+  def ReleaseMachine(self, machine):
+    with self._lock:
+      for m in self._machines:
+        if machine.name == m.name:
+          assert m.locked, 'Tried to double-release %s' % m.name
+          m.released_time = time.time()
+          m.locked = False
+          m.status = 'Available'
+          break
+
+  def Cleanup(self):
+    with self._lock:
+      # Unlock all machines (via file lock)
+      for m in self._machines:
+        res = file_lock_machine.Machine(m.name, self.locks_dir).Unlock(True)
+
+        if not res:
+          self.logger.LogError("Could not unlock machine: '%s'." % m.name)
+
+  def __str__(self):
+    with self._lock:
+      l = ['MachineManager Status:'] + [str(m) for m in self._machines]
+      return '\n'.join(l)
+
+  def AsString(self):
+    with self._lock:
+      stringify_fmt = '%-30s %-10s %-4s %-25s %-32s'
+      header = stringify_fmt % ('Machine', 'Thread', 'Lock', 'Status',
+                                'Checksum')
+      table = [header]
+      for m in self._machines:
+        if m.test_run:
+          test_name = m.test_run.name
+          test_status = m.test_run.timeline.GetLastEvent()
+        else:
+          test_name = ''
+          test_status = ''
+
+        try:
+          machine_string = stringify_fmt % (m.name, test_name, m.locked,
+                                            test_status, m.checksum)
+        except ValueError:
+          machine_string = ''
+        table.append(machine_string)
+      return 'Machine Status:\n%s' % '\n'.join(table)
+
+  def GetAllCPUInfo(self, labels):
+    """Get cpuinfo for labels, merge them if their cpuinfo are the same."""
+    dic = collections.defaultdict(list)
+    for label in labels:
+      for machine in self._all_machines:
+        if machine.name in label.remote:
+          dic[machine.cpuinfo].append(label.name)
+          break
+    output_segs = []
+    for key, v in dic.iteritems():
+      output = ' '.join(v)
+      output += '\n-------------------\n'
+      output += key
+      output += '\n\n\n'
+      output_segs.append(output)
+    return ''.join(output_segs)
+
+  def GetAllMachines(self):
+    return self._all_machines
+
+
+class MockCrosMachine(CrosMachine):
+  """Mock cros machine class."""
+  # pylint: disable=super-init-not-called
+
+  MEMINFO_STRING = """MemTotal:        3990332 kB
+MemFree:         2608396 kB
+Buffers:          147168 kB
+Cached:           811560 kB
+SwapCached:            0 kB
+Active:           503480 kB
+Inactive:         628572 kB
+Active(anon):     174532 kB
+Inactive(anon):    88576 kB
+Active(file):     328948 kB
+Inactive(file):   539996 kB
+Unevictable:           0 kB
+Mlocked:               0 kB
+SwapTotal:       5845212 kB
+SwapFree:        5845212 kB
+Dirty:              9384 kB
+Writeback:             0 kB
+AnonPages:        173408 kB
+Mapped:           146268 kB
+Shmem:             89676 kB
+Slab:             188260 kB
+SReclaimable:     169208 kB
+SUnreclaim:        19052 kB
+KernelStack:        2032 kB
+PageTables:         7120 kB
+NFS_Unstable:          0 kB
+Bounce:                0 kB
+WritebackTmp:          0 kB
+CommitLimit:     7840376 kB
+Committed_AS:    1082032 kB
+VmallocTotal:   34359738367 kB
+VmallocUsed:      364980 kB
+VmallocChunk:   34359369407 kB
+DirectMap4k:       45824 kB
+DirectMap2M:     4096000 kB
+"""
+
+  CPUINFO_STRING = """processor: 0
+vendor_id: GenuineIntel
+cpu family: 6
+model: 42
+model name: Intel(R) Celeron(R) CPU 867 @ 1.30GHz
+stepping: 7
+microcode: 0x25
+cpu MHz: 1300.000
+cache size: 2048 KB
+physical id: 0
+siblings: 2
+core id: 0
+cpu cores: 2
+apicid: 0
+initial apicid: 0
+fpu: yes
+fpu_exception: yes
+cpuid level: 13
+wp: yes
+flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
+bogomips: 2594.17
+clflush size: 64
+cache_alignment: 64
+address sizes: 36 bits physical, 48 bits virtual
+power management:
+
+processor: 1
+vendor_id: GenuineIntel
+cpu family: 6
+model: 42
+model name: Intel(R) Celeron(R) CPU 867 @ 1.30GHz
+stepping: 7
+microcode: 0x25
+cpu MHz: 1300.000
+cache size: 2048 KB
+physical id: 0
+siblings: 2
+core id: 1
+cpu cores: 2
+apicid: 2
+initial apicid: 2
+fpu: yes
+fpu_exception: yes
+cpuid level: 13
+wp: yes
+flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
+bogomips: 2594.17
+clflush size: 64
+cache_alignment: 64
+address sizes: 36 bits physical, 48 bits virtual
+power management:
+"""
+
+  def __init__(self, name, chromeos_root, log_level):
+    self.name = name
+    self.image = None
+    self.checksum = None
+    self.locked = False
+    self.released_time = time.time()
+    self.test_run = None
+    self.chromeos_root = chromeos_root
+    self.checksum_string = re.sub(r'\d', '', name)
+    #In test, we assume "lumpy1", "lumpy2" are the same machine.
+    self.machine_checksum = self._GetMD5Checksum(self.checksum_string)
+    self.log_level = log_level
+    self.label = None
+    self.ce = command_executer.GetCommandExecuter(log_level=self.log_level)
+    self._GetCPUInfo()
+
+  def IsReachable(self):
+    return True
+
+  def _GetMemoryInfo(self):
+    self.meminfo = self.MEMINFO_STRING
+    self._ParseMemoryInfo()
+
+  def _GetCPUInfo(self):
+    self.cpuinfo = self.CPUINFO_STRING
+
+
+class MockMachineManager(MachineManager):
+  """Mock machine manager class."""
+
+  def __init__(self, chromeos_root, acquire_timeout, log_level, locks_dir):
+    super(MockMachineManager, self).__init__(
+        chromeos_root, acquire_timeout, log_level, locks_dir)
+
+  def _TryToLockMachine(self, cros_machine):
+    self._machines.append(cros_machine)
+    cros_machine.checksum = ''
+
+  def AddMachine(self, machine_name):
+    with self._lock:
+      for m in self._all_machines:
+        assert m.name != machine_name, 'Tried to double-add %s' % machine_name
+      cm = MockCrosMachine(machine_name, self.chromeos_root, self.log_level)
+      assert cm.machine_checksum, ('Could not find checksum for machine %s' %
+                                   machine_name)
+      # In Original MachineManager, the test is 'if cm.machine_checksum:' - if a
+      # machine is unreachable, then its machine_checksum is None. Here we
+      # cannot do this, because machine_checksum is always faked, so we directly
+      # test cm.IsReachable, which is properly mocked.
+      if cm.IsReachable():
+        self._all_machines.append(cm)
+
+  def GetChromeVersion(self, machine):
+    return 'Mock Chrome Version R50'
+
+  def AcquireMachine(self, label):
+    for machine in self._all_machines:
+      if not machine.locked:
+        machine.locked = True
+        return machine
+    return None
+
+  def ImageMachine(self, machine_name, label):
+    if machine_name or label:
+      return 0
+    return 1
+
+  def ReleaseMachine(self, machine):
+    machine.locked = False
+
+  def GetMachines(self, label=None):
+    return self._all_machines
+
+  def GetAvailableMachines(self, label=None):
+    return self._all_machines
+
+  def ForceSameImageToAllMachines(self, label=None):
+    return 0
+
+  def ComputeCommonCheckSum(self, label=None):
+    common_checksum = 12345
+    for machine in self.GetMachines(label):
+      machine.machine_checksum = common_checksum
+    self.machine_checksum[label.name] = common_checksum
+
+  def GetAllMachines(self):
+    return self._all_machines
diff --git a/crosperf/machine_manager_unittest.py b/crosperf/machine_manager_unittest.py
new file mode 100755
index 0000000..8652f17
--- /dev/null
+++ b/crosperf/machine_manager_unittest.py
@@ -0,0 +1,845 @@
+#!/usr/bin/env python2
+
+# Copyright 2012 Google Inc. All Rights Reserved.
+"""Unittest for machine_manager."""
+
+from __future__ import print_function
+
+import os.path
+import time
+import hashlib
+
+import mock
+import unittest
+
+import label
+import machine_manager
+import image_checksummer
+import test_flag
+
+from benchmark import Benchmark
+from benchmark_run import MockBenchmarkRun
+from cros_utils import command_executer
+from cros_utils import logger
+
+# pylint: disable=protected-access
+
+
+class MyMachineManager(machine_manager.MachineManager):
+  """Machine manager for test."""
+
+  def __init__(self, chromeos_root):
+    super(MyMachineManager, self).__init__(chromeos_root, 0, 'average', '')
+
+  def _TryToLockMachine(self, cros_machine):
+    self._machines.append(cros_machine)
+    cros_machine.checksum = ''
+
+  def AddMachine(self, machine_name):
+    with self._lock:
+      for m in self._all_machines:
+        assert m.name != machine_name, 'Tried to double-add %s' % machine_name
+      cm = machine_manager.MockCrosMachine(machine_name, self.chromeos_root,
+                                           'average')
+      assert cm.machine_checksum, ('Could not find checksum for machine %s' %
+                                   machine_name)
+      self._all_machines.append(cm)
+
+
+CHROMEOS_ROOT = '/tmp/chromeos-root'
+MACHINE_NAMES = ['lumpy1', 'lumpy2', 'lumpy3', 'daisy1', 'daisy2']
+LABEL_LUMPY = label.MockLabel('lumpy', 'lumpy_chromeos_image', 'autotest_dir',
+                              CHROMEOS_ROOT, 'lumpy',
+                              ['lumpy1', 'lumpy2', 'lumpy3', 'lumpy4'], '', '',
+                              False, 'average,'
+                              'gcc', None)
+LABEL_MIX = label.MockLabel('mix', 'chromeos_image', 'autotest_dir',
+                            CHROMEOS_ROOT, 'mix',
+                            ['daisy1', 'daisy2', 'lumpy3', 'lumpy4'], '', '',
+                            False, 'average', 'gcc', None)
+
+
+class MachineManagerTest(unittest.TestCase):
+  """Test for machine manager class."""
+
+  msgs = []
+  image_log = []
+  log_fatal_msgs = []
+  fake_logger_count = 0
+  fake_logger_msgs = []
+
+  mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
+
+  mock_logger = mock.Mock(spec=logger.Logger)
+
+  mock_lumpy1 = mock.Mock(spec=machine_manager.CrosMachine)
+  mock_lumpy2 = mock.Mock(spec=machine_manager.CrosMachine)
+  mock_lumpy3 = mock.Mock(spec=machine_manager.CrosMachine)
+  mock_lumpy4 = mock.Mock(spec=machine_manager.CrosMachine)
+  mock_daisy1 = mock.Mock(spec=machine_manager.CrosMachine)
+  mock_daisy2 = mock.Mock(spec=machine_manager.CrosMachine)
+
+  @mock.patch.object(os.path, 'isdir')
+
+  # pylint: disable=arguments-differ
+  def setUp(self, mock_isdir):
+
+    mock_isdir.return_value = True
+    self.mm = machine_manager.MachineManager('/usr/local/chromeos', 0,
+                                             'average', None,
+                                             self.mock_cmd_exec,
+                                             self.mock_logger)
+
+    self.mock_lumpy1.name = 'lumpy1'
+    self.mock_lumpy2.name = 'lumpy2'
+    self.mock_lumpy3.name = 'lumpy3'
+    self.mock_lumpy4.name = 'lumpy4'
+    self.mock_daisy1.name = 'daisy1'
+    self.mock_daisy2.name = 'daisy2'
+    self.mock_lumpy1.machine_checksum = 'lumpy123'
+    self.mock_lumpy2.machine_checksum = 'lumpy123'
+    self.mock_lumpy3.machine_checksum = 'lumpy123'
+    self.mock_lumpy4.machine_checksum = 'lumpy123'
+    self.mock_daisy1.machine_checksum = 'daisy12'
+    self.mock_daisy2.machine_checksum = 'daisy12'
+    self.mock_lumpy1.checksum_string = 'lumpy_checksum_str'
+    self.mock_lumpy2.checksum_string = 'lumpy_checksum_str'
+    self.mock_lumpy3.checksum_string = 'lumpy_checksum_str'
+    self.mock_lumpy4.checksum_string = 'lumpy_checksum_str'
+    self.mock_daisy1.checksum_string = 'daisy_checksum_str'
+    self.mock_daisy2.checksum_string = 'daisy_checksum_str'
+    self.mock_lumpy1.cpuinfo = 'lumpy_cpu_info'
+    self.mock_lumpy2.cpuinfo = 'lumpy_cpu_info'
+    self.mock_lumpy3.cpuinfo = 'lumpy_cpu_info'
+    self.mock_lumpy4.cpuinfo = 'lumpy_cpu_info'
+    self.mock_daisy1.cpuinfo = 'daisy_cpu_info'
+    self.mock_daisy2.cpuinfo = 'daisy_cpu_info'
+    self.mm._all_machines.append(self.mock_daisy1)
+    self.mm._all_machines.append(self.mock_daisy2)
+    self.mm._all_machines.append(self.mock_lumpy1)
+    self.mm._all_machines.append(self.mock_lumpy2)
+    self.mm._all_machines.append(self.mock_lumpy3)
+
+  def testGetMachines(self):
+    manager = MyMachineManager(CHROMEOS_ROOT)
+    for m in MACHINE_NAMES:
+      manager.AddMachine(m)
+    names = [m.name for m in manager.GetMachines(LABEL_LUMPY)]
+    self.assertEqual(names, ['lumpy1', 'lumpy2', 'lumpy3'])
+
+  def testGetAvailableMachines(self):
+    manager = MyMachineManager(CHROMEOS_ROOT)
+    for m in MACHINE_NAMES:
+      manager.AddMachine(m)
+    for m in manager._all_machines:
+      if int(m.name[-1]) % 2:
+        manager._TryToLockMachine(m)
+    names = [m.name for m in manager.GetAvailableMachines(LABEL_LUMPY)]
+    self.assertEqual(names, ['lumpy1', 'lumpy3'])
+
+  @mock.patch.object(time, 'sleep')
+  @mock.patch.object(command_executer.CommandExecuter, 'RunCommand')
+  @mock.patch.object(command_executer.CommandExecuter, 'CrosRunCommand')
+  @mock.patch.object(image_checksummer.ImageChecksummer, 'Checksum')
+  def test_image_machine(self, mock_checksummer, mock_run_croscmd, mock_run_cmd,
+                         mock_sleep):
+
+    def FakeMD5Checksum(_input_str):
+      return 'machine_fake_md5_checksum'
+
+    self.fake_logger_count = 0
+    self.fake_logger_msgs = []
+
+    def FakeLogOutput(msg):
+      self.fake_logger_count += 1
+      self.fake_logger_msgs.append(msg)
+
+    def ResetValues():
+      self.fake_logger_count = 0
+      self.fake_logger_msgs = []
+      mock_run_cmd.reset_mock()
+      mock_run_croscmd.reset_mock()
+      mock_checksummer.reset_mock()
+      mock_sleep.reset_mock()
+      machine.checksum = 'fake_md5_checksum'
+      self.mm.checksum = None
+      self.mm.num_reimages = 0
+
+    self.mock_cmd_exec.CrosRunCommand = mock_run_croscmd
+    self.mock_cmd_exec.RunCommand = mock_run_cmd
+
+    self.mm.logger.LogOutput = FakeLogOutput
+    machine = self.mock_lumpy1
+    machine._GetMD5Checksum = FakeMD5Checksum
+    machine.checksum = 'fake_md5_checksum'
+    mock_checksummer.return_value = 'fake_md5_checksum'
+    self.mock_cmd_exec.log_level = 'verbose'
+
+    test_flag.SetTestMode(True)
+    # Test 1: label.image_type == "local"
+    LABEL_LUMPY.image_type = 'local'
+    self.mm.ImageMachine(machine, LABEL_LUMPY)
+    self.assertEqual(mock_run_cmd.call_count, 0)
+    self.assertEqual(mock_run_croscmd.call_count, 0)
+
+    #Test 2: label.image_type == "trybot"
+    ResetValues()
+    LABEL_LUMPY.image_type = 'trybot'
+    mock_run_cmd.return_value = 0
+    self.mm.ImageMachine(machine, LABEL_LUMPY)
+    self.assertEqual(mock_run_croscmd.call_count, 0)
+    self.assertEqual(mock_checksummer.call_count, 0)
+
+    # Test 3: label.image_type is neither local nor trybot; retval from
+    # RunCommand is 1, i.e. image_chromeos fails...
+    ResetValues()
+    LABEL_LUMPY.image_type = 'other'
+    mock_run_cmd.return_value = 1
+    try:
+      self.mm.ImageMachine(machine, LABEL_LUMPY)
+    except RuntimeError:
+      self.assertEqual(mock_checksummer.call_count, 0)
+      self.assertEqual(mock_run_cmd.call_count, 2)
+      self.assertEqual(mock_run_croscmd.call_count, 1)
+      self.assertEqual(mock_sleep.call_count, 1)
+      image_call_args_str = mock_run_cmd.call_args[0][0]
+      image_call_args = image_call_args_str.split(' ')
+      self.assertEqual(image_call_args[0], 'python')
+      self.assertEqual(image_call_args[1].split('/')[-1], 'image_chromeos.pyc')
+      image_call_args = image_call_args[2:]
+      self.assertEqual(image_call_args, [
+          '--chromeos_root=/tmp/chromeos-root', '--image=lumpy_chromeos_image',
+          '--image_args=', '--remote=lumpy1', '--logging_level=average',
+          '--board=lumpy'
+      ])
+      self.assertEqual(mock_run_croscmd.call_args[0][0], 'reboot && exit')
+
+    # Test 4: Everything works properly. Trybot image type.
+    ResetValues()
+    LABEL_LUMPY.image_type = 'trybot'
+    mock_run_cmd.return_value = 0
+    self.mm.ImageMachine(machine, LABEL_LUMPY)
+    self.assertEqual(mock_checksummer.call_count, 0)
+    self.assertEqual(mock_run_croscmd.call_count, 0)
+    self.assertEqual(mock_sleep.call_count, 0)
+
+  def test_compute_common_checksum(self):
+
+    self.mm.machine_checksum = {}
+    self.mm.ComputeCommonCheckSum(LABEL_LUMPY)
+    self.assertEqual(self.mm.machine_checksum['lumpy'], 'lumpy123')
+    self.assertEqual(len(self.mm.machine_checksum), 1)
+
+    self.mm.machine_checksum = {}
+    self.assertRaises(machine_manager.BadChecksum,
+                      self.mm.ComputeCommonCheckSum, LABEL_MIX)
+
+  def test_compute_common_checksum_string(self):
+    self.mm.machine_checksum_string = {}
+    self.mm.ComputeCommonCheckSumString(LABEL_LUMPY)
+    self.assertEqual(len(self.mm.machine_checksum_string), 1)
+    self.assertEqual(self.mm.machine_checksum_string['lumpy'],
+                     'lumpy_checksum_str')
+
+    self.mm.machine_checksum_string = {}
+    self.mm.ComputeCommonCheckSumString(LABEL_MIX)
+    self.assertEqual(len(self.mm.machine_checksum_string), 1)
+    self.assertEqual(self.mm.machine_checksum_string['mix'],
+                     'daisy_checksum_str')
+
+  @mock.patch.object(command_executer.CommandExecuter, 'CrosRunCommandWOutput')
+  def test_try_to_lock_machine(self, mock_cros_runcmd):
+    self.assertRaises(self.mm._TryToLockMachine, None)
+
+    mock_cros_runcmd.return_value = [0, 'false_lock_checksum', '']
+    self.mock_cmd_exec.CrosRunCommandWOutput = mock_cros_runcmd
+    self.mm._machines = []
+    self.mm._TryToLockMachine(self.mock_lumpy1)
+    self.assertEqual(len(self.mm._machines), 1)
+    self.assertEqual(self.mm._machines[0], self.mock_lumpy1)
+    self.assertEqual(self.mock_lumpy1.checksum, 'false_lock_checksum')
+    self.assertEqual(mock_cros_runcmd.call_count, 1)
+    cmd_str = mock_cros_runcmd.call_args[0][0]
+    self.assertEqual(cmd_str, 'cat /usr/local/osimage_checksum_file')
+    args_dict = mock_cros_runcmd.call_args[1]
+    self.assertEqual(len(args_dict), 2)
+    self.assertEqual(args_dict['machine'], self.mock_lumpy1.name)
+    self.assertEqual(args_dict['chromeos_root'], '/usr/local/chromeos')
+
+  @mock.patch.object(machine_manager, 'CrosMachine')
+  def test_add_machine(self, mock_machine):
+
+    mock_machine.machine_checksum = 'daisy123'
+    self.assertEqual(len(self.mm._all_machines), 5)
+    self.mm.AddMachine('daisy3')
+    self.assertEqual(len(self.mm._all_machines), 6)
+
+    self.assertRaises(Exception, self.mm.AddMachine, 'lumpy1')
+
+  def test_remove_machine(self):
+    self.mm._machines = self.mm._all_machines
+    self.assertTrue(self.mock_lumpy2 in self.mm._machines)
+    self.mm.RemoveMachine(self.mock_lumpy2.name)
+    self.assertFalse(self.mock_lumpy2 in self.mm._machines)
+
+  def test_force_same_image_to_all_machines(self):
+    self.image_log = []
+
+    def FakeImageMachine(machine, label_arg):
+      image = label_arg.chromeos_image
+      self.image_log.append('Pushed %s onto %s' % (image, machine.name))
+
+    def FakeSetUpChecksumInfo():
+      pass
+
+    self.mm.ImageMachine = FakeImageMachine
+    self.mock_lumpy1.SetUpChecksumInfo = FakeSetUpChecksumInfo
+    self.mock_lumpy2.SetUpChecksumInfo = FakeSetUpChecksumInfo
+    self.mock_lumpy3.SetUpChecksumInfo = FakeSetUpChecksumInfo
+
+    self.mm.ForceSameImageToAllMachines(LABEL_LUMPY)
+    self.assertEqual(len(self.image_log), 3)
+    self.assertEqual(self.image_log[0],
+                     'Pushed lumpy_chromeos_image onto lumpy1')
+    self.assertEqual(self.image_log[1],
+                     'Pushed lumpy_chromeos_image onto lumpy2')
+    self.assertEqual(self.image_log[2],
+                     'Pushed lumpy_chromeos_image onto lumpy3')
+
+  @mock.patch.object(image_checksummer.ImageChecksummer, 'Checksum')
+  @mock.patch.object(hashlib, 'md5')
+  def test_acquire_machine(self, mock_md5, mock_checksum):
+
+    self.msgs = []
+    self.log_fatal_msgs = []
+
+    def FakeLock(machine):
+      self.msgs.append('Tried to lock %s' % machine.name)
+
+    def FakeLogFatal(msg):
+      self.log_fatal_msgs.append(msg)
+
+    self.mm._TryToLockMachine = FakeLock
+    self.mm.logger.LogFatal = FakeLogFatal
+
+    mock_md5.return_value = '123456'
+    mock_checksum.return_value = 'fake_md5_checksum'
+
+    self.mm._machines = self.mm._all_machines
+    self.mock_lumpy1.locked = True
+    self.mock_lumpy2.locked = True
+    self.mock_lumpy3.locked = False
+    self.mock_lumpy3.checksum = 'fake_md5_checksum'
+    self.mock_daisy1.locked = True
+    self.mock_daisy2.locked = False
+    self.mock_daisy2.checksum = 'fake_md5_checksum'
+
+    self.mock_lumpy1.released_time = time.time()
+    self.mock_lumpy2.released_time = time.time()
+    self.mock_lumpy3.released_time = time.time()
+    self.mock_daisy1.released_time = time.time()
+    self.mock_daisy2.released_time = time.time()
+
+    # Test 1. Basic test. Acquire lumpy3.
+    self.mm.AcquireMachine(LABEL_LUMPY)
+    m = self.mock_lumpy1
+    self.assertEqual(m, self.mock_lumpy1)
+    self.assertTrue(self.mock_lumpy1.locked)
+    self.assertEqual(mock_md5.call_count, 0)
+    self.assertEqual(self.msgs, [
+        'Tried to lock lumpy1', 'Tried to lock lumpy2', 'Tried to lock lumpy3'
+    ])
+
+    # Test the second return statment (machine is unlocked, has no checksum)
+    save_locked = self.mock_lumpy1.locked
+    self.mock_lumpy1.locked = False
+    self.mock_lumpy1.checksum = None
+    m = self.mm.AcquireMachine(LABEL_LUMPY)
+    self.assertEqual(m, self.mock_lumpy1)
+    self.assertTrue(self.mock_lumpy1.locked)
+
+    # Test the third return statement:
+    #   - machine is unlocked
+    #   - checksums don't match
+    #   - current time minus release time is > 20.
+    self.mock_lumpy1.locked = False
+    self.mock_lumpy1.checksum = '123'
+    self.mock_lumpy1.released_time = time.time() - 8
+    m = self.mm.AcquireMachine(LABEL_LUMPY)
+    self.assertEqual(m, self.mock_lumpy1)
+    self.assertTrue(self.mock_lumpy1.locked)
+
+    # Test all machines are already locked.
+    m = self.mm.AcquireMachine(LABEL_LUMPY)
+    self.assertIsNone(m)
+
+    # Restore values of mock_lumpy1, so other tests succeed.
+    self.mock_lumpy1.locked = save_locked
+    self.mock_lumpy1.checksum = '123'
+
+  def test_get_available_machines(self):
+    self.mm._machines = self.mm._all_machines
+
+    machine_list = self.mm.GetAvailableMachines()
+    self.assertEqual(machine_list, self.mm._all_machines)
+
+    machine_list = self.mm.GetAvailableMachines(LABEL_MIX)
+    self.assertEqual(machine_list,
+                     [self.mock_daisy1, self.mock_daisy2, self.mock_lumpy3])
+
+    machine_list = self.mm.GetAvailableMachines(LABEL_LUMPY)
+    self.assertEqual(machine_list,
+                     [self.mock_lumpy1, self.mock_lumpy2, self.mock_lumpy3])
+
+  def test_get_machines(self):
+    machine_list = self.mm.GetMachines()
+    self.assertEqual(machine_list, self.mm._all_machines)
+
+    machine_list = self.mm.GetMachines(LABEL_MIX)
+    self.assertEqual(machine_list,
+                     [self.mock_daisy1, self.mock_daisy2, self.mock_lumpy3])
+
+    machine_list = self.mm.GetMachines(LABEL_LUMPY)
+    self.assertEqual(machine_list,
+                     [self.mock_lumpy1, self.mock_lumpy2, self.mock_lumpy3])
+
+  def test_release_machines(self):
+
+    self.mm._machines = [self.mock_lumpy1, self.mock_daisy2]
+
+    self.mock_lumpy1.locked = True
+    self.mock_daisy2.locked = True
+
+    self.assertTrue(self.mock_lumpy1.locked)
+    self.mm.ReleaseMachine(self.mock_lumpy1)
+    self.assertFalse(self.mock_lumpy1.locked)
+    self.assertEqual(self.mock_lumpy1.status, 'Available')
+
+    self.assertTrue(self.mock_daisy2.locked)
+    self.mm.ReleaseMachine(self.mock_daisy2)
+    self.assertFalse(self.mock_daisy2.locked)
+    self.assertEqual(self.mock_daisy2.status, 'Available')
+
+    # Test double-relase...
+    self.assertRaises(AssertionError, self.mm.ReleaseMachine, self.mock_lumpy1)
+
+  def test_cleanup(self):
+    self.mock_logger.reset_mock()
+    self.mm.Cleanup()
+    self.assertEqual(self.mock_logger.call_count, 0)
+
+  OUTPUT_STR = ('Machine Status:\nMachine                        Thread     '
+                'Lock Status                    Checksum'
+                '                        \nlumpy1                         test '
+                'run   True PENDING                   123'
+                '                             \nlumpy2                         '
+                'test run   False PENDING                   123'
+                '                             \nlumpy3                         '
+                'test run   False PENDING                   123'
+                '                             \ndaisy1                         '
+                'test run   False PENDING                   678'
+                '                             \ndaisy2                         '
+                'test run   True PENDING                   678'
+                '                             ')
+
+  def test_as_string(self):
+
+    mock_logger = mock.Mock(spec=logger.Logger)
+
+    bench = Benchmark(
+        'page_cycler_v2.netsim.top_10',  # name
+        'page_cycler_v2.netsim.top_10',  # test_name
+        '',  # test_args
+        1,  # iteratins
+        False,  # rm_chroot_tmp
+        '',  # perf_args
+        suite='telemetry_Crosperf')  # suite
+
+    test_run = MockBenchmarkRun('test run', bench, LABEL_LUMPY, 1, [], self.mm,
+                                mock_logger, 'verbose', '')
+
+    self.mm._machines = [
+        self.mock_lumpy1, self.mock_lumpy2, self.mock_lumpy3, self.mock_daisy1,
+        self.mock_daisy2
+    ]
+
+    self.mock_lumpy1.test_run = test_run
+    self.mock_lumpy2.test_run = test_run
+    self.mock_lumpy3.test_run = test_run
+    self.mock_daisy1.test_run = test_run
+    self.mock_daisy2.test_run = test_run
+
+    self.mock_lumpy1.locked = True
+    self.mock_lumpy2.locked = False
+    self.mock_lumpy3.locked = False
+    self.mock_daisy1.locked = False
+    self.mock_daisy2.locked = True
+
+    self.mock_lumpy1.checksum = '123'
+    self.mock_lumpy2.checksum = '123'
+    self.mock_lumpy3.checksum = '123'
+    self.mock_daisy1.checksum = '678'
+    self.mock_daisy2.checksum = '678'
+
+    output = self.mm.AsString()
+    self.assertEqual(output, self.OUTPUT_STR)
+
+  def test_get_all_cpu_info(self):
+    info = self.mm.GetAllCPUInfo([LABEL_LUMPY, LABEL_MIX])
+    self.assertEqual(info,
+                     'lumpy\n-------------------\nlumpy_cpu_info\n\n\nmix\n-'
+                     '------------------\ndaisy_cpu_info\n\n\n')
+
+
+MEMINFO_STRING = """MemTotal:        3990332 kB
+MemFree:         2608396 kB
+Buffers:          147168 kB
+Cached:           811560 kB
+SwapCached:            0 kB
+Active:           503480 kB
+Inactive:         628572 kB
+Active(anon):     174532 kB
+Inactive(anon):    88576 kB
+Active(file):     328948 kB
+Inactive(file):   539996 kB
+Unevictable:           0 kB
+Mlocked:               0 kB
+SwapTotal:       5845212 kB
+SwapFree:        5845212 kB
+Dirty:              9384 kB
+Writeback:             0 kB
+AnonPages:        173408 kB
+Mapped:           146268 kB
+Shmem:             89676 kB
+Slab:             188260 kB
+SReclaimable:     169208 kB
+SUnreclaim:        19052 kB
+KernelStack:        2032 kB
+PageTables:         7120 kB
+NFS_Unstable:          0 kB
+Bounce:                0 kB
+WritebackTmp:          0 kB
+CommitLimit:     7840376 kB
+Committed_AS:    1082032 kB
+VmallocTotal:   34359738367 kB
+VmallocUsed:      364980 kB
+VmallocChunk:   34359369407 kB
+DirectMap4k:       45824 kB
+DirectMap2M:     4096000 kB
+"""
+
+CPUINFO_STRING = """processor: 0
+vendor_id: GenuineIntel
+cpu family: 6
+model: 42
+model name: Intel(R) Celeron(R) CPU 867 @ 1.30GHz
+stepping: 7
+microcode: 0x25
+cpu MHz: 1300.000
+cache size: 2048 KB
+physical id: 0
+siblings: 2
+core id: 0
+cpu cores: 2
+apicid: 0
+initial apicid: 0
+fpu: yes
+fpu_exception: yes
+cpuid level: 13
+wp: yes
+flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
+bogomips: 2594.17
+clflush size: 64
+cache_alignment: 64
+address sizes: 36 bits physical, 48 bits virtual
+power management:
+
+processor: 1
+vendor_id: GenuineIntel
+cpu family: 6
+model: 42
+model name: Intel(R) Celeron(R) CPU 867 @ 1.30GHz
+stepping: 7
+microcode: 0x25
+cpu MHz: 1300.000
+cache size: 2048 KB
+physical id: 0
+siblings: 2
+core id: 1
+cpu cores: 2
+apicid: 2
+initial apicid: 2
+fpu: yes
+fpu_exception: yes
+cpuid level: 13
+wp: yes
+flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
+bogomips: 2594.17
+clflush size: 64
+cache_alignment: 64
+address sizes: 36 bits physical, 48 bits virtual
+power management:
+"""
+
+CHECKSUM_STRING = ('processor: 0vendor_id: GenuineIntelcpu family: 6model: '
+                   '42model name: Intel(R) Celeron(R) CPU 867 @ '
+                   '1.30GHzstepping: 7microcode: 0x25cache size: 2048 '
+                   'KBphysical id: 0siblings: 2core id: 0cpu cores: 2apicid: '
+                   '0initial apicid: 0fpu: yesfpu_exception: yescpuid level: '
+                   '13wp: yesflags: fpu vme de pse tsc msr pae mce cx8 apic sep'
+                   ' mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse '
+                   'sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc '
+                   'arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc '
+                   'aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 '
+                   'ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt '
+                   'tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts '
+                   'dts tpr_shadow vnmi flexpriority ept vpidclflush size: '
+                   '64cache_alignment: 64address sizes: 36 bits physical, 48 '
+                   'bits virtualpower management:processor: 1vendor_id: '
+                   'GenuineIntelcpu family: 6model: 42model name: Intel(R) '
+                   'Celeron(R) CPU 867 @ 1.30GHzstepping: 7microcode: 0x25cache'
+                   ' size: 2048 KBphysical id: 0siblings: 2core id: 1cpu cores:'
+                   ' 2apicid: 2initial apicid: 2fpu: yesfpu_exception: yescpuid'
+                   ' level: 13wp: yesflags: fpu vme de pse tsc msr pae mce cx8 '
+                   'apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx '
+                   'fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm '
+                   'constant_tsc arch_perfmon pebs bts rep_good nopl xtopology '
+                   'nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl '
+                   'vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic '
+                   'popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt '
+                   'pln pts dts tpr_shadow vnmi flexpriority ept vpidclflush '
+                   'size: 64cache_alignment: 64address sizes: 36 bits physical,'
+                   ' 48 bits virtualpower management: 4194304')
+
+DUMP_VPD_STRING = """
+"PBA_SN"="Pba.txt"
+"Product_S/N"="HT4L91SC300208"
+"serial_number"="HT4L91SC300208Z"
+"System_UUID"="12153006-1755-4f66-b410-c43758a71127"
+"shipping_country"="US"
+"initial_locale"="en-US"
+"keyboard_layout"="xkb:us::eng"
+"initial_timezone"="America/Los_Angeles"
+"MACAddress"=""
+"System_UUID"="29dd9c61-7fa1-4c83-b89a-502e7eb08afe"
+"ubind_attribute"="0c433ce7585f486730b682bb05626a12ce2d896e9b57665387f8ce2ccfdcc56d2e2f1483"
+"gbind_attribute"="7e9a851324088e269319347c6abb8d1572ec31022fa07e28998229afe8acb45c35a89b9d"
+"ActivateDate"="2013-38"
+"""
+
+IFCONFIG_STRING = """
+eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
+        inet 172.17.129.247  netmask 255.255.254.0  broadcast 172.17.129.255
+        inet6 2620:0:1000:3002:143:fed4:3ff6:279d  prefixlen 64  scopeid 0x0<global>
+        inet6 2620:0:1000:3002:4459:1399:1f02:9e4c  prefixlen 64  scopeid 0x0<global>
+        inet6 2620:0:1000:3002:d9e4:87b:d4ec:9a0e  prefixlen 64  scopeid 0x0<global>
+        inet6 2620:0:1000:3002:7d45:23f1:ea8a:9604  prefixlen 64  scopeid 0x0<global>
+        inet6 2620:0:1000:3002:250:b6ff:fe63:db65  prefixlen 64  scopeid 0x0<global>
+        inet6 fe80::250:b6ff:fe63:db65  prefixlen 64  scopeid 0x20<link>
+        ether 00:50:b6:63:db:65  txqueuelen 1000  (Ethernet)
+        RX packets 9817166  bytes 10865181708 (10.1 GiB)
+        RX errors 194  dropped 0  overruns 0  frame 194
+        TX packets 0  bytes 2265811903 (2.1 GiB)
+        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
+
+eth1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
+        ether e8:03:9a:9c:50:3d  txqueuelen 1000  (Ethernet)
+        RX packets 0  bytes 0 (0.0 B)
+        RX errors 0  dropped 0  overruns 0  frame 0
+        TX packets 0  bytes 0 (0.0 B)
+        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
+
+lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436
+        inet 127.0.0.1  netmask 255.0.0.0
+        inet6 ::1  prefixlen 128  scopeid 0x10<host>
+        loop  txqueuelen 0  (Local Loopback)
+        RX packets 981004  bytes 1127468524 (1.0 GiB)
+        RX errors 0  dropped 0  overruns 0  frame 0
+        TX packets 981004  bytes 1127468524 (1.0 GiB)
+        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
+
+wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
+        ether 44:6d:57:20:4a:c5  txqueuelen 1000  (Ethernet)
+        RX packets 0  bytes 0 (0.0 B)
+        RX errors 0  dropped 0  overruns 0  frame 0
+        TX packets 0  bytes 0 (0.0 B)
+        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
+"""
+
+
+class CrosMachineTest(unittest.TestCase):
+  """Test for CrosMachine class."""
+
+  mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
+
+  @mock.patch.object(machine_manager.CrosMachine, 'SetUpChecksumInfo')
+  def test_init(self, mock_setup):
+
+    cm = machine_manager.CrosMachine('daisy.cros', '/usr/local/chromeos',
+                                     'average', self.mock_cmd_exec)
+    self.assertEqual(mock_setup.call_count, 1)
+    self.assertEqual(cm.chromeos_root, '/usr/local/chromeos')
+    self.assertEqual(cm.log_level, 'average')
+
+  @mock.patch.object(machine_manager.CrosMachine, 'IsReachable')
+  @mock.patch.object(machine_manager.CrosMachine, '_GetMemoryInfo')
+  @mock.patch.object(machine_manager.CrosMachine, '_GetCPUInfo')
+  @mock.patch.object(machine_manager.CrosMachine,
+                     '_ComputeMachineChecksumString')
+  @mock.patch.object(machine_manager.CrosMachine, '_GetMachineID')
+  @mock.patch.object(machine_manager.CrosMachine, '_GetMD5Checksum')
+  def test_setup_checksum_info(self, mock_md5sum, mock_machineid,
+                               mock_checkstring, mock_cpuinfo, mock_meminfo,
+                               mock_isreachable):
+
+    # Test 1. Machine is not reachable; SetUpChecksumInfo is called via
+    # __init__.
+    mock_isreachable.return_value = False
+    mock_md5sum.return_value = 'md5_checksum'
+    cm = machine_manager.CrosMachine('daisy.cros', '/usr/local/chromeos',
+                                     'average', self.mock_cmd_exec)
+    cm.checksum_string = 'This is a checksum string.'
+    cm.machine_id = 'machine_id1'
+    self.assertEqual(mock_isreachable.call_count, 1)
+    self.assertIsNone(cm.machine_checksum)
+    self.assertEqual(mock_meminfo.call_count, 0)
+
+    # Test 2. Machine is reachable. Call explicitly.
+    mock_isreachable.return_value = True
+    cm.checksum_string = 'This is a checksum string.'
+    cm.machine_id = 'machine_id1'
+    cm.SetUpChecksumInfo()
+    self.assertEqual(mock_isreachable.call_count, 2)
+    self.assertEqual(mock_meminfo.call_count, 1)
+    self.assertEqual(mock_cpuinfo.call_count, 1)
+    self.assertEqual(mock_checkstring.call_count, 1)
+    self.assertEqual(mock_machineid.call_count, 1)
+    self.assertEqual(mock_md5sum.call_count, 2)
+    self.assertEqual(cm.machine_checksum, 'md5_checksum')
+    self.assertEqual(cm.machine_id_checksum, 'md5_checksum')
+    self.assertEqual(mock_md5sum.call_args_list[0][0][0],
+                     'This is a checksum string.')
+    self.assertEqual(mock_md5sum.call_args_list[1][0][0], 'machine_id1')
+
+  @mock.patch.object(command_executer.CommandExecuter, 'CrosRunCommand')
+  @mock.patch.object(machine_manager.CrosMachine, 'SetUpChecksumInfo')
+  def test_is_reachable(self, mock_setup, mock_run_cmd):
+
+    cm = machine_manager.CrosMachine('daisy.cros', '/usr/local/chromeos',
+                                     'average', self.mock_cmd_exec)
+    self.mock_cmd_exec.CrosRunCommand = mock_run_cmd
+
+    # Test 1. CrosRunCommand returns 1 (fail)
+    mock_run_cmd.return_value = 1
+    result = cm.IsReachable()
+    self.assertFalse(result)
+    self.assertEqual(mock_setup.call_count, 1)
+    self.assertEqual(mock_run_cmd.call_count, 1)
+
+    # Test 2. CrosRunCommand returns 0 (success)
+    mock_run_cmd.return_value = 0
+    result = cm.IsReachable()
+    self.assertTrue(result)
+    self.assertEqual(mock_run_cmd.call_count, 2)
+    first_args = mock_run_cmd.call_args_list[0]
+    second_args = mock_run_cmd.call_args_list[1]
+    self.assertEqual(first_args[0], second_args[0])
+    self.assertEqual(first_args[1], second_args[1])
+    self.assertEqual(len(first_args[0]), 1)
+    self.assertEqual(len(first_args[1]), 2)
+    self.assertEqual(first_args[0][0], 'ls')
+    args_dict = first_args[1]
+    self.assertEqual(args_dict['machine'], 'daisy.cros')
+    self.assertEqual(args_dict['chromeos_root'], '/usr/local/chromeos')
+
+  @mock.patch.object(machine_manager.CrosMachine, 'SetUpChecksumInfo')
+  def test_parse_memory_info(self, _mock_setup):
+    cm = machine_manager.CrosMachine('daisy.cros', '/usr/local/chromeos',
+                                     'average', self.mock_cmd_exec)
+    cm.meminfo = MEMINFO_STRING
+    cm._ParseMemoryInfo()
+    self.assertEqual(cm.phys_kbytes, 4194304)
+
+  @mock.patch.object(command_executer.CommandExecuter, 'CrosRunCommandWOutput')
+  @mock.patch.object(machine_manager.CrosMachine, 'SetUpChecksumInfo')
+  def test_get_memory_info(self, _mock_setup, mock_run_cmd):
+    cm = machine_manager.CrosMachine('daisy.cros', '/usr/local/chromeos',
+                                     'average', self.mock_cmd_exec)
+    self.mock_cmd_exec.CrosRunCommandWOutput = mock_run_cmd
+    mock_run_cmd.return_value = [0, MEMINFO_STRING, '']
+    cm._GetMemoryInfo()
+    self.assertEqual(mock_run_cmd.call_count, 1)
+    call_args = mock_run_cmd.call_args_list[0]
+    self.assertEqual(call_args[0][0], 'cat /proc/meminfo')
+    args_dict = call_args[1]
+    self.assertEqual(args_dict['machine'], 'daisy.cros')
+    self.assertEqual(args_dict['chromeos_root'], '/usr/local/chromeos')
+    self.assertEqual(cm.meminfo, MEMINFO_STRING)
+    self.assertEqual(cm.phys_kbytes, 4194304)
+
+    mock_run_cmd.return_value = [1, MEMINFO_STRING, '']
+    self.assertRaises(cm._GetMemoryInfo)
+
+  @mock.patch.object(command_executer.CommandExecuter, 'CrosRunCommandWOutput')
+  @mock.patch.object(machine_manager.CrosMachine, 'SetUpChecksumInfo')
+  def test_get_cpu_info(self, _mock_setup, mock_run_cmd):
+    cm = machine_manager.CrosMachine('daisy.cros', '/usr/local/chromeos',
+                                     'average', self.mock_cmd_exec)
+    self.mock_cmd_exec.CrosRunCommandWOutput = mock_run_cmd
+    mock_run_cmd.return_value = [0, CPUINFO_STRING, '']
+    cm._GetCPUInfo()
+    self.assertEqual(mock_run_cmd.call_count, 1)
+    call_args = mock_run_cmd.call_args_list[0]
+    self.assertEqual(call_args[0][0], 'cat /proc/cpuinfo')
+    args_dict = call_args[1]
+    self.assertEqual(args_dict['machine'], 'daisy.cros')
+    self.assertEqual(args_dict['chromeos_root'], '/usr/local/chromeos')
+    self.assertEqual(cm.cpuinfo, CPUINFO_STRING)
+
+  @mock.patch.object(machine_manager.CrosMachine, 'SetUpChecksumInfo')
+  def test_compute_machine_checksum_string(self, _mock_setup):
+    cm = machine_manager.CrosMachine('daisy.cros', '/usr/local/chromeos',
+                                     'average', self.mock_cmd_exec)
+    cm.cpuinfo = CPUINFO_STRING
+    cm.meminfo = MEMINFO_STRING
+    cm._ParseMemoryInfo()
+    cm._ComputeMachineChecksumString()
+    self.assertEqual(cm.checksum_string, CHECKSUM_STRING)
+
+  @mock.patch.object(machine_manager.CrosMachine, 'SetUpChecksumInfo')
+  def test_get_md5_checksum(self, _mock_setup):
+    cm = machine_manager.CrosMachine('daisy.cros', '/usr/local/chromeos',
+                                     'average', self.mock_cmd_exec)
+    temp_str = 'abcde'
+    checksum_str = cm._GetMD5Checksum(temp_str)
+    self.assertEqual(checksum_str, 'ab56b4d92b40713acc5af89985d4b786')
+
+    temp_str = ''
+    checksum_str = cm._GetMD5Checksum(temp_str)
+    self.assertEqual(checksum_str, '')
+
+  @mock.patch.object(command_executer.CommandExecuter, 'CrosRunCommandWOutput')
+  @mock.patch.object(machine_manager.CrosMachine, 'SetUpChecksumInfo')
+  def test_get_machine_id(self, _mock_setup, mock_run_cmd):
+    cm = machine_manager.CrosMachine('daisy.cros', '/usr/local/chromeos',
+                                     'average', self.mock_cmd_exec)
+    self.mock_cmd_exec.CrosRunCommandWOutput = mock_run_cmd
+    mock_run_cmd.return_value = [0, DUMP_VPD_STRING, '']
+
+    cm._GetMachineID()
+    self.assertEqual(cm.machine_id, '"Product_S/N"="HT4L91SC300208"')
+
+    mock_run_cmd.return_value = [0, IFCONFIG_STRING, '']
+    cm._GetMachineID()
+    self.assertEqual(
+        cm.machine_id,
+        '        ether 00:50:b6:63:db:65  txqueuelen 1000  (Ethernet)_        '
+        'ether e8:03:9a:9c:50:3d  txqueuelen 1000  (Ethernet)_        ether '
+        '44:6d:57:20:4a:c5  txqueuelen 1000  (Ethernet)')
+
+    mock_run_cmd.return_value = [0, 'invalid hardware config', '']
+    self.assertRaises(cm._GetMachineID)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/mock_instance.py b/crosperf/mock_instance.py
new file mode 100644
index 0000000..758108f
--- /dev/null
+++ b/crosperf/mock_instance.py
@@ -0,0 +1,143 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""This contains some mock instances for testing."""
+
+from __future__ import print_function
+
+from benchmark import Benchmark
+from label import MockLabel
+
+perf_args = 'record -a -e cycles'
+label1 = MockLabel(
+    'test1',
+    'image1',
+    'autotest_dir',
+    '/tmp/test_benchmark_run',
+    'x86-alex',
+    'chromeos-alex1',
+    image_args='',
+    cache_dir='',
+    cache_only=False,
+    log_level='average',
+    compiler='gcc')
+
+label2 = MockLabel(
+    'test2',
+    'image2',
+    'autotest_dir',
+    '/tmp/test_benchmark_run_2',
+    'x86-alex',
+    'chromeos-alex2',
+    image_args='',
+    cache_dir='',
+    cache_only=False,
+    log_level='average',
+    compiler='gcc')
+
+benchmark1 = Benchmark('benchmark1', 'autotest_name_1', 'autotest_args', 2, '',
+                       perf_args, '', '')
+
+benchmark2 = Benchmark('benchmark2', 'autotest_name_2', 'autotest_args', 2, '',
+                       perf_args, '', '')
+
+keyval = {}
+keyval[0] = {
+    '': 'PASS',
+    'milliseconds_1': '1',
+    'milliseconds_2': '8',
+    'milliseconds_3': '9.2',
+    'test{1}': '2',
+    'test{2}': '4',
+    'ms_1': '2.1',
+    'total': '5',
+    'bool': 'True'
+}
+
+keyval[1] = {
+    '': 'PASS',
+    'milliseconds_1': '3',
+    'milliseconds_2': '5',
+    'ms_1': '2.2',
+    'total': '6',
+    'test{1}': '3',
+    'test{2}': '4',
+    'bool': 'FALSE'
+}
+
+keyval[2] = {
+    '': 'PASS',
+    'milliseconds_4': '30',
+    'milliseconds_5': '50',
+    'ms_1': '2.23',
+    'total': '6',
+    'test{1}': '5',
+    'test{2}': '4',
+    'bool': 'FALSE'
+}
+
+keyval[3] = {
+    '': 'PASS',
+    'milliseconds_1': '3',
+    'milliseconds_6': '7',
+    'ms_1': '2.3',
+    'total': '7',
+    'test{1}': '2',
+    'test{2}': '6',
+    'bool': 'FALSE'
+}
+
+keyval[4] = {
+    '': 'PASS',
+    'milliseconds_1': '3',
+    'milliseconds_8': '6',
+    'ms_1': '2.3',
+    'total': '7',
+    'test{1}': '2',
+    'test{2}': '6',
+    'bool': 'TRUE'
+}
+
+keyval[5] = {
+    '': 'PASS',
+    'milliseconds_1': '3',
+    'milliseconds_8': '6',
+    'ms_1': '2.2',
+    'total': '7',
+    'test{1}': '2',
+    'test{2}': '2',
+    'bool': 'TRUE'
+}
+
+keyval[6] = {
+    '': 'PASS',
+    'milliseconds_1': '3',
+    'milliseconds_8': '6',
+    'ms_1': '2',
+    'total': '7',
+    'test{1}': '2',
+    'test{2}': '4',
+    'bool': 'TRUE'
+}
+
+keyval[7] = {
+    '': 'PASS',
+    'milliseconds_1': '3',
+    'milliseconds_8': '6',
+    'ms_1': '1',
+    'total': '7',
+    'test{1}': '1',
+    'test{2}': '6',
+    'bool': 'TRUE'
+}
+
+keyval[8] = {
+    '': 'PASS',
+    'milliseconds_1': '3',
+    'milliseconds_8': '6',
+    'ms_1': '3.3',
+    'total': '7',
+    'test{1}': '2',
+    'test{2}': '8',
+    'bool': 'TRUE'
+}
diff --git a/crosperf/perf_files/perf.data.report.0 b/crosperf/perf_files/perf.data.report.0
new file mode 100644
index 0000000..910fdc4
--- /dev/null
+++ b/crosperf/perf_files/perf.data.report.0
@@ -0,0 +1,734 @@
+# To display the perf.data header info, please use --header/--header-only options.
+#
+# NOTE: this file has been manually cut into arbitrary tiny pieces. The original
+# was > 100,000 lines, and took Python a few seconds to run through. This one
+# takes almost no time, and should work just as well.
+#
+# Samples: 292K of event 'cycles'
+# Event count (approx.): 106521626675
+#
+# Overhead       Samples          Command                   Shared Object                  Symbol
+# ........  ............  ...............  ..............................  ......................
+#
+     0.66%          3539          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a1f1c9
+     0.61%          1703           chrome  [kernel.kallsyms]               [k] 0xffffffffa4eca110
+     0.50%          1402           chrome  [kernel.kallsyms]               [k] 0xffffffffa4beea47
+     0.48%          1297           chrome  perf-24199.map                  [.] 0x0000115bb6c35d7a
+     0.47%          1286           chrome  perf-24199.map                  [.] 0x0000115bb7ba9b54
+     0.42%          1149            lsusb  lsusb                           [.] 0x0000000000010e60
+     0.37%          1029           chrome  chrome                          [.] 0x0000000000e45a2b
+     0.37%           991           chrome  perf-24199.map                  [.] 0x0000115bb6c35d72
+     0.28%           762           chrome  perf-24199.map                  [.] 0x0000115bb6c35d76
+     0.27%           735           chrome  perf-24199.map                  [.] 0x0000115bb6aa463a
+     0.22%           608           chrome  perf-24199.map                  [.] 0x0000115bb7ba9ebf
+     0.17%           468           chrome  perf-24199.map                  [.] 0x0000115bb6a7afc3
+     0.17%           503           chrome  [kernel.kallsyms]               [k] 0xffffffffa4bf4c3d
+     0.17%           450           chrome  perf-24199.map                  [.] 0x0000115bb6af7457
+     0.16%           444           chrome  perf-24199.map                  [.] 0x0000115bb7c6edd1
+     0.16%           438           chrome  perf-24199.map                  [.] 0x0000115bb7c6f93d
+     0.15%           420           chrome  perf-24199.map                  [.] 0x0000115bb6af744b
+     0.15%           414           chrome  perf-24199.map                  [.] 0x0000115bb7c6fa42
+     0.15%           405           chrome  perf-24199.map                  [.] 0x0000115bb6af7430
+     0.15%           398           chrome  perf-24199.map                  [.] 0x0000115bb6af7421
+     0.15%           396           chrome  perf-24199.map                  [.] 0x0000115bb6af7438
+     0.15%           396           chrome  perf-24199.map                  [.] 0x0000115bb6af742b
+     0.14%           437           chrome  chrome                          [.] 0x0000000005d10b64
+     0.14%           385           chrome  perf-24199.map                  [.] 0x0000115bb7c6f9e5
+     0.14%           371           chrome  perf-24199.map                  [.] 0x0000115bb6af7418
+     0.14%           369           chrome  perf-24199.map                  [.] 0x0000115bb6af73f9
+     0.14%           369           chrome  perf-24199.map                  [.] 0x0000115bb5d21648
+     0.13%           363           chrome  perf-24199.map                  [.] 0x0000115bb6af7428
+     0.13%           358           chrome  perf-24199.map                  [.] 0x0000115bb6b80e03
+     0.13%           343           chrome  perf-24199.map                  [.] 0x0000115bb6af73fc
+     0.13%           344           chrome  chrome                          [.] 0x0000000000e55b20
+     0.12%           338           chrome  chrome                          [.] 0x00000000011d1cb0
+     0.12%           317           chrome  perf-24199.map                  [.] 0x0000115bb6aa469c
+     0.11%           311           chrome  perf-24199.map                  [.] 0x0000115bb6af73f6
+     0.11%           315           chrome  chrome                          [.] 0x0000000000e48e65
+     0.11%           310           chrome  perf-24199.map                  [.] 0x0000115bb6af73dc
+     0.11%           309           chrome  perf-24199.map                  [.] 0x0000115bb6af73cc
+     0.11%           303           chrome  perf-24199.map                  [.] 0x0000115bb5d21662
+     0.11%           302           chrome  perf-24199.map                  [.] 0x0000115bb5d29f6a
+     0.11%           295           chrome  perf-24199.map                  [.] 0x0000115bb6af7382
+     0.11%           295           chrome  perf-24199.map                  [.] 0x0000115bb6c35d1d
+     0.11%           294           chrome  perf-24199.map                  [.] 0x0000115bb6c35d99
+     0.11%           293           chrome  perf-24199.map                  [.] 0x0000115bb6c35cec
+     0.11%           292           chrome  perf-24199.map                  [.] 0x0000115bb6af73bc
+     0.10%           285           chrome  chrome                          [.] 0x0000000000e46990
+     0.10%           283           chrome  perf-24199.map                  [.] 0x0000115bb6af7465
+     0.10%           282           chrome  perf-24199.map                  [.] 0x0000115bb6aa4699
+     0.10%           276           chrome  perf-24199.map                  [.] 0x0000115bb6c35d2e
+     0.10%           274           chrome  perf-24199.map                  [.] 0x0000115bb6c35d6e
+     0.10%           273           chrome  perf-24199.map                  [.] 0x0000115bb6af73f0
+     0.10%           268           chrome  perf-24199.map                  [.] 0x0000115bb7ba9ecb
+     0.10%           266           chrome  perf-24199.map                  [.] 0x0000115bb6af73a1
+     0.10%           262           chrome  perf-24199.map                  [.] 0x0000115bb6c35d57
+     0.09%           286           chrome  [kernel.kallsyms]               [k] 0xffffffffa4bef022
+     0.09%           256           chrome  chrome                          [.] 0x0000000000e6fa2b
+     0.09%           249           chrome  perf-24199.map                  [.] 0x0000115bb6c35d47
+     0.09%           248           chrome  perf-24199.map                  [.] 0x0000115bb6af73e6
+     0.09%           247           chrome  perf-24199.map                  [.] 0x0000115bb6c35d8d
+     0.09%           240           chrome  perf-24199.map                  [.] 0x0000115bb6a7b6e7
+     0.09%           240           chrome  perf-24199.map                  [.] 0x0000115bb6c35d81
+     0.09%           233           chrome  perf-24199.map                  [.] 0x0000115bb7ba9e8c
+     0.09%           233           chrome  perf-24199.map                  [.] 0x0000115bb6c35d02
+     0.08%           230           chrome  perf-24199.map                  [.] 0x0000115bb5d09f68
+     0.08%           228           chrome  chrome                          [.] 0x0000000000e45adc
+     0.08%           232          swapper  [kernel.kallsyms]               [k] 0xffffffffa4dccf94
+     0.08%           222           chrome  perf-24199.map                  [.] 0x0000115bb7bed938
+     0.08%           222           chrome  perf-24199.map                  [.] 0x0000115bb5d0a372
+     0.08%           338           python  [kernel.kallsyms]               [k] 0xffffffffa4eca110
+     0.08%           218           chrome  perf-24199.map                  [.] 0x0000115bb7ba9b5d
+     0.08%           215           chrome  perf-24199.map                  [.] 0x0000115bb7ba9ea8
+     0.08%           246           python  [kernel.kallsyms]               [k] 0xffffffffa4ad6f19
+     0.08%           216          swapper  [kernel.kallsyms]               [k] 0xffffffffa4dccfa1
+     0.08%           206            lsusb  lsusb                           [.] 0x0000000000010e63
+     0.08%           207           chrome  chrome                          [.] 0x0000000000e4596c
+     0.07%           204           chrome  perf-24199.map                  [.] 0x0000115bb5d29dd4
+     0.07%           202           chrome  perf-24199.map                  [.] 0x0000115bb6b25330
+     0.07%           199           chrome  perf-24199.map                  [.] 0x0000115bb6b25338
+     0.07%           198           chrome  perf-24199.map                  [.] 0x0000115bb5d1726d
+     0.07%           194           chrome  perf-24199.map                  [.] 0x0000115bb6a7b07c
+     0.07%           214           chrome  chrome                          [.] 0x0000000005d10e5e
+     0.07%           187           chrome  perf-24199.map                  [.] 0x0000115bb7ba9b69
+     0.07%           188           chrome  perf-24199.map                  [.] 0x0000115bb5d1728e
+     0.07%           187           chrome  perf-24199.map                  [.] 0x0000115bb6b80dfe
+     0.07%           179           chrome  perf-24199.map                  [.] 0x0000115bb7bed940
+     0.07%           179           chrome  perf-24199.map                  [.] 0x0000115bb5d0a36e
+     0.06%           176           chrome  chrome                          [.] 0x0000000000e75fe4
+     0.06%           181           chrome  chrome                          [.] 0x00000000023fd480
+     0.06%           172           chrome  perf-24199.map                  [.] 0x0000115bb6af73e9
+     0.06%           170           chrome  perf-24199.map                  [.] 0x0000115bb6a7b6fe
+     0.06%           177          swapper  [kernel.kallsyms]               [k] 0xffffffffa4dccf9b
+     0.06%           168           chrome  chrome                          [.] 0x0000000000e45aff
+     0.06%           166           chrome  perf-24199.map                  [.] 0x0000115bb6b25340
+     0.06%           175           chrome  [kernel.kallsyms]               [k] 0xffffffffa4ac31c3
+     0.06%           163           chrome  chrome                          [.] 0x0000000000e4fcb8
+     0.06%           160           chrome  perf-24199.map                  [.] 0x0000115bb6a7afbb
+     0.06%           160           chrome  chrome                          [.] 0x0000000000e54d5c
+     0.06%           156           chrome  perf-24199.map                  [.] 0x0000115bb6a7af9f
+     0.06%           157           chrome  perf-24199.map                  [.] 0x0000115bb5d29daf
+     0.06%           156           chrome  perf-24199.map                  [.] 0x0000115bb5d21656
+     0.06%           172           chrome  chrome                          [.] 0x0000000005d10b5b
+     0.06%           156           chrome  perf-24199.map                  [.] 0x0000115bb6aa4662
+     0.06%           155           chrome  perf-24199.map                  [.] 0x0000115bb7bed932
+     0.06%           155           chrome  perf-24199.map                  [.] 0x0000115bb6b82327
+     0.05%           149           chrome  perf-24199.map                  [.] 0x0000115bb7ba9ede
+     0.05%           146           chrome  perf-24199.map                  [.] 0x0000115bb6aa45f8
+     0.05%           145           chrome  perf-24199.map                  [.] 0x0000115bb6aa460e
+     0.05%           153           chrome  chrome                          [.] 0x0000000000cb7030
+     0.05%           142           chrome  perf-24199.map                  [.] 0x0000115bb7ba9b18
+     0.05%           143           chrome  chrome                          [.] 0x0000000000f13e9c
+     0.05%           143           chrome  perf-24199.map                  [.] 0x0000115bb6b2530a
+     0.05%           141           chrome  chrome                          [.] 0x0000000000e18c45
+     0.05%           138           chrome  perf-24199.map                  [.] 0x0000115bb6ca5090
+     0.05%           211           python  [kernel.kallsyms]               [k] 0xffffffffa4ae14fd
+     0.05%           137           chrome  perf-24199.map                  [.] 0x0000115bb6aa4692
+     0.05%           137           chrome  perf-24199.map                  [.] 0x0000115bb6aa4626
+     0.05%           136           chrome  perf-24199.map                  [.] 0x0000115bb7ba9ed2
+     0.05%           196           python  [kernel.kallsyms]               [k] 0xffffffffa4beeac5
+     0.05%           133           chrome  perf-24199.map                  [.] 0x0000115bb6ca5109
+     0.05%           132           chrome  perf-24199.map                  [.] 0x0000115bb7ba9b42
+     0.05%           132           chrome  perf-24199.map                  [.] 0x0000115bb6b8230f
+     0.05%           132           chrome  perf-24199.map                  [.] 0x0000115bb5d215e5
+     0.05%           131           chrome  perf-24199.map                  [.] 0x0000115bb7c6fa0a
+     0.05%           149           chrome  libpthread-2.19.so              [.] 0x000000000000b471
+     0.05%           130           chrome  perf-24199.map                  [.] 0x0000115bb6aa4678
+     0.05%           133           chrome  libc-2.19.so                    [.] 0x0000000000088b72
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6c4c692
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6a7b4bc
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb7bba146
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb7ba9e83
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb7ba9dde
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6c4c713
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6a7b197
+     0.01%            16           keygen  libfreebl3.so                   [.] 0x000000000005bc62
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6ae766b
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6c4c6ef
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6c4e9ef
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6c4c0ba
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6a78053
+     0.01%            16           chrome  chrome                          [.] 0x0000000000e73bb0
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6c36bee
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6c3979b
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6c4e93b
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6af73bf
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6b814a7
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6a7b6cd
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6af73c5
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6b8147d
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6b8216b
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6b80dc6
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6ba1724
+     0.01%            16           chrome  chrome                          [.] 0x000000000254788e
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb6b81ed9
+     0.01%            16           chrome  perf-24199.map                  [.] 0x0000115bb5d27a01
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a09503
+     0.00%             1        rcu_sched  [kernel.kallsyms]               [k] 0xffffffffa4a63d39
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a65090
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4dcd1c3
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a544b0
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a54f5b
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4ec8bec
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4c532e4
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4a00e4c
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4a63e67
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4ec855a
+     0.00%             1             mtpd  [kernel.kallsyms]               [k] 0xffffffffa4a0cb13
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4a00dee
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a5d3a2
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a66eba
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4bea29e
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a545c4
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4a62fcf
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4cc8948
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4ec9b33
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4ec8911
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4a64bf8
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a00e4c
+     0.00%             1        rcu_sched  [kernel.kallsyms]               [k] 0xffffffffa4a63d0c
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4bea29a
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a75623
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4a5d435
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4a546cf
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4bec12d
+     0.00%             1        rcu_sched  [kernel.kallsyms]               [k] 0xffffffffa4a66db1
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4ec855b
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a6394d
+     0.00%             1      dbus-daemon  [kernel.kallsyms]               [k] 0xffffffffa4ded832
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a638c4
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a1fc16
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a75810
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a92368
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a23893
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4a00e17
+     0.00%             1        rcu_sched  [kernel.kallsyms]               [k] 0xffffffffa4a679aa
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a6e743
+     0.00%             1            disks                                 [.] 0x00000000000e9fc7
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a55032
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a58dc9
+     0.00%             1        rcu_sched  [kernel.kallsyms]               [k] 0xffffffffa4a6646c
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a65163
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4ec84f8
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4a54e31
+     0.00%             1        rcu_sched  [kernel.kallsyms]               [k] 0xffffffffa4a63e17
+     0.00%             1           chrome  [kernel.kallsyms]               [k] 0xffffffffa4ec8435
+     0.00%             1        rcu_sched  [kernel.kallsyms]               [k] 0xffffffffa4bf4d14
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a3909e
+     0.00%             1      dbus-daemon  [kernel.kallsyms]               [k] 0xffffffffa4bef0f0
+     0.00%             1            disks                                 [.] 0x0000000000082e08
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4dce5a5
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a66a5c
+     0.00%             1            rsync  [kernel.kallsyms]               [k] 0xffffffffa4bbaa3c
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a1feea
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a5de3a
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a38e6b
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a2cb16
+     0.00%             1          swapper  [kernel.kallsyms]               [k] 0xffffffffa4a7a32f
+     0.00%             5             perf  [kernel.kallsyms]               [k] 0xffffffffa4a13e63
+
+
+# Samples: 266K of event 'instructions'
+# Event count (approx.): 154627854320
+#
+# Overhead       Samples          Command               Shared Object                  Symbol
+# ........  ............  ...............  ..........................  ......................
+#
+     1.65%          2882           chrome  perf-24199.map              [.] 0x0000115bb6c35d7a
+     0.67%           987           chrome  perf-24199.map              [.] 0x0000115bb7ba9b54
+     0.51%           663           chrome  perf-24199.map              [.] 0x0000115bb6af7457
+     0.45%           592           chrome  perf-24199.map              [.] 0x0000115bb6af744b
+     0.45%           660           chrome  perf-24199.map              [.] 0x0000115bb7ba9ebf
+     0.44%           581           chrome  perf-24199.map              [.] 0x0000115bb6af7438
+     0.39%           576           chrome  perf-24199.map              [.] 0x0000115bb7c6f9e5
+     0.37%           488           chrome  perf-24199.map              [.] 0x0000115bb6af7430
+     0.34%           499           chrome  perf-24199.map              [.] 0x0000115bb7c6f93d
+     0.33%           575           chrome  perf-24199.map              [.] 0x0000115bb6c35d81
+     0.33%           573           chrome  perf-24199.map              [.] 0x0000115bb6c35d99
+     0.32%           420           chrome  perf-24199.map              [.] 0x0000115bb6af742b
+     0.30%           391           chrome  perf-24199.map              [.] 0x0000115bb6af7465
+     0.29%           503           chrome  perf-24199.map              [.] 0x0000115bb6c35d76
+     0.29%           377           chrome  perf-24199.map              [.] 0x0000115bb6af73f0
+     0.28%           492           chrome  perf-24199.map              [.] 0x0000115bb6a7afc3
+     0.28%           373           chrome  perf-24199.map              [.] 0x0000115bb6af7428
+     0.27%           361           chrome  perf-24199.map              [.] 0x0000115bb6af7382
+     0.27%           361           chrome  perf-24199.map              [.] 0x0000115bb6af73f9
+     0.27%           360           chrome  perf-24199.map              [.] 0x0000115bb6af73a1
+     0.27%           464           chrome  perf-24199.map              [.] 0x0000115bb6c35d8d
+     0.24%           318           chrome  perf-24199.map              [.] 0x0000115bb6af7421
+     0.24%           425           chrome  perf-24199.map              [.] 0x0000115bb6b80e03
+     0.24%           314           chrome  perf-24199.map              [.] 0x0000115bb6af73f6
+     0.24%           345           chrome  perf-24199.map              [.] 0x0000115bb7c6fa42
+     0.23%           338           chrome  perf-24199.map              [.] 0x0000115bb7c6edd1
+     0.21%           315           chrome  perf-24199.map              [.] 0x0000115bb7ba9ecb
+     0.21%           279           chrome  perf-24199.map              [.] 0x0000115bb6af7418
+     0.21%           277           chrome  perf-24199.map              [.] 0x0000115bb6af73bc
+     0.21%           304           chrome  perf-24199.map              [.] 0x0000115bb7ba9ea8
+     0.20%           534           chrome  perf-24199.map              [.] 0x0000115bb5d21648
+     0.18%           238           chrome  perf-24199.map              [.] 0x0000115bb6af73e6
+     0.17%           227           chrome  perf-24199.map              [.] 0x0000115bb6af73fc
+     0.17%           241           chrome  perf-24199.map              [.] 0x0000115bb7ba9b5d
+     0.16%           240           chrome  perf-24199.map              [.] 0x0000115bb7ba9b10
+     0.16%           285           chrome  perf-24199.map              [.] 0x0000115bb6a7b07c
+     0.15%           205           chrome  perf-24199.map              [.] 0x0000115bb6af73dc
+     0.15%           290           chrome  perf-24199.map              [.] 0x0000115bb6aa460e
+     0.15%           223           chrome  perf-24199.map              [.] 0x0000115bb7ba9b69
+     0.15%           194           chrome  perf-24199.map              [.] 0x0000115bb6af73cc
+     0.15%           191           chrome  perf-24199.map              [.] 0x0000115bb6af974c
+     0.14%           185           chrome  perf-24199.map              [.] 0x0000115bb6af7461
+     0.14%           204           chrome  perf-24199.map              [.] 0x0000115bb7bed940
+     0.14%           368           chrome  perf-24199.map              [.] 0x0000115bb5d21662
+     0.14%           230           chrome  perf-24199.map              [.] 0x0000115bb6a7b412
+     0.14%           199           chrome  perf-24199.map              [.] 0x0000115bb7ba9ed2
+     0.13%           197           chrome  perf-24199.map              [.] 0x0000115bb7ba9ede
+     0.13%           255           chrome  perf-24199.map              [.] 0x0000115bb6aa463a
+     0.13%           191           chrome  perf-24199.map              [.] 0x0000115bb7ba9e8c
+     0.13%           187           chrome  perf-24199.map              [.] 0x0000115bb7c6f9cb
+     0.13%           242           chrome  perf-24199.map              [.] 0x0000115bb6aa4678
+     0.13%           165           chrome  perf-24199.map              [.] 0x0000115bb6af975e
+     0.13%           222           chrome  perf-24199.map              [.] 0x0000115bb6b80dfe
+     0.12%           163           chrome  perf-24199.map              [.] 0x0000115bb6af9746
+     0.12%           234           chrome  perf-24199.map              [.] 0x0000115bb6aa4692
+     0.12%           178           chrome  perf-24199.map              [.] 0x0000115bb7c6ed55
+     0.12%           157           chrome  perf-24199.map              [.] 0x0000115bb6af96f4
+     0.12%           154           chrome  perf-24199.map              [.] 0x0000115bb6af9737
+     0.12%           173           chrome  perf-24199.map              [.] 0x0000115bb7c6fa73
+     0.12%           171           chrome  perf-24199.map              [.] 0x0000115bb7c6fa5e
+     0.12%           200           chrome  perf-24199.map              [.] 0x0000115bb6a7afbb
+     0.12%           199           chrome  perf-24199.map              [.] 0x0000115bb6a7b6fe
+     0.12%           169           chrome  perf-24199.map              [.] 0x0000115bb7c6f8f2
+     0.11%           148           chrome  perf-24199.map              [.] 0x0000115bb6af737e
+     0.11%           205           chrome  libc-2.19.so                [.] 0x0000000000088b72
+     0.11%           212           chrome  perf-24199.map              [.] 0x0000115bb6aa469c
+     0.11%           160           chrome  perf-24199.map              [.] 0x0000115bb7c6f8d0
+     0.11%           204           chrome  perf-24199.map              [.] 0x0000115bb6aa4626
+     0.11%           160           chrome  perf-24199.map              [.] 0x0000115bb7bed932
+     0.11%           154           chrome  perf-24199.map              [.] 0x0000115bb7ba9b18
+     0.11%           137           chrome  perf-24199.map              [.] 0x0000115bb6af972f
+     0.10%           153           chrome  perf-24199.map              [.] 0x0000115bb7c6f9f9
+     0.10%           136           chrome  perf-24199.map              [.] 0x0000115bb6af7394
+     0.10%           238           chrome  chrome                      [.] 0x0000000000e45adc
+     0.10%           131           chrome  perf-24199.map              [.] 0x0000115bb6af977d
+     0.10%           146           chrome  perf-24199.map              [.] 0x0000115bb7c6f907
+     0.10%           171           chrome  perf-24199.map              [.] 0x0000115bb6a7b6e7
+     0.10%           144           chrome  perf-24199.map              [.] 0x0000115bb7c6f9e1
+     0.10%           128           chrome  perf-24199.map              [.] 0x0000115bb6af9732
+     0.10%           256           chrome  perf-24199.map              [.] 0x0000115bb5d21656
+     0.10%           142           chrome  perf-24199.map              [.] 0x0000115bb7c6f9b1
+     0.10%           181           chrome  perf-24199.map              [.] 0x0000115bb6aa464e
+     0.10%           147           chrome  perf-24199.map              [.] 0x0000115bb7bf5700
+     0.10%           181           chrome  perf-24199.map              [.] 0x0000115bb6aa4662
+     0.09%           161           chrome  perf-24199.map              [.] 0x0000115bb6a7af9f
+     0.09%           136           chrome  perf-24199.map              [.] 0x0000115bb7c6f216
+     0.09%           159           chrome  perf-24199.map              [.] 0x0000115bb6a7b377
+     0.09%           228           chrome  perf-24199.map              [.] 0x0000115bb5d0a372
+     0.09%           118           chrome  perf-24199.map              [.] 0x0000115bb6af9769
+     0.09%           117           chrome  perf-24199.map              [.] 0x0000115bb6af96f2
+     0.09%           336           chrome  perf-24199.map              [.] 0x0000115bb5d1726d
+     0.09%           193           chrome  chrome                      [.] 0x0000000000e76562
+     0.09%           117           chrome  perf-24199.map              [.] 0x0000115bb6add6ed
+     0.09%           219           chrome  chrome                      [.] 0x0000000000e45a2b
+     0.09%           148           chrome  perf-24199.map              [.] 0x0000115bb6a7afc9
+     0.08%           111           chrome  perf-24199.map              [.] 0x0000115bb6af972a
+     0.08%           158           chrome  perf-24199.map              [.] 0x0000115bb6aa45f8
+     0.08%           145           chrome  perf-24199.map              [.] 0x0000115bb6a7afed
+     0.08%           112           chrome  perf-24199.map              [.] 0x0000115bb6af73b8
+     0.08%           107           chrome  perf-24199.map              [.] 0x0000115bb6af9707
+     0.08%           118           chrome  perf-24199.map              [.] 0x0000115bb7ba9b3a
+     0.08%           138           chrome  perf-24199.map              [.] 0x0000115bb6a785c9
+     0.08%           117           chrome  perf-24199.map              [.] 0x0000115bb7c6ed3e
+     0.08%           142           chrome  perf-24199.map              [.] 0x0000115bb6b81e10
+     0.08%           106           chrome  perf-24199.map              [.] 0x0000115bb6af73e3
+     0.08%           154           chrome  chrome                      [.] 0x0000000000eb5472
+     0.08%           116           chrome  perf-24199.map              [.] 0x0000115bb7bed9b6
+     0.08%           287           chrome  perf-24199.map              [.] 0x0000115bb5d29f6a
+     0.08%           199           chrome  chrome                      [.] 0x0000000000e6fa2b
+     0.08%           218           chrome  chrome                      [.] 0x0000000000e55b20
+     0.08%           110           chrome  perf-24199.map              [.] 0x0000115bb7c6f925
+     0.07%           112           chrome  perf-24199.map              [.] 0x0000115bb7bb53c2
+     0.07%           107           chrome  perf-24199.map              [.] 0x0000115bb7c6f92d
+     0.07%           155           chrome  perf-24199.map              [.] 0x0000115bb5d2640e
+     0.07%           127           chrome  perf-24199.map              [.] 0x0000115bb6c35d72
+     0.07%           124           chrome  perf-24199.map              [.] 0x0000115bb6a78284
+     0.07%           107           chrome  perf-24199.map              [.] 0x0000115bb7bed990
+     0.07%           421           python  [kernel.kallsyms]           [k] 0xffffffffa4ae14fd
+     0.07%            93           chrome  perf-24199.map              [.] 0x0000115bb6af73e9
+     0.07%           104           chrome  perf-24199.map              [.] 0x0000115bb7bed938
+     0.07%           158           chrome  perf-24199.map              [.] 0x0000115bb6b57933
+     0.07%           100           chrome  perf-24199.map              [.] 0x0000115bb7c6f96b
+     0.07%           123           chrome  perf-24199.map              [.] 0x0000115bb6b8230f
+     0.07%           101           chrome  perf-24199.map              [.] 0x0000115bb7bed9bf
+     0.07%           102           chrome  perf-24199.map              [.] 0x0000115bb7bb53df
+     0.07%           144           chrome  perf-24199.map              [.] 0x0000115bb6b2530a
+     0.07%            91           chrome  perf-24199.map              [.] 0x0000115bb6add73f
+     0.07%            89           chrome  perf-24199.map              [.] 0x0000115bb6add762
+     0.07%            98           chrome  perf-24199.map              [.] 0x0000115bb7bed926
+     0.06%            85           chrome  perf-24199.map              [.] 0x0000115bb6af96a7
+     0.06%           129           chrome  perf-24199.map              [.] 0x0000115bb6aa4699
+     0.06%           112           chrome  perf-24199.map              [.] 0x0000115bb6c35d47
+     0.06%           295           chrome  chrome                      [.] 0x00000000011d1cb0
+     0.06%           114           chrome  perf-24199.map              [.] 0x0000115bb6b822b1
+     0.06%            94           chrome  perf-24199.map              [.] 0x0000115bb7bed99d
+     0.06%            94           chrome  perf-24199.map              [.] 0x0000115bb7bb53f2
+     0.06%            92           chrome  perf-24199.map              [.] 0x0000115bb7ba9b86
+     0.06%            92           chrome  perf-24199.map              [.] 0x0000115bb7ba9b29
+     0.06%            88           chrome  perf-24199.map              [.] 0x0000115bb6e14f87
+     0.06%            80           chrome  perf-24199.map              [.] 0x0000115bb6af9722
+     0.06%           109           chrome  perf-24199.map              [.] 0x0000115bb6b8238a
+     0.06%            93           chrome  perf-24199.map              [.] 0x0000115bb7ba71a3
+     0.06%            80           chrome  perf-24199.map              [.] 0x0000115bb6af747f
+     0.06%           107           chrome  perf-24199.map              [.] 0x0000115bb6b80e22
+     0.06%           104           chrome  perf-24199.map              [.] 0x0000115bb6a72466
+     0.06%            78           chrome  perf-24199.map              [.] 0x0000115bb6add757
+     0.06%            80           chrome  perf-24199.map              [.] 0x0000115bb6add745
+     0.06%           102           chrome  perf-24199.map              [.] 0x0000115bb6c35cec
+     0.06%           202           chrome  chrome                      [.] 0x0000000000f13e9c
+     0.06%           166           chrome  chrome                      [.] 0x0000000000e46989
+     0.06%           318           python  [kernel.kallsyms]           [k] 0xffffffffa4ad6f19
+     0.06%            83           chrome  perf-24199.map              [.] 0x0000115bb7c6f97d
+     0.06%            77           chrome  perf-24199.map              [.] 0x0000115bb6add730
+     0.06%            82           chrome  perf-24199.map              [.] 0x0000115bb7c6f992
+     0.06%           132           chrome  perf-24199.map              [.] 0x0000115bb5d417f2
+     0.06%            76           chrome  perf-24199.map              [.] 0x0000115bb6add728
+     0.06%            72           chrome  perf-24199.map              [.] 0x0000115bb6af9702
+     0.06%            94           chrome  perf-24199.map              [.] 0x0000115bb6c4ea18
+     0.06%           321           chrome  [kernel.kallsyms]           [k] 0xffffffffa4bf4c3d
+     0.06%           139           chrome  perf-24199.map              [.] 0x0000115bb5d21666
+     0.06%            72           chrome  perf-24199.map              [.] 0x0000115bb6af9684
+     0.06%            78           chrome  perf-24199.map              [.] 0x0000115bb6add6a0
+     0.05%            72           chrome  perf-24199.map              [.] 0x0000115bb6af73c8
+     0.05%           137           chrome  perf-24199.map              [.] 0x0000115bb5d0a36e
+     0.05%            97           chrome  perf-24199.map              [.] 0x0000115bb6b82327
+     0.05%            70           chrome  perf-24199.map              [.] 0x0000115bb6b06516
+     0.05%           137           chrome  chrome                      [.] 0x0000000000e6fa1c
+     0.05%           132           chrome  perf-24199.map              [.] 0x0000115bb5d21629
+     0.05%           130           chrome  chrome                      [.] 0x0000000000e54d5c
+     0.05%           122           chrome  chrome                      [.] 0x0000000000e48e5f
+     0.05%           839            lsusb  lsusb                       [.] 0x0000000000010e60
+     0.05%           133           chrome  perf-24199.map              [.] 0x0000115bb5d215dd
+     0.05%           130           chrome  perf-24199.map              [.] 0x0000115bb5d215c9
+     0.05%           130           chrome  perf-24199.map              [.] 0x0000115bb78d3895
+     0.05%            76           chrome  perf-24199.map              [.] 0x0000115bb7c6f174
+     0.01%            46           chrome  chrome                      [.] 0x0000000005d109a9
+     0.01%            15           chrome  perf-24199.map              [.] 0x0000115bb6aa5665
+     0.01%            17           chrome  chrome                      [.] 0x0000000000ec6b13
+     0.01%            18           chrome  perf-24199.map              [.] 0x0000115bb5d417ea
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6c3581e
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6af94fb
+     0.01%            29           chrome  libc-2.19.so                [.] 0x000000000009a8d5
+     0.01%            25           chrome  chrome                      [.] 0x0000000000e57849
+     0.01%            40           chrome  chrome                      [.] 0x0000000005d1101d
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb6e1502e
+     0.01%            20           chrome  perf-24199.map              [.] 0x0000115bb7c9f11d
+     0.01%            18           chrome  perf-24199.map              [.] 0x0000115bb6b577c8
+     0.01%            30           chrome  [kernel.kallsyms]           [k] 0xffffffffa4acff4a
+     0.01%            38           python  libpython2.7.so.1.0         [.] 0x000000000011ad14
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6b8221e
+     0.01%            59           chrome  i965_dri.so                 [.] 0x0000000000483802
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6a7d197
+     0.01%            19           chrome  perf-24199.map              [.] 0x0000115bb6b51f6a
+     0.01%            31           chrome  libpthread-2.19.so          [.] 0x0000000000009e71
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6c4eac4
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb7bea5c2
+     0.01%            38           chrome  chrome                      [.] 0x0000000000d3e821
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb7c78e2c
+     0.01%            22           chrome  perf-24199.map              [.] 0x0000115bb5d67f0f
+     0.01%            30           chrome  chrome                      [.] 0x0000000000ec4b08
+     0.01%            15           chrome  perf-24199.map              [.] 0x0000115bb5d2793b
+     0.01%            28           chrome  chrome                      [.] 0x0000000000f38669
+     0.01%            43           chrome  chrome                      [.] 0x0000000001bfb240
+     0.01%            20           chrome  perf-24199.map              [.] 0x0000115bb5d09f8e
+     0.01%            30           chrome  perf-24199.map              [.] 0x0000115bb5e3f9b2
+     0.01%            18           chrome  perf-24199.map              [.] 0x0000115bb5d072d7
+     0.01%            32           chrome  ld-2.19.so                  [.] 0x000000000000bcc7
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6a786b6
+     0.01%            36           chrome  chrome                      [.] 0x00000000024366f0
+     0.01%            17           chrome  perf-24199.map              [.] 0x0000115bb6b5a6bf
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6a78024
+     0.01%            16             sshd  sshd                        [.] 0x0000000000075c37
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6adec72
+     0.01%            15           chrome  perf-24199.map              [.] 0x0000115bb6ba0a78
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6a7b373
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6c3256e
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb6e14f74
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6af95ac
+     0.01%            26           python  libpython2.7.so.1.0         [.] 0x0000000000095f32
+     0.01%            19           chrome  perf-24199.map              [.] 0x0000115bb5d215e1
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6adeb55
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b2c7db
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7ba9e3d
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6af5a62
+     0.01%            25           chrome  chrome                      [.] 0x0000000000e1654e
+     0.01%            24           chrome  perf-24199.map              [.] 0x0000115bb6ca75f2
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7c6ef16
+     0.01%            17           chrome  chrome                      [.] 0x0000000000ed5a9a
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6b810f4
+     0.01%            30           chrome  chrome                      [.] 0x0000000000e543e9
+     0.01%            17           chrome  perf-24199.map              [.] 0x0000115bb6b5a5e2
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6ab0afa
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7c6f24e
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b2ca81
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6aa471b
+     0.01%            37           chrome  chrome                      [.] 0x0000000000eb4d31
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb6e1f80f
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7c6f5d9
+     0.01%            31           chrome  chrome                      [.] 0x0000000000e18aa9
+     0.01%            18           chrome  chrome                      [.] 0x0000000000e4907d
+     0.01%            58           chrome  i965_dri.so                 [.] 0x0000000000483806
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6a7b69b
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6b81edd
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7c6f5b3
+     0.01%            41           chrome  chrome                      [.] 0x0000000000d1e411
+     0.01%            17           chrome  perf-24199.map              [.] 0x0000115bb7b0a72f
+     0.01%            23             lsof  [kernel.kallsyms]           [k] 0xffffffffa4bf4c3d
+     0.01%            16           chrome  chrome                      [.] 0x0000000000e7656e
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b24dbd
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6aa5672
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7ba9d29
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6cb5bbd
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b2ca2a
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6a72710
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6c35d84
+     0.01%            19           chrome  chrome                      [.] 0x0000000000e45ac6
+     0.01%            38           python  libpython2.7.so.1.0         [.] 0x00000000000a8c9e
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b2c989
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b2ca71
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6aa5666
+     0.01%            20           chrome  perf-24199.map              [.] 0x0000115bb5d2165e
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6aa4729
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6b80feb
+     0.01%            27           python  libpython2.7.so.1.0         [.] 0x00000000000a8bf8
+     0.01%            23           chrome  chrome                      [.] 0x0000000000eea37a
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7c6f25f
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb6e1fc56
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b315b4
+     0.01%            24           chrome  chrome                      [.] 0x0000000000f16081
+     0.01%            26           chrome  [kernel.kallsyms]           [k] 0xffffffffa4ad9a67
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb5d2177a
+     0.01%            30           chrome  libc-2.19.so                [.] 0x000000000009a991
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6a7b687
+     0.01%            32           chrome  chrome                      [.] 0x0000000000f9f3c0
+     0.01%            25           chrome  chrome                      [.] 0x0000000000f13e73
+     0.01%            17           chrome  chrome                      [.] 0x0000000000e48e41
+     0.01%            25           chrome  chrome                      [.] 0x0000000000f19e4e
+     0.01%            17           chrome  perf-24199.map              [.] 0x0000115bb6b557dd
+     0.01%            28           chrome  chrome                      [.] 0x0000000000e18b99
+     0.01%            17           chrome  perf-24199.map              [.] 0x0000115bb7c9f0c6
+     0.01%            30           python  libpython2.7.so.1.0         [.] 0x00000000000e8dc7
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6ad9163
+     0.01%            17           chrome  perf-24199.map              [.] 0x0000115bb6b5c652
+     0.01%            18           chrome  chrome                      [.] 0x0000000000e45abc
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6a7d0d7
+     0.01%            37           chrome  chrome                      [.] 0x0000000000ce74f6
+     0.01%            15           chrome  chrome                      [.] 0x0000000000f13df8
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6bc7d01
+     0.01%            20           chrome  perf-24199.map              [.] 0x0000115bb5d265fa
+     0.01%            38           chrome  chrome                      [.] 0x00000000011dc830
+     0.01%            27           chrome  perf-24199.map              [.] 0x0000115bb5d17263
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6c36bc0
+     0.01%            24           chrome  chrome                      [.] 0x0000000000e18b9d
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6ad4877
+     0.01%            27           chrome  chrome                      [.] 0x0000000000f15f92
+     0.01%            31           chrome  chrome                      [.] 0x0000000000cf4525
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6aded45
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6c36bee
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6af5ac8
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6aac55f
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb5d07a9c
+     0.01%            15           chrome  chrome                      [.] 0x0000000000e520df
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6b80f05
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6ac669f
+     0.01%            29           chrome  libc-2.19.so                [.] 0x000000000008e2bb
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6b81f43
+     0.01%            32           chrome  ld-2.19.so                  [.] 0x000000000000bca3
+     0.01%            23           chrome  perf-24199.map              [.] 0x0000115bb6ca738d
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6e1fb74
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6abcae7
+     0.01%            33           chrome  chrome                      [.] 0x0000000000e10fd9
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7beaa06
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6e150b1
+     0.01%            27           chrome  perf-24199.map              [.] 0x0000115bb7e1e828
+     0.01%            23           chrome  chrome                      [.] 0x0000000000f1608a
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6a7b4f3
+     0.01%            18           chrome  perf-24199.map              [.] 0x0000115bb6b57760
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7bf5036
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6b814d1
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6ba4ea1
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6aaca3e
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7bf5678
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6a7d202
+     0.01%            24           chrome  ld-2.19.so                  [.] 0x000000000000967a
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb706289d
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b252a0
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6e1fbb7
+     0.01%            23           chrome  chrome                      [.] 0x0000000000f15f6a
+     0.01%            27           chrome  chrome                      [.] 0x0000000000f19e57
+     0.01%            20           chrome  chrome                      [.] 0x0000000000e5752d
+     0.01%            14           chrome  perf-24199.map              [.] 0x0000115bb6a9f27e
+     0.01%            24               ps  [kernel.kallsyms]           [k] 0xffffffffa4bee3ef
+     0.01%            18           chrome  chrome                      [.] 0x0000000000ed5ad3
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6c4e9e3
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b5a2e0
+     0.01%            25           chrome  chrome                      [.] 0x0000000000eb696b
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6b8213f
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6c35d37
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6a7b399
+     0.01%            21           chrome  chrome                      [.] 0x0000000000e4722f
+     0.01%            20           chrome  chrome                      [.] 0x0000000000dbec48
+     0.01%            15           chrome  perf-24199.map              [.] 0x0000115bb6b358f7
+     0.01%            13           chrome  perf-24199.map              [.] 0x0000115bb6b8215a
+     0.01%            21           chrome  libc-2.19.so                [.] 0x000000000008d855
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6af5abf
+     0.01%            36           chrome  chrome                      [.] 0x0000000005d10df6
+     0.01%            16           chrome  perf-24199.map              [.] 0x0000115bb6b5c716
+     0.01%            18           chrome  chrome                      [.] 0x0000000000e45c20
+     0.01%            26           chrome  chrome                      [.] 0x0000000000f1606e
+     0.01%            22           chrome  chrome                      [.] 0x0000000000f1419e
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7c8ad93
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6a784f8
+     0.01%            17           chrome  perf-24199.map              [.] 0x0000115bb7cdc597
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6b810d3
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb7ba9bae
+     0.01%            19           chrome  chrome                      [.] 0x0000000000e48dd8
+     0.01%            19           chrome  chrome                      [.] 0x0000000000eb4de8
+     0.01%            10           chrome  perf-24199.map              [.] 0x0000115bb6e41577
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6b7d7f6
+     0.01%            12           chrome  perf-24199.map              [.] 0x0000115bb6b794d1
+     0.01%             9           chrome  perf-24199.map              [.] 0x0000115bb6af95d5
+     0.01%            17           chrome  chrome                      [.] 0x0000000000e6fa00
+     0.01%            11           chrome  perf-24199.map              [.] 0x0000115bb7c8b961
+     0.01%            15           chrome  perf-24199.map              [.] 0x0000115bb6b315c5
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a549b6
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a923d2
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4b03afa
+     0.00%             1             tcsd  [kernel.kallsyms]           [k] 0xffffffffa4a5c294
+     0.00%             1     kworker/0:1H  [kernel.kallsyms]           [k] 0xffffffffa4cef732
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a00c88
+     0.00%             1      kworker/u:5  [kernel.kallsyms]           [k] 0xffffffffa4a8ac8a
+     0.00%             1             lsof  [kernel.kallsyms]           [k] 0xffffffffa4a51a55
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a3a27c
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a58dff
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a66016
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a92359
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a93347
+     0.00%             1               sh  libc-2.19.so                [.] 0x0000000000082a06
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a38e4d
+     0.00%             1           powerd                             [.] 0x00000000000a0930
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4ec8d72
+     0.00%             1           powerd  [kernel.kallsyms]           [k] 0xffffffffa4a408c8
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4ab35a2
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a5fda6
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a5fed2
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a543e8
+     0.00%             1           dhcpcd                             [.] 0x00000000000280a3
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a54db9
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a00e21
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4a65ea8
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4adde99
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a5655b
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a40550
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a54a89
+     0.00%             1           python  libpython2.7.so.1.0         [.] 0x000000000008f1be
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a64ade
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4bbaa30
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a00c06
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a66bfe
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a63bf9
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a5fe01
+     0.00%             1             tcsd  [kernel.kallsyms]           [k] 0xffffffffa4a5f308
+     0.00%             1           chrome  [kernel.kallsyms]           [k] 0xffffffffa4be56c1
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a40596
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a9381f
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a757c5
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a65ea3
+     0.00%             1         rsyslogd  [kernel.kallsyms]           [k] 0xffffffffa4bee6b7
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a2d72a
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a63d00
+     0.00%             1           chrome  chrome                      [.] 0x0000000000cd3879
+     0.00%             1           python  libc-2.19.so                [.] 0x00000000000e9fc7
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a58e03
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a65f0b
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4ec89d8
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4ec90d6
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a548c8
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4a38453
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4a66335
+     0.00%             1           chrome  chrome                      [.] 0x0000000000cc75d8
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a2058f
+     0.00%             1           chrome  [kernel.kallsyms]           [k] 0xffffffffa4e0f293
+     0.00%             1      kworker/u:0  [ath9k]                     [k] 0x0000000000008126
+     0.00%             1      jbd2/sda1-8  [kernel.kallsyms]           [k] 0xffffffffa4a08ab7
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a2388e
+     0.00%             1           powerd                             [.] 0x000000000007dca0
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4a2c97c
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a0659b
+     0.00%             1           chrome  chrome                      [.] 0x0000000000d0e3bd
+     0.00%             1      cryptohomed                             [.] 0x000000000001dcd0
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4bec0c0
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a62145
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4bf3318
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a5fd33
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a2d71a
+     0.00%             1      kworker/u:0  [kernel.kallsyms]           [k] 0xffffffffa4ad29f3
+     0.00%             1             tcsd  [kernel.kallsyms]           [k] 0xffffffffa4a67997
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a548a8
+     0.00%             1           python  libc-2.19.so                [.] 0x0000000000082bb3
+     0.00%             1           dhcpcd                             [.] 0x0000000000024f56
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4bf334e
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a65e88
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a41578
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a65a87
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4a66d95
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4ec89cf
+     0.00%             1           powerd  [kernel.kallsyms]           [k] 0xffffffffa4c6a22e
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a91b84
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a4073d
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a408c2
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a66a84
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a61b9f
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4ec8c7f
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a40a1d
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4ec8b7c
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a6646c
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a3a6d4
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a41623
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a75d98
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4bf32fd
+     0.00%             1           chrome  chrome                      [.] 0x00000000022ad6a0
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a62152
+     0.00%             1      dbus-daemon  [kernel.kallsyms]           [k] 0xffffffffa4b0d38b
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a58d66
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4ecb3ed
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a54eca
+     0.00%             1  periodic_schedu  [kernel.kallsyms]           [k] 0xffffffffa4a92b1a
+     0.00%             1  periodic_schedu  [kernel.kallsyms]           [k] 0xffffffffa4bec2e9
+     0.00%             1               sh  [kernel.kallsyms]           [k] 0xffffffffa4a92a06
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a65b67
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a66ce5
+     0.00%             1           python  [kernel.kallsyms]           [k] 0xffffffffa4b06121
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a54418
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a65cc5
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a547ee
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a64c99
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a5adda
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a923ac
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a91ec6
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a63269
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a62f53
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a621ff
+     0.00%             1           chrome  [kernel.kallsyms]           [k] 0xffffffffa4a65d8b
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a5de41
+     0.00%             1           chrome  [kernel.kallsyms]           [k] 0xffffffffa4a56f3d
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4be56c6
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a5d828
+     0.00%             1        rcu_sched  [kernel.kallsyms]           [k] 0xffffffffa4a65ccf
+     0.00%             1               sh  [kernel.kallsyms]           [k] 0xffffffffa4b06cb5
+     0.00%             1             perf  [kernel.kallsyms]           [k] 0xffffffffa4ab0a38
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a1ff32
+     0.00%             1          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a7aac4
+     0.00%             8          swapper  [kernel.kallsyms]           [k] 0xffffffffa4a0ee03
+     0.00%             4             perf  [kernel.kallsyms]           [k] 0xffffffffa4a0ee03
+
+#
+# (For a higher level overview, try: perf report --sort comm,dso)
+#
diff --git a/crosperf/results_cache.py b/crosperf/results_cache.py
new file mode 100644
index 0000000..29e118e
--- /dev/null
+++ b/crosperf/results_cache.py
@@ -0,0 +1,758 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Module to deal with result cache."""
+
+from __future__ import print_function
+
+import glob
+import hashlib
+import os
+import pickle
+import re
+import tempfile
+import json
+import sys
+
+from cros_utils import command_executer
+from cros_utils import misc
+
+from image_checksummer import ImageChecksummer
+
+import results_report
+import test_flag
+
+SCRATCH_DIR = os.path.expanduser('~/cros_scratch')
+RESULTS_FILE = 'results.txt'
+MACHINE_FILE = 'machine.txt'
+AUTOTEST_TARBALL = 'autotest.tbz2'
+PERF_RESULTS_FILE = 'perf-results.txt'
+CACHE_KEYS_FILE = 'cache_keys.txt'
+
+
+class Result(object):
+  """Class for holding the results of a single test run.
+
+  This class manages what exactly is stored inside the cache without knowing
+  what the key of the cache is. For runs with perf, it stores perf.data,
+  perf.report, etc. The key generation is handled by the ResultsCache class.
+  """
+
+  def __init__(self, logger, label, log_level, machine, cmd_exec=None):
+    self.chromeos_root = label.chromeos_root
+    self._logger = logger
+    self.ce = cmd_exec or command_executer.GetCommandExecuter(
+        self._logger, log_level=log_level)
+    self.temp_dir = None
+    self.label = label
+    self.results_dir = None
+    self.log_level = log_level
+    self.machine = machine
+    self.perf_data_files = []
+    self.perf_report_files = []
+    self.results_file = []
+    self.chrome_version = ''
+    self.err = None
+    self.chroot_results_dir = ''
+    self.test_name = ''
+    self.keyvals = None
+    self.board = None
+    self.suite = None
+    self.retval = None
+    self.out = None
+
+  def CopyFilesTo(self, dest_dir, files_to_copy):
+    file_index = 0
+    for file_to_copy in files_to_copy:
+      if not os.path.isdir(dest_dir):
+        command = 'mkdir -p %s' % dest_dir
+        self.ce.RunCommand(command)
+      dest_file = os.path.join(dest_dir,
+                               ('%s.%s' % (os.path.basename(file_to_copy),
+                                           file_index)))
+      ret = self.ce.CopyFiles(file_to_copy, dest_file, recursive=False)
+      if ret:
+        raise IOError('Could not copy results file: %s' % file_to_copy)
+
+  def CopyResultsTo(self, dest_dir):
+    self.CopyFilesTo(dest_dir, self.perf_data_files)
+    self.CopyFilesTo(dest_dir, self.perf_report_files)
+    if len(self.perf_data_files) or len(self.perf_report_files):
+      self._logger.LogOutput('Perf results files stored in %s.' % dest_dir)
+
+  def GetNewKeyvals(self, keyvals_dict):
+    # Initialize 'units' dictionary.
+    units_dict = {}
+    for k in keyvals_dict:
+      units_dict[k] = ''
+    results_files = self.GetDataMeasurementsFiles()
+    for f in results_files:
+      # Make sure we can find the results file
+      if os.path.exists(f):
+        data_filename = f
+      else:
+        # Otherwise get the base filename and create the correct
+        # path for it.
+        _, f_base = misc.GetRoot(f)
+        data_filename = os.path.join(self.chromeos_root, 'chroot/tmp',
+                                     self.temp_dir, f_base)
+      if data_filename.find('.json') > 0:
+        raw_dict = dict()
+        if os.path.exists(data_filename):
+          with open(data_filename, 'r') as data_file:
+            raw_dict = json.load(data_file)
+
+        if 'charts' in raw_dict:
+          raw_dict = raw_dict['charts']
+        for k1 in raw_dict:
+          field_dict = raw_dict[k1]
+          for k2 in field_dict:
+            result_dict = field_dict[k2]
+            key = k1 + '__' + k2
+            if 'value' in result_dict:
+              keyvals_dict[key] = result_dict['value']
+            elif 'values' in result_dict:
+              values = result_dict['values']
+              if ('type' in result_dict and
+                  result_dict['type'] == 'list_of_scalar_values' and values and
+                  values != 'null'):
+                keyvals_dict[key] = sum(values) / float(len(values))
+              else:
+                keyvals_dict[key] = values
+            units_dict[key] = result_dict['units']
+      else:
+        if os.path.exists(data_filename):
+          with open(data_filename, 'r') as data_file:
+            lines = data_file.readlines()
+            for line in lines:
+              tmp_dict = json.loads(line)
+              graph_name = tmp_dict['graph']
+              graph_str = (graph_name + '__') if graph_name else ''
+              key = graph_str + tmp_dict['description']
+              keyvals_dict[key] = tmp_dict['value']
+              units_dict[key] = tmp_dict['units']
+
+    return keyvals_dict, units_dict
+
+  def AppendTelemetryUnits(self, keyvals_dict, units_dict):
+    """keyvals_dict is the dict of key-value used to generate Crosperf reports.
+
+    units_dict is a dictionary of the units for the return values in
+    keyvals_dict.  We need to associate the units with the return values,
+    for Telemetry tests, so that we can include the units in the reports.
+    This function takes each value in keyvals_dict, finds the corresponding
+    unit in the units_dict, and replaces the old value with a list of the
+    old value and the units.  This later gets properly parsed in the
+    ResultOrganizer class, for generating the reports.
+    """
+
+    results_dict = {}
+    for k in keyvals_dict:
+      # We don't want these lines in our reports; they add no useful data.
+      if k == '' or k == 'telemetry_Crosperf':
+        continue
+      val = keyvals_dict[k]
+      units = units_dict[k]
+      new_val = [val, units]
+      results_dict[k] = new_val
+    return results_dict
+
+  def GetKeyvals(self):
+    results_in_chroot = os.path.join(self.chromeos_root, 'chroot', 'tmp')
+    if not self.temp_dir:
+      self.temp_dir = tempfile.mkdtemp(dir=results_in_chroot)
+      command = 'cp -r {0}/* {1}'.format(self.results_dir, self.temp_dir)
+      self.ce.RunCommand(command, print_to_console=False)
+
+    command = ('python generate_test_report --no-color --csv %s' %
+               (os.path.join('/tmp', os.path.basename(self.temp_dir))))
+    _, out, _ = self.ce.ChrootRunCommandWOutput(
+        self.chromeos_root, command, print_to_console=False)
+    keyvals_dict = {}
+    tmp_dir_in_chroot = misc.GetInsideChrootPath(self.chromeos_root,
+                                                 self.temp_dir)
+    for line in out.splitlines():
+      tokens = re.split('=|,', line)
+      key = tokens[-2]
+      if key.startswith(tmp_dir_in_chroot):
+        key = key[len(tmp_dir_in_chroot) + 1:]
+      value = tokens[-1]
+      keyvals_dict[key] = value
+
+    # Check to see if there is a perf_measurements file and get the
+    # data from it if so.
+    keyvals_dict, units_dict = self.GetNewKeyvals(keyvals_dict)
+    if self.suite == 'telemetry_Crosperf':
+      # For telemtry_Crosperf results, append the units to the return
+      # results, for use in generating the reports.
+      keyvals_dict = self.AppendTelemetryUnits(keyvals_dict, units_dict)
+    return keyvals_dict
+
+  def GetResultsDir(self):
+    mo = re.search(r'Results placed in (\S+)', self.out)
+    if mo:
+      result = mo.group(1)
+      return result
+    raise RuntimeError('Could not find results directory.')
+
+  def FindFilesInResultsDir(self, find_args):
+    if not self.results_dir:
+      return None
+
+    command = 'find %s %s' % (self.results_dir, find_args)
+    ret, out, _ = self.ce.RunCommandWOutput(command, print_to_console=False)
+    if ret:
+      raise RuntimeError('Could not run find command!')
+    return out
+
+  def GetResultsFile(self):
+    return self.FindFilesInResultsDir('-name results-chart.json').splitlines()
+
+  def GetPerfDataFiles(self):
+    return self.FindFilesInResultsDir('-name perf.data').splitlines()
+
+  def GetPerfReportFiles(self):
+    return self.FindFilesInResultsDir('-name perf.data.report').splitlines()
+
+  def GetDataMeasurementsFiles(self):
+    result = self.FindFilesInResultsDir('-name perf_measurements').splitlines()
+    if not result:
+      result = \
+          self.FindFilesInResultsDir('-name results-chart.json').splitlines()
+    return result
+
+  def GeneratePerfReportFiles(self):
+    perf_report_files = []
+    for perf_data_file in self.perf_data_files:
+      # Generate a perf.report and store it side-by-side with the perf.data
+      # file.
+      chroot_perf_data_file = misc.GetInsideChrootPath(self.chromeos_root,
+                                                       perf_data_file)
+      perf_report_file = '%s.report' % perf_data_file
+      if os.path.exists(perf_report_file):
+        raise RuntimeError('Perf report file already exists: %s' %
+                           perf_report_file)
+      chroot_perf_report_file = misc.GetInsideChrootPath(self.chromeos_root,
+                                                         perf_report_file)
+      perf_path = os.path.join(self.chromeos_root, 'chroot', 'usr/bin/perf')
+
+      perf_file = '/usr/sbin/perf'
+      if os.path.exists(perf_path):
+        perf_file = '/usr/bin/perf'
+
+      command = ('%s report '
+                 '-n '
+                 '--symfs /build/%s '
+                 '--vmlinux /build/%s/usr/lib/debug/boot/vmlinux '
+                 '--kallsyms /build/%s/boot/System.map-* '
+                 '-i %s --stdio '
+                 '> %s' % (perf_file, self.board, self.board, self.board,
+                           chroot_perf_data_file, chroot_perf_report_file))
+      self.ce.ChrootRunCommand(self.chromeos_root, command)
+
+      # Add a keyval to the dictionary for the events captured.
+      perf_report_files.append(
+          misc.GetOutsideChrootPath(self.chromeos_root,
+                                    chroot_perf_report_file))
+    return perf_report_files
+
+  def GatherPerfResults(self):
+    report_id = 0
+    for perf_report_file in self.perf_report_files:
+      with open(perf_report_file, 'r') as f:
+        report_contents = f.read()
+        for group in re.findall(r'Events: (\S+) (\S+)', report_contents):
+          num_events = group[0]
+          event_name = group[1]
+          key = 'perf_%s_%s' % (report_id, event_name)
+          value = str(misc.UnitToNumber(num_events))
+          self.keyvals[key] = value
+
+  def PopulateFromRun(self, out, err, retval, test, suite):
+    self.board = self.label.board
+    self.out = out
+    self.err = err
+    self.retval = retval
+    self.test_name = test
+    self.suite = suite
+    self.chroot_results_dir = self.GetResultsDir()
+    self.results_dir = misc.GetOutsideChrootPath(self.chromeos_root,
+                                                 self.chroot_results_dir)
+    self.results_file = self.GetResultsFile()
+    self.perf_data_files = self.GetPerfDataFiles()
+    # Include all perf.report data in table.
+    self.perf_report_files = self.GeneratePerfReportFiles()
+    # TODO(asharif): Do something similar with perf stat.
+
+    # Grab keyvals from the directory.
+    self.ProcessResults()
+
+  def ProcessJsonResults(self):
+    # Open and parse the json results file generated by telemetry/test_that.
+    if not self.results_file:
+      raise IOError('No results file found.')
+    filename = self.results_file[0]
+    if not filename.endswith('.json'):
+      raise IOError('Attempt to call json on non-json file: %s' % filename)
+
+    if not os.path.exists(filename):
+      return {}
+
+    keyvals = {}
+    with open(filename, 'r') as f:
+      raw_dict = json.load(f)
+      if 'charts' in raw_dict:
+        raw_dict = raw_dict['charts']
+      for k, field_dict in raw_dict.iteritems():
+        for item in field_dict:
+          keyname = k + '__' + item
+          value_dict = field_dict[item]
+          if 'value' in value_dict:
+            result = value_dict['value']
+          elif 'values' in value_dict:
+            values = value_dict['values']
+            if not values:
+              continue
+            if ('type' in value_dict and
+                value_dict['type'] == 'list_of_scalar_values' and
+                values != 'null'):
+              result = sum(values) / float(len(values))
+            else:
+              result = values
+          units = value_dict['units']
+          new_value = [result, units]
+          keyvals[keyname] = new_value
+    return keyvals
+
+  def ProcessResults(self, use_cache=False):
+    # Note that this function doesn't know anything about whether there is a
+    # cache hit or miss. It should process results agnostic of the cache hit
+    # state.
+    if self.results_file and self.results_file[0].find(
+        'results-chart.json') != -1:
+      self.keyvals = self.ProcessJsonResults()
+    else:
+      if not use_cache:
+        print('\n ** WARNING **: Had to use deprecated output-method to '
+              'collect results.\n')
+      self.keyvals = self.GetKeyvals()
+    self.keyvals['retval'] = self.retval
+    # Generate report from all perf.data files.
+    # Now parse all perf report files and include them in keyvals.
+    self.GatherPerfResults()
+
+  def GetChromeVersionFromCache(self, cache_dir):
+    # Read chrome_version from keys file, if present.
+    chrome_version = ''
+    keys_file = os.path.join(cache_dir, CACHE_KEYS_FILE)
+    if os.path.exists(keys_file):
+      with open(keys_file, 'r') as f:
+        lines = f.readlines()
+        for l in lines:
+          if l.startswith('Google Chrome '):
+            chrome_version = l
+            if chrome_version.endswith('\n'):
+              chrome_version = chrome_version[:-1]
+            break
+    return chrome_version
+
+  def PopulateFromCacheDir(self, cache_dir, test, suite):
+    self.test_name = test
+    self.suite = suite
+    # Read in everything from the cache directory.
+    with open(os.path.join(cache_dir, RESULTS_FILE), 'r') as f:
+      self.out = pickle.load(f)
+      self.err = pickle.load(f)
+      self.retval = pickle.load(f)
+
+    # Untar the tarball to a temporary directory
+    self.temp_dir = tempfile.mkdtemp(
+        dir=os.path.join(self.chromeos_root, 'chroot', 'tmp'))
+
+    command = ('cd %s && tar xf %s' %
+               (self.temp_dir, os.path.join(cache_dir, AUTOTEST_TARBALL)))
+    ret = self.ce.RunCommand(command, print_to_console=False)
+    if ret:
+      raise RuntimeError('Could not untar cached tarball')
+    self.results_dir = self.temp_dir
+    self.results_file = self.GetDataMeasurementsFiles()
+    self.perf_data_files = self.GetPerfDataFiles()
+    self.perf_report_files = self.GetPerfReportFiles()
+    self.chrome_version = self.GetChromeVersionFromCache(cache_dir)
+    self.ProcessResults(use_cache=True)
+
+  def CleanUp(self, rm_chroot_tmp):
+    if rm_chroot_tmp and self.results_dir:
+      dirname, basename = misc.GetRoot(self.results_dir)
+      if basename.find('test_that_results_') != -1:
+        command = 'rm -rf %s' % self.results_dir
+      else:
+        command = 'rm -rf %s' % dirname
+      self.ce.RunCommand(command)
+    if self.temp_dir:
+      command = 'rm -rf %s' % self.temp_dir
+      self.ce.RunCommand(command)
+
+  def StoreToCacheDir(self, cache_dir, machine_manager, key_list):
+    # Create the dir if it doesn't exist.
+    temp_dir = tempfile.mkdtemp()
+
+    # Store to the temp directory.
+    with open(os.path.join(temp_dir, RESULTS_FILE), 'w') as f:
+      pickle.dump(self.out, f)
+      pickle.dump(self.err, f)
+      pickle.dump(self.retval, f)
+
+    if not test_flag.GetTestMode():
+      with open(os.path.join(temp_dir, CACHE_KEYS_FILE), 'w') as f:
+        f.write('%s\n' % self.label.name)
+        f.write('%s\n' % self.label.chrome_version)
+        f.write('%s\n' % self.machine.checksum_string)
+        for k in key_list:
+          f.write(k)
+          f.write('\n')
+
+    if self.results_dir:
+      tarball = os.path.join(temp_dir, AUTOTEST_TARBALL)
+      command = ('cd %s && '
+                 'tar '
+                 '--exclude=var/spool '
+                 '--exclude=var/log '
+                 '-cjf %s .' % (self.results_dir, tarball))
+      ret = self.ce.RunCommand(command)
+      if ret:
+        raise RuntimeError("Couldn't store autotest output directory.")
+    # Store machine info.
+    # TODO(asharif): Make machine_manager a singleton, and don't pass it into
+    # this function.
+    with open(os.path.join(temp_dir, MACHINE_FILE), 'w') as f:
+      f.write(machine_manager.machine_checksum_string[self.label.name])
+
+    if os.path.exists(cache_dir):
+      command = 'rm -rf {0}'.format(cache_dir)
+      self.ce.RunCommand(command)
+
+    command = 'mkdir -p {0} && '.format(os.path.dirname(cache_dir))
+    command += 'chmod g+x {0} && '.format(temp_dir)
+    command += 'mv {0} {1}'.format(temp_dir, cache_dir)
+    ret = self.ce.RunCommand(command)
+    if ret:
+      command = 'rm -rf {0}'.format(temp_dir)
+      self.ce.RunCommand(command)
+      raise RuntimeError('Could not move dir %s to dir %s' %
+                         (temp_dir, cache_dir))
+
+  @classmethod
+  def CreateFromRun(cls,
+                    logger,
+                    log_level,
+                    label,
+                    machine,
+                    out,
+                    err,
+                    retval,
+                    test,
+                    suite='telemetry_Crosperf'):
+    if suite == 'telemetry':
+      result = TelemetryResult(logger, label, log_level, machine)
+    else:
+      result = cls(logger, label, log_level, machine)
+    result.PopulateFromRun(out, err, retval, test, suite)
+    return result
+
+  @classmethod
+  def CreateFromCacheHit(cls,
+                         logger,
+                         log_level,
+                         label,
+                         machine,
+                         cache_dir,
+                         test,
+                         suite='telemetry_Crosperf'):
+    if suite == 'telemetry':
+      result = TelemetryResult(logger, label, log_level, machine)
+    else:
+      result = cls(logger, label, log_level, machine)
+    try:
+      result.PopulateFromCacheDir(cache_dir, test, suite)
+
+    except RuntimeError as e:
+      logger.LogError('Exception while using cache: %s' % e)
+      return None
+    return result
+
+
+class TelemetryResult(Result):
+  """Class to hold the results of a single Telemetry run."""
+
+  def __init__(self, logger, label, log_level, machine, cmd_exec=None):
+    super(TelemetryResult, self).__init__(logger, label, log_level, machine,
+                                          cmd_exec)
+
+  def PopulateFromRun(self, out, err, retval, test, suite):
+    self.out = out
+    self.err = err
+    self.retval = retval
+
+    self.ProcessResults()
+
+  # pylint: disable=arguments-differ
+  def ProcessResults(self):
+    # The output is:
+    # url,average_commit_time (ms),...
+    # www.google.com,33.4,21.2,...
+    # We need to convert to this format:
+    # {"www.google.com:average_commit_time (ms)": "33.4",
+    #  "www.google.com:...": "21.2"}
+    # Added note:  Occasionally the output comes back
+    # with "JSON.stringify(window.automation.GetResults())" on
+    # the first line, and then the rest of the output as
+    # described above.
+
+    lines = self.out.splitlines()
+    self.keyvals = {}
+
+    if lines:
+      if lines[0].startswith('JSON.stringify'):
+        lines = lines[1:]
+
+    if not lines:
+      return
+    labels = lines[0].split(',')
+    for line in lines[1:]:
+      fields = line.split(',')
+      if len(fields) != len(labels):
+        continue
+      for i in xrange(1, len(labels)):
+        key = '%s %s' % (fields[0], labels[i])
+        value = fields[i]
+        self.keyvals[key] = value
+    self.keyvals['retval'] = self.retval
+
+  def PopulateFromCacheDir(self, cache_dir, test, suite):
+    self.test_name = test
+    self.suite = suite
+    with open(os.path.join(cache_dir, RESULTS_FILE), 'r') as f:
+      self.out = pickle.load(f)
+      self.err = pickle.load(f)
+      self.retval = pickle.load(f)
+
+    self.chrome_version = \
+        super(TelemetryResult, self).GetChromeVersionFromCache(cache_dir)
+    self.ProcessResults()
+
+
+class CacheConditions(object):
+  """Various Cache condition values, for export."""
+
+  # Cache hit only if the result file exists.
+  CACHE_FILE_EXISTS = 0
+
+  # Cache hit if the checksum of cpuinfo and totalmem of
+  # the cached result and the new run match.
+  MACHINES_MATCH = 1
+
+  # Cache hit if the image checksum of the cached result and the new run match.
+  CHECKSUMS_MATCH = 2
+
+  # Cache hit only if the cached result was successful
+  RUN_SUCCEEDED = 3
+
+  # Never a cache hit.
+  FALSE = 4
+
+  # Cache hit if the image path matches the cached image path.
+  IMAGE_PATH_MATCH = 5
+
+  # Cache hit if the uuid of hard disk mataches the cached one
+
+  SAME_MACHINE_MATCH = 6
+
+
+class ResultsCache(object):
+  """Class to handle the cache for storing/retrieving test run results.
+
+  This class manages the key of the cached runs without worrying about what
+  is exactly stored (value). The value generation is handled by the Results
+  class.
+  """
+  CACHE_VERSION = 6
+
+  def __init__(self):
+    # Proper initialization happens in the Init function below.
+    self.chromeos_image = None
+    self.chromeos_root = None
+    self.test_name = None
+    self.iteration = None
+    self.test_args = None
+    self.profiler_args = None
+    self.board = None
+    self.cache_conditions = None
+    self.machine_manager = None
+    self.machine = None
+    self._logger = None
+    self.ce = None
+    self.label = None
+    self.share_cache = None
+    self.suite = None
+    self.log_level = None
+    self.show_all = None
+    self.run_local = None
+
+  def Init(self, chromeos_image, chromeos_root, test_name, iteration, test_args,
+           profiler_args, machine_manager, machine, board, cache_conditions,
+           logger_to_use, log_level, label, share_cache, suite,
+           show_all_results, run_local):
+    self.chromeos_image = chromeos_image
+    self.chromeos_root = chromeos_root
+    self.test_name = test_name
+    self.iteration = iteration
+    self.test_args = test_args
+    self.profiler_args = profiler_args
+    self.board = board
+    self.cache_conditions = cache_conditions
+    self.machine_manager = machine_manager
+    self.machine = machine
+    self._logger = logger_to_use
+    self.ce = command_executer.GetCommandExecuter(
+        self._logger, log_level=log_level)
+    self.label = label
+    self.share_cache = share_cache
+    self.suite = suite
+    self.log_level = log_level
+    self.show_all = show_all_results
+    self.run_local = run_local
+
+  def GetCacheDirForRead(self):
+    matching_dirs = []
+    for glob_path in self.FormCacheDir(self.GetCacheKeyList(True)):
+      matching_dirs += glob.glob(glob_path)
+
+    if matching_dirs:
+      # Cache file found.
+      return matching_dirs[0]
+    return None
+
+  def GetCacheDirForWrite(self, get_keylist=False):
+    cache_path = self.FormCacheDir(self.GetCacheKeyList(False))[0]
+    if get_keylist:
+      args_str = '%s_%s_%s' % (self.test_args, self.profiler_args,
+                               self.run_local)
+      version, image = results_report.ParseChromeosImage(
+          self.label.chromeos_image)
+      keylist = [
+          version, image, self.label.board, self.machine.name, self.test_name,
+          str(self.iteration), args_str
+      ]
+      return cache_path, keylist
+    return cache_path
+
+  def FormCacheDir(self, list_of_strings):
+    cache_key = ' '.join(list_of_strings)
+    cache_dir = misc.GetFilenameFromString(cache_key)
+    if self.label.cache_dir:
+      cache_home = os.path.abspath(os.path.expanduser(self.label.cache_dir))
+      cache_path = [os.path.join(cache_home, cache_dir)]
+    else:
+      cache_path = [os.path.join(SCRATCH_DIR, cache_dir)]
+
+    if len(self.share_cache):
+      for path in [x.strip() for x in self.share_cache.split(',')]:
+        if os.path.exists(path):
+          cache_path.append(os.path.join(path, cache_dir))
+        else:
+          self._logger.LogFatal('Unable to find shared cache: %s' % path)
+
+    return cache_path
+
+  def GetCacheKeyList(self, read):
+    if read and CacheConditions.MACHINES_MATCH not in self.cache_conditions:
+      machine_checksum = '*'
+    else:
+      machine_checksum = self.machine_manager.machine_checksum[self.label.name]
+    if read and CacheConditions.CHECKSUMS_MATCH not in self.cache_conditions:
+      checksum = '*'
+    elif self.label.image_type == 'trybot':
+      checksum = hashlib.md5(self.label.chromeos_image).hexdigest()
+    elif self.label.image_type == 'official':
+      checksum = '*'
+    else:
+      checksum = ImageChecksummer().Checksum(self.label, self.log_level)
+
+    if read and CacheConditions.IMAGE_PATH_MATCH not in self.cache_conditions:
+      image_path_checksum = '*'
+    else:
+      image_path_checksum = hashlib.md5(self.chromeos_image).hexdigest()
+
+    machine_id_checksum = ''
+    if read and CacheConditions.SAME_MACHINE_MATCH not in self.cache_conditions:
+      machine_id_checksum = '*'
+    else:
+      if self.machine and self.machine.name in self.label.remote:
+        machine_id_checksum = self.machine.machine_id_checksum
+      else:
+        for machine in self.machine_manager.GetMachines(self.label):
+          if machine.name == self.label.remote[0]:
+            machine_id_checksum = machine.machine_id_checksum
+            break
+
+    temp_test_args = '%s %s %s' % (self.test_args, self.profiler_args,
+                                   self.run_local)
+    test_args_checksum = hashlib.md5(temp_test_args).hexdigest()
+    return (image_path_checksum, self.test_name, str(self.iteration),
+            test_args_checksum, checksum, machine_checksum, machine_id_checksum,
+            str(self.CACHE_VERSION))
+
+  def ReadResult(self):
+    if CacheConditions.FALSE in self.cache_conditions:
+      cache_dir = self.GetCacheDirForWrite()
+      command = 'rm -rf %s' % (cache_dir,)
+      self.ce.RunCommand(command)
+      return None
+    cache_dir = self.GetCacheDirForRead()
+
+    if not cache_dir:
+      return None
+
+    if not os.path.isdir(cache_dir):
+      return None
+
+    if self.log_level == 'verbose':
+      self._logger.LogOutput('Trying to read from cache dir: %s' % cache_dir)
+    result = Result.CreateFromCacheHit(self._logger, self.log_level, self.label,
+                                       self.machine, cache_dir, self.test_name,
+                                       self.suite)
+    if not result:
+      return None
+
+    if (result.retval == 0 or
+        CacheConditions.RUN_SUCCEEDED not in self.cache_conditions):
+      return result
+
+    return None
+
+  def StoreResult(self, result):
+    cache_dir, keylist = self.GetCacheDirForWrite(get_keylist=True)
+    result.StoreToCacheDir(cache_dir, self.machine_manager, keylist)
+
+
+class MockResultsCache(ResultsCache):
+  """Class for mock testing, corresponding to ResultsCache class."""
+
+  def Init(self, *args):
+    pass
+
+  def ReadResult(self):
+    return None
+
+  def StoreResult(self, result):
+    pass
+
+
+class MockResult(Result):
+  """Class for mock testing, corresponding to Result class."""
+
+  def PopulateFromRun(self, out, err, retval, test, suite):
+    self.out = out
+    self.err = err
+    self.retval = retval
diff --git a/crosperf/results_cache_unittest.py b/crosperf/results_cache_unittest.py
new file mode 100755
index 0000000..9e97c9b
--- /dev/null
+++ b/crosperf/results_cache_unittest.py
@@ -0,0 +1,1178 @@
+#!/usr/bin/env python2
+
+# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Module of result cache unittest."""
+
+from __future__ import print_function
+
+import mock
+import os
+import tempfile
+import unittest
+
+import image_checksummer
+import machine_manager
+import test_flag
+
+from label import MockLabel
+from results_cache import CacheConditions
+from results_cache import Result
+from results_cache import ResultsCache
+from results_cache import TelemetryResult
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import misc
+
+OUTPUT = """CMD (True): ./test_that.sh\
+ --remote=172.17.128.241  --board=lumpy   LibCBench
+CMD (None): cd /usr/local/google/home/yunlian/gd/src/build/images/lumpy/latest/../../../../..; cros_sdk  -- ./in_chroot_cmd6X7Cxu.sh
+Identity added: /tmp/test_that.PO1234567/autotest_key (/tmp/test_that.PO1234567/autotest_key)
+INFO    : Using emerged autotests already installed at /build/lumpy/usr/local/autotest.
+
+INFO    : Running the following control files 1 times:
+INFO    :  * 'client/site_tests/platform_LibCBench/control'
+
+INFO    : Running client test client/site_tests/platform_LibCBench/control
+./server/autoserv -m 172.17.128.241 --ssh-port 22 -c client/site_tests/platform_LibCBench/control -r /tmp/test_that.PO1234567/platform_LibCBench --test-retry=0 --args 
+ERROR:root:import statsd failed, no stats will be reported.
+14:20:22 INFO | Results placed in /tmp/test_that.PO1234567/platform_LibCBench
+14:20:22 INFO | Processing control file
+14:20:23 INFO | Starting master ssh connection '/usr/bin/ssh -a -x -N -o ControlMaster=yes -o ControlPath=/tmp/_autotmp_VIIP67ssh-master/socket -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=180 -o ServerAliveCountMax=3 -o ConnectionAttempts=4 -o Protocol=2 -l root -p 22 172.17.128.241'
+14:20:23 ERROR| [stderr] Warning: Permanently added '172.17.128.241' (RSA) to the list of known hosts.
+14:20:23 INFO | INFO	----	----	kernel=3.8.11	localtime=May 22 14:20:23	timestamp=1369257623	
+14:20:23 INFO | Installing autotest on 172.17.128.241
+14:20:23 INFO | Using installation dir /usr/local/autotest
+14:20:23 WARNI| No job_repo_url for <remote host: 172.17.128.241>
+14:20:23 INFO | Could not install autotest using the packaging system: No repos to install an autotest client from. Trying other methods
+14:20:23 INFO | Installation of autotest completed
+14:20:24 WARNI| No job_repo_url for <remote host: 172.17.128.241>
+14:20:24 INFO | Executing /usr/local/autotest/bin/autotest /usr/local/autotest/control phase 0
+14:20:24 INFO | Entered autotestd_monitor.
+14:20:24 INFO | Finished launching tail subprocesses.
+14:20:24 INFO | Finished waiting on autotestd to start.
+14:20:26 INFO | START	----	----	timestamp=1369257625	localtime=May 22 14:20:25	
+14:20:26 INFO | 	START	platform_LibCBench	platform_LibCBench	timestamp=1369257625	localtime=May 22 14:20:25	
+14:20:30 INFO | 		GOOD	platform_LibCBench	platform_LibCBench	timestamp=1369257630	localtime=May 22 14:20:30	completed successfully
+14:20:30 INFO | 	END GOOD	platform_LibCBench	platform_LibCBench	timestamp=1369257630	localtime=May 22 14:20:30	
+14:20:31 INFO | END GOOD	----	----	timestamp=1369257630	localtime=May 22 14:20:30	
+14:20:31 INFO | Got lock of exit_code_file.
+14:20:31 INFO | Released lock of exit_code_file and closed it.
+OUTPUT: ==============================
+OUTPUT: Current time: 2013-05-22 14:20:32.818831 Elapsed: 0:01:30 ETA: Unknown
+Done: 0% [                                                  ]
+OUTPUT: Thread Status:
+RUNNING:  1 ('ttt: LibCBench (1)' 0:01:21)
+Machine Status:
+Machine                        Thread     Lock Status                    Checksum                        
+172.17.128.241                 ttt: LibCBench (1) True RUNNING                   3ba9f2ecbb222f20887daea5583d86ba
+
+OUTPUT: ==============================
+14:20:33 INFO | Killing child processes.
+14:20:33 INFO | Client complete
+14:20:33 INFO | Finished processing control file
+14:20:33 INFO | Starting master ssh connection '/usr/bin/ssh -a -x -N -o ControlMaster=yes -o ControlPath=/tmp/_autotmp_aVJUgmssh-master/socket -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=180 -o ServerAliveCountMax=3 -o ConnectionAttempts=4 -o Protocol=2 -l root -p 22 172.17.128.241'
+14:20:33 ERROR| [stderr] Warning: Permanently added '172.17.128.241' (RSA) to the list of known hosts.
+
+INFO    : Test results:
+-------------------------------------------------------------------
+platform_LibCBench                                      [  PASSED  ]
+platform_LibCBench/platform_LibCBench                   [  PASSED  ]
+platform_LibCBench/platform_LibCBench                     b_malloc_big1__0_                                     0.00375231466667
+platform_LibCBench/platform_LibCBench                     b_malloc_big2__0_                                     0.002951359
+platform_LibCBench/platform_LibCBench                     b_malloc_bubble__0_                                   0.015066374
+platform_LibCBench/platform_LibCBench                     b_malloc_sparse__0_                                   0.015053784
+platform_LibCBench/platform_LibCBench                     b_malloc_thread_local__0_                             0.01138439
+platform_LibCBench/platform_LibCBench                     b_malloc_thread_stress__0_                            0.0367894733333
+platform_LibCBench/platform_LibCBench                     b_malloc_tiny1__0_                                    0.000768474333333
+platform_LibCBench/platform_LibCBench                     b_malloc_tiny2__0_                                    0.000581407333333
+platform_LibCBench/platform_LibCBench                     b_pthread_create_serial1__0_                          0.0291785246667
+platform_LibCBench/platform_LibCBench                     b_pthread_createjoin_serial1__0_                      0.031907936
+platform_LibCBench/platform_LibCBench                     b_pthread_createjoin_serial2__0_                      0.043485347
+platform_LibCBench/platform_LibCBench                     b_pthread_uselesslock__0_                             0.0294113346667
+platform_LibCBench/platform_LibCBench                     b_regex_compile____a_b_c__d_b__                       0.00529833933333
+platform_LibCBench/platform_LibCBench                     b_regex_search____a_b_c__d_b__                        0.00165455066667
+platform_LibCBench/platform_LibCBench                     b_regex_search___a_25_b__                             0.0496191923333
+platform_LibCBench/platform_LibCBench                     b_stdio_putcgetc__0_                                  0.100005711667
+platform_LibCBench/platform_LibCBench                     b_stdio_putcgetc_unlocked__0_                         0.0371443833333
+platform_LibCBench/platform_LibCBench                     b_string_memset__0_                                   0.00275405066667
+platform_LibCBench/platform_LibCBench                     b_string_strchr__0_                                   0.00456903
+platform_LibCBench/platform_LibCBench                     b_string_strlen__0_                                   0.044893587
+platform_LibCBench/platform_LibCBench                     b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac__ 0.118360778
+platform_LibCBench/platform_LibCBench                     b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaac__        0.068957325
+platform_LibCBench/platform_LibCBench                     b_string_strstr___aaaaaaaaaaaaaacccccccccccc__        0.0135694476667
+platform_LibCBench/platform_LibCBench                     b_string_strstr___abcdefghijklmnopqrstuvwxyz__        0.0134553343333
+platform_LibCBench/platform_LibCBench                     b_string_strstr___azbycxdwevfugthsirjqkplomn__        0.0133123556667
+platform_LibCBench/platform_LibCBench                     b_utf8_bigbuf__0_                                     0.0473772253333
+platform_LibCBench/platform_LibCBench                     b_utf8_onebyone__0_                                   0.130938538333
+-------------------------------------------------------------------
+Total PASS: 2/2 (100%)
+
+INFO    : Elapsed time: 0m16s 
+"""
+
+error = """
+ERROR: Identity added: /tmp/test_that.Z4Ld/autotest_key (/tmp/test_that.Z4Ld/autotest_key)
+INFO    : Using emerged autotests already installed at /build/lumpy/usr/local/autotest.
+INFO    : Running the following control files 1 times:
+INFO    :  * 'client/site_tests/platform_LibCBench/control'
+INFO    : Running client test client/site_tests/platform_LibCBench/control
+INFO    : Test results:
+INFO    : Elapsed time: 0m18s
+"""
+
+keyvals = {
+    '': 'PASS',
+    'b_stdio_putcgetc__0_': '0.100005711667',
+    'b_string_strstr___azbycxdwevfugthsirjqkplomn__': '0.0133123556667',
+    'b_malloc_thread_local__0_': '0.01138439',
+    'b_string_strlen__0_': '0.044893587',
+    'b_malloc_sparse__0_': '0.015053784',
+    'b_string_memset__0_': '0.00275405066667',
+    'platform_LibCBench': 'PASS',
+    'b_pthread_uselesslock__0_': '0.0294113346667',
+    'b_string_strchr__0_': '0.00456903',
+    'b_pthread_create_serial1__0_': '0.0291785246667',
+    'b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac__': '0.118360778',
+    'b_string_strstr___aaaaaaaaaaaaaacccccccccccc__': '0.0135694476667',
+    'b_pthread_createjoin_serial1__0_': '0.031907936',
+    'b_malloc_thread_stress__0_': '0.0367894733333',
+    'b_regex_search____a_b_c__d_b__': '0.00165455066667',
+    'b_malloc_bubble__0_': '0.015066374',
+    'b_malloc_big2__0_': '0.002951359',
+    'b_stdio_putcgetc_unlocked__0_': '0.0371443833333',
+    'b_pthread_createjoin_serial2__0_': '0.043485347',
+    'b_regex_search___a_25_b__': '0.0496191923333',
+    'b_utf8_bigbuf__0_': '0.0473772253333',
+    'b_malloc_big1__0_': '0.00375231466667',
+    'b_regex_compile____a_b_c__d_b__': '0.00529833933333',
+    'b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaac__': '0.068957325',
+    'b_malloc_tiny2__0_': '0.000581407333333',
+    'b_utf8_onebyone__0_': '0.130938538333',
+    'b_malloc_tiny1__0_': '0.000768474333333',
+    'b_string_strstr___abcdefghijklmnopqrstuvwxyz__': '0.0134553343333'
+}
+
+TMP_DIR1 = '/tmp/tmpAbcXyz'
+
+
+class MockResult(Result):
+  """Mock result class."""
+
+  def __init__(self, mylogger, label, logging_level, machine):
+    super(MockResult, self).__init__(mylogger, label, logging_level, machine)
+
+  def FindFilesInResultsDir(self, find_args):
+    return ''
+
+  # pylint: disable=arguments-differ
+  def GetKeyvals(self, temp=False):
+    if temp:
+      pass
+    return keyvals
+
+
+class ResultTest(unittest.TestCase):
+  """Result test class."""
+
+  def __init__(self, *args, **kwargs):
+    super(ResultTest, self).__init__(*args, **kwargs)
+    self.callFakeProcessResults = False
+    self.fakeCacheReturnResult = None
+    self.callGetResultsDir = False
+    self.callProcessResults = False
+    self.callGetPerfReportFiles = False
+    self.kv_dict = None
+    self.tmpdir = ''
+    self.callGetNewKeyvals = False
+    self.callGetResultsFile = False
+    self.callGetPerfDataFiles = False
+    self.args = None
+    self.callGatherPerfResults = False
+    self.mock_logger = mock.Mock(spec=logger.Logger)
+    self.mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
+    self.mock_label = MockLabel('mock_label', 'chromeos_image', 'autotest_dir',
+                                '/tmp', 'lumpy', 'remote', 'image_args',
+                                'cache_dir', 'average', 'gcc', None)
+
+  def testCreateFromRun(self):
+    result = MockResult.CreateFromRun(logger.GetLogger(), 'average',
+                                      self.mock_label, 'remote1', OUTPUT, error,
+                                      0, True, 0)
+    self.assertEqual(result.keyvals, keyvals)
+    self.assertEqual(result.chroot_results_dir,
+                     '/tmp/test_that.PO1234567/platform_LibCBench')
+    self.assertEqual(result.results_dir,
+                     '/tmp/chroot/tmp/test_that.PO1234567/platform_LibCBench')
+    self.assertEqual(result.retval, 0)
+
+  def setUp(self):
+    self.result = Result(self.mock_logger, self.mock_label, 'average',
+                         self.mock_cmd_exec)
+
+  @mock.patch.object(os.path, 'isdir')
+  @mock.patch.object(command_executer.CommandExecuter, 'RunCommand')
+  @mock.patch.object(command_executer.CommandExecuter, 'CopyFiles')
+  def test_copy_files_to(self, mock_copyfiles, mock_runcmd, mock_isdir):
+
+    files = ['src_file_1', 'src_file_2', 'src_file_3']
+    dest_dir = '/tmp/test'
+    self.mock_cmd_exec.RunCommand = mock_runcmd
+    self.mock_cmd_exec.CopyFiles = mock_copyfiles
+
+    mock_copyfiles.return_value = 0
+
+    #test 1. dest_dir exists; CopyFiles returns 0.
+    mock_isdir.return_value = True
+    self.result.CopyFilesTo(dest_dir, files)
+    self.assertEqual(mock_runcmd.call_count, 0)
+    self.assertEqual(mock_copyfiles.call_count, 3)
+    first_args = mock_copyfiles.call_args_list[0][0]
+    second_args = mock_copyfiles.call_args_list[1][0]
+    third_args = mock_copyfiles.call_args_list[2][0]
+    self.assertEqual(first_args, ('src_file_1', '/tmp/test/src_file_1.0'))
+    self.assertEqual(second_args, ('src_file_2', '/tmp/test/src_file_2.0'))
+    self.assertEqual(third_args, ('src_file_3', '/tmp/test/src_file_3.0'))
+
+    mock_runcmd.reset_mock()
+    mock_copyfiles.reset_mock()
+    #test 2. dest_dir does not exist; CopyFiles returns 0.
+    mock_isdir.return_value = False
+    self.result.CopyFilesTo(dest_dir, files)
+    self.assertEqual(mock_runcmd.call_count, 3)
+    self.assertEqual(mock_copyfiles.call_count, 3)
+    self.assertEqual(mock_runcmd.call_args_list[0],
+                     mock_runcmd.call_args_list[1])
+    self.assertEqual(mock_runcmd.call_args_list[0],
+                     mock_runcmd.call_args_list[2])
+    self.assertEqual(mock_runcmd.call_args_list[0][0], ('mkdir -p /tmp/test',))
+
+    #test 3. CopyFiles returns 1 (fails).
+    mock_copyfiles.return_value = 1
+    self.assertRaises(Exception, self.result.CopyFilesTo, dest_dir, files)
+
+  @mock.patch.object(Result, 'CopyFilesTo')
+  def test_copy_results_to(self, mockCopyFilesTo):
+    perf_data_files = [
+        '/tmp/perf.data.0', '/tmp/perf.data.1', '/tmp/perf.data.2'
+    ]
+    perf_report_files = [
+        '/tmp/perf.report.0', '/tmp/perf.report.1', '/tmp/perf.report.2'
+    ]
+
+    self.result.perf_data_files = perf_data_files
+    self.result.perf_report_files = perf_report_files
+
+    self.result.CopyFilesTo = mockCopyFilesTo
+    self.result.CopyResultsTo('/tmp/results/')
+    self.assertEqual(mockCopyFilesTo.call_count, 2)
+    self.assertEqual(len(mockCopyFilesTo.call_args_list), 2)
+    self.assertEqual(mockCopyFilesTo.call_args_list[0][0],
+                     ('/tmp/results/', perf_data_files))
+    self.assertEqual(mockCopyFilesTo.call_args_list[1][0],
+                     ('/tmp/results/', perf_report_files))
+
+  def test_get_new_keyvals(self):
+    kv_dict = {}
+
+    def FakeGetDataMeasurementsFiles():
+      filename = os.path.join(os.getcwd(), 'unittest_keyval_file.txt')
+      return [filename]
+
+    self.result.GetDataMeasurementsFiles = FakeGetDataMeasurementsFiles
+    kv_dict2, udict = self.result.GetNewKeyvals(kv_dict)
+    self.assertEqual(kv_dict2, {
+        u'Box2D__Box2D': 4775,
+        u'Mandreel__Mandreel': 6620,
+        u'Gameboy__Gameboy': 9901,
+        u'Crypto__Crypto': 8737,
+        u'telemetry_page_measurement_results__num_errored': 0,
+        u'telemetry_page_measurement_results__num_failed': 0,
+        u'PdfJS__PdfJS': 6455,
+        u'Total__Score': 7918,
+        u'EarleyBoyer__EarleyBoyer': 14340,
+        u'MandreelLatency__MandreelLatency': 5188,
+        u'CodeLoad__CodeLoad': 6271,
+        u'DeltaBlue__DeltaBlue': 14401,
+        u'Typescript__Typescript': 9815,
+        u'SplayLatency__SplayLatency': 7653,
+        u'zlib__zlib': 16094,
+        u'Richards__Richards': 10358,
+        u'RegExp__RegExp': 1765,
+        u'NavierStokes__NavierStokes': 9815,
+        u'Splay__Splay': 4425,
+        u'RayTrace__RayTrace': 16600
+    })
+    self.assertEqual(udict, {
+        u'Box2D__Box2D': u'score',
+        u'Mandreel__Mandreel': u'score',
+        u'Gameboy__Gameboy': u'score',
+        u'Crypto__Crypto': u'score',
+        u'telemetry_page_measurement_results__num_errored': u'count',
+        u'telemetry_page_measurement_results__num_failed': u'count',
+        u'PdfJS__PdfJS': u'score',
+        u'Total__Score': u'score',
+        u'EarleyBoyer__EarleyBoyer': u'score',
+        u'MandreelLatency__MandreelLatency': u'score',
+        u'CodeLoad__CodeLoad': u'score',
+        u'DeltaBlue__DeltaBlue': u'score',
+        u'Typescript__Typescript': u'score',
+        u'SplayLatency__SplayLatency': u'score',
+        u'zlib__zlib': u'score',
+        u'Richards__Richards': u'score',
+        u'RegExp__RegExp': u'score',
+        u'NavierStokes__NavierStokes': u'score',
+        u'Splay__Splay': u'score',
+        u'RayTrace__RayTrace': u'score'
+    })
+
+  def test_append_telemetry_units(self):
+    kv_dict = {
+        u'Box2D__Box2D': 4775,
+        u'Mandreel__Mandreel': 6620,
+        u'Gameboy__Gameboy': 9901,
+        u'Crypto__Crypto': 8737,
+        u'PdfJS__PdfJS': 6455,
+        u'Total__Score': 7918,
+        u'EarleyBoyer__EarleyBoyer': 14340,
+        u'MandreelLatency__MandreelLatency': 5188,
+        u'CodeLoad__CodeLoad': 6271,
+        u'DeltaBlue__DeltaBlue': 14401,
+        u'Typescript__Typescript': 9815,
+        u'SplayLatency__SplayLatency': 7653,
+        u'zlib__zlib': 16094,
+        u'Richards__Richards': 10358,
+        u'RegExp__RegExp': 1765,
+        u'NavierStokes__NavierStokes': 9815,
+        u'Splay__Splay': 4425,
+        u'RayTrace__RayTrace': 16600
+    }
+    units_dict = {
+        u'Box2D__Box2D': u'score',
+        u'Mandreel__Mandreel': u'score',
+        u'Gameboy__Gameboy': u'score',
+        u'Crypto__Crypto': u'score',
+        u'PdfJS__PdfJS': u'score',
+        u'Total__Score': u'score',
+        u'EarleyBoyer__EarleyBoyer': u'score',
+        u'MandreelLatency__MandreelLatency': u'score',
+        u'CodeLoad__CodeLoad': u'score',
+        u'DeltaBlue__DeltaBlue': u'score',
+        u'Typescript__Typescript': u'score',
+        u'SplayLatency__SplayLatency': u'score',
+        u'zlib__zlib': u'score',
+        u'Richards__Richards': u'score',
+        u'RegExp__RegExp': u'score',
+        u'NavierStokes__NavierStokes': u'score',
+        u'Splay__Splay': u'score',
+        u'RayTrace__RayTrace': u'score'
+    }
+
+    results_dict = self.result.AppendTelemetryUnits(kv_dict, units_dict)
+    self.assertEqual(results_dict, {
+        u'Box2D__Box2D': [4775, u'score'],
+        u'Splay__Splay': [4425, u'score'],
+        u'Gameboy__Gameboy': [9901, u'score'],
+        u'Crypto__Crypto': [8737, u'score'],
+        u'PdfJS__PdfJS': [6455, u'score'],
+        u'Total__Score': [7918, u'score'],
+        u'EarleyBoyer__EarleyBoyer': [14340, u'score'],
+        u'MandreelLatency__MandreelLatency': [5188, u'score'],
+        u'DeltaBlue__DeltaBlue': [14401, u'score'],
+        u'SplayLatency__SplayLatency': [7653, u'score'],
+        u'Mandreel__Mandreel': [6620, u'score'],
+        u'Richards__Richards': [10358, u'score'],
+        u'zlib__zlib': [16094, u'score'],
+        u'CodeLoad__CodeLoad': [6271, u'score'],
+        u'Typescript__Typescript': [9815, u'score'],
+        u'RegExp__RegExp': [1765, u'score'],
+        u'RayTrace__RayTrace': [16600, u'score'],
+        u'NavierStokes__NavierStokes': [9815, u'score']
+    })
+
+  @mock.patch.object(misc, 'GetInsideChrootPath')
+  @mock.patch.object(tempfile, 'mkdtemp')
+  @mock.patch.object(command_executer.CommandExecuter, 'RunCommand')
+  @mock.patch.object(command_executer.CommandExecuter,
+                     'ChrootRunCommandWOutput')
+  def test_get_keyvals(self, mock_chrootruncmd, mock_runcmd, mock_mkdtemp,
+                       mock_getpath):
+
+    self.kv_dict = {}
+    self.callGetNewKeyvals = False
+
+    def reset():
+      self.kv_dict = {}
+      self.callGetNewKeyvals = False
+      mock_chrootruncmd.reset_mock()
+      mock_runcmd.reset_mock()
+      mock_mkdtemp.reset_mock()
+      mock_getpath.reset_mock()
+
+    def FakeGetNewKeyvals(kv_dict):
+      self.kv_dict = kv_dict
+      self.callGetNewKeyvals = True
+      return_kvdict = {'first_time': 680, 'Total': 10}
+      return_udict = {'first_time': 'ms', 'Total': 'score'}
+      return return_kvdict, return_udict
+
+    mock_mkdtemp.return_value = TMP_DIR1
+    mock_chrootruncmd.return_value = [
+        '', ('%s,PASS\n%s/telemetry_Crosperf,PASS\n') % (TMP_DIR1, TMP_DIR1), ''
+    ]
+    mock_getpath.return_value = TMP_DIR1
+    self.result.ce.ChrootRunCommandWOutput = mock_chrootruncmd
+    self.result.ce.RunCommand = mock_runcmd
+    self.result.GetNewKeyvals = FakeGetNewKeyvals
+    self.result.suite = 'telemetry_Crosperf'
+    self.result.results_dir = '/tmp/test_that_resultsNmq'
+
+    # Test 1. no self.temp_dir.
+    res = self.result.GetKeyvals()
+    self.assertTrue(self.callGetNewKeyvals)
+    self.assertEqual(self.kv_dict, {'': 'PASS', 'telemetry_Crosperf': 'PASS'})
+    self.assertEqual(mock_runcmd.call_count, 1)
+    self.assertEqual(mock_runcmd.call_args_list[0][0],
+                     ('cp -r /tmp/test_that_resultsNmq/* %s' % TMP_DIR1,))
+    self.assertEqual(mock_chrootruncmd.call_count, 1)
+    self.assertEqual(mock_chrootruncmd.call_args_list[0][0], (
+        '/tmp', ('python generate_test_report --no-color --csv %s') % TMP_DIR1))
+    self.assertEqual(mock_getpath.call_count, 1)
+    self.assertEqual(mock_mkdtemp.call_count, 1)
+    self.assertEqual(res, {'Total': [10, 'score'], 'first_time': [680, 'ms']})
+
+    # Test 2. self.temp_dir
+    reset()
+    mock_chrootruncmd.return_value = [
+        '', ('/tmp/tmpJCajRG,PASS\n/tmp/tmpJCajRG/'
+             'telemetry_Crosperf,PASS\n'), ''
+    ]
+    mock_getpath.return_value = '/tmp/tmpJCajRG'
+    self.result.temp_dir = '/tmp/tmpJCajRG'
+    res = self.result.GetKeyvals()
+    self.assertEqual(mock_runcmd.call_count, 0)
+    self.assertEqual(mock_mkdtemp.call_count, 0)
+    self.assertEqual(mock_chrootruncmd.call_count, 1)
+    self.assertTrue(self.callGetNewKeyvals)
+    self.assertEqual(self.kv_dict, {'': 'PASS', 'telemetry_Crosperf': 'PASS'})
+    self.assertEqual(res, {'Total': [10, 'score'], 'first_time': [680, 'ms']})
+
+    # Test 3. suite != telemetry_Crosperf.  Normally this would be for
+    # running non-Telemetry autotests, such as BootPerfServer.  In this test
+    # case, the keyvals we have set up were returned from a Telemetry test run;
+    # so this pass is basically testing that we don't append the units to the
+    # test results (which we do for Telemetry autotest runs).
+    reset()
+    self.result.suite = ''
+    res = self.result.GetKeyvals()
+    self.assertEqual(res, {'Total': 10, 'first_time': 680})
+
+  def test_get_results_dir(self):
+
+    self.result.out = ''
+    self.assertRaises(Exception, self.result.GetResultsDir)
+
+    self.result.out = OUTPUT
+    resdir = self.result.GetResultsDir()
+    self.assertEqual(resdir, '/tmp/test_that.PO1234567/platform_LibCBench')
+
+  @mock.patch.object(command_executer.CommandExecuter, 'RunCommandGeneric')
+  def test_find_files_in_results_dir(self, mock_runcmd):
+
+    self.result.results_dir = None
+    res = self.result.FindFilesInResultsDir('-name perf.data')
+    self.assertIsNone(res)
+
+    self.result.ce.RunCommand = mock_runcmd
+    self.result.results_dir = '/tmp/test_results'
+    mock_runcmd.return_value = [0, '/tmp/test_results/perf.data', '']
+    res = self.result.FindFilesInResultsDir('-name perf.data')
+    self.assertEqual(mock_runcmd.call_count, 1)
+    self.assertEqual(mock_runcmd.call_args_list[0][0],
+                     ('find /tmp/test_results -name perf.data',))
+    self.assertEqual(res, '/tmp/test_results/perf.data')
+
+    mock_runcmd.reset_mock()
+    mock_runcmd.return_value = [1, '', '']
+    self.assertRaises(Exception, self.result.FindFilesInResultsDir,
+                      '-name perf.data')
+
+  @mock.patch.object(Result, 'FindFilesInResultsDir')
+  def test_get_perf_data_files(self, mock_findfiles):
+    self.args = None
+
+    mock_findfiles.return_value = 'line1\nline1\n'
+    self.result.FindFilesInResultsDir = mock_findfiles
+    res = self.result.GetPerfDataFiles()
+    self.assertEqual(res, ['line1', 'line1'])
+    self.assertEqual(mock_findfiles.call_args_list[0][0], ('-name perf.data',))
+
+  def test_get_perf_report_files(self):
+    self.args = None
+
+    def FakeFindFiles(find_args):
+      self.args = find_args
+      return 'line1\nline1\n'
+
+    self.result.FindFilesInResultsDir = FakeFindFiles
+    res = self.result.GetPerfReportFiles()
+    self.assertEqual(res, ['line1', 'line1'])
+    self.assertEqual(self.args, '-name perf.data.report')
+
+  def test_get_data_measurement_files(self):
+    self.args = None
+
+    def FakeFindFiles(find_args):
+      self.args = find_args
+      return 'line1\nline1\n'
+
+    self.result.FindFilesInResultsDir = FakeFindFiles
+    res = self.result.GetDataMeasurementsFiles()
+    self.assertEqual(res, ['line1', 'line1'])
+    self.assertEqual(self.args, '-name perf_measurements')
+
+  @mock.patch.object(misc, 'GetInsideChrootPath')
+  @mock.patch.object(command_executer.CommandExecuter, 'ChrootRunCommand')
+  def test_generate_perf_report_files(self, mock_chrootruncmd, mock_getpath):
+    fake_file = '/usr/chromeos/chroot/tmp/results/fake_file'
+    self.result.perf_data_files = ['/tmp/results/perf.data']
+    self.result.board = 'lumpy'
+    mock_getpath.return_value = fake_file
+    self.result.ce.ChrootRunCommand = mock_chrootruncmd
+    tmp = self.result.GeneratePerfReportFiles()
+    self.assertEqual(tmp, ['/tmp/chroot%s' % fake_file])
+    self.assertEqual(mock_chrootruncmd.call_args_list[0][0],
+                     ('/tmp',
+                      ('/usr/sbin/perf report -n --symfs /build/lumpy '
+                       '--vmlinux /build/lumpy/usr/lib/debug/boot/vmlinux '
+                       '--kallsyms /build/lumpy/boot/System.map-* -i '
+                       '%s --stdio > %s') % (fake_file, fake_file)))
+
+  @mock.patch.object(misc, 'GetOutsideChrootPath')
+  def test_populate_from_run(self, mock_getpath):
+
+    def FakeGetResultsDir():
+      self.callGetResultsDir = True
+      return '/tmp/results_dir'
+
+    def FakeGetResultsFile():
+      self.callGetResultsFile = True
+      return []
+
+    def FakeGetPerfDataFiles():
+      self.callGetPerfDataFiles = True
+      return []
+
+    def FakeGetPerfReportFiles():
+      self.callGetPerfReportFiles = True
+      return []
+
+    def FakeProcessResults(show_results=False):
+      if show_results:
+        pass
+      self.callProcessResults = True
+
+    if mock_getpath:
+      pass
+    mock.get_path = '/tmp/chromeos/tmp/results_dir'
+    self.result.chromeos_root = '/tmp/chromeos'
+
+    self.callGetResultsDir = False
+    self.callGetResultsFile = False
+    self.callGetPerfDataFiles = False
+    self.callGetPerfReportFiles = False
+    self.callProcessResults = False
+
+    self.result.GetResultsDir = FakeGetResultsDir
+    self.result.GetResultsFile = FakeGetResultsFile
+    self.result.GetPerfDataFiles = FakeGetPerfDataFiles
+    self.result.GeneratePerfReportFiles = FakeGetPerfReportFiles
+    self.result.ProcessResults = FakeProcessResults
+
+    self.result.PopulateFromRun(OUTPUT, '', 0, 'test', 'telemetry_Crosperf')
+    self.assertTrue(self.callGetResultsDir)
+    self.assertTrue(self.callGetResultsFile)
+    self.assertTrue(self.callGetPerfDataFiles)
+    self.assertTrue(self.callGetPerfReportFiles)
+    self.assertTrue(self.callProcessResults)
+
+  def test_process_results(self):
+
+    def FakeGetKeyvals(show_all=False):
+      if show_all:
+        return {'first_time': 680, 'Total': 10}
+      else:
+        return {'Total': 10}
+
+    def FakeGatherPerfResults():
+      self.callGatherPerfResults = True
+
+    self.callGatherPerfResults = False
+
+    self.result.GetKeyvals = FakeGetKeyvals
+    self.result.GatherPerfResults = FakeGatherPerfResults
+
+    self.result.retval = 0
+    self.result.ProcessResults()
+    self.assertTrue(self.callGatherPerfResults)
+    self.assertEqual(len(self.result.keyvals), 2)
+    self.assertEqual(self.result.keyvals, {'Total': 10, 'retval': 0})
+
+    self.result.retval = 1
+    self.result.ProcessResults()
+    self.assertEqual(len(self.result.keyvals), 2)
+    self.assertEqual(self.result.keyvals, {'Total': 10, 'retval': 1})
+
+  @mock.patch.object(misc, 'GetInsideChrootPath')
+  @mock.patch.object(command_executer.CommandExecuter,
+                     'ChrootRunCommandWOutput')
+  def test_populate_from_cache_dir(self, mock_runchrootcmd, mock_getpath):
+
+    # pylint: disable=redefined-builtin
+    def FakeMkdtemp(dir=None):
+      if dir:
+        pass
+      return self.tmpdir
+
+    current_path = os.getcwd()
+    cache_dir = os.path.join(current_path, 'test_cache/test_input')
+    self.result.ce = command_executer.GetCommandExecuter(log_level='average')
+    self.result.ce.ChrootRunCommandWOutput = mock_runchrootcmd
+    mock_runchrootcmd.return_value = [
+        '', ('%s,PASS\n%s/\telemetry_Crosperf,PASS\n') % (TMP_DIR1, TMP_DIR1),
+        ''
+    ]
+    mock_getpath.return_value = TMP_DIR1
+    self.tmpdir = tempfile.mkdtemp()
+    save_real_mkdtemp = tempfile.mkdtemp
+    tempfile.mkdtemp = FakeMkdtemp
+
+    self.result.PopulateFromCacheDir(cache_dir, 'sunspider',
+                                     'telemetry_Crosperf')
+    self.assertEqual(self.result.keyvals, {
+        u'Total__Total': [444.0, u'ms'],
+        u'regexp-dna__regexp-dna': [16.2, u'ms'],
+        u'telemetry_page_measurement_results__num_failed': [0, u'count'],
+        u'telemetry_page_measurement_results__num_errored': [0, u'count'],
+        u'string-fasta__string-fasta': [23.2, u'ms'],
+        u'crypto-sha1__crypto-sha1': [11.6, u'ms'],
+        u'bitops-3bit-bits-in-byte__bitops-3bit-bits-in-byte': [3.2, u'ms'],
+        u'access-nsieve__access-nsieve': [7.9, u'ms'],
+        u'bitops-nsieve-bits__bitops-nsieve-bits': [9.4, u'ms'],
+        u'string-validate-input__string-validate-input': [19.3, u'ms'],
+        u'3d-raytrace__3d-raytrace': [24.7, u'ms'],
+        u'3d-cube__3d-cube': [28.0, u'ms'],
+        u'string-unpack-code__string-unpack-code': [46.7, u'ms'],
+        u'date-format-tofte__date-format-tofte': [26.3, u'ms'],
+        u'math-partial-sums__math-partial-sums': [22.0, u'ms'],
+        '\telemetry_Crosperf': ['PASS', ''],
+        u'crypto-aes__crypto-aes': [15.2, u'ms'],
+        u'bitops-bitwise-and__bitops-bitwise-and': [8.4, u'ms'],
+        u'crypto-md5__crypto-md5': [10.5, u'ms'],
+        u'string-tagcloud__string-tagcloud': [52.8, u'ms'],
+        u'access-nbody__access-nbody': [8.5, u'ms'],
+        'retval': 0,
+        u'math-spectral-norm__math-spectral-norm': [6.6, u'ms'],
+        u'math-cordic__math-cordic': [8.7, u'ms'],
+        u'access-binary-trees__access-binary-trees': [4.5, u'ms'],
+        u'controlflow-recursive__controlflow-recursive': [4.4, u'ms'],
+        u'access-fannkuch__access-fannkuch': [17.8, u'ms'],
+        u'string-base64__string-base64': [16.0, u'ms'],
+        u'date-format-xparb__date-format-xparb': [20.9, u'ms'],
+        u'3d-morph__3d-morph': [22.1, u'ms'],
+        u'bitops-bits-in-byte__bitops-bits-in-byte': [9.1, u'ms']
+    })
+
+    # Clean up after test.
+    tempfile.mkdtemp = save_real_mkdtemp
+    command = 'rm -Rf %s' % self.tmpdir
+    self.result.ce.RunCommand(command)
+
+  @mock.patch.object(misc, 'GetRoot')
+  @mock.patch.object(command_executer.CommandExecuter, 'RunCommand')
+  def test_cleanup(self, mock_runcmd, mock_getroot):
+
+    # Test 1. 'rm_chroot_tmp' is True; self.results_dir exists;
+    # self.temp_dir exists; results_dir name contains 'test_that_results_'.
+    mock_getroot.return_value = ['/tmp/tmp_AbcXyz', 'test_that_results_fake']
+    self.result.ce.RunCommand = mock_runcmd
+    self.result.results_dir = 'test_results_dir'
+    self.result.temp_dir = 'testtemp_dir'
+    self.result.CleanUp(True)
+    self.assertEqual(mock_getroot.call_count, 1)
+    self.assertEqual(mock_runcmd.call_count, 2)
+    self.assertEqual(mock_runcmd.call_args_list[0][0],
+                     ('rm -rf test_results_dir',))
+    self.assertEqual(mock_runcmd.call_args_list[1][0], ('rm -rf testtemp_dir',))
+
+    # Test 2. Same, except ath results_dir name does not contain
+    # 'test_that_results_'
+    mock_getroot.reset_mock()
+    mock_runcmd.reset_mock()
+    mock_getroot.return_value = ['/tmp/tmp_AbcXyz', 'other_results_fake']
+    self.result.ce.RunCommand = mock_runcmd
+    self.result.results_dir = 'test_results_dir'
+    self.result.temp_dir = 'testtemp_dir'
+    self.result.CleanUp(True)
+    self.assertEqual(mock_getroot.call_count, 1)
+    self.assertEqual(mock_runcmd.call_count, 2)
+    self.assertEqual(mock_runcmd.call_args_list[0][0],
+                     ('rm -rf /tmp/tmp_AbcXyz',))
+    self.assertEqual(mock_runcmd.call_args_list[1][0], ('rm -rf testtemp_dir',))
+
+    # Test 3. mock_getroot returns nothing; 'rm_chroot_tmp' is False.
+    mock_getroot.reset_mock()
+    mock_runcmd.reset_mock()
+    self.result.CleanUp(False)
+    self.assertEqual(mock_getroot.call_count, 0)
+    self.assertEqual(mock_runcmd.call_count, 1)
+    self.assertEqual(mock_runcmd.call_args_list[0][0], ('rm -rf testtemp_dir',))
+
+    # Test 4. 'rm_chroot_tmp' is True, but result_dir & temp_dir are None.
+    mock_getroot.reset_mock()
+    mock_runcmd.reset_mock()
+    self.result.results_dir = None
+    self.result.temp_dir = None
+    self.result.CleanUp(True)
+    self.assertEqual(mock_getroot.call_count, 0)
+    self.assertEqual(mock_runcmd.call_count, 0)
+
+  @mock.patch.object(misc, 'GetInsideChrootPath')
+  @mock.patch.object(command_executer.CommandExecuter, 'ChrootRunCommand')
+  def test_store_to_cache_dir(self, mock_chrootruncmd, mock_getpath):
+
+    def FakeMkdtemp(directory=''):
+      if directory:
+        pass
+      return self.tmpdir
+
+    if mock_chrootruncmd or mock_getpath:
+      pass
+    current_path = os.getcwd()
+    cache_dir = os.path.join(current_path, 'test_cache/test_output')
+
+    self.result.ce = command_executer.GetCommandExecuter(log_level='average')
+    self.result.out = OUTPUT
+    self.result.err = error
+    self.result.retval = 0
+    self.tmpdir = tempfile.mkdtemp()
+    if not os.path.exists(self.tmpdir):
+      os.makedirs(self.tmpdir)
+    self.result.results_dir = os.path.join(os.getcwd(), 'test_cache')
+    save_real_mkdtemp = tempfile.mkdtemp
+    tempfile.mkdtemp = FakeMkdtemp
+
+    mock_mm = machine_manager.MockMachineManager('/tmp/chromeos_root', 0,
+                                                 'average', '')
+    mock_mm.machine_checksum_string['mock_label'] = 'fake_machine_checksum123'
+
+    mock_keylist = ['key1', 'key2', 'key3']
+    test_flag.SetTestMode(True)
+    self.result.StoreToCacheDir(cache_dir, mock_mm, mock_keylist)
+
+    # Check that the correct things were written to the 'cache'.
+    test_dir = os.path.join(os.getcwd(), 'test_cache/test_output')
+    base_dir = os.path.join(os.getcwd(), 'test_cache/compare_output')
+    self.assertTrue(os.path.exists(os.path.join(test_dir, 'autotest.tbz2')))
+    self.assertTrue(os.path.exists(os.path.join(test_dir, 'machine.txt')))
+    self.assertTrue(os.path.exists(os.path.join(test_dir, 'results.txt')))
+
+    f1 = os.path.join(test_dir, 'machine.txt')
+    f2 = os.path.join(base_dir, 'machine.txt')
+    cmd = 'diff %s %s' % (f1, f2)
+    [_, out, _] = self.result.ce.RunCommandWOutput(cmd)
+    self.assertEqual(len(out), 0)
+
+    f1 = os.path.join(test_dir, 'results.txt')
+    f2 = os.path.join(base_dir, 'results.txt')
+    cmd = 'diff %s %s' % (f1, f2)
+    [_, out, _] = self.result.ce.RunCommandWOutput(cmd)
+    self.assertEqual(len(out), 0)
+
+    # Clean up after test.
+    tempfile.mkdtemp = save_real_mkdtemp
+    command = 'rm %s/*' % test_dir
+    self.result.ce.RunCommand(command)
+
+
+TELEMETRY_RESULT_KEYVALS = {
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'math-cordic (ms)':
+        '11.4',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'access-nbody (ms)':
+        '6.9',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'access-fannkuch (ms)':
+        '26.3',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'math-spectral-norm (ms)':
+        '6.3',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'bitops-nsieve-bits (ms)':
+        '9.3',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'math-partial-sums (ms)':
+        '32.8',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'regexp-dna (ms)':
+        '16.1',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    '3d-cube (ms)':
+        '42.7',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'crypto-md5 (ms)':
+        '10.8',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'crypto-sha1 (ms)':
+        '12.4',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'string-tagcloud (ms)':
+        '47.2',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'string-fasta (ms)':
+        '36.3',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'access-binary-trees (ms)':
+        '7.3',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'date-format-xparb (ms)':
+        '138.1',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'crypto-aes (ms)':
+        '19.2',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'Total (ms)':
+        '656.5',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'string-base64 (ms)':
+        '17.5',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'string-validate-input (ms)':
+        '24.8',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    '3d-raytrace (ms)':
+        '28.7',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'controlflow-recursive (ms)':
+        '5.3',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'bitops-bits-in-byte (ms)':
+        '9.8',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    '3d-morph (ms)':
+        '50.2',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'bitops-bitwise-and (ms)':
+        '8.8',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'access-nsieve (ms)':
+        '8.6',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'date-format-tofte (ms)':
+        '31.2',
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'bitops-3bit-bits-in-byte (ms)':
+        '3.5',
+    'retval':
+        0,
+    'http://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html '
+    'string-unpack-code (ms)':
+        '45.0'
+}
+
+PURE_TELEMETRY_OUTPUT = """
+page_name,3d-cube (ms),3d-morph (ms),3d-raytrace (ms),Total (ms),access-binary-trees (ms),access-fannkuch (ms),access-nbody (ms),access-nsieve (ms),bitops-3bit-bits-in-byte (ms),bitops-bits-in-byte (ms),bitops-bitwise-and (ms),bitops-nsieve-bits (ms),controlflow-recursive (ms),crypto-aes (ms),crypto-md5 (ms),crypto-sha1 (ms),date-format-tofte (ms),date-format-xparb (ms),math-cordic (ms),math-partial-sums (ms),math-spectral-norm (ms),regexp-dna (ms),string-base64 (ms),string-fasta (ms),string-tagcloud (ms),string-unpack-code (ms),string-validate-input (ms)\r\nhttp://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html,42.7,50.2,28.7,656.5,7.3,26.3,6.9,8.6,3.5,9.8,8.8,9.3,5.3,19.2,10.8,12.4,31.2,138.1,11.4,32.8,6.3,16.1,17.5,36.3,47.2,45.0,24.8\r
+"""
+
+
+class TelemetryResultTest(unittest.TestCase):
+  """Telemetry result test."""
+
+  def __init__(self, *args, **kwargs):
+    super(TelemetryResultTest, self).__init__(*args, **kwargs)
+    self.callFakeProcessResults = False
+    self.result = None
+    self.mock_logger = mock.Mock(spec=logger.Logger)
+    self.mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
+    self.mock_label = MockLabel('mock_label', 'chromeos_image', 'autotest_dir',
+                                '/tmp', 'lumpy', 'remote', 'image_args',
+                                'cache_dir', 'average', 'gcc', None)
+    self.mock_machine = machine_manager.MockCrosMachine('falco.cros',
+                                                        '/tmp/chromeos',
+                                                        'average')
+
+  def test_populate_from_run(self):
+
+    def FakeProcessResults():
+      self.callFakeProcessResults = True
+
+    self.callFakeProcessResults = False
+    self.result = TelemetryResult(self.mock_logger, self.mock_label, 'average',
+                                  self.mock_cmd_exec)
+    self.result.ProcessResults = FakeProcessResults
+    self.result.PopulateFromRun(OUTPUT, error, 3, 'fake_test',
+                                'telemetry_Crosperf')
+    self.assertTrue(self.callFakeProcessResults)
+    self.assertEqual(self.result.out, OUTPUT)
+    self.assertEqual(self.result.err, error)
+    self.assertEqual(self.result.retval, 3)
+
+  def test_populate_from_cache_dir_and_process_results(self):
+
+    self.result = TelemetryResult(self.mock_logger, self.mock_label, 'average',
+                                  self.mock_machine)
+    current_path = os.getcwd()
+    cache_dir = os.path.join(current_path,
+                             'test_cache/test_puretelemetry_input')
+    self.result.PopulateFromCacheDir(cache_dir, '', '')
+    self.assertEqual(self.result.out.strip(), PURE_TELEMETRY_OUTPUT.strip())
+    self.assertEqual(self.result.err, '')
+    self.assertEqual(self.result.retval, 0)
+    self.assertEqual(self.result.keyvals, TELEMETRY_RESULT_KEYVALS)
+
+
+class ResultsCacheTest(unittest.TestCase):
+  """Resultcache test class."""
+
+  def __init__(self, *args, **kwargs):
+    super(ResultsCacheTest, self).__init__(*args, **kwargs)
+    self.fakeCacheReturnResult = None
+    self.mock_logger = mock.Mock(spec=logger.Logger)
+    self.mock_label = MockLabel('mock_label', 'chromeos_image', 'autotest_dir',
+                                '/tmp', 'lumpy', 'remote', 'image_args',
+                                'cache_dir', 'average', 'gcc', None)
+
+  def setUp(self):
+    self.results_cache = ResultsCache()
+
+    mock_machine = machine_manager.MockCrosMachine('falco.cros',
+                                                   '/tmp/chromeos', 'average')
+
+    mock_mm = machine_manager.MockMachineManager('/tmp/chromeos_root', 0,
+                                                 'average', '')
+    mock_mm.machine_checksum_string['mock_label'] = 'fake_machine_checksum123'
+
+    self.results_cache.Init(
+        self.mock_label.chromeos_image,
+        self.mock_label.chromeos_root,
+        'sunspider',
+        1,  # benchmark_run.iteration,
+        '',  # benchmark_run.test_args,
+        '',  # benchmark_run.profiler_args,
+        mock_mm,
+        mock_machine,
+        self.mock_label.board,
+        [CacheConditions.CACHE_FILE_EXISTS, CacheConditions.CHECKSUMS_MATCH],
+        self.mock_logger,
+        'average',
+        self.mock_label,
+        '',  # benchmark_run.share_cache
+        'telemetry_Crosperf',
+        True,  # benchmark_run.show_all_results
+        False)  # benchmark_run.run_local
+
+  @mock.patch.object(image_checksummer.ImageChecksummer, 'Checksum')
+  def test_get_cache_dir_for_write(self, mock_checksum):
+
+    def FakeGetMachines(label):
+      if label:
+        pass
+      m1 = machine_manager.MockCrosMachine('lumpy1.cros',
+                                           self.results_cache.chromeos_root,
+                                           'average')
+      m2 = machine_manager.MockCrosMachine('lumpy2.cros',
+                                           self.results_cache.chromeos_root,
+                                           'average')
+      return [m1, m2]
+
+    mock_checksum.return_value = 'FakeImageChecksumabc123'
+    self.results_cache.machine_manager.GetMachines = FakeGetMachines
+    self.results_cache.machine_manager.machine_checksum['mock_label'] = \
+        'FakeMachineChecksumabc987'
+    # Based on the label, benchmark and machines, get the directory in which
+    # to store the cache information for this test run.
+    result_path = self.results_cache.GetCacheDirForWrite()
+    # Verify that the returned directory is correct (since the label
+    # contained a cache_dir, named 'cache_dir', that's what is expected in
+    # the result, rather than '~/cros_scratch').
+    comp_path = os.path.join(os.getcwd(),
+                             'cache_dir/54524606abaae4fdf7b02f49f7ae7127_'
+                             'sunspider_1_fda29412ceccb72977516c4785d08e2c_'
+                             'FakeImageChecksumabc123_FakeMachineChecksum'
+                             'abc987__6')
+    self.assertEqual(result_path, comp_path)
+
+  def test_form_cache_dir(self):
+    # This is very similar to the previous test (FormCacheDir is called
+    # from GetCacheDirForWrite).
+    cache_key_list = ('54524606abaae4fdf7b02f49f7ae7127', 'sunspider', '1',
+                      '7215ee9c7d9dc229d2921a40e899ec5f',
+                      'FakeImageChecksumabc123', '*', '*', '6')
+    path = self.results_cache.FormCacheDir(cache_key_list)
+    self.assertEqual(len(path), 1)
+    path1 = path[0]
+    test_dirname = ('54524606abaae4fdf7b02f49f7ae7127_sunspider_1_7215ee9'
+                    'c7d9dc229d2921a40e899ec5f_FakeImageChecksumabc123_*_*_6')
+    comp_path = os.path.join(os.getcwd(), 'cache_dir', test_dirname)
+    self.assertEqual(path1, comp_path)
+
+  @mock.patch.object(image_checksummer.ImageChecksummer, 'Checksum')
+  def test_get_cache_key_list(self, mock_checksum):
+    # This tests the mechanism that generates the various pieces of the
+    # cache directory name, based on various conditions.
+
+    def FakeGetMachines(label):
+      if label:
+        pass
+      m1 = machine_manager.MockCrosMachine('lumpy1.cros',
+                                           self.results_cache.chromeos_root,
+                                           'average')
+      m2 = machine_manager.MockCrosMachine('lumpy2.cros',
+                                           self.results_cache.chromeos_root,
+                                           'average')
+      return [m1, m2]
+
+    mock_checksum.return_value = 'FakeImageChecksumabc123'
+    self.results_cache.machine_manager.GetMachines = FakeGetMachines
+    self.results_cache.machine_manager.machine_checksum['mock_label'] = \
+        'FakeMachineChecksumabc987'
+
+    # Test 1. Generating cache name for reading (not writing).
+    key_list = self.results_cache.GetCacheKeyList(True)
+    self.assertEqual(key_list[0], '*')  # Machine checksum value, for read.
+    self.assertEqual(key_list[1], 'sunspider')
+    self.assertEqual(key_list[2], '1')
+    self.assertEqual(key_list[3], 'fda29412ceccb72977516c4785d08e2c')
+    self.assertEqual(key_list[4], 'FakeImageChecksumabc123')
+    self.assertEqual(key_list[5], '*')
+    self.assertEqual(key_list[6], '*')
+    self.assertEqual(key_list[7], '6')
+
+    # Test 2. Generating cache name for writing, with local image type.
+    key_list = self.results_cache.GetCacheKeyList(False)
+    self.assertEqual(key_list[0], '54524606abaae4fdf7b02f49f7ae7127')
+    self.assertEqual(key_list[1], 'sunspider')
+    self.assertEqual(key_list[2], '1')
+    self.assertEqual(key_list[3], 'fda29412ceccb72977516c4785d08e2c')
+    self.assertEqual(key_list[4], 'FakeImageChecksumabc123')
+    self.assertEqual(key_list[5], 'FakeMachineChecksumabc987')
+    self.assertEqual(key_list[6], '')
+    self.assertEqual(key_list[7], '6')
+
+    # Test 3. Generating cache name for writing, with trybot image type.
+    self.results_cache.label.image_type = 'trybot'
+    key_list = self.results_cache.GetCacheKeyList(False)
+    self.assertEqual(key_list[0], '54524606abaae4fdf7b02f49f7ae7127')
+    self.assertEqual(key_list[3], 'fda29412ceccb72977516c4785d08e2c')
+    self.assertEqual(key_list[4], '54524606abaae4fdf7b02f49f7ae7127')
+    self.assertEqual(key_list[5], 'FakeMachineChecksumabc987')
+
+    # Test 4. Generating cache name for writing, with official image type.
+    self.results_cache.label.image_type = 'official'
+    key_list = self.results_cache.GetCacheKeyList(False)
+    self.assertEqual(key_list[0], '54524606abaae4fdf7b02f49f7ae7127')
+    self.assertEqual(key_list[1], 'sunspider')
+    self.assertEqual(key_list[2], '1')
+    self.assertEqual(key_list[3], 'fda29412ceccb72977516c4785d08e2c')
+    self.assertEqual(key_list[4], '*')
+    self.assertEqual(key_list[5], 'FakeMachineChecksumabc987')
+    self.assertEqual(key_list[6], '')
+    self.assertEqual(key_list[7], '6')
+
+    # Test 5. Generating cache name for writing, with local image type, and
+    # specifying that the image path must match the cached image path.
+    self.results_cache.label.image_type = 'local'
+    self.results_cache.cache_conditions.append(CacheConditions.IMAGE_PATH_MATCH)
+    key_list = self.results_cache.GetCacheKeyList(False)
+    self.assertEqual(key_list[0], '54524606abaae4fdf7b02f49f7ae7127')
+    self.assertEqual(key_list[3], 'fda29412ceccb72977516c4785d08e2c')
+    self.assertEqual(key_list[4], 'FakeImageChecksumabc123')
+    self.assertEqual(key_list[5], 'FakeMachineChecksumabc987')
+
+  @mock.patch.object(command_executer.CommandExecuter, 'RunCommand')
+  @mock.patch.object(os.path, 'isdir')
+  @mock.patch.object(Result, 'CreateFromCacheHit')
+  def test_read_result(self, mock_create, mock_isdir, mock_runcmd):
+
+    self.fakeCacheReturnResult = None
+
+    def FakeGetCacheDirForRead():
+      return self.fakeCacheReturnResult
+
+    def FakeGetCacheDirForWrite():
+      return self.fakeCacheReturnResult
+
+    mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
+    fake_result = Result(self.mock_logger, self.mock_label, 'average',
+                         mock_cmd_exec)
+    fake_result.retval = 0
+
+    # Set up results_cache _GetCacheDirFor{Read,Write} to return
+    # self.fakeCacheReturnResult, which is initially None (see above).
+    # So initially, no cache dir is returned.
+    self.results_cache.GetCacheDirForRead = FakeGetCacheDirForRead
+    self.results_cache.GetCacheDirForWrite = FakeGetCacheDirForWrite
+
+    mock_isdir.return_value = True
+    save_cc = [
+        CacheConditions.CACHE_FILE_EXISTS, CacheConditions.CHECKSUMS_MATCH
+    ]
+    self.results_cache.cache_conditions.append(CacheConditions.FALSE)
+
+    # Test 1. CacheCondition.FALSE, which means do not read from the cache.
+    # (force re-running of test).  Result should be None.
+    res = self.results_cache.ReadResult()
+    self.assertIsNone(res)
+    self.assertEqual(mock_runcmd.call_count, 1)
+
+    # Test 2. Remove CacheCondition.FALSE. Result should still be None,
+    # because GetCacheDirForRead is returning None at the moment.
+    mock_runcmd.reset_mock()
+    self.results_cache.cache_conditions = save_cc
+    res = self.results_cache.ReadResult()
+    self.assertIsNone(res)
+    self.assertEqual(mock_runcmd.call_count, 0)
+
+    # Test 3. Now set up cache dir to be returned by GetCacheDirForRead.
+    # Since cache_dir is found, will call Result.CreateFromCacheHit, which
+    # which will actually all our mock_create and should return fake_result.
+    self.fakeCacheReturnResult = 'fake/cache/dir'
+    mock_create.return_value = fake_result
+    res = self.results_cache.ReadResult()
+    self.assertEqual(mock_runcmd.call_count, 0)
+    self.assertEqual(res, fake_result)
+
+    # Test 4. os.path.isdir(cache_dir) will now return false, so result
+    # should be None again (no cache found).
+    mock_isdir.return_value = False
+    res = self.results_cache.ReadResult()
+    self.assertEqual(mock_runcmd.call_count, 0)
+    self.assertIsNone(res)
+
+    # Test 5. os.path.isdir returns true, but mock_create now returns None
+    # (the call to CreateFromCacheHit returns None), so overal result is None.
+    mock_isdir.return_value = True
+    mock_create.return_value = None
+    res = self.results_cache.ReadResult()
+    self.assertEqual(mock_runcmd.call_count, 0)
+    self.assertIsNone(res)
+
+    # Test 6. Everything works 'as expected', result should be fake_result.
+    mock_create.return_value = fake_result
+    res = self.results_cache.ReadResult()
+    self.assertEqual(mock_runcmd.call_count, 0)
+    self.assertEqual(res, fake_result)
+
+    # Test 7. The run failed; result should be None.
+    mock_create.return_value = fake_result
+    fake_result.retval = 1
+    self.results_cache.cache_conditions.append(CacheConditions.RUN_SUCCEEDED)
+    res = self.results_cache.ReadResult()
+    self.assertEqual(mock_runcmd.call_count, 0)
+    self.assertIsNone(res)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/results_organizer.py b/crosperf/results_organizer.py
new file mode 100644
index 0000000..097c744
--- /dev/null
+++ b/crosperf/results_organizer.py
@@ -0,0 +1,192 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Parse data from benchmark_runs for tabulator."""
+
+from __future__ import print_function
+
+import errno
+import json
+import os
+import re
+import sys
+
+from cros_utils import misc
+
+_TELEMETRY_RESULT_DEFAULTS_FILE = 'default-telemetry-results.json'
+_DUP_KEY_REGEX = re.compile(r'(\w+)\{(\d+)\}')
+
+
+def _AdjustIteration(benchmarks, max_dup, bench):
+  """Adjust the interation numbers if they have keys like ABCD{i}."""
+  for benchmark in benchmarks:
+    if benchmark.name != bench or benchmark.iteration_adjusted:
+      continue
+    benchmark.iteration_adjusted = True
+    benchmark.iterations *= (max_dup + 1)
+
+
+def _GetMaxDup(data):
+  """Find the maximum i inside ABCD{i}.
+
+  data should be a [[[Key]]], where Key is a string that may look like
+  ABCD{i}.
+  """
+  max_dup = 0
+  for label in data:
+    for run in label:
+      for key in run:
+        match = _DUP_KEY_REGEX.match(key)
+        if match:
+          max_dup = max(max_dup, int(match.group(2)))
+  return max_dup
+
+
+def _Repeat(func, times):
+  """Returns the result of running func() n times."""
+  return [func() for _ in xrange(times)]
+
+
+def _GetNonDupLabel(max_dup, runs):
+  """Create new list for the runs of the same label.
+
+  Specifically, this will split out keys like foo{0}, foo{1} from one run into
+  their own runs. For example, given a run like:
+    {"foo": 1, "bar{0}": 2, "baz": 3, "qux{1}": 4, "pirate{0}": 5}
+
+  You'll get:
+    [{"foo": 1, "baz": 3}, {"bar": 2, "pirate": 5}, {"qux": 4}]
+
+  Hands back the lists of transformed runs, all concatenated together.
+  """
+  new_runs = []
+  for run in runs:
+    new_run = {}
+    added_runs = _Repeat(dict, max_dup)
+    for key, value in run.iteritems():
+      match = _DUP_KEY_REGEX.match(key)
+      if not match:
+        new_run[key] = value
+      else:
+        new_key, index_str = match.groups()
+        added_runs[int(index_str)-1][new_key] = str(value)
+    new_runs.append(new_run)
+    new_runs += added_runs
+  return new_runs
+
+
+def _DuplicatePass(result, benchmarks):
+  """Properly expands keys like `foo{1}` in `result`."""
+  for bench, data in result.iteritems():
+    max_dup = _GetMaxDup(data)
+    # If there's nothing to expand, there's nothing to do.
+    if not max_dup:
+      continue
+    for i, runs in enumerate(data):
+      data[i] = _GetNonDupLabel(max_dup, runs)
+    _AdjustIteration(benchmarks, max_dup, bench)
+
+
+def _ReadSummaryFile(filename):
+  """Reads the summary file at filename."""
+  dirname, _ = misc.GetRoot(filename)
+  fullname = os.path.join(dirname, _TELEMETRY_RESULT_DEFAULTS_FILE)
+  try:
+    # Slurp the summary file into a dictionary. The keys in the dictionary are
+    # the benchmark names. The value for a key is a list containing the names
+    # of all the result fields that should be returned in a 'default' report.
+    with open(fullname) as in_file:
+      return json.load(in_file)
+  except IOError as e:
+    # ENOENT means "no such file or directory"
+    if e.errno == errno.ENOENT:
+      return {}
+    raise
+
+
+def _MakeOrganizeResultOutline(benchmark_runs, labels):
+  """Creates the "outline" of the OrganizeResults result for a set of runs.
+
+  Report generation returns lists of different sizes, depending on the input
+  data. Depending on the order in which we iterate through said input data, we
+  may populate the Nth index of a list, then the N-1st, then the N+Mth, ...
+
+  It's cleaner to figure out the "skeleton"/"outline" ahead of time, so we don't
+  have to worry about resizing while computing results.
+  """
+  # Count how many iterations exist for each benchmark run.
+  # We can't simply count up, since we may be given an incomplete set of
+  # iterations (e.g. [r.iteration for r in benchmark_runs] == [1, 3])
+  iteration_count = {}
+  for run in benchmark_runs:
+    name = run.benchmark.name
+    old_iterations = iteration_count.get(name, -1)
+    # N.B. run.iteration starts at 1, not 0.
+    iteration_count[name] = max(old_iterations, run.iteration)
+
+  # Result structure: {benchmark_name: [[{key: val}]]}
+  result = {}
+  for run in benchmark_runs:
+    name = run.benchmark.name
+    num_iterations = iteration_count[name]
+    # default param makes cros lint be quiet about defining num_iterations in a
+    # loop.
+    make_dicts = lambda n=num_iterations: _Repeat(dict, n)
+    result[name] = _Repeat(make_dicts, len(labels))
+  return result
+
+def OrganizeResults(benchmark_runs, labels, benchmarks=None, json_report=False):
+  """Create a dict from benchmark_runs.
+
+  The structure of the output dict is as follows:
+  {"benchmark_1":[
+    [{"key1":"v1", "key2":"v2"},{"key1":"v1", "key2","v2"}]
+    #one label
+    []
+    #the other label
+    ]
+   "benchmark_2":
+    [
+    ]}.
+  """
+  result = _MakeOrganizeResultOutline(benchmark_runs, labels)
+  label_names = [label.name for label in labels]
+  label_indices = {name: i for i, name in enumerate(label_names)}
+  summary_file = _ReadSummaryFile(sys.argv[0])
+  if benchmarks is None:
+    benchmarks = []
+
+  for benchmark_run in benchmark_runs:
+    if not benchmark_run.result:
+      continue
+    benchmark = benchmark_run.benchmark
+    label_index = label_indices[benchmark_run.label.name]
+    cur_label_list = result[benchmark.name][label_index]
+    cur_dict = cur_label_list[benchmark_run.iteration - 1]
+
+    show_all_results = json_report or benchmark.show_all_results
+    if not show_all_results:
+      summary_list = summary_file.get(benchmark.test_name)
+      if summary_list:
+        summary_list.append('retval')
+      else:
+        # Did not find test_name in json file; show everything.
+        show_all_results = True
+    for test_key in benchmark_run.result.keyvals:
+      if show_all_results or test_key in summary_list:
+        cur_dict[test_key] = benchmark_run.result.keyvals[test_key]
+    # Occasionally Telemetry tests will not fail but they will not return a
+    # result, either.  Look for those cases, and force them to be a fail.
+    # (This can happen if, for example, the test has been disabled.)
+    if len(cur_dict) == 1 and cur_dict['retval'] == 0:
+      cur_dict['retval'] = 1
+      # TODO: This output should be sent via logger.
+      print("WARNING: Test '%s' appears to have succeeded but returned"
+            ' no results.' % benchmark.name,
+            file=sys.stderr)
+    if json_report and benchmark_run.machine:
+      cur_dict['machine'] = benchmark_run.machine.name
+      cur_dict['machine_checksum'] = benchmark_run.machine.checksum
+      cur_dict['machine_string'] = benchmark_run.machine.checksum_string
+  _DuplicatePass(result, benchmarks)
+  return result
diff --git a/crosperf/results_organizer_unittest.py b/crosperf/results_organizer_unittest.py
new file mode 100755
index 0000000..ccf0297
--- /dev/null
+++ b/crosperf/results_organizer_unittest.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python2
+
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Testing of ResultsOrganizer
+
+   We create some labels, benchmark_runs and then create a ResultsOrganizer,
+   after that, we compare the result of ResultOrganizer.
+   """
+
+from __future__ import print_function
+
+import unittest
+
+from benchmark_run import BenchmarkRun
+from results_cache import Result
+from results_organizer import OrganizeResults
+
+import mock_instance
+
+result = {'benchmark1': [[{'': 'PASS',
+                           'bool': 'True',
+                           'milliseconds_1': '1',
+                           'milliseconds_2': '8',
+                           'milliseconds_3': '9.2',
+                           'ms_1': '2.1',
+                           'total': '5'}, {'test': '2'}, {'test': '4'},
+                          {'': 'PASS',
+                           'bool': 'FALSE',
+                           'milliseconds_1': '3',
+                           'milliseconds_2': '5',
+                           'ms_1': '2.2',
+                           'total': '6'}, {'test': '3'}, {'test': '4'}],
+                         [{'': 'PASS',
+                           'bool': 'FALSE',
+                           'milliseconds_4': '30',
+                           'milliseconds_5': '50',
+                           'ms_1': '2.23',
+                           'total': '6'}, {'test': '5'}, {'test': '4'},
+                          {'': 'PASS',
+                           'bool': 'FALSE',
+                           'milliseconds_1': '3',
+                           'milliseconds_6': '7',
+                           'ms_1': '2.3',
+                           'total': '7'}, {'test': '2'}, {'test': '6'}]],
+          'benchmark2': [[{'': 'PASS',
+                           'bool': 'TRUE',
+                           'milliseconds_1': '3',
+                           'milliseconds_8': '6',
+                           'ms_1': '2.3',
+                           'total': '7'}, {'test': '2'}, {'test': '6'},
+                          {'': 'PASS',
+                           'bool': 'TRUE',
+                           'milliseconds_1': '3',
+                           'milliseconds_8': '6',
+                           'ms_1': '2.2',
+                           'total': '7'}, {'test': '2'}, {'test': '2'}],
+                         [{'': 'PASS',
+                           'bool': 'TRUE',
+                           'milliseconds_1': '3',
+                           'milliseconds_8': '6',
+                           'ms_1': '2',
+                           'total': '7'}, {'test': '2'}, {'test': '4'},
+                          {'': 'PASS',
+                           'bool': 'TRUE',
+                           'milliseconds_1': '3',
+                           'milliseconds_8': '6',
+                           'ms_1': '1',
+                           'total': '7'}, {'test': '1'}, {'test': '6'}]]}
+
+
+class ResultOrganizerTest(unittest.TestCase):
+  """Test result organizer."""
+
+  def testResultOrganizer(self):
+    labels = [mock_instance.label1, mock_instance.label2]
+    benchmarks = [mock_instance.benchmark1, mock_instance.benchmark2]
+    benchmark_runs = [None] * 8
+    benchmark_runs[0] = BenchmarkRun('b1', benchmarks[0], labels[0], 1, '', '',
+                                     '', 'average', '')
+    benchmark_runs[1] = BenchmarkRun('b2', benchmarks[0], labels[0], 2, '', '',
+                                     '', 'average', '')
+    benchmark_runs[2] = BenchmarkRun('b3', benchmarks[0], labels[1], 1, '', '',
+                                     '', 'average', '')
+    benchmark_runs[3] = BenchmarkRun('b4', benchmarks[0], labels[1], 2, '', '',
+                                     '', 'average', '')
+    benchmark_runs[4] = BenchmarkRun('b5', benchmarks[1], labels[0], 1, '', '',
+                                     '', 'average', '')
+    benchmark_runs[5] = BenchmarkRun('b6', benchmarks[1], labels[0], 2, '', '',
+                                     '', 'average', '')
+    benchmark_runs[6] = BenchmarkRun('b7', benchmarks[1], labels[1], 1, '', '',
+                                     '', 'average', '')
+    benchmark_runs[7] = BenchmarkRun('b8', benchmarks[1], labels[1], 2, '', '',
+                                     '', 'average', '')
+
+    i = 0
+    for b in benchmark_runs:
+      b.result = Result('', b.label, 'average', 'machine')
+      b.result.keyvals = mock_instance.keyval[i]
+      i += 1
+
+    organized = OrganizeResults(benchmark_runs, labels, benchmarks)
+    self.assertEqual(organized, result)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/results_report.py b/crosperf/results_report.py
new file mode 100644
index 0000000..7a46534
--- /dev/null
+++ b/crosperf/results_report.py
@@ -0,0 +1,691 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""A module to handle the report format."""
+from __future__ import print_function
+
+import datetime
+import functools
+import itertools
+import json
+import os
+import re
+
+from cros_utils.tabulator import AmeanResult
+from cros_utils.tabulator import Cell
+from cros_utils.tabulator import CoeffVarFormat
+from cros_utils.tabulator import CoeffVarResult
+from cros_utils.tabulator import Column
+from cros_utils.tabulator import Format
+from cros_utils.tabulator import GmeanRatioResult
+from cros_utils.tabulator import LiteralResult
+from cros_utils.tabulator import MaxResult
+from cros_utils.tabulator import MinResult
+from cros_utils.tabulator import PValueFormat
+from cros_utils.tabulator import PValueResult
+from cros_utils.tabulator import RatioFormat
+from cros_utils.tabulator import RawResult
+from cros_utils.tabulator import StdResult
+from cros_utils.tabulator import TableFormatter
+from cros_utils.tabulator import TableGenerator
+from cros_utils.tabulator import TablePrinter
+from update_telemetry_defaults import TelemetryDefaults
+
+from column_chart import ColumnChart
+from results_organizer import OrganizeResults
+
+import results_report_templates as templates
+
+
+def ParseChromeosImage(chromeos_image):
+  """Parse the chromeos_image string for the image and version.
+
+  The chromeos_image string will probably be in one of two formats:
+  1: <path-to-chroot>/src/build/images/<board>/<ChromeOS-version>.<datetime>/ \
+     chromiumos_test_image.bin
+  2: <path-to-chroot>/chroot/tmp/<buildbot-build>/<ChromeOS-version>/ \
+      chromiumos_test_image.bin
+
+  We parse these strings to find the 'chromeos_version' to store in the
+  json archive (without the .datatime bit in the first case); and also
+  the 'chromeos_image', which would be all of the first case, but only the
+  part after '/chroot/tmp' in the second case.
+
+  Args:
+      chromeos_image: string containing the path to the chromeos_image that
+      crosperf used for the test.
+
+  Returns:
+      version, image: The results of parsing the input string, as explained
+      above.
+  """
+  # Find the Chromeos Version, e.g. R45-2345.0.0.....
+  # chromeos_image should have been something like:
+  # <path>/<board-trybot-release>/<chromeos-version>/chromiumos_test_image.bin"
+  if chromeos_image.endswith('/chromiumos_test_image.bin'):
+    full_version = chromeos_image.split('/')[-2]
+    # Strip the date and time off of local builds (which have the format
+    # "R43-2345.0.0.date-and-time").
+    version, _ = os.path.splitext(full_version)
+  else:
+    version = ''
+
+  # Find the chromeos image.  If it's somewhere in .../chroot/tmp/..., then
+  # it's an official image that got downloaded, so chop off the download path
+  # to make the official image name more clear.
+  official_image_path = '/chroot/tmp'
+  if official_image_path in chromeos_image:
+    image = chromeos_image.split(official_image_path, 1)[1]
+  else:
+    image = chromeos_image
+  return version, image
+
+
+def _AppendUntilLengthIs(gen, the_list, target_len):
+  """Appends to `list` until `list` is `target_len` elements long.
+
+  Uses `gen` to generate elements.
+  """
+  the_list.extend(gen() for _ in xrange(target_len - len(the_list)))
+  return the_list
+
+
+def _FilterPerfReport(event_threshold, report):
+  """Filters out entries with `< event_threshold` percent in a perf report."""
+  def filter_dict(m):
+    return {fn_name: pct for fn_name, pct in m.iteritems()
+            if pct >= event_threshold}
+  return {event: filter_dict(m) for event, m in report.iteritems()}
+
+
+class _PerfTable(object):
+  """Generates dicts from a perf table.
+
+  Dicts look like:
+  {'benchmark_name': {'perf_event_name': [LabelData]}}
+  where LabelData is a list of perf dicts, each perf dict coming from the same
+  label.
+  Each perf dict looks like {'function_name': 0.10, ...} (where 0.10 is the
+  percentage of time spent in function_name).
+  """
+
+  def __init__(self, benchmark_names_and_iterations, label_names,
+               read_perf_report, event_threshold=None):
+    """Constructor.
+
+    read_perf_report is a function that takes a label name, benchmark name, and
+    benchmark iteration, and returns a dictionary describing the perf output for
+    that given run.
+    """
+    self.event_threshold = event_threshold
+    self._label_indices = {name: i for i, name in enumerate(label_names)}
+    self.perf_data = {}
+    for label in label_names:
+      for bench_name, bench_iterations in benchmark_names_and_iterations:
+        for i in xrange(bench_iterations):
+          report = read_perf_report(label, bench_name, i)
+          self._ProcessPerfReport(report, label, bench_name, i)
+
+  def _ProcessPerfReport(self, perf_report, label, benchmark_name, iteration):
+    """Add the data from one run to the dict."""
+    perf_of_run = perf_report
+    if self.event_threshold is not None:
+      perf_of_run = _FilterPerfReport(self.event_threshold, perf_report)
+    if benchmark_name not in self.perf_data:
+      self.perf_data[benchmark_name] = {event: [] for event in perf_of_run}
+    ben_data = self.perf_data[benchmark_name]
+    label_index = self._label_indices[label]
+    for event in ben_data:
+      _AppendUntilLengthIs(list, ben_data[event], label_index + 1)
+      data_for_label = ben_data[event][label_index]
+      _AppendUntilLengthIs(dict, data_for_label, iteration + 1)
+      data_for_label[iteration] = perf_of_run[event] if perf_of_run else {}
+
+
+def _GetResultsTableHeader(ben_name, iterations):
+  benchmark_info = ('Benchmark:  {0};  Iterations: {1}'
+                    .format(ben_name, iterations))
+  cell = Cell()
+  cell.string_value = benchmark_info
+  cell.header = True
+  return [[cell]]
+
+
+def _ParseColumn(columns, iteration):
+  new_column = []
+  for column in columns:
+    if column.result.__class__.__name__ != 'RawResult':
+      new_column.append(column)
+    else:
+      new_column.extend(Column(LiteralResult(i), Format(), str(i + 1))
+                        for i in xrange(iteration))
+  return new_column
+
+
+def _GetTables(benchmark_results, columns, table_type):
+  iter_counts = benchmark_results.iter_counts
+  result = benchmark_results.run_keyvals
+  tables = []
+  for bench_name, runs in result.iteritems():
+    iterations = iter_counts[bench_name]
+    ben_table = _GetResultsTableHeader(bench_name, iterations)
+
+    all_runs_empty = all(not dict for label in runs for dict in label)
+    if all_runs_empty:
+      cell = Cell()
+      cell.string_value = ('This benchmark contains no result.'
+                           ' Is the benchmark name valid?')
+      cell_table = [[cell]]
+    else:
+      table = TableGenerator(runs, benchmark_results.label_names).GetTable()
+      parsed_columns = _ParseColumn(columns, iterations)
+      tf = TableFormatter(table, parsed_columns)
+      cell_table = tf.GetCellTable(table_type)
+    tables.append(ben_table)
+    tables.append(cell_table)
+  return tables
+
+
+def _GetPerfTables(benchmark_results, columns, table_type):
+  p_table = _PerfTable(benchmark_results.benchmark_names_and_iterations,
+                       benchmark_results.label_names,
+                       benchmark_results.read_perf_report)
+
+  tables = []
+  for benchmark in p_table.perf_data:
+    iterations = benchmark_results.iter_counts[benchmark]
+    ben_table = _GetResultsTableHeader(benchmark, iterations)
+    tables.append(ben_table)
+    benchmark_data = p_table.perf_data[benchmark]
+    table = []
+    for event in benchmark_data:
+      tg = TableGenerator(benchmark_data[event],
+                          benchmark_results.label_names,
+                          sort=TableGenerator.SORT_BY_VALUES_DESC)
+      table = tg.GetTable(ResultsReport.PERF_ROWS)
+      parsed_columns = _ParseColumn(columns, iterations)
+      tf = TableFormatter(table, parsed_columns)
+      tf.GenerateCellTable(table_type)
+      tf.AddColumnName()
+      tf.AddLabelName()
+      tf.AddHeader(str(event))
+      table = tf.GetCellTable(table_type, headers=False)
+      tables.append(table)
+  return tables
+
+
+class ResultsReport(object):
+  """Class to handle the report format."""
+  MAX_COLOR_CODE = 255
+  PERF_ROWS = 5
+
+  def __init__(self, results):
+    self.benchmark_results = results
+
+  def _GetTablesWithColumns(self, columns, table_type, perf):
+    get_tables = _GetPerfTables if perf else _GetTables
+    return get_tables(self.benchmark_results, columns, table_type)
+
+  def GetFullTables(self, perf=False):
+    columns = [Column(RawResult(), Format()),
+               Column(MinResult(), Format()),
+               Column(MaxResult(), Format()),
+               Column(AmeanResult(), Format()),
+               Column(StdResult(), Format(), 'StdDev'),
+               Column(CoeffVarResult(), CoeffVarFormat(), 'StdDev/Mean'),
+               Column(GmeanRatioResult(), RatioFormat(), 'GmeanSpeedup'),
+               Column(PValueResult(), PValueFormat(), 'p-value')]
+    return self._GetTablesWithColumns(columns, 'full', perf)
+
+  def GetSummaryTables(self, perf=False):
+    columns = [Column(AmeanResult(), Format()),
+               Column(StdResult(), Format(), 'StdDev'),
+               Column(CoeffVarResult(), CoeffVarFormat(), 'StdDev/Mean'),
+               Column(GmeanRatioResult(), RatioFormat(), 'GmeanSpeedup'),
+               Column(PValueResult(), PValueFormat(), 'p-value')]
+    return self._GetTablesWithColumns(columns, 'summary', perf)
+
+
+def _PrintTable(tables, out_to):
+  # tables may be None.
+  if not tables:
+    return ''
+
+  if out_to == 'HTML':
+    out_type = TablePrinter.HTML
+  elif out_to == 'PLAIN':
+    out_type = TablePrinter.PLAIN
+  elif out_to == 'CONSOLE':
+    out_type = TablePrinter.CONSOLE
+  elif out_to == 'TSV':
+    out_type = TablePrinter.TSV
+  elif out_to == 'EMAIL':
+    out_type = TablePrinter.EMAIL
+  else:
+    raise ValueError('Invalid out_to value: %s' % (out_to,))
+
+  printers = (TablePrinter(table, out_type) for table in tables)
+  return ''.join(printer.Print() for printer in printers)
+
+
+class TextResultsReport(ResultsReport):
+  """Class to generate text result report."""
+
+  H1_STR = '==========================================='
+  H2_STR = '-------------------------------------------'
+
+  def __init__(self, results, email=False, experiment=None):
+    super(TextResultsReport, self).__init__(results)
+    self.email = email
+    self.experiment = experiment
+
+  @staticmethod
+  def _MakeTitle(title):
+    header_line = TextResultsReport.H1_STR
+    # '' at the end gives one newline.
+    return '\n'.join([header_line, title, header_line, ''])
+
+  @staticmethod
+  def _MakeSection(title, body):
+    header_line = TextResultsReport.H2_STR
+    # '\n' at the end gives us two newlines.
+    return '\n'.join([header_line, title, header_line, body, '\n'])
+
+  @staticmethod
+  def FromExperiment(experiment, email=False):
+    results = BenchmarkResults.FromExperiment(experiment)
+    return TextResultsReport(results, email, experiment)
+
+  def GetStatusTable(self):
+    """Generate the status table by the tabulator."""
+    table = [['', '']]
+    columns = [Column(LiteralResult(iteration=0), Format(), 'Status'),
+               Column(LiteralResult(iteration=1), Format(), 'Failing Reason')]
+
+    for benchmark_run in self.experiment.benchmark_runs:
+      status = [benchmark_run.name, [benchmark_run.timeline.GetLastEvent(),
+                                     benchmark_run.failure_reason]]
+      table.append(status)
+    cell_table = TableFormatter(table, columns).GetCellTable('status')
+    return [cell_table]
+
+  def GetReport(self):
+    """Generate the report for email and console."""
+    output_type = 'EMAIL' if self.email else 'CONSOLE'
+    experiment = self.experiment
+
+    sections = []
+    if experiment is not None:
+      title_contents = "Results report for '%s'" % (experiment.name, )
+    else:
+      title_contents = 'Results report'
+    sections.append(self._MakeTitle(title_contents))
+
+    summary_table = _PrintTable(self.GetSummaryTables(perf=False), output_type)
+    sections.append(self._MakeSection('Summary', summary_table))
+
+    if experiment is not None:
+      table = _PrintTable(self.GetStatusTable(), output_type)
+      sections.append(self._MakeSection('Benchmark Run Status', table))
+
+    perf_table = _PrintTable(self.GetSummaryTables(perf=True), output_type)
+    if perf_table:
+      sections.append(self._MakeSection('Perf Data', perf_table))
+
+    if experiment is not None:
+      experiment_file = experiment.experiment_file
+      sections.append(self._MakeSection('Experiment File', experiment_file))
+
+      cpu_info = experiment.machine_manager.GetAllCPUInfo(experiment.labels)
+      sections.append(self._MakeSection('CPUInfo', cpu_info))
+
+    return '\n'.join(sections)
+
+
+def _GetHTMLCharts(label_names, test_results):
+  charts = []
+  for item, runs in test_results.iteritems():
+    # Fun fact: label_names is actually *entirely* useless as a param, since we
+    # never add headers. We still need to pass it anyway.
+    table = TableGenerator(runs, label_names).GetTable()
+    columns = [Column(AmeanResult(), Format()), Column(MinResult(), Format()),
+               Column(MaxResult(), Format())]
+    tf = TableFormatter(table, columns)
+    data_table = tf.GetCellTable('full', headers=False)
+
+    for cur_row_data in data_table:
+      test_key = cur_row_data[0].string_value
+      title = '{0}: {1}'.format(item, test_key.replace('/', ''))
+      chart = ColumnChart(title, 300, 200)
+      chart.AddColumn('Label', 'string')
+      chart.AddColumn('Average', 'number')
+      chart.AddColumn('Min', 'number')
+      chart.AddColumn('Max', 'number')
+      chart.AddSeries('Min', 'line', 'black')
+      chart.AddSeries('Max', 'line', 'black')
+      cur_index = 1
+      for label in label_names:
+        chart.AddRow([label,
+                      cur_row_data[cur_index].value,
+                      cur_row_data[cur_index + 1].value,
+                      cur_row_data[cur_index + 2].value])
+        if isinstance(cur_row_data[cur_index].value, str):
+          chart = None
+          break
+        cur_index += 3
+      if chart:
+        charts.append(chart)
+  return charts
+
+
+class HTMLResultsReport(ResultsReport):
+  """Class to generate html result report."""
+
+  def __init__(self, benchmark_results, experiment=None):
+    super(HTMLResultsReport, self).__init__(benchmark_results)
+    self.experiment = experiment
+
+  @staticmethod
+  def FromExperiment(experiment):
+    return HTMLResultsReport(BenchmarkResults.FromExperiment(experiment),
+                             experiment=experiment)
+
+  def GetReport(self):
+    label_names = self.benchmark_results.label_names
+    test_results = self.benchmark_results.run_keyvals
+    charts = _GetHTMLCharts(label_names, test_results)
+    chart_javascript = ''.join(chart.GetJavascript() for chart in charts)
+    chart_divs = ''.join(chart.GetDiv() for chart in charts)
+
+    summary_table = self.GetSummaryTables()
+    full_table = self.GetFullTables()
+    perf_table = self.GetSummaryTables(perf=True)
+    experiment_file = ''
+    if self.experiment is not None:
+      experiment_file = self.experiment.experiment_file
+    # Use kwargs for sanity, and so that testing is a bit easier.
+    return templates.GenerateHTMLPage(perf_table=perf_table,
+                                      chart_js=chart_javascript,
+                                      summary_table=summary_table,
+                                      print_table=_PrintTable,
+                                      chart_divs=chart_divs,
+                                      full_table=full_table,
+                                      experiment_file=experiment_file)
+
+
+def ParseStandardPerfReport(report_data):
+  """Parses the output of `perf report`.
+
+  It'll parse the following:
+  {{garbage}}
+  # Samples: 1234M of event 'foo'
+
+  1.23% command shared_object location function::name
+
+  1.22% command shared_object location function2::name
+
+  # Samples: 999K of event 'bar'
+
+  0.23% command shared_object location function3::name
+  {{etc.}}
+
+  Into:
+    {'foo': {'function::name': 1.23, 'function2::name': 1.22},
+     'bar': {'function3::name': 0.23, etc.}}
+  """
+  # This function fails silently on its if it's handed a string (as opposed to a
+  # list of lines). So, auto-split if we do happen to get a string.
+  if isinstance(report_data, basestring):
+    report_data = report_data.splitlines()
+
+  # Samples: N{K,M,G} of event 'event-name'
+  samples_regex = re.compile(r"#\s+Samples: \d+\S? of event '([^']+)'")
+
+  # We expect lines like:
+  # N.NN%  command  samples  shared_object  [location] symbol
+  #
+  # Note that we're looking at stripped lines, so there is no space at the
+  # start.
+  perf_regex = re.compile(r'^(\d+(?:.\d*)?)%' # N.NN%
+                          r'\s*\d+' # samples count (ignored)
+                          r'\s*\S+' # command (ignored)
+                          r'\s*\S+' # shared_object (ignored)
+                          r'\s*\[.\]' # location (ignored)
+                          r'\s*(\S.+)' # function
+                         )
+
+  stripped_lines = (l.strip() for l in report_data)
+  nonempty_lines = (l for l in stripped_lines if l)
+  # Ignore all lines before we see samples_regex
+  interesting_lines = itertools.dropwhile(lambda x: not samples_regex.match(x),
+                                          nonempty_lines)
+
+  first_sample_line = next(interesting_lines, None)
+  # Went through the entire file without finding a 'samples' header. Quit.
+  if first_sample_line is None:
+    return {}
+
+  sample_name = samples_regex.match(first_sample_line).group(1)
+  current_result = {}
+  results = {sample_name: current_result}
+  for line in interesting_lines:
+    samples_match = samples_regex.match(line)
+    if samples_match:
+      sample_name = samples_match.group(1)
+      current_result = {}
+      results[sample_name] = current_result
+      continue
+
+    match = perf_regex.match(line)
+    if not match:
+      continue
+    percentage_str, func_name = match.groups()
+    try:
+      percentage = float(percentage_str)
+    except ValueError:
+      # Couldn't parse it; try to be "resilient".
+      continue
+    current_result[func_name] = percentage
+  return results
+
+
+def _ReadExperimentPerfReport(results_directory, label_name, benchmark_name,
+                              benchmark_iteration):
+  """Reads a perf report for the given benchmark. Returns {} on failure.
+
+  The result should be a map of maps; it should look like:
+  {perf_event_name: {function_name: pct_time_spent}}, e.g.
+  {'cpu_cycles': {'_malloc': 10.0, '_free': 0.3, ...}}
+  """
+  raw_dir_name = label_name + benchmark_name + str(benchmark_iteration + 1)
+  dir_name = ''.join(c for c in raw_dir_name if c.isalnum())
+  file_name = os.path.join(results_directory, dir_name, 'perf.data.report.0')
+  try:
+    with open(file_name) as in_file:
+      return ParseStandardPerfReport(in_file)
+  except IOError:
+    # Yes, we swallow any IO-related errors.
+    return {}
+
+
+# Split out so that testing (specifically: mocking) is easier
+def _ExperimentToKeyvals(experiment, for_json_report):
+  """Converts an experiment to keyvals."""
+  return OrganizeResults(experiment.benchmark_runs, experiment.labels,
+                         json_report=for_json_report)
+
+
+class BenchmarkResults(object):
+  """The minimum set of fields that any ResultsReport will take."""
+  def __init__(self, label_names, benchmark_names_and_iterations, run_keyvals,
+               read_perf_report=None):
+    if read_perf_report is None:
+      def _NoPerfReport(*_args, **_kwargs):
+        return {}
+      read_perf_report = _NoPerfReport
+
+    self.label_names = label_names
+    self.benchmark_names_and_iterations = benchmark_names_and_iterations
+    self.iter_counts = dict(benchmark_names_and_iterations)
+    self.run_keyvals = run_keyvals
+    self.read_perf_report = read_perf_report
+
+  @staticmethod
+  def FromExperiment(experiment, for_json_report=False):
+    label_names = [label.name for label in experiment.labels]
+    benchmark_names_and_iterations = [(benchmark.name, benchmark.iterations)
+                                      for benchmark in experiment.benchmarks]
+    run_keyvals = _ExperimentToKeyvals(experiment, for_json_report)
+    read_perf_report = functools.partial(_ReadExperimentPerfReport,
+                                         experiment.results_directory)
+    return BenchmarkResults(label_names, benchmark_names_and_iterations,
+                            run_keyvals, read_perf_report)
+
+
+def _GetElemByName(name, from_list):
+  """Gets an element from the given list by its name field.
+
+  Raises an error if it doesn't find exactly one match.
+  """
+  elems = [e for e in from_list if e.name == name]
+  if len(elems) != 1:
+    raise ValueError('Expected 1 item named %s, found %d' % (name, len(elems)))
+  return elems[0]
+
+
+def _Unlist(l):
+  """If l is a list, extracts the first element of l. Otherwise, returns l."""
+  return l[0] if isinstance(l, list) else l
+
+class JSONResultsReport(ResultsReport):
+  """Class that generates JSON reports for experiments."""
+
+  def __init__(self, benchmark_results, date=None, time=None, experiment=None,
+               json_args=None):
+    """Construct a JSONResultsReport.
+
+    json_args is the dict of arguments we pass to json.dumps in GetReport().
+    """
+    super(JSONResultsReport, self).__init__(benchmark_results)
+
+    defaults = TelemetryDefaults()
+    defaults.ReadDefaultsFile()
+    summary_field_defaults = defaults.GetDefault()
+    if summary_field_defaults is None:
+      summary_field_defaults = {}
+    self.summary_field_defaults = summary_field_defaults
+
+    if json_args is None:
+      json_args = {}
+    self.json_args = json_args
+
+    self.experiment = experiment
+    if not date:
+      timestamp = datetime.datetime.strftime(datetime.datetime.now(),
+                                             '%Y-%m-%d %H:%M:%S')
+      date, time = timestamp.split(' ')
+    self.date = date
+    self.time = time
+
+  @staticmethod
+  def FromExperiment(experiment, date=None, time=None, json_args=None):
+    benchmark_results = BenchmarkResults.FromExperiment(experiment,
+                                                        for_json_report=True)
+    return JSONResultsReport(benchmark_results, date, time, experiment,
+                             json_args)
+
+  def GetReportObjectIgnoringExperiment(self):
+    """Gets the JSON report object specifically for the output data.
+
+    Ignores any experiment-specific fields (e.g. board, machine checksum, ...).
+    """
+    benchmark_results = self.benchmark_results
+    label_names = benchmark_results.label_names
+    summary_field_defaults = self.summary_field_defaults
+    final_results = []
+    for test, test_results in benchmark_results.run_keyvals.iteritems():
+      for label_name, label_results in zip(label_names, test_results):
+        for iter_results in label_results:
+          passed = iter_results.get('retval') == 0
+          json_results = {
+              'date': self.date,
+              'time': self.time,
+              'label': label_name,
+              'test_name': test,
+              'pass': passed,
+          }
+          final_results.append(json_results)
+
+          if not passed:
+            continue
+
+          # Get overall results.
+          summary_fields = summary_field_defaults.get(test)
+          if summary_fields is not None:
+            value = []
+            json_results['overall_result'] = value
+            for f in summary_fields:
+              v = iter_results.get(f)
+              if v is None:
+                continue
+              # New telemetry results format: sometimes we get a list of lists
+              # now.
+              v = _Unlist(_Unlist(v))
+              value.append((f, float(v)))
+
+          # Get detailed results.
+          detail_results = {}
+          json_results['detailed_results'] = detail_results
+          for k, v in iter_results.iteritems():
+            if k == 'retval' or k == 'PASS' or k == ['PASS'] or v == 'PASS':
+              continue
+
+            v = _Unlist(v)
+            if 'machine' in k:
+              json_results[k] = v
+            elif v is not None:
+              if isinstance(v, list):
+                detail_results[k] = [float(d) for d in v]
+              else:
+                detail_results[k] = float(v)
+    return final_results
+
+  def GetReportObject(self):
+    """Generate the JSON report, returning it as a python object."""
+    report_list = self.GetReportObjectIgnoringExperiment()
+    if self.experiment is not None:
+      self._AddExperimentSpecificFields(report_list)
+    return report_list
+
+  def _AddExperimentSpecificFields(self, report_list):
+    """Add experiment-specific data to the JSON report."""
+    board = self.experiment.labels[0].board
+    manager = self.experiment.machine_manager
+    for report in report_list:
+      label_name = report['label']
+      label = _GetElemByName(label_name, self.experiment.labels)
+
+      img_path = os.path.realpath(os.path.expanduser(label.chromeos_image))
+      ver, img = ParseChromeosImage(img_path)
+
+      report.update({
+          'board': board,
+          'chromeos_image': img,
+          'chromeos_version': ver,
+          'chrome_version': label.chrome_version,
+          'compiler': label.compiler
+      })
+
+      if not report['pass']:
+        continue
+      if 'machine_checksum' not in report:
+        report['machine_checksum'] = manager.machine_checksum[label_name]
+      if 'machine_string' not in report:
+        report['machine_string'] = manager.machine_checksum_string[label_name]
+
+  def GetReport(self):
+    """Dump the results of self.GetReportObject() to a string as JSON."""
+    # This exists for consistency with the other GetReport methods.
+    # Specifically, they all return strings, so it's a bit awkward if the JSON
+    # results reporter returns an object.
+    return json.dumps(self.GetReportObject(), **self.json_args)
diff --git a/crosperf/results_report_templates.py b/crosperf/results_report_templates.py
new file mode 100644
index 0000000..827649f
--- /dev/null
+++ b/crosperf/results_report_templates.py
@@ -0,0 +1,196 @@
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Text templates used by various parts of results_report."""
+from __future__ import print_function
+
+import cgi
+from string import Template
+
+_TabMenuTemplate = Template("""
+<div class='tab-menu'>
+  <a href="javascript:switchTab('$table_name', 'html')">HTML</a>
+  <a href="javascript:switchTab('$table_name', 'text')">Text</a>
+  <a href="javascript:switchTab('$table_name', 'tsv')">TSV</a>
+</div>""")
+
+def _GetTabMenuHTML(table_name):
+  # N.B. cgi.escape does some very basic HTML escaping. Nothing more.
+  escaped = cgi.escape(table_name, quote=True)
+  return _TabMenuTemplate.substitute(table_name=escaped)
+
+
+_ExperimentFileHTML = """
+<div class='results-section'>
+  <div class='results-section-title'>Experiment File</div>
+  <div class='results-section-content'>
+    <pre>%s</pre>
+</div>
+"""
+
+def _GetExperimentFileHTML(experiment_file_text):
+  if not experiment_file_text:
+    return ''
+  return _ExperimentFileHTML % (cgi.escape(experiment_file_text), )
+
+
+_ResultsSectionHTML = Template("""
+<div class='results-section'>
+  <div class='results-section-title'>$sect_name</div>
+  <div class='results-section-content'>
+    <div id='${short_name}-html'>$html_table</div>
+    <div id='${short_name}-text'><pre>$text_table</pre></div>
+    <div id='${short_name}-tsv'><pre>$tsv_table</pre></div>
+  </div>
+  $tab_menu
+</div>
+""")
+
+def _GetResultsSectionHTML(print_table, table_name, data):
+  first_word = table_name.strip().split()[0]
+  short_name = first_word.lower()
+  return _ResultsSectionHTML.substitute(sect_name=table_name,
+                                        html_table=print_table(data, 'HTML'),
+                                        text_table=print_table(data, 'PLAIN'),
+                                        tsv_table=print_table(data, 'TSV'),
+                                        tab_menu=_GetTabMenuHTML(short_name),
+                                        short_name=short_name)
+
+
+
+_MainHTML = Template("""
+<html>
+<head>
+  <style type="text/css">
+    body {
+      font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
+      font-size: 12px;
+    }
+
+    pre {
+      margin: 10px;
+      color: #039;
+      font-size: 14px;
+    }
+
+    .chart {
+      display: inline;
+    }
+
+    .hidden {
+      visibility: hidden;
+    }
+
+    .results-section {
+      border: 1px solid #b9c9fe;
+      margin: 10px;
+    }
+
+    .results-section-title {
+      background-color: #b9c9fe;
+      color: #039;
+      padding: 7px;
+      font-size: 14px;
+      width: 200px;
+    }
+
+    .results-section-content {
+      margin: 10px;
+      padding: 10px;
+      overflow:auto;
+    }
+
+    #box-table-a {
+      font-size: 12px;
+      width: 480px;
+      text-align: left;
+      border-collapse: collapse;
+    }
+
+    #box-table-a th {
+      padding: 6px;
+      background: #b9c9fe;
+      border-right: 1px solid #fff;
+      border-bottom: 1px solid #fff;
+      color: #039;
+      text-align: center;
+    }
+
+    #box-table-a td {
+      padding: 4px;
+      background: #e8edff;
+      border-bottom: 1px solid #fff;
+      border-right: 1px solid #fff;
+      color: #669;
+      border-top: 1px solid transparent;
+    }
+
+    #box-table-a tr:hover td {
+      background: #d0dafd;
+      color: #339;
+    }
+
+  </style>
+  <script type='text/javascript' src='https://www.google.com/jsapi'></script>
+  <script type='text/javascript'>
+    google.load('visualization', '1', {packages:['corechart']});
+    google.setOnLoadCallback(init);
+    function init() {
+      switchTab('summary', 'html');
+      ${perf_init};
+      switchTab('full', 'html');
+      drawTable();
+    }
+    function drawTable() {
+      ${chart_js};
+    }
+    function switchTab(table, tab) {
+      document.getElementById(table + '-html').style.display = 'none';
+      document.getElementById(table + '-text').style.display = 'none';
+      document.getElementById(table + '-tsv').style.display = 'none';
+      document.getElementById(table + '-' + tab).style.display = 'block';
+    }
+  </script>
+</head>
+
+<body>
+  $summary_table
+  $perf_html
+  <div class='results-section'>
+    <div class='results-section-title'>Charts</div>
+    <div class='results-section-content'>$chart_divs</div>
+  </div>
+  $full_table
+  $experiment_file
+</body>
+</html>
+""")
+
+# It's a bit ugly that we take some HTML things, and some non-HTML things, but I
+# need to balance prettiness with time spent making things pretty.
+def GenerateHTMLPage(perf_table, chart_js, summary_table, print_table,
+                     chart_divs, full_table, experiment_file):
+  """Generates a crosperf HTML page from the given arguments.
+
+  print_table is a two-arg function called like: print_table(t, f)
+    t is one of [summary_table, print_table, full_table]; it's the table we want
+      to format.
+    f is one of ['TSV', 'HTML', 'PLAIN']; it's the type of format we want.
+  """
+  summary_table_html = _GetResultsSectionHTML(print_table, 'Summary Table',
+                                              summary_table)
+  if perf_table:
+    perf_html = _GetResultsSectionHTML(print_table, 'Perf Table', perf_table)
+    perf_init = "switchTab('perf', 'html')"
+  else:
+    perf_html = ''
+    perf_init = ''
+
+  full_table_html = _GetResultsSectionHTML(print_table, 'Full Table',
+                                           full_table)
+  experiment_file_html = _GetExperimentFileHTML(experiment_file)
+  return _MainHTML.substitute(perf_init=perf_init, chart_js=chart_js,
+                              summary_table=summary_table_html,
+                              perf_html=perf_html, chart_divs=chart_divs,
+                              full_table=full_table_html,
+                              experiment_file=experiment_file_html)
diff --git a/crosperf/results_report_unittest.py b/crosperf/results_report_unittest.py
new file mode 100755
index 0000000..ed5c74f
--- /dev/null
+++ b/crosperf/results_report_unittest.py
@@ -0,0 +1,415 @@
+#!/usr/bin/env python2
+#
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Unittest for the results reporter."""
+
+from __future__ import division
+from __future__ import print_function
+
+from StringIO import StringIO
+
+import collections
+import mock
+import os
+import test_flag
+import unittest
+
+from benchmark_run import MockBenchmarkRun
+from cros_utils import logger
+from experiment_factory import ExperimentFactory
+from experiment_file import ExperimentFile
+from machine_manager import MockCrosMachine
+from machine_manager import MockMachineManager
+from results_cache import MockResult
+from results_report import BenchmarkResults
+from results_report import HTMLResultsReport
+from results_report import JSONResultsReport
+from results_report import ParseChromeosImage
+from results_report import ParseStandardPerfReport
+from results_report import TextResultsReport
+
+
+class FreeFunctionsTest(unittest.TestCase):
+  """Tests for any free functions in results_report."""
+
+  def testParseChromeosImage(self):
+    # N.B. the cases with blank versions aren't explicitly supported by
+    # ParseChromeosImage. I'm not sure if they need to be supported, but the
+    # goal of this was to capture existing functionality as much as possible.
+    base_case = '/my/chroot/src/build/images/x86-generic/R01-1.0.date-time' \
+        '/chromiumos_test_image.bin'
+    self.assertEqual(ParseChromeosImage(base_case), ('R01-1.0', base_case))
+
+    dir_base_case = os.path.dirname(base_case)
+    self.assertEqual(ParseChromeosImage(dir_base_case), ('', dir_base_case))
+
+    buildbot_case = '/my/chroot/chroot/tmp/buildbot-build/R02-1.0.date-time' \
+        '/chromiumos_test_image.bin'
+    buildbot_img = buildbot_case.split('/chroot/tmp')[1]
+
+    self.assertEqual(ParseChromeosImage(buildbot_case),
+                     ('R02-1.0', buildbot_img))
+    self.assertEqual(ParseChromeosImage(os.path.dirname(buildbot_case)),
+                     ('', os.path.dirname(buildbot_img)))
+
+    # Ensure we don't act completely insanely given a few mildly insane paths.
+    fun_case = '/chromiumos_test_image.bin'
+    self.assertEqual(ParseChromeosImage(fun_case), ('', fun_case))
+
+    fun_case2 = 'chromiumos_test_image.bin'
+    self.assertEqual(ParseChromeosImage(fun_case2), ('', fun_case2))
+
+
+# There are many ways for this to be done better, but the linter complains
+# about all of them (that I can think of, at least).
+_fake_path_number = [0]
+def FakePath(ext):
+  """Makes a unique path that shouldn't exist on the host system.
+
+  Each call returns a different path, so if said path finds its way into an
+  error message, it may be easier to track it to its source.
+  """
+  _fake_path_number[0] += 1
+  prefix = '/tmp/should/not/exist/%d/' % (_fake_path_number[0], )
+  return os.path.join(prefix, ext)
+
+
+def MakeMockExperiment(compiler='gcc'):
+  """Mocks an experiment using the given compiler."""
+  mock_experiment_file = StringIO("""
+      board: x86-alex
+      remote: 127.0.0.1
+      perf_args: record -a -e cycles
+      benchmark: PageCycler {
+        iterations: 3
+      }
+
+      image1 {
+        chromeos_image: %s
+      }
+
+      image2 {
+        remote: 127.0.0.2
+        chromeos_image: %s
+      }
+      """ % (FakePath('cros_image1.bin'), FakePath('cros_image2.bin')))
+  efile = ExperimentFile(mock_experiment_file)
+  experiment = ExperimentFactory().GetExperiment(efile,
+                                                 FakePath('working_directory'),
+                                                 FakePath('log_dir'))
+  for label in experiment.labels:
+    label.compiler = compiler
+  return experiment
+
+
+def _InjectSuccesses(experiment, how_many, keyvals, for_benchmark=0,
+                     label=None):
+  """Injects successful experiment runs (for each label) into the experiment."""
+  # Defensive copy of keyvals, so if it's modified, we'll know.
+  keyvals = dict(keyvals)
+  num_configs = len(experiment.benchmarks) * len(experiment.labels)
+  num_runs = len(experiment.benchmark_runs) // num_configs
+
+  # TODO(gbiv): Centralize the mocking of these, maybe? (It's also done in
+  # benchmark_run_unittest)
+  bench = experiment.benchmarks[for_benchmark]
+  cache_conditions = []
+  log_level = 'average'
+  share_cache = ''
+  locks_dir = ''
+  log = logger.GetLogger()
+  machine_manager = MockMachineManager(FakePath('chromeos_root'), 0,
+                                       log_level, locks_dir)
+  machine_manager.AddMachine('testing_machine')
+  machine = next(m for m in machine_manager.GetMachines()
+                 if m.name == 'testing_machine')
+  for label in experiment.labels:
+    def MakeSuccessfulRun(n):
+      run = MockBenchmarkRun('mock_success%d' % (n, ), bench, label,
+                             1 + n + num_runs, cache_conditions,
+                             machine_manager, log, log_level, share_cache)
+      mock_result = MockResult(log, label, log_level, machine)
+      mock_result.keyvals = keyvals
+      run.result = mock_result
+      return run
+
+    experiment.benchmark_runs.extend(MakeSuccessfulRun(n)
+                                     for n in xrange(how_many))
+  return experiment
+
+
+class TextResultsReportTest(unittest.TestCase):
+  """Tests that the output of a text report contains the things we pass in.
+
+  At the moment, this doesn't care deeply about the format in which said
+  things are displayed. It just cares that they're present.
+  """
+
+  def _checkReport(self, email):
+    num_success = 2
+    success_keyvals = {'retval': 0, 'machine': 'some bot', 'a_float': 3.96}
+    experiment = _InjectSuccesses(MakeMockExperiment(), num_success,
+                                  success_keyvals)
+    text_report = TextResultsReport.FromExperiment(experiment, email=email) \
+                                   .GetReport()
+    self.assertIn(str(success_keyvals['a_float']), text_report)
+    self.assertIn(success_keyvals['machine'], text_report)
+    self.assertIn(MockCrosMachine.CPUINFO_STRING, text_report)
+    return text_report
+
+
+  def testOutput(self):
+    email_report = self._checkReport(email=True)
+    text_report = self._checkReport(email=False)
+
+    # Ensure that the reports somehow different. Otherwise, having the
+    # distinction is useless.
+    self.assertNotEqual(email_report, text_report)
+
+
+class HTMLResultsReportTest(unittest.TestCase):
+  """Tests that the output of a HTML report contains the things we pass in.
+
+  At the moment, this doesn't care deeply about the format in which said
+  things are displayed. It just cares that they're present.
+  """
+
+  _TestOutput = collections.namedtuple('TestOutput', ['summary_table',
+                                                      'perf_html',
+                                                      'chart_js',
+                                                      'charts',
+                                                      'full_table',
+                                                      'experiment_file'])
+
+  @staticmethod
+  def _GetTestOutput(perf_table, chart_js, summary_table, print_table,
+                     chart_divs, full_table, experiment_file):
+    # N.B. Currently we don't check chart_js; it's just passed through because
+    # cros lint complains otherwise.
+    summary_table = print_table(summary_table, 'HTML')
+    perf_html = print_table(perf_table, 'HTML')
+    full_table = print_table(full_table, 'HTML')
+    return HTMLResultsReportTest._TestOutput(summary_table=summary_table,
+                                             perf_html=perf_html,
+                                             chart_js=chart_js,
+                                             charts=chart_divs,
+                                             full_table=full_table,
+                                             experiment_file=experiment_file)
+
+  def _GetOutput(self, experiment=None, benchmark_results=None):
+    with mock.patch('results_report_templates.GenerateHTMLPage') as standin:
+      if experiment is not None:
+        HTMLResultsReport.FromExperiment(experiment).GetReport()
+      else:
+        HTMLResultsReport(benchmark_results).GetReport()
+      mod_mock = standin
+    self.assertEquals(mod_mock.call_count, 1)
+    # call_args[0] is positional args, call_args[1] is kwargs.
+    self.assertEquals(mod_mock.call_args[0], tuple())
+    fmt_args = mod_mock.call_args[1]
+    return self._GetTestOutput(**fmt_args)
+
+  def testNoSuccessOutput(self):
+    output = self._GetOutput(MakeMockExperiment())
+    self.assertIn('no result', output.summary_table)
+    self.assertIn('no result', output.full_table)
+    self.assertEqual(output.charts, '')
+    self.assertNotEqual(output.experiment_file, '')
+
+  def testSuccessfulOutput(self):
+    num_success = 2
+    success_keyvals = {'retval': 0, 'a_float': 3.96}
+    output = self._GetOutput(_InjectSuccesses(MakeMockExperiment(), num_success,
+                                              success_keyvals))
+
+    self.assertNotIn('no result', output.summary_table)
+    #self.assertIn(success_keyvals['machine'], output.summary_table)
+    self.assertIn('a_float', output.summary_table)
+    self.assertIn(str(success_keyvals['a_float']), output.summary_table)
+    self.assertIn('a_float', output.full_table)
+    # The _ in a_float is filtered out when we're generating HTML.
+    self.assertIn('afloat', output.charts)
+    # And make sure we have our experiment file...
+    self.assertNotEqual(output.experiment_file, '')
+
+  def testBenchmarkResultFailure(self):
+    labels = ['label1']
+    benchmark_names_and_iterations = [('bench1', 1)]
+    benchmark_keyvals = {'bench1': [[]]}
+    results = BenchmarkResults(labels, benchmark_names_and_iterations,
+                               benchmark_keyvals)
+    output = self._GetOutput(benchmark_results=results)
+    self.assertIn('no result', output.summary_table)
+    self.assertEqual(output.charts, '')
+    self.assertEqual(output.experiment_file, '')
+
+  def testBenchmarkResultSuccess(self):
+    labels = ['label1']
+    benchmark_names_and_iterations = [('bench1', 1)]
+    benchmark_keyvals = {'bench1': [[{'retval': 1, 'foo': 2.0}]]}
+    results = BenchmarkResults(labels, benchmark_names_and_iterations,
+                               benchmark_keyvals)
+    output = self._GetOutput(benchmark_results=results)
+    self.assertNotIn('no result', output.summary_table)
+    self.assertIn('bench1', output.summary_table)
+    self.assertIn('bench1', output.full_table)
+    self.assertNotEqual(output.charts, '')
+    self.assertEqual(output.experiment_file, '')
+
+
+class JSONResultsReportTest(unittest.TestCase):
+  """Tests JSONResultsReport."""
+
+  REQUIRED_REPORT_KEYS = ('date', 'time', 'label', 'test_name', 'pass')
+  EXPERIMENT_REPORT_KEYS = ('board', 'chromeos_image', 'chromeos_version',
+                            'chrome_version', 'compiler')
+
+  @staticmethod
+  def _GetRequiredKeys(is_experiment):
+    required_keys = JSONResultsReportTest.REQUIRED_REPORT_KEYS
+    if is_experiment:
+      required_keys += JSONResultsReportTest.EXPERIMENT_REPORT_KEYS
+    return required_keys
+
+  def _CheckRequiredKeys(self, test_output, is_experiment):
+    required_keys = self._GetRequiredKeys(is_experiment)
+    for output in test_output:
+      for key in required_keys:
+        self.assertIn(key, output)
+
+  def testAllFailedJSONReportOutput(self):
+    experiment = MakeMockExperiment()
+    results = JSONResultsReport.FromExperiment(experiment).GetReportObject()
+    self._CheckRequiredKeys(results, is_experiment=True)
+    # Nothing succeeded; we don't send anything more than what's required.
+    required_keys = self._GetRequiredKeys(is_experiment=True)
+    for result in results:
+      self.assertItemsEqual(result.iterkeys(), required_keys)
+
+  def testJSONReportOutputWithSuccesses(self):
+    success_keyvals = {
+        'retval': 0,
+        'a_float': '2.3',
+        'many_floats': [['1.0', '2.0'], ['3.0']],
+        'machine': "i'm a pirate"
+    }
+
+    # 2 is arbitrary.
+    num_success = 2
+    experiment = _InjectSuccesses(MakeMockExperiment(), num_success,
+                                  success_keyvals)
+    results = JSONResultsReport.FromExperiment(experiment).GetReportObject()
+    self._CheckRequiredKeys(results, is_experiment=True)
+
+    num_passes = num_success * len(experiment.labels)
+    non_failures = [r for r in results if r['pass']]
+    self.assertEqual(num_passes, len(non_failures))
+
+    # TODO(gbiv): ...Is the 3.0 *actually* meant to be dropped?
+    expected_detailed = {'a_float': 2.3, 'many_floats': [1.0, 2.0]}
+    for pass_ in non_failures:
+      self.assertIn('detailed_results', pass_)
+      self.assertDictEqual(expected_detailed, pass_['detailed_results'])
+      self.assertIn('machine', pass_)
+      self.assertEqual(success_keyvals['machine'], pass_['machine'])
+
+  def testFailedJSONReportOutputWithoutExperiment(self):
+    labels = ['label1']
+    benchmark_names_and_iterations = [('bench1', 1), ('bench2', 2),
+                                      ('bench3', 1), ('bench4', 0)]
+    benchmark_keyvals = {
+        'bench1': [[{'retval': 1, 'foo': 2.0}]],
+        'bench2': [[{'retval': 1, 'foo': 4.0}, {'retval': -1, 'bar': 999}]],
+        # lack of retval is considered a failure.
+        'bench3': [[{}]],
+        'bench4': [[]]
+    }
+    bench_results = BenchmarkResults(labels, benchmark_names_and_iterations,
+                                     benchmark_keyvals)
+    results = JSONResultsReport(bench_results).GetReportObject()
+    self._CheckRequiredKeys(results, is_experiment=False)
+    self.assertFalse(any(r['pass'] for r in results))
+
+  def testJSONGetReportObeysJSONSettings(self):
+    labels = ['label1']
+    benchmark_names_and_iterations = [('bench1', 1)]
+    # These can be anything, really. So long as they're distinctive.
+    separators = (',\t\n\t', ':\t\n\t')
+    benchmark_keyvals = {'bench1': [[{'retval': 0, 'foo': 2.0}]]}
+    bench_results = BenchmarkResults(labels, benchmark_names_and_iterations,
+                                     benchmark_keyvals)
+    reporter = JSONResultsReport(bench_results,
+                                 json_args={'separators': separators})
+    result_str = reporter.GetReport()
+    self.assertIn(separators[0], result_str)
+    self.assertIn(separators[1], result_str)
+
+  def testSuccessfulJSONReportOutputWithoutExperiment(self):
+    labels = ['label1']
+    benchmark_names_and_iterations = [('bench1', 1), ('bench2', 2)]
+    benchmark_keyvals = {
+        'bench1': [[{'retval': 0, 'foo': 2.0}]],
+        'bench2': [[{'retval': 0, 'foo': 4.0}, {'retval': 0, 'bar': 999}]]
+    }
+    bench_results = BenchmarkResults(labels, benchmark_names_and_iterations,
+                                     benchmark_keyvals)
+    results = JSONResultsReport(bench_results).GetReportObject()
+    self._CheckRequiredKeys(results, is_experiment=False)
+    self.assertTrue(all(r['pass'] for r in results))
+    # Enforce that the results have *some* deterministic order.
+    keyfn = lambda r: (r['test_name'], r['detailed_results'].get('foo', 5.0))
+    sorted_results = sorted(results, key=keyfn)
+    detailed_results = [r['detailed_results'] for r in sorted_results]
+    bench1, bench2_foo, bench2_bar = detailed_results
+    self.assertEqual(bench1['foo'], 2.0)
+    self.assertEqual(bench2_foo['foo'], 4.0)
+    self.assertEqual(bench2_bar['bar'], 999)
+    self.assertNotIn('bar', bench1)
+    self.assertNotIn('bar', bench2_foo)
+    self.assertNotIn('foo', bench2_bar)
+
+
+class PerfReportParserTest(unittest.TestCase):
+  """Tests for the perf report parser in results_report."""
+  @staticmethod
+  def _ReadRealPerfReport():
+    my_dir = os.path.dirname(os.path.realpath(__file__))
+    with open(os.path.join(my_dir, 'perf_files/perf.data.report.0')) as f:
+      return f.read()
+
+  def testParserParsesRealWorldPerfReport(self):
+    report = ParseStandardPerfReport(self._ReadRealPerfReport())
+    self.assertItemsEqual(['cycles', 'instructions'], report.keys())
+
+    # Arbitrarily selected known percentages from the perf report.
+    known_cycles_percentages = {
+        '0xffffffffa4a1f1c9': 0.66,
+        '0x0000115bb7ba9b54': 0.47,
+        '0x0000000000082e08': 0.00,
+        '0xffffffffa4a13e63': 0.00,
+    }
+    report_cycles = report['cycles']
+    self.assertEqual(len(report_cycles), 214)
+    for k, v in known_cycles_percentages.iteritems():
+      self.assertIn(k, report_cycles)
+      self.assertEqual(v, report_cycles[k])
+
+    known_instrunctions_percentages = {
+        '0x0000115bb6c35d7a': 1.65,
+        '0x0000115bb7ba9b54': 0.67,
+        '0x0000000000024f56': 0.00,
+        '0xffffffffa4a0ee03': 0.00,
+    }
+    report_instructions = report['instructions']
+    self.assertEqual(len(report_instructions), 492)
+    for k, v in known_instrunctions_percentages.iteritems():
+      self.assertIn(k, report_instructions)
+      self.assertEqual(v, report_instructions[k])
+
+
+if __name__ == '__main__':
+  test_flag.SetTestMode(True)
+  unittest.main()
diff --git a/crosperf/run_tests.sh b/crosperf/run_tests.sh
new file mode 100755
index 0000000..78a2b9f
--- /dev/null
+++ b/crosperf/run_tests.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+# Author: raymes@google.com (Raymes Khoury)
+
+# Make sure the base toolchain-utils directory is in our PYTHONPATH before
+# trying to run this script.
+export PYTHONPATH+=":.."
+
+num_tests=0
+num_failed=0
+
+for test in $(find -name \*test.py); do
+  echo RUNNING: ${test}
+  ((num_tests++))
+  if ! ./${test} ; then
+    echo
+    echo "*** Test Failed! (${test}) ***"
+    echo
+    ((num_failed++))
+  fi
+done
+
+echo
+
+if [ ${num_failed} -eq 0 ] ; then
+  echo "ALL TESTS PASSED (${num_tests} ran)"
+  exit 0
+fi
+
+echo "${num_failed} TESTS FAILED (out of ${num_tests})"
+exit 1
diff --git a/crosperf/schedv2.py b/crosperf/schedv2.py
new file mode 100644
index 0000000..90fe83a
--- /dev/null
+++ b/crosperf/schedv2.py
@@ -0,0 +1,439 @@
+# Copyright 2015 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Module to optimize the scheduling of benchmark_run tasks."""
+
+
+from __future__ import print_function
+
+import sys
+import test_flag
+import traceback
+
+from collections import defaultdict
+from machine_image_manager import MachineImageManager
+from threading import Lock
+from threading import Thread
+from cros_utils import command_executer
+from cros_utils import logger
+
+
+class DutWorker(Thread):
+  """Working thread for a dut."""
+
+  def __init__(self, dut, sched):
+    super(DutWorker, self).__init__(name='DutWorker-{}'.format(dut.name))
+    self._dut = dut
+    self._sched = sched
+    self._stat_num_br_run = 0
+    self._stat_num_reimage = 0
+    self._stat_annotation = ''
+    self._logger = logger.GetLogger(self._sched.get_experiment().log_dir)
+    self.daemon = True
+    self._terminated = False
+    self._active_br = None
+    # Race condition accessing _active_br between _execute_benchmark_run and
+    # _terminate, so lock it up.
+    self._active_br_lock = Lock()
+
+  def terminate(self):
+    self._terminated = True
+    with self._active_br_lock:
+      if self._active_br is not None:
+        # BenchmarkRun.Terminate() terminates any running testcase via
+        # suite_runner.Terminate and updates timeline.
+        self._active_br.Terminate()
+
+  def run(self):
+    """Do the "run-test->(optionally reimage)->run-test" chore.
+
+        Note - 'br' below means 'benchmark_run'.
+        """
+
+    # Firstly, handle benchmarkruns that have cache hit.
+    br = self._sched.get_cached_benchmark_run()
+    while br:
+      try:
+        self._stat_annotation = 'finishing cached {}'.format(br)
+        br.run()
+      except RuntimeError:
+        traceback.print_exc(file=sys.stdout)
+      br = self._sched.get_cached_benchmark_run()
+
+    # Secondly, handle benchmarkruns that needs to be run on dut.
+    self._setup_dut_label()
+    try:
+      self._logger.LogOutput('{} started.'.format(self))
+      while not self._terminated:
+        br = self._sched.get_benchmark_run(self._dut)
+        if br is None:
+          # No br left for this label. Considering reimaging.
+          label = self._sched.allocate_label(self._dut)
+          if label is None:
+            # No br even for other labels. We are done.
+            self._logger.LogOutput('ImageManager found no label '
+                                   'for dut, stopping working '
+                                   'thread {}.'.format(self))
+            break
+          if self._reimage(label):
+            # Reimage to run other br fails, dut is doomed, stop
+            # this thread.
+            self._logger.LogWarning('Re-image failed, dut '
+                                    'in an unstable state, stopping '
+                                    'working thread {}.'.format(self))
+            break
+        else:
+          # Execute the br.
+          self._execute_benchmark_run(br)
+    finally:
+      self._stat_annotation = 'finished'
+      # Thread finishes. Notify scheduler that I'm done.
+      self._sched.dut_worker_finished(self)
+
+  def _reimage(self, label):
+    """Reimage image to label.
+
+        Args:
+          label: the label to remimage onto dut.
+
+        Returns:
+          0 if successful, otherwise 1.
+        """
+
+    # Termination could happen anywhere, check it.
+    if self._terminated:
+      return 1
+
+    self._logger.LogOutput('Reimaging {} using {}'.format(self, label))
+    self._stat_num_reimage += 1
+    self._stat_annotation = 'reimaging using "{}"'.format(label.name)
+    try:
+      # Note, only 1 reimage at any given time, this is guaranteed in
+      # ImageMachine, so no sync needed below.
+      retval = self._sched.get_experiment().machine_manager.ImageMachine(
+          self._dut,
+          label)
+
+      if retval:
+        return 1
+    except RuntimeError:
+      return 1
+
+    self._dut.label = label
+    return 0
+
+  def _execute_benchmark_run(self, br):
+    """Execute a single benchmark_run.
+
+        Note - this function never throws exceptions.
+        """
+
+    # Termination could happen anywhere, check it.
+    if self._terminated:
+      return
+
+    self._logger.LogOutput('{} started working on {}'.format(self, br))
+    self._stat_num_br_run += 1
+    self._stat_annotation = 'executing {}'.format(br)
+    # benchmark_run.run does not throws, but just play it safe here.
+    try:
+      assert br.owner_thread is None
+      br.owner_thread = self
+      with self._active_br_lock:
+        self._active_br = br
+      br.run()
+    finally:
+      self._sched.get_experiment().BenchmarkRunFinished(br)
+      with self._active_br_lock:
+        self._active_br = None
+
+  def _setup_dut_label(self):
+    """Try to match dut image with a certain experiment label.
+
+        If such match is found, we just skip doing reimage and jump to execute
+        some benchmark_runs.
+        """
+
+    checksum_file = '/usr/local/osimage_checksum_file'
+    try:
+      rv, checksum, _ = command_executer.GetCommandExecuter().\
+          CrosRunCommandWOutput(
+              'cat ' + checksum_file,
+              chromeos_root=self._sched.get_labels(0).chromeos_root,
+              machine=self._dut.name,
+              print_to_console=False)
+      if rv == 0:
+        checksum = checksum.strip()
+        for l in self._sched.get_labels():
+          if l.checksum == checksum:
+            self._logger.LogOutput("Dut '{}' is pre-installed with '{}'".format(
+                self._dut.name, l))
+            self._dut.label = l
+            return
+    except RuntimeError:
+      traceback.print_exc(file=sys.stdout)
+      self._dut.label = None
+
+  def __str__(self):
+    return 'DutWorker[dut="{}", label="{}"]'.format(
+        self._dut.name, self._dut.label.name if self._dut.label else 'None')
+
+  def dut(self):
+    return self._dut
+
+  def status_str(self):
+    """Report thread status."""
+
+    return ('Worker thread "{}", label="{}", benchmark_run={}, '
+            'reimage={}, now {}'.format(
+                self._dut.name, 'None' if self._dut.label is None else
+                self._dut.label.name, self._stat_num_br_run,
+                self._stat_num_reimage, self._stat_annotation))
+
+
+class BenchmarkRunCacheReader(Thread):
+  """The thread to read cache for a list of benchmark_runs.
+
+    On creation, each instance of this class is given a br_list, which is a
+    subset of experiment._benchmark_runs.
+    """
+
+  def __init__(self, schedv2, br_list):
+    super(BenchmarkRunCacheReader, self).__init__()
+    self._schedv2 = schedv2
+    self._br_list = br_list
+    self._logger = self._schedv2.get_logger()
+
+  def run(self):
+    for br in self._br_list:
+      try:
+        br.ReadCache()
+        if br.cache_hit:
+          self._logger.LogOutput('Cache hit - {}'.format(br))
+          with self._schedv2.lock_on('_cached_br_list'):
+            self._schedv2.get_cached_run_list().append(br)
+        else:
+          self._logger.LogOutput('Cache not hit - {}'.format(br))
+      except RuntimeError:
+        traceback.print_exc(file=sys.stderr)
+
+
+class Schedv2(object):
+  """New scheduler for crosperf."""
+
+  def __init__(self, experiment):
+    self._experiment = experiment
+    self._logger = logger.GetLogger(experiment.log_dir)
+
+    # Create shortcuts to nested data structure. "_duts" points to a list of
+    # locked machines. _labels points to a list of all labels.
+    self._duts = self._experiment.machine_manager.GetMachines()
+    self._labels = self._experiment.labels
+
+    # Bookkeeping for synchronization.
+    self._workers_lock = Lock()
+    # pylint: disable=unnecessary-lambda
+    self._lock_map = defaultdict(lambda: Lock())
+
+    # Test mode flag
+    self._in_test_mode = test_flag.GetTestMode()
+
+    # Read benchmarkrun cache.
+    self._read_br_cache()
+
+    # Mapping from label to a list of benchmark_runs.
+    self._label_brl_map = dict((l, []) for l in self._labels)
+    for br in self._experiment.benchmark_runs:
+      assert br.label in self._label_brl_map
+      # Only put no-cache-hit br into the map.
+      if br not in self._cached_br_list:
+        self._label_brl_map[br.label].append(br)
+
+    # Use machine image manager to calculate initial label allocation.
+    self._mim = MachineImageManager(self._labels, self._duts)
+    self._mim.compute_initial_allocation()
+
+    # Create worker thread, 1 per dut.
+    self._active_workers = [DutWorker(dut, self) for dut in self._duts]
+    self._finished_workers = []
+
+    # Termination flag.
+    self._terminated = False
+
+  def run_sched(self):
+    """Start all dut worker threads and return immediately."""
+
+    for w in self._active_workers:
+      w.start()
+
+  def _read_br_cache(self):
+    """Use multi-threading to read cache for all benchmarkruns.
+
+        We do this by firstly creating a few threads, and then assign each
+        thread a segment of all brs. Each thread will check cache status for
+        each br and put those with cache into '_cached_br_list'.
+        """
+
+    self._cached_br_list = []
+    n_benchmarkruns = len(self._experiment.benchmark_runs)
+    if n_benchmarkruns <= 4:
+      # Use single thread to read cache.
+      self._logger.LogOutput(('Starting to read cache status for '
+                              '{} benchmark runs ...').format(n_benchmarkruns))
+      BenchmarkRunCacheReader(self, self._experiment.benchmark_runs).run()
+      return
+
+    # Split benchmarkruns set into segments. Each segment will be handled by
+    # a thread. Note, we use (x+3)/4 to mimic math.ceil(x/4).
+    n_threads = max(2, min(20, (n_benchmarkruns + 3) / 4))
+    self._logger.LogOutput(('Starting {} threads to read cache status for '
+                            '{} benchmark runs ...').format(n_threads,
+                                                            n_benchmarkruns))
+    benchmarkruns_per_thread = (n_benchmarkruns + n_threads - 1) / n_threads
+    benchmarkrun_segments = []
+    for i in range(n_threads - 1):
+      start = i * benchmarkruns_per_thread
+      end = (i + 1) * benchmarkruns_per_thread
+      benchmarkrun_segments.append(self._experiment.benchmark_runs[start:end])
+    benchmarkrun_segments.append(self._experiment.benchmark_runs[
+        (n_threads - 1) * benchmarkruns_per_thread:])
+
+    # Assert: aggregation of benchmarkrun_segments equals to benchmark_runs.
+    assert sum(len(x) for x in benchmarkrun_segments) == n_benchmarkruns
+
+    # Create and start all readers.
+    cache_readers = [
+        BenchmarkRunCacheReader(self, x) for x in benchmarkrun_segments
+    ]
+
+    for x in cache_readers:
+      x.start()
+
+    # Wait till all readers finish.
+    for x in cache_readers:
+      x.join()
+
+    # Summarize.
+    self._logger.LogOutput(
+        'Total {} cache hit out of {} benchmark_runs.'.format(
+            len(self._cached_br_list), n_benchmarkruns))
+
+  def get_cached_run_list(self):
+    return self._cached_br_list
+
+  def get_label_map(self):
+    return self._label_brl_map
+
+  def get_experiment(self):
+    return self._experiment
+
+  def get_labels(self, i=None):
+    if i == None:
+      return self._labels
+    return self._labels[i]
+
+  def get_logger(self):
+    return self._logger
+
+  def get_cached_benchmark_run(self):
+    """Get a benchmark_run with 'cache hit'.
+
+        Returns:
+          The benchmark that has cache hit, if any. Otherwise none.
+        """
+
+    with self.lock_on('_cached_br_list'):
+      if self._cached_br_list:
+        return self._cached_br_list.pop()
+      return None
+
+  def get_benchmark_run(self, dut):
+    """Get a benchmark_run (br) object for a certain dut.
+
+        Args:
+          dut: the dut for which a br is returned.
+
+        Returns:
+          A br with its label matching that of the dut. If no such br could be
+          found, return None (this usually means a reimage is required for the
+          dut).
+        """
+
+    # If terminated, stop providing any br.
+    if self._terminated:
+      return None
+
+    # If dut bears an unrecognized label, return None.
+    if dut.label is None:
+      return None
+
+    # If br list for the dut's label is empty (that means all brs for this
+    # label have been done), return None.
+    with self.lock_on(dut.label):
+      brl = self._label_brl_map[dut.label]
+      if not brl:
+        return None
+      # Return the first br.
+      return brl.pop(0)
+
+  def allocate_label(self, dut):
+    """Allocate a label to a dut.
+
+        The work is delegated to MachineImageManager.
+
+        The dut_worker calling this method is responsible for reimage the dut to
+        this label.
+
+        Args:
+          dut: the new label that is to be reimaged onto the dut.
+
+        Returns:
+          The label or None.
+        """
+
+    if self._terminated:
+      return None
+
+    return self._mim.allocate(dut, self)
+
+  def dut_worker_finished(self, dut_worker):
+    """Notify schedv2 that the dut_worker thread finished.
+
+       Args:
+         dut_worker: the thread that is about to end.
+       """
+
+    self._logger.LogOutput('{} finished.'.format(dut_worker))
+    with self._workers_lock:
+      self._active_workers.remove(dut_worker)
+      self._finished_workers.append(dut_worker)
+
+  def is_complete(self):
+    return len(self._active_workers) == 0
+
+  def lock_on(self, my_object):
+    return self._lock_map[my_object]
+
+  def terminate(self):
+    """Mark flag so we stop providing br/reimages.
+
+        Also terminate each DutWorker, so they refuse to execute br or reimage.
+        """
+
+    self._terminated = True
+    for dut_worker in self._active_workers:
+      dut_worker.terminate()
+
+  def threads_status_as_string(self):
+    """Report the dut worker threads status."""
+
+    status = '{} active threads, {} finished threads.\n'.format(
+        len(self._active_workers), len(self._finished_workers))
+    status += '  Active threads:'
+    for dw in self._active_workers:
+      status += '\n    ' + dw.status_str()
+    if self._finished_workers:
+      status += '\n  Finished threads:'
+      for dw in self._finished_workers:
+        status += '\n    ' + dw.status_str()
+    return status
diff --git a/crosperf/schedv2_unittest.py b/crosperf/schedv2_unittest.py
new file mode 100755
index 0000000..be0fde4
--- /dev/null
+++ b/crosperf/schedv2_unittest.py
@@ -0,0 +1,221 @@
+#!/usr/bin/env python2
+
+# Copyright 2015 Google Inc. All Rights Reserved.
+"""This contains the unit tests for the new Crosperf task scheduler."""
+
+from __future__ import print_function
+
+import mock
+import unittest
+import StringIO
+
+import benchmark_run
+import test_flag
+from experiment_factory import ExperimentFactory
+from experiment_file import ExperimentFile
+from cros_utils.command_executer import CommandExecuter
+from experiment_runner_unittest import FakeLogger
+from schedv2 import Schedv2
+
+EXPERIMENT_FILE_1 = """\
+board: daisy
+remote: chromeos-daisy1.cros chromeos-daisy2.cros
+
+benchmark: kraken {
+  suite: telemetry_Crosperf
+  iterations: 3
+}
+
+image1 {
+  chromeos_image: /chromeos/src/build/images/daisy/latest/cros_image1.bin
+  remote: chromeos-daisy3.cros
+}
+
+image2 {
+  chromeos_image: /chromeos/src/build/imaages/daisy/latest/cros_image2.bin
+  remote: chromeos-daisy4.cros chromeos-daisy5.cros
+}
+"""
+
+EXPERIMENT_FILE_WITH_FORMAT = """\
+board: daisy
+remote: chromeos-daisy1.cros chromeos-daisy2.cros
+
+benchmark: kraken {{
+  suite: telemetry_Crosperf
+  iterations: {kraken_iterations}
+}}
+
+image1 {{
+  chromeos_image: /chromeos/src/build/images/daisy/latest/cros_image1.bin
+  remote: chromeos-daisy3.cros
+}}
+
+image2 {{
+  chromeos_image: /chromeos/src/build/imaages/daisy/latest/cros_image2.bin
+  remote: chromeos-daisy4.cros chromeos-daisy5.cros
+}}
+"""
+
+
+class Schedv2Test(unittest.TestCase):
+  """Class for setting up and running the unit tests."""
+
+  def setUp(self):
+    self.exp = None
+
+  mock_logger = FakeLogger()
+  mock_cmd_exec = mock.Mock(spec=CommandExecuter)
+
+  @mock.patch('benchmark_run.BenchmarkRun', new=benchmark_run.MockBenchmarkRun)
+  def _make_fake_experiment(self, expstr):
+    """Create fake experiment from string.
+
+        Note - we mock out BenchmarkRun in this step.
+        """
+    experiment_file = ExperimentFile(StringIO.StringIO(expstr))
+    experiment = ExperimentFactory().GetExperiment(experiment_file,
+                                                   working_directory='',
+                                                   log_dir='')
+    return experiment
+
+  def test_remote(self):
+    """Test that remotes in labels are aggregated into experiment.remote."""
+
+    self.exp = self._make_fake_experiment(EXPERIMENT_FILE_1)
+    self.exp.log_level = 'verbose'
+    my_schedv2 = Schedv2(self.exp)
+    self.assertFalse(my_schedv2.is_complete())
+    self.assertIn('chromeos-daisy1.cros', self.exp.remote)
+    self.assertIn('chromeos-daisy2.cros', self.exp.remote)
+    self.assertIn('chromeos-daisy3.cros', self.exp.remote)
+    self.assertIn('chromeos-daisy4.cros', self.exp.remote)
+    self.assertIn('chromeos-daisy5.cros', self.exp.remote)
+
+  def test_unreachable_remote(self):
+    """Test unreachable remotes are removed from experiment and label."""
+
+    def MockIsReachable(cm):
+      return (cm.name != 'chromeos-daisy3.cros' and
+              cm.name != 'chromeos-daisy5.cros')
+
+    with mock.patch('machine_manager.MockCrosMachine.IsReachable',
+                    new=MockIsReachable):
+      self.exp = self._make_fake_experiment(EXPERIMENT_FILE_1)
+      self.assertIn('chromeos-daisy1.cros', self.exp.remote)
+      self.assertIn('chromeos-daisy2.cros', self.exp.remote)
+      self.assertNotIn('chromeos-daisy3.cros', self.exp.remote)
+      self.assertIn('chromeos-daisy4.cros', self.exp.remote)
+      self.assertNotIn('chromeos-daisy5.cros', self.exp.remote)
+
+      for l in self.exp.labels:
+        if l.name == 'image2':
+          self.assertNotIn('chromeos-daisy5.cros', l.remote)
+          self.assertIn('chromeos-daisy4.cros', l.remote)
+        elif l.name == 'image1':
+          self.assertNotIn('chromeos-daisy3.cros', l.remote)
+
+  @mock.patch('schedv2.BenchmarkRunCacheReader')
+  def test_BenchmarkRunCacheReader_1(self, reader):
+    """Test benchmarkrun set is split into 5 segments."""
+
+    self.exp = self._make_fake_experiment(EXPERIMENT_FILE_WITH_FORMAT.format(
+        kraken_iterations=9))
+    my_schedv2 = Schedv2(self.exp)
+    self.assertFalse(my_schedv2.is_complete())
+    # We have 9 * 2 == 18 brs, we use 5 threads, each reading 4, 4, 4,
+    # 4, 2 brs respectively.
+    # Assert that BenchmarkRunCacheReader() is called 5 times.
+    self.assertEquals(reader.call_count, 5)
+    # reader.call_args_list[n] - nth call.
+    # reader.call_args_list[n][0] - positioned args in nth call.
+    # reader.call_args_list[n][0][1] - the 2nd arg in nth call,
+    # that is 'br_list' in 'schedv2.BenchmarkRunCacheReader'.
+    self.assertEquals(len(reader.call_args_list[0][0][1]), 4)
+    self.assertEquals(len(reader.call_args_list[1][0][1]), 4)
+    self.assertEquals(len(reader.call_args_list[2][0][1]), 4)
+    self.assertEquals(len(reader.call_args_list[3][0][1]), 4)
+    self.assertEquals(len(reader.call_args_list[4][0][1]), 2)
+
+  @mock.patch('schedv2.BenchmarkRunCacheReader')
+  def test_BenchmarkRunCacheReader_2(self, reader):
+    """Test benchmarkrun set is split into 4 segments."""
+
+    self.exp = self._make_fake_experiment(EXPERIMENT_FILE_WITH_FORMAT.format(
+        kraken_iterations=8))
+    my_schedv2 = Schedv2(self.exp)
+    self.assertFalse(my_schedv2.is_complete())
+    # We have 8 * 2 == 16 brs, we use 4 threads, each reading 4 brs.
+    self.assertEquals(reader.call_count, 4)
+    self.assertEquals(len(reader.call_args_list[0][0][1]), 4)
+    self.assertEquals(len(reader.call_args_list[1][0][1]), 4)
+    self.assertEquals(len(reader.call_args_list[2][0][1]), 4)
+    self.assertEquals(len(reader.call_args_list[3][0][1]), 4)
+
+  @mock.patch('schedv2.BenchmarkRunCacheReader')
+  def test_BenchmarkRunCacheReader_3(self, reader):
+    """Test benchmarkrun set is split into 2 segments."""
+
+    self.exp = self._make_fake_experiment(EXPERIMENT_FILE_WITH_FORMAT.format(
+        kraken_iterations=3))
+    my_schedv2 = Schedv2(self.exp)
+    self.assertFalse(my_schedv2.is_complete())
+    # We have 3 * 2 == 6 brs, we use 2 threads.
+    self.assertEquals(reader.call_count, 2)
+    self.assertEquals(len(reader.call_args_list[0][0][1]), 3)
+    self.assertEquals(len(reader.call_args_list[1][0][1]), 3)
+
+  @mock.patch('schedv2.BenchmarkRunCacheReader')
+  def test_BenchmarkRunCacheReader_4(self, reader):
+    """Test benchmarkrun set is not splitted."""
+
+    self.exp = self._make_fake_experiment(EXPERIMENT_FILE_WITH_FORMAT.format(
+        kraken_iterations=1))
+    my_schedv2 = Schedv2(self.exp)
+    self.assertFalse(my_schedv2.is_complete())
+    # We have 1 * 2 == 2 br, so only 1 instance.
+    self.assertEquals(reader.call_count, 1)
+    self.assertEquals(len(reader.call_args_list[0][0][1]), 2)
+
+  def test_cachehit(self):
+    """Test cache-hit and none-cache-hit brs are properly organized."""
+
+    def MockReadCache(br):
+      br.cache_hit = (br.label.name == 'image2')
+
+    with mock.patch('benchmark_run.MockBenchmarkRun.ReadCache',
+                    new=MockReadCache):
+      # We have 2 * 30 brs, half of which are put into _cached_br_list.
+      self.exp = self._make_fake_experiment(EXPERIMENT_FILE_WITH_FORMAT.format(
+          kraken_iterations=30))
+      my_schedv2 = Schedv2(self.exp)
+      self.assertEquals(len(my_schedv2.get_cached_run_list()), 30)
+      # The non-cache-hit brs are put into Schedv2._label_brl_map.
+      self.assertEquals(
+          reduce(lambda a, x: a + len(x[1]),
+                 my_schedv2.get_label_map().iteritems(),
+                 0), 30)
+
+  def test_nocachehit(self):
+    """Test no cache-hit."""
+
+    def MockReadCache(br):
+      br.cache_hit = False
+
+    with mock.patch('benchmark_run.MockBenchmarkRun.ReadCache',
+                    new=MockReadCache):
+      # We have 2 * 30 brs, none of which are put into _cached_br_list.
+      self.exp = self._make_fake_experiment(EXPERIMENT_FILE_WITH_FORMAT.format(
+          kraken_iterations=30))
+      my_schedv2 = Schedv2(self.exp)
+      self.assertEquals(len(my_schedv2.get_cached_run_list()), 0)
+      # The non-cache-hit brs are put into Schedv2._label_brl_map.
+      self.assertEquals(
+          reduce(lambda a, x: a + len(x[1]),
+                 my_schedv2.get_label_map().iteritems(),
+                 0), 60)
+
+
+if __name__ == '__main__':
+  test_flag.SetTestMode(True)
+  unittest.main()
diff --git a/crosperf/settings.py b/crosperf/settings.py
new file mode 100644
index 0000000..8d5a25f
--- /dev/null
+++ b/crosperf/settings.py
@@ -0,0 +1,81 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Module to get the settings from experiment file."""
+
+from __future__ import print_function
+
+from cros_utils import logger
+from cros_utils import misc
+from download_images import ImageDownloader
+
+
+class Settings(object):
+  """Class representing settings (a set of fields) from an experiment file."""
+
+  def __init__(self, name, settings_type):
+    self.name = name
+    self.settings_type = settings_type
+    self.fields = {}
+    self.parent = None
+
+  def SetParentSettings(self, settings):
+    """Set the parent settings which these settings can inherit from."""
+    self.parent = settings
+
+  def AddField(self, field):
+    name = field.name
+    if name in self.fields:
+      raise SyntaxError('Field %s defined previously.' % name)
+    self.fields[name] = field
+
+  def SetField(self, name, value, append=False):
+    if name not in self.fields:
+      raise SyntaxError("'%s' is not a valid field in '%s' settings" %
+                        (name, self.settings_type))
+    if append:
+      self.fields[name].Append(value)
+    else:
+      self.fields[name].Set(value)
+
+  def GetField(self, name):
+    """Get the value of a field with a given name."""
+    if name not in self.fields:
+      raise SyntaxError("Field '%s' not a valid field in '%s' settings." %
+                        (name, self.name))
+    field = self.fields[name]
+    if not field.assigned and field.required:
+      raise SyntaxError("Required field '%s' not defined in '%s' settings." %
+                        (name, self.name))
+    return self.fields[name].Get()
+
+  def Inherit(self):
+    """Inherit any unset values from the parent settings."""
+    for name in self.fields:
+      if (not self.fields[name].assigned and self.parent and
+          name in self.parent.fields and self.parent.fields[name].assigned):
+        self.fields[name].Set(self.parent.GetField(name), parse=False)
+
+  def Override(self, settings):
+    """Override settings with settings from a different object."""
+    for name in settings.fields:
+      if name in self.fields and settings.fields[name].assigned:
+        self.fields[name].Set(settings.GetField(name), parse=False)
+
+  def Validate(self):
+    """Check that all required fields have been set."""
+    for name in self.fields:
+      if not self.fields[name].assigned and self.fields[name].required:
+        raise SyntaxError('Field %s is invalid.' % name)
+
+  def GetXbuddyPath(self, path_str, autotest_path, board, chromeos_root,
+                    log_level):
+    prefix = 'remote'
+    l = logger.GetLogger()
+    if (path_str.find('trybot') < 0 and path_str.find('toolchain') < 0 and
+        path_str.find(board) < 0):
+      xbuddy_path = '%s/%s/%s' % (prefix, board, path_str)
+    else:
+      xbuddy_path = '%s/%s' % (prefix, path_str)
+    image_downloader = ImageDownloader(l, log_level)
+    image_and_autotest_path = image_downloader.Run(
+        misc.CanonicalizePath(chromeos_root), xbuddy_path, autotest_path)
+    return image_and_autotest_path
diff --git a/crosperf/settings_factory.py b/crosperf/settings_factory.py
new file mode 100644
index 0000000..e42d82a
--- /dev/null
+++ b/crosperf/settings_factory.py
@@ -0,0 +1,304 @@
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Setting files for global, benchmark and labels."""
+
+from __future__ import print_function
+
+from field import BooleanField
+from field import IntegerField
+from field import ListField
+from field import TextField
+from settings import Settings
+
+
+class BenchmarkSettings(Settings):
+  """Settings used to configure individual benchmarks."""
+
+  def __init__(self, name):
+    super(BenchmarkSettings, self).__init__(name, 'benchmark')
+    self.AddField(
+        TextField(
+            'test_name',
+            description='The name of the test to run. '
+            'Defaults to the name of the benchmark.'))
+    self.AddField(
+        TextField(
+            'test_args', description='Arguments to be passed to the '
+            'test.'))
+    self.AddField(
+        IntegerField(
+            'iterations',
+            default=1,
+            description='Number of iterations to run the '
+            'test.'))
+    self.AddField(
+        TextField(
+            'suite', default='', description='The type of the benchmark.'))
+    self.AddField(
+        IntegerField(
+            'retries',
+            default=0,
+            description='Number of times to retry a '
+            'benchmark run.'))
+    self.AddField(
+        BooleanField(
+            'run_local',
+            description='Run benchmark harness on the DUT. '
+            'Currently only compatible with the suite: '
+            'telemetry_Crosperf.',
+            required=False,
+            default=True))
+
+
+class LabelSettings(Settings):
+  """Settings for each label."""
+
+  def __init__(self, name):
+    super(LabelSettings, self).__init__(name, 'label')
+    self.AddField(
+        TextField(
+            'chromeos_image',
+            required=False,
+            description='The path to the image to run tests '
+            'on, for local/custom-built images. See the '
+            "'build' option for official or trybot images."))
+    self.AddField(
+        TextField(
+            'autotest_path',
+            required=False,
+            description='Autotest directory path relative to chroot which '
+            'has autotest files for the image to run tests requiring autotest files'
+        ))
+    self.AddField(
+        TextField(
+            'chromeos_root',
+            description='The path to a chromeos checkout which '
+            'contains a src/scripts directory. Defaults to '
+            'the chromeos checkout which contains the '
+            'chromeos_image.'))
+    self.AddField(
+        ListField(
+            'remote',
+            description='A comma-separated list of IPs of chromeos'
+            'devices to run experiments on.'))
+    self.AddField(
+        TextField(
+            'image_args',
+            required=False,
+            default='',
+            description='Extra arguments to pass to '
+            'image_chromeos.py.'))
+    self.AddField(
+        TextField(
+            'cache_dir',
+            default='',
+            description='The cache dir for this image.'))
+    self.AddField(
+        TextField(
+            'compiler',
+            default='gcc',
+            description='The compiler used to build the '
+            'ChromeOS image (gcc or llvm).'))
+    self.AddField(
+        TextField(
+            'chrome_src',
+            description='The path to the source of chrome. '
+            'This is used to run telemetry benchmarks. '
+            'The default one is the src inside chroot.',
+            required=False,
+            default=''))
+    self.AddField(
+        TextField(
+            'build',
+            description='The xbuddy specification for an '
+            'official or trybot image to use for tests. '
+            "'/remote' is assumed, and the board is given "
+            "elsewhere, so omit the '/remote/<board>/' xbuddy "
+            'prefix.',
+            required=False,
+            default=''))
+
+
+class GlobalSettings(Settings):
+  """Settings that apply per-experiment."""
+
+  def __init__(self, name):
+    super(GlobalSettings, self).__init__(name, 'global')
+    self.AddField(
+        TextField(
+            'name',
+            description='The name of the experiment. Just an '
+            'identifier.'))
+    self.AddField(
+        TextField(
+            'board',
+            description='The target board for running '
+            'experiments on, e.g. x86-alex.'))
+    self.AddField(
+        ListField(
+            'remote',
+            description='A comma-separated list of IPs of '
+            'chromeos devices to run experiments on.'))
+    self.AddField(
+        BooleanField(
+            'rerun_if_failed',
+            description='Whether to re-run failed test runs '
+            'or not.',
+            default=False))
+    self.AddField(
+        BooleanField(
+            'rm_chroot_tmp',
+            default=False,
+            description='Whether to remove the test_that '
+            'result in the chroot.'))
+    self.AddField(
+        ListField(
+            'email',
+            description='Space-separated list of email '
+            'addresses to send email to.'))
+    self.AddField(
+        BooleanField(
+            'rerun',
+            description='Whether to ignore the cache and '
+            'for tests to be re-run.',
+            default=False))
+    self.AddField(
+        BooleanField(
+            'same_specs',
+            default=True,
+            description='Ensure cached runs are run on the '
+            'same kind of devices which are specified as a '
+            'remote.'))
+    self.AddField(
+        BooleanField(
+            'same_machine',
+            default=False,
+            description='Ensure cached runs are run on the '
+            'same remote.'))
+    self.AddField(
+        BooleanField(
+            'use_file_locks',
+            default=False,
+            description='Whether to use the file locks '
+            'mechanism (deprecated) instead of the AFE '
+            'server lock mechanism.'))
+    self.AddField(
+        IntegerField(
+            'iterations',
+            default=1,
+            description='Number of iterations to run all '
+            'tests.'))
+    self.AddField(
+        TextField(
+            'chromeos_root',
+            description='The path to a chromeos checkout which '
+            'contains a src/scripts directory. Defaults to '
+            'the chromeos checkout which contains the '
+            'chromeos_image.'))
+    self.AddField(
+        TextField(
+            'logging_level',
+            default='average',
+            description='The level of logging desired. '
+            "Options are 'quiet', 'average', and 'verbose'."))
+    self.AddField(
+        IntegerField(
+            'acquire_timeout',
+            default=0,
+            description='Number of seconds to wait for '
+            'machine before exit if all the machines in '
+            'the experiment file are busy. Default is 0.'))
+    self.AddField(
+        TextField(
+            'perf_args',
+            default='',
+            description='The optional profile command. It '
+            'enables perf commands to record perforamance '
+            'related counters. It must start with perf '
+            'command record or stat followed by arguments.'))
+    self.AddField(
+        TextField(
+            'cache_dir',
+            default='',
+            description='The abs path of cache dir. '
+            'Default is /home/$(whoami)/cros_scratch.'))
+    self.AddField(
+        BooleanField(
+            'cache_only',
+            default=False,
+            description='Whether to use only cached '
+            'results (do not rerun failed tests).'))
+    self.AddField(
+        BooleanField(
+            'no_email',
+            default=False,
+            description='Whether to disable the email to '
+            'user after crosperf finishes.'))
+    self.AddField(
+        BooleanField(
+            'json_report',
+            default=False,
+            description='Whether to generate a json version '
+            'of the report, for archiving.'))
+    self.AddField(
+        BooleanField(
+            'show_all_results',
+            default=False,
+            description='When running Telemetry tests, '
+            'whether to all the results, instead of just '
+            'the default (summary) results.'))
+    self.AddField(
+        TextField(
+            'share_cache',
+            default='',
+            description='Path to alternate cache whose data '
+            'you want to use. It accepts multiple directories '
+            'separated by a ",".'))
+    self.AddField(
+        TextField(
+            'results_dir', default='', description='The results dir.'))
+    self.AddField(
+        TextField(
+            'locks_dir',
+            default='',
+            description='An alternate directory to use for '
+            'storing/checking machine locks. Using this field '
+            'automatically sets use_file_locks to True.\n'
+            'WARNING: If you use your own locks directory, '
+            'there is no guarantee that someone else might not '
+            'hold a lock on the same machine in a different '
+            'locks directory.'))
+    self.AddField(
+        TextField(
+            'chrome_src',
+            description='The path to the source of chrome. '
+            'This is used to run telemetry benchmarks. '
+            'The default one is the src inside chroot.',
+            required=False,
+            default=''))
+    self.AddField(
+        IntegerField(
+            'retries',
+            default=0,
+            description='Number of times to retry a '
+            'benchmark run.'))
+
+
+class SettingsFactory(object):
+  """Factory class for building different types of Settings objects.
+
+  This factory is currently hardcoded to produce settings for ChromeOS
+  experiment files. The idea is that in the future, other types
+  of settings could be produced.
+  """
+
+  def GetSettings(self, name, settings_type):
+    if settings_type == 'label' or not settings_type:
+      return LabelSettings(name)
+    if settings_type == 'global':
+      return GlobalSettings(name)
+    if settings_type == 'benchmark':
+      return BenchmarkSettings(name)
+
+    raise TypeError("Invalid settings type: '%s'." % settings_type)
diff --git a/crosperf/settings_factory_unittest.py b/crosperf/settings_factory_unittest.py
new file mode 100755
index 0000000..127bfd3
--- /dev/null
+++ b/crosperf/settings_factory_unittest.py
@@ -0,0 +1,97 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc. All Rights Reserved.
+"""Unittest for crosperf."""
+
+from __future__ import print_function
+
+import unittest
+
+import settings_factory
+
+
+class BenchmarkSettingsTest(unittest.TestCase):
+  """Class to test benchmark settings."""
+
+  def test_init(self):
+    res = settings_factory.BenchmarkSettings('b_settings')
+    self.assertIsNotNone(res)
+    self.assertEqual(len(res.fields), 6)
+    self.assertEqual(res.GetField('test_name'), '')
+    self.assertEqual(res.GetField('test_args'), '')
+    self.assertEqual(res.GetField('iterations'), 1)
+    self.assertEqual(res.GetField('suite'), '')
+
+
+class LabelSettingsTest(unittest.TestCase):
+  """Class to test label settings."""
+
+  def test_init(self):
+    res = settings_factory.LabelSettings('l_settings')
+    self.assertIsNotNone(res)
+    self.assertEqual(len(res.fields), 9)
+    self.assertEqual(res.GetField('chromeos_image'), '')
+    self.assertEqual(res.GetField('autotest_path'), '')
+    self.assertEqual(res.GetField('chromeos_root'), '')
+    self.assertEqual(res.GetField('remote'), None)
+    self.assertEqual(res.GetField('image_args'), '')
+    self.assertEqual(res.GetField('cache_dir'), '')
+    self.assertEqual(res.GetField('chrome_src'), '')
+    self.assertEqual(res.GetField('build'), '')
+
+
+class GlobalSettingsTest(unittest.TestCase):
+  """Class to test global settings."""
+
+  def test_init(self):
+    res = settings_factory.GlobalSettings('g_settings')
+    self.assertIsNotNone(res)
+    self.assertEqual(len(res.fields), 25)
+    self.assertEqual(res.GetField('name'), '')
+    self.assertEqual(res.GetField('board'), '')
+    self.assertEqual(res.GetField('remote'), None)
+    self.assertEqual(res.GetField('rerun_if_failed'), False)
+    self.assertEqual(res.GetField('rm_chroot_tmp'), False)
+    self.assertEqual(res.GetField('email'), None)
+    self.assertEqual(res.GetField('rerun'), False)
+    self.assertEqual(res.GetField('same_specs'), True)
+    self.assertEqual(res.GetField('same_machine'), False)
+    self.assertEqual(res.GetField('iterations'), 1)
+    self.assertEqual(res.GetField('chromeos_root'), '')
+    self.assertEqual(res.GetField('logging_level'), 'average')
+    self.assertEqual(res.GetField('acquire_timeout'), 0)
+    self.assertEqual(res.GetField('perf_args'), '')
+    self.assertEqual(res.GetField('cache_dir'), '')
+    self.assertEqual(res.GetField('cache_only'), False)
+    self.assertEqual(res.GetField('no_email'), False)
+    self.assertEqual(res.GetField('show_all_results'), False)
+    self.assertEqual(res.GetField('share_cache'), '')
+    self.assertEqual(res.GetField('results_dir'), '')
+    self.assertEqual(res.GetField('chrome_src'), '')
+
+
+class SettingsFactoryTest(unittest.TestCase):
+  """Class to test SettingsFactory."""
+
+  def test_get_settings(self):
+    self.assertRaises(Exception, settings_factory.SettingsFactory.GetSettings,
+                      'global', 'bad_type')
+
+    l_settings = settings_factory.SettingsFactory().GetSettings('label',
+                                                                'label')
+    self.assertIsInstance(l_settings, settings_factory.LabelSettings)
+    self.assertEqual(len(l_settings.fields), 9)
+
+    b_settings = settings_factory.SettingsFactory().GetSettings('benchmark',
+                                                                'benchmark')
+    self.assertIsInstance(b_settings, settings_factory.BenchmarkSettings)
+    self.assertEqual(len(b_settings.fields), 6)
+
+    g_settings = settings_factory.SettingsFactory().GetSettings('global',
+                                                                'global')
+    self.assertIsInstance(g_settings, settings_factory.GlobalSettings)
+    self.assertEqual(len(g_settings.fields), 25)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/settings_unittest.py b/crosperf/settings_unittest.py
new file mode 100755
index 0000000..f1062f0
--- /dev/null
+++ b/crosperf/settings_unittest.py
@@ -0,0 +1,229 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc.  All Rights Reserved.
+"""unittest for settings."""
+
+from __future__ import print_function
+
+import mock
+import unittest
+
+import settings
+import settings_factory
+
+from field import IntegerField
+from field import ListField
+import download_images
+
+from cros_utils import logger
+
+
+class TestSettings(unittest.TestCase):
+  """setting test class."""
+
+  def setUp(self):
+    self.settings = settings.Settings('global_name', 'global')
+
+  def test_init(self):
+    self.assertEqual(self.settings.name, 'global_name')
+    self.assertEqual(self.settings.settings_type, 'global')
+    self.assertIsNone(self.settings.parent)
+
+  def test_set_parent_settings(self):
+    self.assertIsNone(self.settings.parent)
+    settings_parent = {'fake_parent_entry': 0}
+    self.settings.SetParentSettings(settings_parent)
+    self.assertIsNotNone(self.settings.parent)
+    self.assertEqual(type(self.settings.parent), dict)
+    self.assertEqual(self.settings.parent, settings_parent)
+
+  def test_add_field(self):
+    self.assertEqual(self.settings.fields, {})
+    self.settings.AddField(
+        IntegerField(
+            'iterations',
+            default=1,
+            required=False,
+            description='Number of iterations to '
+            'run the test.'))
+    self.assertEqual(len(self.settings.fields), 1)
+    # Adding the same field twice raises an exception.
+    self.assertRaises(
+        Exception,
+        self.settings.AddField, (IntegerField(
+            'iterations',
+            default=1,
+            required=False,
+            description='Number of iterations to run '
+            'the test.')))
+    res = self.settings.fields['iterations']
+    self.assertIsInstance(res, IntegerField)
+    self.assertEqual(res.Get(), 1)
+
+  def test_set_field(self):
+    self.assertEqual(self.settings.fields, {})
+    self.settings.AddField(
+        IntegerField(
+            'iterations',
+            default=1,
+            required=False,
+            description='Number of iterations to run the '
+            'test.'))
+    res = self.settings.fields['iterations']
+    self.assertEqual(res.Get(), 1)
+
+    self.settings.SetField('iterations', 10)
+    res = self.settings.fields['iterations']
+    self.assertEqual(res.Get(), 10)
+
+    # Setting a field that's not there raises an exception.
+    self.assertRaises(Exception, self.settings.SetField, 'remote',
+                      'lumpy1.cros')
+
+    self.settings.AddField(
+        ListField(
+            'remote',
+            default=[],
+            description="A comma-separated list of ip's of "
+            'chromeos devices to run '
+            'experiments on.'))
+    self.assertEqual(type(self.settings.fields), dict)
+    self.assertEqual(len(self.settings.fields), 2)
+    res = self.settings.fields['remote']
+    self.assertEqual(res.Get(), [])
+    self.settings.SetField('remote', 'lumpy1.cros', append=True)
+    self.settings.SetField('remote', 'lumpy2.cros', append=True)
+    res = self.settings.fields['remote']
+    self.assertEqual(res.Get(), ['lumpy1.cros', 'lumpy2.cros'])
+
+  def test_get_field(self):
+    # Getting a field that's not there raises an exception.
+    self.assertRaises(Exception, self.settings.GetField, 'iterations')
+
+    # Getting a required field that hasn't been assigned raises an exception.
+    self.settings.AddField(
+        IntegerField(
+            'iterations',
+            required=True,
+            description='Number of iterations to '
+            'run the test.'))
+    self.assertIsNotNone(self.settings.fields['iterations'])
+    self.assertRaises(Exception, self.settings.GetField, 'iterations')
+
+    # Set the value, then get it.
+    self.settings.SetField('iterations', 5)
+    res = self.settings.GetField('iterations')
+    self.assertEqual(res, 5)
+
+  def test_inherit(self):
+    parent_settings = settings_factory.SettingsFactory().GetSettings('global',
+                                                                     'global')
+    label_settings = settings_factory.SettingsFactory().GetSettings('label',
+                                                                    'label')
+    self.assertEqual(parent_settings.GetField('chromeos_root'), '')
+    self.assertEqual(label_settings.GetField('chromeos_root'), '')
+    self.assertIsNone(label_settings.parent)
+
+    parent_settings.SetField('chromeos_root', '/tmp/chromeos')
+    label_settings.SetParentSettings(parent_settings)
+    self.assertEqual(parent_settings.GetField('chromeos_root'), '/tmp/chromeos')
+    self.assertEqual(label_settings.GetField('chromeos_root'), '')
+    label_settings.Inherit()
+    self.assertEqual(label_settings.GetField('chromeos_root'), '/tmp/chromeos')
+
+  def test_override(self):
+    self.settings.AddField(
+        ListField(
+            'email',
+            default=[],
+            description='Space-seperated'
+            'list of email addresses to send '
+            'email to.'))
+
+    global_settings = settings_factory.SettingsFactory().GetSettings('global',
+                                                                     'global')
+
+    global_settings.SetField('email', 'john.doe@google.com', append=True)
+    global_settings.SetField('email', 'jane.smith@google.com', append=True)
+
+    res = self.settings.GetField('email')
+    self.assertEqual(res, [])
+
+    self.settings.Override(global_settings)
+    res = self.settings.GetField('email')
+    self.assertEqual(res, ['john.doe@google.com', 'jane.smith@google.com'])
+
+  def test_validate(self):
+
+    self.settings.AddField(
+        IntegerField(
+            'iterations',
+            required=True,
+            description='Number of iterations '
+            'to run the test.'))
+    self.settings.AddField(
+        ListField(
+            'remote',
+            default=[],
+            required=True,
+            description='A comma-separated list '
+            "of ip's of chromeos "
+            'devices to run experiments on.'))
+    self.settings.AddField(
+        ListField(
+            'email',
+            default=[],
+            description='Space-seperated'
+            'list of email addresses to '
+            'send email to.'))
+
+    # 'required' fields have not been assigned; should raise an exception.
+    self.assertRaises(Exception, self.settings.Validate)
+    self.settings.SetField('iterations', 2)
+    self.settings.SetField('remote', 'x86-alex.cros', append=True)
+    # Should run without exception now.
+    self.settings.Validate()
+
+  @mock.patch.object(logger, 'GetLogger')
+  @mock.patch.object(download_images.ImageDownloader, 'Run')
+  @mock.patch.object(download_images, 'ImageDownloader')
+  def test_get_xbuddy_path(self, mock_downloader, mock_run, mock_logger):
+
+    mock_run.return_value = 'fake_xbuddy_translation'
+    mock_downloader.Run = mock_run
+    board = 'lumpy'
+    chromeos_root = '/tmp/chromeos'
+    log_level = 'average'
+
+    trybot_str = 'trybot-lumpy-paladin/R34-5417.0.0-b1506'
+    official_str = 'lumpy-release/R34-5417.0.0'
+    xbuddy_str = 'latest-dev'
+    autotest_path = ''
+
+    self.settings.GetXbuddyPath(trybot_str, autotest_path, board, chromeos_root,
+                                log_level)
+    self.assertEqual(mock_run.call_count, 1)
+    self.assertEqual(mock_run.call_args_list[0][0],
+                     ('/tmp/chromeos',
+                      'remote/trybot-lumpy-paladin/R34-5417.0.0-b1506', ''))
+
+    mock_run.reset_mock()
+    self.settings.GetXbuddyPath(official_str, autotest_path, board,
+                                chromeos_root, log_level)
+    self.assertEqual(mock_run.call_count, 1)
+    self.assertEqual(mock_run.call_args_list[0][0],
+                     ('/tmp/chromeos', 'remote/lumpy-release/R34-5417.0.0', ''))
+
+    mock_run.reset_mock()
+    self.settings.GetXbuddyPath(xbuddy_str, autotest_path, board, chromeos_root,
+                                log_level)
+    self.assertEqual(mock_run.call_count, 1)
+    self.assertEqual(mock_run.call_args_list[0][0],
+                     ('/tmp/chromeos', 'remote/lumpy/latest-dev', ''))
+
+    if mock_logger:
+      return
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/suite_runner.py b/crosperf/suite_runner.py
new file mode 100644
index 0000000..678113a
--- /dev/null
+++ b/crosperf/suite_runner.py
@@ -0,0 +1,297 @@
+# Copyright (c) 2013~2015 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""SuiteRunner defines the interface from crosperf to test script."""
+
+from __future__ import print_function
+
+import os
+import time
+import shlex
+
+from cros_utils import command_executer
+import test_flag
+
+TEST_THAT_PATH = '/usr/bin/test_that'
+AUTOTEST_DIR = '~/trunk/src/third_party/autotest/files'
+CHROME_MOUNT_DIR = '/tmp/chrome_root'
+
+
+def GetProfilerArgs(profiler_args):
+  # Remove "--" from in front of profiler args.
+  args_list = shlex.split(profiler_args)
+  new_list = []
+  for arg in args_list:
+    if arg[0:2] == '--':
+      arg = arg[2:]
+    new_list.append(arg)
+  args_list = new_list
+
+  # Remove "perf_options=" from middle of profiler args.
+  new_list = []
+  for arg in args_list:
+    idx = arg.find('perf_options=')
+    if idx != -1:
+      prefix = arg[0:idx]
+      suffix = arg[idx + len('perf_options=') + 1:-1]
+      new_arg = prefix + "'" + suffix + "'"
+      new_list.append(new_arg)
+    else:
+      new_list.append(arg)
+  args_list = new_list
+
+  return ' '.join(args_list)
+
+
+class SuiteRunner(object):
+  """This defines the interface from crosperf to test script."""
+
+  def __init__(self,
+               logger_to_use=None,
+               log_level='verbose',
+               cmd_exec=None,
+               cmd_term=None):
+    self.logger = logger_to_use
+    self.log_level = log_level
+    self._ce = cmd_exec or command_executer.GetCommandExecuter(
+        self.logger, log_level=self.log_level)
+    self._ct = cmd_term or command_executer.CommandTerminator()
+
+  def Run(self, machine, label, benchmark, test_args, profiler_args):
+    for i in range(0, benchmark.retries + 1):
+      self.PinGovernorExecutionFrequencies(machine, label.chromeos_root)
+      if benchmark.suite == 'telemetry':
+        self.DecreaseWaitTime(machine, label.chromeos_root)
+        ret_tup = self.Telemetry_Run(machine, label, benchmark, profiler_args)
+      elif benchmark.suite == 'telemetry_Crosperf':
+        self.DecreaseWaitTime(machine, label.chromeos_root)
+        ret_tup = self.Telemetry_Crosperf_Run(machine, label, benchmark,
+                                              test_args, profiler_args)
+      else:
+        ret_tup = self.Test_That_Run(machine, label, benchmark, test_args,
+                                     profiler_args)
+      if ret_tup[0] != 0:
+        self.logger.LogOutput('benchmark %s failed. Retries left: %s' %
+                              (benchmark.name, benchmark.retries - i))
+      elif i > 0:
+        self.logger.LogOutput('benchmark %s succeded after %s retries' %
+                              (benchmark.name, i))
+        break
+      else:
+        self.logger.LogOutput('benchmark %s succeded on first try' %
+                              benchmark.name)
+        break
+    return ret_tup
+
+  def PinGovernorExecutionFrequencies(self, machine_name, chromeos_root):
+    """Set min and max frequencies to max static frequency."""
+    # pyformat: disable
+    set_cpu_freq = (
+        'set -e && '
+        'for f in /sys/devices/system/cpu/cpu*/cpufreq; do '
+        'cd $f; '
+        'val=0; '
+        'if [[ -e scaling_available_frequencies ]]; then '
+        # pylint: disable=line-too-long
+        '  val=`cat scaling_available_frequencies | tr " " "\\n" | sort -n -b -r`; '
+        'else '
+        '  val=`cat scaling_max_freq | tr " " "\\n" | sort -n -b -r`; fi ; '
+        'set -- $val; '
+        'highest=$1; '
+        'if [[ $# -gt 1 ]]; then '
+        '  case $highest in *1000) highest=$2;; esac; '
+        'fi ;'
+        'echo $highest > scaling_max_freq; '
+        'echo $highest > scaling_min_freq; '
+        'echo performance > scaling_governor; '
+        'done'
+    )
+    # pyformat: enable
+    if self.log_level == 'average':
+      self.logger.LogOutput('Pinning governor execution frequencies for %s' %
+                            machine_name)
+    ret = self._ce.CrosRunCommand(
+        set_cpu_freq, machine=machine_name, chromeos_root=chromeos_root)
+    self.logger.LogFatalIf(ret, 'Could not pin frequencies on machine: %s' %
+                           machine_name)
+
+  def DecreaseWaitTime(self, machine_name, chromeos_root):
+    """Change the ten seconds wait time for pagecycler to two seconds."""
+    FILE = '/usr/local/telemetry/src/tools/perf/page_sets/page_cycler_story.py'
+    ret = self._ce.CrosRunCommand(
+        'ls ' + FILE, machine=machine_name, chromeos_root=chromeos_root)
+    self.logger.LogFatalIf(ret, 'Could not find {} on machine: {}'.format(
+        FILE, machine_name))
+
+    if not ret:
+      sed_command = 'sed -i "s/_TTI_WAIT_TIME = 10/_TTI_WAIT_TIME = 2/g" '
+      ret = self._ce.CrosRunCommand(
+          sed_command + FILE, machine=machine_name, chromeos_root=chromeos_root)
+      self.logger.LogFatalIf(ret, 'Could not modify {} on machine: {}'.format(
+          FILE, machine_name))
+
+  def RebootMachine(self, machine_name, chromeos_root):
+    command = 'reboot && exit'
+    self._ce.CrosRunCommand(
+        command, machine=machine_name, chromeos_root=chromeos_root)
+    time.sleep(60)
+    # Whenever we reboot the machine, we need to restore the governor settings.
+    self.PinGovernorExecutionFrequencies(machine_name, chromeos_root)
+
+  def Test_That_Run(self, machine, label, benchmark, test_args, profiler_args):
+    """Run the test_that test.."""
+    options = ''
+    if label.board:
+      options += ' --board=%s' % label.board
+    if test_args:
+      options += ' %s' % test_args
+    if profiler_args:
+      self.logger.LogFatal('test_that does not support profiler.')
+    command = 'rm -rf /usr/local/autotest/results/*'
+    self._ce.CrosRunCommand(
+        command, machine=machine, chromeos_root=label.chromeos_root)
+
+    # We do this because some tests leave the machine in weird states.
+    # Rebooting between iterations has proven to help with this.
+    self.RebootMachine(machine, label.chromeos_root)
+
+    autotest_dir = AUTOTEST_DIR
+    if label.autotest_path != '':
+      autotest_dir = label.autotest_path
+
+    autotest_dir_arg = '--autotest_dir %s' % autotest_dir
+    # For non-telemetry tests, specify an autotest directory only if the
+    # specified directory is different from default (crosbug.com/679001).
+    if autotest_dir == AUTOTEST_DIR:
+      autotest_dir_arg = ''
+
+    command = (('%s %s --fast '
+                '%s %s %s') % (TEST_THAT_PATH, autotest_dir_arg, options,
+                               machine, benchmark.test_name))
+    if self.log_level != 'verbose':
+      self.logger.LogOutput('Running test.')
+      self.logger.LogOutput('CMD: %s' % command)
+    # Use --no-ns-pid so that cros_sdk does not create a different
+    # process namespace and we can kill process created easily by
+    # their process group.
+    return self._ce.ChrootRunCommandWOutput(
+        label.chromeos_root,
+        command,
+        command_terminator=self._ct,
+        cros_sdk_options='--no-ns-pid')
+
+  def RemoveTelemetryTempFile(self, machine, chromeos_root):
+    filename = 'telemetry@%s' % machine
+    fullname = os.path.join(chromeos_root, 'chroot', 'tmp', filename)
+    if os.path.exists(fullname):
+      os.remove(fullname)
+
+  def Telemetry_Crosperf_Run(self, machine, label, benchmark, test_args,
+                             profiler_args):
+    if not os.path.isdir(label.chrome_src):
+      self.logger.LogFatal('Cannot find chrome src dir to'
+                           ' run telemetry: %s' % label.chrome_src)
+
+    # Check for and remove temporary file that may have been left by
+    # previous telemetry runs (and which might prevent this run from
+    # working).
+    self.RemoveTelemetryTempFile(machine, label.chromeos_root)
+
+    # For telemetry runs, we can use the autotest copy from the source
+    # location. No need to have one under /build/<board>.
+    autotest_dir_arg = '--autotest_dir %s' % AUTOTEST_DIR
+    if label.autotest_path != '':
+      autotest_dir_arg = '--autotest_dir %s' % label.autotest_path
+
+    profiler_args = GetProfilerArgs(profiler_args)
+    fast_arg = ''
+    if not profiler_args:
+      # --fast works unless we are doing profiling (autotest limitation).
+      # --fast avoids unnecessary copies of syslogs.
+      fast_arg = '--fast'
+    args_string = ''
+    if test_args:
+      # Strip double quotes off args (so we can wrap them in single
+      # quotes, to pass through to Telemetry).
+      if test_args[0] == '"' and test_args[-1] == '"':
+        test_args = test_args[1:-1]
+      args_string = "test_args='%s'" % test_args
+
+    cmd = ('{} {} {} --board={} --args="{} run_local={} test={} '
+           '{}" {} telemetry_Crosperf'.format(TEST_THAT_PATH, autotest_dir_arg,
+                                              fast_arg, label.board,
+                                              args_string, benchmark.run_local,
+                                              benchmark.test_name,
+                                              profiler_args, machine))
+
+    # Use --no-ns-pid so that cros_sdk does not create a different
+    # process namespace and we can kill process created easily by their
+    # process group.
+    chrome_root_options = ('--no-ns-pid '
+                           '--chrome_root={} --chrome_root_mount={} '
+                           "FEATURES=\"-usersandbox\" "
+                           'CHROME_ROOT={}'.format(label.chrome_src,
+                                                   CHROME_MOUNT_DIR,
+                                                   CHROME_MOUNT_DIR))
+    if self.log_level != 'verbose':
+      self.logger.LogOutput('Running test.')
+      self.logger.LogOutput('CMD: %s' % cmd)
+    return self._ce.ChrootRunCommandWOutput(
+        label.chromeos_root,
+        cmd,
+        command_terminator=self._ct,
+        cros_sdk_options=chrome_root_options)
+
+  def Telemetry_Run(self, machine, label, benchmark, profiler_args):
+    telemetry_run_path = ''
+    if not os.path.isdir(label.chrome_src):
+      self.logger.LogFatal('Cannot find chrome src dir to' ' run telemetry.')
+    else:
+      telemetry_run_path = os.path.join(label.chrome_src, 'src/tools/perf')
+      if not os.path.exists(telemetry_run_path):
+        self.logger.LogFatal('Cannot find %s directory.' % telemetry_run_path)
+
+    if profiler_args:
+      self.logger.LogFatal('Telemetry does not support the perf profiler.')
+
+    # Check for and remove temporary file that may have been left by
+    # previous telemetry runs (and which might prevent this run from
+    # working).
+    if not test_flag.GetTestMode():
+      self.RemoveTelemetryTempFile(machine, label.chromeos_root)
+
+    rsa_key = os.path.join(
+        label.chromeos_root,
+        'src/scripts/mod_for_test_scripts/ssh_keys/testing_rsa')
+
+    cmd = ('cd {0} && '
+           './run_measurement '
+           '--browser=cros-chrome '
+           '--output-format=csv '
+           '--remote={1} '
+           '--identity {2} '
+           '{3} {4}'.format(telemetry_run_path, machine, rsa_key,
+                            benchmark.test_name, benchmark.test_args))
+    if self.log_level != 'verbose':
+      self.logger.LogOutput('Running test.')
+      self.logger.LogOutput('CMD: %s' % cmd)
+    return self._ce.RunCommandWOutput(cmd, print_to_console=False)
+
+  def CommandTerminator(self):
+    return self._ct
+
+  def Terminate(self):
+    self._ct.Terminate()
+
+
+class MockSuiteRunner(object):
+  """Mock suite runner for test."""
+
+  def __init__(self):
+    self._true = True
+
+  def Run(self, *_args):
+    if self._true:
+      return [0, '', '']
+    else:
+      return [0, '', '']
diff --git a/crosperf/suite_runner_unittest.py b/crosperf/suite_runner_unittest.py
new file mode 100755
index 0000000..fd8de66
--- /dev/null
+++ b/crosperf/suite_runner_unittest.py
@@ -0,0 +1,351 @@
+#!/usr/bin/env python2
+#
+# Copyright 2014 Google Inc. All Rights Reserved.
+"""Unittest for suite_runner."""
+
+from __future__ import print_function
+
+import os.path
+import time
+
+import mock
+import unittest
+
+import suite_runner
+import label
+import test_flag
+
+from benchmark import Benchmark
+
+from cros_utils import command_executer
+from cros_utils import logger
+
+
+class SuiteRunnerTest(unittest.TestCase):
+  """Class of SuiteRunner test."""
+  real_logger = logger.GetLogger()
+
+  mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter)
+  mock_cmd_term = mock.Mock(spec=command_executer.CommandTerminator)
+  mock_logger = mock.Mock(spec=logger.Logger)
+  mock_label = label.MockLabel('lumpy', 'lumpy_chromeos_image', '',
+                               '/tmp/chromeos', 'lumpy',
+                               ['lumpy1.cros', 'lumpy.cros2'], '', '', False,
+                               'average', 'gcc', '')
+  telemetry_crosperf_bench = Benchmark(
+      'b1_test',  # name
+      'octane',  # test_name
+      '',  # test_args
+      3,  # iterations
+      False,  # rm_chroot_tmp
+      'record -e cycles',  # perf_args
+      'telemetry_Crosperf',  # suite
+      True)  # show_all_results
+
+  test_that_bench = Benchmark(
+      'b2_test',  # name
+      'octane',  # test_name
+      '',  # test_args
+      3,  # iterations
+      False,  # rm_chroot_tmp
+      'record -e cycles')  # perf_args
+
+  telemetry_bench = Benchmark(
+      'b3_test',  # name
+      'octane',  # test_name
+      '',  # test_args
+      3,  # iterations
+      False,  # rm_chroot_tmp
+      'record -e cycles',  # perf_args
+      'telemetry',  # suite
+      False)  # show_all_results
+
+  def __init__(self, *args, **kwargs):
+    super(SuiteRunnerTest, self).__init__(*args, **kwargs)
+    self.call_test_that_run = False
+    self.pin_governor_args = []
+    self.test_that_args = []
+    self.telemetry_run_args = []
+    self.telemetry_crosperf_args = []
+    self.call_telemetry_crosperf_run = False
+    self.call_pin_governor = False
+    self.call_telemetry_run = False
+
+  def setUp(self):
+    self.runner = suite_runner.SuiteRunner(self.mock_logger, 'verbose',
+                                           self.mock_cmd_exec,
+                                           self.mock_cmd_term)
+
+  def test_get_profiler_args(self):
+    input_str = ('--profiler=custom_perf --profiler_args=\'perf_options'
+                 '="record -a -e cycles,instructions"\'')
+    output_str = ("profiler=custom_perf profiler_args='record -a -e "
+                  "cycles,instructions'")
+    res = suite_runner.GetProfilerArgs(input_str)
+    self.assertEqual(res, output_str)
+
+  def test_run(self):
+
+    def reset():
+      self.call_pin_governor = False
+      self.call_test_that_run = False
+      self.call_telemetry_run = False
+      self.call_telemetry_crosperf_run = False
+      self.pin_governor_args = []
+      self.test_that_args = []
+      self.telemetry_run_args = []
+      self.telemetry_crosperf_args = []
+
+    def FakePinGovernor(machine, chroot):
+      self.call_pin_governor = True
+      self.pin_governor_args = [machine, chroot]
+
+    def FakeTelemetryRun(machine, test_label, benchmark, profiler_args):
+      self.telemetry_run_args = [machine, test_label, benchmark, profiler_args]
+      self.call_telemetry_run = True
+      return 'Ran FakeTelemetryRun'
+
+    def FakeTelemetryCrosperfRun(machine, test_label, benchmark, test_args,
+                                 profiler_args):
+      self.telemetry_crosperf_args = [
+          machine, test_label, benchmark, test_args, profiler_args
+      ]
+      self.call_telemetry_crosperf_run = True
+      return 'Ran FakeTelemetryCrosperfRun'
+
+    def FakeTestThatRun(machine, test_label, benchmark, test_args,
+                        profiler_args):
+      self.test_that_args = [
+          machine, test_label, benchmark, test_args, profiler_args
+      ]
+      self.call_test_that_run = True
+      return 'Ran FakeTestThatRun'
+
+    self.runner.PinGovernorExecutionFrequencies = FakePinGovernor
+    self.runner.Telemetry_Run = FakeTelemetryRun
+    self.runner.Telemetry_Crosperf_Run = FakeTelemetryCrosperfRun
+    self.runner.Test_That_Run = FakeTestThatRun
+
+    machine = 'fake_machine'
+    test_args = ''
+    profiler_args = ''
+    reset()
+    self.runner.Run(machine, self.mock_label, self.telemetry_bench, test_args,
+                    profiler_args)
+    self.assertTrue(self.call_pin_governor)
+    self.assertTrue(self.call_telemetry_run)
+    self.assertFalse(self.call_test_that_run)
+    self.assertFalse(self.call_telemetry_crosperf_run)
+    self.assertEqual(
+        self.telemetry_run_args,
+        ['fake_machine', self.mock_label, self.telemetry_bench, ''])
+
+    reset()
+    self.runner.Run(machine, self.mock_label, self.test_that_bench, test_args,
+                    profiler_args)
+    self.assertTrue(self.call_pin_governor)
+    self.assertFalse(self.call_telemetry_run)
+    self.assertTrue(self.call_test_that_run)
+    self.assertFalse(self.call_telemetry_crosperf_run)
+    self.assertEqual(
+        self.test_that_args,
+        ['fake_machine', self.mock_label, self.test_that_bench, '', ''])
+
+    reset()
+    self.runner.Run(machine, self.mock_label, self.telemetry_crosperf_bench,
+                    test_args, profiler_args)
+    self.assertTrue(self.call_pin_governor)
+    self.assertFalse(self.call_telemetry_run)
+    self.assertFalse(self.call_test_that_run)
+    self.assertTrue(self.call_telemetry_crosperf_run)
+    self.assertEqual(self.telemetry_crosperf_args, [
+        'fake_machine', self.mock_label, self.telemetry_crosperf_bench, '', ''
+    ])
+
+  @mock.patch.object(command_executer.CommandExecuter, 'CrosRunCommand')
+  def test_pin_governor_execution_frequencies(self, mock_cros_runcmd):
+    self.mock_cmd_exec.CrosRunCommand = mock_cros_runcmd
+    self.runner.PinGovernorExecutionFrequencies('lumpy1.cros', '/tmp/chromeos')
+    self.assertEqual(mock_cros_runcmd.call_count, 1)
+    cmd = mock_cros_runcmd.call_args_list[0][0]
+    # pyformat: disable
+    set_cpu_cmd = (
+        'set -e && '
+        'for f in /sys/devices/system/cpu/cpu*/cpufreq; do '
+        'cd $f; '
+        'val=0; '
+        'if [[ -e scaling_available_frequencies ]]; then '
+        # pylint: disable=line-too-long
+        '  val=`cat scaling_available_frequencies | tr " " "\\n" | sort -n -b -r`; '
+        'else '
+        '  val=`cat scaling_max_freq | tr " " "\\n" | sort -n -b -r`; fi ; '
+        'set -- $val; '
+        'highest=$1; '
+        'if [[ $# -gt 1 ]]; then '
+        '  case $highest in *1000) highest=$2;; esac; '
+        'fi ;'
+        'echo $highest > scaling_max_freq; '
+        'echo $highest > scaling_min_freq; '
+        'echo performance > scaling_governor; '
+        'done'
+    )
+    # pyformat: enable
+    self.assertEqual(cmd, (set_cpu_cmd,))
+
+  @mock.patch.object(time, 'sleep')
+  @mock.patch.object(command_executer.CommandExecuter, 'CrosRunCommand')
+  def test_reboot_machine(self, mock_cros_runcmd, mock_sleep):
+
+    def FakePinGovernor(machine_name, chromeos_root):
+      if machine_name or chromeos_root:
+        pass
+
+    self.mock_cmd_exec.CrosRunCommand = mock_cros_runcmd
+    self.runner.PinGovernorExecutionFrequencies = FakePinGovernor
+    self.runner.RebootMachine('lumpy1.cros', '/tmp/chromeos')
+    self.assertEqual(mock_cros_runcmd.call_count, 1)
+    self.assertEqual(mock_cros_runcmd.call_args_list[0][0], ('reboot && exit',))
+    self.assertEqual(mock_sleep.call_count, 1)
+    self.assertEqual(mock_sleep.call_args_list[0][0], (60,))
+
+  @mock.patch.object(command_executer.CommandExecuter, 'CrosRunCommand')
+  @mock.patch.object(command_executer.CommandExecuter,
+                     'ChrootRunCommandWOutput')
+  def test_test_that_run(self, mock_chroot_runcmd, mock_cros_runcmd):
+
+    def FakeRebootMachine(machine, chroot):
+      if machine or chroot:
+        pass
+
+    def FakeLogMsg(fd, termfd, msg, flush=True):
+      if fd or termfd or msg or flush:
+        pass
+
+    save_log_msg = self.real_logger.LogMsg
+    self.real_logger.LogMsg = FakeLogMsg
+    self.runner.logger = self.real_logger
+    self.runner.RebootMachine = FakeRebootMachine
+
+    raised_exception = False
+    try:
+      self.runner.Test_That_Run('lumpy1.cros', self.mock_label,
+                                self.test_that_bench, '', 'record -a -e cycles')
+    except SystemExit:
+      raised_exception = True
+    self.assertTrue(raised_exception)
+
+    mock_chroot_runcmd.return_value = 0
+    self.mock_cmd_exec.ChrootRunCommandWOutput = mock_chroot_runcmd
+    self.mock_cmd_exec.CrosRunCommand = mock_cros_runcmd
+    res = self.runner.Test_That_Run('lumpy1.cros', self.mock_label,
+                                    self.test_that_bench, '--iterations=2', '')
+    self.assertEqual(mock_cros_runcmd.call_count, 1)
+    self.assertEqual(mock_chroot_runcmd.call_count, 1)
+    self.assertEqual(res, 0)
+    self.assertEqual(mock_cros_runcmd.call_args_list[0][0],
+                     ('rm -rf /usr/local/autotest/results/*',))
+    args_list = mock_chroot_runcmd.call_args_list[0][0]
+    args_dict = mock_chroot_runcmd.call_args_list[0][1]
+    self.assertEqual(len(args_list), 2)
+    self.assertEqual(args_list[0], '/tmp/chromeos')
+    self.assertEqual(args_list[1], ('/usr/bin/test_that  '
+                                    '--fast  --board=lumpy '
+                                    '--iterations=2 lumpy1.cros octane'))
+    self.assertEqual(args_dict['command_terminator'], self.mock_cmd_term)
+    self.real_logger.LogMsg = save_log_msg
+
+  @mock.patch.object(os.path, 'isdir')
+  @mock.patch.object(command_executer.CommandExecuter,
+                     'ChrootRunCommandWOutput')
+  def test_telemetry_crosperf_run(self, mock_chroot_runcmd, mock_isdir):
+
+    mock_isdir.return_value = True
+    mock_chroot_runcmd.return_value = 0
+    self.mock_cmd_exec.ChrootRunCommandWOutput = mock_chroot_runcmd
+    profiler_args = ('--profiler=custom_perf --profiler_args=\'perf_options'
+                     '="record -a -e cycles,instructions"\'')
+    res = self.runner.Telemetry_Crosperf_Run('lumpy1.cros', self.mock_label,
+                                             self.telemetry_crosperf_bench, '',
+                                             profiler_args)
+    self.assertEqual(res, 0)
+    self.assertEqual(mock_chroot_runcmd.call_count, 1)
+    args_list = mock_chroot_runcmd.call_args_list[0][0]
+    args_dict = mock_chroot_runcmd.call_args_list[0][1]
+    self.assertEqual(args_list[0], '/tmp/chromeos')
+    self.assertEqual(args_list[1],
+                     ('/usr/bin/test_that --autotest_dir '
+                      '~/trunk/src/third_party/autotest/files '
+                      ' --board=lumpy --args=" run_local=False test=octane '
+                      'profiler=custom_perf profiler_args=\'record -a -e '
+                      'cycles,instructions\'" lumpy1.cros telemetry_Crosperf'))
+    self.assertEqual(args_dict['cros_sdk_options'],
+                     ('--no-ns-pid --chrome_root= '
+                      '--chrome_root_mount=/tmp/chrome_root '
+                      'FEATURES="-usersandbox" CHROME_ROOT=/tmp/chrome_root'))
+    self.assertEqual(args_dict['command_terminator'], self.mock_cmd_term)
+    self.assertEqual(len(args_dict), 2)
+
+  @mock.patch.object(os.path, 'isdir')
+  @mock.patch.object(os.path, 'exists')
+  @mock.patch.object(command_executer.CommandExecuter, 'RunCommandWOutput')
+  def test_telemetry_run(self, mock_runcmd, mock_exists, mock_isdir):
+
+    def FakeLogMsg(fd, termfd, msg, flush=True):
+      if fd or termfd or msg or flush:
+        pass
+
+    save_log_msg = self.real_logger.LogMsg
+    self.real_logger.LogMsg = FakeLogMsg
+    mock_runcmd.return_value = 0
+
+    self.mock_cmd_exec.RunCommandWOutput = mock_runcmd
+    self.runner.logger = self.real_logger
+
+    profiler_args = ('--profiler=custom_perf --profiler_args=\'perf_options'
+                     '="record -a -e cycles,instructions"\'')
+
+    raises_exception = False
+    mock_isdir.return_value = False
+    try:
+      self.runner.Telemetry_Run('lumpy1.cros', self.mock_label,
+                                self.telemetry_bench, '')
+    except SystemExit:
+      raises_exception = True
+    self.assertTrue(raises_exception)
+
+    raises_exception = False
+    mock_isdir.return_value = True
+    mock_exists.return_value = False
+    try:
+      self.runner.Telemetry_Run('lumpy1.cros', self.mock_label,
+                                self.telemetry_bench, '')
+    except SystemExit:
+      raises_exception = True
+    self.assertTrue(raises_exception)
+
+    raises_exception = False
+    mock_isdir.return_value = True
+    mock_exists.return_value = True
+    try:
+      self.runner.Telemetry_Run('lumpy1.cros', self.mock_label,
+                                self.telemetry_bench, profiler_args)
+    except SystemExit:
+      raises_exception = True
+    self.assertTrue(raises_exception)
+
+    test_flag.SetTestMode(True)
+    res = self.runner.Telemetry_Run('lumpy1.cros', self.mock_label,
+                                    self.telemetry_bench, '')
+    self.assertEqual(res, 0)
+    self.assertEqual(mock_runcmd.call_count, 1)
+    self.assertEqual(mock_runcmd.call_args_list[0][0], (
+        ('cd src/tools/perf && ./run_measurement '
+         '--browser=cros-chrome --output-format=csv '
+         '--remote=lumpy1.cros --identity /tmp/chromeos/src/scripts'
+         '/mod_for_test_scripts/ssh_keys/testing_rsa octane '),))
+
+    self.real_logger.LogMsg = save_log_msg
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/crosperf/test_cache/compare_output/autotest.tbz2 b/crosperf/test_cache/compare_output/autotest.tbz2
new file mode 100644
index 0000000..066dd9a
--- /dev/null
+++ b/crosperf/test_cache/compare_output/autotest.tbz2
Binary files differ
diff --git a/crosperf/test_cache/compare_output/machine.txt b/crosperf/test_cache/compare_output/machine.txt
new file mode 100644
index 0000000..a82af3a
--- /dev/null
+++ b/crosperf/test_cache/compare_output/machine.txt
@@ -0,0 +1 @@
+fake_machine_checksum123
\ No newline at end of file
diff --git a/crosperf/test_cache/compare_output/results.txt b/crosperf/test_cache/compare_output/results.txt
new file mode 100644
index 0000000..db6803c
--- /dev/null
+++ b/crosperf/test_cache/compare_output/results.txt
@@ -0,0 +1,6 @@
+S"CMD (True): ./test_that.sh --remote=172.17.128.241  --board=lumpy   LibCBench\nCMD (None): cd /usr/local/google/home/yunlian/gd/src/build/images/lumpy/latest/../../../../..; cros_sdk  -- ./in_chroot_cmd6X7Cxu.sh\nIdentity added: /tmp/test_that.PO1234567/autotest_key (/tmp/test_that.PO1234567/autotest_key)\nINFO    : Using emerged autotests already installed at /build/lumpy/usr/local/autotest.\n\nINFO    : Running the following control files 1 times:\nINFO    :  * 'client/site_tests/platform_LibCBench/control'\n\nINFO    : Running client test client/site_tests/platform_LibCBench/control\n./server/autoserv -m 172.17.128.241 --ssh-port 22 -c client/site_tests/platform_LibCBench/control -r /tmp/test_that.PO1234567/platform_LibCBench --test-retry=0 --args \nERROR:root:import statsd failed, no stats will be reported.\n14:20:22 INFO | Results placed in /tmp/test_that.PO1234567/platform_LibCBench\n14:20:22 INFO | Processing control file\n14:20:23 INFO | Starting master ssh connection '/usr/bin/ssh -a -x -N -o ControlMaster=yes -o ControlPath=/tmp/_autotmp_VIIP67ssh-master/socket -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=180 -o ServerAliveCountMax=3 -o ConnectionAttempts=4 -o Protocol=2 -l root -p 22 172.17.128.241'\n14:20:23 ERROR| [stderr] Warning: Permanently added '172.17.128.241' (RSA) to the list of known hosts.\n14:20:23 INFO | INFO\t----\t----\tkernel=3.8.11\tlocaltime=May 22 14:20:23\ttimestamp=1369257623\t\n14:20:23 INFO | Installing autotest on 172.17.128.241\n14:20:23 INFO | Using installation dir /usr/local/autotest\n14:20:23 WARNI| No job_repo_url for <remote host: 172.17.128.241>\n14:20:23 INFO | Could not install autotest using the packaging system: No repos to install an autotest client from. Trying other methods\n14:20:23 INFO | Installation of autotest completed\n14:20:24 WARNI| No job_repo_url for <remote host: 172.17.128.241>\n14:20:24 INFO | Executing /usr/local/autotest/bin/autotest /usr/local/autotest/control phase 0\n14:20:24 INFO | Entered autotestd_monitor.\n14:20:24 INFO | Finished launching tail subprocesses.\n14:20:24 INFO | Finished waiting on autotestd to start.\n14:20:26 INFO | START\t----\t----\ttimestamp=1369257625\tlocaltime=May 22 14:20:25\t\n14:20:26 INFO | \tSTART\tplatform_LibCBench\tplatform_LibCBench\ttimestamp=1369257625\tlocaltime=May 22 14:20:25\t\n14:20:30 INFO | \t\tGOOD\tplatform_LibCBench\tplatform_LibCBench\ttimestamp=1369257630\tlocaltime=May 22 14:20:30\tcompleted successfully\n14:20:30 INFO | \tEND GOOD\tplatform_LibCBench\tplatform_LibCBench\ttimestamp=1369257630\tlocaltime=May 22 14:20:30\t\n14:20:31 INFO | END GOOD\t----\t----\ttimestamp=1369257630\tlocaltime=May 22 14:20:30\t\n14:20:31 INFO | Got lock of exit_code_file.\n14:20:31 INFO | Released lock of exit_code_file and closed it.\nOUTPUT: ==============================\nOUTPUT: Current time: 2013-05-22 14:20:32.818831 Elapsed: 0:01:30 ETA: Unknown\nDone: 0% [                                                  ]\nOUTPUT: Thread Status:\nRUNNING:  1 ('ttt: LibCBench (1)' 0:01:21)\nMachine Status:\nMachine                        Thread     Lock Status                    Checksum                        \n172.17.128.241                 ttt: LibCBench (1) True RUNNING                   3ba9f2ecbb222f20887daea5583d86ba\n\nOUTPUT: ==============================\n14:20:33 INFO | Killing child processes.\n14:20:33 INFO | Client complete\n14:20:33 INFO | Finished processing control file\n14:20:33 INFO | Starting master ssh connection '/usr/bin/ssh -a -x -N -o ControlMaster=yes -o ControlPath=/tmp/_autotmp_aVJUgmssh-master/socket -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=180 -o ServerAliveCountMax=3 -o ConnectionAttempts=4 -o Protocol=2 -l root -p 22 172.17.128.241'\n14:20:33 ERROR| [stderr] Warning: Permanently added '172.17.128.241' (RSA) to the list of known hosts.\n\nINFO    : Test results:\n-------------------------------------------------------------------\nplatform_LibCBench                                      [  PASSED  ]\nplatform_LibCBench/platform_LibCBench                   [  PASSED  ]\nplatform_LibCBench/platform_LibCBench                     b_malloc_big1__0_                                     0.00375231466667\nplatform_LibCBench/platform_LibCBench                     b_malloc_big2__0_                                     0.002951359\nplatform_LibCBench/platform_LibCBench                     b_malloc_bubble__0_                                   0.015066374\nplatform_LibCBench/platform_LibCBench                     b_malloc_sparse__0_                                   0.015053784\nplatform_LibCBench/platform_LibCBench                     b_malloc_thread_local__0_                             0.01138439\nplatform_LibCBench/platform_LibCBench                     b_malloc_thread_stress__0_                            0.0367894733333\nplatform_LibCBench/platform_LibCBench                     b_malloc_tiny1__0_                                    0.000768474333333\nplatform_LibCBench/platform_LibCBench                     b_malloc_tiny2__0_                                    0.000581407333333\nplatform_LibCBench/platform_LibCBench                     b_pthread_create_serial1__0_                          0.0291785246667\nplatform_LibCBench/platform_LibCBench                     b_pthread_createjoin_serial1__0_                      0.031907936\nplatform_LibCBench/platform_LibCBench                     b_pthread_createjoin_serial2__0_                      0.043485347\nplatform_LibCBench/platform_LibCBench                     b_pthread_uselesslock__0_                             0.0294113346667\nplatform_LibCBench/platform_LibCBench                     b_regex_compile____a_b_c__d_b__                       0.00529833933333\nplatform_LibCBench/platform_LibCBench                     b_regex_search____a_b_c__d_b__                        0.00165455066667\nplatform_LibCBench/platform_LibCBench                     b_regex_search___a_25_b__                             0.0496191923333\nplatform_LibCBench/platform_LibCBench                     b_stdio_putcgetc__0_                                  0.100005711667\nplatform_LibCBench/platform_LibCBench                     b_stdio_putcgetc_unlocked__0_                         0.0371443833333\nplatform_LibCBench/platform_LibCBench                     b_string_memset__0_                                   0.00275405066667\nplatform_LibCBench/platform_LibCBench                     b_string_strchr__0_                                   0.00456903\nplatform_LibCBench/platform_LibCBench                     b_string_strlen__0_                                   0.044893587\nplatform_LibCBench/platform_LibCBench                     b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac__ 0.118360778\nplatform_LibCBench/platform_LibCBench                     b_string_strstr___aaaaaaaaaaaaaaaaaaaaaaaaac__        0.068957325\nplatform_LibCBench/platform_LibCBench                     b_string_strstr___aaaaaaaaaaaaaacccccccccccc__        0.0135694476667\nplatform_LibCBench/platform_LibCBench                     b_string_strstr___abcdefghijklmnopqrstuvwxyz__        0.0134553343333\nplatform_LibCBench/platform_LibCBench                     b_string_strstr___azbycxdwevfugthsirjqkplomn__        0.0133123556667\nplatform_LibCBench/platform_LibCBench                     b_utf8_bigbuf__0_                                     0.0473772253333\nplatform_LibCBench/platform_LibCBench                     b_utf8_onebyone__0_                                   0.130938538333\n-------------------------------------------------------------------\nTotal PASS: 2/2 (100%)\n\nINFO    : Elapsed time: 0m16s \n"
+p0
+.S"\nERROR: Identity added: /tmp/test_that.Z4Ld/autotest_key (/tmp/test_that.Z4Ld/autotest_key)\nINFO    : Using emerged autotests already installed at /build/lumpy/usr/local/autotest.\nINFO    : Running the following control files 1 times:\nINFO    :  * 'client/site_tests/platform_LibCBench/control'\nINFO    : Running client test client/site_tests/platform_LibCBench/control\nINFO    : Test results:\nINFO    : Elapsed time: 0m18s\n"
+p0
+.I0
+.
\ No newline at end of file
diff --git a/crosperf/test_cache/test_input/autotest.tbz2 b/crosperf/test_cache/test_input/autotest.tbz2
new file mode 100644
index 0000000..6ddbc6b
--- /dev/null
+++ b/crosperf/test_cache/test_input/autotest.tbz2
Binary files differ
diff --git a/crosperf/test_cache/test_input/machine.txt b/crosperf/test_cache/test_input/machine.txt
new file mode 100644
index 0000000..9bd7843
--- /dev/null
+++ b/crosperf/test_cache/test_input/machine.txt
@@ -0,0 +1 @@
+processor	: 0vendor_id	: GenuineIntelcpu family	: 6model		: 42model name	: Intel(R) Celeron(R) CPU 867 @ 1.30GHzstepping	: 7microcode	: 0x25cache size	: 2048 KBphysical id	: 0siblings	: 2core id		: 0cpu cores	: 2apicid		: 0initial apicid	: 0fpu		: yesfpu_exception	: yescpuid level	: 13wp		: yesflags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpidclflush size	: 64cache_alignment	: 64address sizes	: 36 bits physical, 48 bits virtualpower management:processor	: 1vendor_id	: GenuineIntelcpu family	: 6model		: 42model name	: Intel(R) Celeron(R) CPU 867 @ 1.30GHzstepping	: 7microcode	: 0x25cache size	: 2048 KBphysical id	: 0siblings	: 2core id		: 1cpu cores	: 2apicid		: 2initial apicid	: 2fpu		: yesfpu_exception	: yescpuid level	: 13wp		: yesflags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpidclflush size	: 64cache_alignment	: 64address sizes	: 36 bits physical, 48 bits virtualpower management: 4194304
\ No newline at end of file
diff --git a/crosperf/test_cache/test_input/results.txt b/crosperf/test_cache/test_input/results.txt
new file mode 100644
index 0000000..33ba6ab
--- /dev/null
+++ b/crosperf/test_cache/test_input/results.txt
@@ -0,0 +1,6 @@
+S"11:22:08 INFO | Running autotest_quickmerge step.\n11:22:08 INFO | quickmerge| 11:22:08: INFO: RunCommand: sudo -- /usr/bin/python2.7 /mnt/host/source/chromite/bin/autotest_quickmerge '--board=lumpy'\n11:22:08 INFO | quickmerge| 11:22:08: INFO: RunCommand: find /build/lumpy/usr/local/build/autotest/ -path /build/lumpy/usr/local/build/autotest/ExternalSource -prune -o -path /build/lumpy/usr/local/build/autotest/logs -prune -o -path /build/lumpy/usr/local/build/autotest/results -prune -o -path /build/lumpy/usr/local/build/autotest/site-packages -prune -o -printf '%T@\\n'\n11:22:22 INFO | quickmerge| 11:22:22: INFO: RunCommand: find /mnt/host/source/src/third_party/autotest/files/ -path /mnt/host/source/src/third_party/autotest/files/ExternalSource -prune -o -path /mnt/host/source/src/third_party/autotest/files/logs -prune -o -path /mnt/host/source/src/third_party/autotest/files/results -prune -o -path /mnt/host/source/src/third_party/autotest/files/site-packages -prune -o -printf '%T@\\n'\n11:22:32 INFO | quickmerge| 11:22:32: INFO: The sysroot appears to be newer than the source tree, doing nothing and exiting now.\n11:22:32 INFO | Re-running test_that script in /build/lumpy/usr/local/build/autotest copy of autotest.\n11:22:33 INFO | Began logging to /tmp/test_that_results_zZZfQa\nAdding labels [u'cros-version:ad_hoc_build', u'board:lumpy'] to host chromeos2-row2-rack4-host11.cros\n13:22:33 INFO | Fetching suite for job named telemetry_Crosperf...\n13:22:43 INFO | Scheduling suite for job named telemetry_Crosperf...\n13:22:43 INFO | ... scheduled 1 job(s).\n13:22:43 INFO | autoserv| DEBUG:root:import statsd failed, no stats will be reported.\n13:22:43 INFO | autoserv| Results placed in /tmp/test_that_results_zZZfQa/results-1-telemetry_Crosperf\n13:22:43 INFO | autoserv| Logged pid 25397 to /tmp/test_that_results_zZZfQa/results-1-telemetry_Crosperf/.autoserv_execute\n13:22:43 INFO | autoserv| I am PID 25397\n13:22:43 INFO | autoserv| Not checking if job_repo_url contains autotest packages on ['chromeos2-row2-rack4-host11.cros']\n13:22:43 INFO | autoserv| Processing control file\n13:22:44 INFO | autoserv| START\ttelemetry_Crosperf\ttelemetry_Crosperf\ttimestamp=1401301364\tlocaltime=May 28 11:22:44\n13:22:44 INFO | autoserv| Starting master ssh connection '/usr/bin/ssh -a -x -N -o ControlMaster=yes -o ControlPath=/tmp/_autotmp_HsB3vQssh-master/socket -o StrictHostKeyChecking=no -o UserKnownHostsFile=/tmp/tmpxFy6lj -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=300 -l root -p 22 chromeos2-row2-rack4-host11.cros'\n13:22:45 INFO | autoserv| Starting master ssh connection '/usr/bin/ssh -a -x   -N -o ControlMaster=yes -o ControlPath=/tmp/_autotmp_YTu9wYssh-master/socket -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=180 -o ServerAliveCountMax=3 -o ConnectionAttempts=4 -o Protocol=2 -l root -p 22 chromeos2-row2-rack4-host11.cros'\n13:22:45 INFO | autoserv| Installing autotest on chromeos2-row2-rack4-host11.cros\n13:22:45 INFO | autoserv| Using installation dir /tmp/sysinfo/autoserv-MxOMOw\n13:22:46 INFO | autoserv| No job_repo_url for <remote host: chromeos2-row2-rack4-host11.cros>\n13:22:46 INFO | autoserv| Could not install autotest using the packaging system: No repos to install an autotest client from. Trying other methods\n13:22:47 INFO | autoserv| Installation of autotest completed\n13:22:47 INFO | autoserv| Installing updated global_config.ini.\n13:22:48 INFO | autoserv| No job_repo_url for <remote host: chromeos2-row2-rack4-host11.cros>\n13:22:48 INFO | autoserv| Executing /tmp/sysinfo/autoserv-MxOMOw/bin/autotest /tmp/sysinfo/autoserv-MxOMOw/control phase 0\n13:22:48 INFO | autoserv| Entered autotestd_monitor.\n13:22:48 INFO | autoserv| Finished launching tail subprocesses.\n13:22:48 INFO | autoserv| Finished waiting on autotestd to start.\n13:22:48 INFO | autoserv| START\t----\t----\ttimestamp=1401301368\tlocaltime=May 28 11:22:48\n13:22:48 INFO | autoserv| GOOD\t----\tsysinfo.before\ttimestamp=1401301368\tlocaltime=May 28 11:22:48\n13:22:48 INFO | autoserv| END GOOD\t----\t----\ttimestamp=1401301368\tlocaltime=May 28 11:22:48\n13:22:48 INFO | autoserv| Got lock of exit_code_file.\n13:22:48 INFO | autoserv| Released lock of exit_code_file and closed it.\n13:22:50 INFO | autoserv| Killing child processes.\n13:22:50 INFO | autoserv| Client complete\n13:22:52 INFO | autoserv| No job_repo_url for <remote host: chromeos2-row2-rack4-host11.cros>\n13:22:52 INFO | autoserv| Executing /tmp/sysinfo/autoserv-MxOMOw/bin/autotest /tmp/sysinfo/autoserv-MxOMOw/control phase 0\n13:22:53 INFO | autoserv| Entered autotestd_monitor.\n13:22:53 INFO | autoserv| Finished launching tail subprocesses.\n13:22:53 INFO | autoserv| Finished waiting on autotestd to start.\n13:22:53 INFO | autoserv| START\t----\t----\ttimestamp=1401301373\tlocaltime=May 28 11:22:53\n13:22:53 INFO | autoserv| GOOD\t----\tsysinfo.iteration.before\ttimestamp=1401301373\tlocaltime=May 28 11:22:53\n13:22:53 INFO | autoserv| END GOOD\t----\t----\ttimestamp=1401301373\tlocaltime=May 28 11:22:53\n13:22:53 INFO | autoserv| Got lock of exit_code_file.\n13:22:53 INFO | autoserv| Released lock of exit_code_file and closed it.\n13:22:55 INFO | autoserv| Killing child processes.\n13:22:55 INFO | autoserv| Client complete\n13:22:55 INFO | autoserv| Using Chrome source tree at /tmp/chrome_root\n13:22:55 INFO | autoserv| CMD: /tmp/chrome_root/src/tools/perf/run_benchmark --browser=cros-chrome --remote=chromeos2-row2-rack4-host11.cros  sunspider\n13:23:35 INFO | autoserv| Telemetry completed with exit code: 0.\n13:23:35 INFO | autoserv| stdout:Pages: [http___www.webkit.org_perf_sunspider-1.0.2_sunspider-1.0.2_driver.html]\n13:23:35 INFO | autoserv| RESULT 3d-cube: 3d-cube= [28,28,28,28,31,26,28,28,28,27] ms\n13:23:35 INFO | autoserv| Avg 3d-cube: 28.000000ms\n13:23:35 INFO | autoserv| Sd  3d-cube: 1.247219ms\n13:23:35 INFO | autoserv| RESULT 3d-morph: 3d-morph= [23,22,22,22,22,22,22,22,22,22] ms\n13:23:35 INFO | autoserv| Avg 3d-morph: 22.100000ms\n13:23:35 INFO | autoserv| Sd  3d-morph: 0.316228ms\n13:23:35 INFO | autoserv| RESULT 3d-raytrace: 3d-raytrace= [26,23,24,25,25,25,26,24,24,25] ms\n13:23:35 INFO | autoserv| Avg 3d-raytrace: 24.700000ms\n13:23:35 INFO | autoserv| Sd  3d-raytrace: 0.948683ms\n13:23:35 INFO | autoserv| *RESULT Total: Total= [443,440,440,447,451,435,441,449,449,445] ms\n13:23:35 INFO | autoserv| Avg Total: 444.000000ms\n13:23:35 INFO | autoserv| Sd  Total: 5.077182ms\n13:23:35 INFO | autoserv| RESULT access-binary-trees: access-binary-trees= [4,3,5,6,5,5,3,5,5,4] ms\n13:23:35 INFO | autoserv| Avg access-binary-trees: 4.500000ms\n13:23:35 INFO | autoserv| Sd  access-binary-trees: 0.971825ms\n13:23:35 INFO | autoserv| RESULT access-fannkuch: access-fannkuch= [19,18,17,18,17,18,18,18,17,18] ms\n13:23:35 INFO | autoserv| Avg access-fannkuch: 17.800000ms\n13:23:35 INFO | autoserv| Sd  access-fannkuch: 0.632456ms\n13:23:35 INFO | autoserv| RESULT access-nbody: access-nbody= [7,9,8,7,12,8,9,10,8,7] ms\n13:23:35 INFO | autoserv| Avg access-nbody: 8.500000ms\n13:23:35 INFO | autoserv| Sd  access-nbody: 1.581139ms\n13:23:35 INFO | autoserv| RESULT access-nsieve: access-nsieve= [9,8,8,8,8,7,8,7,8,8] ms\n13:23:35 INFO | autoserv| Avg access-nsieve: 7.900000ms\n13:23:35 INFO | autoserv| Sd  access-nsieve: 0.567646ms\n13:23:35 INFO | autoserv| RESULT bitops-3bit-bits-in-byte: bitops-3bit-bits-in-byte= [3,3,3,3,3,3,3,4,4,3] ms\n13:23:35 INFO | autoserv| Avg bitops-3bit-bits-in-byte: 3.200000ms\n13:23:35 INFO | autoserv| Sd  bitops-3bit-bits-in-byte: 0.421637ms\n13:23:35 INFO | autoserv| RESULT bitops-bits-in-byte: bitops-bits-in-byte= [9,9,9,9,9,9,9,9,9,10] ms\n13:23:35 INFO | autoserv| Avg bitops-bits-in-byte: 9.100000ms\n13:23:35 INFO | autoserv| Sd  bitops-bits-in-byte: 0.316228ms\n13:23:35 INFO | autoserv| RESULT bitops-bitwise-and: bitops-bitwise-and= [8,8,7,9,8,9,8,8,9,10] ms\n13:23:35 INFO | autoserv| Avg bitops-bitwise-and: 8.400000ms\n13:23:35 INFO | autoserv| Sd  bitops-bitwise-and: 0.843274ms\n13:23:35 INFO | autoserv| RESULT bitops-nsieve-bits: bitops-nsieve-bits= [9,9,9,9,9,9,9,11,11,9] ms\n13:23:35 INFO | autoserv| Avg bitops-nsieve-bits: 9.400000ms\n13:23:35 INFO | autoserv| Sd  bitops-nsieve-bits: 0.843274ms\n13:23:35 INFO | autoserv| RESULT controlflow-recursive: controlflow-recursive= [5,5,5,4,4,4,5,4,4,4] ms\n13:23:35 INFO | autoserv| Avg controlflow-recursive: 4.400000ms\n13:23:35 INFO | autoserv| Sd  controlflow-recursive: 0.516398ms\n13:23:35 INFO | autoserv| RESULT crypto-aes: crypto-aes= [14,16,15,16,15,14,17,14,15,16] ms\n13:23:35 INFO | autoserv| Avg crypto-aes: 15.200000ms\n13:23:35 INFO | autoserv| Sd  crypto-aes: 1.032796ms\n13:23:35 INFO | autoserv| RESULT crypto-md5: crypto-md5= [10,11,11,11,10,10,11,10,10,11] ms\n13:23:35 INFO | autoserv| Avg crypto-md5: 10.500000ms\n13:23:35 INFO | autoserv| Sd  crypto-md5: 0.527046ms\n13:23:35 INFO | autoserv| RESULT crypto-sha1: crypto-sha1= [11,11,12,12,12,12,12,10,13,11] ms\n13:23:35 INFO | autoserv| Avg crypto-sha1: 11.600000ms\n13:23:35 INFO | autoserv| Sd  crypto-sha1: 0.843274ms\n13:23:35 INFO | autoserv| RESULT date-format-tofte: date-format-tofte= [28,25,25,26,26,27,26,28,27,25] ms\n13:23:35 INFO | autoserv| Avg date-format-tofte: 26.300000ms\n13:23:35 INFO | autoserv| Sd  date-format-tofte: 1.159502ms\n13:23:35 INFO | autoserv| RESULT date-format-xparb: date-format-xparb= [21,22,21,21,21,20,20,20,21,22] ms\n13:23:35 INFO | autoserv| Avg date-format-xparb: 20.900000ms\n13:23:35 INFO | autoserv| Sd  date-format-xparb: 0.737865ms\n13:23:35 INFO | autoserv| RESULT math-cordic: math-cordic= [8,8,8,9,9,9,9,9,9,9] ms\n13:23:35 INFO | autoserv| Avg math-cordic: 8.700000ms\n13:23:35 INFO | autoserv| Sd  math-cordic: 0.483046ms\n13:23:35 INFO | autoserv| RESULT math-partial-sums: math-partial-sums= [22,22,22,21,23,20,20,23,25,22] ms\n13:23:35 INFO | autoserv| Avg math-partial-sums: 22.000000ms\n13:23:35 INFO | autoserv| Sd  math-partial-sums: 1.490712ms\n13:23:35 INFO | autoserv| RESULT math-spectral-norm: math-spectral-norm= [6,7,6,7,7,6,7,6,7,7] ms\n13:23:35 INFO | autoserv| Avg math-spectral-norm: 6.600000ms\n13:23:35 INFO | autoserv| Sd  math-spectral-norm: 0.516398ms\n13:23:35 INFO | autoserv| RESULT regexp-dna: regexp-dna= [16,16,17,16,16,16,16,16,17,16] ms\n13:23:35 INFO | autoserv| Avg regexp-dna: 16.200000ms\n13:23:35 INFO | autoserv| Sd  regexp-dna: 0.421637ms\n13:23:35 INFO | autoserv| RESULT string-base64: string-base64= [17,16,16,16,17,16,16,16,14,16] ms\n13:23:35 INFO | autoserv| Avg string-base64: 16.000000ms\n13:23:35 INFO | autoserv| Sd  string-base64: 0.816497ms\n13:23:35 INFO | autoserv| RESULT string-fasta: string-fasta= [23,22,23,24,23,23,23,25,23,23] ms\n13:23:35 INFO | autoserv| Avg string-fasta: 23.200000ms\n13:23:35 INFO | autoserv| Sd  string-fasta: 0.788811ms\n13:23:35 INFO | autoserv| RESULT string-tagcloud: string-tagcloud= [53,52,54,53,53,52,51,54,53,53] ms\n13:23:35 INFO | autoserv| Avg string-tagcloud: 52.800000ms\n13:23:35 INFO | autoserv| Sd  string-tagcloud: 0.918937ms\n13:23:35 INFO | autoserv| RESULT string-unpack-code: string-unpack-code= [46,47,46,48,47,46,46,47,47,47] ms\n13:23:35 INFO | autoserv| Avg string-unpack-code: 46.700000ms\n13:23:35 INFO | autoserv| Sd  string-unpack-code: 0.674949ms\n13:23:35 INFO | autoserv| RESULT string-validate-input: string-validate-input= [18,20,19,19,19,19,19,21,19,20] ms\n13:23:35 INFO | autoserv| Avg string-validate-input: 19.300000ms\n13:23:35 INFO | autoserv| Sd  string-validate-input: 0.823273ms\n13:23:35 INFO | autoserv| RESULT telemetry_page_measurement_results: num_failed= 0 count\n13:23:35 INFO | autoserv| RESULT telemetry_page_measurement_results: num_errored= 0 count\n13:23:35 INFO | autoserv| \n13:23:35 INFO | autoserv| View result at file:///tmp/chrome_root/src/tools/perf/results.html\n13:23:35 INFO | autoserv| \n13:23:35 INFO | autoserv| stderr:\n13:23:35 INFO | autoserv| No job_repo_url for <remote host: chromeos2-row2-rack4-host11.cros>\n13:23:35 INFO | autoserv| Executing /tmp/sysinfo/autoserv-MxOMOw/bin/autotest /tmp/sysinfo/autoserv-MxOMOw/control phase 0\n13:23:36 INFO | autoserv| Entered autotestd_monitor.\n13:23:36 INFO | autoserv| Finished launching tail subprocesses.\n13:23:36 INFO | autoserv| Finished waiting on autotestd to start.\n13:23:37 INFO | autoserv| START\t----\t----\ttimestamp=1401301417\tlocaltime=May 28 11:23:37\n13:23:37 INFO | autoserv| GOOD\t----\tsysinfo.iteration.after\ttimestamp=1401301417\tlocaltime=May 28 11:23:37\n13:23:37 INFO | autoserv| END GOOD\t----\t----\ttimestamp=1401301417\tlocaltime=May 28 11:23:37\n13:23:37 INFO | autoserv| Got lock of exit_code_file.\n13:23:37 INFO | autoserv| Released lock of exit_code_file and closed it.\n13:23:39 INFO | autoserv| Killing child processes.\n13:23:39 INFO | autoserv| Client complete\n13:23:39 INFO | autoserv| No job_repo_url for <remote host: chromeos2-row2-rack4-host11.cros>\n13:23:40 INFO | autoserv| Executing /tmp/sysinfo/autoserv-MxOMOw/bin/autotest /tmp/sysinfo/autoserv-MxOMOw/control phase 0\n13:23:40 INFO | autoserv| Entered autotestd_monitor.\n13:23:40 INFO | autoserv| Finished launching tail subprocesses.\n13:23:40 INFO | autoserv| Finished waiting on autotestd to start.\n13:23:40 INFO | autoserv| START\t----\t----\ttimestamp=1401301420\tlocaltime=May 28 11:23:40\n13:23:40 INFO | autoserv| GOOD\t----\tsysinfo.after\ttimestamp=1401301420\tlocaltime=May 28 11:23:40\n13:23:40 INFO | autoserv| END GOOD\t----\t----\ttimestamp=1401301420\tlocaltime=May 28 11:23:40\n13:23:40 INFO | autoserv| Got lock of exit_code_file.\n13:23:40 INFO | autoserv| Released lock of exit_code_file and closed it.\n13:23:42 INFO | autoserv| Killing child processes.\n13:23:42 INFO | autoserv| Client complete\n13:23:44 INFO | autoserv| GOOD\ttelemetry_Crosperf\ttelemetry_Crosperf\ttimestamp=1401301424\tlocaltime=May 28 11:23:44\tcompleted successfully\n13:23:44 INFO | autoserv| END GOOD\ttelemetry_Crosperf\ttelemetry_Crosperf\ttimestamp=1401301424\tlocaltime=May 28 11:23:44\n13:23:44 INFO | autoserv| Finished processing control file\n13:23:44 INFO | autoserv| Starting master ssh connection '/usr/bin/ssh -a -x -N -o ControlMaster=yes -o ControlPath=/tmp/_autotmp_UyjlWMssh-master/socket -o StrictHostKeyChecking=no -o UserKnownHostsFile=/tmp/tmpCvMigR -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=300 -l root -p 22 chromeos2-row2-rack4-host11.cros'\n13:23:45 INFO | autoserv| Starting master ssh connection '/usr/bin/ssh -a -x   -N -o ControlMaster=yes -o ControlPath=/tmp/_autotmp_w_KGTassh-master/socket -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=180 -o ServerAliveCountMax=3 -o ConnectionAttempts=4 -o Protocol=2 -l root -p 22 chromeos2-row2-rack4-host11.cros'\n-----------------------------------------------------------------------------------------\n/tmp/test_that_results_zZZfQa/results-1-telemetry_Crosperf                    [  PASSED  ]\n/tmp/test_that_results_zZZfQa/results-1-telemetry_Crosperf/telemetry_Crosperf [  PASSED  ]\n-----------------------------------------------------------------------------------------\nTotal PASS: 2/2 (100%)\n\n13:23:47 INFO | Finished running tests. Results can be found in /tmp/test_that_results_zZZfQa\n"
+p0
+.S'INFO:root:Identity added: /tmp/test_that_results_PPRMIh/testing_rsa (/tmp/test_that_results_PPRMIh/testing_rsa)\nINFO:root:Identity added: /tmp/test_that_results_zZZfQa/testing_rsa (/tmp/test_that_results_zZZfQa/testing_rsa)\n'
+p0
+.I0
+.
\ No newline at end of file
diff --git a/crosperf/test_cache/test_puretelemetry_input/machine.txt b/crosperf/test_cache/test_puretelemetry_input/machine.txt
new file mode 100644
index 0000000..9bd7843
--- /dev/null
+++ b/crosperf/test_cache/test_puretelemetry_input/machine.txt
@@ -0,0 +1 @@
+processor	: 0vendor_id	: GenuineIntelcpu family	: 6model		: 42model name	: Intel(R) Celeron(R) CPU 867 @ 1.30GHzstepping	: 7microcode	: 0x25cache size	: 2048 KBphysical id	: 0siblings	: 2core id		: 0cpu cores	: 2apicid		: 0initial apicid	: 0fpu		: yesfpu_exception	: yescpuid level	: 13wp		: yesflags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpidclflush size	: 64cache_alignment	: 64address sizes	: 36 bits physical, 48 bits virtualpower management:processor	: 1vendor_id	: GenuineIntelcpu family	: 6model		: 42model name	: Intel(R) Celeron(R) CPU 867 @ 1.30GHzstepping	: 7microcode	: 0x25cache size	: 2048 KBphysical id	: 0siblings	: 2core id		: 1cpu cores	: 2apicid		: 2initial apicid	: 2fpu		: yesfpu_exception	: yescpuid level	: 13wp		: yesflags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpidclflush size	: 64cache_alignment	: 64address sizes	: 36 bits physical, 48 bits virtualpower management: 4194304
\ No newline at end of file
diff --git a/crosperf/test_cache/test_puretelemetry_input/results.txt b/crosperf/test_cache/test_puretelemetry_input/results.txt
new file mode 100644
index 0000000..497d1cf
--- /dev/null
+++ b/crosperf/test_cache/test_puretelemetry_input/results.txt
@@ -0,0 +1,6 @@
+S'page_name,3d-cube (ms),3d-morph (ms),3d-raytrace (ms),Total (ms),access-binary-trees (ms),access-fannkuch (ms),access-nbody (ms),access-nsieve (ms),bitops-3bit-bits-in-byte (ms),bitops-bits-in-byte (ms),bitops-bitwise-and (ms),bitops-nsieve-bits (ms),controlflow-recursive (ms),crypto-aes (ms),crypto-md5 (ms),crypto-sha1 (ms),date-format-tofte (ms),date-format-xparb (ms),math-cordic (ms),math-partial-sums (ms),math-spectral-norm (ms),regexp-dna (ms),string-base64 (ms),string-fasta (ms),string-tagcloud (ms),string-unpack-code (ms),string-validate-input (ms)\r\nhttp://www.webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html,42.7,50.2,28.7,656.5,7.3,26.3,6.9,8.6,3.5,9.8,8.8,9.3,5.3,19.2,10.8,12.4,31.2,138.1,11.4,32.8,6.3,16.1,17.5,36.3,47.2,45.0,24.8\r\n'
+p0
+.S''
+p0
+.I0
+.
\ No newline at end of file
diff --git a/crosperf/test_flag.py b/crosperf/test_flag.py
new file mode 100644
index 0000000..7091869
--- /dev/null
+++ b/crosperf/test_flag.py
@@ -0,0 +1,12 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""A global variable for testing."""
+
+is_test = [False]
+
+
+def SetTestMode(flag):
+  is_test[0] = flag
+
+
+def GetTestMode():
+  return is_test[0]
diff --git a/crosperf/translate_xbuddy.py b/crosperf/translate_xbuddy.py
new file mode 100644
index 0000000..a32854e
--- /dev/null
+++ b/crosperf/translate_xbuddy.py
@@ -0,0 +1,33 @@
+"""Module to translate the xbuddy config."""
+
+from __future__ import print_function
+
+import os
+import sys
+
+if '/mnt/host/source/src/third_party/toolchain-utils/crosperf' in sys.path:
+  dev_path = os.path.expanduser('~/trunk/src/platform/dev')
+  sys.path.append(dev_path)
+else:
+  print('This script can only be run from inside a ChromeOS chroot.  Please '
+        'enter your chroot, go to ~/src/third_party/toolchain-utils/crosperf'
+        ' and try again.')
+  sys.exit(0)
+
+#pylint: disable=import-error
+import xbuddy
+
+
+def Main(xbuddy_string):
+  if not os.path.exists('./xbuddy_config.ini'):
+    config_path = os.path.expanduser('~/trunk/src/platform/dev/'
+                                     'xbuddy_config.ini')
+    os.symlink(config_path, './xbuddy_config.ini')
+  x = xbuddy.XBuddy(manage_builds=False, static_dir='/tmp/devserver/static')
+  build_id = x.Translate(os.path.split(xbuddy_string))
+  return build_id
+
+
+if __name__ == '__main__':
+  print(Main(sys.argv[1]))
+  sys.exit(0)
diff --git a/crosperf/unittest_keyval_file.txt b/crosperf/unittest_keyval_file.txt
new file mode 100644
index 0000000..cc76398
--- /dev/null
+++ b/crosperf/unittest_keyval_file.txt
@@ -0,0 +1,20 @@
+{"description": "Box2D", "graph": "Box2D", "higher_is_better": true, "units": "score", "value": 4775}
+{"description": "CodeLoad", "graph": "CodeLoad", "higher_is_better": true, "units": "score", "value": 6271}
+{"description": "Crypto", "graph": "Crypto", "higher_is_better": true, "units": "score", "value": 8737}
+{"description": "DeltaBlue", "graph": "DeltaBlue", "higher_is_better": true, "units": "score", "value": 14401}
+{"description": "EarleyBoyer", "graph": "EarleyBoyer", "higher_is_better": true, "units": "score", "value": 14340}
+{"description": "Gameboy", "graph": "Gameboy", "higher_is_better": true, "units": "score", "value": 9901}
+{"description": "Mandreel", "graph": "Mandreel", "higher_is_better": true, "units": "score", "value": 6620}
+{"description": "MandreelLatency", "graph": "MandreelLatency", "higher_is_better": true, "units": "score", "value": 5188}
+{"description": "NavierStokes", "graph": "NavierStokes", "higher_is_better": true, "units": "score", "value": 9815}
+{"description": "PdfJS", "graph": "PdfJS", "higher_is_better": true, "units": "score", "value": 6455}
+{"description": "RayTrace", "graph": "RayTrace", "higher_is_better": true, "units": "score", "value": 16600}
+{"description": "RegExp", "graph": "RegExp", "higher_is_better": true, "units": "score", "value": 1765}
+{"description": "Richards", "graph": "Richards", "higher_is_better": true, "units": "score", "value": 10358}
+{"description": "Splay", "graph": "Splay", "higher_is_better": true, "units": "score", "value": 4425}
+{"description": "SplayLatency", "graph": "SplayLatency", "higher_is_better": true, "units": "score", "value": 7653}
+{"description": "Typescript", "graph": "Typescript", "higher_is_better": true, "units": "score", "value": 9815}
+{"description": "zlib", "graph": "zlib", "higher_is_better": true, "units": "score", "value": 16094}
+{"description": "Score", "graph": "Total", "higher_is_better": true, "units": "score", "value": 7918}
+{"description": "num_failed", "graph": "telemetry_page_measurement_results", "higher_is_better": true, "units": "count", "value": 0}
+{"description": "num_errored", "graph": "telemetry_page_measurement_results", "higher_is_better": true, "units": "count", "value": 0}
diff --git a/cwp/bartlett/app.yaml b/cwp/bartlett/app.yaml
new file mode 100644
index 0000000..60010f7
--- /dev/null
+++ b/cwp/bartlett/app.yaml
@@ -0,0 +1,22 @@
+application: chromeoswideprofiling
+version: 1
+runtime: python
+api_version: 1
+
+handlers:
+- url: /favicon.ico
+  static_files: static/favicon.ico
+  upload: static/favicon.ico
+- url: /remote_api
+  script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
+  login: admin
+- url: /
+  script: server.py
+- url: /upload
+  script: server.py
+- url: /serve
+  script: server.py
+- url: /serve/.*
+  script: server.py
+- url: /del/.*
+  script: server.py
diff --git a/cwp/bartlett/server.py b/cwp/bartlett/server.py
new file mode 100755
index 0000000..f6b3536
--- /dev/null
+++ b/cwp/bartlett/server.py
@@ -0,0 +1,153 @@
+#!/usr/bin/python
+# Copyright 2012 Google Inc. All Rights Reserved.
+# Author: mrdmnd@ (Matt Redmond)
+# Based off of code in //depot/google3/experimental/mobile_gwp
+"""Code to transport profile data between a user's machine and the CWP servers.
+    Pages:
+    "/": the main page for the app, left blank so that users cannot access
+         the file upload but left in the code for debugging purposes
+    "/upload": Updates the datastore with a new file. the upload depends on
+               the format which is templated on the main page ("/")
+               input includes:
+                    profile_data: the zipped file containing profile data
+                    board:  the architecture we ran on
+                    chromeos_version: the chromeos_version
+    "/serve": Lists all of the files in the datastore. Each line is a new entry
+              in the datastore. The format is key~date, where key is the entry's
+              key in the datastore and date is the file upload time and date.
+              (Authentication Required)
+    "/serve/([^/]+)?": For downloading a file of profile data, ([^/]+)? means
+                       any character sequence so to download the file go to
+                       '/serve/$key' where $key is the datastore key of the file
+                       you want to download.
+                       (Authentication Required)
+    "/del/([^/]+)?": For deleting an entry in the datastore. To use go to
+                     '/del/$key' where $key is the datastore key of the entry
+                     you want to be deleted form the datastore.
+                     (Authentication Required)
+    TODO: Add more extensive logging"""
+
+import cgi
+import logging
+import md5
+import urllib
+
+from google.appengine.api import users
+from google.appengine.ext import db
+from google.appengine.ext import webapp
+from google.appengine.ext.webapp.util import run_wsgi_app
+
+logging.getLogger().setLevel(logging.DEBUG)
+
+
+class FileEntry(db.Model):
+  profile_data = db.BlobProperty()  # The profile data
+  date = db.DateTimeProperty(auto_now_add=True)  # Date it was uploaded
+  data_md5 = db.ByteStringProperty()  # md5 of the profile data
+  board = db.StringProperty()  # board arch
+  chromeos_version = db.StringProperty()  # ChromeOS version
+
+
+class MainPage(webapp.RequestHandler):
+  """Main page only used as the form template, not actually displayed."""
+
+  def get(self, response=''):  # pylint: disable-msg=C6409
+    if response:
+      self.response.out.write('<html><body>')
+      self.response.out.write("""<br>
+        <form action="/upload" enctype="multipart/form-data" method="post">
+          <div><label>Profile Data:</label></div>
+          <div><input type="file" name="profile_data"/></div>
+          <div><label>Board</label></div>
+          <div><input type="text" name="board"/></div>
+          <div><label>ChromeOS Version</label></div>
+          <div><input type="text" name="chromeos_version"></div>
+          <div><input type="submit" value="send" name="submit"></div>
+        </form>
+      </body>
+      </html>""")
+
+
+class Upload(webapp.RequestHandler):
+  """Handler for uploading data to the datastore, accessible by anyone."""
+
+  def post(self):  # pylint: disable-msg=C6409
+    """Takes input based on the main page's form."""
+    getfile = FileEntry()
+    f1 = self.request.get('profile_data')
+    getfile.profile_data = db.Blob(f1)
+    getfile.data_md5 = md5.new(f1).hexdigest()
+    getfile.board = self.request.get('board')
+    getfile.chromeos_version = self.request.get('chromeos_version')
+    getfile.put()
+    self.response.out.write(getfile.key())
+    #self.redirect('/')
+
+
+class ServeHandler(webapp.RequestHandler):
+  """Given the entry's key in the database, output the profile data file. Only
+      accessible from @google.com accounts."""
+
+  def get(self, resource):  # pylint: disable-msg=C6409
+    if Authenticate(self):
+      file_key = str(urllib.unquote(resource))
+      request = db.get(file_key)
+      self.response.out.write(request.profile_data)
+
+
+class ListAll(webapp.RequestHandler):
+  """Displays all files uploaded. Only accessible by @google.com accounts."""
+
+  def get(self):  # pylint: disable-msg=C6409
+    """Displays all information in FileEntry, ~ delimited."""
+    if Authenticate(self):
+      query_str = 'SELECT * FROM FileEntry ORDER BY date ASC'
+      query = db.GqlQuery(query_str)
+      delimiter = '~'
+
+      for item in query:
+        display_list = [item.key(), item.date, item.data_md5, item.board,
+                        item.chromeos_version]
+        str_list = [cgi.escape(str(i)) for i in display_list]
+        self.response.out.write(delimiter.join(str_list) + '</br>')
+
+
+class DelEntries(webapp.RequestHandler):
+  """Deletes entries. Only accessible from @google.com accounts."""
+
+  def get(self, resource):  # pylint: disable-msg=C6409
+    """A specific entry is deleted, when the key is given."""
+    if Authenticate(self):
+      fkey = str(urllib.unquote(resource))
+      request = db.get(fkey)
+      if request:
+        db.delete(fkey)
+
+
+def Authenticate(webpage):
+  """Some urls are only accessible if logged in with a @google.com account."""
+  user = users.get_current_user()
+  if user is None:
+    webpage.redirect(users.create_login_url(webpage.request.uri))
+  elif user.email().endswith('@google.com'):
+    return True
+  else:
+    webpage.response.out.write('Not Authenticated')
+    return False
+
+
+def main():
+  application = webapp.WSGIApplication(
+      [
+          ('/', MainPage),
+          ('/upload', Upload),
+          ('/serve/([^/]+)?', ServeHandler),
+          ('/serve', ListAll),
+          ('/del/([^/]+)?', DelEntries),
+      ],
+      debug=False)
+  run_wsgi_app(application)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/cwp/bartlett/static/favicon.ico b/cwp/bartlett/static/favicon.ico
new file mode 100644
index 0000000..19b58c2
--- /dev/null
+++ b/cwp/bartlett/static/favicon.ico
Binary files differ
diff --git a/cwp/bartlett/test/server_tester.py b/cwp/bartlett/test/server_tester.py
new file mode 100644
index 0000000..585da43
--- /dev/null
+++ b/cwp/bartlett/test/server_tester.py
@@ -0,0 +1,101 @@
+# Copyright 2012 Google Inc. All Rights Reserved.
+# Author: mrdmnd@ (Matt Redmond)
+"""A unit test for sending data to Bartlett. Requires poster module."""
+
+import cookielib
+import os
+import signal
+import subprocess
+import tempfile
+import time
+import unittest
+import urllib2
+
+from poster.encode import multipart_encode
+from poster.streaminghttp import register_openers
+
+SERVER_DIR = '../.'
+SERVER_URL = 'http://localhost:8080/'
+GET = '_ah/login?email=googler@google.com&action=Login&continue=%s'
+AUTH_URL = SERVER_URL + GET
+
+
+class ServerTest(unittest.TestCase):
+  """A unit test for the bartlett server. Tests upload, serve, and delete."""
+
+  def setUp(self):
+    """Instantiate the files and server needed to test upload functionality."""
+    self._server_proc = LaunchLocalServer()
+    self._jar = cookielib.LWPCookieJar()
+    self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self._jar))
+
+    # We need these files to not delete when closed, because we have to reopen
+    # them in read mode after we write and close them.
+    self.profile_data = tempfile.NamedTemporaryFile(delete=False)
+
+    size = 16 * 1024
+    self.profile_data.write(os.urandom(size))
+
+  def tearDown(self):
+    self.profile_data.close()
+    os.remove(self.profile_data.name)
+    os.kill(self._server_proc.pid, signal.SIGINT)
+
+  def testIntegration(self):  # pylint: disable-msg=C6409
+    key = self._testUpload()
+    self._testListAll()
+    self._testServeKey(key)
+    self._testDelKey(key)
+
+  def _testUpload(self):  # pylint: disable-msg=C6409
+    register_openers()
+    data = {'profile_data': self.profile_data,
+            'board': 'x86-zgb',
+            'chromeos_version': '2409.0.2012_06_08_1114'}
+    datagen, headers = multipart_encode(data)
+    request = urllib2.Request(SERVER_URL + 'upload', datagen, headers)
+    response = urllib2.urlopen(request).read()
+    self.assertTrue(response)
+    return response
+
+  def _testListAll(self):  # pylint: disable-msg=C6409
+    request = urllib2.Request(AUTH_URL % (SERVER_URL + 'serve'))
+    response = self.opener.open(request).read()
+    self.assertTrue(response)
+
+  def _testServeKey(self, key):  # pylint: disable-msg=C6409
+    request = urllib2.Request(AUTH_URL % (SERVER_URL + 'serve/' + key))
+    response = self.opener.open(request).read()
+    self.assertTrue(response)
+
+  def _testDelKey(self, key):  # pylint: disable-msg=C6409
+    # There is no response to a delete request.
+    # We will check the listAll page to ensure there is no data.
+    request = urllib2.Request(AUTH_URL % (SERVER_URL + 'del/' + key))
+    response = self.opener.open(request).read()
+    request = urllib2.Request(AUTH_URL % (SERVER_URL + 'serve'))
+    response = self.opener.open(request).read()
+    self.assertFalse(response)
+
+
+def LaunchLocalServer():
+  """Launch and store an authentication cookie with a local server."""
+  proc = subprocess.Popen(
+      ['dev_appserver.py', '--clear_datastore', SERVER_DIR],
+      stdout=subprocess.PIPE,
+      stderr=subprocess.PIPE)
+  # Wait for server to come up
+  while True:
+    time.sleep(1)
+    try:
+      request = urllib2.Request(SERVER_URL + 'serve')
+      response = urllib2.urlopen(request).read()
+      if response:
+        break
+    except urllib2.URLError:
+      continue
+  return proc
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/cwp/bartlett/update_appengine_server b/cwp/bartlett/update_appengine_server
new file mode 100755
index 0000000..f381205
--- /dev/null
+++ b/cwp/bartlett/update_appengine_server
@@ -0,0 +1 @@
+appcfg.py --oauth2 update .
diff --git a/cwp/demo_pipeline.sh b/cwp/demo_pipeline.sh
new file mode 100644
index 0000000..d45c5c4
--- /dev/null
+++ b/cwp/demo_pipeline.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# These should be on the local filesystem. We'll be hitting it hard.
+DATA_DIR=/usr/local/google/home/${USER}/
+SYMBOL_CACHE=${DATA_DIR}cache/
+REPORT_DIR=${DATA_DIR}reports/
+SAMPLE_DIR=${DATA_DIR}samples/
+RECORD_FILE=/tmp/profiles.rio
+COLUMN_FILE=/tmp/profiles.cio
+mkdir -p ${SYMBOL_CACHE}
+mkdir -p ${REPORT_DIR}
+mkdir -p ${SAMPLE_DIR}
+
+# Directory that has the scripts app_engine_pull.py and symbolizer.py
+INTERPRETER_DIR=/google/src/files/p2/head/depot2/gcctools/chromeos/v14/cwp/interpreter/
+V14_DIR=$(dirname $(dirname ${INTERPRETER_DIR}))
+
+PYTHONPATH=$PYTHONPATH:$V14_DIR
+
+# Profile util binary
+PROFILE_UTIL_BINARY=/home/mrdmnd/${USER}-profiledb/google3/blaze-bin/perftools/gwp/chromeos/profile_util
+
+# mr-convert binary
+MR_CONVERT_BINARY=/home/build/static/projects/dremel/mr-convert
+
+CNS_LOC=/cns/ag-d/home/${USER}/profiledb/
+
+# Protofile location
+PROTO_LOC=${CNS_LOC}cwp_profile_db_entry.proto
+
+echo "0. Cleaning up old data."
+rm /tmp/profiles.*
+rm ${REPORT_DIR}*
+rm ${SAMPLE_DIR}*
+
+
+echo "Starting CWP Pipeline..."
+echo "1. Pulling samples to local filesystem from server."
+echo "   For demo purposes, UN=${USER}@google.com, PW=xjpbmshkzefutlrm"
+python ${INTERPRETER_DIR}app_engine_pull.py --output_dir=${SAMPLE_DIR}
+echo "2. Symbolizing samples to perf reports. Hold on..."
+
+python ${INTERPRETER_DIR}symbolizer.py --in=${SAMPLE_DIR} --out=${REPORT_DIR} --cache=${SYMBOL_CACHE}
+echo "3. Loading reports into RecordIO format..."
+# Will need to make append_dir more clever / incremental
+${PROFILE_UTIL_BINARY} --record=${RECORD_FILE} --append_dir=${REPORT_DIR}
+echo "Done."
+echo "4. Converting records to columnio."
+${MR_CONVERT_BINARY} --mapreduce_input_map=recordio:${RECORD_FILE} --mapreduce_output_map=${COLUMN_FILE}@1 --columnio_mroutput_message_type=CwpProfileDbEntry --columnio_mroutput_protofiles=${PROTO_LOC}
+echo "5. Uploading columnio to colossus."
+fileutil cp -f /tmp/profiles.cio-* ${CNS_LOC}
+echo "6. Let's try some dremel queries..."
+echo "   dremel> define table t /cns/ag-d/home/${USER}/profiledb/profiles.cio-*"
+echo "   Like, say, dremel> select sum(frames.count) as count, left(frames.function_name, 80) as name from t group by name order by count desc limit 25;"
+
diff --git a/cwp/interpreter/app_engine_pull.py b/cwp/interpreter/app_engine_pull.py
new file mode 100644
index 0000000..d092e2a
--- /dev/null
+++ b/cwp/interpreter/app_engine_pull.py
@@ -0,0 +1,253 @@
+# Copyright 2012 Google Inc. All Rights Reserved.
+# Author: mrdmnd@ (Matt Redmond)
+"""A client to pull data from Bartlett.
+
+Inspired by //depot/google3/experimental/mobile_gwp/database/app_engine_pull.py
+
+The server houses perf.data.gz, board, chrome version for each upload.
+This script first authenticates with a proper @google.com account, then
+downloads a sample (if it's not already cached) and unzips perf.data
+
+  Authenticate(): Gets login info and returns an auth token
+  DownloadSamples(): Download and unzip samples.
+  _GetServePage(): Pulls /serve page from the app engine server
+  _DownloadSampleFromServer(): Downloads a local compressed copy of a sample
+  _UncompressSample(): Decompresses a sample, deleting the compressed version.
+"""
+import cookielib
+import getpass
+import gzip
+import optparse
+import os
+import urllib
+import urllib2
+
+SERVER_NAME = 'http://chromeoswideprofiling.appspot.com'
+APP_NAME = 'chromeoswideprofiling'
+DELIMITER = '~'
+
+
+def Authenticate(server_name):
+  """Gets credentials from user and attempts to retrieve auth token.
+     TODO: Accept OAuth2 instead of password.
+  Args:
+    server_name: (string) URL that the app engine code is living on.
+  Returns:
+    authtoken: (string) The authorization token that can be used
+                        to grab other pages.
+  """
+
+  if server_name.endswith('/'):
+    server_name = server_name.rstrip('/')
+  # Grab username and password from user through stdin.
+  username = raw_input('Email (must be @google.com account): ')
+  password = getpass.getpass('Password: ')
+  # Use a cookie to authenticate with GAE.
+  cookiejar = cookielib.LWPCookieJar()
+  opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
+  urllib2.install_opener(opener)
+  # Get an AuthToken from Google accounts service.
+  auth_uri = 'https://www.google.com/accounts/ClientLogin'
+  authreq_data = urllib.urlencode({'Email': username,
+                                   'Passwd': password,
+                                   'service': 'ah',
+                                   'source': APP_NAME,
+                                   'accountType': 'HOSTED_OR_GOOGLE'})
+  auth_req = urllib2.Request(auth_uri, data=authreq_data)
+  try:
+    auth_resp = urllib2.urlopen(auth_req)
+  except urllib2.URLError:
+    print 'Error logging in to Google accounts service.'
+    return None
+  body = auth_resp.read()
+  # Auth response contains several fields.
+  # We care about the part after Auth=
+  auth_resp_dict = dict(x.split('=') for x in body.split('\n') if x)
+  authtoken = auth_resp_dict['Auth']
+  return authtoken
+
+
+def DownloadSamples(server_name, authtoken, output_dir, start, stop):
+  """Download every sample and write unzipped version
+     to output directory.
+  Args:
+    server_name: (string) URL that the app engine code is living on.
+    authtoken:   (string) Authorization token.
+    output_dir   (string) Filepath to write output to.
+    start:       (int)    Index to start downloading from, starting at top.
+    stop:        (int)    Index to stop downloading, non-inclusive. -1 for end.
+  Returns:
+    None
+  """
+
+  if server_name.endswith('/'):
+    server_name = server_name.rstrip('/')
+
+  serve_page_string = _GetServePage(server_name, authtoken)
+  if serve_page_string is None:
+    print 'Error getting /serve page.'
+    return
+
+  sample_list = serve_page_string.split('</br>')
+  print 'Will download:'
+  sample_list_subset = sample_list[start:stop]
+  for sample in sample_list_subset:
+    print sample
+  for sample in sample_list_subset:
+    assert sample, 'Sample should be valid.'
+    sample_info = [s.strip() for s in sample.split(DELIMITER)]
+    key = sample_info[0]
+    time = sample_info[1]
+    time = time.replace(' ', '_')  # No space between date and time.
+    # sample_md5 = sample_info[2]
+    board = sample_info[3]
+    version = sample_info[4]
+
+    # Put a compressed copy of the samples in output directory.
+    _DownloadSampleFromServer(server_name, authtoken, key, time, board, version,
+                              output_dir)
+    _UncompressSample(key, time, board, version, output_dir)
+
+
+def _BuildFilenameFromParams(key, time, board, version):
+  """Return the filename for our sample.
+  Args:
+    key:  (string) Key indexing our sample in the datastore.
+    time: (string) Date that the sample was uploaded.
+    board: (string) Board that the sample was taken on.
+    version: (string) Version string from /etc/lsb-release
+  Returns:
+    filename (string)
+  """
+  filename = DELIMITER.join([key, time, board, version])
+  return filename
+
+
+def _DownloadSampleFromServer(server_name, authtoken, key, time, board, version,
+                              output_dir):
+  """Downloads sample_$(samplekey).gz to current dir.
+  Args:
+    server_name: (string) URL that the app engine code is living on.
+    authtoken:   (string) Authorization token.
+    key:  (string) Key indexing our sample in the datastore
+    time: (string) Date that the sample was uploaded.
+    board: (string) Board that the sample was taken on.
+    version: (string) Version string from /etc/lsb-release
+    output_dir:  (string) Filepath to write to output to.
+  Returns:
+    None
+  """
+  filename = _BuildFilenameFromParams(key, time, board, version)
+  compressed_filename = filename + '.gz'
+
+  if os.path.exists(os.path.join(output_dir, filename)):
+    print 'Already downloaded %s, skipping.' % filename
+    return
+
+  serv_uri = server_name + '/serve/' + key
+  serv_args = {'continue': serv_uri, 'auth': authtoken}
+  full_serv_uri = server_name + '/_ah/login?%s' % urllib.urlencode(serv_args)
+  serv_req = urllib2.Request(full_serv_uri)
+  serv_resp = urllib2.urlopen(serv_req)
+  f = open(os.path.join(output_dir, compressed_filename), 'w+')
+  f.write(serv_resp.read())
+  f.close()
+
+
+def _UncompressSample(key, time, board, version, output_dir):
+  """Uncompresses a given sample.gz file and deletes the compressed version.
+  Args:
+    key: (string) Sample key to uncompress.
+    time: (string) Date that the sample was uploaded.
+    board: (string) Board that the sample was taken on.
+    version: (string) Version string from /etc/lsb-release
+    output_dir: (string) Filepath to find sample key in.
+  Returns:
+    None
+  """
+  filename = _BuildFilenameFromParams(key, time, board, version)
+  compressed_filename = filename + '.gz'
+
+  if os.path.exists(os.path.join(output_dir, filename)):
+    print 'Already decompressed %s, skipping.' % filename
+    return
+
+  out_file = open(os.path.join(output_dir, filename), 'wb')
+  in_file = gzip.open(os.path.join(output_dir, compressed_filename), 'rb')
+  out_file.write(in_file.read())
+  in_file.close()
+  out_file.close()
+  os.remove(os.path.join(output_dir, compressed_filename))
+
+
+def _DeleteSampleFromServer(server_name, authtoken, key):
+  """Opens the /delete page with the specified key
+     to delete the sample off the datastore.
+    Args:
+      server_name: (string) URL that the app engine code is living on.
+      authtoken:   (string) Authorization token.
+      key:  (string) Key to delete.
+    Returns:
+      None
+  """
+
+  serv_uri = server_name + '/del/' + key
+  serv_args = {'continue': serv_uri, 'auth': authtoken}
+  full_serv_uri = server_name + '/_ah/login?%s' % urllib.urlencode(serv_args)
+  serv_req = urllib2.Request(full_serv_uri)
+  urllib2.urlopen(serv_req)
+
+
+def _GetServePage(server_name, authtoken):
+  """Opens the /serve page and lists all keys.
+  Args:
+    server_name: (string) URL the app engine code is living on.
+    authtoken:   (string) Authorization token.
+  Returns:
+    The text of the /serve page (including HTML tags)
+  """
+
+  serv_uri = server_name + '/serve'
+  serv_args = {'continue': serv_uri, 'auth': authtoken}
+  full_serv_uri = server_name + '/_ah/login?%s' % urllib.urlencode(serv_args)
+  serv_req = urllib2.Request(full_serv_uri)
+  serv_resp = urllib2.urlopen(serv_req)
+  return serv_resp.read()
+
+
+def main():
+  parser = optparse.OptionParser()
+  parser.add_option('--output_dir',
+                    dest='output_dir',
+                    action='store',
+                    help='Path to output perf data files.')
+  parser.add_option('--start',
+                    dest='start_ind',
+                    action='store',
+                    default=0,
+                    help='Start index.')
+  parser.add_option('--stop',
+                    dest='stop_ind',
+                    action='store',
+                    default=-1,
+                    help='Stop index.')
+  options = parser.parse_args()[0]
+  if not options.output_dir:
+    print 'Must specify --output_dir.'
+    return 1
+  if not os.path.exists(options.output_dir):
+    print 'Specified output_dir does not exist.'
+    return 1
+
+  authtoken = Authenticate(SERVER_NAME)
+  if not authtoken:
+    print 'Could not obtain authtoken, exiting.'
+    return 1
+  DownloadSamples(SERVER_NAME, authtoken, options.output_dir, options.start_ind,
+                  options.stop_ind)
+  print 'Downloaded samples.'
+  return 0
+
+
+if __name__ == '__main__':
+  exit(main())
diff --git a/cwp/interpreter/symbolizer.py b/cwp/interpreter/symbolizer.py
new file mode 100644
index 0000000..4ece480
--- /dev/null
+++ b/cwp/interpreter/symbolizer.py
@@ -0,0 +1,129 @@
+# Copyright 2012 Google Inc. All Rights Reserved.
+"""A script that symbolizes perf.data files."""
+import optparse
+import os
+import shutil
+from subprocess import call
+from subprocess import PIPE
+from subprocess import Popen
+from cros_utils import misc
+
+GSUTIL_CMD = 'gsutil cp gs://chromeos-image-archive/%s-release/%s/debug.tgz %s'
+TAR_CMD = 'tar -zxvf %s -C %s'
+PERF_BINARY = '/google/data/ro/projects/perf/perf'
+VMLINUX_FLAG = ' --vmlinux=/usr/lib/debug/boot/vmlinux'
+PERF_CMD = PERF_BINARY + ' report -i %s -n --symfs=%s' + VMLINUX_FLAG
+
+
+def main():
+  parser = optparse.OptionParser()
+  parser.add_option('--in', dest='in_dir')
+  parser.add_option('--out', dest='out_dir')
+  parser.add_option('--cache', dest='cache')
+  (opts, _) = parser.parse_args()
+  if not _ValidateOpts(opts):
+    return 1
+  else:
+    for filename in os.listdir(opts.in_dir):
+      try:
+        _DownloadSymbols(filename, opts.cache)
+        _PerfReport(filename, opts.in_dir, opts.out_dir, opts.cache)
+      except:
+        print 'Exception caught. Continuing...'
+  return 0
+
+
+def _ValidateOpts(opts):
+  """Ensures all directories exist, before attempting to populate."""
+  if not os.path.exists(opts.in_dir):
+    print "Input directory doesn't exist."
+    return False
+  if not os.path.exists(opts.out_dir):
+    print "Output directory doesn't exist. Creating it..."
+    os.makedirs(opts.out_dir)
+  if not os.path.exists(opts.cache):
+    print "Cache directory doesn't exist."
+    return False
+  return True
+
+
+def _ParseFilename(filename, canonical=False):
+  """Returns a tuple (key, time, board, lsb_version).
+     If canonical is True, instead returns (database_key, board, canonical_vers)
+     canonical_vers includes the revision string.
+  """
+  key, time, board, vers = filename.split('~')
+  if canonical:
+    vers = misc.GetChromeOSVersionFromLSBVersion(vers)
+  return (key, time, board, vers)
+
+
+def _FormReleaseDir(board, version):
+  return '%s-release~%s' % (board, version)
+
+
+def _DownloadSymbols(filename, cache):
+  """ Incrementally downloads appropriate symbols.
+      We store the downloads in cache, with each set of symbols in a TLD
+      named like cache/$board-release~$canonical_vers/usr/lib/debug
+  """
+  _, _, board, vers = _ParseFilename(filename, canonical=True)
+  tmp_suffix = '.tmp'
+
+  tarball_subdir = _FormReleaseDir(board, vers)
+  tarball_dir = os.path.join(cache, tarball_subdir)
+  tarball_path = os.path.join(tarball_dir, 'debug.tgz')
+
+  symbol_subdir = os.path.join('usr', 'lib')
+  symbol_dir = os.path.join(tarball_dir, symbol_subdir)
+
+  if os.path.isdir(symbol_dir):
+    print 'Symbol directory %s exists, skipping download.' % symbol_dir
+    return
+  else:
+    # First download using gsutil.
+    if not os.path.isfile(tarball_path):
+      download_cmd = GSUTIL_CMD % (board, vers, tarball_path + tmp_suffix)
+      print 'Downloading symbols for %s' % filename
+      print download_cmd
+      ret = call(download_cmd.split())
+      if ret != 0:
+        print 'gsutil returned non-zero error code: %s.' % ret
+        # Clean up the empty directory structures.
+        os.remove(tarball_path + tmp_suffix)
+        raise IOError
+
+      shutil.move(tarball_path + tmp_suffix, tarball_path)
+
+    # Next, untar the tarball.
+    os.makedirs(symbol_dir + tmp_suffix)
+    extract_cmd = TAR_CMD % (tarball_path, symbol_dir + tmp_suffix)
+    print 'Extracting symbols for %s' % filename
+    print extract_cmd
+    ret = call(extract_cmd.split())
+    if ret != 0:
+      print 'tar returned non-zero code: %s.' % ret
+      raise IOError
+    shutil.move(symbol_dir + tmp_suffix, symbol_dir)
+    os.remove(tarball_path)
+
+
+def _PerfReport(filename, in_dir, out_dir, cache):
+  """ Call perf report on the file, storing output to the output dir.
+      The output is currently stored as $out_dir/$filename
+  """
+  _, _, board, vers = _ParseFilename(filename, canonical=True)
+  symbol_cache_tld = _FormReleaseDir(board, vers)
+  input_file = os.path.join(in_dir, filename)
+  symfs = os.path.join(cache, symbol_cache_tld)
+  report_cmd = PERF_CMD % (input_file, symfs)
+  print 'Reporting.'
+  print report_cmd
+  report_proc = Popen(report_cmd.split(), stdout=PIPE)
+  outfile = open(os.path.join(out_dir, filename), 'w')
+  outfile.write(report_proc.stdout.read())
+  outfile.close()
+
+
+if __name__ == '__main__':
+  exit(main())
diff --git a/cwp/performance/experiment_gen.py b/cwp/performance/experiment_gen.py
new file mode 100644
index 0000000..a12da2c
--- /dev/null
+++ b/cwp/performance/experiment_gen.py
@@ -0,0 +1,138 @@
+# Copyright 2012 Google Inc. All Rights Reserved.
+"""This script generates a crosperf overhead-testing experiment file for MoreJS.
+
+Use: experiment_gen.py --crosperf=/home/mrdmnd/depot2/crosperf --chromeos_root=
+/home/mrdmnd/chromiumos --remote-host=chromeos-zgb3.mtv --board=x86-zgb --event=
+cycles -F 10 -F 20 -c 10582 -c 10785211 --perf_options="-g"
+"""
+
+import optparse
+import subprocess
+import sys
+import time
+
+HEADER = """
+board: %s
+remote: %s
+benchmark: baseline {
+ iterations: %s
+ autotest_name: desktopui_PyAutoPerfTests
+ autotest_args: --args='--iterations=%s perf.PageCyclerTest.testMoreJSFile'
+}"""
+
+EXPERIMENT = """
+benchmark: %s {
+ iterations: %s
+ autotest_name: desktopui_PyAutoPerfTests
+ autotest_args: --args='--iterations=%s perf.PageCyclerTest.testMoreJSFile' --profiler=custom_perf --profiler_args='perf_options="record -a %s %s -e %s"' \n}"""  # pylint: disable-msg=C6310
+
+DEFAULT_IMAGE = """
+default {
+ chromeos_image: %s/src/build/images/%s/latest/chromiumos_test_image.bin
+}"""
+
+
+def main():
+  parser = optparse.OptionParser()
+  parser.add_option('--crosperf',
+                    dest='crosperf_root',
+                    action='store',
+                    default='/home/mrdmnd/depot2/crosperf',
+                    help='Crosperf root directory.')
+  parser.add_option('--chromeos_root',
+                    dest='chromeos_root',
+                    action='store',
+                    default='/home/mrdmnd/chromiumos',
+                    help='ChromiumOS root directory.')
+  parser.add_option('--remote',
+                    dest='remote',
+                    action='store',
+                    help='Host to run test on. Required.')
+  parser.add_option('--board',
+                    dest='board',
+                    action='store',
+                    help='Board architecture to run on. Required.')
+  parser.add_option('--event',
+                    dest='event',
+                    action='store',
+                    help='Event to profile. Required.')
+  parser.add_option('-F',
+                    dest='sampling_frequencies',
+                    action='append',
+                    help='A target frequency to sample at.')
+  parser.add_option('-c',
+                    dest='sampling_periods',
+                    action='append',
+                    help='A target period to sample at. Event specific.')
+  parser.add_option('--benchmark-iterations',
+                    dest='benchmark_iterations',
+                    action='store',
+                    default=4,
+                    help='Number of benchmark iters')
+  parser.add_option('--test-iterations',
+                    dest='test_iterations',
+                    action='store',
+                    default=10,
+                    help='Number of test iters')
+  parser.add_option('-p',
+                    dest='print_only',
+                    action='store_true',
+                    help='If enabled, will print experiment file and exit.')
+  parser.add_option('--perf_options',
+                    dest='perf_options',
+                    action='store',
+                    help='Arbitrary flags to perf. Surround with dblquotes.')
+  options = parser.parse_args()[0]
+  if options.remote is None:
+    print '%s requires a remote hostname.' % sys.argv[0]
+    return 1
+  elif options.board is None:
+    print '%s requires a target board.' % sys.argv[0]
+    return 1
+  elif options.event is None:
+    print '%s requires an event to profile.' % sys.argv[0]
+    return 1
+  else:
+    crosperf_root = options.crosperf_root
+    chromeos_root = options.chromeos_root
+    remote = options.remote
+    board = options.board
+    event = options.event
+    bench_iters = options.benchmark_iterations
+    test_iters = options.test_iterations
+    perf_opts = options.perf_options
+    # Set up baseline test.
+    experiment_file = HEADER % (board, remote, bench_iters, test_iters)
+    # Set up experimental tests.
+    if options.sampling_frequencies:
+      for freq in options.sampling_frequencies:
+        test_string = str(freq) + 'Freq'
+        experiment_file += EXPERIMENT % (test_string, bench_iters, test_iters,
+                                         '-F %s' % freq, '' if perf_opts is None
+                                         else perf_opts, event)
+    if options.sampling_periods:
+      for period in options.sampling_periods:
+        test_string = str(period) + 'Period'
+        experiment_file += EXPERIMENT % (
+            test_string, bench_iters, test_iters, '-c %s' % period, '' if
+            perf_opts is None else perf_opts, event)
+    # Point to the target image.
+    experiment_file += DEFAULT_IMAGE % (chromeos_root, board)
+    if options.print_only:
+      print experiment_file
+    else:
+      current_time = int(round(time.time() * 1000))
+      file_name = 'perf_overhead_%s' % str(current_time)
+      with open(file_name, 'w') as f:
+        f.write(experiment_file)
+      try:
+        process = subprocess.Popen(['%s/crosperf' % crosperf_root, file_name])
+        process.communicate()
+      except OSError:
+        print 'Could not find crosperf, make sure --crosperf flag is set right.'
+        return 1
+    return 0
+
+
+if __name__ == '__main__':
+  exit(main())
diff --git a/dejagnu/__init__.py b/dejagnu/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/dejagnu/__init__.py
@@ -0,0 +1 @@
+
diff --git a/dejagnu/boards/chromeos-machine.exp b/dejagnu/boards/chromeos-machine.exp
new file mode 100644
index 0000000..b168b67
--- /dev/null
+++ b/dejagnu/boards/chromeos-machine.exp
@@ -0,0 +1,13 @@
+# Base description of a unix machine. This includes remote execution logic
+# through SSH
+
+load_base_board_description "unix"
+
+# Set hostname and username. # Make sure SSH keys are set up prior to run.
+set_board_info hostname $env(DEJAGNU_HOSTNAME)
+set_board_info username root
+
+set_board_info shell_prompt "dejagnu>"
+set chromeos_ssh_opts "-t -o StrictHostKeyChecking=no -o UserKnownHostsFile=/tmp/chromeos-toolchain/known_hosts -o ControlPath=/tmp/chromeos-toolchain/%r@%h:%p -i /tmp/chromeos-toolchain/private_key"
+set_board_info rsh_prog "alarm 40 /usr/bin/ssh ${chromeos_ssh_opts}"
+set_board_info rcp_prog "alarm 40 /usr/bin/scp ${chromeos_ssh_opts}"
diff --git a/dejagnu/boards/gdb.exp.in b/dejagnu/boards/gdb.exp.in
new file mode 100644
index 0000000..e4bbab3
--- /dev/null
+++ b/dejagnu/boards/gdb.exp.in
@@ -0,0 +1,133 @@
+# Copyright 2011-2012 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This file is a dejagnu "board file" and is used to run the testsuite
+# natively with gdbserver.
+#
+# To use this file:
+# bash$ touch ${my_dejagnu_dir}/my-dejagnu.exp
+# bash$ export DEJAGNU=${my_dejagnu_dir}/my-dejagnu.exp
+# bash$ mkdir ${my_dejagnu_dir}/boards
+# bash$ cp ${src_dir}/gdb/testsuite/boards/native-gdbserver.exp \
+#   ${my_dejagnu_dir}/boards
+# bash$ cd ${build_dir}/gdb
+# bash$ make check RUNTESTFLAGS="--target_board=native-gdbserver"
+
+load_generic_config "gdbserver"
+process_multilib_options ""
+
+# The default compiler for this target.
+set_board_info compiler "[find_gcc]"
+
+set_board_info cflags "-fno-stack-protector"
+set_board_info cxxflags "-fno-stack-protector"
+
+set remote_directory "/tmp"
+set chrome_device_ip __board_hostname__
+
+# This gdbserver can only run a process once per session.
+set_board_info gdb,do_reload_on_run 1
+
+# There's no support for argument-passing (yet).
+set_board_info noargs 1
+
+# Can't do input (or output) in the current gdbserver.
+set_board_info gdb,noinferiorio 1
+
+# gdbserver does not intercept target file operations and perform them
+# on the host.
+set_board_info gdb,nofileio 1
+
+#set_board_info sockethost "localhost:"
+set_board_info use_gdb_stub 1
+
+# We will be using the standard GDB remote protocol.
+set_board_info gdb_protocol "remote"
+
+# Test the copy of gdbserver in the build directory.
+# set_board_info gdb_server_prog "../gdbserver/gdbserver"
+
+# Can't do hardware watchpoints, in general (it depends on gdbserver support for your target arch)
+set_board_info gdb,no_hardware_watchpoints 1
+
+#Can't do record
+set_board_info gdb,use_precord 0
+set_board_info gdb,can_reverse 0
+
+
+set gdb_test_timeout 100
+set_board_info timeout 100
+
+set_board_info ssh,options "-i __tmp_testing_rsa__ -o ControlMaster=auto -o ControlPath=__tmp_dir__/%r@%h:%p -o StrictHostKeyChecking=no"
+
+set_board_info gdb_server_prog "__tmp_dir__/boards/gdbserver.sh "
+set_board_info sockethost "__board_hostname__:"
+set_board_info protocol standard
+set_board_info gdb,socketport "1234"
+
+
+proc ${board}_spawn { board cmd } {
+    global board_info
+
+    set baseboard [lindex [split $board "/"] 0]
+
+    set board_info($baseboard,isremote) 0
+    set result [remote_spawn $board $cmd]
+    set board_info($baseboard,isremote) 1
+
+    return $result
+}
+
+proc ${board}_exec { hostname program args } {
+    global board_info
+    verbose -log "$hostname $program $args"
+    set baseboard [lindex [split $hostname "/"] 0]
+
+    set board_info($baseboard,isremote) 0
+    set result [remote_exec $hostname $program $args]
+    set board_info($baseboard,isremote) 1
+
+    return $result
+}
+
+proc ${board}_download { board host dest } {
+    verbose -log "chrome_download $board $host $dest"
+    global board_info
+    set ssh_options [board_info $board ssh,options]
+    
+    global chrome_device_ip remote_directory remote_file
+    
+    verbose -log "scp -q $ssh_options $host root@$chrome_device_ip:$remote_directory/$dest"
+    set status [catch "exec scp -q $ssh_options $host root@$chrome_device_ip:$remote_directory/$dest" output]
+
+    if { $status == 0 } {
+        verbose -log "Copied $host to $remote_directory/$dest" 2
+        return "$remote_directory/$dest"
+    } else{
+        verbose -log "Download to $dest failed, $output." 2
+        return ""
+    }
+}
+
+proc ${board}_file { dest op args } {
+    if { $op == "delete" } {
+	return 0
+    }
+    return [eval [list standard_file $dest $op] $args]
+}
+
+proc skip_shlid_tests {} {
+  return 1
+}
diff --git a/dejagnu/boards/gdbserver.sh.in b/dejagnu/boards/gdbserver.sh.in
new file mode 100644
index 0000000..b74c685
--- /dev/null
+++ b/dejagnu/boards/gdbserver.sh.in
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+REMOTE_SSH_FLAGS="-i __tmp_testing_rsa__ -o StrictHostKeyChecking=no -o CheckHostIP=no -o BatchMode=yes  -o ControlMaster=auto -o ControlPath=__tmp_dir__/%r@%h:%p"
+FLAGS_remote=__board_hostname__
+
+gdbserver_cmd="/usr/local/bin/gdbserver $1 $2 $3"
+ssh_cmd="nohup ${gdbserver_cmd} "
+
+echo "Executing: ssh  ${RSA_FILE} ${REMOTE_SSH_FLAGS} root@${FLAGS_remote} \"${ssh_cmd}\"" >&2
+
+ssh ${REMOTE_SSH_FLAGS} root@${FLAGS_remote} "killall -9 gdbserver; ${ssh_cmd}"
+
diff --git a/dejagnu/chromeos.exp.in b/dejagnu/chromeos.exp.in
new file mode 100644
index 0000000..02fc3af
--- /dev/null
+++ b/dejagnu/chromeos.exp.in
@@ -0,0 +1,175 @@
+#
+# Initialize the board. The function is executed before any test.
+#
+proc __boardname___init { board } {
+  set hostname [board_info $board hostname]
+  set timeout [board_info $board timeout]
+  set ssh_options [board_info $board ssh,options]
+  set runtimes [board_info $board runtimes]
+  set tmpdir [board_info $board tmpdir]
+  verbose -log "Opening persistent connection ..." 1
+  eval "exec ssh -N -f $ssh_options root@$hostname &"
+  local_exec "ssh -n $ssh_options root@$hostname sh -c 'mkdir -p $tmpdir'" \
+    {} {}  $timeout
+}
+
+#
+# Remove test run by-products. The function is executed at DejaGNU exit.
+#
+proc __boardname___exit {} {
+  set board "__boardname__"
+  set hostname [board_info $board hostname]
+  set ssh_options [board_info $board ssh,options]
+  set tmpdir [board_info $board tmpdir]
+  verbose -log "Closing persistent connection ..." 1
+  local_exec "ssh $ssh_options -O exit root@$hostname" {} {} 10
+  verbose -log "Cleaning up - executing on board 'rm -fr $tmpdir' ..." 1
+  local_exec "ssh -n $ssh_options root@$hostname sh -c 'rm -fr $tmpdir'" \
+    {} {} 10
+}
+
+#
+# Upload a file to the board. Uses scp over persistent SSH connection.
+#
+proc __boardname___download { board file args } {
+  set hostname [board_info $board hostname]
+  set tmpdir [board_info $board tmpdir]
+  set timeout [board_info $board timeout]
+  set ssh_options [board_info $board ssh,options]
+  set destfile [lindex [file split $file] end]
+  verbose -log "scp -q $ssh_options $file root@$hostname:$tmpdir/"
+  set result [local_exec "scp -q $ssh_options $file root@$hostname:$tmpdir/" \
+                {} {} $timeout]
+  if { [lindex $result 0] != 0 } {
+    verbose -log "failed to upload \'$file\' to \'$tmpdir/$destfile\'"
+  } else {
+    verbose -log "uploaded \"$file\' to remote board@\'$tmpdir/$destfile\'"
+    return "$tmpdir/$destfile"
+  }
+}
+
+#
+# Download a file to the host machine. Uses scp over persistent SSH connection.
+#
+proc __boardname___upload { board file args } {
+  set hostname [board_info $board hostname]
+  set tmpdir [board_info $board tmpdir]
+  set timeout [board_info $board timeout]
+  set ssh_options [board_info $board ssh,options]
+  set filen [file tail $file]
+  verbose -log "scp -q $ssh_options \"root@$hostname:$tmpdir/$filen\" ."
+  set result [local_exec \
+                "scp -q $ssh_options \"root@$hostname:$tmpdir/$filen\" ." \
+                {} {} $timeout]
+  if { [lindex $result 0] != 0 } {
+    verbose -log \
+      "failed to transfer \"root@$hostname:$tmpdir/$filen\" to \".\""
+  } else {
+    verbose -log "transferred \"root@$hostname:$tmpdir/$filen\" to \".\""
+    # In case of success, always return the original file.
+    return "$file"
+  }
+}
+
+#
+# Cache program output within different invoking of __boardname___exec.
+# For example, the following command sequence will be executed
+#   > cd /tmp/dejagnu_xxxx/ && ./xxx.x0
+#   <output1 here>
+#   return [0, <output1>]   (a)
+#   > rm /tmp/dejagnu_xxxx/xxxx.x0
+#   <output2 here>
+#   return [0, <output2>]   (b)
+# We need <output1>, not <output2>. What we do here is to keep <output1> in
+# $program_output and in (b) we return [0, <output1>].
+#
+set program_output ""
+
+#
+# Execute a test on remote machine. Log into the target machine using
+# persistent SSH connection and run a command in modified environment.
+#
+proc __boardname___exec { board program args } {
+  global program_output
+  if { [llength $args] > 0 } {
+    set pargs [lindex $args 0]
+  } else {
+    set pargs ""
+  }
+
+  if { [llength $args] > 1 } {
+    set inp "[lindex $args 1]"
+  } else {
+    set inp ""
+  }
+
+  if { [llength $args] > 2 } {
+    set outp "[lindex $args 2]"
+  } else {
+    set outp ""
+  }
+
+  if { [llength $args] > 3 } {
+    set timeout "[lindex $args 3]"
+  } else {
+    set timeout [board_info $board timeout]
+  }
+
+  set hostname [board_info $board hostname]
+  set tmpdir [board_info $board tmpdir]
+  set other_file ""
+
+  # Check if a file to be executed was copied from host machine.  If so, we
+  # need to run it in copied runtimes.
+  set is_program "0"
+  if { [string match "$tmpdir/*" $program] } {
+    set path [file dirname $program]
+    # "$program" would usually be like "/x/y/z.out", set command to be "z.out".
+    set command [file tail $program]
+    set rootname [file rootname $command]
+    # TODO(shenhan): using rsync to copy all test case relatd stuff to host
+    # machine in case ".o" files are different from the exe files.
+    set other_file [file join $path "${rootname}.*"]
+    # Change directory to "/x/y", then execute "./z.out" - we want the working
+    # directory to be "/x/y". Setting GCOV_PREFIX_STRIP and GCOV_PREFIX is to
+    # force generating ".gcda" file under "/x/y" instead of some host path.
+    set program "cd $path && GCOV_PREFIX_STRIP=999 GCOV_PREFIX=$tmpdir/ \
+                 [file join "." $command]"
+    set is_program "1"
+  }
+  verbose -log "Exec: $program"
+  set ssh_options [board_info $board ssh,options]
+  set retv [local_exec \
+              "ssh -n $ssh_options root@$hostname sh -c '$program $pargs'" \
+              $inp $outp $timeout]
+  set status [lindex $retv 0]
+  if { $is_program == "1" } {
+    set program_output [lindex $retv 1]
+  }
+
+  # Before returning the execution status, we try to transfer the ".gcda"
+  # (and/or other files that have the same base name as the program) file to
+  # host, though for every program that runs, there is no corresponding "other"
+  # file. We have no idea when such an other file will be generated for the
+  # program, so every time, we assume there is an "other" file and try to do the
+  # transfer.
+  if { $status == 0 && $other_file != "" } {
+    set upv [${board}_upload $board $other_file ""]
+    if { $upv == "" } {
+      verbose -log "Safely ignored - \"$other_file\" does not exist."
+    }
+  }
+
+  return [list $status $program_output]
+}
+
+load_generic_config "unix"
+load_base_board_description "linux-libremote"
+
+set_board_info hostname "__board_hostname__"
+set_board_info tmpdir "__tmp_dir__"
+
+set_board_info isremote 1
+set_board_info timeout 60
+set_board_info ssh,options "-i __tmp_testing_rsa__ -o ControlMaster=auto \
+-o ControlPath=__tmp_dir__/%r@%h:%p -o StrictHostKeyChecking=no "
diff --git a/dejagnu/gdb_baseline/armv7a-cros-linux-gnueabi b/dejagnu/gdb_baseline/armv7a-cros-linux-gnueabi
new file mode 100644
index 0000000..e94a790
--- /dev/null
+++ b/dejagnu/gdb_baseline/armv7a-cros-linux-gnueabi
@@ -0,0 +1,19079 @@
+Test Run By yunlian on Mon Dec 30 11:13:13 2013
+Target is armv7a-cros-linux-gnueabi
+
+		=== gdb tests ===
+
+Schedule of variations:
+    daisy
+
+Running target daisy
+Running ./gdb.ada/aliased_array.exp ...
+UNSUPPORTED: gdb.ada/aliased_array.exp: compilation foo.adb
+Running ./gdb.ada/array_bounds.exp ...
+UNSUPPORTED: gdb.ada/array_bounds.exp: compilation bar.adb
+Running ./gdb.ada/arrayidx.exp ...
+UNSUPPORTED: gdb.ada/arrayidx.exp: compilation p.adb
+Running ./gdb.ada/arrayparam.exp ...
+UNSUPPORTED: gdb.ada/arrayparam.exp: compilation foo.adb
+Running ./gdb.ada/arrayptr.exp ...
+UNSUPPORTED: gdb.ada/arrayptr.exp: compilation foo.adb
+Running ./gdb.ada/array_return.exp ...
+UNSUPPORTED: gdb.ada/array_return.exp: compilation p.adb
+Running ./gdb.ada/array_subscript_addr.exp ...
+UNSUPPORTED: gdb.ada/array_subscript_addr.exp: compilation p.adb
+Running ./gdb.ada/assign_1.exp ...
+PASS: gdb.ada/assign_1.exp: Changing the language to ada
+PASS: gdb.ada/assign_1.exp: set convenience variable $xxx to 1
+Running ./gdb.ada/atomic_enum.exp ...
+UNSUPPORTED: gdb.ada/atomic_enum.exp: compilation foo.adb
+Running ./gdb.ada/bad-task-bp-keyword.exp ...
+UNSUPPORTED: gdb.ada/bad-task-bp-keyword.exp: compilation foo.adb
+Running ./gdb.ada/boolean_expr.exp ...
+PASS: gdb.ada/boolean_expr.exp: Changing the language to ada
+PASS: gdb.ada/boolean_expr.exp: print 1 = 2
+PASS: gdb.ada/boolean_expr.exp: print 3 = 3
+Running ./gdb.ada/bp_enum_homonym.exp ...
+UNSUPPORTED: gdb.ada/bp_enum_homonym.exp: compilation p.adb
+Running ./gdb.ada/bp_on_var.exp ...
+UNSUPPORTED: gdb.ada/bp_on_var.exp: compilation foo.adb
+Running ./gdb.ada/bp_range_type.exp ...
+UNSUPPORTED: gdb.ada/bp_range_type.exp: compilation foo.adb
+Running ./gdb.ada/bp_reset.exp ...
+UNSUPPORTED: gdb.ada/bp_reset.exp: compilation foo.adb
+Running ./gdb.ada/call_pn.exp ...
+UNSUPPORTED: gdb.ada/call_pn.exp: compilation foo.adb
+Running ./gdb.ada/catch_ex.exp ...
+UNSUPPORTED: gdb.ada/catch_ex.exp: compilation foo.adb
+Running ./gdb.ada/char_enum.exp ...
+UNSUPPORTED: gdb.ada/char_enum.exp: compilation foo.adb
+Running ./gdb.ada/char_param.exp ...
+UNSUPPORTED: gdb.ada/char_param.exp: compilation foo.adb
+Running ./gdb.ada/complete.exp ...
+UNSUPPORTED: gdb.ada/complete.exp: compilation foo.adb
+Running ./gdb.ada/cond_lang.exp ...
+UNSUPPORTED: gdb.ada/cond_lang.exp: compilation a.adb
+Running ./gdb.ada/dyn_loc.exp ...
+UNSUPPORTED: gdb.ada/dyn_loc.exp: compilation p.adb
+Running ./gdb.ada/enum_idx_packed.exp ...
+UNSUPPORTED: gdb.ada/enum_idx_packed.exp: compilation foo.adb
+Running ./gdb.ada/exec_changed.exp ...
+UNTESTED: gdb.ada/exec_changed.exp: exec_changed.exp
+Running ./gdb.ada/expr_delims.exp ...
+UNSUPPORTED: gdb.ada/expr_delims.exp: compilation foo.adb
+Running ./gdb.ada/exprs.exp ...
+UNSUPPORTED: gdb.ada/exprs.exp: compilation p.adb
+Running ./gdb.ada/fixed_cmp.exp ...
+UNSUPPORTED: gdb.ada/fixed_cmp.exp: compilation fixed.adb
+Running ./gdb.ada/fixed_points.exp ...
+UNSUPPORTED: gdb.ada/fixed_points.exp: compilation fixed_points.adb
+Running ./gdb.ada/formatted_ref.exp ...
+UNSUPPORTED: gdb.ada/formatted_ref.exp: compilation formatted_ref.adb
+UNTESTED: gdb.ada/formatted_ref.exp: formatted-ref.exp
+Running ./gdb.ada/frame_args.exp ...
+UNSUPPORTED: gdb.ada/frame_args.exp: compilation foo.adb
+Running ./gdb.ada/fullname_bp.exp ...
+UNSUPPORTED: gdb.ada/fullname_bp.exp: compilation foo.adb
+Running ./gdb.ada/fun_addr.exp ...
+UNSUPPORTED: gdb.ada/fun_addr.exp: compilation foo.adb
+Running ./gdb.ada/funcall_param.exp ...
+UNSUPPORTED: gdb.ada/funcall_param.exp: compilation foo.adb
+Running ./gdb.ada/fun_in_declare.exp ...
+UNSUPPORTED: gdb.ada/fun_in_declare.exp: compilation foo.adb
+Running ./gdb.ada/homonym.exp ...
+UNSUPPORTED: gdb.ada/homonym.exp: compilation homonym_main.adb
+Running ./gdb.ada/info_locals_renaming.exp ...
+UNSUPPORTED: gdb.ada/info_locals_renaming.exp: compilation foo.adb
+Running ./gdb.ada/info_types.exp ...
+PASS: gdb.ada/info_types.exp: set lang ada
+PASS: gdb.ada/info_types.exp: info types new_integer_type
+Running ./gdb.ada/int_deref.exp ...
+UNSUPPORTED: gdb.ada/int_deref.exp: compilation foo.adb
+Running ./gdb.ada/interface.exp ...
+UNSUPPORTED: gdb.ada/interface.exp: compilation foo.adb
+Running ./gdb.ada/iwide.exp ...
+UNSUPPORTED: gdb.ada/iwide.exp: compilation p.adb
+Running ./gdb.ada/lang_switch.exp ...
+UNSUPPORTED: gdb.ada/lang_switch.exp: compilation lang_switch.adb
+Running ./gdb.ada/mi_catch_ex.exp ...
+UNSUPPORTED: gdb.ada/mi_catch_ex.exp: compilation foo.adb
+Running ./gdb.ada/mi_task_arg.exp ...
+UNSUPPORTED: gdb.ada/mi_task_arg.exp: compilation task_switch.adb
+Running ./gdb.ada/mi_task_info.exp ...
+UNSUPPORTED: gdb.ada/mi_task_info.exp: compilation task_switch.adb
+Running ./gdb.ada/mod_from_name.exp ...
+UNSUPPORTED: gdb.ada/mod_from_name.exp: compilation foo.adb
+Running ./gdb.ada/nested.exp ...
+UNSUPPORTED: gdb.ada/nested.exp: compilation hello.adb
+Running ./gdb.ada/null_array.exp ...
+UNSUPPORTED: gdb.ada/null_array.exp: compilation foo.adb
+Running ./gdb.ada/null_record.exp ...
+UNSUPPORTED: gdb.ada/null_record.exp: compilation null_record.adb
+Running ./gdb.ada/operator_bp.exp ...
+UNSUPPORTED: gdb.ada/operator_bp.exp: compilation ops_test.adb
+Running ./gdb.ada/optim_drec.exp ...
+UNSUPPORTED: gdb.ada/optim_drec.exp: compilation foo.adb
+Running ./gdb.ada/packed_array.exp ...
+UNSUPPORTED: gdb.ada/packed_array.exp: compilation pa.adb
+Running ./gdb.ada/packed_tagged.exp ...
+UNSUPPORTED: gdb.ada/packed_tagged.exp: compilation comp_bug.adb
+Running ./gdb.ada/print_chars.exp ...
+UNSUPPORTED: gdb.ada/print_chars.exp: compilation foo.adb
+Running ./gdb.ada/print_pc.exp ...
+UNSUPPORTED: gdb.ada/print_pc.exp: compilation dummy.adb
+Running ./gdb.ada/ptr_typedef.exp ...
+UNSUPPORTED: gdb.ada/ptr_typedef.exp: compilation foo.adb
+Running ./gdb.ada/ptype_arith_binop.exp ...
+PASS: gdb.ada/ptype_arith_binop.exp: set lang ada
+PASS: gdb.ada/ptype_arith_binop.exp: ptype 3 * 2.0
+PASS: gdb.ada/ptype_arith_binop.exp: ptype 3 / 2.0
+Running ./gdb.ada/ptype_field.exp ...
+UNSUPPORTED: gdb.ada/ptype_field.exp: compilation foo.adb
+Running ./gdb.ada/ptype_tagged_param.exp ...
+UNSUPPORTED: gdb.ada/ptype_tagged_param.exp: compilation foo.adb
+Running ./gdb.ada/rdv_wait.exp ...
+UNSUPPORTED: gdb.ada/rdv_wait.exp: compilation foo.adb
+Running ./gdb.ada/rec_return.exp ...
+UNSUPPORTED: gdb.ada/rec_return.exp: compilation foo.adb
+Running ./gdb.ada/ref_param.exp ...
+UNSUPPORTED: gdb.ada/ref_param.exp: compilation foo.adb
+Running ./gdb.ada/ref_tick_size.exp ...
+UNSUPPORTED: gdb.ada/ref_tick_size.exp: compilation p.adb
+Running ./gdb.ada/same_enum.exp ...
+UNSUPPORTED: gdb.ada/same_enum.exp: compilation a.adb
+Running ./gdb.ada/set_pckd_arr_elt.exp ...
+UNSUPPORTED: gdb.ada/set_pckd_arr_elt.exp: compilation foo.adb
+Running ./gdb.ada/set_wstr.exp ...
+UNSUPPORTED: gdb.ada/set_wstr.exp: compilation a.adb
+Running ./gdb.ada/small_reg_param.exp ...
+UNSUPPORTED: gdb.ada/small_reg_param.exp: compilation foo.adb
+Running ./gdb.ada/start.exp ...
+UNTESTED: gdb.ada/start.exp: start.exp
+Running ./gdb.ada/str_ref_cmp.exp ...
+UNSUPPORTED: gdb.ada/str_ref_cmp.exp: compilation foo.adb
+Running ./gdb.ada/sym_print_name.exp ...
+UNSUPPORTED: gdb.ada/sym_print_name.exp: compilation foo.adb
+Running ./gdb.ada/taft_type.exp ...
+UNSUPPORTED: gdb.ada/taft_type.exp: compilation p.adb
+Running ./gdb.ada/tagged.exp ...
+UNSUPPORTED: gdb.ada/tagged.exp: compilation foo.adb
+Running ./gdb.ada/tagged_not_init.exp ...
+UNSUPPORTED: gdb.ada/tagged_not_init.exp: compilation foo.adb
+Running ./gdb.ada/task_bp.exp ...
+UNSUPPORTED: gdb.ada/task_bp.exp: compilation foo.adb
+Running ./gdb.ada/tasks.exp ...
+UNSUPPORTED: gdb.ada/tasks.exp: compilation foo.adb
+Running ./gdb.ada/tick_last_segv.exp ...
+UNSUPPORTED: gdb.ada/tick_last_segv.exp: compilation foo.adb
+Running ./gdb.ada/type_coercion.exp ...
+UNSUPPORTED: gdb.ada/type_coercion.exp: compilation assign.adb
+Running ./gdb.ada/unc_arr_ptr_in_var_rec.exp ...
+UNSUPPORTED: gdb.ada/unc_arr_ptr_in_var_rec.exp: compilation foo.adb
+Running ./gdb.ada/uninitialized_vars.exp ...
+UNSUPPORTED: gdb.ada/uninitialized_vars.exp: compilation parse.adb
+Running ./gdb.ada/variant_record_packed_array.exp ...
+UNSUPPORTED: gdb.ada/variant_record_packed_array.exp: compilation foo.adb
+Running ./gdb.ada/watch_arg.exp ...
+UNSUPPORTED: gdb.ada/watch_arg.exp: compilation watch.adb
+Running ./gdb.ada/whatis_array_val.exp ...
+UNSUPPORTED: gdb.ada/whatis_array_val.exp: compilation foo.adb
+Running ./gdb.ada/widewide.exp ...
+UNSUPPORTED: gdb.ada/widewide.exp: compilation foo.adb
+Running ./gdb.arch/alpha-step.exp ...
+Running ./gdb.arch/altivec-abi.exp ...
+Running ./gdb.arch/altivec-regs.exp ...
+Running ./gdb.arch/amd64-byte.exp ...
+Running ./gdb.arch/amd64-disp-step.exp ...
+Running ./gdb.arch/amd64-dword.exp ...
+Running ./gdb.arch/amd64-entry-value.exp ...
+Running ./gdb.arch/amd64-entry-value-inline.exp ...
+Running ./gdb.arch/amd64-entry-value-param.exp ...
+Running ./gdb.arch/amd64-i386-address.exp ...
+Running ./gdb.arch/amd64-prologue-xmm.exp ...
+Running ./gdb.arch/amd64-tailcall-cxx.exp ...
+Running ./gdb.arch/amd64-tailcall-noret.exp ...
+Running ./gdb.arch/amd64-tailcall-ret.exp ...
+Running ./gdb.arch/amd64-word.exp ...
+Running ./gdb.arch/arm-bl-branch-dest.exp ...
+ERROR: tcl error sourcing ./gdb.arch/arm-bl-branch-dest.exp.
+ERROR: : spawn id exp7 not open
+    while executing
+"expect_background {
+	-i $server_spawn_id
+	full_buffer { }
+	eof {
+	    # The spawn ID is already closed now (but not yet waited for).
+	    wait -i $exp..."
+    (procedure "gdbserver_start" line 85)
+    invoked from within
+"gdbserver_start "" $arguments"
+    (procedure "gdbserver_spawn" line 11)
+    invoked from within
+"gdbserver_spawn $child_args"
+    (procedure "gdbserver_run" line 20)
+    invoked from within
+"gdbserver_run """
+    (procedure "gdb_reload" line 2)
+    invoked from within
+"gdb_reload"
+    invoked from within
+"if [target_info exists gdb,do_reload_on_run] {
+	    if { [gdb_reload] != 0 } {
+		return;
+	    }
+	    send_gdb "continue\n";
+	    gdb_expect 60 {
+		-re..."
+    invoked from within
+"if $use_gdb_stub {
+	if [target_info exists gdb,do_reload_on_run] {
+	    if { [gdb_reload] != 0 } {
+		return;
+	    }
+	    send_gdb "continue\n";
+	    g..."
+    (procedure "gdb_run_cmd" line 15)
+    invoked from within
+"gdb_run_cmd"
+    (procedure "runto" line 32)
+    invoked from within
+"runto main no-message"
+    (procedure "runto_main" line 2)
+    invoked from within
+"runto_main"
+    invoked from within
+"if { ![runto_main] } {
+    return -1
+}"
+    (file "./gdb.arch/arm-bl-branch-dest.exp" line 33)
+    invoked from within
+"source ./gdb.arch/arm-bl-branch-dest.exp"
+    ("uplevel" body line 1)
+    invoked from within
+"uplevel #0 source ./gdb.arch/arm-bl-branch-dest.exp"
+    invoked from within
+"catch "uplevel #0 source $test_file_name""
+Running ./gdb.arch/arm-disp-step.exp ...
+PASS: gdb.arch/arm-disp-step.exp: set displaced-stepping off
+PASS: gdb.arch/arm-disp-step.exp: set displaced-stepping on
+PASS: gdb.arch/arm-disp-step.exp: show displaced-stepping
+PASS: gdb.arch/arm-disp-step.exp: break test_call
+PASS: gdb.arch/arm-disp-step.exp: break test_call_end
+PASS: gdb.arch/arm-disp-step.exp: break test_ret
+PASS: gdb.arch/arm-disp-step.exp: break test_ret_end
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: test_call
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: test_call_end
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: test_ret
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_ret_end
+PASS: gdb.arch/arm-disp-step.exp: break test_branch
+PASS: gdb.arch/arm-disp-step.exp: break Lbranch
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_branch
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to Lbranch
+PASS: gdb.arch/arm-disp-step.exp: break test_ldr_pc
+PASS: gdb.arch/arm-disp-step.exp: break test_ldr_pc_ret
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_ldr_pc
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_ldr_pc_ret
+PASS: gdb.arch/arm-disp-step.exp: break test_ldm_stm_pc
+PASS: gdb.arch/arm-disp-step.exp: break test_ldr_literal
+PASS: gdb.arch/arm-disp-step.exp: break test_ldrsb_literal
+PASS: gdb.arch/arm-disp-step.exp: break test_ldrsh_literal
+PASS: gdb.arch/arm-disp-step.exp: break test_test_ldr_literal_end
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_ldr_literal
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_ldrsb_literal
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_ldrsh_literal
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_ldr_literal_ret
+PASS: gdb.arch/arm-disp-step.exp: break test_ldr_literal
+PASS: gdb.arch/arm-disp-step.exp: break test_ldr_literal_16_end
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_ldr_literal_16
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_ldr_literal_16_end
+PASS: gdb.arch/arm-disp-step.exp: break test_ldr_literal
+PASS: gdb.arch/arm-disp-step.exp: break test_zero_cbz
+PASS: gdb.arch/arm-disp-step.exp: break test_non_zero_cbnz
+PASS: gdb.arch/arm-disp-step.exp: break test_non_zero_cbz
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_zero_cbnz
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_zero_cbz
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_non_zero_cbz
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_non_zero_cbnz
+PASS: gdb.arch/arm-disp-step.exp: break test_adr
+PASS: gdb.arch/arm-disp-step.exp: break test_adr_end
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: test_adr
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: test_adr_end
+PASS: gdb.arch/arm-disp-step.exp: break test_adr
+PASS: gdb.arch/arm-disp-step.exp: break test_adr_32bit_after
+PASS: gdb.arch/arm-disp-step.exp: break test_adr_32bit_end
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: test_adr_32bit
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: test_adr_32bit_after
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: test_adr_32bit_end
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_1
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_2
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_3
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_ret
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_1_right
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_1_wrong
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_2_right
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_2_wrong
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_3_right
+PASS: gdb.arch/arm-disp-step.exp: break test_pop_pc_1_wrong
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_pop_pc_1
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_pop_pc_1_check
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_pop_pc_2
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_pop_pc_2_check
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_pop_pc_3
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_pop_pc_3_check
+PASS: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_pop_pc_ret
+PASS: gdb.arch/arm-disp-step.exp: break test_str_pc
+FAIL: gdb.arch/arm-disp-step.exp: setting breakpoint at exit
+Running ./gdb.arch/e500-abi.exp ...
+Running ./gdb.arch/e500-prologue.exp ...
+Running ./gdb.arch/e500-regs.exp ...
+Running ./gdb.arch/gdb1291.exp ...
+Running ./gdb.arch/gdb1431.exp ...
+Running ./gdb.arch/gdb1558.exp ...
+Running ./gdb.arch/i386-avx.exp ...
+Running ./gdb.arch/i386-bp_permanent.exp ...
+Running ./gdb.arch/i386-byte.exp ...
+Running ./gdb.arch/i386-cfi-notcurrent.exp ...
+Running ./gdb.arch/i386-disp-step.exp ...
+Running ./gdb.arch/i386-dr3-watch.exp ...
+Running ./gdb.arch/i386-float.exp ...
+Running ./gdb.arch/i386-gnu-cfi.exp ...
+Running ./gdb.arch/i386-permbkpt.exp ...
+Running ./gdb.arch/i386-prologue.exp ...
+Running ./gdb.arch/i386-signal.exp ...
+Running ./gdb.arch/i386-size.exp ...
+Running ./gdb.arch/i386-size-overlap.exp ...
+Running ./gdb.arch/i386-sse.exp ...
+Running ./gdb.arch/i386-sse-stack-align.exp ...
+Running ./gdb.arch/i386-unwind.exp ...
+Running ./gdb.arch/i386-word.exp ...
+Running ./gdb.arch/ia64-breakpoint-shadow.exp ...
+Running ./gdb.arch/iwmmxt-regs.exp ...
+Running ./gdb.arch/mips16-thunks.exp ...
+Running ./gdb.arch/mips-octeon-bbit.exp ...
+Running ./gdb.arch/pa-nullify.exp ...
+Running ./gdb.arch/powerpc-aix-prologue.exp ...
+Running ./gdb.arch/powerpc-d128-regs.exp ...
+Running ./gdb.arch/powerpc-prologue.exp ...
+Running ./gdb.arch/ppc64-atomic-inst.exp ...
+Running ./gdb.arch/ppc-dfp.exp ...
+Running ./gdb.arch/ppc-fp.exp ...
+Running ./gdb.arch/spu-info.exp ...
+Running ./gdb.arch/spu-ls.exp ...
+Running ./gdb.arch/system-gcore.exp ...
+Running ./gdb.arch/thumb2-it.exp ...
+PASS: gdb.arch/thumb2-it.exp: list main
+PASS: gdb.arch/thumb2-it.exp: it_1, call
+PASS: gdb.arch/thumb2-it.exp: it_1, stepi 0
+PASS: gdb.arch/thumb2-it.exp: it_1, stepi 1
+PASS: gdb.arch/thumb2-it.exp: it_1, stepi 2
+PASS: gdb.arch/thumb2-it.exp: it_1, stepi 3
+PASS: gdb.arch/thumb2-it.exp: it_1, correct instructions reached
+PASS: gdb.arch/thumb2-it.exp: it_1, continue
+PASS: gdb.arch/thumb2-it.exp: it_2, call
+PASS: gdb.arch/thumb2-it.exp: it_2, stepi 0
+PASS: gdb.arch/thumb2-it.exp: it_2, stepi 1
+PASS: gdb.arch/thumb2-it.exp: it_2, stepi 2
+PASS: gdb.arch/thumb2-it.exp: it_2, correct instructions reached
+PASS: gdb.arch/thumb2-it.exp: it_2, $r0 == 0
+PASS: gdb.arch/thumb2-it.exp: it_2, continue
+PASS: gdb.arch/thumb2-it.exp: it_3, call
+PASS: gdb.arch/thumb2-it.exp: it_3, stepi 0
+PASS: gdb.arch/thumb2-it.exp: it_3, stepi 1
+PASS: gdb.arch/thumb2-it.exp: it_3, stepi 2
+PASS: gdb.arch/thumb2-it.exp: it_3, stepi 3
+PASS: gdb.arch/thumb2-it.exp: it_3, stepi 4
+PASS: gdb.arch/thumb2-it.exp: it_3, correct instructions reached
+PASS: gdb.arch/thumb2-it.exp: it_3, $r0 == 5
+PASS: gdb.arch/thumb2-it.exp: it_3, continue
+PASS: gdb.arch/thumb2-it.exp: it_4, call
+PASS: gdb.arch/thumb2-it.exp: it_4, stepi 0
+PASS: gdb.arch/thumb2-it.exp: it_4, stepi 1
+PASS: gdb.arch/thumb2-it.exp: it_4, stepi 2
+PASS: gdb.arch/thumb2-it.exp: it_4, stepi 3
+PASS: gdb.arch/thumb2-it.exp: it_4, stepi 4
+PASS: gdb.arch/thumb2-it.exp: it_4, correct instructions reached
+PASS: gdb.arch/thumb2-it.exp: it_4, $r0 == 1
+PASS: gdb.arch/thumb2-it.exp: it_4, continue
+PASS: gdb.arch/thumb2-it.exp: it_5, call
+PASS: gdb.arch/thumb2-it.exp: it_5, stepi 0
+PASS: gdb.arch/thumb2-it.exp: it_5, stepi 1
+PASS: gdb.arch/thumb2-it.exp: it_5, stepi 2
+PASS: gdb.arch/thumb2-it.exp: it_5, stepi 3
+PASS: gdb.arch/thumb2-it.exp: it_5, stepi 4
+PASS: gdb.arch/thumb2-it.exp: it_5, correct instructions reached
+PASS: gdb.arch/thumb2-it.exp: it_5, $r0 == 1
+PASS: gdb.arch/thumb2-it.exp: it_5, continue
+PASS: gdb.arch/thumb2-it.exp: it_6, call
+PASS: gdb.arch/thumb2-it.exp: it_6, stepi 0
+PASS: gdb.arch/thumb2-it.exp: it_6, stepi 1
+PASS: gdb.arch/thumb2-it.exp: it_6, stepi 2
+PASS: gdb.arch/thumb2-it.exp: it_6, stepi 3
+PASS: gdb.arch/thumb2-it.exp: it_6, stepi 4
+PASS: gdb.arch/thumb2-it.exp: it_6, correct instructions reached
+PASS: gdb.arch/thumb2-it.exp: it_6, $r0 == 3
+PASS: gdb.arch/thumb2-it.exp: it_6, continue
+PASS: gdb.arch/thumb2-it.exp: it_7, call
+PASS: gdb.arch/thumb2-it.exp: it_7, stepi 0
+PASS: gdb.arch/thumb2-it.exp: it_7, stepi 1
+PASS: gdb.arch/thumb2-it.exp: it_7, stepi 2
+PASS: gdb.arch/thumb2-it.exp: it_7, stepi 3
+PASS: gdb.arch/thumb2-it.exp: it_7, stepi 4
+PASS: gdb.arch/thumb2-it.exp: it_7, stepi 5
+PASS: gdb.arch/thumb2-it.exp: it_7, stepi 6
+PASS: gdb.arch/thumb2-it.exp: it_7, correct instructions reached
+PASS: gdb.arch/thumb2-it.exp: it_7, $r0 == 15
+PASS: gdb.arch/thumb2-it.exp: it_7, continue
+PASS: gdb.arch/thumb2-it.exp: it_8, call
+PASS: gdb.arch/thumb2-it.exp: it_8, stepi 0
+PASS: gdb.arch/thumb2-it.exp: it_8, stepi 1
+PASS: gdb.arch/thumb2-it.exp: it_8, stepi 2
+PASS: gdb.arch/thumb2-it.exp: it_8, stepi 3
+PASS: gdb.arch/thumb2-it.exp: it_8, correct instructions reached
+PASS: gdb.arch/thumb2-it.exp: it_8, $r0 == 1
+PASS: gdb.arch/thumb2-it.exp: it_8, continue
+PASS: gdb.arch/thumb2-it.exp: call it_breakpoints()
+PASS: gdb.arch/thumb2-it.exp: continue to breakpoint: test 1
+PASS: gdb.arch/thumb2-it.exp: continue to breakpoint: test 2
+PASS: gdb.arch/thumb2-it.exp: continue to breakpoint: test 3
+PASS: gdb.arch/thumb2-it.exp: continue to breakpoint: test 4
+PASS: gdb.arch/thumb2-it.exp: continue to breakpoint: test 5
+PASS: gdb.arch/thumb2-it.exp: continue to breakpoint: test 6
+PASS: gdb.arch/thumb2-it.exp: continue to breakpoint: test 7
+Running ./gdb.arch/thumb-bx-pc.exp ...
+PASS: gdb.arch/thumb-bx-pc.exp: stepi for bx pc
+PASS: gdb.arch/thumb-bx-pc.exp: stepi reached correct instruction
+Running ./gdb.arch/thumb-prologue.exp ...
+PASS: gdb.arch/thumb-prologue.exp: continue to TPCS
+PASS: gdb.arch/thumb-prologue.exp: backtrace in TPCS
+PASS: gdb.arch/thumb-prologue.exp: saved registers in TPCS
+PASS: gdb.arch/thumb-prologue.exp: continue to switch_stack_to_same
+PASS: gdb.arch/thumb-prologue.exp: stepi over mov sp, sp
+PASS: gdb.arch/thumb-prologue.exp: backtrace in write_sp
+PASS: gdb.arch/thumb-prologue.exp: continue to switch_stack_to_other
+PASS: gdb.arch/thumb-prologue.exp: stepi over mov sp, 128
+PASS: gdb.arch/thumb-prologue.exp: backtrace in write_sp
+Running ./gdb.arch/thumb-singlestep.exp ...
+PASS: gdb.arch/thumb-singlestep.exp: step into foo
+Running ./gdb.arch/vsx-regs.exp ...
+Running ./gdb.asm/asm-source.exp ...
+PASS: gdb.asm/asm-source.exp: f at main
+PASS: gdb.asm/asm-source.exp: next over macro
+PASS: gdb.asm/asm-source.exp: step into foo2
+PASS: gdb.asm/asm-source.exp: info target
+PASS: gdb.asm/asm-source.exp: info symbol
+PASS: gdb.asm/asm-source.exp: list
+PASS: gdb.asm/asm-source.exp: search
+PASS: gdb.asm/asm-source.exp: f in foo2
+PASS: gdb.asm/asm-source.exp: n in foo2
+PASS: gdb.asm/asm-source.exp: bt ALL in foo2
+PASS: gdb.asm/asm-source.exp: bt 2 in foo2
+PASS: gdb.asm/asm-source.exp: s 2
+PASS: gdb.asm/asm-source.exp: n 2
+PASS: gdb.asm/asm-source.exp: bt 3 in foo3
+PASS: gdb.asm/asm-source.exp: info source asmsrc1.s
+PASS: gdb.asm/asm-source.exp: finish from foo3
+PASS: gdb.asm/asm-source.exp: info source asmsrc2.s
+PASS: gdb.asm/asm-source.exp: info sources
+PASS: gdb.asm/asm-source.exp: info line
+PASS: gdb.asm/asm-source.exp: next over foo3
+PASS: gdb.asm/asm-source.exp: return from foo2
+PASS: gdb.asm/asm-source.exp: look at global variable
+PASS: gdb.asm/asm-source.exp: x/i &globalvar
+PASS: gdb.asm/asm-source.exp: disassem &globalvar, &globalvar+1
+PASS: gdb.asm/asm-source.exp: look at static variable
+PASS: gdb.asm/asm-source.exp: x/i &staticvar
+PASS: gdb.asm/asm-source.exp: disassem &staticvar, &staticvar+1
+PASS: gdb.asm/asm-source.exp: look at static function
+Running ./gdb.base/a2-run.exp ...
+Running ./gdb.base/advance.exp ...
+PASS: gdb.base/advance.exp: advance line number
+PASS: gdb.base/advance.exp: malformed advance
+PASS: gdb.base/advance.exp: advance func
+PASS: gdb.base/advance.exp: advance function not called by current frame
+PASS: gdb.base/advance.exp: set breakpoint at call to func3
+PASS: gdb.base/advance.exp: continue to call to func3 in main
+PASS: gdb.base/advance.exp: advance function called as param
+PASS: gdb.base/advance.exp: advance with no argument
+Running ./gdb.base/alias.exp ...
+PASS: gdb.base/alias.exp: alias -a set2=set
+PASS: gdb.base/alias.exp: set2 print elements 42
+PASS: gdb.base/alias.exp: verify set2
+PASS: gdb.base/alias.exp: abbrev set2 not present in help command list
+PASS: gdb.base/alias.exp: alias -a set3= set
+PASS: gdb.base/alias.exp: set3 print elements 43
+PASS: gdb.base/alias.exp: verify set3
+PASS: gdb.base/alias.exp: abbrev set3 not present in help command list
+PASS: gdb.base/alias.exp: alias -a set4 =set
+PASS: gdb.base/alias.exp: set4 print elements 44
+PASS: gdb.base/alias.exp: verify set4
+PASS: gdb.base/alias.exp: abbrev set4 not present in help command list
+PASS: gdb.base/alias.exp: alias -a set5 = set
+PASS: gdb.base/alias.exp: set5 print elements 45
+PASS: gdb.base/alias.exp: verify set5
+PASS: gdb.base/alias.exp: abbrev set5 not present in help command list
+PASS: gdb.base/alias.exp: alias -a -- set6 = set
+PASS: gdb.base/alias.exp: set6 print elements 46
+PASS: gdb.base/alias.exp: verify set6
+PASS: gdb.base/alias.exp: abbrev set6 not present in help command list
+PASS: gdb.base/alias.exp: alias -a -- -a = set
+PASS: gdb.base/alias.exp: -a print elements 47
+PASS: gdb.base/alias.exp: verify -a
+PASS: gdb.base/alias.exp: abbrev -a not present in help command list
+PASS: gdb.base/alias.exp: alias set2=set
+PASS: gdb.base/alias.exp: alias foo=bar
+PASS: gdb.base/alias.exp: alias spe = set p elem
+PASS: gdb.base/alias.exp: spe 50
+PASS: gdb.base/alias.exp: verify spe
+PASS: gdb.base/alias.exp: alias set pr elms = set p elem
+PASS: gdb.base/alias.exp: set pr elms 51
+PASS: gdb.base/alias.exp: verify set pr elms
+PASS: gdb.base/alias.exp: help set print
+Running ./gdb.base/all-bin.exp ...
+PASS: gdb.base/all-bin.exp: continuing after dummy()
+PASS: gdb.base/all-bin.exp: print value of v_int+v_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int+v_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_float
+PASS: gdb.base/all-bin.exp: print value of v_int+v_double
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_char
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_long
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_float
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_double
+PASS: gdb.base/all-bin.exp: set v_char=0
+PASS: gdb.base/all-bin.exp: set v_double=0
+PASS: gdb.base/all-bin.exp: set v_unsigned_long=0
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_float
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_double
+Running ./gdb.base/annota1.exp ...
+Running ./gdb.base/annota3.exp ...
+Running ./gdb.base/anon.exp ...
+PASS: gdb.base/anon.exp: set breakpoint in anon.c
+PASS: gdb.base/anon.exp: continue to breakpoint: continue to breakpoint in anon.c
+PASS: gdb.base/anon.exp: print val.data.six
+Running ./gdb.base/args.exp ...
+Running ./gdb.base/argv0-symlink.exp ...
+PASS: gdb.base/argv0-symlink.exp: kept file symbolic link name
+FAIL: gdb.base/argv0-symlink.exp: kept directory symbolic link name
+Running ./gdb.base/arithmet.exp ...
+PASS: gdb.base/arithmet.exp: set variable x=14
+PASS: gdb.base/arithmet.exp: set variable y=2
+PASS: gdb.base/arithmet.exp: set variable z=2
+PASS: gdb.base/arithmet.exp: set variable w=3
+PASS: gdb.base/arithmet.exp: print x
+PASS: gdb.base/arithmet.exp: print y
+PASS: gdb.base/arithmet.exp: print z
+PASS: gdb.base/arithmet.exp: print w
+PASS: gdb.base/arithmet.exp: print x+y
+PASS: gdb.base/arithmet.exp: print x-y
+PASS: gdb.base/arithmet.exp: print x*y
+PASS: gdb.base/arithmet.exp: print x/y
+PASS: gdb.base/arithmet.exp: print x%y
+PASS: gdb.base/arithmet.exp: print x+y+z
+PASS: gdb.base/arithmet.exp: print x-y-z
+PASS: gdb.base/arithmet.exp: print x*y*z
+PASS: gdb.base/arithmet.exp: print x/y/z
+PASS: gdb.base/arithmet.exp: print x%y%z
+PASS: gdb.base/arithmet.exp: set variable x=10
+PASS: gdb.base/arithmet.exp: set variable y=4
+PASS: gdb.base/arithmet.exp: print x+y-z
+PASS: gdb.base/arithmet.exp: print x+y*z
+PASS: gdb.base/arithmet.exp: print x+y%w
+PASS: gdb.base/arithmet.exp: print x+y/w
+PASS: gdb.base/arithmet.exp: print x-y*z
+PASS: gdb.base/arithmet.exp: print x-y%z
+PASS: gdb.base/arithmet.exp: print x-y/z
+PASS: gdb.base/arithmet.exp: print x*y/z
+PASS: gdb.base/arithmet.exp: print x*y%w
+PASS: gdb.base/arithmet.exp: print x/y%w
+PASS: gdb.base/arithmet.exp: print x-(y+w)
+PASS: gdb.base/arithmet.exp: print x/(y*w)
+PASS: gdb.base/arithmet.exp: print x-(y/w)
+PASS: gdb.base/arithmet.exp: print (x+y)*w
+Running ./gdb.base/arrayidx.exp ...
+PASS: gdb.base/arrayidx.exp: Set print array-indexes to off
+PASS: gdb.base/arrayidx.exp: Print array with array-indexes off
+PASS: gdb.base/arrayidx.exp: Set print array-indexes to on
+PASS: gdb.base/arrayidx.exp: Print array with array-indexes on
+Running ./gdb.base/assign.exp ...
+PASS: gdb.base/assign.exp: continuing after dummy()
+PASS: gdb.base/assign.exp: v_int=57
+PASS: gdb.base/assign.exp: set v_int to 6
+PASS: gdb.base/assign.exp: v_int+=57
+PASS: gdb.base/assign.exp: set v_int to 6 (2)
+PASS: gdb.base/assign.exp: v_int-=57
+PASS: gdb.base/assign.exp: set v_int to 6 (3)
+PASS: gdb.base/assign.exp: v_int*=5
+PASS: gdb.base/assign.exp: set v_int to 6 (4)
+PASS: gdb.base/assign.exp: v_int/=4
+PASS: gdb.base/assign.exp: set v_int to 6 (5)
+PASS: gdb.base/assign.exp: v_int%=4
+PASS: gdb.base/assign.exp: set v_int to 6 (6)
+PASS: gdb.base/assign.exp: v_int+=char
+PASS: gdb.base/assign.exp: set v_int to 6 (7)
+PASS: gdb.base/assign.exp: v_int+=signed_char
+PASS: gdb.base/assign.exp: set v_int to 6 (8)
+PASS: gdb.base/assign.exp: v_int+=unsigned_char
+PASS: gdb.base/assign.exp: set v_int to 6 (9)
+PASS: gdb.base/assign.exp: v_int+=short
+PASS: gdb.base/assign.exp: set v_int to 6 (10)
+PASS: gdb.base/assign.exp: v_int+=signed_short
+PASS: gdb.base/assign.exp: set v_int to 6 (11)
+PASS: gdb.base/assign.exp: v_int=+unsigned_short
+PASS: gdb.base/assign.exp: set v_int to 6 (12)
+PASS: gdb.base/assign.exp: v_int+=signed_int
+PASS: gdb.base/assign.exp: set v_int to 6 (13)
+PASS: gdb.base/assign.exp: v_int+=unsigned_int
+PASS: gdb.base/assign.exp: set v_int to 6 (14)
+PASS: gdb.base/assign.exp: v_int+=long
+PASS: gdb.base/assign.exp: set v_int to 6 (15)
+PASS: gdb.base/assign.exp: v_int+=signed_long
+PASS: gdb.base/assign.exp: set v_int to 6 (16)
+PASS: gdb.base/assign.exp: v_int+=unsigned_long
+PASS: gdb.base/assign.exp: set v_int to 6 (17)
+PASS: gdb.base/assign.exp: v_int+=v_float
+PASS: gdb.base/assign.exp: set v_int to 6 (18)
+PASS: gdb.base/assign.exp: v_int+=double
+Running ./gdb.base/async.exp ...
+Running ./gdb.base/async-shell.exp ...
+Running ./gdb.base/attach.exp ...
+Running ./gdb.base/attach-pie-misread.exp ...
+Running ./gdb.base/attach-pie-noexec.exp ...
+Running ./gdb.base/attach-twice.exp ...
+Running ./gdb.base/auxv.exp ...
+PASS: gdb.base/auxv.exp: set print sevenbit-strings
+PASS: gdb.base/auxv.exp: set width 0
+PASS: gdb.base/auxv.exp: tbreak 78
+PASS: gdb.base/auxv.exp: continue
+PASS: gdb.base/auxv.exp: info auxv on live process
+PASS: gdb.base/auxv.exp: gcore
+PASS: gdb.base/auxv.exp: continue
+PASS: gdb.base/auxv.exp: continue
+UNSUPPORTED: gdb.base/auxv.exp: generate native core dump
+UNSUPPORTED: gdb.base/auxv.exp: info auxv on native core dump
+UNSUPPORTED: gdb.base/auxv.exp: matching auxv data from live and core
+PASS: gdb.base/auxv.exp: load core file for info auxv on gcore-created dump
+PASS: gdb.base/auxv.exp: info auxv on gcore-created dump
+PASS: gdb.base/auxv.exp: matching auxv data from live and gcore
+Running ./gdb.base/bang.exp ...
+PASS: gdb.base/bang.exp: run program
+Running ./gdb.base/bfp-test.exp ...
+PASS: gdb.base/bfp-test.exp: continue to breakpoint: return
+PASS: gdb.base/bfp-test.exp: The original value of b32 is 1.5
+PASS: gdb.base/bfp-test.exp: The original value of b64 is 2.25
+PASS: gdb.base/bfp-test.exp: The original value of b128 is 3.375
+PASS: gdb.base/bfp-test.exp: Try to change b32 to -1.5 with 'print b32=-1.5f'
+PASS: gdb.base/bfp-test.exp: Try to change b64 to -2.25 with 'print b64=-2.25f'
+PASS: gdb.base/bfp-test.exp: Try to change b128 to -3.375 with 'print b128=-3.375l'
+PASS: gdb.base/bfp-test.exp: set variable b32 = 10.5f
+PASS: gdb.base/bfp-test.exp: set variable b64 = 20.25f
+PASS: gdb.base/bfp-test.exp: set variable b128 = 30.375l
+PASS: gdb.base/bfp-test.exp: The value of b32 is changed to 10.5
+PASS: gdb.base/bfp-test.exp: The value of b64 is changed to 20.25
+PASS: gdb.base/bfp-test.exp: The value of b128 is changed to 30.375
+PASS: gdb.base/bfp-test.exp: set variable b32 = 100.5a
+PASS: gdb.base/bfp-test.exp: set variable b64 = 200.25x
+PASS: gdb.base/bfp-test.exp: set variable b128 = 300.375fl
+PASS: gdb.base/bfp-test.exp: set variable b128 = 300.375fff
+Running ./gdb.base/bigcore.exp ...
+UNTESTED: gdb.base/bigcore.exp: Remote system
+Running ./gdb.base/bitfields2.exp ...
+PASS: gdb.base/bitfields2.exp: set print sevenbit-strings
+PASS: gdb.base/bitfields2.exp: break tester prior to break1
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #0
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s1 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #1
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u1 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #2
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s2 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #3
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u2 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #4
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s3 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #5
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u3 = 1
+PASS: gdb.base/bitfields2.exp: break tester prior to break2
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break2
+PASS: gdb.base/bitfields2.exp: continuing to break2 #0
+PASS: gdb.base/bitfields2.exp: bitfield containment; flags.u1, flags.u3, and flags.s3 to all 1s
+PASS: gdb.base/bitfields2.exp: continuing to break2 #1
+PASS: gdb.base/bitfields2.exp: bitfield containment; flags.u2, flags.s1, flags.s2 to all 1s
+PASS: gdb.base/bitfields2.exp: break tester prior to break3
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break3
+PASS: gdb.base/bitfields2.exp: continuing to break3 #0
+PASS: gdb.base/bitfields2.exp: maximum unsigned bitfield values
+PASS: gdb.base/bitfields2.exp: break tester prior to break4
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break4
+PASS: gdb.base/bitfields2.exp: continuing to break4 #0
+PASS: gdb.base/bitfields2.exp: maximum signed bitfield values
+PASS: gdb.base/bitfields2.exp: continuing to break4 #1
+PASS: gdb.base/bitfields2.exp: determining signed-ness of bitfields
+PASS: gdb.base/bitfields2.exp: most negative signed bitfield values
+PASS: gdb.base/bitfields2.exp: continuing to break4 #2
+PASS: gdb.base/bitfields2.exp: signed bitfields containing -1
+PASS: gdb.base/bitfields2.exp: break tester prior to break5
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break5
+PASS: gdb.base/bitfields2.exp: continuing to break5 #0
+PASS: gdb.base/bitfields2.exp: set long long unsigned bitfield
+PASS: gdb.base/bitfields2.exp: set long long signed bitfield positive
+PASS: gdb.base/bitfields2.exp: long long bitfield values after set
+PASS: gdb.base/bitfields2.exp: set long long signed bitfield negative
+PASS: gdb.base/bitfields2.exp: long long bitfield values after set negative
+Running ./gdb.base/bitfields.exp ...
+PASS: gdb.base/bitfields.exp: set print sevenbit-strings
+PASS: gdb.base/bitfields.exp: print flags
+PASS: gdb.base/bitfields.exp: continuing to break1 #1
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s1)
+PASS: gdb.base/bitfields.exp: continuing to break1 #2
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u1)
+PASS: gdb.base/bitfields.exp: continuing to break1 #3
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s2)
+PASS: gdb.base/bitfields.exp: continuing to break1 #4
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u2)
+PASS: gdb.base/bitfields.exp: continuing to break1 #5
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s3)
+PASS: gdb.base/bitfields.exp: continuing to break1 #6
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u3)
+PASS: gdb.base/bitfields.exp: continuing to break1 #7
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s9)
+PASS: gdb.base/bitfields.exp: continuing to break1 #8
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u9)
+PASS: gdb.base/bitfields.exp: continuing to break1 #9
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (sc)
+PASS: gdb.base/bitfields.exp: bitfield containment #1
+PASS: gdb.base/bitfields.exp: continuing to break2
+PASS: gdb.base/bitfields.exp: bitfield containment #2
+PASS: gdb.base/bitfields.exp: unsigned bitfield ranges
+PASS: gdb.base/bitfields.exp: signed bitfields, max positive values
+PASS: gdb.base/bitfields.exp: continuing to break4 #1
+PASS: gdb.base/bitfields.exp: determining signed-ness of bitfields
+PASS: gdb.base/bitfields.exp: signed bitfields, max negative values
+PASS: gdb.base/bitfields.exp: continuing to break4 #2
+PASS: gdb.base/bitfields.exp: signed bitfields with -1
+PASS: gdb.base/bitfields.exp: continuing to break5
+PASS: gdb.base/bitfields.exp: distinct bitfields in container
+PASS: gdb.base/bitfields.exp: print container.one.u3
+PASS: gdb.base/bitfields.exp: print container.two.u3
+PASS: gdb.base/bitfields.exp: set internal var
+PASS: gdb.base/bitfields.exp: set $myvar.a = 0
+PASS: gdb.base/bitfields.exp: set $myvar.inner.b = 1
+PASS: gdb.base/bitfields.exp: set $myvar.inner.deep.c = 0
+PASS: gdb.base/bitfields.exp: set $myvar.inner.deep.d = -1
+PASS: gdb.base/bitfields.exp: set $myvar.inner.e = 1
+PASS: gdb.base/bitfields.exp: set $myvar.f = 1
+PASS: gdb.base/bitfields.exp: print $myvar.a
+PASS: gdb.base/bitfields.exp: print $myvar.inner.b
+PASS: gdb.base/bitfields.exp: print $myvar.inner.deep.c
+PASS: gdb.base/bitfields.exp: print $myvar.inner.deep.d
+PASS: gdb.base/bitfields.exp: print $myvar.inner.e
+PASS: gdb.base/bitfields.exp: print $myvar.f
+Running ./gdb.base/bitops.exp ...
+PASS: gdb.base/bitops.exp: print value of !1
+PASS: gdb.base/bitops.exp: print value of !0
+PASS: gdb.base/bitops.exp: print value of !100
+PASS: gdb.base/bitops.exp: print value of !1000
+PASS: gdb.base/bitops.exp: print value of !10
+PASS: gdb.base/bitops.exp: print value of !2
+PASS: gdb.base/bitops.exp: print value of 10 | 5
+PASS: gdb.base/bitops.exp: print value of 10 & 5
+PASS: gdb.base/bitops.exp: print value of 10 ^ 5
+PASS: gdb.base/bitops.exp: print value of -!0
+PASS: gdb.base/bitops.exp: print value of ~-!0
+PASS: gdb.base/bitops.exp: print value of 3 * 2 / 4.0 * 2.0
+PASS: gdb.base/bitops.exp: print value of 8 << 2 >> 4
+PASS: gdb.base/bitops.exp: print value of -1 < 0 > 1
+PASS: gdb.base/bitops.exp: print value of 15 ^ 10 ^ 5 ^ 7
+PASS: gdb.base/bitops.exp: print value of 3.5 < 4.0
+PASS: gdb.base/bitops.exp: print value of 3.5 < -4.0
+PASS: gdb.base/bitops.exp: print value of 2 > -3
+PASS: gdb.base/bitops.exp: print value of -3>4
+PASS: gdb.base/bitops.exp: print value of (-3 > 4)
+PASS: gdb.base/bitops.exp: print value of 3>=2.5
+PASS: gdb.base/bitops.exp: print value of 3>=4.5
+PASS: gdb.base/bitops.exp: print value of 3==3.0
+PASS: gdb.base/bitops.exp: print value of 3==4.0
+PASS: gdb.base/bitops.exp: print value of 3!=3.0
+PASS: gdb.base/bitops.exp: print value of 3!=5.0
+PASS: gdb.base/bitops.exp: print value of 0 || 1 && 0 | 0 ^ 0 == 8 > 128 >>1 +2 *2
+PASS: gdb.base/bitops.exp: print value of 1.0 || 0
+PASS: gdb.base/bitops.exp: print value of 0.0 || 1.0
+PASS: gdb.base/bitops.exp: print value of 0.0 || 0
+PASS: gdb.base/bitops.exp: print value of 0 || 1 && 0 | 0 ^ 0 == 8
+PASS: gdb.base/bitops.exp: print value of 0 == 8 > 128 >> 1 + 2 * 2
+Running ./gdb.base/break-always.exp ...
+PASS: gdb.base/break-always.exp: set breakpoint always-inserted on
+PASS: gdb.base/break-always.exp: confirm breakpoint always-inserted
+PASS: gdb.base/break-always.exp: set breakpoint on bar
+PASS: gdb.base/break-always.exp: set 2nd breakpoint on bar
+PASS: gdb.base/break-always.exp: set 3rd breakpoint on bar
+PASS: gdb.base/break-always.exp: set 4th breakpoint on bar
+PASS: gdb.base/break-always.exp: initial check breakpoint state
+PASS: gdb.base/break-always.exp: initial disable all breakpoints
+PASS: gdb.base/break-always.exp: initial enable all breakpoints
+PASS: gdb.base/break-always.exp: re-disable all breakpoints
+PASS: gdb.base/break-always.exp: enable 3.A
+PASS: gdb.base/break-always.exp: disable 3.B
+PASS: gdb.base/break-always.exp: enable 3.C
+PASS: gdb.base/break-always.exp: enable 2.D
+PASS: gdb.base/break-always.exp: disable 2.E
+PASS: gdb.base/break-always.exp: disable 3.F
+PASS: gdb.base/break-always.exp: enable 3.G
+PASS: gdb.base/break-always.exp: enable 2.H
+PASS: gdb.base/break-always.exp: disable 2.I
+PASS: gdb.base/break-always.exp: before re-enable check breakpoint state
+PASS: gdb.base/break-always.exp: re-enable all breakpoints
+PASS: gdb.base/break-always.exp: set breakpoint on bar 2
+PASS: gdb.base/break-always.exp: save shadow
+PASS: gdb.base/break-always.exp: write 0 to breakpoint's address
+PASS: gdb.base/break-always.exp: read back 0 from the breakpoint's address
+PASS: gdb.base/break-always.exp: write 1 to breakpoint's address
+PASS: gdb.base/break-always.exp: read back 1 from the breakpoint's address
+PASS: gdb.base/break-always.exp: p /x *(char *) 0x54aaa69c = $shadow
+PASS: gdb.base/break-always.exp: continue to breakpoint: bar
+Running ./gdb.base/break-caller-line.exp ...
+PASS: gdb.base/break-caller-line.exp: up
+PASS: gdb.base/break-caller-line.exp: info line *$pc
+PASS: gdb.base/break-caller-line.exp: break
+Running ./gdb.base/break-entry.exp ...
+UNTESTED: gdb.base/break-entry.exp: break-entry.exp
+Running ./gdb.base/break.exp ...
+PASS: gdb.base/break.exp: Delete all breakpoints when none
+PASS: gdb.base/break.exp: breakpoint function
+PASS: gdb.base/break.exp: breakpoint quoted function
+PASS: gdb.base/break.exp: breakpoint function in file
+PASS: gdb.base/break.exp: use `list' to establish default source file
+PASS: gdb.base/break.exp: breakpoint line number
+PASS: gdb.base/break.exp: breakpoint duplicate
+PASS: gdb.base/break.exp: breakpoint line number in file
+PASS: gdb.base/break.exp: breakpoint at start of multi line if conditional
+PASS: gdb.base/break.exp: breakpoint at start of multi line while conditional
+FAIL: gdb.base/break.exp: breakpoint info
+PASS: gdb.base/break.exp: info break 2 4 6
+PASS: gdb.base/break.exp: info break 3-5
+PASS: gdb.base/break.exp: disable using history values
+FAIL: gdb.base/break.exp: check disable with history values
+PASS: gdb.base/break.exp: disable with convenience values
+FAIL: gdb.base/break.exp: check disable with convenience values
+PASS: gdb.base/break.exp: disable non-existent breakpoint 10
+PASS: gdb.base/break.exp: set $baz 1.234
+PASS: gdb.base/break.exp: disable with non-integer convenience var
+PASS: gdb.base/break.exp: disable with non-existent convenience var
+PASS: gdb.base/break.exp: disable with non-existent history value
+PASS: gdb.base/break.exp: disable with badly formed history value
+FAIL: gdb.base/break.exp: run until function breakpoint
+PASS: gdb.base/break.exp: list marker1
+PASS: gdb.base/break.exp: break lineno
+PASS: gdb.base/break.exp: delete $bpnum
+PASS: gdb.base/break.exp: run until breakpoint set at a line number
+PASS: gdb.base/break.exp: run until file:function(6) breakpoint
+PASS: gdb.base/break.exp: run until file:function(5) breakpoint
+PASS: gdb.base/break.exp: run until file:function(4) breakpoint
+PASS: gdb.base/break.exp: run until file:function(3) breakpoint
+PASS: gdb.base/break.exp: run until file:function(2) breakpoint
+PASS: gdb.base/break.exp: run until file:function(1) breakpoint
+PASS: gdb.base/break.exp: run until quoted breakpoint
+PASS: gdb.base/break.exp: run until file:linenum breakpoint
+PASS: gdb.base/break.exp: breakpoint offset +1
+PASS: gdb.base/break.exp: step onto breakpoint
+PASS: gdb.base/break.exp: setting breakpoint at }
+PASS: gdb.base/break.exp: continue to breakpoint at }
+PASS: gdb.base/break.exp: Temporary breakpoint function
+PASS: gdb.base/break.exp: Temporary breakpoint function in file
+PASS: gdb.base/break.exp: Temporary breakpoint line number #1
+PASS: gdb.base/break.exp: Temporary breakpoint line number #2
+PASS: gdb.base/break.exp: Temporary breakpoint line number in file #1
+PASS: gdb.base/break.exp: Temporary breakpoint line number in file #2
+FAIL: gdb.base/break.exp: Temporary breakpoint info
+PASS: gdb.base/break.exp: catch requires an event name
+PASS: gdb.base/break.exp: set catch fork, never expected to trigger
+PASS: gdb.base/break.exp: set catch vfork, never expected to trigger
+PASS: gdb.base/break.exp: set catch exec, never expected to trigger
+PASS: gdb.base/break.exp: set breakpoint pending off
+PASS: gdb.base/break.exp: break on non-existent source line
+PASS: gdb.base/break.exp: until bp_location1
+PASS: gdb.base/break.exp: break on default location, 1st time
+PASS: gdb.base/break.exp: break on default location, 2nd time
+PASS: gdb.base/break.exp: break on default location, 3rd time
+PASS: gdb.base/break.exp: break on default location, 4th time
+PASS: gdb.base/break.exp: set to-be-silent break bp_location1
+PASS: gdb.base/break.exp: set silent break bp_location1
+PASS: gdb.base/break.exp: info silent break bp_location1
+PASS: gdb.base/break.exp: hit silent break bp_location1
+PASS: gdb.base/break.exp: stopped for silent break bp_location1
+PASS: gdb.base/break.exp: thread-specific breakpoint on non-existent thread disallowed
+PASS: gdb.base/break.exp: thread-specific breakpoint on bogus thread ID disallowed
+PASS: gdb.base/break.exp: breakpoint with trailing garbage disallowed
+PASS: gdb.base/break.exp: step over breakpoint
+PASS: gdb.base/break.exp: clear line has no breakpoint disallowed
+PASS: gdb.base/break.exp: clear current line has no breakpoint disallowed
+PASS: gdb.base/break.exp: break marker3 #1
+PASS: gdb.base/break.exp: break marker3 #2
+PASS: gdb.base/break.exp: clear marker3
+PASS: gdb.base/break.exp: set convenience variable $foo to bp_location11
+PASS: gdb.base/break.exp: set breakpoint via convenience variable
+PASS: gdb.base/break.exp: set convenience variable $foo to 81.5
+PASS: gdb.base/break.exp: set breakpoint via non-integer convenience variable disallowed
+PASS: gdb.base/break.exp: set breakpoint on to-be-called function
+PASS: gdb.base/break.exp: hit breakpoint on called function
+PASS: gdb.base/break.exp: backtrace while in called function
+PASS: gdb.base/break.exp: finish from called function
+PASS: gdb.base/break.exp: finish with arguments disallowed
+PASS: gdb.base/break.exp: finish from outermost frame disallowed
+PASS: gdb.base/break.exp: kill program
+PASS: gdb.base/break.exp: break at factorial
+PASS: gdb.base/break.exp: continue to factorial(5)
+PASS: gdb.base/break.exp: backtrace from factorial(5)
+PASS: gdb.base/break.exp: next to recursive call
+PASS: gdb.base/break.exp: next over recursive call
+PASS: gdb.base/break.exp: backtrace from factorial(5.1)
+FAIL: gdb.base/break.exp: setting breakpoint at exit
+PASS: gdb.base/break.exp: breakpoint function, optimized file
+PASS: gdb.base/break.exp: breakpoint small function, optimized file
+PASS: gdb.base/break.exp: run until function breakpoint, optimized file (code motion)
+PASS: gdb.base/break.exp: run until breakpoint set at small function, optimized file
+PASS: gdb.base/break.exp: rbreak junk pending setup
+PASS: gdb.base/break.exp: rbreak junk set breakpoint
+PASS: gdb.base/break.exp: rbreak junk
+Running ./gdb.base/break-inline.exp ...
+PASS: gdb.base/break-inline.exp: break
+Running ./gdb.base/break-interp.exp ...
+Running ./gdb.base/break-on-linker-gcd-function.exp ...
+PASS: gdb.base/break-on-linker-gcd-function.exp: b 25
+Running ./gdb.base/breakpoint-shadow.exp ...
+PASS: gdb.base/breakpoint-shadow.exp: set breakpoint always-inserted on
+PASS: gdb.base/breakpoint-shadow.exp: show breakpoint always-inserted
+PASS: gdb.base/breakpoint-shadow.exp: disassembly without breakpoints
+PASS: gdb.base/breakpoint-shadow.exp: First breakpoint placed
+PASS: gdb.base/breakpoint-shadow.exp: Second breakpoint placed
+PASS: gdb.base/breakpoint-shadow.exp: disassembly with breakpoints
+Running ./gdb.base/call-ar-st.exp ...
+PASS: gdb.base/call-ar-st.exp: set print sevenbit-strings
+PASS: gdb.base/call-ar-st.exp: set print address off
+PASS: gdb.base/call-ar-st.exp: set width 0
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1209
+PASS: gdb.base/call-ar-st.exp: run until breakpoint set at a line
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1216
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1220
+PASS: gdb.base/call-ar-st.exp: step inside print_all_arrays
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1236
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1241
+PASS: gdb.base/call-ar-st.exp: continue to 1241
+PASS: gdb.base/call-ar-st.exp: set breakpoint in sum_array_print
+PASS: gdb.base/call-ar-st.exp: set print frame-arguments all
+PASS: gdb.base/call-ar-st.exp: check args of sum_array_print
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1281
+PASS: gdb.base/call-ar-st.exp: print compute_with_small_structs(20)
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1286
+PASS: gdb.base/call-ar-st.exp: continue to 1286
+PASS: gdb.base/call-ar-st.exp: tbreak in print_long_arg_list after stepping into memcpy
+PASS: gdb.base/call-ar-st.exp: step into print_long_arg_list
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1300
+PASS: gdb.base/call-ar-st.exp: step into init_bit_flags_combo
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1305
+PASS: gdb.base/call-ar-st.exp: continue to 1305
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1311
+PASS: gdb.base/call-ar-st.exp: continue to 1311
+Running ./gdb.base/callexit.exp ...
+PASS: gdb.base/callexit.exp: inferior function call terminated program
+Running ./gdb.base/callfuncs.exp ...
+PASS: gdb.base/callfuncs.exp: set print sevenbit-strings
+PASS: gdb.base/callfuncs.exp: set print address off
+PASS: gdb.base/callfuncs.exp: set width 0
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: set unwindonsignal on
+PASS: gdb.base/callfuncs.exp: p t_char_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_char_values('a','b')
+PASS: gdb.base/callfuncs.exp: p t_char_values(char_val1,char_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_values('a',char_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_values(char_val1,'b')
+PASS: gdb.base/callfuncs.exp: p t_short_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_short_values(10,-23)
+PASS: gdb.base/callfuncs.exp: p t_short_values(short_val1,short_val2)
+PASS: gdb.base/callfuncs.exp: p t_short_values(10,short_val2)
+PASS: gdb.base/callfuncs.exp: p t_short_values(short_val1,-23)
+PASS: gdb.base/callfuncs.exp: p t_int_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_int_values(87,-26)
+PASS: gdb.base/callfuncs.exp: p t_int_values(int_val1,int_val2)
+PASS: gdb.base/callfuncs.exp: p t_int_values(87,int_val2)
+PASS: gdb.base/callfuncs.exp: p t_int_values(int_val1,-26)
+PASS: gdb.base/callfuncs.exp: p t_long_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_long_values(789,-321)
+PASS: gdb.base/callfuncs.exp: p t_long_values(long_val1,long_val2)
+PASS: gdb.base/callfuncs.exp: p t_long_values(789,long_val2)
+PASS: gdb.base/callfuncs.exp: p t_long_values(long_val1,-321)
+PASS: gdb.base/callfuncs.exp: p t_float_values(0.0,0.0)
+FAIL: gdb.base/callfuncs.exp: p t_float_values(3.14159,-2.3765)
+FAIL: gdb.base/callfuncs.exp: p t_float_values(float_val1,float_val2)
+FAIL: gdb.base/callfuncs.exp: p t_float_values(3.14159,float_val2)
+FAIL: gdb.base/callfuncs.exp: p t_float_values(float_val1,-2.3765)
+PASS: gdb.base/callfuncs.exp: p t_float_values2(0.0,0.0)
+FAIL: gdb.base/callfuncs.exp: p t_float_values2(3.14159,float_val2)
+FAIL: gdb.base/callfuncs.exp: Call function with many float arguments.
+PASS: gdb.base/callfuncs.exp: p t_small_values(1,2,3,4,5,6,7,8,9,10)
+PASS: gdb.base/callfuncs.exp: p t_double_values(0.0,0.0)
+FAIL: gdb.base/callfuncs.exp: p t_double_values(45.654,-67.66)
+FAIL: gdb.base/callfuncs.exp: p t_double_values(double_val1,double_val2)
+FAIL: gdb.base/callfuncs.exp: p t_double_values(45.654,double_val2)
+FAIL: gdb.base/callfuncs.exp: p t_double_values(double_val1,-67.66)
+FAIL: gdb.base/callfuncs.exp: Call function with many double arguments.
+FAIL: gdb.base/callfuncs.exp: p t_double_int(99.0, 1)
+FAIL: gdb.base/callfuncs.exp: p t_double_int(99.0, 99)
+FAIL: gdb.base/callfuncs.exp: p t_int_double(99, 1.0)
+FAIL: gdb.base/callfuncs.exp: p t_int_double(99, 99.0)
+FAIL: gdb.base/callfuncs.exp: p t_float_complex_values(fc1, fc2)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_values(fc3, fc4)
+FAIL: gdb.base/callfuncs.exp: p t_float_complex_many_args(fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_many_args(fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1)
+FAIL: gdb.base/callfuncs.exp: p t_double_complex_values(dc1, dc2)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_values(dc3, dc4)
+FAIL: gdb.base/callfuncs.exp: p t_double_complex_many_args(dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_many_args(dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1)
+FAIL: gdb.base/callfuncs.exp: p t_long_double_complex_values(ldc1, ldc2)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_values(ldc3, ldc4)
+FAIL: gdb.base/callfuncs.exp: p t_long_double_complex_many_args(ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_many_args(ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1,ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1)
+PASS: gdb.base/callfuncs.exp: p t_string_values(string_val2,string_val1)
+PASS: gdb.base/callfuncs.exp: p t_string_values(string_val1,string_val2)
+FAIL: gdb.base/callfuncs.exp: p t_string_values("string 1","string 2")
+FAIL: gdb.base/callfuncs.exp: p t_string_values("string 1",string_val2)
+FAIL: gdb.base/callfuncs.exp: p t_string_values(string_val1,"string 2")
+PASS: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val2,char_array_val1)
+PASS: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val1,char_array_val2)
+FAIL: gdb.base/callfuncs.exp: p t_char_array_values("carray 1","carray 2")
+FAIL: gdb.base/callfuncs.exp: p t_char_array_values("carray 1",char_array_val2)
+FAIL: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val1,"carray 2")
+PASS: gdb.base/callfuncs.exp: p doubleit(4)
+PASS: gdb.base/callfuncs.exp: p add(4,5)
+PASS: gdb.base/callfuncs.exp: p t_func_values(func_val2,func_val1)
+PASS: gdb.base/callfuncs.exp: p t_func_values(func_val1,func_val2)
+PASS: gdb.base/callfuncs.exp: p function_struct.func(5)
+PASS: gdb.base/callfuncs.exp: p function_struct_ptr->func(10)
+PASS: gdb.base/callfuncs.exp: p t_func_values(add,func_val2)
+PASS: gdb.base/callfuncs.exp: p t_func_values(func_val1,doubleit)
+PASS: gdb.base/callfuncs.exp: p t_call_add(add,3,4)
+PASS: gdb.base/callfuncs.exp: p t_call_add(func_val1,3,4)
+PASS: gdb.base/callfuncs.exp: p t_enum_value1(enumval1)
+PASS: gdb.base/callfuncs.exp: p t_enum_value1(enum_val1)
+PASS: gdb.base/callfuncs.exp: p t_enum_value1(enum_val2)
+PASS: gdb.base/callfuncs.exp: p t_enum_value2(enumval2)
+PASS: gdb.base/callfuncs.exp: p t_enum_value2(enum_val2)
+PASS: gdb.base/callfuncs.exp: p t_enum_value2(enum_val1)
+FAIL: gdb.base/callfuncs.exp: p sum_args(1,{2})
+FAIL: gdb.base/callfuncs.exp: p sum_args(2,{2,3})
+FAIL: gdb.base/callfuncs.exp: p sum_args(3,{2,3,4})
+FAIL: gdb.base/callfuncs.exp: p sum_args(4,{2,3,4,5})
+PASS: gdb.base/callfuncs.exp: p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
+PASS: gdb.base/callfuncs.exp: p cmp10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns char
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns short
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns int
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns long
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns float
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns double
+FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns float _Complex
+FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns double _Complex
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns long double _Complex
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns char *
+PASS: gdb.base/callfuncs.exp: set unwindonsignal off
+PASS: gdb.base/callfuncs.exp: register contents after gdb function calls
+PASS: gdb.base/callfuncs.exp: gdb function calls preserve register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: stop at breakpoint in call dummy function
+PASS: gdb.base/callfuncs.exp: continue from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: bt after continuing from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: register contents after stop in call dummy
+PASS: gdb.base/callfuncs.exp: continue after stop in call dummy preserves register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: call function causing a breakpoint then do a finish
+PASS: gdb.base/callfuncs.exp: finish from call dummy breakpoint returns correct value
+PASS: gdb.base/callfuncs.exp: bt after finishing from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: register contents after finish in call dummy
+PASS: gdb.base/callfuncs.exp: finish after stop in call dummy preserves register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: call function causing a breakpoint and then do a return
+PASS: gdb.base/callfuncs.exp: back at main after return from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: register contents after return in call dummy
+PASS: gdb.base/callfuncs.exp: return after stop in call dummy preserves register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: stop at nested call level 1
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 1
+PASS: gdb.base/callfuncs.exp: stop at nested call level 2
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 2
+PASS: gdb.base/callfuncs.exp: stop at nested call level 3
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 3
+PASS: gdb.base/callfuncs.exp: stop at nested call level 4
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 4
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 4
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 4
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 3
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 3
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 2
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 2
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 1
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 1
+PASS: gdb.base/callfuncs.exp: register contents after nested call dummies
+PASS: gdb.base/callfuncs.exp: nested call dummies preserve register contents
+PASS: gdb.base/callfuncs.exp: set $old_sp = $sp
+PASS: gdb.base/callfuncs.exp: set $sp = 0
+PASS: gdb.base/callfuncs.exp: sp == 0: call doubleit (1)
+PASS: gdb.base/callfuncs.exp: set $sp = -1
+PASS: gdb.base/callfuncs.exp: sp == -1: call doubleit (1)
+PASS: gdb.base/callfuncs.exp: set $sp = $old_sp
+PASS: gdb.base/callfuncs.exp: print callfunc (Lcallfunc, 5)
+PASS: gdb.base/callfuncs.exp: print *((int *(*) (void)) voidfunc)()
+Running ./gdb.base/call-rt-st.exp ...
+PASS: gdb.base/call-rt-st.exp: set print sevenbit-strings
+PASS: gdb.base/call-rt-st.exp: set print address off
+PASS: gdb.base/call-rt-st.exp: set width 0
+PASS: gdb.base/call-rt-st.exp: breakpoint loop_count
+PASS: gdb.base/call-rt-st.exp: continue to loop_count
+PASS: gdb.base/call-rt-st.exp: finish out from loop_count (line 777)
+Running ./gdb.base/call-sc.exp ...
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tc (char)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tc char
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tc
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tc
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tc
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tc
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tc
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tc
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tc
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tc
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tc
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tc
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tc
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tc
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-ts (short int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-ts short int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-ts
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-ts
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-ts
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ts
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-ts
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-ts
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-ts
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ts
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-ts
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-ts
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-ts
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-ts
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-ti (int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-ti int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-ti
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-ti
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-ti
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ti
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-ti
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-ti
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-ti
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ti
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-ti
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-ti
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-ti
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-ti
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tl (long int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tl long int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tl
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tl
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tl
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tl
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tl
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tl
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tl
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tl
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tl
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tl
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tl
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tl
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tll (long long int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tll long long int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tll
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tll
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tll
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tll
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tll
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tll
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tll
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tll
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tll
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tll
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tll
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tll
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tf (float)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tf float
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tf
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tf
+FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tf
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tf
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tf
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tf
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tf
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tf
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tf
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tf
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tf
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tf
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-td (double)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-td double
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-td
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-td
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-td
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-td
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-td
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-td
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-td
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-td
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-td
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-td
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-td
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-td
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tld (long double)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tld long double
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tld
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tld
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tld
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tld
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tld
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tld
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tld
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tld
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tld
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tld
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tld
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tld
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-te (enum {e = 49})
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-te enum {e = 49}
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-te
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-te
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-te
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-te
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-te
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-te
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-te
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-te
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-te
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-te
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-te
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-te
+Running ./gdb.base/call-signal-resume.exp ...
+Running ./gdb.base/call-strs.exp ...
+PASS: gdb.base/call-strs.exp: set print sevenbit-strings
+PASS: gdb.base/call-strs.exp: set print address off
+PASS: gdb.base/call-strs.exp: set print symbol off
+PASS: gdb.base/call-strs.exp: set width 0
+FAIL: gdb.base/call-strs.exp: step after assignment to s
+FAIL: gdb.base/call-strs.exp: next over strcpy
+FAIL: gdb.base/call-strs.exp: print buf
+FAIL: gdb.base/call-strs.exp: print s
+Running ./gdb.base/catch-load.exp ...
+FAIL: gdb.base/catch-load.exp: plain load: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain load: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: plain load: catch load
+FAIL: gdb.base/catch-load.exp: plain load: continue
+FAIL: gdb.base/catch-load.exp: plain load with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: catch load
+FAIL: gdb.base/catch-load.exp: plain load with stop-on-solib-events: continue
+FAIL: gdb.base/catch-load.exp: rx load: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx load: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: rx load: catch load catch-load-so
+FAIL: gdb.base/catch-load.exp: rx load: continue
+FAIL: gdb.base/catch-load.exp: rx load with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: catch load catch-load-so
+FAIL: gdb.base/catch-load.exp: rx load with stop-on-solib-events: continue
+FAIL: gdb.base/catch-load.exp: non-matching load: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching load: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: non-matching load: catch load zardoz
+FAIL: gdb.base/catch-load.exp: non-matching load: continue
+FAIL: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: catch load zardoz
+FAIL: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: continue
+FAIL: gdb.base/catch-load.exp: plain unload: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain unload: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: plain unload: catch unload
+FAIL: gdb.base/catch-load.exp: plain unload: continue
+FAIL: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: catch unload
+FAIL: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: continue
+FAIL: gdb.base/catch-load.exp: rx unload: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx unload: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: rx unload: catch unload catch-load-so
+FAIL: gdb.base/catch-load.exp: rx unload: continue
+FAIL: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: catch unload catch-load-so
+FAIL: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: continue
+FAIL: gdb.base/catch-load.exp: non-matching unload: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching unload: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: non-matching unload: catch unload zardoz
+FAIL: gdb.base/catch-load.exp: non-matching unload: continue
+FAIL: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: catch unload zardoz
+FAIL: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: continue
+Running ./gdb.base/catch-signal.exp ...
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: first HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: handle SIGHUP nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP: catch signal
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: handle marker
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: second HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: catch signal SIGHUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: third HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: handle SIGUSR1 nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP: catch signal SIGUSR1
+PASS: gdb.base/catch-signal.exp: SIGHUP: handle SIGHUP nostop noprint nopass
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: fourth HUP
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: first HUP
+PASS: gdb.base/catch-signal.exp: 1: handle SIGHUP nostop noprint pass
+PASS: gdb.base/catch-signal.exp: 1: catch signal
+PASS: gdb.base/catch-signal.exp: 1: continue
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: handle marker
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: second HUP
+PASS: gdb.base/catch-signal.exp: 1: catch signal 1
+PASS: gdb.base/catch-signal.exp: 1: continue
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: third HUP
+PASS: gdb.base/catch-signal.exp: 1: handle SIGUSR1 nostop noprint pass
+PASS: gdb.base/catch-signal.exp: 1: catch signal SIGUSR1
+PASS: gdb.base/catch-signal.exp: 1: handle SIGHUP nostop noprint nopass
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: fourth HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: first HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGHUP nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: catch signal
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: handle marker
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: second HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: catch signal SIGHUP SIGUSR2
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: third HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGUSR1 nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: catch signal SIGUSR1
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGHUP nostop noprint nopass
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: fourth HUP
+PASS: gdb.base/catch-signal.exp: catch signal SIGZARDOZ
+PASS: gdb.base/catch-signal.exp: catch signal all
+PASS: gdb.base/catch-signal.exp: catch signal all SIGHUP
+PASS: gdb.base/catch-signal.exp: catch signal SIGHUP all
+PASS: gdb.base/catch-signal.exp: set catchpoint '' for printing
+PASS: gdb.base/catch-signal.exp: info break for ''
+PASS: gdb.base/catch-signal.exp: save breakpoints for ''
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for ''
+PASS: gdb.base/catch-signal.exp: set catchpoint 'SIGHUP' for printing
+PASS: gdb.base/catch-signal.exp: info break for 'SIGHUP'
+PASS: gdb.base/catch-signal.exp: save breakpoints for 'SIGHUP'
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for 'SIGHUP'
+PASS: gdb.base/catch-signal.exp: set catchpoint 'SIGHUP SIGUSR2' for printing
+PASS: gdb.base/catch-signal.exp: info break for 'SIGHUP SIGUSR2'
+PASS: gdb.base/catch-signal.exp: save breakpoints for 'SIGHUP SIGUSR2'
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for 'SIGHUP SIGUSR2'
+PASS: gdb.base/catch-signal.exp: set catchpoint 'all' for printing
+PASS: gdb.base/catch-signal.exp: info break for 'all'
+PASS: gdb.base/catch-signal.exp: save breakpoints for 'all'
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for 'all'
+Running ./gdb.base/catch-syscall.exp ...
+Running ./gdb.base/charset.exp ...
+PASS: gdb.base/charset.exp: show charset
+PASS: gdb.base/charset.exp: show target-charset
+PASS: gdb.base/charset.exp: check `show target-charset' against `show charset'
+PASS: gdb.base/charset.exp: show host-charset
+PASS: gdb.base/charset.exp: check `show host-charset' against `show charset'
+PASS: gdb.base/charset.exp: try malformed `set charset'
+PASS: gdb.base/charset.exp: try `set host-charset' with invalid charset
+PASS: gdb.base/charset.exp: try `set target-charset' with invalid charset
+PASS: gdb.base/charset.exp: capture valid host charsets
+PASS: gdb.base/charset.exp: capture valid target charsets
+PASS: gdb.base/charset.exp: try `set host-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set host-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set host-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set host-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set host-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set host-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set host-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set host-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: set breakpoint after all strings have been initialized
+PASS: gdb.base/charset.exp: run until all strings have been initialized
+PASS: gdb.base/charset.exp: get integer valueof "sizeof (wchar_t)" (4)
+PASS: gdb.base/charset.exp: set host-charset ASCII
+PASS: gdb.base/charset.exp: set target-charset ASCII
+PASS: gdb.base/charset.exp: print the null character in ASCII
+PASS: gdb.base/charset.exp: print string in ASCII
+PASS: gdb.base/charset.exp: parse character literal in ASCII
+PASS: gdb.base/charset.exp: check value of parsed character literal in ASCII
+PASS: gdb.base/charset.exp: parse string literal in ASCII
+PASS: gdb.base/charset.exp: check value of parsed string literal in ASCII
+PASS: gdb.base/charset.exp: try printing '\a' in ASCII
+PASS: gdb.base/charset.exp: check value of '\a' in ASCII
+PASS: gdb.base/charset.exp: check value of "\a" in ASCII
+PASS: gdb.base/charset.exp: try printing '\b' in ASCII
+PASS: gdb.base/charset.exp: check value of '\b' in ASCII
+PASS: gdb.base/charset.exp: check value of "\b" in ASCII
+PASS: gdb.base/charset.exp: try printing '\f' in ASCII
+PASS: gdb.base/charset.exp: check value of '\f' in ASCII
+PASS: gdb.base/charset.exp: check value of "\f" in ASCII
+PASS: gdb.base/charset.exp: try printing '\n' in ASCII
+PASS: gdb.base/charset.exp: check value of '\n' in ASCII
+PASS: gdb.base/charset.exp: check value of "\n" in ASCII
+PASS: gdb.base/charset.exp: try printing '\r' in ASCII
+PASS: gdb.base/charset.exp: check value of '\r' in ASCII
+PASS: gdb.base/charset.exp: check value of "\r" in ASCII
+PASS: gdb.base/charset.exp: try printing '\t' in ASCII
+PASS: gdb.base/charset.exp: check value of '\t' in ASCII
+PASS: gdb.base/charset.exp: check value of "\t" in ASCII
+PASS: gdb.base/charset.exp: try printing '\v' in ASCII
+PASS: gdb.base/charset.exp: check value of '\v' in ASCII
+PASS: gdb.base/charset.exp: check value of "\v" in ASCII
+PASS: gdb.base/charset.exp: print escape that doesn't exist in ASCII
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in ASCII
+PASS: gdb.base/charset.exp: set target-charset ISO-8859-1
+PASS: gdb.base/charset.exp: print the null character in ISO-8859-1
+PASS: gdb.base/charset.exp: print string in ISO-8859-1
+PASS: gdb.base/charset.exp: parse character literal in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of parsed character literal in ISO-8859-1
+PASS: gdb.base/charset.exp: parse string literal in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of parsed string literal in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\a' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\a' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\a" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\b' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\b' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\b" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\f' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\f' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\f" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\n' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\n' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\n" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\r' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\r' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\r" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\t' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\t' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\t" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\v' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\v' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\v" in ISO-8859-1
+PASS: gdb.base/charset.exp: print escape that doesn't exist in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in ISO-8859-1
+PASS: gdb.base/charset.exp: set target-charset EBCDIC-US
+PASS: gdb.base/charset.exp: print the null character in EBCDIC-US
+PASS: gdb.base/charset.exp: print string in EBCDIC-US
+PASS: gdb.base/charset.exp: parse character literal in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of parsed character literal in EBCDIC-US
+PASS: gdb.base/charset.exp: parse string literal in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of parsed string literal in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\a' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\a' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\a" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\b' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\b' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\b" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\f' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\f' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\f" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\n' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\n' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\n" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\r' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\r' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\r" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\t' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\t' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\t" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\v' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\v' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\v" in EBCDIC-US
+PASS: gdb.base/charset.exp: print escape that doesn't exist in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in EBCDIC-US
+PASS: gdb.base/charset.exp: set target-charset IBM1047
+PASS: gdb.base/charset.exp: print the null character in IBM1047
+PASS: gdb.base/charset.exp: print string in IBM1047
+PASS: gdb.base/charset.exp: parse character literal in IBM1047
+PASS: gdb.base/charset.exp: check value of parsed character literal in IBM1047
+PASS: gdb.base/charset.exp: parse string literal in IBM1047
+PASS: gdb.base/charset.exp: check value of parsed string literal in IBM1047
+PASS: gdb.base/charset.exp: try printing '\a' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\a' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\a" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\b' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\b' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\b" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\f' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\f' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\f" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\n' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\n' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\n" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\r' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\r' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\r" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\t' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\t' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\t" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\v' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\v' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\v" in IBM1047
+PASS: gdb.base/charset.exp: print escape that doesn't exist in IBM1047
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in IBM1047
+PASS: gdb.base/charset.exp: set target-wide-charset UTF-32
+PASS: gdb.base/charset.exp: print the null character in UTF-32
+PASS: gdb.base/charset.exp: print string in UTF-32
+PASS: gdb.base/charset.exp: parse character literal in UTF-32
+PASS: gdb.base/charset.exp: check value of parsed character literal in UTF-32
+PASS: gdb.base/charset.exp: parse string literal in UTF-32
+PASS: gdb.base/charset.exp: check value of parsed string literal in UTF-32
+PASS: gdb.base/charset.exp: try printing '\a' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\a' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\a" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\b' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\b' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\b" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\f' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\f' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\f" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\n' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\n' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\n" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\r' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\r' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\r" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\t' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\t' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\t" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\v' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\v' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\v" in UTF-32
+PASS: gdb.base/charset.exp: print escape that doesn't exist in UTF-32
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in UTF-32
+PASS: gdb.base/charset.exp: set target-charset UTF-8
+PASS: gdb.base/charset.exp: non-representable target character
+PASS: gdb.base/charset.exp: print '\x'
+PASS: gdb.base/charset.exp: print '\u'
+PASS: gdb.base/charset.exp: print '\9'
+PASS: gdb.base/charset.exp: print "\1011"
+PASS: gdb.base/charset.exp: basic wide string concatenation
+PASS: gdb.base/charset.exp: narrow and wide string concatenation
+PASS: gdb.base/charset.exp: wide and narrow string concatenation
+PASS: gdb.base/charset.exp: wide string concatenation with escape
+PASS: gdb.base/charset.exp: concatenate three strings with empty wide string
+PASS: gdb.base/charset.exp: basic wide character
+PASS: gdb.base/charset.exp: get integer valueof "sizeof (char16_t)" (2)
+PASS: gdb.base/charset.exp: basic UTF-16 string concatenation
+PASS: gdb.base/charset.exp: narrow and UTF-16 string concatenation
+PASS: gdb.base/charset.exp: UTF-16 and narrow string concatenation
+PASS: gdb.base/charset.exp: UTF-16 string concatenation with escape
+PASS: gdb.base/charset.exp: concatenate three strings with empty UTF-16 string
+PASS: gdb.base/charset.exp: basic UTF-16 character
+PASS: gdb.base/charset.exp: get integer valueof "sizeof (char32_t)" (4)
+PASS: gdb.base/charset.exp: basic UTF-32 string concatenation
+PASS: gdb.base/charset.exp: narrow and UTF-32 string concatenation
+PASS: gdb.base/charset.exp: UTF-32 and narrow string concatenation
+PASS: gdb.base/charset.exp: UTF-32 string concatenation with escape
+PASS: gdb.base/charset.exp: concatenate three strings with empty UTF-32 string
+PASS: gdb.base/charset.exp: basic UTF-32 character
+PASS: gdb.base/charset.exp: undefined concatenation of wide and UTF-16
+PASS: gdb.base/charset.exp: undefined concatenation of wide and UTF-32
+PASS: gdb.base/charset.exp: typedef to wchar_t
+PASS: gdb.base/charset.exp: undefined concatenation of UTF-16 and UTF-32
+PASS: gdb.base/charset.exp: set up for python printing of utf-16 string
+PASS: gdb.base/charset.exp: extract utf-16 string using python
+PASS: gdb.base/charset.exp: EVAL_SKIP cleanup handling regression test
+FAIL: gdb.base/charset.exp: Assign String16 with prefix u
+FAIL: gdb.base/charset.exp: Display String String16 with x/hs
+FAIL: gdb.base/charset.exp: Assign String32 with prefix U
+FAIL: gdb.base/charset.exp: Display String String32 with x/ws
+FAIL: gdb.base/charset.exp: Assign String32 with prefix L
+FAIL: gdb.base/charset.exp: Display String String32 with x/ws
+PASS: gdb.base/charset.exp: assign string to short array
+PASS: gdb.base/charset.exp: assign string to int array
+PASS: gdb.base/charset.exp: assign string to long array
+Running ./gdb.base/checkpoint.exp ...
+Running ./gdb.base/chng-syms.exp ...
+PASS: gdb.base/chng-syms.exp: setting conditional breakpoint on function
+FAIL: gdb.base/chng-syms.exp: setting breakpoint at exit
+PASS: gdb.base/chng-syms.exp: running with invalidated bpt condition after executable changes
+Running ./gdb.base/code_elim.exp ...
+PASS: gdb.base/code_elim.exp: symbol-file code_elim1
+PASS: gdb.base/code_elim.exp: single psymtabs: test eliminated var my_global_symbol
+PASS: gdb.base/code_elim.exp: single psymtabs: test eliminated var my_static_symbol
+PASS: gdb.base/code_elim.exp: single psymtabs: test eliminated var my_global_func
+PASS: gdb.base/code_elim.exp: single psymtabs: get address of main
+PASS: gdb.base/code_elim.exp: single symtabs: test eliminated var my_global_symbol
+PASS: gdb.base/code_elim.exp: single symtabs: test eliminated var my_static_symbol
+PASS: gdb.base/code_elim.exp: single symtabs: test eliminated var my_global_func
+PASS: gdb.base/code_elim.exp: single symtabs: get address of main
+PASS: gdb.base/code_elim.exp: order1: add-symbol-file code_elim1 0x100000
+PASS: gdb.base/code_elim.exp: order1: add-symbol-file code_elim2 0x200000
+PASS: gdb.base/code_elim.exp: order1: get address of my_global_symbol
+PASS: gdb.base/code_elim.exp: order1: get address of my_static_symbol
+PASS: gdb.base/code_elim.exp: order1: get address of my_global_func
+PASS: gdb.base/code_elim.exp: order1: get address of main
+PASS: gdb.base/code_elim.exp: order2: add-symbol-file code_elim2 0x200000
+PASS: gdb.base/code_elim.exp: order2: add-symbol-file code_elim1 0x100000
+PASS: gdb.base/code_elim.exp: order2: get address of my_global_symbol
+PASS: gdb.base/code_elim.exp: order2: get address of my_static_symbol
+PASS: gdb.base/code_elim.exp: order2: get address of my_global_func
+PASS: gdb.base/code_elim.exp: order2: get address of main
+Running ./gdb.base/code-expr.exp ...
+PASS: gdb.base/code-expr.exp: set print sevenbit-strings
+PASS: gdb.base/code-expr.exp: set print address off
+PASS: gdb.base/code-expr.exp: set width 0
+PASS: gdb.base/code-expr.exp: (@code char)
+PASS: gdb.base/code-expr.exp: (@code signed char)
+PASS: gdb.base/code-expr.exp: (@code unsigned char)
+PASS: gdb.base/code-expr.exp: (@code short)
+PASS: gdb.base/code-expr.exp: (@code signed short)
+PASS: gdb.base/code-expr.exp: (@code unsigned short)
+PASS: gdb.base/code-expr.exp: (@code int)
+PASS: gdb.base/code-expr.exp: (@code signed int)
+PASS: gdb.base/code-expr.exp: (@code unsigned int)
+PASS: gdb.base/code-expr.exp: (@code long)
+PASS: gdb.base/code-expr.exp: (@code signed long)
+PASS: gdb.base/code-expr.exp: (@code unsigned long)
+PASS: gdb.base/code-expr.exp: (@code long long)
+PASS: gdb.base/code-expr.exp: (@code signed long long)
+PASS: gdb.base/code-expr.exp: (@code unsigned long long)
+PASS: gdb.base/code-expr.exp: (@code float)
+PASS: gdb.base/code-expr.exp: (@code double)
+PASS: gdb.base/code-expr.exp: (@data char)
+PASS: gdb.base/code-expr.exp: (@data signed char)
+PASS: gdb.base/code-expr.exp: (@data unsigned char)
+PASS: gdb.base/code-expr.exp: (@data short)
+PASS: gdb.base/code-expr.exp: (@data signed short)
+PASS: gdb.base/code-expr.exp: (@data unsigned short)
+PASS: gdb.base/code-expr.exp: (@data int)
+PASS: gdb.base/code-expr.exp: (@data signed int)
+PASS: gdb.base/code-expr.exp: (@data unsigned int)
+PASS: gdb.base/code-expr.exp: (@data long)
+PASS: gdb.base/code-expr.exp: (@data signed long)
+PASS: gdb.base/code-expr.exp: (@data unsigned long)
+PASS: gdb.base/code-expr.exp: (@data long long)
+PASS: gdb.base/code-expr.exp: (@data signed long long)
+PASS: gdb.base/code-expr.exp: (@data unsigned long long)
+PASS: gdb.base/code-expr.exp: (@data float)
+PASS: gdb.base/code-expr.exp: (@data double)
+PASS: gdb.base/code-expr.exp: (char @code)
+PASS: gdb.base/code-expr.exp: (signed char @code)
+PASS: gdb.base/code-expr.exp: (unsigned char @code)
+PASS: gdb.base/code-expr.exp: (short @code)
+PASS: gdb.base/code-expr.exp: (signed short @code)
+PASS: gdb.base/code-expr.exp: (unsigned short @code)
+PASS: gdb.base/code-expr.exp: (int @code)
+PASS: gdb.base/code-expr.exp: (signed int @code)
+PASS: gdb.base/code-expr.exp: (unsigned int @code)
+PASS: gdb.base/code-expr.exp: (long @code)
+PASS: gdb.base/code-expr.exp: (signed long @code)
+PASS: gdb.base/code-expr.exp: (unsigned long @code)
+PASS: gdb.base/code-expr.exp: (long long @code)
+PASS: gdb.base/code-expr.exp: (signed long long @code)
+PASS: gdb.base/code-expr.exp: (unsigned long long @code)
+PASS: gdb.base/code-expr.exp: (float @code)
+PASS: gdb.base/code-expr.exp: (double @code)
+PASS: gdb.base/code-expr.exp: (char @data)
+PASS: gdb.base/code-expr.exp: (signed char @data)
+PASS: gdb.base/code-expr.exp: (unsigned char @data)
+PASS: gdb.base/code-expr.exp: (short @data)
+PASS: gdb.base/code-expr.exp: (signed short @data)
+PASS: gdb.base/code-expr.exp: (unsigned short @data)
+PASS: gdb.base/code-expr.exp: (int @data)
+PASS: gdb.base/code-expr.exp: (signed int @data)
+PASS: gdb.base/code-expr.exp: (unsigned int @data)
+PASS: gdb.base/code-expr.exp: (long @data)
+PASS: gdb.base/code-expr.exp: (signed long @data)
+PASS: gdb.base/code-expr.exp: (unsigned long @data)
+PASS: gdb.base/code-expr.exp: (long long @data)
+PASS: gdb.base/code-expr.exp: (signed long long @data)
+PASS: gdb.base/code-expr.exp: (unsigned long long @data)
+PASS: gdb.base/code-expr.exp: (float @data)
+PASS: gdb.base/code-expr.exp: (double @data)
+PASS: gdb.base/code-expr.exp: (@code enum misordered)
+PASS: gdb.base/code-expr.exp: (enum misordered @code)
+PASS: gdb.base/code-expr.exp: (@data enum misordered)
+PASS: gdb.base/code-expr.exp: (enum misordered @data)
+PASS: gdb.base/code-expr.exp: (@code int *)
+PASS: gdb.base/code-expr.exp: (int @code *)
+PASS: gdb.base/code-expr.exp: (int * @code)
+PASS: gdb.base/code-expr.exp: (@code int * @code)
+PASS: gdb.base/code-expr.exp: (int @code * @code)
+PASS: gdb.base/code-expr.exp: (@code int **)
+PASS: gdb.base/code-expr.exp: (int @code **)
+PASS: gdb.base/code-expr.exp: (int ** @code)
+PASS: gdb.base/code-expr.exp: (@code int * @code *)
+PASS: gdb.base/code-expr.exp: (int @code * @code *)
+PASS: gdb.base/code-expr.exp: (@code int * @code * @code)
+PASS: gdb.base/code-expr.exp: (int @code * @code * @code)
+PASS: gdb.base/code-expr.exp: (@code struct t_struct)
+PASS: gdb.base/code-expr.exp: (@code union t_union)
+PASS: gdb.base/code-expr.exp: (struct t_struct @code)
+PASS: gdb.base/code-expr.exp: (union t_union @code)
+PASS: gdb.base/code-expr.exp: (@code struct t_struct *)
+PASS: gdb.base/code-expr.exp: (@code union t_union *)
+PASS: gdb.base/code-expr.exp: (struct t_struct @code *)
+PASS: gdb.base/code-expr.exp: (union t_union @code *)
+PASS: gdb.base/code-expr.exp: (struct t_struct * @code)
+PASS: gdb.base/code-expr.exp: (union t_union * @code)
+PASS: gdb.base/code-expr.exp: (@code struct t_struct * @code)
+PASS: gdb.base/code-expr.exp: (@code union t_union * @code)
+PASS: gdb.base/code-expr.exp: (struct t_struct @code * @code)
+PASS: gdb.base/code-expr.exp: (union t_union @code * @code)
+Running ./gdb.base/commands.exp ...
+PASS: gdb.base/commands.exp: set foo in gdbvar_simple_if_test
+PASS: gdb.base/commands.exp: gdbvar_simple_if_test #1
+PASS: gdb.base/commands.exp: gdbvar_simple_if_test #2
+PASS: gdb.base/commands.exp: set foo in gdbvar_simple_while_test
+PASS: gdb.base/commands.exp: gdbvar_simple_while_test #1
+PASS: gdb.base/commands.exp: set foo in gdbvar complex_if_while_test
+PASS: gdb.base/commands.exp: gdbvar_complex_if_while_test #1
+PASS: gdb.base/commands.exp: set foo in user_defined_command_test
+PASS: gdb.base/commands.exp: define mycommand in user_defined_command_test
+PASS: gdb.base/commands.exp: enter commands in user_defined_command_test
+PASS: gdb.base/commands.exp: execute user defined command in user_defined_command_test
+PASS: gdb.base/commands.exp: display user command in user_defined_command_test
+PASS: gdb.base/commands.exp: tried to deprecate non-existing command
+PASS: gdb.base/commands.exp: maintenance deprecate p "new_p" /1/
+PASS: gdb.base/commands.exp: p deprecated warning, with replacement
+PASS: gdb.base/commands.exp: Deprecated warning goes away /1/
+PASS: gdb.base/commands.exp: maintenance deprecate p "new_p" /2/
+PASS: gdb.base/commands.exp: maintenance deprecate print "new_print"
+PASS: gdb.base/commands.exp: both alias and command are deprecated
+PASS: gdb.base/commands.exp: Deprecated warning goes away /2/
+PASS: gdb.base/commands.exp: deprecate long command /1/
+PASS: gdb.base/commands.exp: long command deprecated /1/
+PASS: gdb.base/commands.exp: deprecate long command /2/
+PASS: gdb.base/commands.exp: long command deprecated with no alternative /2/
+PASS: gdb.base/commands.exp: deprecate with no arguments
+PASS: gdb.base/commands.exp: stray_arg0_test #1
+PASS: gdb.base/commands.exp: stray_arg0_test #2
+PASS: gdb.base/commands.exp: stray_arg0_test #3
+PASS: gdb.base/commands.exp: stray_arg0_test #4
+PASS: gdb.base/commands.exp: source file with indented comment
+PASS: gdb.base/commands.exp: recursive source test
+PASS: gdb.base/commands.exp: set $tem in if_commands_test
+PASS: gdb.base/commands.exp: if $tem == 2 - if_commands_test 1
+PASS: gdb.base/commands.exp: break main - if_commands_test 1
+PASS: gdb.base/commands.exp: else - if_commands_test 1
+PASS: gdb.base/commands.exp: break factorial - if_commands_test 1
+PASS: gdb.base/commands.exp: commands - if_commands_test 1
+PASS: gdb.base/commands.exp: silent - if_commands_test 1
+PASS: gdb.base/commands.exp: set $tem = 3 - if_commands_test 1
+PASS: gdb.base/commands.exp: continue - if_commands_test 1
+PASS: gdb.base/commands.exp: first end - if_commands_test 1
+PASS: gdb.base/commands.exp: second end - if_commands_test 1
+PASS: gdb.base/commands.exp: if $tem == 1 - if_commands_test 2
+PASS: gdb.base/commands.exp: break main - if_commands_test 2
+PASS: gdb.base/commands.exp: else - if_commands_test 2
+PASS: gdb.base/commands.exp: break factorial - if_commands_test 2
+PASS: gdb.base/commands.exp: commands - if_commands_test 2
+PASS: gdb.base/commands.exp: silent - if_commands_test 2
+PASS: gdb.base/commands.exp: set $tem = 3 - if_commands_test 2
+PASS: gdb.base/commands.exp: continue - if_commands_test 2
+PASS: gdb.base/commands.exp: first end - if_commands_test 2
+PASS: gdb.base/commands.exp: second end - if_commands_test 2
+PASS: gdb.base/commands.exp: hook-stop 1
+PASS: gdb.base/commands.exp: hook-stop 1a
+PASS: gdb.base/commands.exp: hook-stop 1b
+PASS: gdb.base/commands.exp: main commands 1
+PASS: gdb.base/commands.exp: main commands 1a
+PASS: gdb.base/commands.exp: main commands 1b
+PASS: gdb.base/commands.exp: main commands 1c
+PASS: gdb.base/commands.exp: main commands 2
+PASS: gdb.base/commands.exp: main commands 2a
+PASS: gdb.base/commands.exp: main commands 2b
+PASS: gdb.base/commands.exp: main commands 2c
+PASS: gdb.base/commands.exp: cmd1 error
+PASS: gdb.base/commands.exp: no cmd2
+PASS: gdb.base/commands.exp: define one
+PASS: gdb.base/commands.exp: define hook-one
+PASS: gdb.base/commands.exp: define one in redefine_hook_test
+PASS: gdb.base/commands.exp: enter commands for one redefinition in redefine_hook_test
+PASS: gdb.base/commands.exp: execute one command in redefine_hook_test
+PASS: gdb.base/commands.exp: define backtrace
+PASS: gdb.base/commands.exp: expect response to define backtrace
+PASS: gdb.base/commands.exp: enter commands in redefine_backtrace_test
+PASS: gdb.base/commands.exp: execute backtrace command in redefine_backtrace_test
+PASS: gdb.base/commands.exp: execute bt command in redefine_backtrace_test
+Running ./gdb.base/completion.exp ...
+PASS: gdb.base/completion.exp: complete 'hfgfh'
+PASS: gdb.base/completion.exp: complete 'show output'
+PASS: gdb.base/completion.exp: complete 'show output-'
+PASS: gdb.base/completion.exp: complete 'p'
+PASS: gdb.base/completion.exp: complete 'p '
+PASS: gdb.base/completion.exp: complete 'info t foo'
+PASS: gdb.base/completion.exp: complete 'info t'
+PASS: gdb.base/completion.exp: complete 'info t '
+PASS: gdb.base/completion.exp: complete 'info asdfgh'
+PASS: gdb.base/completion.exp: complete 'info asdfgh '
+PASS: gdb.base/completion.exp: complete 'info'
+PASS: gdb.base/completion.exp: complete 'info '
+PASS: gdb.base/completion.exp: complete (2) 'info '
+PASS: gdb.base/completion.exp: complete 'help info wat'
+PASS: gdb.base/completion.exp: complete 'p "break1'
+XFAIL: gdb.base/completion.exp: complete 'p "break1.'
+PASS: gdb.base/completion.exp: complete 'p 'arg'
+PASS: gdb.base/completion.exp: complete (2) 'p 'arg'
+PASS: gdb.base/completion.exp: complete 'handle signal'
+PASS: gdb.base/completion.exp: complete 'handle keyword'
+PASS: gdb.base/completion.exp: complete help aliases
+PASS: gdb.base/completion.exp: complete 'p no_var_named_this-arg'
+PASS: gdb.base/completion.exp: complete (2) 'p no_var_named_this-arg'
+FAIL: gdb.base/completion.exp: complete (2) 'p no_var_named_this-' (timeout)
+FAIL: gdb.base/completion.exp: complete 'p values[0].a' (timeout)
+FAIL: gdb.base/completion.exp: complete 'p values[0] . a' (timeout)
+FAIL: gdb.base/completion.exp: complete 'p &values[0] -> a' (timeout)
+FAIL: gdb.base/completion.exp: completion of field in anonymous union
+FAIL: gdb.base/completion.exp: ptype completion of field in anonymous union
+PASS: gdb.base/completion.exp: whatis completion of field in anonymous union
+PASS: gdb.base/completion.exp: cd to ${srcdir}
+PASS: gdb.base/completion.exp: directory completion
+PASS: gdb.base/completion.exp: directory completion 2
+PASS: gdb.base/completion.exp: Glob remaining of directory test
+PASS: gdb.base/completion.exp: complete-command 'file ./gdb.base/compl'
+PASS: gdb.base/completion.exp: complete 'file ./gdb.base/complet'
+PASS: gdb.base/completion.exp: complete 'info func marke'
+PASS: gdb.base/completion.exp: complete 'set follow-fork-mode'
+PASS: gdb.base/completion.exp: field completion with invalid field
+PASS: gdb.base/completion.exp: test non-deprecated completion
+PASS: gdb.base/completion.exp: test deprecated completion
+PASS: gdb.base/completion.exp: complete ptype struct some_
+PASS: gdb.base/completion.exp: complete ptype enum some_
+PASS: gdb.base/completion.exp: complete ptype union some_
+PASS: gdb.base/completion.exp: complete set gnutarget aut
+PASS: gdb.base/completion.exp: complete set cp-abi aut
+Running ./gdb.base/complex.exp ...
+PASS: gdb.base/complex.exp: print complex packed value in C
+PASS: gdb.base/complex.exp: print complex value in C
+Running ./gdb.base/comprdebug.exp ...
+PASS: gdb.base/comprdebug.exp: file comprdebug0.o
+Running ./gdb.base/condbreak.exp ...
+PASS: gdb.base/condbreak.exp: breakpoint function
+PASS: gdb.base/condbreak.exp: break marker1 if 1==1
+PASS: gdb.base/condbreak.exp: delete 2
+PASS: gdb.base/condbreak.exp: break break.c:92 if 1==1
+PASS: gdb.base/condbreak.exp: delete 3
+PASS: gdb.base/condbreak.exp: break marker1 if (1==1)
+PASS: gdb.base/condbreak.exp: break break.c:92 if (1==1)
+PASS: gdb.base/condbreak.exp: break marker2 if (a==43)
+PASS: gdb.base/condbreak.exp: break marker3 if (multi_line_if_conditional(1,1,1)==0)
+PASS: gdb.base/condbreak.exp: break marker4
+FAIL: gdb.base/condbreak.exp: breakpoint info
+PASS: gdb.base/condbreak.exp: rerun to main
+PASS: gdb.base/condbreak.exp: run until breakpoint set at a line number
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker1
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker2
+PASS: gdb.base/condbreak.exp: break main if (1==1) thread 999
+PASS: gdb.base/condbreak.exp: break main thread 999 if (1==1)
+PASS: gdb.base/condbreak.exp: break *main if (1==1) thread 999
+PASS: gdb.base/condbreak.exp: break *main thread 999 if (1==1)
+PASS: gdb.base/condbreak.exp: break *main if (1==1) task 999
+PASS: gdb.base/condbreak.exp: break *main task 999 if (1==1)
+PASS: gdb.base/condbreak.exp: break *main if (1==1) t 999
+PASS: gdb.base/condbreak.exp: break *main if (1==1) th 999
+PASS: gdb.base/condbreak.exp: break *main if (1==1) ta 999
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker3
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker4
+PASS: gdb.base/condbreak.exp: complete cond 1
+PASS: gdb.base/condbreak.exp: set variable $var = 1
+PASS: gdb.base/condbreak.exp: complete cond $v
+PASS: gdb.base/condbreak.exp: complete cond 1 values[0].a
+Running ./gdb.base/cond-eval-mode.exp ...
+PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation host
+PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation auto
+PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation target
+Running ./gdb.base/cond-expr.exp ...
+PASS: gdb.base/cond-expr.exp: print value of cond expr (const true)
+PASS: gdb.base/cond-expr.exp: print value of cond expr (const false)
+PASS: gdb.base/cond-expr.exp: set variable x=14
+PASS: gdb.base/cond-expr.exp: set variable y=2
+PASS: gdb.base/cond-expr.exp: set variable z=3
+PASS: gdb.base/cond-expr.exp: print value of cond expr (var true)
+PASS: gdb.base/cond-expr.exp: set variable x=0
+PASS: gdb.base/cond-expr.exp: print value of cond expr (var false)
+PASS: gdb.base/cond-expr.exp: print whatis of cond expr
+Running ./gdb.base/consecutive.exp ...
+PASS: gdb.base/consecutive.exp: continue to breakpoint in foo
+PASS: gdb.base/consecutive.exp: get breakpoint address for foo
+PASS: gdb.base/consecutive.exp: set bp, 2nd instr
+PASS: gdb.base/consecutive.exp: stopped at bp, 2nd instr
+Running ./gdb.base/constvars.exp ...
+PASS: gdb.base/constvars.exp: break marker1
+PASS: gdb.base/constvars.exp: continue to marker1
+PASS: gdb.base/constvars.exp: up from marker1
+PASS: gdb.base/constvars.exp: ptype qux1
+PASS: gdb.base/constvars.exp: print lave
+PASS: gdb.base/constvars.exp: ptype lave
+PASS: gdb.base/constvars.exp: print lavish
+PASS: gdb.base/constvars.exp: ptype lavish
+PASS: gdb.base/constvars.exp: print lax
+PASS: gdb.base/constvars.exp: ptype lax
+PASS: gdb.base/constvars.exp: print lecherous
+PASS: gdb.base/constvars.exp: ptype lecherous
+PASS: gdb.base/constvars.exp: print lechery
+PASS: gdb.base/constvars.exp: ptype lechery
+PASS: gdb.base/constvars.exp: print lectern
+PASS: gdb.base/constvars.exp: ptype lectern
+PASS: gdb.base/constvars.exp: print leeway
+PASS: gdb.base/constvars.exp: ptype leeway
+PASS: gdb.base/constvars.exp: print legacy
+PASS: gdb.base/constvars.exp: ptype legacy
+PASS: gdb.base/constvars.exp: print laconic
+PASS: gdb.base/constvars.exp: ptype laconic
+PASS: gdb.base/constvars.exp: print laggard
+PASS: gdb.base/constvars.exp: ptype laggard
+PASS: gdb.base/constvars.exp: print lagoon
+PASS: gdb.base/constvars.exp: ptype lagoon
+PASS: gdb.base/constvars.exp: print laity
+PASS: gdb.base/constvars.exp: ptype laity
+PASS: gdb.base/constvars.exp: print lambent
+PASS: gdb.base/constvars.exp: ptype lambent
+PASS: gdb.base/constvars.exp: print laminated
+PASS: gdb.base/constvars.exp: ptype laminated
+PASS: gdb.base/constvars.exp: print lampoon
+PASS: gdb.base/constvars.exp: ptype lampoon
+PASS: gdb.base/constvars.exp: print languid
+PASS: gdb.base/constvars.exp: ptype languid
+PASS: gdb.base/constvars.exp: print *legend
+PASS: gdb.base/constvars.exp: ptype legend
+PASS: gdb.base/constvars.exp: print *legerdemain
+PASS: gdb.base/constvars.exp: ptype legerdemain
+PASS: gdb.base/constvars.exp: print *leniency
+PASS: gdb.base/constvars.exp: ptype leniency
+PASS: gdb.base/constvars.exp: print *leonine
+PASS: gdb.base/constvars.exp: ptype leonine
+PASS: gdb.base/constvars.exp: print *lesion
+PASS: gdb.base/constvars.exp: ptype lesion
+PASS: gdb.base/constvars.exp: print *lethal
+PASS: gdb.base/constvars.exp: ptype lethal
+PASS: gdb.base/constvars.exp: print *lethargic
+PASS: gdb.base/constvars.exp: ptype lethargic
+PASS: gdb.base/constvars.exp: print *levity
+PASS: gdb.base/constvars.exp: ptype levity
+PASS: gdb.base/constvars.exp: print *lewd
+PASS: gdb.base/constvars.exp: ptype lewd
+PASS: gdb.base/constvars.exp: print *lexicographer
+PASS: gdb.base/constvars.exp: ptype lexicographer
+PASS: gdb.base/constvars.exp: print *lexicon
+PASS: gdb.base/constvars.exp: ptype lexicon
+PASS: gdb.base/constvars.exp: print *liaison
+PASS: gdb.base/constvars.exp: ptype liaison
+PASS: gdb.base/constvars.exp: print *libation
+PASS: gdb.base/constvars.exp: ptype libation
+PASS: gdb.base/constvars.exp: print *libelous
+PASS: gdb.base/constvars.exp: ptype libelous
+PASS: gdb.base/constvars.exp: print *libertine
+PASS: gdb.base/constvars.exp: ptype libertine
+PASS: gdb.base/constvars.exp: print *libidinous
+PASS: gdb.base/constvars.exp: ptype libidinous
+PASS: gdb.base/constvars.exp: print *languish
+PASS: gdb.base/constvars.exp: ptype languish
+PASS: gdb.base/constvars.exp: print *languor
+PASS: gdb.base/constvars.exp: ptype languor
+PASS: gdb.base/constvars.exp: print *lank
+PASS: gdb.base/constvars.exp: ptype lank
+PASS: gdb.base/constvars.exp: print *lapidary
+PASS: gdb.base/constvars.exp: ptype lapidary
+PASS: gdb.base/constvars.exp: print *larceny
+PASS: gdb.base/constvars.exp: ptype larceny
+PASS: gdb.base/constvars.exp: print *largess
+PASS: gdb.base/constvars.exp: ptype largess
+PASS: gdb.base/constvars.exp: print *lascivious
+PASS: gdb.base/constvars.exp: ptype lascivious
+PASS: gdb.base/constvars.exp: print *lassitude
+PASS: gdb.base/constvars.exp: ptype lassitude
+PASS: gdb.base/constvars.exp: print *lamprey
+PASS: gdb.base/constvars.exp: ptype lamprey
+PASS: gdb.base/constvars.exp: print *lariat
+PASS: gdb.base/constvars.exp: ptype lariat
+PASS: gdb.base/constvars.exp: print *laudanum
+PASS: gdb.base/constvars.exp: ptype laudanum
+PASS: gdb.base/constvars.exp: print *lecithin
+PASS: gdb.base/constvars.exp: ptype lecithin
+PASS: gdb.base/constvars.exp: print *leviathan
+PASS: gdb.base/constvars.exp: ptype leviathan
+PASS: gdb.base/constvars.exp: print *libretto
+PASS: gdb.base/constvars.exp: ptype libretto
+PASS: gdb.base/constvars.exp: print *lissome
+PASS: gdb.base/constvars.exp: ptype lissome
+PASS: gdb.base/constvars.exp: print *locust
+PASS: gdb.base/constvars.exp: ptype locust
+PASS: gdb.base/constvars.exp: ptype logical
+PASS: gdb.base/constvars.exp: ptype lugged
+PASS: gdb.base/constvars.exp: ptype luck
+PASS: gdb.base/constvars.exp: ptype lunar
+PASS: gdb.base/constvars.exp: ptype lumen
+PASS: gdb.base/constvars.exp: ptype lurk
+PASS: gdb.base/constvars.exp: ptype lush
+PASS: gdb.base/constvars.exp: ptype lynx
+PASS: gdb.base/constvars.exp: ptype crass
+PASS: gdb.base/constvars.exp: ptype crisp
+Running ./gdb.base/corefile.exp ...
+Running ./gdb.base/ctxobj.exp ...
+FAIL: gdb.base/ctxobj.exp: break in get_version functions (got interactive prompt)
+FAIL: gdb.base/ctxobj.exp: continue to get_version_1 (the program exited)
+FAIL: gdb.base/ctxobj.exp: print libctxobj1's this_version_num from partial symtab
+FAIL: gdb.base/ctxobj.exp: print libctxobj1's this_version_num from symtab
+FAIL: gdb.base/ctxobj.exp: continue to get_version_2 (the program is no longer running)
+FAIL: gdb.base/ctxobj.exp: print libctxobj2's this_version_num from partial symtab
+FAIL: gdb.base/ctxobj.exp: print libctxobj2's this_version_num from symtab
+Running ./gdb.base/cursal.exp ...
+PASS: gdb.base/cursal.exp: set listsize 1
+PASS: gdb.base/cursal.exp: list before run
+PASS: gdb.base/cursal.exp: list in main
+PASS: gdb.base/cursal.exp: list in func2
+PASS: gdb.base/cursal.exp: backtrace
+PASS: gdb.base/cursal.exp: list after backtrace
+PASS: gdb.base/cursal.exp: set listsize 3
+PASS: gdb.base/cursal.exp: list size 3
+Running ./gdb.base/cvexpr.exp ...
+PASS: gdb.base/cvexpr.exp: set print sevenbit-strings
+PASS: gdb.base/cvexpr.exp: set print address off
+PASS: gdb.base/cvexpr.exp: set width 0
+PASS: gdb.base/cvexpr.exp: (const char)
+PASS: gdb.base/cvexpr.exp: (const signed char)
+PASS: gdb.base/cvexpr.exp: (const unsigned char)
+PASS: gdb.base/cvexpr.exp: (const short)
+PASS: gdb.base/cvexpr.exp: (const signed short)
+PASS: gdb.base/cvexpr.exp: (const unsigned short)
+PASS: gdb.base/cvexpr.exp: (const int)
+PASS: gdb.base/cvexpr.exp: (const signed int)
+PASS: gdb.base/cvexpr.exp: (const unsigned int)
+PASS: gdb.base/cvexpr.exp: (const long)
+PASS: gdb.base/cvexpr.exp: (const signed long)
+PASS: gdb.base/cvexpr.exp: (const unsigned long)
+PASS: gdb.base/cvexpr.exp: (const long long)
+PASS: gdb.base/cvexpr.exp: (const signed long long)
+PASS: gdb.base/cvexpr.exp: (const unsigned long long)
+PASS: gdb.base/cvexpr.exp: (const float)
+PASS: gdb.base/cvexpr.exp: (const double)
+PASS: gdb.base/cvexpr.exp: (volatile char)
+PASS: gdb.base/cvexpr.exp: (volatile signed char)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned char)
+PASS: gdb.base/cvexpr.exp: (volatile short)
+PASS: gdb.base/cvexpr.exp: (volatile signed short)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned short)
+PASS: gdb.base/cvexpr.exp: (volatile int)
+PASS: gdb.base/cvexpr.exp: (volatile signed int)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned int)
+PASS: gdb.base/cvexpr.exp: (volatile long)
+PASS: gdb.base/cvexpr.exp: (volatile signed long)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned long)
+PASS: gdb.base/cvexpr.exp: (volatile long long)
+PASS: gdb.base/cvexpr.exp: (volatile signed long long)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned long long)
+PASS: gdb.base/cvexpr.exp: (volatile float)
+PASS: gdb.base/cvexpr.exp: (volatile double)
+PASS: gdb.base/cvexpr.exp: (const volatile int)
+PASS: gdb.base/cvexpr.exp: (volatile const int)
+PASS: gdb.base/cvexpr.exp: (const int volatile)
+PASS: gdb.base/cvexpr.exp: (volatile int const)
+PASS: gdb.base/cvexpr.exp: (int const volatile)
+PASS: gdb.base/cvexpr.exp: (int volatile const)
+PASS: gdb.base/cvexpr.exp: (const volatile int *)
+PASS: gdb.base/cvexpr.exp: (volatile const int *)
+PASS: gdb.base/cvexpr.exp: (const int volatile)
+PASS: gdb.base/cvexpr.exp: (volatile int const *)
+PASS: gdb.base/cvexpr.exp: (int const volatile *)
+PASS: gdb.base/cvexpr.exp: (int volatile const *)
+PASS: gdb.base/cvexpr.exp: (int * const volatile)
+PASS: gdb.base/cvexpr.exp: (int * volatile const)
+PASS: gdb.base/cvexpr.exp: (char const)
+PASS: gdb.base/cvexpr.exp: (signed char const)
+PASS: gdb.base/cvexpr.exp: (unsigned char const)
+PASS: gdb.base/cvexpr.exp: (short const)
+PASS: gdb.base/cvexpr.exp: (signed short const)
+PASS: gdb.base/cvexpr.exp: (unsigned short const)
+PASS: gdb.base/cvexpr.exp: (int const)
+PASS: gdb.base/cvexpr.exp: (signed int const)
+PASS: gdb.base/cvexpr.exp: (unsigned int const)
+PASS: gdb.base/cvexpr.exp: (long const)
+PASS: gdb.base/cvexpr.exp: (signed long const)
+PASS: gdb.base/cvexpr.exp: (unsigned long const)
+PASS: gdb.base/cvexpr.exp: (long long const)
+PASS: gdb.base/cvexpr.exp: (signed long long const)
+PASS: gdb.base/cvexpr.exp: (unsigned long long const)
+PASS: gdb.base/cvexpr.exp: (float const)
+PASS: gdb.base/cvexpr.exp: (double const)
+PASS: gdb.base/cvexpr.exp: (char volatile)
+PASS: gdb.base/cvexpr.exp: (signed char volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned char volatile)
+PASS: gdb.base/cvexpr.exp: (short volatile)
+PASS: gdb.base/cvexpr.exp: (signed short volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned short volatile)
+PASS: gdb.base/cvexpr.exp: (int volatile)
+PASS: gdb.base/cvexpr.exp: (signed int volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned int volatile)
+PASS: gdb.base/cvexpr.exp: (long volatile)
+PASS: gdb.base/cvexpr.exp: (signed long volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned long volatile)
+PASS: gdb.base/cvexpr.exp: (long long volatile)
+PASS: gdb.base/cvexpr.exp: (signed long long volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned long long volatile)
+PASS: gdb.base/cvexpr.exp: (float volatile)
+PASS: gdb.base/cvexpr.exp: (double volatile)
+PASS: gdb.base/cvexpr.exp: (const enum misordered)
+PASS: gdb.base/cvexpr.exp: (enum misordered const)
+PASS: gdb.base/cvexpr.exp: (volatile enum misordered)
+PASS: gdb.base/cvexpr.exp: (enum misordered volatile)
+PASS: gdb.base/cvexpr.exp: (const int *)
+PASS: gdb.base/cvexpr.exp: (int const *)
+PASS: gdb.base/cvexpr.exp: (int * const)
+PASS: gdb.base/cvexpr.exp: (const int * const)
+PASS: gdb.base/cvexpr.exp: (int const * const)
+PASS: gdb.base/cvexpr.exp: (const int **)
+PASS: gdb.base/cvexpr.exp: (int const **)
+PASS: gdb.base/cvexpr.exp: (int ** const)
+PASS: gdb.base/cvexpr.exp: (const int * const *)
+PASS: gdb.base/cvexpr.exp: (int const * const *)
+PASS: gdb.base/cvexpr.exp: (const int * const * const)
+PASS: gdb.base/cvexpr.exp: (int const * const * const)
+PASS: gdb.base/cvexpr.exp: (const struct t_struct)
+PASS: gdb.base/cvexpr.exp: (const union t_union)
+PASS: gdb.base/cvexpr.exp: (struct t_struct const)
+PASS: gdb.base/cvexpr.exp: (union t_union const)
+PASS: gdb.base/cvexpr.exp: (const struct t_struct *)
+PASS: gdb.base/cvexpr.exp: (const union t_union *)
+PASS: gdb.base/cvexpr.exp: (struct t_struct const *)
+PASS: gdb.base/cvexpr.exp: (union t_union const *)
+PASS: gdb.base/cvexpr.exp: (struct t_struct * const)
+PASS: gdb.base/cvexpr.exp: (union t_union * const)
+PASS: gdb.base/cvexpr.exp: (const struct t_struct * const)
+PASS: gdb.base/cvexpr.exp: (const union t_union * const)
+PASS: gdb.base/cvexpr.exp: (struct t_struct const * const)
+PASS: gdb.base/cvexpr.exp: (union t_union const * const)
+Running ./gdb.base/dbx.exp ...
+PASS: gdb.base/dbx.exp: stop in main
+PASS: gdb.base/dbx.exp: status
+PASS: gdb.base/dbx.exp: stop at average.c:43
+PASS: gdb.base/dbx.exp: stop in average.c:43
+PASS: gdb.base/dbx.exp: stop at main
+PASS: gdb.base/dbx.exp: running to main
+PASS: gdb.base/dbx.exp: assign first
+PASS: gdb.base/dbx.exp: print first
+PASS: gdb.base/dbx.exp: whereis my_list
+PASS: gdb.base/dbx.exp: file average.c:1
+PASS: gdb.base/dbx.exp: cont 1
+PASS: gdb.base/dbx.exp: step
+XFAIL: gdb.base/dbx.exp: func sum
+PASS: gdb.base/dbx.exp: stop in sum
+PASS: gdb.base/dbx.exp: cont 2
+XFAIL: gdb.base/dbx.exp: func print_average
+Running ./gdb.base/debug-expr.exp ...
+PASS: gdb.base/debug-expr.exp: set variable array[0] = 0
+PASS: gdb.base/debug-expr.exp: set variable array[1] = 1
+PASS: gdb.base/debug-expr.exp: set variable array[2] = 2
+PASS: gdb.base/debug-expr.exp: set variable array[3] = 3
+PASS: gdb.base/debug-expr.exp: set debug expression 1
+PASS: gdb.base/debug-expr.exp: print /x {char[4]} array
+Running ./gdb.base/default.exp ...
+PASS: gdb.base/default.exp: add-symbol-file
+PASS: gdb.base/default.exp: append
+PASS: gdb.base/default.exp: append binary
+PASS: gdb.base/default.exp: append memory
+PASS: gdb.base/default.exp: append value
+PASS: gdb.base/default.exp: append binary memory
+PASS: gdb.base/default.exp: append binary value
+WARNING: Skipping backtrace and break tests because of GDB stub.
+PASS: gdb.base/default.exp: continue
+PASS: gdb.base/default.exp: continue "c" abbreviation
+PASS: gdb.base/default.exp: call
+PASS: gdb.base/default.exp: catch
+PASS: gdb.base/default.exp: cd
+PASS: gdb.base/default.exp: clear
+PASS: gdb.base/default.exp: commands
+PASS: gdb.base/default.exp: condition
+PASS: gdb.base/default.exp: core-file
+PASS: gdb.base/default.exp: delete "d" abbreviation
+PASS: gdb.base/default.exp: delete
+PASS: gdb.base/default.exp: define
+PASS: gdb.base/default.exp: delete breakpoints
+PASS: gdb.base/default.exp: delete display prompt
+PASS: gdb.base/default.exp: detach
+PASS: gdb.base/default.exp: directory prompt
+PASS: gdb.base/default.exp: disable "dis" abbreviation
+PASS: gdb.base/default.exp: disable "disa" abbreviation
+PASS: gdb.base/default.exp: disable
+PASS: gdb.base/default.exp: disable breakpoints
+PASS: gdb.base/default.exp: disable display
+PASS: gdb.base/default.exp: disassemble
+PASS: gdb.base/default.exp: display
+PASS: gdb.base/default.exp: do
+PASS: gdb.base/default.exp: document
+PASS: gdb.base/default.exp: down
+PASS: gdb.base/default.exp: down-silently
+PASS: gdb.base/default.exp: dump
+PASS: gdb.base/default.exp: dump binary
+PASS: gdb.base/default.exp: dump ihex
+PASS: gdb.base/default.exp: dump memory
+PASS: gdb.base/default.exp: dump srec
+PASS: gdb.base/default.exp: dump tekhex
+PASS: gdb.base/default.exp: dump value
+PASS: gdb.base/default.exp: dump binary memory
+PASS: gdb.base/default.exp: dump binary value
+PASS: gdb.base/default.exp: dump ihex memory
+PASS: gdb.base/default.exp: dump ihex value
+PASS: gdb.base/default.exp: dump srec memory
+PASS: gdb.base/default.exp: dump srec value
+PASS: gdb.base/default.exp: dump tekhex memory
+PASS: gdb.base/default.exp: dump tekhex value
+PASS: gdb.base/default.exp: echo
+PASS: gdb.base/default.exp: enable breakpoints delete
+PASS: gdb.base/default.exp: enable breakpoints once
+PASS: gdb.base/default.exp: enable breakpoints
+PASS: gdb.base/default.exp: enable delete
+PASS: gdb.base/default.exp: enable display
+PASS: gdb.base/default.exp: enable once
+PASS: gdb.base/default.exp: enable
+PASS: gdb.base/default.exp: exec-file
+PASS: gdb.base/default.exp: frame "f" abbreviation
+PASS: gdb.base/default.exp: frame
+PASS: gdb.base/default.exp: fg
+PASS: gdb.base/default.exp: file
+PASS: gdb.base/default.exp: finish
+PASS: gdb.base/default.exp: forward-search
+PASS: gdb.base/default.exp: gcore
+PASS: gdb.base/default.exp: generate-core-file
+PASS: gdb.base/default.exp: help "h" abbreviation
+PASS: gdb.base/default.exp: help
+PASS: gdb.base/default.exp: handle
+PASS: gdb.base/default.exp: info "i" abbreviation
+PASS: gdb.base/default.exp: info
+PASS: gdb.base/default.exp: ignore
+PASS: gdb.base/default.exp: info address
+PASS: gdb.base/default.exp: info all-registers
+PASS: gdb.base/default.exp: info args
+PASS: gdb.base/default.exp: info bogus-gdb-command
+PASS: gdb.base/default.exp: info breakpoints
+PASS: gdb.base/default.exp: info copying
+PASS: gdb.base/default.exp: info display
+PASS: gdb.base/default.exp: info frame "f" abbreviation
+PASS: gdb.base/default.exp: info frame
+PASS: gdb.base/default.exp: info files
+PASS: gdb.base/default.exp: info float
+PASS: gdb.base/default.exp: info functions
+PASS: gdb.base/default.exp: info locals
+PASS: gdb.base/default.exp: info program
+PASS: gdb.base/default.exp: info registers
+PASS: gdb.base/default.exp: info stack "s" abbreviation
+PASS: gdb.base/default.exp: info stack
+PASS: gdb.base/default.exp: info set
+PASS: gdb.base/default.exp: info symbol
+PASS: gdb.base/default.exp: info source
+PASS: gdb.base/default.exp: info sources
+PASS: gdb.base/default.exp: info target
+PASS: gdb.base/default.exp: info terminal
+PASS: gdb.base/default.exp: info threads
+PASS: gdb.base/default.exp: info types
+PASS: gdb.base/default.exp: info variables
+PASS: gdb.base/default.exp: info vector
+PASS: gdb.base/default.exp: info warranty
+PASS: gdb.base/default.exp: info watchpoints
+PASS: gdb.base/default.exp: inspect
+PASS: gdb.base/default.exp: jump
+PASS: gdb.base/default.exp: kill
+PASS: gdb.base/default.exp: list "l" abbreviation
+PASS: gdb.base/default.exp: list
+PASS: gdb.base/default.exp: load
+PASS: gdb.base/default.exp: next "n" abbreviation
+PASS: gdb.base/default.exp: next
+PASS: gdb.base/default.exp: nexti "ni" abbreviation
+PASS: gdb.base/default.exp: nexti
+PASS: gdb.base/default.exp: output
+PASS: gdb.base/default.exp: overlay
+PASS: gdb.base/default.exp: overlay on
+PASS: gdb.base/default.exp: overlay manual #1
+PASS: gdb.base/default.exp: overlay auto
+PASS: gdb.base/default.exp: overlay off
+PASS: gdb.base/default.exp: overlay list
+PASS: gdb.base/default.exp: overlay map #1
+PASS: gdb.base/default.exp: overlay unmap #1
+PASS: gdb.base/default.exp: overlay manual #2
+PASS: gdb.base/default.exp: overlay map #2
+PASS: gdb.base/default.exp: overlay unmap #2
+PASS: gdb.base/default.exp: print "p" abbreviation
+PASS: gdb.base/default.exp: print
+PASS: gdb.base/default.exp: printf
+PASS: gdb.base/default.exp: ptype
+PASS: gdb.base/default.exp: pwd
+PASS: gdb.base/default.exp: rbreak
+PASS: gdb.base/default.exp: restore
+PASS: gdb.base/default.exp: return
+PASS: gdb.base/default.exp: reverse-search
+PASS: gdb.base/default.exp: step "s" abbreviation #1
+PASS: gdb.base/default.exp: step #1
+PASS: gdb.base/default.exp: search
+PASS: gdb.base/default.exp: section
+PASS: gdb.base/default.exp: set annotate
+PASS: gdb.base/default.exp: set args
+PASS: gdb.base/default.exp: set check "c" abbreviation
+PASS: gdb.base/default.exp: set check "ch" abbreviation
+PASS: gdb.base/default.exp: set check "check" abbreviation
+PASS: gdb.base/default.exp: set check range
+PASS: gdb.base/default.exp: set check type
+PASS: gdb.base/default.exp: set complaints
+PASS: gdb.base/default.exp: set confirm
+PASS: gdb.base/default.exp: set environment
+PASS: gdb.base/default.exp: set height
+PASS: gdb.base/default.exp: set history expansion
+PASS: gdb.base/default.exp: set history filename
+PASS: gdb.base/default.exp: set history save
+PASS: gdb.base/default.exp: set history size
+PASS: gdb.base/default.exp: set history
+PASS: gdb.base/default.exp: set language
+PASS: gdb.base/default.exp: set listsize
+PASS: gdb.base/default.exp: set print "p" abbreviation
+PASS: gdb.base/default.exp: set print "pr" abbreviation
+PASS: gdb.base/default.exp: set print
+PASS: gdb.base/default.exp: set print address
+PASS: gdb.base/default.exp: set print array
+PASS: gdb.base/default.exp: set print asm-demangle
+PASS: gdb.base/default.exp: set print demangle
+PASS: gdb.base/default.exp: set print elements
+PASS: gdb.base/default.exp: set print object
+PASS: gdb.base/default.exp: set print pretty
+PASS: gdb.base/default.exp: set print sevenbit-strings
+PASS: gdb.base/default.exp: set print union
+PASS: gdb.base/default.exp: set print vtbl
+PASS: gdb.base/default.exp: set radix
+PASS: gdb.base/default.exp: set variable
+PASS: gdb.base/default.exp: set verbose
+PASS: gdb.base/default.exp: set width
+PASS: gdb.base/default.exp: set write
+PASS: gdb.base/default.exp: set
+PASS: gdb.base/default.exp: shell echo Hi dad!
+PASS: gdb.base/default.exp: show annotate
+PASS: gdb.base/default.exp: show args
+PASS: gdb.base/default.exp: show check "c" abbreviation
+PASS: gdb.base/default.exp: show check "ch" abbreviation
+PASS: gdb.base/default.exp: show check "check" abbreviation
+PASS: gdb.base/default.exp: show check range
+PASS: gdb.base/default.exp: show check type
+PASS: gdb.base/default.exp: show commands
+PASS: gdb.base/default.exp: show complaints
+PASS: gdb.base/default.exp: show confirm
+PASS: gdb.base/default.exp: show convenience
+PASS: gdb.base/default.exp: show directories
+PASS: gdb.base/default.exp: show editing
+PASS: gdb.base/default.exp: show height
+PASS: gdb.base/default.exp: show history expansion
+PASS: gdb.base/default.exp: show history filename
+PASS: gdb.base/default.exp: show history save
+PASS: gdb.base/default.exp: show history size
+PASS: gdb.base/default.exp: show history
+PASS: gdb.base/default.exp: show language
+PASS: gdb.base/default.exp: show listsize
+PASS: gdb.base/default.exp: show p
+PASS: gdb.base/default.exp: show pr
+PASS: gdb.base/default.exp: show print
+PASS: gdb.base/default.exp: show paths
+PASS: gdb.base/default.exp: show print address
+PASS: gdb.base/default.exp: show print array
+PASS: gdb.base/default.exp: show print asm-demangle
+PASS: gdb.base/default.exp: show print demangle
+PASS: gdb.base/default.exp: show print elements
+PASS: gdb.base/default.exp: show print object
+PASS: gdb.base/default.exp: show print pretty
+PASS: gdb.base/default.exp: show print sevenbit-strings
+PASS: gdb.base/default.exp: show print union
+PASS: gdb.base/default.exp: show print vtbl
+PASS: gdb.base/default.exp: show prompt
+PASS: gdb.base/default.exp: show radix
+PASS: gdb.base/default.exp: show user
+PASS: gdb.base/default.exp: show values
+PASS: gdb.base/default.exp: show verbose
+PASS: gdb.base/default.exp: show version
+PASS: gdb.base/default.exp: show width
+PASS: gdb.base/default.exp: show write
+PASS: gdb.base/default.exp: show
+PASS: gdb.base/default.exp: stepi "si" abbreviation
+PASS: gdb.base/default.exp: stepi
+PASS: gdb.base/default.exp: signal
+PASS: gdb.base/default.exp: source
+PASS: gdb.base/default.exp: step "s" abbreviation #2
+PASS: gdb.base/default.exp: step #2
+PASS: gdb.base/default.exp: symbol-file
+PASS: gdb.base/default.exp: target child
+PASS: gdb.base/default.exp: target procfs
+PASS: gdb.base/default.exp: target core
+PASS: gdb.base/default.exp: target exec
+PASS: gdb.base/default.exp: target remote
+PASS: gdb.base/default.exp: target
+PASS: gdb.base/default.exp: tbreak
+PASS: gdb.base/default.exp: thread
+PASS: gdb.base/default.exp: thread apply
+PASS: gdb.base/default.exp: thread find
+PASS: gdb.base/default.exp: thread name
+PASS: gdb.base/default.exp: tty
+PASS: gdb.base/default.exp: until "u" abbreviation
+PASS: gdb.base/default.exp: until
+PASS: gdb.base/default.exp: undisplay prompt
+PASS: gdb.base/default.exp: unset environment prompt
+PASS: gdb.base/default.exp: unset
+PASS: gdb.base/default.exp: up-silently
+PASS: gdb.base/default.exp: watch
+PASS: gdb.base/default.exp: whatis
+PASS: gdb.base/default.exp: where
+PASS: gdb.base/default.exp: x
+Running ./gdb.base/define.exp ...
+PASS: gdb.base/define.exp: define user command: nextwhere
+FAIL: gdb.base/define.exp: use user command: nextwhere
+PASS: gdb.base/define.exp: define user command: nextwh
+PASS: gdb.base/define.exp: redefine user command aborted: nextwhere
+PASS: gdb.base/define.exp: redefine user command: nextwhere
+PASS: gdb.base/define.exp: redocumenting builtin command disallowed
+PASS: gdb.base/define.exp: document user command: nextwhere
+PASS: gdb.base/define.exp: re-document user command: nextwhere
+PASS: gdb.base/define.exp: help user command: nextwhere
+PASS: gdb.base/define.exp: set up whitespace in help string
+PASS: gdb.base/define.exp: preserve whitespace in help string
+PASS: gdb.base/define.exp: define user command: ifnospace
+PASS: gdb.base/define.exp: test ifnospace is parsed correctly
+PASS: gdb.base/define.exp: define user command: whilenospace
+PASS: gdb.base/define.exp: test whilenospace is parsed correctly
+PASS: gdb.base/define.exp: define user command: user-bt
+PASS: gdb.base/define.exp: define hook-stop command
+FAIL: gdb.base/define.exp: use hook-stop command
+PASS: gdb.base/define.exp: define hook undefined command aborted: bar
+PASS: gdb.base/define.exp: define hook undefined command: bar
+PASS: gdb.base/define.exp: define target testsuite
+PASS: gdb.base/define.exp: document target testsuite
+PASS: gdb.base/define.exp: help target
+PASS: gdb.base/define.exp: target testsuite
+PASS: gdb.base/define.exp: show user target testsuite
+PASS: gdb.base/define.exp: define target hook-testsuite
+PASS: gdb.base/define.exp: define target hookpost-testsuite
+PASS: gdb.base/define.exp: target testsuite with hooks
+PASS: gdb.base/define.exp: set gdb_prompt
+PASS: gdb.base/define.exp: reset gdb_prompt
+Running ./gdb.base/del.exp ...
+PASS: gdb.base/del.exp: Remove all breakpoints (del)
+PASS: gdb.base/del.exp: info break after removing break on main
+PASS: gdb.base/del.exp: breakpoint insertion (del)
+PASS: gdb.base/del.exp: Remove last breakpoint (del)
+PASS: gdb.base/del.exp: info break after removing break on main (del)
+PASS: gdb.base/del.exp: Remove all breakpoints (d)
+PASS: gdb.base/del.exp: info break after removing break on main
+PASS: gdb.base/del.exp: breakpoint insertion (d)
+PASS: gdb.base/del.exp: Remove last breakpoint (d)
+PASS: gdb.base/del.exp: info break after removing break on main (d)
+Running ./gdb.base/detach.exp ...
+Running ./gdb.base/dfp-exprs.exp ...
+PASS: gdb.base/dfp-exprs.exp: p 1.2df
+PASS: gdb.base/dfp-exprs.exp: p -1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.234567df
+PASS: gdb.base/dfp-exprs.exp: p -1.234567df
+PASS: gdb.base/dfp-exprs.exp: p 1234567.df
+PASS: gdb.base/dfp-exprs.exp: p -1234567.df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E1df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E10df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E-10df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E96df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p -1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.234567890123456dd
+PASS: gdb.base/dfp-exprs.exp: p -1.234567890123456dd
+PASS: gdb.base/dfp-exprs.exp: p 1234567890123456.dd
+PASS: gdb.base/dfp-exprs.exp: p -1234567890123456.dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E1dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E10dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E-10dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E384dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p -1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.234567890123456789012345678901234dl
+PASS: gdb.base/dfp-exprs.exp: p -1.234567890123456789012345678901234dl
+PASS: gdb.base/dfp-exprs.exp: p 1234567890123456789012345678901234.dl
+PASS: gdb.base/dfp-exprs.exp: p -1234567890123456789012345678901234.dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E1dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E10dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E-10dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E6144dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4df + 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4df - 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4df * 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4df / 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd + 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd - 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd * 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd / 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl + 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl - 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl * 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl / 1.2dl
+PASS: gdb.base/dfp-exprs.exp: ptype 2.df + 2.df
+PASS: gdb.base/dfp-exprs.exp: ptype 2.dd + 2.dd
+PASS: gdb.base/dfp-exprs.exp: ptype 2.dl + 2.dl
+PASS: gdb.base/dfp-exprs.exp: p 2.1df + 2.7dd
+PASS: gdb.base/dfp-exprs.exp: p 2.1dd + 2.7df
+PASS: gdb.base/dfp-exprs.exp: p 2.6df + 2.7dl
+PASS: gdb.base/dfp-exprs.exp: p 2.6dl + 2.7df
+PASS: gdb.base/dfp-exprs.exp: p 2.3dd + 2.2dl
+PASS: gdb.base/dfp-exprs.exp: p 2.3dl + 2.2dd
+PASS: gdb.base/dfp-exprs.exp: ptype 2.df + 2.dd
+PASS: gdb.base/dfp-exprs.exp: ptype 2.df + 2.dl
+PASS: gdb.base/dfp-exprs.exp: ptype 2.dd + 2.dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df + 1
+PASS: gdb.base/dfp-exprs.exp: p 2 + 1.7dd
+PASS: gdb.base/dfp-exprs.exp: p 3 + 2.1dl
+PASS: gdb.base/dfp-exprs.exp: ptype 1.2df + 1
+PASS: gdb.base/dfp-exprs.exp: ptype 2 + 1.7dd
+PASS: gdb.base/dfp-exprs.exp: ptype 3 + 2.1dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df + 2ll
+PASS: gdb.base/dfp-exprs.exp: p 1.2df + 1.2f
+PASS: gdb.base/dfp-exprs.exp: p !0.df
+PASS: gdb.base/dfp-exprs.exp: p !0.dd
+PASS: gdb.base/dfp-exprs.exp: p !0.dl
+PASS: gdb.base/dfp-exprs.exp: p !0.5df
+PASS: gdb.base/dfp-exprs.exp: p !0.5dd
+PASS: gdb.base/dfp-exprs.exp: p !0.5dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p +1.2df
+PASS: gdb.base/dfp-exprs.exp: p +1.2dd
+PASS: gdb.base/dfp-exprs.exp: p +1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df < 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df < 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd < 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd < 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df > 1
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl > 2
+PASS: gdb.base/dfp-exprs.exp: p 2 > 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 2 > 3.1dl
+PASS: gdb.base/dfp-exprs.exp: p (float) -0.1df
+PASS: gdb.base/dfp-exprs.exp: p (int) 8.3dd
+PASS: gdb.base/dfp-exprs.exp: p (_Decimal64) 3.1
+PASS: gdb.base/dfp-exprs.exp: p (_Decimal128) 3.7df
+PASS: gdb.base/dfp-exprs.exp: p (_Decimal32) 4
+Running ./gdb.base/dfp-test.exp ...
+Running ./gdb.base/disabled-location.exp ...
+PASS: gdb.base/disabled-location.exp: setting breakpoint on function
+PASS: gdb.base/disabled-location.exp: disable location
+PASS: gdb.base/disabled-location.exp: step doesn't trip on disabled location
+Running ./gdb.base/disasm-end-cu.exp ...
+PASS: gdb.base/disasm-end-cu.exp: get hexadecimal valueof "&main"
+PASS: gdb.base/disasm-end-cu.exp: get hexadecimal valueof "&dummy_3"
+PASS: gdb.base/disasm-end-cu.exp: disassemble command returned some output
+Running ./gdb.base/display.exp ...
+PASS: gdb.base/display.exp: break  do_loops
+PASS: gdb.base/display.exp: get to do_loops
+PASS: gdb.base/display.exp: set watch
+PASS: gdb.base/display.exp: break loop end
+PASS: gdb.base/display.exp: inf disp
+PASS: gdb.base/display.exp: display i
+PASS: gdb.base/display.exp: display j
+PASS: gdb.base/display.exp: display &k
+PASS: gdb.base/display.exp: display/f f
+PASS: gdb.base/display.exp: display/s &sum
+PASS: gdb.base/display.exp: first disp
+PASS: gdb.base/display.exp: second disp
+PASS: gdb.base/display.exp: catch err
+PASS: gdb.base/display.exp: disab disp 1
+PASS: gdb.base/display.exp: disab disp 2
+PASS: gdb.base/display.exp: re-enab
+PASS: gdb.base/display.exp: re-enab of enab
+PASS: gdb.base/display.exp: undisp
+PASS: gdb.base/display.exp: info disp
+PASS: gdb.base/display.exp: next hit
+PASS: gdb.base/display.exp: undisp all
+PASS: gdb.base/display.exp: disp *p_i
+PASS: gdb.base/display.exp: p p_i = 0x0
+PASS: gdb.base/display.exp: display bad address
+PASS: gdb.base/display.exp: p p_i = &i
+PASS: gdb.base/display.exp: display good address
+PASS: gdb.base/display.exp: undisp all again
+PASS: gdb.base/display.exp: disab 3
+PASS: gdb.base/display.exp: watch off
+PASS: gdb.base/display.exp: finish
+PASS: gdb.base/display.exp: step
+PASS: gdb.base/display.exp: tbreak in do_vars
+PASS: gdb.base/display.exp: cont
+PASS: gdb.base/display.exp: printf
+PASS: gdb.base/display.exp: printf %d
+PASS: gdb.base/display.exp: printf "%d
+PASS: gdb.base/display.exp: printf "%d%d",i
+PASS: gdb.base/display.exp: printf "\\!\a\f\r\t\v\b\n"
+PASS: gdb.base/display.exp: re-set term
+PASS: gdb.base/display.exp: printf "\w"
+PASS: gdb.base/display.exp: printf "%d" j
+PASS: gdb.base/display.exp: printf "%p\n", 0
+PASS: gdb.base/display.exp: printf "%p\n", 1
+PASS: gdb.base/display.exp: print/z j
+PASS: gdb.base/display.exp: debug test output 1
+PASS: gdb.base/display.exp: debug test output 1a
+PASS: gdb.base/display.exp: debug test output 2
+PASS: gdb.base/display.exp: debug test output 2a
+PASS: gdb.base/display.exp: debug test output 3
+PASS: gdb.base/display.exp: x/0 j
+PASS: gdb.base/display.exp: print/0 j
+PASS: gdb.base/display.exp: ignored s
+PASS: gdb.base/display.exp: no i
+PASS: gdb.base/display.exp: print/a &sum
+PASS: gdb.base/display.exp: print/a main+4
+PASS: gdb.base/display.exp: print/a $pc
+PASS: gdb.base/display.exp: print/a &&j
+Running ./gdb.base/disp-step-syscall.exp ...
+Running ./gdb.base/dmsym.exp ...
+PASS: gdb.base/dmsym.exp: set lang ada
+PASS: gdb.base/dmsym.exp: break pck__foo__bar__minsym
+PASS: gdb.base/dmsym.exp: info line pck__foo__bar__minsym
+PASS: gdb.base/dmsym.exp: set lang auto
+PASS: gdb.base/dmsym.exp: Run until breakpoint at BREAK
+PASS: gdb.base/dmsym.exp: continue
+PASS: gdb.base/dmsym.exp: print val
+Running ./gdb.base/dprintf.exp ...
+PASS: gdb.base/dprintf.exp: dprintf
+PASS: gdb.base/dprintf.exp: dprintf foo
+PASS: gdb.base/dprintf.exp: dprintf 29
+PASS: gdb.base/dprintf.exp: dprintf foo,"At foo entry\n"
+PASS: gdb.base/dprintf.exp: ignore $bpnum 1
+PASS: gdb.base/dprintf.exp: dprintf 26,"arg=%d, g=%d\n", arg, g
+PASS: gdb.base/dprintf.exp: dprintf info 1
+PASS: gdb.base/dprintf.exp: break 27
+PASS: gdb.base/dprintf.exp: 1st dprintf, gdb
+PASS: gdb.base/dprintf.exp: 2nd dprintf, gdb
+PASS: gdb.base/dprintf.exp: Set dprintf style to agent - can do
+FAIL: gdb.base/dprintf.exp: 1st dprintf, agent
+FAIL: gdb.base/dprintf.exp: 2nd dprintf, agent
+FAIL: gdb.base/dprintf.exp: dprintf info 2 (pattern 6)
+PASS: gdb.base/dprintf.exp: Set dprintf style to an unrecognized type
+Running ./gdb.base/dprintf-next.exp ...
+PASS: gdb.base/dprintf-next.exp: dprintf 24, "%d\n", x
+PASS: gdb.base/dprintf-next.exp: next 1
+PASS: gdb.base/dprintf-next.exp: next 2
+Running ./gdb.base/dprintf-non-stop.exp ...
+UNSUPPORTED: gdb.base/dprintf-non-stop.exp: Testing dprintf with remote/non-stop is not supported.
+Running ./gdb.base/dprintf-pending.exp ...
+PASS: gdb.base/dprintf-pending.exp: without format: set pending dprintf
+FAIL: gdb.base/dprintf-pending.exp: without format: resolved dprintf fails to be re-set
+PASS: gdb.base/dprintf-pending.exp: without symbols: set pending dprintf
+PASS: gdb.base/dprintf-pending.exp: without symbols: single pending dprintf info
+FAIL: gdb.base/dprintf-pending.exp: without symbols: run to resolved dprintf (the program exited)
+PASS: gdb.base/dprintf-pending.exp: set pending dprintf
+PASS: gdb.base/dprintf-pending.exp: single pending dprintf info
+FAIL: gdb.base/dprintf-pending.exp: run to resolved dprintf (the program exited)
+Running ./gdb.base/dump.exp ...
+PASS: gdb.base/dump.exp: inaccessible memory is reported
+PASS: gdb.base/dump.exp: endianness: little
+PASS: gdb.base/dump.exp: dump array as value, default
+PASS: gdb.base/dump.exp: dump struct as value, default
+PASS: gdb.base/dump.exp: dump array as value, binary
+PASS: gdb.base/dump.exp: dump struct as value, binary
+PASS: gdb.base/dump.exp: dump array as value, srec
+PASS: gdb.base/dump.exp: dump struct as value, srec
+PASS: gdb.base/dump.exp: dump array as value, intel hex
+PASS: gdb.base/dump.exp: dump struct as value, intel hex
+PASS: gdb.base/dump.exp: dump array as value, tekhex
+PASS: gdb.base/dump.exp: dump struct as value, tekhex
+PASS: gdb.base/dump.exp: capture /x &intarray[0]
+PASS: gdb.base/dump.exp: capture /x &intarray[32]
+PASS: gdb.base/dump.exp: capture /x &intstruct
+PASS: gdb.base/dump.exp: capture /x &intstruct + 1
+PASS: gdb.base/dump.exp: capture intarray
+PASS: gdb.base/dump.exp: capture intstruct
+PASS: gdb.base/dump.exp: capture type of pointer &intarray
+PASS: gdb.base/dump.exp: capture type of pointer &intstruct
+PASS: gdb.base/dump.exp: dump array as memory, default
+PASS: gdb.base/dump.exp: dump struct as memory, default
+PASS: gdb.base/dump.exp: dump array as memory, binary
+PASS: gdb.base/dump.exp: dump struct as memory, binary
+PASS: gdb.base/dump.exp: dump array as memory, srec
+PASS: gdb.base/dump.exp: dump struct as memory, srec
+PASS: gdb.base/dump.exp: dump array as memory, ihex
+PASS: gdb.base/dump.exp: dump struct as memory, ihex
+PASS: gdb.base/dump.exp: dump array as memory, tekhex
+PASS: gdb.base/dump.exp: dump struct as memory, tekhex
+PASS: gdb.base/dump.exp: dump array as mem, srec, expressions
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, srec; file restored ok
+PASS: gdb.base/dump.exp: array as value, srec; capture intarray
+PASS: gdb.base/dump.exp: array as value, srec; value restored ok
+PASS: gdb.base/dump.exp: struct as value, srec; file restored ok
+PASS: gdb.base/dump.exp: struct as value, srec; capture intstruct
+PASS: gdb.base/dump.exp: struct as value, srec; value restored ok
+PASS: gdb.base/dump.exp: zero all
+PASS: gdb.base/dump.exp: array as memory, srec; file restored ok
+PASS: gdb.base/dump.exp: array as memory, srec; capture intarray
+PASS: gdb.base/dump.exp: array as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, srec; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, srec; capture intstruct
+PASS: gdb.base/dump.exp: struct as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, ihex; file restored ok
+PASS: gdb.base/dump.exp: array as value, ihex; capture intarray
+PASS: gdb.base/dump.exp: array as value, ihex; value restored ok
+PASS: gdb.base/dump.exp: struct as value, ihex; file restored ok
+PASS: gdb.base/dump.exp: struct as value, ihex; capture intstruct
+PASS: gdb.base/dump.exp: struct as value, ihex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as memory, ihex; file restored ok
+PASS: gdb.base/dump.exp: array as memory, ihex; capture intarray
+PASS: gdb.base/dump.exp: array as memory, ihex; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, ihex; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, ihex; capture intstruct
+PASS: gdb.base/dump.exp: struct as memory, ihex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array as value, tekhex; capture intarray
+PASS: gdb.base/dump.exp: array as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: struct as value, tekhex; file restored ok
+PASS: gdb.base/dump.exp: struct as value, tekhex; capture intstruct
+PASS: gdb.base/dump.exp: struct as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as memory, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array as memory, tekhex; capture intarray
+PASS: gdb.base/dump.exp: array as memory, tekhex; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, tekhex; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, tekhex; capture intstruct
+PASS: gdb.base/dump.exp: struct as memory, tekhex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, binary; file restored ok
+PASS: gdb.base/dump.exp: array as value, binary; capture intarray
+PASS: gdb.base/dump.exp: array as value, binary; value restored ok
+PASS: gdb.base/dump.exp: struct as value, binary; file restored ok
+PASS: gdb.base/dump.exp: struct as value, binary; capture intstruct
+PASS: gdb.base/dump.exp: struct as value, binary; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as memory, binary; file restored ok
+PASS: gdb.base/dump.exp: array as memory, binary; capture intarray
+PASS: gdb.base/dump.exp: array as memory, binary; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, binary; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, binary; capture intstruct
+PASS: gdb.base/dump.exp: struct as memory, binary; value restored ok
+PASS: gdb.base/dump.exp: capture /x &intarray2[0]
+PASS: gdb.base/dump.exp: capture /x &intstruct2
+PASS: gdb.base/dump.exp: capture (char *) &intarray2 - (char *) &intarray
+PASS: gdb.base/dump.exp: capture (char *) &intstruct2 - (char *) &intstruct
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, srec; file restored ok
+PASS: gdb.base/dump.exp: array copy, srec; capture intarray2
+PASS: gdb.base/dump.exp: array copy, srec; value restored ok
+PASS: gdb.base/dump.exp: struct copy, srec; file restored ok
+PASS: gdb.base/dump.exp: struct copy, srec; capture intstruct2
+PASS: gdb.base/dump.exp: struct copy, srec; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, ihex; file restored ok
+PASS: gdb.base/dump.exp: array copy, ihex; capture intarray2
+PASS: gdb.base/dump.exp: array copy, ihex; value restored ok
+PASS: gdb.base/dump.exp: struct copy, ihex; file restored ok
+PASS: gdb.base/dump.exp: struct copy, ihex; capture intstruct2
+PASS: gdb.base/dump.exp: struct copy, ihex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array copy, tekhex; capture intarray2
+PASS: gdb.base/dump.exp: array copy, tekhex; value restored ok
+PASS: gdb.base/dump.exp: struct copy, tekhex; file restored ok
+PASS: gdb.base/dump.exp: struct copy, tekhex; capture intstruct2
+PASS: gdb.base/dump.exp: struct copy, tekhex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, binary; file restored ok
+PASS: gdb.base/dump.exp: array copy, binary; capture intarray2
+PASS: gdb.base/dump.exp: array copy, binary; value restored ok
+PASS: gdb.base/dump.exp: struct copy, binary; file restored ok
+PASS: gdb.base/dump.exp: struct copy, binary; capture intstruct2
+PASS: gdb.base/dump.exp: struct copy, binary; value restored ok
+PASS: gdb.base/dump.exp: capture /x &intarray[3]
+PASS: gdb.base/dump.exp: capture /x &intarray[4]
+PASS: gdb.base/dump.exp: capture /x (char *) &intarray[3] - (char *) &intarray[0]
+PASS: gdb.base/dump.exp: capture /x (char *) &intarray[4] - (char *) &intarray[0]
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array partial, srec; file restored ok
+PASS: gdb.base/dump.exp: array partial, srec; capture intarray[3]
+PASS: gdb.base/dump.exp: array partial, srec; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 1
+PASS: gdb.base/dump.exp: element 4 not changed - 1
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array partial, ihex; file restored ok
+PASS: gdb.base/dump.exp: array partial, ihex; capture intarray[3]
+PASS: gdb.base/dump.exp: array partial, ihex; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 2
+PASS: gdb.base/dump.exp: element 4 not changed - 2
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array partial, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array partial, tekhex; capture intarray[3]
+PASS: gdb.base/dump.exp: array partial, tekhex; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 3
+PASS: gdb.base/dump.exp: element 4 not changed - 3
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array partial, binary; file restored ok
+PASS: gdb.base/dump.exp: array partial, binary; capture intarray[3]
+PASS: gdb.base/dump.exp: array partial, binary; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 4
+PASS: gdb.base/dump.exp: element 4 not changed - 4
+PASS: gdb.base/dump.exp: array partial with expressions; file restored ok
+PASS: gdb.base/dump.exp: array partial with expressions; capture intarray2[3]
+PASS: gdb.base/dump.exp: array partial with expressions; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed, == 4
+PASS: gdb.base/dump.exp: element 4 not changed, == 4
+PASS: gdb.base/dump.exp: setting little endianness
+PASS: gdb.base/dump.exp: file binfile; capture intarray
+PASS: gdb.base/dump.exp: start with intarray un-initialized
+PASS: gdb.base/dump.exp: file binfile; capture intstruct
+PASS: gdb.base/dump.exp: start with intstruct un-initialized
+PASS: gdb.base/dump.exp: reload array as value, srec; capture * (int (*)[32]) 0x54ab30c4
+PASS: gdb.base/dump.exp: reload array as value, srec; value restored ok
+PASS: gdb.base/dump.exp: reload struct as value, srec; capture * (struct teststruct *) 0x54ab300c
+PASS: gdb.base/dump.exp: reload struct as value, srec; value restored ok
+PASS: gdb.base/dump.exp: reload array as memory, srec; capture * (int (*)[32]) 0x54ab30c4
+PASS: gdb.base/dump.exp: reload array as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: reload struct as memory, srec; capture * (struct teststruct *) 0x54ab300c
+PASS: gdb.base/dump.exp: reload struct as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: reload array as value, intel hex; capture * (int (*)[32]) 0x54ab30c4
+PASS: gdb.base/dump.exp: reload array as value, intel hex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as value, intel hex; capture * (struct teststruct *) 0x54ab300c
+PASS: gdb.base/dump.exp: reload struct as value, intel hex; value restored ok
+PASS: gdb.base/dump.exp: reload array as memory, intel hex; capture * (int (*)[32]) 0x54ab30c4
+PASS: gdb.base/dump.exp: reload array as memory, intel hex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as memory, intel hex; capture * (struct teststruct *) 0x54ab300c
+PASS: gdb.base/dump.exp: reload struct as memory, intel hex; value restored ok
+PASS: gdb.base/dump.exp: reload array as value, tekhex; capture * (int (*)[32]) 0x54ab30c4
+PASS: gdb.base/dump.exp: reload array as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as value, tekhex; capture * (struct teststruct *) 0x54ab300c
+PASS: gdb.base/dump.exp: reload struct as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: reload array as memory, tekhex; capture * (int (*)[32]) 0x54ab30c4
+PASS: gdb.base/dump.exp: reload array as memory, tekhex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as memory, tekhex; capture * (struct teststruct *) 0x54ab300c
+PASS: gdb.base/dump.exp: reload struct as memory, tekhex; value restored ok
+Running ./gdb.base/duplicate-bp.exp ...
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: delete $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: delete #1, stop at #2
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: delete $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: delete #2, stop at #1
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: disable $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: step
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: delete $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: disable #1, delete #2, stop at #3
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: disable $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: step
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: delete $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: disable #2, delete #1, stop at #3
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: disable $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: step
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: delete $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: disable #1, delete #3, stop at #2
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: disable $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: step
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: delete $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: disable #3, delete #1, stop at #2
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: disable $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: step
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: delete $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: disable #2, delete #3, stop at #1
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: disable $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: step
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: delete $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: disable #3, delete #2, stop at #1
+Running ./gdb.base/dup-sect.exp ...
+PASS: gdb.base/dup-sect.exp: rename section
+PASS: gdb.base/dup-sect.exp: split
+PASS: gdb.base/dup-sect.exp: strip
+PASS: gdb.base/dup-sect.exp: var1 after strip
+PASS: gdb.base/dup-sect.exp: var2 after strip
+Running ./gdb.base/echo.exp ...
+PASS: gdb.base/echo.exp: Echo test
+Running ./gdb.base/empty_exe.exp ...
+PASS: gdb.base/empty_exe.exp: file ''
+PASS: gdb.base/empty_exe.exp: print 1
+Running ./gdb.base/ena-dis-br.exp ...
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: enable break marker1
+PASS: gdb.base/ena-dis-br.exp: info break marker1
+PASS: gdb.base/ena-dis-br.exp: continue to break marker1
+PASS: gdb.base/ena-dis-br.exp: delete break marker1
+PASS: gdb.base/ena-dis-br.exp: break marker2
+PASS: gdb.base/ena-dis-br.exp: enable once break marker2
+PASS: gdb.base/ena-dis-br.exp: info auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: continue to auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: info auto-disabled break marker2
+FAIL: gdb.base/ena-dis-br.exp: setting breakpoint at exit
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+FAIL: gdb.base/ena-dis-br.exp: setting breakpoint at exit
+PASS: gdb.base/ena-dis-br.exp: break marker3
+PASS: gdb.base/ena-dis-br.exp: enable del break marker3
+PASS: gdb.base/ena-dis-br.exp: info auto-deleted break marker2
+PASS: gdb.base/ena-dis-br.exp: continue to auto-deleted break marker3
+PASS: gdb.base/ena-dis-br.exp: info auto-deleted break marker3
+PASS: gdb.base/ena-dis-br.exp: break marker4
+PASS: gdb.base/ena-dis-br.exp: disable break marker4
+PASS: gdb.base/ena-dis-br.exp: info break marker4
+PASS: gdb.base/ena-dis-br.exp: break 113
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: disable break with count
+PASS: gdb.base/ena-dis-br.exp: continue from enable count, first time
+PASS: gdb.base/ena-dis-br.exp: continue from enable count, second time
+PASS: gdb.base/ena-dis-br.exp: continue through enable count, now disabled
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: ignore non-existent break
+PASS: gdb.base/ena-dis-br.exp: ignore break with missing ignore count
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1 -1
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1 0
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1
+PASS: gdb.base/ena-dis-br.exp: info ignored break marker1
+FAIL: gdb.base/ena-dis-br.exp: setting breakpoint at exit
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+FAIL: gdb.base/ena-dis-br.exp: continue to break marker1, 2nd time (the program exited)
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1
+PASS: gdb.base/ena-dis-br.exp: enable del break marker1
+PASS: gdb.base/ena-dis-br.exp: info break marker1
+FAIL: gdb.base/ena-dis-br.exp: setting breakpoint at exit
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+FAIL: gdb.base/ena-dis-br.exp: continue to ignored & auto-deleted break marker1 (the program exited)
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1
+PASS: gdb.base/ena-dis-br.exp: disable break marker1
+FAIL: gdb.base/ena-dis-br.exp: setting breakpoint at exit
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+PASS: gdb.base/ena-dis-br.exp: info ignored & disabled break marker1
+PASS: gdb.base/ena-dis-br.exp: prepare to continue with ignore count
+PASS: gdb.base/ena-dis-br.exp: continue with ignore count
+PASS: gdb.base/ena-dis-br.exp: step
+PASS: gdb.base/ena-dis-br.exp: continue with ignore count, not stopped at bpt
+Running ./gdb.base/ending-run.exp ...
+PASS: gdb.base/ending-run.exp: bpt at line before routine
+PASS: gdb.base/ending-run.exp: b ending-run.c:14, one
+PASS: gdb.base/ending-run.exp: b ending-run.c:31
+PASS: gdb.base/ending-run.exp: run
+PASS: gdb.base/ending-run.exp: clear worked
+PASS: gdb.base/ending-run.exp: cleared bp at line before routine
+PASS: gdb.base/ending-run.exp: b ending-run.c:1
+PASS: gdb.base/ending-run.exp: b ending-run.c:14, two
+PASS: gdb.base/ending-run.exp: Cleared 2 by line
+PASS: gdb.base/ending-run.exp: b ending-run.c:14
+PASS: gdb.base/ending-run.exp: Breakpoint 7 at *ending-run.c:14
+PASS: gdb.base/ending-run.exp: Clear 2 by default
+PASS: gdb.base/ending-run.exp: all set to continue
+PASS: gdb.base/ending-run.exp: cont
+FAIL: gdb.base/ending-run.exp: step out of main
+Running ./gdb.base/enum_cond.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.22/ld.bfd.real: warning: /tmp/ccoeaZYK.o uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail
+UNTESTED: gdb.base/enum_cond.exp: Could not compile enum_cond.c
+Running ./gdb.base/enumval.exp ...
+PASS: gdb.base/enumval.exp: print e
+PASS: gdb.base/enumval.exp: print f
+PASS: gdb.base/enumval.exp: print J
+PASS: gdb.base/enumval.exp: print K
+Running ./gdb.base/environ.exp ...
+Running ./gdb.base/eu-strip-infcall.exp ...
+PASS: gdb.base/eu-strip-infcall.exp: infcall
+Running ./gdb.base/eval.exp ...
+PASS: gdb.base/eval.exp: Initialize $a.
+PASS: gdb.base/eval.exp: First eval.
+PASS: gdb.base/eval.exp: Second eval.
+Running ./gdb.base/eval-skip.exp ...
+PASS: gdb.base/eval-skip.exp: set variable x=14
+PASS: gdb.base/eval-skip.exp: set variable y=2
+PASS: gdb.base/eval-skip.exp: set variable z=2
+PASS: gdb.base/eval-skip.exp: set variable w=3
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x+y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x-y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x*y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x/y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x%y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x&&y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x||y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x&y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x|y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x^y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x < y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x <= y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x>y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x>=y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x==y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x!=y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x<<31))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x>>31))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (!x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (~x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (-x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x++))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (++x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x--))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (--x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x+=7))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x=y))
+Running ./gdb.base/exe-lock.exp ...
+FAIL: gdb.base/exe-lock.exp: setting breakpoint at exit
+Running ./gdb.base/expand-psymtabs.exp ...
+PASS: gdb.base/expand-psymtabs.exp: Expand psymtabs
+Running ./gdb.base/exprs.exp ...
+PASS: gdb.base/exprs.exp: print char == (setup)
+PASS: gdb.base/exprs.exp: print char == (print v_char == 0)
+PASS: gdb.base/exprs.exp: print char == (print v_char == 127)
+PASS: gdb.base/exprs.exp: print char != (setup)
+PASS: gdb.base/exprs.exp: print char != (print v_char != 0)
+PASS: gdb.base/exprs.exp: print char != (print v_char != 127)
+PASS: gdb.base/exprs.exp: print char < (setup)
+PASS: gdb.base/exprs.exp: print char < (print v_char < 0)
+PASS: gdb.base/exprs.exp: print char < (print v_char < 127)
+PASS: gdb.base/exprs.exp: print char > (setup)
+PASS: gdb.base/exprs.exp: print char > (print v_char > 0)
+PASS: gdb.base/exprs.exp: print char > (print v_char > 127)
+PASS: gdb.base/exprs.exp: print signed char == (setup)
+PASS: gdb.base/exprs.exp: print signed char == (print v_signed_char == 0)
+PASS: gdb.base/exprs.exp: print signed char == (print v_signed_char == 127)
+PASS: gdb.base/exprs.exp: print signed char != (setup)
+PASS: gdb.base/exprs.exp: print signed char != (print v_signed_char != 0)
+PASS: gdb.base/exprs.exp: print signed char != (print v_signed_char != 127)
+PASS: gdb.base/exprs.exp: print signed char < (setup)
+PASS: gdb.base/exprs.exp: print signed char < (print v_signed_char < 0)
+PASS: gdb.base/exprs.exp: print signed char < (print v_signed_char < 127)
+PASS: gdb.base/exprs.exp: print signed char > (setup)
+PASS: gdb.base/exprs.exp: print signed char > (print v_signed_char > 0)
+PASS: gdb.base/exprs.exp: print signed char > (print v_signed_char > 127)
+PASS: gdb.base/exprs.exp: print signed char == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char == (minus) (print v_signed_char == 0)
+PASS: gdb.base/exprs.exp: print signed char == (minus) (print v_signed_char == -1)
+PASS: gdb.base/exprs.exp: print signed char != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char != (minus) (print v_signed_char != 0)
+PASS: gdb.base/exprs.exp: print signed char != (minus) (print v_signed_char != -1)
+PASS: gdb.base/exprs.exp: print signed char < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char < (minus) (print v_signed_char < 0)
+PASS: gdb.base/exprs.exp: print signed char < (minus) (print v_signed_char < 127)
+PASS: gdb.base/exprs.exp: print signed char > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char > (minus) (print v_signed_char > 0)
+PASS: gdb.base/exprs.exp: print signed char > (minus) (print v_signed_char > 127)
+PASS: gdb.base/exprs.exp: print unsigned char == (setup)
+PASS: gdb.base/exprs.exp: print unsigned char == (print v_unsigned_char == 0)
+PASS: gdb.base/exprs.exp: print unsigned char == (print v_unsigned_char == 127)
+PASS: gdb.base/exprs.exp: print unsigned char != (setup)
+PASS: gdb.base/exprs.exp: print unsigned char != (print v_unsigned_char != 0)
+PASS: gdb.base/exprs.exp: print unsigned char != (print v_unsigned_char != 127)
+PASS: gdb.base/exprs.exp: print unsigned char < (setup)
+PASS: gdb.base/exprs.exp: print unsigned char < (print v_unsigned_char < 0)
+PASS: gdb.base/exprs.exp: print unsigned char < (print v_unsigned_char < 127)
+PASS: gdb.base/exprs.exp: print unsigned char > (setup)
+PASS: gdb.base/exprs.exp: print unsigned char > (print v_unsigned_char > 0)
+PASS: gdb.base/exprs.exp: print unsigned char > (print v_unsigned_char > 127)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (print v_unsigned_char == 0)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (print v_unsigned_char == ~0)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (print v_unsigned_char == (unsigned char)~0)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (print v_unsigned_char != 0)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (print v_unsigned_char != (unsigned char)~0)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (print v_unsigned_char != ~0)
+PASS: gdb.base/exprs.exp: print unsigned char < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char < (~0) (print v_unsigned_char < 0)
+PASS: gdb.base/exprs.exp: print unsigned char < (~0) (print v_unsigned_char < 127)
+PASS: gdb.base/exprs.exp: print unsigned char > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char > (~0) (print v_unsigned_char > 0)
+PASS: gdb.base/exprs.exp: print unsigned char > (~0) (print v_unsigned_char > 127)
+PASS: gdb.base/exprs.exp: print signed short == (setup)
+PASS: gdb.base/exprs.exp: print signed short == (print v_short == 0)
+PASS: gdb.base/exprs.exp: print signed short == (print v_short == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short != (setup)
+PASS: gdb.base/exprs.exp: print signed short != (print v_short != 0)
+PASS: gdb.base/exprs.exp: print signed short != (print v_short != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short < (setup)
+PASS: gdb.base/exprs.exp: print signed short < (print v_short < 0)
+PASS: gdb.base/exprs.exp: print signed short < (print v_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short > (setup)
+PASS: gdb.base/exprs.exp: print signed short > (print v_short > 0)
+PASS: gdb.base/exprs.exp: print signed short > (print v_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short == (minus) (print v_short == 0)
+PASS: gdb.base/exprs.exp: print signed short == (minus) (print v_short == -1)
+PASS: gdb.base/exprs.exp: print signed short != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short != (minus) (print v_short != 0)
+PASS: gdb.base/exprs.exp: print signed short != (minus) (print v_short != -1)
+PASS: gdb.base/exprs.exp: print signed short < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short < (minus) (print v_short < 0)
+PASS: gdb.base/exprs.exp: print signed short < (minus) (print v_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short > (minus) (print v_short > 0)
+PASS: gdb.base/exprs.exp: print signed short > (minus) (print v_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short == (setup)
+PASS: gdb.base/exprs.exp: print signed signed short == (print v_signed_short == 0)
+PASS: gdb.base/exprs.exp: print signed signed short == (print v_signed_short == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short != (setup)
+PASS: gdb.base/exprs.exp: print signed signed short != (print v_signed_short != 0)
+PASS: gdb.base/exprs.exp: print signed signed short != (print v_signed_short != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short < (setup)
+PASS: gdb.base/exprs.exp: print signed signed short < (print v_signed_short < 0)
+PASS: gdb.base/exprs.exp: print signed signed short < (print v_signed_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short > (setup)
+PASS: gdb.base/exprs.exp: print signed signed short > (print v_signed_short > 0)
+PASS: gdb.base/exprs.exp: print signed signed short > (print v_signed_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short == (minus) (print v_signed_short == 0)
+PASS: gdb.base/exprs.exp: print signed signed short == (minus) (print v_signed_short == -1)
+PASS: gdb.base/exprs.exp: print signed signed short != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short != (minus) (print v_signed_short != 0)
+PASS: gdb.base/exprs.exp: print signed signed short != (minus) (print v_signed_short != -1)
+PASS: gdb.base/exprs.exp: print signed signed short < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short < (minus) (print v_signed_short < 0)
+PASS: gdb.base/exprs.exp: print signed signed short < (minus) (print v_signed_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short > (minus) (print v_signed_short > 0)
+PASS: gdb.base/exprs.exp: print signed signed short > (minus) (print v_signed_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short == (setup)
+PASS: gdb.base/exprs.exp: print unsigned short == (print v_unsigned_short == 0)
+PASS: gdb.base/exprs.exp: print unsigned short == (print v_unsigned_short == 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short != (setup)
+PASS: gdb.base/exprs.exp: print unsigned short != (print v_unsigned_short != 0)
+PASS: gdb.base/exprs.exp: print unsigned short != (print v_unsigned_short != 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short < (setup)
+PASS: gdb.base/exprs.exp: print unsigned short < (print v_unsigned_short < 0)
+PASS: gdb.base/exprs.exp: print unsigned short < (print v_unsigned_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short > (setup)
+PASS: gdb.base/exprs.exp: print unsigned short > (print v_unsigned_short > 0)
+PASS: gdb.base/exprs.exp: print unsigned short > (print v_unsigned_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (print v_unsigned_short == 0)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (print sizeof (v_unsigned_short) < sizeof (~0) && v_unsigned_short == ~0)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (print v_unsigned_short == (unsigned short)~0)
+PASS: gdb.base/exprs.exp: print unsigned short != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short != (~0) (print v_unsigned_short != 0)
+PASS: gdb.base/exprs.exp: print unsigned short != (~0) (print v_unsigned_short != (unsigned short)~0)
+PASS: gdb.base/exprs.exp: print unsigned short < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short < (~0) (print v_unsigned_short < 0)
+PASS: gdb.base/exprs.exp: print unsigned short < (~0) (print v_unsigned_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short > (~0) (print v_unsigned_short > 0)
+PASS: gdb.base/exprs.exp: print unsigned short > (~0) (print v_unsigned_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int == (setup)
+PASS: gdb.base/exprs.exp: print signed int == (print v_int == 0)
+PASS: gdb.base/exprs.exp: print signed int == (print v_int == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int != (setup)
+PASS: gdb.base/exprs.exp: print signed int != (print v_int != 0)
+PASS: gdb.base/exprs.exp: print signed int != (print v_int != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int < (setup)
+PASS: gdb.base/exprs.exp: print signed int < (print v_int < 0)
+PASS: gdb.base/exprs.exp: print signed int < (print v_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int > (setup)
+PASS: gdb.base/exprs.exp: print signed int > (print v_int > 0)
+PASS: gdb.base/exprs.exp: print signed int > (print v_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int == (minus) (print v_int == 0)
+PASS: gdb.base/exprs.exp: print signed int == (minus) (print v_int == -1)
+PASS: gdb.base/exprs.exp: print signed int != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int != (minus) (print v_int != 0)
+PASS: gdb.base/exprs.exp: print signed int != (minus) (print v_int != -1)
+PASS: gdb.base/exprs.exp: print signed int < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int < (minus) (print v_int < 0)
+PASS: gdb.base/exprs.exp: print signed int < (minus) (print v_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int > (minus) (print v_int > 0)
+PASS: gdb.base/exprs.exp: print signed int > (minus) (print v_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int == (setup)
+PASS: gdb.base/exprs.exp: print signed signed int == (print v_signed_int == 0)
+PASS: gdb.base/exprs.exp: print signed signed int == (print v_signed_int == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int != (setup)
+PASS: gdb.base/exprs.exp: print signed signed int != (print v_signed_int != 0)
+PASS: gdb.base/exprs.exp: print signed signed int != (print v_signed_int != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int < (setup)
+PASS: gdb.base/exprs.exp: print signed signed int < (print v_signed_int < 0)
+PASS: gdb.base/exprs.exp: print signed signed int < (print v_signed_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int > (setup)
+PASS: gdb.base/exprs.exp: print signed signed int > (print v_signed_int > 0)
+PASS: gdb.base/exprs.exp: print signed signed int > (print v_signed_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int == (minus) (print v_signed_int == 0)
+PASS: gdb.base/exprs.exp: print signed signed int == (minus) (print v_signed_int == -1)
+PASS: gdb.base/exprs.exp: print signed signed int != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int != (minus) (print v_signed_int != 0)
+PASS: gdb.base/exprs.exp: print signed signed int != (minus) (print v_signed_int != -1)
+PASS: gdb.base/exprs.exp: print signed signed int < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int < (minus) (print v_signed_int < 0)
+PASS: gdb.base/exprs.exp: print signed signed int < (minus) (print v_signed_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int > (minus) (print v_signed_int > 0)
+PASS: gdb.base/exprs.exp: print signed signed int > (minus) (print v_signed_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int == (setup)
+PASS: gdb.base/exprs.exp: print unsigned int == (print v_unsigned_int == 0)
+PASS: gdb.base/exprs.exp: print unsigned int == (print v_unsigned_int == 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int != (setup)
+PASS: gdb.base/exprs.exp: print unsigned int != (print v_unsigned_int != 0)
+PASS: gdb.base/exprs.exp: print unsigned int != (print v_unsigned_int != 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int < (setup)
+PASS: gdb.base/exprs.exp: print unsigned int < (print v_unsigned_int < 0)
+PASS: gdb.base/exprs.exp: print unsigned int < (print v_unsigned_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int > (setup)
+PASS: gdb.base/exprs.exp: print unsigned int > (print v_unsigned_int > 0)
+PASS: gdb.base/exprs.exp: print unsigned int > (print v_unsigned_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (print v_unsigned_int == 0)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (print v_unsigned_int == ~0)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (print v_unsigned_int == (unsigned int)~0)
+PASS: gdb.base/exprs.exp: print unsigned int != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int != (~0) (print v_unsigned_int != 0)
+PASS: gdb.base/exprs.exp: print unsigned int != (~0) (print v_unsigned_int != (unsigned int)~0)
+PASS: gdb.base/exprs.exp: print unsigned int < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int < (~0) (print v_unsigned_int < 0)
+PASS: gdb.base/exprs.exp: print unsigned int < (~0) (print v_unsigned_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int > (~0) (print v_unsigned_int > 0)
+PASS: gdb.base/exprs.exp: print unsigned int > (~0) (print v_unsigned_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long == (setup)
+PASS: gdb.base/exprs.exp: print signed long == (print v_long == 0)
+PASS: gdb.base/exprs.exp: print signed long == (print v_long == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long != (setup)
+PASS: gdb.base/exprs.exp: print signed long != (print v_long != 0)
+PASS: gdb.base/exprs.exp: print signed long != (print v_long != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long < (setup)
+PASS: gdb.base/exprs.exp: print signed long < (print v_long < 0)
+PASS: gdb.base/exprs.exp: print signed long < (print v_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long > (setup)
+PASS: gdb.base/exprs.exp: print signed long > (print v_long > 0)
+PASS: gdb.base/exprs.exp: print signed long > (print v_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long == (minus) (print v_long == 0)
+PASS: gdb.base/exprs.exp: print signed long == (minus) (print v_long == -1)
+PASS: gdb.base/exprs.exp: print signed long != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long != (minus) (print v_long != 0)
+PASS: gdb.base/exprs.exp: print signed long != (minus) (print v_long != -1)
+PASS: gdb.base/exprs.exp: print signed long < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long < (minus) (print v_long < 0)
+PASS: gdb.base/exprs.exp: print signed long < (minus) (print v_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long > (minus) (print v_long > 0)
+PASS: gdb.base/exprs.exp: print signed long > (minus) (print v_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long == (setup)
+PASS: gdb.base/exprs.exp: print signed signed long == (print v_signed_long == 0)
+PASS: gdb.base/exprs.exp: print signed signed long == (print v_signed_long == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long != (setup)
+PASS: gdb.base/exprs.exp: print signed signed long != (print v_signed_long != 0)
+PASS: gdb.base/exprs.exp: print signed signed long != (print v_signed_long != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long < (setup)
+PASS: gdb.base/exprs.exp: print signed signed long < (print v_signed_long < 0)
+PASS: gdb.base/exprs.exp: print signed signed long < (print v_signed_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long > (setup)
+PASS: gdb.base/exprs.exp: print signed signed long > (print v_signed_long > 0)
+PASS: gdb.base/exprs.exp: print signed signed long > (print v_signed_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long == (minus) (print v_signed_long == 0)
+PASS: gdb.base/exprs.exp: print signed signed long == (minus) (print v_signed_long == -1)
+PASS: gdb.base/exprs.exp: print signed signed long != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long != (minus) (print v_signed_long != 0)
+PASS: gdb.base/exprs.exp: print signed signed long != (minus) (print v_signed_long != -1)
+PASS: gdb.base/exprs.exp: print signed signed long < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long < (minus) (print v_signed_long < 0)
+PASS: gdb.base/exprs.exp: print signed signed long < (minus) (print v_signed_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long > (minus) (print v_signed_long > 0)
+PASS: gdb.base/exprs.exp: print signed signed long > (minus) (print v_signed_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long == (setup)
+PASS: gdb.base/exprs.exp: print unsigned long == (print v_unsigned_long == 0)
+PASS: gdb.base/exprs.exp: print unsigned long == (print v_unsigned_long == 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long != (setup)
+PASS: gdb.base/exprs.exp: print unsigned long != (print v_unsigned_long != 0)
+PASS: gdb.base/exprs.exp: print unsigned long != (print v_unsigned_long != 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long < (setup)
+PASS: gdb.base/exprs.exp: print unsigned long < (print v_unsigned_long < 0)
+PASS: gdb.base/exprs.exp: print unsigned long < (print v_unsigned_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long > (setup)
+PASS: gdb.base/exprs.exp: print unsigned long > (print v_unsigned_long > 0)
+PASS: gdb.base/exprs.exp: print unsigned long > (print v_unsigned_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (print v_unsigned_long == 0)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (print v_unsigned_long == ~0)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (print v_unsigned_long == (unsigned long)~0)
+PASS: gdb.base/exprs.exp: print unsigned long != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long != (~0) (print v_unsigned_long != 0)
+PASS: gdb.base/exprs.exp: print unsigned long != (~0) (print v_unsigned_long != (unsigned long)~0)
+PASS: gdb.base/exprs.exp: print unsigned long < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long < (~0) (print v_unsigned_long < 0)
+PASS: gdb.base/exprs.exp: print unsigned long < (~0) (print v_unsigned_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long > (~0) (print v_unsigned_long > 0)
+PASS: gdb.base/exprs.exp: print unsigned long > (~0) (print v_unsigned_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_char (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_char (print (void*)v_signed_char)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_short (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_short (print (void*)v_signed_short)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_int (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_int (print (void*)v_signed_int)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_long (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_long (print (void*)v_signed_long)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_char (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_char (print (void*)v_unsigned_char)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_short (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_short (print (void*)v_unsigned_short)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_int (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_int (print (void*)v_unsigned_int)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_long (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_long (print (void*)v_unsigned_long)
+PASS: gdb.base/exprs.exp: sizeof (long long) > sizeof (long) (true)
+PASS: gdb.base/exprs.exp: truncate (void*) 0x00000000ffffffff + 1
+PASS: gdb.base/exprs.exp: truncate (void*) 0xffffffff00000000 - 1
+PASS: gdb.base/exprs.exp: \$[0-9]* = "xy" (setup)
+PASS: gdb.base/exprs.exp: \$[0-9]* = "xyz" (setup)
+PASS: gdb.base/exprs.exp: \$[0-9]* = red (setup)
+PASS: gdb.base/exprs.exp: set output-radix 8
+PASS: gdb.base/exprs.exp: \$[0-9]* = red (setup)
+PASS: gdb.base/exprs.exp: \$[0-9]* = 0 (setup)
+PASS: gdb.base/exprs.exp: set output-radix 10
+PASS: gdb.base/exprs.exp: set variable v_int = 1
+PASS: gdb.base/exprs.exp: print v_int++
+PASS: gdb.base/exprs.exp: print ++v_int
+PASS: gdb.base/exprs.exp: print v_int--
+PASS: gdb.base/exprs.exp: print --v_int
+PASS: gdb.base/exprs.exp: print v_int++ = 5
+PASS: gdb.base/exprs.exp: print v_int-- = 5
+PASS: gdb.base/exprs.exp: print v_int_array_init
+PASS: gdb.base/exprs.exp: print *v_int_array_init@1
+PASS: gdb.base/exprs.exp: print *v_int_array_init@2
+PASS: gdb.base/exprs.exp: print v_int_array_init[0]@1
+PASS: gdb.base/exprs.exp: print v_int_array_init[0]@2
+PASS: gdb.base/exprs.exp: print v_int_array_init[1]@1
+PASS: gdb.base/exprs.exp: set variable v_short_array[0] = 42
+PASS: gdb.base/exprs.exp: print {short} v_short_array
+PASS: gdb.base/exprs.exp: print (void) v_int_pointer
+PASS: gdb.base/exprs.exp: print & (void) v_char
+Running ./gdb.base/fileio.exp ...
+Running ./gdb.base/find.exp ...
+PASS: gdb.base/find.exp: breakpoint function in file
+PASS: gdb.base/find.exp: run until function breakpoint
+PASS: gdb.base/find.exp: find string pattern
+PASS: gdb.base/find.exp: pattern not found at end of range
+PASS: gdb.base/find.exp: pattern found at end of range
+PASS: gdb.base/find.exp: max-count
+PASS: gdb.base/find.exp: $_
+PASS: gdb.base/find.exp: $numfound
+PASS: gdb.base/find.exp: size,max-count, /1b
+PASS: gdb.base/find.exp: size,max-count, /b1
+PASS: gdb.base/find.exp: size,max-count, /b/1
+PASS: gdb.base/find.exp: size,max-count, /1/b
+PASS: gdb.base/find.exp: find byte pattern with end address
+PASS: gdb.base/find.exp: find 16-bit pattern
+PASS: gdb.base/find.exp: find 16-bit pattern
+PASS: gdb.base/find.exp: find 32-bit pattern
+PASS: gdb.base/find.exp: find 32-bit pattern
+PASS: gdb.base/find.exp: find 64-bit pattern
+PASS: gdb.base/find.exp: find 64-bit pattern
+PASS: gdb.base/find.exp: find mixed-sized pattern
+PASS: gdb.base/find.exp: search spanning large range
+PASS: gdb.base/find.exp: find int64_search_buf, +64/8*100, int64_search_buf
+Running ./gdb.base/find-unmapped.exp ...
+Running ./gdb.base/finish.exp ...
+PASS: gdb.base/finish.exp: set break on void_func
+PASS: gdb.base/finish.exp: continue to void_func
+PASS: gdb.base/finish.exp: finish from void_func
+PASS: gdb.base/finish.exp: set break on char_func
+PASS: gdb.base/finish.exp: continue to char_func
+PASS: gdb.base/finish.exp: finish from char_func
+PASS: gdb.base/finish.exp: set break on short_func
+PASS: gdb.base/finish.exp: continue to short_func
+PASS: gdb.base/finish.exp: finish from short_func
+PASS: gdb.base/finish.exp: set break on int_func
+PASS: gdb.base/finish.exp: continue to int_func
+PASS: gdb.base/finish.exp: finish from int_func
+PASS: gdb.base/finish.exp: set break on long_func
+PASS: gdb.base/finish.exp: continue to long_func
+PASS: gdb.base/finish.exp: finish from long_func
+PASS: gdb.base/finish.exp: set break on long_long_func
+PASS: gdb.base/finish.exp: continue to long_long_func
+PASS: gdb.base/finish.exp: finish from long_long_func
+PASS: gdb.base/finish.exp: set break on float_func
+PASS: gdb.base/finish.exp: continue to float_func
+PASS: gdb.base/finish.exp: finish from float_func
+PASS: gdb.base/finish.exp: set break on double_func
+PASS: gdb.base/finish.exp: continue to double_func
+PASS: gdb.base/finish.exp: finish from double_func
+PASS: gdb.base/finish.exp: Testing the "fin" abbreviation for "finish"
+Running ./gdb.base/fixsection.exp ...
+PASS: gdb.base/fixsection.exp: breakpoint at static_fun
+Running ./gdb.base/float.exp ...
+PASS: gdb.base/float.exp: info float (VFP)
+PASS: gdb.base/float.exp: step
+PASS: gdb.base/float.exp: finish
+Running ./gdb.base/foll-exec.exp ...
+Running ./gdb.base/foll-fork.exp ...
+Running ./gdb.base/foll-vfork.exp ...
+Running ./gdb.base/fortran-sym-case.exp ...
+PASS: gdb.base/fortran-sym-case.exp: set language fortran
+PASS: gdb.base/fortran-sym-case.exp: frame
+Running ./gdb.base/frame-args.exp ...
+PASS: gdb.base/frame-args.exp: set print frame-arguments all
+PASS: gdb.base/frame-args.exp: frame 1 with print frame-arguments set to all
+PASS: gdb.base/frame-args.exp: set print frame-arguments scalars
+PASS: gdb.base/frame-args.exp: frame 1 with print frame-arguments set to scalars
+PASS: gdb.base/frame-args.exp: set print frame-arguments none
+PASS: gdb.base/frame-args.exp: frame 1 with print frame-arguments set to none
+Running ./gdb.base/freebpcmd.exp ...
+PASS: gdb.base/freebpcmd.exp: set breakpoint
+PASS: gdb.base/freebpcmd.exp: send breakpoint commands
+PASS: gdb.base/freebpcmd.exp: run program with breakpoint commands
+Running ./gdb.base/fullname.exp ...
+PASS: gdb.base/fullname.exp: set breakpoint by full path before loading symbols - built absolute
+PASS: gdb.base/fullname.exp: set breakpoint at main - built absolute
+PASS: gdb.base/fullname.exp: set breakpoint by full path after loading symbols - built absolute
+PASS: gdb.base/fullname.exp: set breakpoint by full path before loading symbols - built relative
+PASS: gdb.base/fullname.exp: set breakpoint at main - built relative
+PASS: gdb.base/fullname.exp: set breakpoint by full path after loading symbols - built relative
+PASS: gdb.base/fullname.exp: set breakpoint by full path before loading symbols - built other
+PASS: gdb.base/fullname.exp: set breakpoint at main - built other
+PASS: gdb.base/fullname.exp: set breakpoint by full path after loading symbols - built other
+Running ./gdb.base/fullpath-expand.exp ...
+PASS: gdb.base/fullpath-expand.exp: rbreak XXX/fullpath-expand-func.c:func
+PASS: gdb.base/fullpath-expand.exp: list func
+PASS: gdb.base/fullpath-expand.exp: info source
+Running ./gdb.base/funcargs.exp ...
+PASS: gdb.base/funcargs.exp: set print frame-arguments all
+PASS: gdb.base/funcargs.exp: run to call0a
+PASS: gdb.base/funcargs.exp: print c after run to call0a
+PASS: gdb.base/funcargs.exp: print s after run to call0a
+PASS: gdb.base/funcargs.exp: print i after run to call0a
+PASS: gdb.base/funcargs.exp: print l after run to call0a
+PASS: gdb.base/funcargs.exp: continue to call0b
+PASS: gdb.base/funcargs.exp: continue to call0c
+PASS: gdb.base/funcargs.exp: continue to call0d
+PASS: gdb.base/funcargs.exp: continue to call0e
+PASS: gdb.base/funcargs.exp: run to call1a
+PASS: gdb.base/funcargs.exp: print uc
+PASS: gdb.base/funcargs.exp: print us
+PASS: gdb.base/funcargs.exp: print ui
+PASS: gdb.base/funcargs.exp: print ul
+PASS: gdb.base/funcargs.exp: continue to call1b
+PASS: gdb.base/funcargs.exp: continue to call1c
+PASS: gdb.base/funcargs.exp: continue to call1d
+PASS: gdb.base/funcargs.exp: continue to call1e
+PASS: gdb.base/funcargs.exp: run to call2a
+PASS: gdb.base/funcargs.exp: print c after run to call2a
+PASS: gdb.base/funcargs.exp: print f1 after run to call2a
+PASS: gdb.base/funcargs.exp: print s after run to call2a
+PASS: gdb.base/funcargs.exp: print d1 after run to call2a
+PASS: gdb.base/funcargs.exp: print i after run to call2a
+PASS: gdb.base/funcargs.exp: print f2 after run to call2a
+PASS: gdb.base/funcargs.exp: print l after run to call2a
+PASS: gdb.base/funcargs.exp: print d2 after run to call2a
+PASS: gdb.base/funcargs.exp: continue to call2b
+PASS: gdb.base/funcargs.exp: continue to call2c
+PASS: gdb.base/funcargs.exp: continue to call2d
+PASS: gdb.base/funcargs.exp: continue to call2e
+PASS: gdb.base/funcargs.exp: continue to call2f
+PASS: gdb.base/funcargs.exp: continue to call2g
+PASS: gdb.base/funcargs.exp: continue to call2h
+PASS: gdb.base/funcargs.exp: continue to call2i
+PASS: gdb.base/funcargs.exp: run to call2a
+PASS: gdb.base/funcargs.exp: continue to callcb
+PASS: gdb.base/funcargs.exp: continue to callcc
+PASS: gdb.base/funcargs.exp: continue to callcd
+PASS: gdb.base/funcargs.exp: continue to callce
+PASS: gdb.base/funcargs.exp: continue to callcf
+PASS: gdb.base/funcargs.exp: run to callc1a
+PASS: gdb.base/funcargs.exp: continue to callc1b
+PASS: gdb.base/funcargs.exp: run to callc2a
+PASS: gdb.base/funcargs.exp: continue to callc2b
+PASS: gdb.base/funcargs.exp: run to call3a
+PASS: gdb.base/funcargs.exp: print *cp
+PASS: gdb.base/funcargs.exp: print *sp
+PASS: gdb.base/funcargs.exp: print *ip
+PASS: gdb.base/funcargs.exp: print *lp
+PASS: gdb.base/funcargs.exp: continue to call3b
+PASS: gdb.base/funcargs.exp: print *ucp
+PASS: gdb.base/funcargs.exp: print *usp
+PASS: gdb.base/funcargs.exp: print *uip
+PASS: gdb.base/funcargs.exp: print *ulp
+PASS: gdb.base/funcargs.exp: continue to call3c
+PASS: gdb.base/funcargs.exp: print *fp
+PASS: gdb.base/funcargs.exp: print *dp
+PASS: gdb.base/funcargs.exp: run to call4a
+PASS: gdb.base/funcargs.exp: print *stp
+PASS: gdb.base/funcargs.exp: continue to call4b
+PASS: gdb.base/funcargs.exp: print *unp (sizeof long == sizeof int)
+PASS: gdb.base/funcargs.exp: locate actual args, structs/unions passed by reference
+PASS: gdb.base/funcargs.exp: run to call5a
+PASS: gdb.base/funcargs.exp: print st
+PASS: gdb.base/funcargs.exp: continue to call5b (sizeof long == sizeof int)
+PASS: gdb.base/funcargs.exp: print un (sizeof long == sizeof int)
+PASS: gdb.base/funcargs.exp: run to call6a
+PASS: gdb.base/funcargs.exp: backtrace from call6a
+PASS: gdb.base/funcargs.exp: continue to call6b
+PASS: gdb.base/funcargs.exp: backtrace from call6b
+PASS: gdb.base/funcargs.exp: continue to call6c
+PASS: gdb.base/funcargs.exp: backtrace from call6c
+PASS: gdb.base/funcargs.exp: continue to call6d
+PASS: gdb.base/funcargs.exp: backtrace from call6d
+PASS: gdb.base/funcargs.exp: continue to call6e
+PASS: gdb.base/funcargs.exp: backtrace from call6e
+PASS: gdb.base/funcargs.exp: continue to call6f
+PASS: gdb.base/funcargs.exp: backtrace from call6f
+PASS: gdb.base/funcargs.exp: continue to call6g
+PASS: gdb.base/funcargs.exp: backtrace from call6g
+PASS: gdb.base/funcargs.exp: continue to call6h
+PASS: gdb.base/funcargs.exp: backtrace from call6h
+PASS: gdb.base/funcargs.exp: continue to call6i
+PASS: gdb.base/funcargs.exp: backtrace from call6i
+PASS: gdb.base/funcargs.exp: continue to call6j
+PASS: gdb.base/funcargs.exp: backtrace from call6j
+PASS: gdb.base/funcargs.exp: continue to call6k
+PASS: gdb.base/funcargs.exp: backtrace from call6k
+PASS: gdb.base/funcargs.exp: run to call7a
+PASS: gdb.base/funcargs.exp: backtrace from call7a
+PASS: gdb.base/funcargs.exp: continue to call7b
+PASS: gdb.base/funcargs.exp: backtrace from call7b
+PASS: gdb.base/funcargs.exp: continue to call7c
+PASS: gdb.base/funcargs.exp: backtrace from call7c
+PASS: gdb.base/funcargs.exp: continue to call7d
+PASS: gdb.base/funcargs.exp: backtrace from call7d
+PASS: gdb.base/funcargs.exp: continue to call7e
+PASS: gdb.base/funcargs.exp: backtrace from call7e
+PASS: gdb.base/funcargs.exp: continue to call7f
+PASS: gdb.base/funcargs.exp: backtrace from call7f
+PASS: gdb.base/funcargs.exp: continue to call7g
+PASS: gdb.base/funcargs.exp: backtrace from call7g
+PASS: gdb.base/funcargs.exp: continue to call7h
+PASS: gdb.base/funcargs.exp: backtrace from call7h
+PASS: gdb.base/funcargs.exp: continue to call7i
+PASS: gdb.base/funcargs.exp: backtrace from call7i
+PASS: gdb.base/funcargs.exp: continue to call7j
+PASS: gdb.base/funcargs.exp: backtrace from call7j
+PASS: gdb.base/funcargs.exp: continue to call7k
+PASS: gdb.base/funcargs.exp: backtrace from call7k
+PASS: gdb.base/funcargs.exp: run to hitbottom
+PASS: gdb.base/funcargs.exp: recursive passing of structs by value
+PASS: gdb.base/funcargs.exp: print c after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print s after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print i after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print l after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: next in localvars_after_alloca()
+PASS: gdb.base/funcargs.exp: print c in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print s in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print i in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print l in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: backtrace after alloca
+PASS: gdb.base/funcargs.exp: print c in call_after_alloca
+PASS: gdb.base/funcargs.exp: print s in call_after_alloca
+PASS: gdb.base/funcargs.exp: print i in call_after_alloca
+PASS: gdb.base/funcargs.exp: print l in call_after_alloca
+PASS: gdb.base/funcargs.exp: backtrace from call_after_alloca_subr
+PASS: gdb.base/funcargs.exp: continue to call0a
+PASS: gdb.base/funcargs.exp: print c in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: print s in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: print i in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: print l in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: backtrace in indirectly called function
+PASS: gdb.base/funcargs.exp: finish from indirectly called function
+PASS: gdb.base/funcargs.exp: stepping into indirectly called function
+PASS: gdb.base/funcargs.exp: finish from marker_call_with_trampolines
+PASS: gdb.base/funcargs.exp: stepping into function called with trampolines
+PASS: gdb.base/funcargs.exp: backtrace through call with trampolines
+PASS: gdb.base/funcargs.exp: stepping back to main from function called with trampolines
+Running ./gdb.base/gcore-buffer-overflow.exp ...
+PASS: gdb.base/gcore-buffer-overflow.exp: help gcore
+PASS: gdb.base/gcore-buffer-overflow.exp: Set buffer exceeding arguments
+PASS: gdb.base/gcore-buffer-overflow.exp: save a corefile
+Running ./gdb.base/gcore.exp ...
+PASS: gdb.base/gcore.exp: help gcore
+PASS: gdb.base/gcore.exp: set breakpoint at terminal_func
+PASS: gdb.base/gcore.exp: continue to terminal_func
+PASS: gdb.base/gcore.exp: save a corefile
+PASS: gdb.base/gcore.exp: re-load generated corefile
+PASS: gdb.base/gcore.exp: where in corefile
+PASS: gdb.base/gcore.exp: corefile restored general registers
+PASS: gdb.base/gcore.exp: corefile restored all registers
+PASS: gdb.base/gcore.exp: corefile restored extern array
+PASS: gdb.base/gcore.exp: corefile restored static array
+PASS: gdb.base/gcore.exp: corefile restored un-initialized array
+PASS: gdb.base/gcore.exp: corefile restored heap array
+PASS: gdb.base/gcore.exp: corefile restored stack array
+PASS: gdb.base/gcore.exp: corefile restored backtrace
+Running ./gdb.base/gcore-relro.exp ...
+PASS: gdb.base/gcore-relro.exp: help gcore
+Running ./gdb.base/gdb1056.exp ...
+PASS: gdb.base/gdb1056.exp: print 1/0
+PASS: gdb.base/gdb1056.exp: Test unsigned division by zero
+Running ./gdb.base/gdb1090.exp ...
+PASS: gdb.base/gdb1090.exp: continue to breakpoint: break-here
+PASS: gdb.base/gdb1090.exp: print s24
+Running ./gdb.base/gdb11530.exp ...
+PASS: gdb.base/gdb11530.exp: print a.i
+PASS: gdb.base/gdb11530.exp: print sizeof (a.i)
+PASS: gdb.base/gdb11530.exp: print sizeof (a.i) == sizeof (int)
+Running ./gdb.base/gdb11531.exp ...
+PASS: gdb.base/gdb11531.exp: Set watchpoint
+PASS: gdb.base/gdb11531.exp: watchpoint variable triggers at next
+PASS: gdb.base/gdb11531.exp: watchpoint variable triggers at continue
+Running ./gdb.base/gdb1250.exp ...
+Running ./gdb.base/gdb1555.exp ...
+FAIL: gdb.base/gdb1555.exp: Step into shared lib function
+FAIL: gdb.base/gdb1555.exp: Next while in a shared lib function
+Running ./gdb.base/gdb1821.exp ...
+PASS: gdb.base/gdb1821.exp: print /x bar
+Running ./gdb.base/gdbindex-stabs.exp ...
+PASS: gdb.base/gdbindex-stabs.exp: list stabs_function
+Running ./gdb.base/gdbvars.exp ...
+PASS: gdb.base/gdbvars.exp: set print sevenbit-strings
+PASS: gdb.base/gdbvars.exp: Set value-history[1] using $1
+PASS: gdb.base/gdbvars.exp: Set value-history[2] using $2
+PASS: gdb.base/gdbvars.exp: Set value-history[3] using $3
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX-1] using inplicit index $$
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX-1] again using implicit index $$
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX] using implicit index $
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX-2] using explicit index $$2
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX] using explicit index $0
+PASS: gdb.base/gdbvars.exp: print 108
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX] using explicit index $$0
+PASS: gdb.base/gdbvars.exp: Print value-history[1] using explicit index $1
+PASS: gdb.base/gdbvars.exp: Print value-history[2] using explicit index $2
+PASS: gdb.base/gdbvars.exp: Print value-history[3] using explicit index $3
+PASS: gdb.base/gdbvars.exp: Print (value-history[MAX] - 3) using implicit index $
+PASS: gdb.base/gdbvars.exp: Use value-history element in arithmetic expression
+PASS: gdb.base/gdbvars.exp: Set a new convenience variable
+PASS: gdb.base/gdbvars.exp: Print contents of new convenience variable
+PASS: gdb.base/gdbvars.exp: Set convenience variable to a new value
+PASS: gdb.base/gdbvars.exp: Print new contents of convenience variable
+PASS: gdb.base/gdbvars.exp: Set convenience variable $_
+PASS: gdb.base/gdbvars.exp: Print contents of convenience variable $_
+PASS: gdb.base/gdbvars.exp: Use convenience variable in arithmetic expression
+PASS: gdb.base/gdbvars.exp: Use convenience variable assignment in arithmetic expression
+PASS: gdb.base/gdbvars.exp: Print contents of uninitialized convenience variable
+PASS: gdb.base/gdbvars.exp: Set a new convenience variable to a program variable
+PASS: gdb.base/gdbvars.exp: Print contents of new convenience variable of program variable
+Running ./gdb.base/gnu-debugdata.exp ...
+PASS: gdb.base/gnu-debugdata.exp: nm -D - invoke armv7a-cros-linux-gnueabi-nm
+PASS: gdb.base/gnu-debugdata.exp: nm -D - invoke awk
+PASS: gdb.base/gnu-debugdata.exp: nm -D - invoke sort
+PASS: gdb.base/gnu-debugdata.exp: nm - invoke armv7a-cros-linux-gnueabi-nm
+PASS: gdb.base/gnu-debugdata.exp: nm - invoke awk
+PASS: gdb.base/gnu-debugdata.exp: nm - invoke sort
+PASS: gdb.base/gnu-debugdata.exp: comm
+PASS: gdb.base/gnu-debugdata.exp: objcopy 1
+PASS: gdb.base/gnu-debugdata.exp: strip
+PASS: gdb.base/gnu-debugdata.exp: copydebug
+PASS: gdb.base/gnu-debugdata.exp: addlink
+PASS: gdb.base/gnu-debugdata.exp: xz
+PASS: gdb.base/gnu-debugdata.exp: objcopy 2
+PASS: gdb.base/gnu-debugdata.exp: no symtab
+PASS: gdb.base/gnu-debugdata.exp: have symtab
+PASS: gdb.base/gnu-debugdata.exp: unload MiniDebugInfo
+Running ./gdb.base/gnu-ifunc.exp ...
+gdb compile failed, /tmp/cctHw26J.s: Assembler messages:
+/tmp/cctHw26J.s:42: Error: unrecognized symbol type ""
+UNTESTED: gdb.base/gnu-ifunc.exp: Could not compile dynamic executable /var/tmp/portage/cross-armv7a-cros-linux-gnueabi/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/gdb.base/gnu-ifunc.
+Running ./gdb.base/gnu_vector.exp ...
+PASS: gdb.base/gnu_vector.exp: print c4
+PASS: gdb.base/gnu_vector.exp: print c4[2]
+PASS: gdb.base/gnu_vector.exp: print i4a
+PASS: gdb.base/gnu_vector.exp: print i4b
+PASS: gdb.base/gnu_vector.exp: print i4a + i4b
+PASS: gdb.base/gnu_vector.exp: print i4a - i4b
+PASS: gdb.base/gnu_vector.exp: print i4a * i4b
+PASS: gdb.base/gnu_vector.exp: print i4a / i4b
+PASS: gdb.base/gnu_vector.exp: print i4a % i4b
+PASS: gdb.base/gnu_vector.exp: print i4a++
+PASS: gdb.base/gnu_vector.exp: print ++i4a
+PASS: gdb.base/gnu_vector.exp: print i4a--
+PASS: gdb.base/gnu_vector.exp: print --i4a
+PASS: gdb.base/gnu_vector.exp: print +i4a
+PASS: gdb.base/gnu_vector.exp: print -i4a
+PASS: gdb.base/gnu_vector.exp: print i4a & i4b
+PASS: gdb.base/gnu_vector.exp: print i4a | i4b
+PASS: gdb.base/gnu_vector.exp: print i4a ^ i4b
+PASS: gdb.base/gnu_vector.exp: print ~i4a
+PASS: gdb.base/gnu_vector.exp: print i4a << i4b
+PASS: gdb.base/gnu_vector.exp: print i4a >> i4b
+PASS: gdb.base/gnu_vector.exp: print f4a
+PASS: gdb.base/gnu_vector.exp: print f4b
+PASS: gdb.base/gnu_vector.exp: print f4a + f4b
+PASS: gdb.base/gnu_vector.exp: print f4a - f4b
+PASS: gdb.base/gnu_vector.exp: print f4a * f4b
+PASS: gdb.base/gnu_vector.exp: print f4a / f4b
+PASS: gdb.base/gnu_vector.exp: print +f4a
+PASS: gdb.base/gnu_vector.exp: print -f4a
+PASS: gdb.base/gnu_vector.exp: print (char4) 0x01010101
+PASS: gdb.base/gnu_vector.exp: print (char4) ia
+PASS: gdb.base/gnu_vector.exp: print (int2) lla
+PASS: gdb.base/gnu_vector.exp: print (int2) 1
+PASS: gdb.base/gnu_vector.exp: print (longlong2) 2
+PASS: gdb.base/gnu_vector.exp: print (float2) 3
+PASS: gdb.base/gnu_vector.exp: print (double2) 4
+PASS: gdb.base/gnu_vector.exp: print (uint4) ia
+PASS: gdb.base/gnu_vector.exp: print (int4) -3
+PASS: gdb.base/gnu_vector.exp: print (float4) 4
+PASS: gdb.base/gnu_vector.exp: print i4b = ia
+PASS: gdb.base/gnu_vector.exp: print i4a = 3
+PASS: gdb.base/gnu_vector.exp: print f4a = fb
+PASS: gdb.base/gnu_vector.exp: print f4b = 2
+PASS: gdb.base/gnu_vector.exp: print c4 + lla
+PASS: gdb.base/gnu_vector.exp: print i4a + lla
+PASS: gdb.base/gnu_vector.exp: print lla + c4
+PASS: gdb.base/gnu_vector.exp: print lla + i4a
+PASS: gdb.base/gnu_vector.exp: print c4 + ib
+PASS: gdb.base/gnu_vector.exp: print i4a + ib
+PASS: gdb.base/gnu_vector.exp: print i4a + 1
+PASS: gdb.base/gnu_vector.exp: print 1 + i4a
+PASS: gdb.base/gnu_vector.exp: print fa - f4b
+PASS: gdb.base/gnu_vector.exp: print 2 - f4b
+PASS: gdb.base/gnu_vector.exp: print f4a * fb
+PASS: gdb.base/gnu_vector.exp: print f4a * 1
+PASS: gdb.base/gnu_vector.exp: print ia / i4b
+PASS: gdb.base/gnu_vector.exp: print 2 / i4b
+PASS: gdb.base/gnu_vector.exp: print i4a % ib
+PASS: gdb.base/gnu_vector.exp: print i4a % 1
+PASS: gdb.base/gnu_vector.exp: print ia & i4b
+PASS: gdb.base/gnu_vector.exp: print 2 & i4b
+PASS: gdb.base/gnu_vector.exp: print i4a | ib
+PASS: gdb.base/gnu_vector.exp: print i4a | 1
+PASS: gdb.base/gnu_vector.exp: print ia ^ i4b
+PASS: gdb.base/gnu_vector.exp: print 2 ^ i4b
+PASS: gdb.base/gnu_vector.exp: print i4a << ib
+PASS: gdb.base/gnu_vector.exp: print i4a << 1
+PASS: gdb.base/gnu_vector.exp: print i4a >> ib
+PASS: gdb.base/gnu_vector.exp: print i4a >> 1
+PASS: gdb.base/gnu_vector.exp: print i4a = {2, 4, 8, 16}
+PASS: gdb.base/gnu_vector.exp: print i4a <<= ib
+PASS: gdb.base/gnu_vector.exp: print i4a + d2
+PASS: gdb.base/gnu_vector.exp: print d2 + i4a
+PASS: gdb.base/gnu_vector.exp: print f4a + ll2
+PASS: gdb.base/gnu_vector.exp: print ll2 + f4a
+PASS: gdb.base/gnu_vector.exp: print i2 + ll2
+PASS: gdb.base/gnu_vector.exp: print ll2 + i2
+PASS: gdb.base/gnu_vector.exp: print i4a + ll2
+PASS: gdb.base/gnu_vector.exp: print ll2 + i4a
+PASS: gdb.base/gnu_vector.exp: print f4a + d2
+PASS: gdb.base/gnu_vector.exp: print d2 + f4a
+PASS: gdb.base/gnu_vector.exp: print ui4 + i4a
+PASS: gdb.base/gnu_vector.exp: print i4a + ui4
+PASS: gdb.base/gnu_vector.exp: print i4a + i2
+PASS: gdb.base/gnu_vector.exp: print i2 + i4a
+PASS: gdb.base/gnu_vector.exp: print f4a + f2
+PASS: gdb.base/gnu_vector.exp: print f2 + f4a
+PASS: gdb.base/gnu_vector.exp: print (double2) f2
+PASS: gdb.base/gnu_vector.exp: print (int4) c4
+PASS: gdb.base/gnu_vector.exp: print (char4) i4a
+PASS: gdb.base/gnu_vector.exp: ptype c4
+PASS: gdb.base/gnu_vector.exp: ptype char4
+PASS: gdb.base/gnu_vector.exp: ptype i4a
+PASS: gdb.base/gnu_vector.exp: ptype int4
+PASS: gdb.base/gnu_vector.exp: ptype f4b
+PASS: gdb.base/gnu_vector.exp: ptype float4
+PASS: gdb.base/gnu_vector.exp: ptype union_with_vector_1
+PASS: gdb.base/gnu_vector.exp: ptype struct_with_vector_1
+Running ./gdb.base/hashline1.exp ...
+PASS: gdb.base/hashline1.exp: set breakpoint
+Running ./gdb.base/hashline2.exp ...
+PASS: gdb.base/hashline2.exp: set breakpoint
+Running ./gdb.base/hashline3.exp ...
+PASS: gdb.base/hashline3.exp: set breakpoint
+Running ./gdb.base/hbreak2.exp ...
+PASS: gdb.base/hbreak2.exp: hardware breakpoint support
+FAIL: gdb.base/hbreak2.exp: hardware breakpoint insertion
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function
+PASS: gdb.base/hbreak2.exp: hardware breakpoint quoted function
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function in file
+PASS: gdb.base/hbreak2.exp: use `list' to establish default source file
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number in file
+PASS: gdb.base/hbreak2.exp: hardware breakpoint at start of multi line if conditional
+PASS: gdb.base/hbreak2.exp: hardware breakpoint at start of multi line while conditional
+PASS: gdb.base/hbreak2.exp: hardware breakpoint info
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function (2)
+FAIL: gdb.base/hbreak2.exp: run until function breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number (2)
+PASS: gdb.base/hbreak2.exp: run until breakpoint set at a line number
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function in file (2)
+PASS: gdb.base/hbreak2.exp: run until file:function(6) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(5) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(4) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(3) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(2) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(1) breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint quoted function (2)
+PASS: gdb.base/hbreak2.exp: run until quoted breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number in file (2)
+PASS: gdb.base/hbreak2.exp: run until file:linenum breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint offset +1
+PASS: gdb.base/hbreak2.exp: step onto hardware breakpoint
+PASS: gdb.base/hbreak2.exp: setting hardware breakpoint at }
+PASS: gdb.base/hbreak2.exp: continue to hardware breakpoint at }
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint function
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint function in file
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number #1
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number #2
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number in file #1
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number in file #2
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint info
+PASS: gdb.base/hbreak2.exp: set breakpoint pending off
+PASS: gdb.base/hbreak2.exp: hardware break on non-existent source line
+PASS: gdb.base/hbreak2.exp: until bp_location1
+PASS: gdb.base/hbreak2.exp: hardware break on default location
+PASS: gdb.base/hbreak2.exp: set to-be-silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: set silent break bp_location1
+PASS: gdb.base/hbreak2.exp: info silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: hit silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: stopped for silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: thread-specific hardware breakpoint on non-existent thread disallowed
+PASS: gdb.base/hbreak2.exp: thread-specific hardware breakpoint on bogus thread ID disallowed
+PASS: gdb.base/hbreak2.exp: hardware breakpoint with trailing garbage disallowed
+PASS: gdb.base/hbreak2.exp: step over hardware breakpoint
+PASS: gdb.base/hbreak2.exp: clear line has no breakpoint disallowed
+PASS: gdb.base/hbreak2.exp: clear current line has no breakpoint disallowed
+PASS: gdb.base/hbreak2.exp: set convenience variable $foo to bp_location11
+PASS: gdb.base/hbreak2.exp: set hardware breakpoint via convenience variable
+PASS: gdb.base/hbreak2.exp: set convenience variable $foo to 81.5
+PASS: gdb.base/hbreak2.exp: set hardware breakpoint via non-integer convenience variable disallowed
+PASS: gdb.base/hbreak2.exp: set hardware breakpoint on to-be-called function
+PASS: gdb.base/hbreak2.exp: hit hardware breakpoint on called function
+PASS: gdb.base/hbreak2.exp: backtrace while in called function
+PASS: gdb.base/hbreak2.exp: finish from called function
+PASS: gdb.base/hbreak2.exp: hardware break at factorial
+PASS: gdb.base/hbreak2.exp: kill program
+PASS: gdb.base/hbreak2.exp: run to factorial(6)
+PASS: gdb.base/hbreak2.exp: continue to factorial(5)
+PASS: gdb.base/hbreak2.exp: backtrace from factorial(5)
+PASS: gdb.base/hbreak2.exp: next to recursive call
+PASS: gdb.base/hbreak2.exp: next over recursive call
+PASS: gdb.base/hbreak2.exp: backtrace from factorial(5.1)
+FAIL: gdb.base/hbreak2.exp: setting breakpoint at exit
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function, optimized file
+PASS: gdb.base/hbreak2.exp: run until hardware function breakpoint, optimized file (code motion)
+PASS: gdb.base/hbreak2.exp: hardware breakpoint small function, optimized file
+PASS: gdb.base/hbreak2.exp: run until hardware breakpoint set at small function, optimized file
+Running ./gdb.base/hbreak.exp ...
+Running ./gdb.base/help.exp ...
+PASS: gdb.base/help.exp: disable pagination
+PASS: gdb.base/help.exp: help aliases
+PASS: gdb.base/help.exp: help breakpoints
+PASS: gdb.base/help.exp: help data
+PASS: gdb.base/help.exp: help files
+PASS: gdb.base/help.exp: help internals
+PASS: gdb.base/help.exp: help obscure
+PASS: gdb.base/help.exp: help running
+PASS: gdb.base/help.exp: help stack
+PASS: gdb.base/help.exp: help status
+PASS: gdb.base/help.exp: help support
+PASS: gdb.base/help.exp: help tracepoints
+PASS: gdb.base/help.exp: help user-defined
+PASS: gdb.base/help.exp: help breakpoint "b" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "br" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "bre" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "brea" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "break" abbreviation
+PASS: gdb.base/help.exp: help backtrace "bt" abbreviation
+PASS: gdb.base/help.exp: help backtrace
+PASS: gdb.base/help.exp: help commands
+PASS: gdb.base/help.exp: help delete "d" abbreviation
+PASS: gdb.base/help.exp: help delete
+PASS: gdb.base/help.exp: help help "h" abbreviation
+PASS: gdb.base/help.exp: help help
+PASS: gdb.base/help.exp: help show copying
+PASS: gdb.base/help.exp: help show warranty
+PASS: gdb.base/help.exp: help show commands
+PASS: gdb.base/help.exp: help show confirm
+PASS: gdb.base/help.exp: help info bogus-gdb-command
+PASS: gdb.base/help.exp: help gotcha
+PASS: gdb.base/help.exp: apropos \(print[^ bsiedf\".-]\)
+PASS: gdb.base/help.exp: apropos handle signal
+PASS: gdb.base/help.exp: apropos apropos
+Running ./gdb.base/hook-stop-continue.exp ...
+PASS: gdb.base/hook-stop-continue.exp: breakpoint line number
+PASS: gdb.base/hook-stop-continue.exp: print $do_continue = 1
+PASS: gdb.base/hook-stop-continue.exp: define hook-stop command
+PASS: gdb.base/hook-stop-continue.exp: next triggering hook-stop
+PASS: gdb.base/hook-stop-continue.exp: next no hook-stop
+Running ./gdb.base/hook-stop-frame.exp ...
+PASS: gdb.base/hook-stop-frame.exp: breakpoint line number
+PASS: gdb.base/hook-stop-frame.exp: define hook-stop command
+PASS: gdb.base/hook-stop-frame.exp: hook-stop runs before frame print
+Running ./gdb.base/huge.exp ...
+PASS: gdb.base/huge.exp: print a very large data object
+Running ./gdb.base/ifelse.exp ...
+PASS: gdb.base/ifelse.exp: if 1 with empty body
+PASS: gdb.base/ifelse.exp: if 0 with empty body
+PASS: gdb.base/ifelse.exp: if true else false #1
+PASS: gdb.base/ifelse.exp: if 1 .. else with empty body
+PASS: gdb.base/ifelse.exp: if true else false #2
+PASS: gdb.base/ifelse.exp: if 0 .. else with empty body
+PASS: gdb.base/ifelse.exp: if true else false #3
+PASS: gdb.base/ifelse.exp: create define with empty else
+PASS: gdb.base/ifelse.exp: call original define
+PASS: gdb.base/ifelse.exp: replace define with if .. else with empty body
+PASS: gdb.base/ifelse.exp: call replacement define
+Running ./gdb.base/included.exp ...
+PASS: gdb.base/included.exp: set listsize 1
+PASS: gdb.base/included.exp: list main
+PASS: gdb.base/included.exp: list integer
+PASS: gdb.base/included.exp: ptype integer
+PASS: gdb.base/included.exp: info variables integer
+Running ./gdb.base/inferior-died.exp ...
+UNSUPPORTED: gdb.base/inferior-died.exp: inferior-died.exp
+Running ./gdb.base/infnan.exp ...
+PASS: gdb.base/infnan.exp: print a
+PASS: gdb.base/infnan.exp: print b
+Running ./gdb.base/info-fun.exp ...
+Running ./gdb.base/infoline.exp ...
+PASS: gdb.base/infoline.exp: info line infoline.c:18
+Running ./gdb.base/info-macros.exp ...
+FAIL: gdb.base/info-macros.exp: info macro -- -all
+FAIL: gdb.base/info-macros.exp: info macro  -- -all
+PASS: gdb.base/info-macros.exp: info macro -all --
+PASS: gdb.base/info-macros.exp: info macro -all  --
+PASS: gdb.base/info-macros.exp: info macro  -all  --
+PASS: gdb.base/info-macros.exp: info macro --
+PASS: gdb.base/info-macros.exp: 'info macro -- '
+PASS: gdb.base/info-macros.exp: 'info macro  -- '
+PASS: gdb.base/info-macros.exp: info macro -invalid-option 1
+PASS: gdb.base/info-macros.exp: info macro  -invalid-option
+PASS: gdb.base/info-macros.exp: info macro -invalid-option FOO
+PASS: gdb.base/info-macros.exp: info macro  -invalid-option FOO
+FAIL: gdb.base/info-macros.exp: info macro -- FOO
+FAIL: gdb.base/info-macros.exp: info macro  -- FOO
+FAIL: gdb.base/info-macros.exp: info macro --  FOO
+FAIL: gdb.base/info-macros.exp: info macro FOO
+FAIL: gdb.base/info-macros.exp: info macro  FOO
+FAIL: gdb.base/info-macros.exp: info macro -a FOO 1
+FAIL: gdb.base/info-macros.exp: info macro -a -- FOO 1
+FAIL: gdb.base/info-macros.exp: info macro -all -- FOO 1
+FAIL: gdb.base/info-macros.exp: info macro -a  --  FOO
+FAIL: gdb.base/info-macros.exp: info macro  -a  --  FOO
+FAIL: gdb.base/info-macros.exp: info macros 2
+FAIL: gdb.base/info-macros.exp: info macros 3
+FAIL: gdb.base/info-macros.exp: info macros 4
+FAIL: gdb.base/info-macros.exp: info macros *$pc
+FAIL: gdb.base/info-macros.exp: info macros
+FAIL: gdb.base/info-macros.exp: info macros 6
+FAIL: gdb.base/info-macros.exp: info macros 7
+KFAIL: gdb.base/info-macros.exp: info macros info-macros.c:42 (PRMS: gdb/NNNN)
+Running ./gdb.base/info-os.exp ...
+PASS: gdb.base/info-os.exp: get inferior process ID
+PASS: gdb.base/info-os.exp: continue to breakpoint: Set breakpoint here
+PASS: gdb.base/info-os.exp: get shared memory key
+PASS: gdb.base/info-os.exp: get shared memory ID
+PASS: gdb.base/info-os.exp: get semaphore key
+PASS: gdb.base/info-os.exp: get semaphore ID
+PASS: gdb.base/info-os.exp: get message queue key
+PASS: gdb.base/info-os.exp: get message queue ID
+PASS: gdb.base/info-os.exp: get socket port number
+PASS: gdb.base/info-os.exp: get process list
+PASS: gdb.base/info-os.exp: get process groups
+PASS: gdb.base/info-os.exp: get threads
+PASS: gdb.base/info-os.exp: get threads
+PASS: gdb.base/info-os.exp: get file descriptors
+PASS: gdb.base/info-os.exp: get internet-domain sockets
+PASS: gdb.base/info-os.exp: get shared-memory regions
+PASS: gdb.base/info-os.exp: get semaphores
+PASS: gdb.base/info-os.exp: get message queues
+PASS: gdb.base/info-os.exp: continue
+Running ./gdb.base/info-proc.exp ...
+PASS: gdb.base/info-proc.exp: help info proc
+PASS: gdb.base/info-proc.exp: info proc without a process
+PASS: gdb.base/info-proc.exp: info proc with process
+PASS: gdb.base/info-proc.exp: info proc mapping
+PASS: gdb.base/info-proc.exp: save a core file
+PASS: gdb.base/info-proc.exp: core break.gcore
+PASS: gdb.base/info-proc.exp: info proc mapping with core file
+Running ./gdb.base/info-target.exp ...
+PASS: gdb.base/info-target.exp: info target
+Running ./gdb.base/interact.exp ...
+PASS: gdb.base/interact.exp: set interactive-mode auto
+PASS: gdb.base/interact.exp: source script with interactive-mode auto
+PASS: gdb.base/interact.exp: sanity check with interactive-mode auto
+PASS: gdb.base/interact.exp: show interactive-mode (auto)
+PASS: gdb.base/interact.exp: set interactive-mode on
+PASS: gdb.base/interact.exp: source script with interactive-mode on
+PASS: gdb.base/interact.exp: sanity check with interactive-mode on
+PASS: gdb.base/interact.exp: show interactive-mode (on)
+PASS: gdb.base/interact.exp: set interactive-mode off
+PASS: gdb.base/interact.exp: source script with interactive-mode off
+PASS: gdb.base/interact.exp: sanity check with interactive-mode off
+PASS: gdb.base/interact.exp: show interactive-mode (off)
+Running ./gdb.base/interp.exp ...
+PASS: gdb.base/interp.exp: interpreter-exec mi "-var-update *"
+PASS: gdb.base/interp.exp: interpreter-exec console "show version"
+PASS: gdb.base/interp.exp: interpreter-exec mi "-var-update *"
+PASS: gdb.base/interp.exp: interpreter-exec mi "-stack-info-frame"
+PASS: gdb.base/interp.exp: interpreter-exec mi1 "-break-insert main"
+PASS: gdb.base/interp.exp: interpreter-exec mi2 "-break-insert main"
+PASS: gdb.base/interp.exp: interpreter-exec mi3 "-break-insert main"
+PASS: gdb.base/interp.exp: can list sources
+Running ./gdb.base/interrupt.exp ...
+Running ./gdb.base/jit.exp ...
+PASS: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 0
+PASS: gdb.base/jit.exp: one_jit_test-1: set var argc = 2
+FAIL: gdb.base/jit.exp: one_jit_test-1: set var libname = "SHLIBDIR/jit-solib.so"
+FAIL: gdb.base/jit.exp: one_jit_test-1: set var count = 1
+FAIL: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 1
+FAIL: gdb.base/jit.exp: one_jit_test-1: info function jit_function
+FAIL: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 2
+PASS: gdb.base/jit.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 0
+PASS: gdb.base/jit.exp: one_jit_test-2: set var argc = 2
+FAIL: gdb.base/jit.exp: one_jit_test-2: set var libname = "SHLIBDIR/jit-solib.so"
+FAIL: gdb.base/jit.exp: one_jit_test-2: set var count = 2
+FAIL: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 1
+FAIL: gdb.base/jit.exp: one_jit_test-2: info function jit_function
+FAIL: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 2
+PASS: gdb.base/jit.exp: one_jit_test-2: info function jit_function
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 0
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: set var argc = 2
+FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: set var libname = "SHLIBDIR/jit-solib.so"
+FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: set var count = 1
+FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 1
+FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: info function jit_function
+FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 2
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: info function jit_function
+Running ./gdb.base/jit-simple.exp ...
+PASS: gdb.base/jit-simple.exp: blah 1
+PASS: gdb.base/jit-simple.exp: recompile jit-simple.c
+PASS: gdb.base/jit-simple.exp: blah 1
+Running ./gdb.base/jit-so.exp ...
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here before-dlopen
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: set var jit_libname = "jit-main.so"
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here after-dlopen
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: setting breakpoint at jit-main.c:131
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 0
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: set var argc = 2
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: set var libname = "SHLIBDIR/jit-solib.so"
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: set var count = 1
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: setting breakpoint at jit-main.c:194
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 1
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: info function jit_function
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: setting breakpoint at jit-main.c:219
+FAIL: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 2
+PASS: gdb.base/jit-so.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here before-dlopen
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: set var jit_libname = "jit-main.so"
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here after-dlopen
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: setting breakpoint at jit-main.c:131
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 0
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: set var argc = 2
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: set var libname = "SHLIBDIR/jit-solib.so"
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: set var count = 2
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: setting breakpoint at jit-main.c:194
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 1
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: info function jit_function
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: setting breakpoint at jit-main.c:219
+FAIL: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 2
+PASS: gdb.base/jit-so.exp: one_jit_test-2: info function jit_function
+Running ./gdb.base/jump.exp ...
+PASS: gdb.base/jump.exp: break before jump to non-call
+PASS: gdb.base/jump.exp: jump to non-call
+PASS: gdb.base/jump.exp: break before jump to call
+PASS: gdb.base/jump.exp: jump to call
+PASS: gdb.base/jump.exp: disable breakpoint on call
+PASS: gdb.base/jump.exp: jump to call with disabled breakpoint
+PASS: gdb.base/jump.exp: jump without argument disallowed
+PASS: gdb.base/jump.exp: jump with trailing argument junk
+PASS: gdb.base/jump.exp: aborted jump out of current function
+PASS: gdb.base/jump.exp: jump out of current function
+Running ./gdb.base/kill-after-signal.exp ...
+UNTESTED: gdb.base/kill-after-signal.exp: kill-after-signal.exp
+Running ./gdb.base/label.exp ...
+Running ./gdb.base/langs.exp ...
+PASS: gdb.base/langs.exp: break on nonexistent function in langs.exp
+PASS: gdb.base/langs.exp: show language at csub in langs.exp
+PASS: gdb.base/langs.exp: backtrace in langs.exp
+PASS: gdb.base/langs.exp: up to foo in langs.exp
+PASS: gdb.base/langs.exp: show language at foo in langs.exp
+PASS: gdb.base/langs.exp: up to cppsub_ in langs.exp
+PASS: gdb.base/langs.exp: show language at cppsub_ in langs.exp
+PASS: gdb.base/langs.exp: up to fsub in langs.exp
+PASS: gdb.base/langs.exp: show language at fsub in langs.exp
+PASS: gdb.base/langs.exp: up to langs0__2do in langs.exp
+PASS: gdb.base/langs.exp: show language at langs0__2do in langs.exp
+PASS: gdb.base/langs.exp: up to main in langs.exp
+PASS: gdb.base/langs.exp: show language at main in langs.exp
+FAIL: gdb.base/langs.exp: setting breakpoint at exit
+PASS: gdb.base/langs.exp: set lang to minimal
+PASS: gdb.base/langs.exp: print parameter value
+Running ./gdb.base/ldbl_e308.exp ...
+PASS: gdb.base/ldbl_e308.exp: set variable ldbl_308 = 1.6e+308l
+PASS: gdb.base/ldbl_e308.exp: print ldbl_308
+Running ./gdb.base/lineinc.exp ...
+PASS: gdb.base/lineinc.exp: tolerate macro info with multiple #inclusions per line
+Running ./gdb.base/linespecs.exp ...
+PASS: gdb.base/linespecs.exp: list c:/foo/bar/baz.c:1
+PASS: gdb.base/linespecs.exp: list c:/foo/bar/baz.c
+PASS: gdb.base/linespecs.exp: list fooc:/foo/bar/baz.c:1
+PASS: gdb.base/linespecs.exp: list fooc:/foo/bar/baz.c
+Running ./gdb.base/list.exp ...
+PASS: gdb.base/list.exp: set width 0
+PASS: gdb.base/list.exp: show default list size
+PASS: gdb.base/list.exp: list default lines around main
+PASS: gdb.base/list.exp: setting listsize to 1 #1
+PASS: gdb.base/list.exp: show listsize 1 #1
+PASS: gdb.base/list.exp: list line 1 with listsize 1
+PASS: gdb.base/list.exp: list line 2 with listsize 1
+PASS: gdb.base/list.exp: setting listsize to 2 #2
+PASS: gdb.base/list.exp: show listsize 2 #2
+PASS: gdb.base/list.exp: list line 1 with listsize 2
+PASS: gdb.base/list.exp: list line 2 with listsize 2
+PASS: gdb.base/list.exp: list line 3 with listsize 2
+PASS: gdb.base/list.exp: setting listsize to 3 #3
+PASS: gdb.base/list.exp: show listsize 3 #3
+PASS: gdb.base/list.exp: list line 1 with listsize 3
+PASS: gdb.base/list.exp: list line 2 with listsize 3
+PASS: gdb.base/list.exp: list line 3 with listsize 3
+PASS: gdb.base/list.exp: setting listsize to 4 #4
+PASS: gdb.base/list.exp: show listsize 4 #4
+PASS: gdb.base/list.exp: list line 1 with listsize 4
+PASS: gdb.base/list.exp: list line 2 with listsize 4
+PASS: gdb.base/list.exp: list line 3 with listsize 4
+PASS: gdb.base/list.exp: list line 4 with listsize 4
+PASS: gdb.base/list.exp: setting listsize to 100 #5
+PASS: gdb.base/list.exp: show listsize 100 #5
+PASS: gdb.base/list.exp: list line 1 with listsize 100
+PASS: gdb.base/list.exp: list line 10 with listsize 100
+PASS: gdb.base/list.exp: setting listsize to 0 #6
+PASS: gdb.base/list.exp: show listsize unlimited #6
+PASS: gdb.base/list.exp: list line 1 with unlimited listsize
+PASS: gdb.base/list.exp: setting listsize to 10 #7
+PASS: gdb.base/list.exp: show listsize 10 #7
+PASS: gdb.base/list.exp: list line 1 in include file
+PASS: gdb.base/list.exp: list message for lines past EOF
+PASS: gdb.base/list.exp: list filename:number (4 tests)
+PASS: gdb.base/list.exp: list function in source file 1
+PASS: gdb.base/list.exp: list function in source file 2
+PASS: gdb.base/list.exp: list function in include file
+PASS: gdb.base/list.exp: successive list commands to page forward (4 tests)
+PASS: gdb.base/list.exp: 4 successive "list -" commands to page backwards
+PASS: gdb.base/list.exp: repeat list commands to page forward using 'return' (4 tests)
+PASS: gdb.base/list.exp: list range; filename:line1,filename:line2
+PASS: gdb.base/list.exp: list range; line1,line2
+PASS: gdb.base/list.exp: list range; upper bound past EOF
+PASS: gdb.base/list.exp: list range; both bounds past EOF
+PASS: gdb.base/list.exp: list range, must be same files
+PASS: gdb.base/list.exp: list filename:function (5 tests)
+PASS: gdb.base/list.exp: list 'list0.c:main'
+XFAIL: gdb.base/list.exp: list filename:function; wrong filename rejected
+PASS: gdb.base/list.exp: list filename:function; nonexistant file
+PASS: gdb.base/list.exp: list filename:function; nonexistant function
+PASS: gdb.base/list.exp: set listsize 4
+PASS: gdb.base/list.exp: list long_line
+PASS: gdb.base/list.exp: search 4321
+PASS: gdb.base/list.exp: search 6789
+PASS: gdb.base/list.exp: search extremely long line (> 5000 chars)
+PASS: gdb.base/list.exp: set listsize 2
+PASS: gdb.base/list.exp: list 1
+PASS: gdb.base/list.exp: list ,5
+Running ./gdb.base/logical.exp ...
+PASS: gdb.base/logical.exp: evaluate x; variables x = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x; variables x = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !!x; variables x = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x; variables x = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x; variables x = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !!x; variables x = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 1, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 1, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 1, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x > y || w == z; variables x = 1, y = 2, w = 3, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate x >= y && w != z; variables x = 1, y = 2, w = 3, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate ! x > y || w + z; variables x = 1, y = 2, w = 3, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y || w == z; variables x = 1, y = 2, w = 1, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y && w != z; variables x = 1, y = 2, w = 1, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate ! x > y || w + z; variables x = 1, y = 2, w = 1, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y || w == z; variables x = 2, y = 2, w = 2, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y && w != z; variables x = 2, y = 2, w = 2, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate ! x > y || w + z; variables x = 2, y = 2, w = 2, z = 3; expecting 1
+Running ./gdb.base/longest-types.exp ...
+UNTESTED: gdb.base/longest-types.exp: longest-types.exp
+Running ./gdb.base/longjmp.exp ...
+PASS: gdb.base/longjmp.exp: breakpoint at pattern 1 start
+PASS: gdb.base/longjmp.exp: continue to breakpoint at pattern 1 start
+PASS: gdb.base/longjmp.exp: breakpoint at miss_step_1
+PASS: gdb.base/longjmp.exp: next over setjmp (1)
+PASS: gdb.base/longjmp.exp: next to longjmp (1)
+FAIL: gdb.base/longjmp.exp: next over longjmp(1)
+PASS: gdb.base/longjmp.exp: breakpoint at pattern 2 start
+PASS: gdb.base/longjmp.exp: continue to breakpoint at pattern 2 start
+PASS: gdb.base/longjmp.exp: breakpoint at miss_step_2
+PASS: gdb.base/longjmp.exp: next over setjmp (2)
+FAIL: gdb.base/longjmp.exp: next over call_longjmp (2)
+PASS: gdb.base/longjmp.exp: breakpoint at pattern 3 start
+PASS: gdb.base/longjmp.exp: continue to breakpoint at pattern 3 start
+PASS: gdb.base/longjmp.exp: next over patt3
+Running ./gdb.base/long_long.exp ...
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (char)" (1)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (short)" (2)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (int)" (4)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (long)" (4)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (long long)" (8)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (void *)" (4)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (double)" (8)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (long double)" (8)
+PASS: gdb.base/long_long.exp: continue to breakpoint: Stop here and look
+PASS: gdb.base/long_long.exp: hex print p/x
+PASS: gdb.base/long_long.exp: decimal print p/x
+PASS: gdb.base/long_long.exp: default print val.dec
+PASS: gdb.base/long_long.exp: default print val.bin
+PASS: gdb.base/long_long.exp: default print val.oct
+PASS: gdb.base/long_long.exp: default print hex
+PASS: gdb.base/long_long.exp: decimal print p/u
+PASS: gdb.base/long_long.exp: binary print
+PASS: gdb.base/long_long.exp: octal print
+PASS: gdb.base/long_long.exp: print +ve long long
+PASS: gdb.base/long_long.exp: decimal print p/d
+PASS: gdb.base/long_long.exp: p/d val.oct
+PASS: gdb.base/long_long.exp: p/u val.oct
+PASS: gdb.base/long_long.exp: p/o val.oct
+PASS: gdb.base/long_long.exp: p/t val.oct
+PASS: gdb.base/long_long.exp: p/a val.oct
+PASS: gdb.base/long_long.exp: p/c val.oct
+PASS: gdb.base/long_long.exp: p/f val.oct
+PASS: gdb.base/long_long.exp: p/x *(char *)c
+PASS: gdb.base/long_long.exp: p/d *(char *)c
+PASS: gdb.base/long_long.exp: p/u *(char *)c
+PASS: gdb.base/long_long.exp: p/o *(char *)c
+PASS: gdb.base/long_long.exp: p/t *(char *)c
+PASS: gdb.base/long_long.exp: p/a *(char *)c
+PASS: gdb.base/long_long.exp: p/f *(char *)c
+PASS: gdb.base/long_long.exp: p/c *(char *)c
+PASS: gdb.base/long_long.exp: p/x *(short *)s
+PASS: gdb.base/long_long.exp: p/d *(short *)s
+PASS: gdb.base/long_long.exp: p/u *(short *)s
+PASS: gdb.base/long_long.exp: p/o *(short *)s
+PASS: gdb.base/long_long.exp: p/t *(short *)s
+PASS: gdb.base/long_long.exp: p/a *(short *)s
+PASS: gdb.base/long_long.exp: p/f *(short *)s
+PASS: gdb.base/long_long.exp: p/c *(short *)s
+PASS: gdb.base/long_long.exp: p/x *(int *)i
+PASS: gdb.base/long_long.exp: p/d *(int *)i
+PASS: gdb.base/long_long.exp: p/u *(int *)i
+PASS: gdb.base/long_long.exp: p/o *(int *)i
+PASS: gdb.base/long_long.exp: p/t *(int *)i
+PASS: gdb.base/long_long.exp: p/a *(int *)i
+PASS: gdb.base/long_long.exp: p/f *(int *)i
+PASS: gdb.base/long_long.exp: p/c *(int *)i
+PASS: gdb.base/long_long.exp: p/x *(long *)l
+PASS: gdb.base/long_long.exp: p/d *(long *)l
+PASS: gdb.base/long_long.exp: p/u *(long *)l
+PASS: gdb.base/long_long.exp: p/o *(long *)l
+PASS: gdb.base/long_long.exp: p/t *(long *)l
+PASS: gdb.base/long_long.exp: p/a *(long *)l
+PASS: gdb.base/long_long.exp: p/f *(long *)l
+PASS: gdb.base/long_long.exp: p/c *(long *)l
+PASS: gdb.base/long_long.exp: p/x *(long long *)ll
+PASS: gdb.base/long_long.exp: p/d *(long long *)ll
+PASS: gdb.base/long_long.exp: p/u *(long long *)ll
+PASS: gdb.base/long_long.exp: p/o *(long long *)ll
+PASS: gdb.base/long_long.exp: p/t *(long long *)ll
+PASS: gdb.base/long_long.exp: p/a *(long long *)ll
+PASS: gdb.base/long_long.exp: p/f *(long long *)ll
+PASS: gdb.base/long_long.exp: p/c *(long long *)ll
+PASS: gdb.base/long_long.exp: set examine size to w
+PASS: gdb.base/long_long.exp: x/x w
+PASS: gdb.base/long_long.exp: x/d w
+PASS: gdb.base/long_long.exp: x/u w
+PASS: gdb.base/long_long.exp: x/o w
+PASS: gdb.base/long_long.exp: x/t w
+PASS: gdb.base/long_long.exp: x/a
+PASS: gdb.base/long_long.exp: x/c b
+PASS: gdb.base/long_long.exp: x/f &val.oct
+PASS: gdb.base/long_long.exp: set examine size to g
+PASS: gdb.base/long_long.exp: x/2x g
+PASS: gdb.base/long_long.exp: x/2d g
+PASS: gdb.base/long_long.exp: x/2u g
+PASS: gdb.base/long_long.exp: x/2o g
+PASS: gdb.base/long_long.exp: x/2t g
+PASS: gdb.base/long_long.exp: x/2a
+PASS: gdb.base/long_long.exp: x/2c b
+PASS: gdb.base/long_long.exp: x/2f &val.oct
+PASS: gdb.base/long_long.exp: x/2bx b
+PASS: gdb.base/long_long.exp: x/2bd b
+PASS: gdb.base/long_long.exp: x/2bu b
+PASS: gdb.base/long_long.exp: x/2bo b
+PASS: gdb.base/long_long.exp: x/2bt b
+PASS: gdb.base/long_long.exp: x/2ba b
+PASS: gdb.base/long_long.exp: x/2bc b
+PASS: gdb.base/long_long.exp: x/2bf b
+PASS: gdb.base/long_long.exp: x/2hx h
+PASS: gdb.base/long_long.exp: x/2hd h
+PASS: gdb.base/long_long.exp: x/2hu h
+PASS: gdb.base/long_long.exp: x/2ho h
+PASS: gdb.base/long_long.exp: x/2ht h
+PASS: gdb.base/long_long.exp: x/2ha h
+PASS: gdb.base/long_long.exp: x/2hc h
+PASS: gdb.base/long_long.exp: x/2hf h
+PASS: gdb.base/long_long.exp: x/2wx w
+PASS: gdb.base/long_long.exp: x/2wd w
+PASS: gdb.base/long_long.exp: x/2wu w
+PASS: gdb.base/long_long.exp: x/2wo w
+PASS: gdb.base/long_long.exp: x/2wt w
+PASS: gdb.base/long_long.exp: x/2wa w
+PASS: gdb.base/long_long.exp: x/2wc w
+PASS: gdb.base/long_long.exp: x/2wf w
+PASS: gdb.base/long_long.exp: x/2gx g
+PASS: gdb.base/long_long.exp: x/2gd g
+PASS: gdb.base/long_long.exp: x/2gu g
+PASS: gdb.base/long_long.exp: x/2go g
+PASS: gdb.base/long_long.exp: x/2gt g
+PASS: gdb.base/long_long.exp: x/2ga g
+PASS: gdb.base/long_long.exp: x/2gc g
+PASS: gdb.base/long_long.exp: x/2gf g
+Running ./gdb.base/macscp.exp ...
+PASS: gdb.base/macscp.exp: list main for support check
+UNSUPPORTED: gdb.base/macscp.exp: Skipping test because debug information does not include macro information.
+Running ./gdb.base/maint.exp ...
+PASS: gdb.base/maint.exp: set height 0
+PASS: gdb.base/maint.exp: maint print registers
+PASS: gdb.base/maint.exp: maint check-symtabs
+PASS: gdb.base/maint.exp: maint space
+PASS: gdb.base/maint.exp: maint space 1
+PASS: gdb.base/maint.exp: maint time
+PASS: gdb.base/maint.exp: maint time 1
+PASS: gdb.base/maint.exp: maint time 0
+PASS: gdb.base/maint.exp: maint space 0
+PASS: gdb.base/maint.exp: maint demangle
+PASS: gdb.base/maint.exp: maint demangle main
+PASS: gdb.base/maint.exp: maint print statistics
+PASS: gdb.base/maint.exp: maint print dummy-frames
+PASS: gdb.base/maint.exp: maint print objfiles: header
+PASS: gdb.base/maint.exp: maint print objfiles: psymtabs
+PASS: gdb.base/maint.exp: maint print objfiles: symtabs
+PASS: gdb.base/maint.exp: maint print psymbols w/o args
+PASS: gdb.base/maint.exp: maint print psymbols 1
+PASS: gdb.base/maint.exp: shell rm -f psymbols_output
+PASS: gdb.base/maint.exp: maint print msymbols w/o args
+PASS: gdb.base/maint.exp: maint print msymbols
+PASS: gdb.base/maint.exp: shell rm -f msymbols_output
+PASS: gdb.base/maint.exp: cd to objdir
+PASS: gdb.base/maint.exp: maint print msymbols
+PASS: gdb.base/maint.exp: shell rm -f msymbols_output2
+PASS: gdb.base/maint.exp: cd to mydir
+PASS: gdb.base/maint.exp: maint print symbols w/o args
+PASS: gdb.base/maint.exp: maint print symbols
+PASS: gdb.base/maint.exp: shell rm -f symbols_output
+PASS: gdb.base/maint.exp: maint print type
+PASS: gdb.base/maint.exp: maint info sections
+PASS: gdb.base/maint.exp: maint info sections .text
+PASS: gdb.base/maint.exp: maint info sections CODE
+PASS: gdb.base/maint.exp: maint info sections DATA
+FAIL: gdb.base/maint.exp: maint info breakpoints
+PASS: gdb.base/maint.exp: maint print w/o args
+PASS: gdb.base/maint.exp: maint info w/o args
+PASS: gdb.base/maint.exp: maint w/o args
+PASS: gdb.base/maint.exp: help maint
+PASS: gdb.base/maint.exp: help maint check-symtabs
+PASS: gdb.base/maint.exp: help maint space
+PASS: gdb.base/maint.exp: help maint time
+PASS: gdb.base/maint.exp: help maint demangle
+PASS: gdb.base/maint.exp: help maint dump-me
+PASS: gdb.base/maint.exp: help maint internal-error
+PASS: gdb.base/maint.exp: help maint internal-warning
+PASS: gdb.base/maint.exp: help maint print statistics
+PASS: gdb.base/maint.exp: help maint print dummy-frames
+PASS: gdb.base/maint.exp: help maint print objfiles
+PASS: gdb.base/maint.exp: help maint print psymbols
+PASS: gdb.base/maint.exp: help maint print msymbols
+PASS: gdb.base/maint.exp: help maint print symbols
+PASS: gdb.base/maint.exp: help maint print type
+PASS: gdb.base/maint.exp: help maint info sections
+PASS: gdb.base/maint.exp: help maint info breakpoints
+PASS: gdb.base/maint.exp: help maint info
+PASS: gdb.base/maint.exp: help maint print
+PASS: gdb.base/maint.exp: help maint
+PASS: gdb.base/maint.exp: maint dump-me
+PASS: gdb.base/maint.exp: maint internal-error
+PASS: gdb.base/maint.exp: internal-error resync
+Running ./gdb.base/memattr.exp ...
+PASS: gdb.base/memattr.exp: create mem region 1
+PASS: gdb.base/memattr.exp: create mem region 2
+PASS: gdb.base/memattr.exp: create mem region 3
+PASS: gdb.base/memattr.exp: create mem region 4
+PASS: gdb.base/memattr.exp: create mem region 5
+PASS: gdb.base/memattr.exp: info mem (1)
+PASS: gdb.base/memattr.exp: mem1 cannot be read
+PASS: gdb.base/memattr.exp: mem1 can be written
+PASS: gdb.base/memattr.exp: mem2 cannot be written
+PASS: gdb.base/memattr.exp: mem2 can be read
+PASS: gdb.base/memattr.exp: disable mem 1
+PASS: gdb.base/memattr.exp: mem 1 was disabled
+PASS: gdb.base/memattr.exp: enable mem 1
+PASS: gdb.base/memattr.exp: mem 1 was enabled
+PASS: gdb.base/memattr.exp: disable mem 2 4
+PASS: gdb.base/memattr.exp: mem 2 and 4 were disabled
+PASS: gdb.base/memattr.exp: enable mem 2-4
+PASS: gdb.base/memattr.exp: mem 2-4 were enabled
+PASS: gdb.base/memattr.exp: disable mem
+PASS: gdb.base/memattr.exp: mem 1 to 5 were disabled
+PASS: gdb.base/memattr.exp: enable mem
+PASS: gdb.base/memattr.exp: mem 1 to 5 were enabled
+PASS: gdb.base/memattr.exp: disable non-existant regions
+PASS: gdb.base/memattr.exp: delete mem 1
+PASS: gdb.base/memattr.exp: mem 1 was deleted
+PASS: gdb.base/memattr.exp: delete mem 2 4
+PASS: gdb.base/memattr.exp: mem 2 and 4 were deleted
+PASS: gdb.base/memattr.exp: delete mem 2-4
+PASS: gdb.base/memattr.exp: mem 2-4 were deleted
+PASS: gdb.base/memattr.exp: delete non-existant region
+PASS: gdb.base/memattr.exp: mem 0x30 0x60 ro
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x40: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x30 0x40: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x40 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x50 0x60: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x50 0x70: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x30 0x60: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x70: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x30 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x40 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x30: no-overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x60 0x70: no-overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x80 0x0: no-overlap
+PASS: gdb.base/memattr.exp: mem 0x30 0x0 ro
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x20 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x30 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x40 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x20 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x30 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x40 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x20 0x30: no-overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x00 0x10: no-overlap
+Running ./gdb.base/mips_pro.exp ...
+PASS: gdb.base/mips_pro.exp: backtrace
+Running ./gdb.base/miscexprs.exp ...
+PASS: gdb.base/miscexprs.exp: continue to marker1
+PASS: gdb.base/miscexprs.exp: up from marker1
+PASS: gdb.base/miscexprs.exp: print value of &ibig.i[0]
+PASS: gdb.base/miscexprs.exp: print value of &cbig.c[0]
+PASS: gdb.base/miscexprs.exp: print value of &fbig.f[0]
+PASS: gdb.base/miscexprs.exp: print value of &dbig.d[0]
+PASS: gdb.base/miscexprs.exp: print value of &sbig.s[0]
+PASS: gdb.base/miscexprs.exp: print value of &lbig.l[0]
+PASS: gdb.base/miscexprs.exp: print value of ibig.i[100] | 1
+PASS: gdb.base/miscexprs.exp: print value of sbig.s[90] & 127
+PASS: gdb.base/miscexprs.exp: print value of !ibig.i[100]
+PASS: gdb.base/miscexprs.exp: print value of !sbig.s[90]
+PASS: gdb.base/miscexprs.exp: print value of !ibig.i[100]
+PASS: gdb.base/miscexprs.exp: print value of !ibig.i[100]
+PASS: gdb.base/miscexprs.exp: print value of !sbig.s[90] * 10
+PASS: gdb.base/miscexprs.exp: print value of ibig.i[100] * sbig.s[90]
+PASS: gdb.base/miscexprs.exp: print value of fbig.f[100] * dbig.d[202]
+PASS: gdb.base/miscexprs.exp: print value of !(sbig.s[90] * 2)
+PASS: gdb.base/miscexprs.exp: print value of sizeof sbig
+PASS: gdb.base/miscexprs.exp: print value of sizeof cbig
+PASS: gdb.base/miscexprs.exp: print value of sizeof lbig / sizeof long
+PASS: gdb.base/miscexprs.exp: print value of ibig.i[100] << 2
+PASS: gdb.base/miscexprs.exp: print value of sbig.s[90] >> 4
+PASS: gdb.base/miscexprs.exp: print value of lbig.l[333] >> 6
+Running ./gdb.base/morestack.exp ...
+gdb compile failed, cc1: error: '-fsplit-stack' is not supported by this compiler configuration
+UNTESTED: gdb.base/morestack.exp: morestack.exp
+Running ./gdb.base/moribund-step.exp ...
+PASS: gdb.base/moribund-step.exp: set non-stop on
+Running ./gdb.base/multi-forks.exp ...
+Running ./gdb.base/nextoverexit.exp ...
+PASS: gdb.base/nextoverexit.exp: next over exit
+Running ./gdb.base/nodebug.exp ...
+PASS: gdb.base/nodebug.exp: p top
+PASS: gdb.base/nodebug.exp: whatis top
+PASS: gdb.base/nodebug.exp: ptype top
+PASS: gdb.base/nodebug.exp: p middle
+PASS: gdb.base/nodebug.exp: whatis middle
+PASS: gdb.base/nodebug.exp: ptype middle
+PASS: gdb.base/nodebug.exp: p dataglobal
+PASS: gdb.base/nodebug.exp: whatis dataglobal
+PASS: gdb.base/nodebug.exp: ptype dataglobal
+PASS: gdb.base/nodebug.exp: p datalocal
+PASS: gdb.base/nodebug.exp: whatis datalocal
+PASS: gdb.base/nodebug.exp: ptype datalocal
+PASS: gdb.base/nodebug.exp: p bssglobal
+PASS: gdb.base/nodebug.exp: whatis bssglobal
+PASS: gdb.base/nodebug.exp: ptype bssglobal
+PASS: gdb.base/nodebug.exp: p bsslocal
+PASS: gdb.base/nodebug.exp: whatis bsslocal
+PASS: gdb.base/nodebug.exp: ptype bsslocal
+PASS: gdb.base/nodebug.exp: backtrace from inner in nodebug.exp
+FAIL: gdb.base/nodebug.exp: p/c array_index("abcdef",2)
+PASS: gdb.base/nodebug.exp: backtrace from middle in nodebug.exp
+Running ./gdb.base/nofield.exp ...
+PASS: gdb.base/nofield.exp: ptype struct not_empty
+PASS: gdb.base/nofield.exp: ptype struct empty
+PASS: gdb.base/nofield.exp: ptype union empty_union
+Running ./gdb.base/nostdlib.exp ...
+UNTESTED: gdb.base/nostdlib.exp: nostdlib.exp
+Running ./gdb.base/opaque.exp ...
+PASS: gdb.base/opaque.exp: whatis on opaque struct pointer (statically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct pointer (statically)
+PASS: gdb.base/opaque.exp: whatis on opaque struct instance (statically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct instance (statically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct tagname (statically)
+PASS: gdb.base/opaque.exp: whatis on opaque struct pointer (dynamically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct pointer (dynamically) 1
+PASS: gdb.base/opaque.exp: whatis on opaque struct instance (dynamically) 1
+PASS: gdb.base/opaque.exp: ptype on opaque struct instance (dynamically) 1
+PASS: gdb.base/opaque.exp: ptype on opaque struct tagname (dynamically) 1
+PASS: gdb.base/opaque.exp: whatis on opaque struct pointer (dynamically) 1
+PASS: gdb.base/opaque.exp: ptype on opaque struct pointer (dynamically) 2
+PASS: gdb.base/opaque.exp: whatis on opaque struct instance (dynamically) 2
+PASS: gdb.base/opaque.exp: ptype on opaque struct instance (dynamically) 2
+PASS: gdb.base/opaque.exp: ptype on opaque struct tagname (dynamically) 2
+Running ./gdb.base/overlays.exp ...
+Running ./gdb.base/page.exp ...
+PASS: gdb.base/page.exp: set pagination off
+PASS: gdb.base/page.exp: pagination is off
+PASS: gdb.base/page.exp: unpaged help
+PASS: gdb.base/page.exp: set pagination on
+PASS: gdb.base/page.exp: pagination is on
+PASS: gdb.base/page.exp: set height 10
+PASS: gdb.base/page.exp: paged help
+PASS: gdb.base/page.exp: q
+Running ./gdb.base/pc-fp.exp ...
+PASS: gdb.base/pc-fp.exp: get hexadecimal valueof "$pc"
+PASS: gdb.base/pc-fp.exp: get hexadecimal valueof "$fp"
+PASS: gdb.base/pc-fp.exp: display/i $pc
+PASS: gdb.base/pc-fp.exp: display/w $fp
+PASS: gdb.base/pc-fp.exp: info register $pc
+PASS: gdb.base/pc-fp.exp: info register $fp
+PASS: gdb.base/pc-fp.exp: info register pc fp
+Running ./gdb.base/pending.exp ...
+PASS: gdb.base/pending.exp: set pending breakpoint (without symbols)
+PASS: gdb.base/pending.exp: complete condition
+PASS: gdb.base/pending.exp: single pending breakpoint info (without symbols)
+FAIL: gdb.base/pending.exp: run to resolved breakpoint 1 (without symbols) (the program exited)
+PASS: gdb.base/pending.exp: set pending breakpoint
+PASS: gdb.base/pending.exp: single pending breakpoint info
+PASS: gdb.base/pending.exp: breakpoint function
+PASS: gdb.base/pending.exp: pending plus real breakpoint info
+PASS: gdb.base/pending.exp: Don't set pending breakpoint
+PASS: gdb.base/pending.exp: condition 1 k == 1
+PASS: gdb.base/pending.exp: pending plus condition
+PASS: gdb.base/pending.exp: disable 1
+PASS: gdb.base/pending.exp: pending disabled
+PASS: gdb.base/pending.exp: Set commands for pending breakpoint
+PASS: gdb.base/pending.exp: pending disabled plus commands
+PASS: gdb.base/pending.exp: Set pending breakpoint 2
+PASS: gdb.base/pending.exp: multiple pending breakpoints
+PASS: gdb.base/pending.exp: Set pending breakpoint 3
+PASS: gdb.base/pending.exp: set ignore count on pending breakpoint 3
+PASS: gdb.base/pending.exp: multiple pending breakpoints 2
+PASS: gdb.base/pending.exp: running to main
+PASS: gdb.base/pending.exp: re-enabling pending breakpoint that can resolve instantly
+FAIL: gdb.base/pending.exp: continue to resolved breakpoint 2 (the program exited)
+FAIL: gdb.base/pending.exp: continue to resolved breakpoint 1 (the program is no longer running)
+PASS: gdb.base/pending.exp: Disable other breakpoints
+PASS: gdb.base/pending.exp: Disable other breakpoints
+FAIL: gdb.base/pending.exp: continue to resolved breakpoint 3 (the program is no longer running)
+PASS: gdb.base/pending.exp: set imaginary pending breakpoint
+PASS: gdb.base/pending.exp: rerun to main
+PASS: gdb.base/pending.exp: verify pending breakpoint after restart
+Running ./gdb.base/permissions.exp ...
+PASS: gdb.base/permissions.exp: show may-write-registers
+PASS: gdb.base/permissions.exp: show may-write-memory
+PASS: gdb.base/permissions.exp: show may-insert-breakpoints
+PASS: gdb.base/permissions.exp: show may-insert-tracepoints
+PASS: gdb.base/permissions.exp: show may-insert-fast-tracepoints
+PASS: gdb.base/permissions.exp: show may-interrupt
+PASS: gdb.base/permissions.exp: enable observer mode
+PASS: gdb.base/permissions.exp: show may-write-memory
+PASS: gdb.base/permissions.exp: show may-write-registers
+PASS: gdb.base/permissions.exp: show may-insert-breakpoints
+PASS: gdb.base/permissions.exp: show may-insert-tracepoints
+PASS: gdb.base/permissions.exp: show may-insert-fast-tracepoints
+PASS: gdb.base/permissions.exp: show may-interrupt
+PASS: gdb.base/permissions.exp: disable observer mode
+PASS: gdb.base/permissions.exp: set non-stop off
+PASS: gdb.base/permissions.exp: set a global
+PASS: gdb.base/permissions.exp: print x
+PASS: gdb.base/permissions.exp: set may-write-memory off
+PASS: gdb.base/permissions.exp: try to set a global
+PASS: gdb.base/permissions.exp: print x
+Running ./gdb.base/pie-execl.exp ...
+Running ./gdb.base/pointers.exp ...
+FAIL: gdb.base/pointers.exp: continuing after dummy()
+PASS: gdb.base/pointers.exp: set pointer to beginning of array
+PASS: gdb.base/pointers.exp: set pointer to end of array
+FAIL: gdb.base/pointers.exp: print object pointed to
+FAIL: gdb.base/pointers.exp: print object pointed to #2
+PASS: gdb.base/pointers.exp: pointer1==pointer2
+PASS: gdb.base/pointers.exp: pointer1!=pointer2
+PASS: gdb.base/pointers.exp: pointer1<=pointer2
+PASS: gdb.base/pointers.exp: pointer1>=pointer2
+PASS: gdb.base/pointers.exp: pointer1<pointer2
+PASS: gdb.base/pointers.exp: pointer1>pointer2
+PASS: gdb.base/pointers.exp: set y = *v_int_pointer++
+FAIL: gdb.base/pointers.exp: pointer assignment
+FAIL: gdb.base/pointers.exp: and post-increment
+PASS: gdb.base/pointers.exp: set y = *--v_int_pointer2
+FAIL: gdb.base/pointers.exp: pointer assignment
+FAIL: gdb.base/pointers.exp: and pre-decrement
+PASS: gdb.base/pointers.exp: set y =v_int_pointer-v_int_pointer2
+PASS: gdb.base/pointers.exp: pointer1-pointer2
+PASS: gdb.base/pointers.exp: set v_int_pointer=v_int_array
+FAIL: gdb.base/pointers.exp: print array element through pointer
+FAIL: gdb.base/pointers.exp: print array element through pointer #2
+PASS: gdb.base/pointers.exp: print array element through pointer #3
+PASS: gdb.base/pointers.exp: print array element through pointer #4
+PASS: gdb.base/pointers.exp: print array element through pointer #5
+PASS: gdb.base/pointers.exp: increment rptr
+PASS: gdb.base/pointers.exp: print array element through pointer #6
+PASS: gdb.base/pointers.exp: print array element through pointer #7
+PASS: gdb.base/pointers.exp: print array element through pointer #8
+PASS: gdb.base/pointers.exp: print array element w/ pointer arithmetic
+FAIL: gdb.base/pointers.exp: print through ptr to ptr
+PASS: gdb.base/pointers.exp: continue
+PASS: gdb.base/pointers.exp: up from marker1
+PASS: gdb.base/pointers.exp: print value of *pUC
+PASS: gdb.base/pointers.exp: ptype pUC
+PASS: gdb.base/pointers.exp: print value of *pS
+PASS: gdb.base/pointers.exp: ptype pS
+PASS: gdb.base/pointers.exp: print value of *pUS
+PASS: gdb.base/pointers.exp: ptype pUS
+PASS: gdb.base/pointers.exp: print value of *pI
+PASS: gdb.base/pointers.exp: ptype pI
+PASS: gdb.base/pointers.exp: print value of *pUI
+PASS: gdb.base/pointers.exp: ptype pUI
+PASS: gdb.base/pointers.exp: print value of *pL
+PASS: gdb.base/pointers.exp: ptype pL
+PASS: gdb.base/pointers.exp: print value of *pUL
+PASS: gdb.base/pointers.exp: ptype pUL
+PASS: gdb.base/pointers.exp: print value of *pF
+PASS: gdb.base/pointers.exp: ptype pF
+PASS: gdb.base/pointers.exp: print value of *pD
+PASS: gdb.base/pointers.exp: ptype pD
+PASS: gdb.base/pointers.exp: print value of ******ppppppC
+PASS: gdb.base/pointers.exp: ptype pC
+PASS: gdb.base/pointers.exp: ptype ppC
+PASS: gdb.base/pointers.exp: ptype pppC
+PASS: gdb.base/pointers.exp: ptype ppppC
+PASS: gdb.base/pointers.exp: ptype pppppC
+PASS: gdb.base/pointers.exp: ptype ppppppC
+PASS: gdb.base/pointers.exp: p instance.array_variable + 0
+Running ./gdb.base/pr10179.exp ...
+PASS: gdb.base/pr10179.exp: rbreak foo.*
+PASS: gdb.base/pr10179.exp: rbreak pr10179-a.c:foo.*
+PASS: gdb.base/pr10179.exp: rbreak pr10179-a.c : .*
+Running ./gdb.base/pr11022.exp ...
+Running ./gdb.base/prelink.exp ...
+Running ./gdb.base/printcmds.exp ...
+PASS: gdb.base/printcmds.exp: print $pc
+PASS: gdb.base/printcmds.exp: print "abc"
+PASS: gdb.base/printcmds.exp: print sizeof ("abc")
+PASS: gdb.base/printcmds.exp: ptype "abc"
+PASS: gdb.base/printcmds.exp: print $cvar = "abc"
+PASS: gdb.base/printcmds.exp: print sizeof ($cvar)
+PASS: gdb.base/printcmds.exp: print $pc (with file)
+PASS: gdb.base/printcmds.exp: set print sevenbit-strings
+PASS: gdb.base/printcmds.exp: set print address off
+PASS: gdb.base/printcmds.exp: set width 0
+PASS: gdb.base/printcmds.exp: p ctable1[120] #1
+PASS: gdb.base/printcmds.exp: p 123
+PASS: gdb.base/printcmds.exp: p -123
+PASS: gdb.base/printcmds.exp: p/d 123
+PASS: gdb.base/printcmds.exp: p 0123
+PASS: gdb.base/printcmds.exp: p 00123
+PASS: gdb.base/printcmds.exp: p -0123
+PASS: gdb.base/printcmds.exp: p/o 0123
+PASS: gdb.base/printcmds.exp: p 0x123
+PASS: gdb.base/printcmds.exp: p -0x123
+PASS: gdb.base/printcmds.exp: p 0x0123
+PASS: gdb.base/printcmds.exp: p -0x0123
+PASS: gdb.base/printcmds.exp: p 0xABCDEF
+PASS: gdb.base/printcmds.exp: p 0xabcdef
+PASS: gdb.base/printcmds.exp: p 0xAbCdEf
+PASS: gdb.base/printcmds.exp: p/x 0x123
+PASS: gdb.base/printcmds.exp: p 0b0
+PASS: gdb.base/printcmds.exp: p 0b1111
+PASS: gdb.base/printcmds.exp: p 0B1111
+PASS: gdb.base/printcmds.exp: p -0b1111
+PASS: gdb.base/printcmds.exp: reject p 0x
+PASS: gdb.base/printcmds.exp: reject p 0b
+PASS: gdb.base/printcmds.exp: p ''
+PASS: gdb.base/printcmds.exp: p '''
+PASS: gdb.base/printcmds.exp: reject p '\'
+PASS: gdb.base/printcmds.exp: reject p '\\\'
+PASS: gdb.base/printcmds.exp: reject p DEADBEEF
+PASS: gdb.base/printcmds.exp: reject p 09
+PASS: gdb.base/printcmds.exp: reject p 079
+PASS: gdb.base/printcmds.exp: reject p 0xG
+PASS: gdb.base/printcmds.exp: reject p 0xAG
+PASS: gdb.base/printcmds.exp: reject p 0b2
+PASS: gdb.base/printcmds.exp: reject p 0b12
+PASS: gdb.base/printcmds.exp: check for floating addition
+PASS: gdb.base/printcmds.exp: p 1.
+PASS: gdb.base/printcmds.exp: p 1.5
+PASS: gdb.base/printcmds.exp: p 1.f
+PASS: gdb.base/printcmds.exp: p 1.5f
+PASS: gdb.base/printcmds.exp: p 1.l
+PASS: gdb.base/printcmds.exp: p 1.5l
+PASS: gdb.base/printcmds.exp: p 0x1.1
+PASS: gdb.base/printcmds.exp: reject p 123DEADBEEF
+PASS: gdb.base/printcmds.exp: reject p 123foobar.bazfoo3
+PASS: gdb.base/printcmds.exp: reject p 123EEEEEEEEEEEEEEEEE33333k333
+PASS: gdb.base/printcmds.exp: reject p 1.1x
+PASS: gdb.base/printcmds.exp: reject p 1.1ff
+PASS: gdb.base/printcmds.exp: reject p 1.1ll
+PASS: gdb.base/printcmds.exp: p 'a'
+PASS: gdb.base/printcmds.exp: p/c 'a'
+PASS: gdb.base/printcmds.exp: p/x 'a'
+PASS: gdb.base/printcmds.exp: p/d 'a'
+PASS: gdb.base/printcmds.exp: p/t 'a'
+PASS: gdb.base/printcmds.exp: p '\141'
+PASS: gdb.base/printcmds.exp: p/x '\377'
+PASS: gdb.base/printcmds.exp: p '\''
+PASS: gdb.base/printcmds.exp: p '\\'
+PASS: gdb.base/printcmds.exp: p ctable1[0]
+PASS: gdb.base/printcmds.exp: p ctable1[1]
+PASS: gdb.base/printcmds.exp: p ctable1[2]
+PASS: gdb.base/printcmds.exp: p ctable1[3]
+PASS: gdb.base/printcmds.exp: p ctable1[4]
+PASS: gdb.base/printcmds.exp: p ctable1[5]
+PASS: gdb.base/printcmds.exp: p ctable1[6]
+PASS: gdb.base/printcmds.exp: p ctable1[7]
+PASS: gdb.base/printcmds.exp: p ctable1[8]
+PASS: gdb.base/printcmds.exp: p ctable1[9]
+PASS: gdb.base/printcmds.exp: p ctable1[10]
+PASS: gdb.base/printcmds.exp: p ctable1[11]
+PASS: gdb.base/printcmds.exp: p ctable1[12]
+PASS: gdb.base/printcmds.exp: p ctable1[13]
+PASS: gdb.base/printcmds.exp: p ctable1[14]
+PASS: gdb.base/printcmds.exp: p ctable1[15]
+PASS: gdb.base/printcmds.exp: p ctable1[16]
+PASS: gdb.base/printcmds.exp: p ctable1[17]
+PASS: gdb.base/printcmds.exp: p ctable1[18]
+PASS: gdb.base/printcmds.exp: p ctable1[19]
+PASS: gdb.base/printcmds.exp: p ctable1[20]
+PASS: gdb.base/printcmds.exp: p ctable1[21]
+PASS: gdb.base/printcmds.exp: p ctable1[22]
+PASS: gdb.base/printcmds.exp: p ctable1[23]
+PASS: gdb.base/printcmds.exp: p ctable1[24]
+PASS: gdb.base/printcmds.exp: p ctable1[25]
+PASS: gdb.base/printcmds.exp: p ctable1[26]
+PASS: gdb.base/printcmds.exp: p ctable1[27]
+PASS: gdb.base/printcmds.exp: p ctable1[28]
+PASS: gdb.base/printcmds.exp: p ctable1[29]
+PASS: gdb.base/printcmds.exp: p ctable1[30]
+PASS: gdb.base/printcmds.exp: p ctable1[31]
+PASS: gdb.base/printcmds.exp: p ctable1[32]
+PASS: gdb.base/printcmds.exp: p ctable1[33]
+PASS: gdb.base/printcmds.exp: p ctable1[34]
+PASS: gdb.base/printcmds.exp: p ctable1[35]
+PASS: gdb.base/printcmds.exp: p ctable1[36]
+PASS: gdb.base/printcmds.exp: p ctable1[37]
+PASS: gdb.base/printcmds.exp: p ctable1[38]
+PASS: gdb.base/printcmds.exp: p ctable1[39]
+PASS: gdb.base/printcmds.exp: p ctable1[40]
+PASS: gdb.base/printcmds.exp: p ctable1[41]
+PASS: gdb.base/printcmds.exp: p ctable1[42]
+PASS: gdb.base/printcmds.exp: p ctable1[43]
+PASS: gdb.base/printcmds.exp: p ctable1[44]
+PASS: gdb.base/printcmds.exp: p ctable1[45]
+PASS: gdb.base/printcmds.exp: p ctable1[46]
+PASS: gdb.base/printcmds.exp: p ctable1[47]
+PASS: gdb.base/printcmds.exp: p ctable1[48]
+PASS: gdb.base/printcmds.exp: p ctable1[49]
+PASS: gdb.base/printcmds.exp: p ctable1[50]
+PASS: gdb.base/printcmds.exp: p ctable1[51]
+PASS: gdb.base/printcmds.exp: p ctable1[52]
+PASS: gdb.base/printcmds.exp: p ctable1[53]
+PASS: gdb.base/printcmds.exp: p ctable1[54]
+PASS: gdb.base/printcmds.exp: p ctable1[55]
+PASS: gdb.base/printcmds.exp: p ctable1[56]
+PASS: gdb.base/printcmds.exp: p ctable1[57]
+PASS: gdb.base/printcmds.exp: p ctable1[58]
+PASS: gdb.base/printcmds.exp: p ctable1[59]
+PASS: gdb.base/printcmds.exp: p ctable1[60]
+PASS: gdb.base/printcmds.exp: p ctable1[61]
+PASS: gdb.base/printcmds.exp: p ctable1[62]
+PASS: gdb.base/printcmds.exp: p ctable1[63]
+PASS: gdb.base/printcmds.exp: p ctable1[64]
+PASS: gdb.base/printcmds.exp: p ctable1[65]
+PASS: gdb.base/printcmds.exp: p ctable1[66]
+PASS: gdb.base/printcmds.exp: p ctable1[67]
+PASS: gdb.base/printcmds.exp: p ctable1[68]
+PASS: gdb.base/printcmds.exp: p ctable1[69]
+PASS: gdb.base/printcmds.exp: p ctable1[70]
+PASS: gdb.base/printcmds.exp: p ctable1[71]
+PASS: gdb.base/printcmds.exp: p ctable1[72]
+PASS: gdb.base/printcmds.exp: p ctable1[73]
+PASS: gdb.base/printcmds.exp: p ctable1[74]
+PASS: gdb.base/printcmds.exp: p ctable1[75]
+PASS: gdb.base/printcmds.exp: p ctable1[76]
+PASS: gdb.base/printcmds.exp: p ctable1[77]
+PASS: gdb.base/printcmds.exp: p ctable1[78]
+PASS: gdb.base/printcmds.exp: p ctable1[79]
+PASS: gdb.base/printcmds.exp: p ctable1[80]
+PASS: gdb.base/printcmds.exp: p ctable1[81]
+PASS: gdb.base/printcmds.exp: p ctable1[82]
+PASS: gdb.base/printcmds.exp: p ctable1[83]
+PASS: gdb.base/printcmds.exp: p ctable1[84]
+PASS: gdb.base/printcmds.exp: p ctable1[85]
+PASS: gdb.base/printcmds.exp: p ctable1[86]
+PASS: gdb.base/printcmds.exp: p ctable1[87]
+PASS: gdb.base/printcmds.exp: p ctable1[88]
+PASS: gdb.base/printcmds.exp: p ctable1[89]
+PASS: gdb.base/printcmds.exp: p ctable1[90]
+PASS: gdb.base/printcmds.exp: p ctable1[91]
+PASS: gdb.base/printcmds.exp: p ctable1[92]
+PASS: gdb.base/printcmds.exp: p ctable1[93]
+PASS: gdb.base/printcmds.exp: p ctable1[94]
+PASS: gdb.base/printcmds.exp: p ctable1[95]
+PASS: gdb.base/printcmds.exp: p ctable1[96]
+PASS: gdb.base/printcmds.exp: p ctable1[97]
+PASS: gdb.base/printcmds.exp: p ctable1[98]
+PASS: gdb.base/printcmds.exp: p ctable1[99]
+PASS: gdb.base/printcmds.exp: p ctable1[100]
+PASS: gdb.base/printcmds.exp: p ctable1[101]
+PASS: gdb.base/printcmds.exp: p ctable1[102]
+PASS: gdb.base/printcmds.exp: p ctable1[103]
+PASS: gdb.base/printcmds.exp: p ctable1[104]
+PASS: gdb.base/printcmds.exp: p ctable1[105]
+PASS: gdb.base/printcmds.exp: p ctable1[106]
+PASS: gdb.base/printcmds.exp: p ctable1[107]
+PASS: gdb.base/printcmds.exp: p ctable1[108]
+PASS: gdb.base/printcmds.exp: p ctable1[109]
+PASS: gdb.base/printcmds.exp: p ctable1[110]
+PASS: gdb.base/printcmds.exp: p ctable1[111]
+PASS: gdb.base/printcmds.exp: p ctable1[112]
+PASS: gdb.base/printcmds.exp: p ctable1[113]
+PASS: gdb.base/printcmds.exp: p ctable1[114]
+PASS: gdb.base/printcmds.exp: p ctable1[115]
+PASS: gdb.base/printcmds.exp: p ctable1[116]
+PASS: gdb.base/printcmds.exp: p ctable1[117]
+PASS: gdb.base/printcmds.exp: p ctable1[118]
+PASS: gdb.base/printcmds.exp: p ctable1[119]
+PASS: gdb.base/printcmds.exp: p ctable1[120]
+PASS: gdb.base/printcmds.exp: p ctable1[121]
+PASS: gdb.base/printcmds.exp: p ctable1[122]
+PASS: gdb.base/printcmds.exp: p ctable1[123]
+PASS: gdb.base/printcmds.exp: p ctable1[124]
+PASS: gdb.base/printcmds.exp: p ctable1[125]
+PASS: gdb.base/printcmds.exp: p ctable1[126]
+PASS: gdb.base/printcmds.exp: p ctable1[127]
+PASS: gdb.base/printcmds.exp: p ctable1[128]
+PASS: gdb.base/printcmds.exp: p ctable1[129]
+PASS: gdb.base/printcmds.exp: p ctable1[130]
+PASS: gdb.base/printcmds.exp: p ctable1[131]
+PASS: gdb.base/printcmds.exp: p ctable1[132]
+PASS: gdb.base/printcmds.exp: p ctable1[133]
+PASS: gdb.base/printcmds.exp: p ctable1[134]
+PASS: gdb.base/printcmds.exp: p ctable1[135]
+PASS: gdb.base/printcmds.exp: p ctable1[136]
+PASS: gdb.base/printcmds.exp: p ctable1[137]
+PASS: gdb.base/printcmds.exp: p ctable1[138]
+PASS: gdb.base/printcmds.exp: p ctable1[139]
+PASS: gdb.base/printcmds.exp: p ctable1[140]
+PASS: gdb.base/printcmds.exp: p ctable1[141]
+PASS: gdb.base/printcmds.exp: p ctable1[142]
+PASS: gdb.base/printcmds.exp: p ctable1[143]
+PASS: gdb.base/printcmds.exp: p ctable1[144]
+PASS: gdb.base/printcmds.exp: p ctable1[145]
+PASS: gdb.base/printcmds.exp: p ctable1[146]
+PASS: gdb.base/printcmds.exp: p ctable1[147]
+PASS: gdb.base/printcmds.exp: p ctable1[148]
+PASS: gdb.base/printcmds.exp: p ctable1[149]
+PASS: gdb.base/printcmds.exp: p ctable1[150]
+PASS: gdb.base/printcmds.exp: p ctable1[151]
+PASS: gdb.base/printcmds.exp: p ctable1[152]
+PASS: gdb.base/printcmds.exp: p ctable1[153]
+PASS: gdb.base/printcmds.exp: p ctable1[154]
+PASS: gdb.base/printcmds.exp: p ctable1[155]
+PASS: gdb.base/printcmds.exp: p ctable1[156]
+PASS: gdb.base/printcmds.exp: p ctable1[157]
+PASS: gdb.base/printcmds.exp: p ctable1[158]
+PASS: gdb.base/printcmds.exp: p ctable1[159]
+PASS: gdb.base/printcmds.exp: p ctable1[160]
+PASS: gdb.base/printcmds.exp: p ctable1[161]
+PASS: gdb.base/printcmds.exp: p ctable1[162]
+PASS: gdb.base/printcmds.exp: p ctable1[163]
+PASS: gdb.base/printcmds.exp: p ctable1[164]
+PASS: gdb.base/printcmds.exp: p ctable1[165]
+PASS: gdb.base/printcmds.exp: p ctable1[166]
+PASS: gdb.base/printcmds.exp: p ctable1[167]
+PASS: gdb.base/printcmds.exp: p ctable1[168]
+PASS: gdb.base/printcmds.exp: p ctable1[169]
+PASS: gdb.base/printcmds.exp: p ctable1[170]
+PASS: gdb.base/printcmds.exp: p ctable1[171]
+PASS: gdb.base/printcmds.exp: p ctable1[172]
+PASS: gdb.base/printcmds.exp: p ctable1[173]
+PASS: gdb.base/printcmds.exp: p ctable1[174]
+PASS: gdb.base/printcmds.exp: p ctable1[175]
+PASS: gdb.base/printcmds.exp: p ctable1[176]
+PASS: gdb.base/printcmds.exp: p ctable1[177]
+PASS: gdb.base/printcmds.exp: p ctable1[178]
+PASS: gdb.base/printcmds.exp: p ctable1[179]
+PASS: gdb.base/printcmds.exp: p ctable1[180]
+PASS: gdb.base/printcmds.exp: p ctable1[181]
+PASS: gdb.base/printcmds.exp: p ctable1[182]
+PASS: gdb.base/printcmds.exp: p ctable1[183]
+PASS: gdb.base/printcmds.exp: p ctable1[184]
+PASS: gdb.base/printcmds.exp: p ctable1[185]
+PASS: gdb.base/printcmds.exp: p ctable1[186]
+PASS: gdb.base/printcmds.exp: p ctable1[187]
+PASS: gdb.base/printcmds.exp: p ctable1[188]
+PASS: gdb.base/printcmds.exp: p ctable1[189]
+PASS: gdb.base/printcmds.exp: p ctable1[190]
+PASS: gdb.base/printcmds.exp: p ctable1[191]
+PASS: gdb.base/printcmds.exp: p ctable1[192]
+PASS: gdb.base/printcmds.exp: p ctable1[193]
+PASS: gdb.base/printcmds.exp: p ctable1[194]
+PASS: gdb.base/printcmds.exp: p ctable1[195]
+PASS: gdb.base/printcmds.exp: p ctable1[196]
+PASS: gdb.base/printcmds.exp: p ctable1[197]
+PASS: gdb.base/printcmds.exp: p ctable1[198]
+PASS: gdb.base/printcmds.exp: p ctable1[199]
+PASS: gdb.base/printcmds.exp: p ctable1[200]
+PASS: gdb.base/printcmds.exp: p ctable1[201]
+PASS: gdb.base/printcmds.exp: p ctable1[202]
+PASS: gdb.base/printcmds.exp: p ctable1[203]
+PASS: gdb.base/printcmds.exp: p ctable1[204]
+PASS: gdb.base/printcmds.exp: p ctable1[205]
+PASS: gdb.base/printcmds.exp: p ctable1[206]
+PASS: gdb.base/printcmds.exp: p ctable1[207]
+PASS: gdb.base/printcmds.exp: p ctable1[208]
+PASS: gdb.base/printcmds.exp: p ctable1[209]
+PASS: gdb.base/printcmds.exp: p ctable1[210]
+PASS: gdb.base/printcmds.exp: p ctable1[211]
+PASS: gdb.base/printcmds.exp: p ctable1[212]
+PASS: gdb.base/printcmds.exp: p ctable1[213]
+PASS: gdb.base/printcmds.exp: p ctable1[214]
+PASS: gdb.base/printcmds.exp: p ctable1[215]
+PASS: gdb.base/printcmds.exp: p ctable1[216]
+PASS: gdb.base/printcmds.exp: p ctable1[217]
+PASS: gdb.base/printcmds.exp: p ctable1[218]
+PASS: gdb.base/printcmds.exp: p ctable1[219]
+PASS: gdb.base/printcmds.exp: p ctable1[220]
+PASS: gdb.base/printcmds.exp: p ctable1[221]
+PASS: gdb.base/printcmds.exp: p ctable1[222]
+PASS: gdb.base/printcmds.exp: p ctable1[223]
+PASS: gdb.base/printcmds.exp: p ctable1[224]
+PASS: gdb.base/printcmds.exp: p ctable1[225]
+PASS: gdb.base/printcmds.exp: p ctable1[226]
+PASS: gdb.base/printcmds.exp: p ctable1[227]
+PASS: gdb.base/printcmds.exp: p ctable1[228]
+PASS: gdb.base/printcmds.exp: p ctable1[229]
+PASS: gdb.base/printcmds.exp: p ctable1[230]
+PASS: gdb.base/printcmds.exp: p ctable1[231]
+PASS: gdb.base/printcmds.exp: p ctable1[232]
+PASS: gdb.base/printcmds.exp: p ctable1[233]
+PASS: gdb.base/printcmds.exp: p ctable1[234]
+PASS: gdb.base/printcmds.exp: p ctable1[235]
+PASS: gdb.base/printcmds.exp: p ctable1[236]
+PASS: gdb.base/printcmds.exp: p ctable1[237]
+PASS: gdb.base/printcmds.exp: p ctable1[238]
+PASS: gdb.base/printcmds.exp: p ctable1[239]
+PASS: gdb.base/printcmds.exp: p ctable1[240]
+PASS: gdb.base/printcmds.exp: p ctable1[241]
+PASS: gdb.base/printcmds.exp: p ctable1[242]
+PASS: gdb.base/printcmds.exp: p ctable1[243]
+PASS: gdb.base/printcmds.exp: p ctable1[244]
+PASS: gdb.base/printcmds.exp: p ctable1[245]
+PASS: gdb.base/printcmds.exp: p ctable1[246]
+PASS: gdb.base/printcmds.exp: p ctable1[247]
+PASS: gdb.base/printcmds.exp: p ctable1[248]
+PASS: gdb.base/printcmds.exp: p ctable1[249]
+PASS: gdb.base/printcmds.exp: p ctable1[250]
+PASS: gdb.base/printcmds.exp: p ctable1[251]
+PASS: gdb.base/printcmds.exp: p ctable1[252]
+PASS: gdb.base/printcmds.exp: p ctable1[253]
+PASS: gdb.base/printcmds.exp: p ctable1[254]
+PASS: gdb.base/printcmds.exp: p ctable1[255]
+PASS: gdb.base/printcmds.exp: set print elements 1
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: set print elements 2
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: set print elements 3
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: set print elements 4
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: set print elements 5
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: set print elements 6
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: set print elements 7
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: set print elements 8
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: set print elements 9
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: set print elements 10
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: set print elements 11
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: set print elements 12
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: set print elements 13
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: set print elements 14
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: set print elements 15
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: set print elements 16
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: correct element repeats in array embedded at offset > 0
+PASS: gdb.base/printcmds.exp: set print elements 0
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 0
+PASS: gdb.base/printcmds.exp: set print elements 1
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 1
+PASS: gdb.base/printcmds.exp: set print elements 5
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 5
+PASS: gdb.base/printcmds.exp: set print elements 19
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 19
+PASS: gdb.base/printcmds.exp: set print elements 20
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 20
+PASS: gdb.base/printcmds.exp: set print elements 8
+PASS: gdb.base/printcmds.exp: p &ctable1[0]
+PASS: gdb.base/printcmds.exp: p &ctable1[1]
+PASS: gdb.base/printcmds.exp: p &ctable1[1*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[2*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[3*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[4*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[5*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[6*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[7*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[8*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[9*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[10*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[11*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[12*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[13*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[14*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[15*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[16*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[17*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[18*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[19*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[20*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[21*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[22*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[23*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[24*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[25*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[26*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[27*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[28*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[29*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[30*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[31*8]
+PASS: gdb.base/printcmds.exp: set print elements 24
+PASS: gdb.base/printcmds.exp: set print elements 24
+PASS: gdb.base/printcmds.exp: p a1[0]
+PASS: gdb.base/printcmds.exp: p a1[9]
+PASS: gdb.base/printcmds.exp: p a2
+PASS: gdb.base/printcmds.exp: p a2[0]
+PASS: gdb.base/printcmds.exp: p a2[3]
+PASS: gdb.base/printcmds.exp: set print null-stop on
+PASS: gdb.base/printcmds.exp: print a2 with null-stop on
+PASS: gdb.base/printcmds.exp: set print null-stop off
+PASS: gdb.base/printcmds.exp: p int1dim[0]@2
+PASS: gdb.base/printcmds.exp: p int1dim[0]@2@3
+PASS: gdb.base/printcmds.exp: set print elements 24
+PASS: gdb.base/printcmds.exp: set print address on
+PASS: gdb.base/printcmds.exp: p arrays
+PASS: gdb.base/printcmds.exp: p parrays
+PASS: gdb.base/printcmds.exp: p parrays->array1
+PASS: gdb.base/printcmds.exp: p &parrays->array1
+PASS: gdb.base/printcmds.exp: p parrays->array2
+PASS: gdb.base/printcmds.exp: p &parrays->array2
+PASS: gdb.base/printcmds.exp: p parrays->array3
+PASS: gdb.base/printcmds.exp: p &parrays->array3
+PASS: gdb.base/printcmds.exp: p parrays->array4
+PASS: gdb.base/printcmds.exp: p &parrays->array4
+PASS: gdb.base/printcmds.exp: p parrays->array5
+PASS: gdb.base/printcmds.exp: p &parrays->array5
+PASS: gdb.base/printcmds.exp: set print address off
+PASS: gdb.base/printcmds.exp: set print elements 50
+PASS: gdb.base/printcmds.exp: p "a string"
+PASS: gdb.base/printcmds.exp: p "embedded \000 null"
+PASS: gdb.base/printcmds.exp: p "abcd"[2]
+PASS: gdb.base/printcmds.exp: p sizeof ("abcdef")
+PASS: gdb.base/printcmds.exp: ptype "foo"
+FAIL: gdb.base/printcmds.exp: p *"foo" (the program exited)
+PASS: gdb.base/printcmds.exp: ptype *"foo"
+FAIL: gdb.base/printcmds.exp: p &*"foo"
+FAIL: gdb.base/printcmds.exp: ptype &*"foo"
+FAIL: gdb.base/printcmds.exp: p (char *)"foo"
+PASS: gdb.base/printcmds.exp: print {'a','b','c'}
+PASS: gdb.base/printcmds.exp: print {4,5,6}[2]
+PASS: gdb.base/printcmds.exp: print *&{4,5,6}[1]
+PASS: gdb.base/printcmds.exp: print some_volatile_enum
+PASS: gdb.base/printcmds.exp: print three
+PASS: gdb.base/printcmds.exp: printf "x=%d,y=%d,z=%d\n", 5, 6, 7
+FAIL: gdb.base/printcmds.exp: printf "string=%.4sxx\n", teststring
+FAIL: gdb.base/printcmds.exp: printf "string=%sxx\n", teststring
+PASS: gdb.base/printcmds.exp: printf "%f is fun\n", 1.0
+PASS: gdb.base/printcmds.exp: printf "x=%d,y=%f,z=%d\n", 5, 6.0, 7
+PASS: gdb.base/printcmds.exp: printf "%x %f, %c %x, %x, %f\n", 0xbad, -99.541, 'z', 0xfeedface, 0xdeadbeef, 5.0
+PASS: gdb.base/printcmds.exp: printf "%c\n", "x"[1,0]
+PASS: gdb.base/printcmds.exp: printf "%%%d%%\n", 5
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",-1.2df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.234567df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",-1.234567df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1234567.df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",-1234567.df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E1df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E10df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E-10df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E96df
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",-1.2dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.234567890123456dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",-1.234567890123456dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1234567890123456.dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",-1234567890123456.dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E1dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E10dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E-10dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E384dd
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",-1.2dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.234567890123456789012345678901234dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",-1.234567890123456789012345678901234dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1234567890123456789012345678901234.dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",-1234567890123456789012345678901234.dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E1dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E10dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E-10dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E6144dl
+PASS: gdb.base/printcmds.exp: printf "%Hf %Hf\n",1.2df,1.3df
+PASS: gdb.base/printcmds.exp: set print symbol on
+PASS: gdb.base/printcmds.exp: print &three
+FAIL: gdb.base/printcmds.exp: print parrays
+PASS: gdb.base/printcmds.exp: set print symbol off
+PASS: gdb.base/printcmds.exp: print invalid_LLL
+PASS: gdb.base/printcmds.exp: print invalid_LLE
+PASS: gdb.base/printcmds.exp: print invalid_LLR
+PASS: gdb.base/printcmds.exp: print invalid_LLS
+PASS: gdb.base/printcmds.exp: print invalid_ELL
+PASS: gdb.base/printcmds.exp: print invalid_ELR
+PASS: gdb.base/printcmds.exp: print invalid_ELS
+PASS: gdb.base/printcmds.exp: print invalid_RLL
+PASS: gdb.base/printcmds.exp: print invalid_RLE
+PASS: gdb.base/printcmds.exp: print invalid_RLR
+PASS: gdb.base/printcmds.exp: print invalid_RLS
+PASS: gdb.base/printcmds.exp: print invalid_SLL
+PASS: gdb.base/printcmds.exp: print invalid_SLE
+PASS: gdb.base/printcmds.exp: print invalid_SLR
+PASS: gdb.base/printcmds.exp: print invalid_SLS
+PASS: gdb.base/printcmds.exp: print invalid_LRL
+PASS: gdb.base/printcmds.exp: print invalid_LRE
+PASS: gdb.base/printcmds.exp: print invalid_LRR
+PASS: gdb.base/printcmds.exp: print invalid_LRS
+PASS: gdb.base/printcmds.exp: print invalid_ERL
+PASS: gdb.base/printcmds.exp: print invalid_ERR
+PASS: gdb.base/printcmds.exp: print invalid_ERS
+PASS: gdb.base/printcmds.exp: print invalid_RRL
+PASS: gdb.base/printcmds.exp: print invalid_RRE
+PASS: gdb.base/printcmds.exp: print invalid_RRR
+PASS: gdb.base/printcmds.exp: print invalid_RRS
+PASS: gdb.base/printcmds.exp: print invalid_SRL
+PASS: gdb.base/printcmds.exp: print invalid_SRE
+PASS: gdb.base/printcmds.exp: print invalid_SRR
+PASS: gdb.base/printcmds.exp: print invalid_SRS
+PASS: gdb.base/printcmds.exp: print invalid_LSL
+PASS: gdb.base/printcmds.exp: print invalid_LSE
+PASS: gdb.base/printcmds.exp: print invalid_LSR
+PASS: gdb.base/printcmds.exp: print invalid_LSS
+PASS: gdb.base/printcmds.exp: print invalid_ESL
+PASS: gdb.base/printcmds.exp: print invalid_ESR
+PASS: gdb.base/printcmds.exp: print invalid_ESS
+PASS: gdb.base/printcmds.exp: print invalid_RSL
+PASS: gdb.base/printcmds.exp: print invalid_RSE
+PASS: gdb.base/printcmds.exp: print invalid_RSR
+PASS: gdb.base/printcmds.exp: print invalid_RSS
+PASS: gdb.base/printcmds.exp: print invalid_SSL
+PASS: gdb.base/printcmds.exp: print invalid_SSE
+PASS: gdb.base/printcmds.exp: print invalid_SSR
+PASS: gdb.base/printcmds.exp: print invalid_SSS
+Running ./gdb.base/print-file-var.exp ...
+PASS: gdb.base/print-file-var.exp: breapoint past v1 & v2 initialization
+PASS: gdb.base/print-file-var.exp: continue to STOP marker
+FAIL: gdb.base/print-file-var.exp: print 'print-file-var-lib1.c'::this_version_id == v1
+FAIL: gdb.base/print-file-var.exp: print 'print-file-var-lib2.c'::this_version_id == v2
+Running ./gdb.base/prologue.exp ...
+PASS: gdb.base/prologue.exp: setting breakpoint at marker
+PASS: gdb.base/prologue.exp: continue to marker
+PASS: gdb.base/prologue.exp: reading $pc: marker
+PASS: gdb.base/prologue.exp: setting breakpoint at other
+PASS: gdb.base/prologue.exp: continue to other
+PASS: gdb.base/prologue.exp: reading $pc: other
+PASS: gdb.base/prologue.exp: same pc from minimal symbol
+Running ./gdb.base/prologue-include.exp ...
+PASS: gdb.base/prologue-include.exp: breakpoint main
+Running ./gdb.base/psymtab.exp ...
+PASS: gdb.base/psymtab.exp: psymtab pending setup
+PASS: gdb.base/psymtab.exp: Don't search past end of psymtab.
+Running ./gdb.base/ptr-typedef.exp ...
+PASS: gdb.base/ptr-typedef.exp: print foo_ptr
+PASS: gdb.base/ptr-typedef.exp: print foz_ptr
+Running ./gdb.base/ptype.exp ...
+PASS: gdb.base/ptype.exp: ptype unnamed enumeration member
+PASS: gdb.base/ptype.exp: ptype structure
+PASS: gdb.base/ptype.exp: ptype v_struct1.v_float_member
+PASS: gdb.base/ptype.exp: ptype v_struct1->v_float_member
+PASS: gdb.base/ptype.exp: ptype v_t_struct_p.v_float_member
+PASS: gdb.base/ptype.exp: ptype v_t_struct_p->v_float_member
+PASS: gdb.base/ptype.exp: ptype linked list structure
+PASS: gdb.base/ptype.exp: ptype union
+PASS: gdb.base/ptype.exp: ptype linked list union
+PASS: gdb.base/ptype.exp: ptype unnamed enumeration
+PASS: gdb.base/ptype.exp: ptype named enumeration
+PASS: gdb.base/ptype.exp: ptype unnamed typedef'd enumeration
+PASS: gdb.base/ptype.exp: list main
+PASS: gdb.base/ptype.exp: whatis unnamed typedef'd enum (compiler bug in IBM's xlc)
+PASS: gdb.base/ptype.exp: printing typedef'd struct
+PASS: gdb.base/ptype.exp: printing typedef'd union
+PASS: gdb.base/ptype.exp: ptype named typedef'd enumf'd enum
+PASS: gdb.base/ptype.exp: ptype misordered enumeration
+PASS: gdb.base/ptype.exp: ptype named enumeration member
+PASS: gdb.base/ptype.exp: ptype unnamed enumeration member #2
+PASS: gdb.base/ptype.exp: ptype short
+PASS: gdb.base/ptype.exp: ptype int
+PASS: gdb.base/ptype.exp: ptype t_char_array
+PASS: gdb.base/ptype.exp: ptype pv_char_array
+PASS: gdb.base/ptype.exp: ptype outer structure
+PASS: gdb.base/ptype.exp: ptype inner structure
+PASS: gdb.base/ptype.exp: ptype inner union
+PASS: gdb.base/ptype.exp: ptype nested structure
+PASS: gdb.base/ptype.exp: ptype outer int
+PASS: gdb.base/ptype.exp: ptype nested structure #2
+PASS: gdb.base/ptype.exp: ptype inner int
+PASS: gdb.base/ptype.exp: ptype nested union
+PASS: gdb.base/ptype.exp: ptype the_highest
+PASS: gdb.base/ptype.exp: ptype the_highest
+PASS: gdb.base/ptype.exp: ptype func_type
+PASS: gdb.base/ptype.exp: ptype old_fptr
+PASS: gdb.base/ptype.exp: ptype new_fptr
+PASS: gdb.base/ptype.exp: ptype fptr
+PASS: gdb.base/ptype.exp: ptype fptr2
+PASS: gdb.base/ptype.exp: ptype xptr
+PASS: gdb.base/ptype.exp: ptype ffptr
+PASS: gdb.base/ptype.exp: ptype fffptr
+PASS: gdb.base/ptype.exp: list intfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after first list of intfoo
+PASS: gdb.base/ptype.exp: list charfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after first list of charfoo
+PASS: gdb.base/ptype.exp: list intfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after second list of intfoo
+PASS: gdb.base/ptype.exp: list charfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after second list of charfoo
+PASS: gdb.base/ptype.exp: ptype "abc"
+PASS: gdb.base/ptype.exp: ptype {'a','b','c'}
+PASS: gdb.base/ptype.exp: ptype {0,1,2}
+PASS: gdb.base/ptype.exp: ptype {(long)0,(long)1,(long)2}
+PASS: gdb.base/ptype.exp: ptype {(float)0,(float)1,(float)2}
+PASS: gdb.base/ptype.exp: ptype {{0,1,2},{3,4,5}}
+PASS: gdb.base/ptype.exp: ptype {4,5,6}[2]
+PASS: gdb.base/ptype.exp: ptype *&{4,5,6}[1]
+PASS: gdb.base/ptype.exp: ptype $pc
+Running ./gdb.base/radix.exp ...
+PASS: gdb.base/radix.exp: initialize radix, input radix 2
+PASS: gdb.base/radix.exp: set input-radix 2
+PASS: gdb.base/radix.exp: show radix, input radix 2
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 2
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 2
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 2
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 2
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 2
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 2
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 2
+PASS: gdb.base/radix.exp: print 10; expect 2; input radix 2
+PASS: gdb.base/radix.exp: print 11; expect 3; input radix 2
+PASS: gdb.base/radix.exp: print -10; expect -2; input radix 2
+PASS: gdb.base/radix.exp: print -11; expect -3; input radix 2
+PASS: gdb.base/radix.exp: print 100; expect 4; input radix 2
+PASS: gdb.base/radix.exp: print 101; expect 5; input radix 2
+PASS: gdb.base/radix.exp: print -100; expect -4; input radix 2
+PASS: gdb.base/radix.exp: print -101; expect -5; input radix 2
+PASS: gdb.base/radix.exp: print 10101; expect 21; input radix 2
+PASS: gdb.base/radix.exp: print 4; expect Invalid number "4"\.; input radix 2
+PASS: gdb.base/radix.exp: print -2; expect Invalid number "2"\.; input radix 2
+PASS: gdb.base/radix.exp: initialize radix, input radix 3
+PASS: gdb.base/radix.exp: set input-radix 3
+PASS: gdb.base/radix.exp: show radix, input radix 3
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 3
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 3
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 3
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 3
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 3
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 3
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 3
+PASS: gdb.base/radix.exp: print 10; expect 3; input radix 3
+PASS: gdb.base/radix.exp: print 11; expect 4; input radix 3
+PASS: gdb.base/radix.exp: print -10; expect -3; input radix 3
+PASS: gdb.base/radix.exp: print -11; expect -4; input radix 3
+PASS: gdb.base/radix.exp: print 100; expect 9; input radix 3
+PASS: gdb.base/radix.exp: print 101; expect 10; input radix 3
+PASS: gdb.base/radix.exp: print -100; expect -9; input radix 3
+PASS: gdb.base/radix.exp: print -101; expect -10; input radix 3
+PASS: gdb.base/radix.exp: print 10101; expect 91; input radix 3
+PASS: gdb.base/radix.exp: print 2; expect 2; input radix 3
+PASS: gdb.base/radix.exp: print 20; expect 6; input radix 3
+PASS: gdb.base/radix.exp: print 3; expect Invalid number "3"\.; input radix 3
+PASS: gdb.base/radix.exp: print 30; expect Invalid number "30"\.; input radix 2
+PASS: gdb.base/radix.exp: initialize radix, input radix 8
+PASS: gdb.base/radix.exp: set input-radix 8
+PASS: gdb.base/radix.exp: show radix, input radix 8
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 8
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 8
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 8
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 8
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 8
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 8
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 8
+PASS: gdb.base/radix.exp: print 10; expect 8; input radix 8
+PASS: gdb.base/radix.exp: print 11; expect 9; input radix 8
+PASS: gdb.base/radix.exp: print -10; expect -8; input radix 8
+PASS: gdb.base/radix.exp: print -11; expect -9; input radix 8
+PASS: gdb.base/radix.exp: print 100; expect 64; input radix 8
+PASS: gdb.base/radix.exp: print 101; expect 65; input radix 8
+PASS: gdb.base/radix.exp: print -100; expect -64; input radix 8
+PASS: gdb.base/radix.exp: print -101; expect -65; input radix 8
+PASS: gdb.base/radix.exp: print 10101; expect 4161; input radix 8
+PASS: gdb.base/radix.exp: print 20; expect 16; input radix 8
+PASS: gdb.base/radix.exp: print -20; expect -16; input radix 8
+PASS: gdb.base/radix.exp: print 8; expect Invalid number "8".; input radix 8
+PASS: gdb.base/radix.exp: print -9; expect Invalid number "9".; input radix 8
+PASS: gdb.base/radix.exp: initialize radix, input radix 10
+PASS: gdb.base/radix.exp: set input-radix 10
+PASS: gdb.base/radix.exp: show radix, input radix 10
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 10
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 10
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 10
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 10
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 10
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 10
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 10
+PASS: gdb.base/radix.exp: print 10; expect 10; input radix 10
+PASS: gdb.base/radix.exp: print 11; expect 11; input radix 10
+PASS: gdb.base/radix.exp: print -10; expect -10; input radix 10
+PASS: gdb.base/radix.exp: print -11; expect -11; input radix 10
+PASS: gdb.base/radix.exp: print 100; expect 100; input radix 10
+PASS: gdb.base/radix.exp: print 101; expect 101; input radix 10
+PASS: gdb.base/radix.exp: print -100; expect -100; input radix 10
+PASS: gdb.base/radix.exp: print -101; expect -101; input radix 10
+PASS: gdb.base/radix.exp: print 10101; expect 10101; input radix 10
+PASS: gdb.base/radix.exp: print -12; expect -12; input radix 10
+PASS: gdb.base/radix.exp: initialize radix, input radix 16
+PASS: gdb.base/radix.exp: set input-radix 16
+PASS: gdb.base/radix.exp: show radix, input radix 16
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 16
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 16
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 16
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 16
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 16
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 16
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 16
+PASS: gdb.base/radix.exp: print 10; expect 16; input radix 16
+PASS: gdb.base/radix.exp: print 11; expect 17; input radix 16
+PASS: gdb.base/radix.exp: print -10; expect -16; input radix 16
+PASS: gdb.base/radix.exp: print -11; expect -17; input radix 16
+PASS: gdb.base/radix.exp: print 100; expect 256; input radix 16
+PASS: gdb.base/radix.exp: print 101; expect 257; input radix 16
+PASS: gdb.base/radix.exp: print -100; expect -256; input radix 16
+PASS: gdb.base/radix.exp: print -101; expect -257; input radix 16
+PASS: gdb.base/radix.exp: print 10101; expect 65793; input radix 16
+PASS: gdb.base/radix.exp: initialize radix, output radix 8
+PASS: gdb.base/radix.exp: set output-radix 8
+PASS: gdb.base/radix.exp: show radix, output radix 8
+PASS: gdb.base/radix.exp: print 010; expect 010; output radix 8
+PASS: gdb.base/radix.exp: print 0xf; expect 17; output radix 8
+PASS: gdb.base/radix.exp: print 10; expect 12; output radix 8
+PASS: gdb.base/radix.exp: print 100; expect 144; output radix 8
+KFAIL: gdb.base/radix.exp: print 20.; expect 24; output radix 8 (PRMS: gdb/1715)
+PASS: gdb.base/radix.exp: print (int) 20.; expect 24; output radix 8
+PASS: gdb.base/radix.exp: initialize radix, output radix 10
+PASS: gdb.base/radix.exp: set output-radix 10
+PASS: gdb.base/radix.exp: show radix, output radix 10
+PASS: gdb.base/radix.exp: print 010; expect 8; output radix 10
+PASS: gdb.base/radix.exp: print 0xf; expect 15; output radix 10
+PASS: gdb.base/radix.exp: print 10; expect 10; output radix 10
+PASS: gdb.base/radix.exp: print 100; expect 100; output radix 10
+PASS: gdb.base/radix.exp: print 20.; expect 20; output radix 10
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; output radix 10
+PASS: gdb.base/radix.exp: initialize radix, output radix 16
+PASS: gdb.base/radix.exp: set output-radix 16
+PASS: gdb.base/radix.exp: show radix, output radix 16
+PASS: gdb.base/radix.exp: print 010; expect 8; output radix 16
+PASS: gdb.base/radix.exp: print 0xf; expect f; output radix 16
+PASS: gdb.base/radix.exp: print 10; expect a; output radix 16
+PASS: gdb.base/radix.exp: print 100; expect 64; output radix 16
+KFAIL: gdb.base/radix.exp: print 20.; expect 14; output radix 16 (PRMS: gdb/1715)
+PASS: gdb.base/radix.exp: print (int) 20.; expect 14; output radix 16
+PASS: gdb.base/radix.exp: Reset radices
+PASS: gdb.base/radix.exp: Reject input-radix 0
+PASS: gdb.base/radix.exp: Input radix unchanged after rejecting 0
+PASS: gdb.base/radix.exp: Reject input-radix 1
+PASS: gdb.base/radix.exp: Input radix unchanged after rejecting 1
+PASS: gdb.base/radix.exp: Reject output-radix 0
+PASS: gdb.base/radix.exp: Output radix unchanged after rejecting 0
+PASS: gdb.base/radix.exp: Reject output-radix 1
+PASS: gdb.base/radix.exp: Output radix unchanged after rejecting 1
+PASS: gdb.base/radix.exp: set radix 7 rejected
+PASS: gdb.base/radix.exp: Output radix unchanged after rejection through set radix command
+Running ./gdb.base/randomize.exp ...
+UNTESTED: gdb.base/randomize.exp: Disabling randomization is not supported on this Linux GDB
+Running ./gdb.base/random-signal.exp ...
+PASS: gdb.base/random-signal.exp: set can-use-hw-watchpoints 0
+PASS: gdb.base/random-signal.exp: watch v
+PASS: gdb.base/random-signal.exp: continue
+FAIL: gdb.base/random-signal.exp: stop with control-c
+Running ./gdb.base/readline-ask.exp ...
+PASS: gdb.base/readline-ask.exp: set width 50
+PASS: gdb.base/readline-ask.exp: set height 3
+PASS: gdb.base/readline-ask.exp: bell for more message
+FAIL: gdb.base/readline-ask.exp: more message for 01 and 02
+FAIL: gdb.base/readline-ask.exp: more message for 03
+FAIL: gdb.base/readline-ask.exp: more finish for 04
+ERROR: Undefined command "foo".
+UNRESOLVED: gdb.base/readline-ask.exp: abort more message
+PASS: gdb.base/readline-ask.exp: bell for ask message
+FAIL: gdb.base/readline-ask.exp: ask message
+Running ./gdb.base/readline.exp ...
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 1
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 2
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 3
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 3
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 2
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 1
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 1
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 2
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 3
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - final prompt
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send if 1 > 0
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send p 5
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send end
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-p to end
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-p to p 5
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-p to if 1 > 0
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-o for if 1 > 0
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-o for p 5
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-o for end
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - final prompt
+PASS: gdb.base/readline.exp: print 42
+PASS: gdb.base/readline.exp: arrow keys with secondary prompt
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 7
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 8
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 9
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 9
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 8
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 7
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 7
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 8
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 9
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - final prompt
+Running ./gdb.base/realname-expand.exp ...
+PASS: gdb.base/realname-expand.exp: set basenames-may-differ on
+PASS: gdb.base/realname-expand.exp: rbreak realname-expand-real.c:func
+PASS: gdb.base/realname-expand.exp: set basenames-may-differ on
+PASS: gdb.base/realname-expand.exp: break realname-expand-real.c:func
+Running ./gdb.base/recpar.exp ...
+PASS: gdb.base/recpar.exp: break recpar.c:26 if n == 3
+PASS: gdb.base/recpar.exp: continue
+PASS: gdb.base/recpar.exp: backtrace
+PASS: gdb.base/recpar.exp: frame 2
+PASS: gdb.base/recpar.exp: print foo::val
+Running ./gdb.base/recurse.exp ...
+PASS: gdb.base/recurse.exp: next over b = 0 in first instance
+PASS: gdb.base/recurse.exp: set first instance watchpoint
+PASS: gdb.base/recurse.exp: continue to first instance watchpoint, first time
+PASS: gdb.base/recurse.exp: continue to recurse (a = 9)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 8)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 7)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 6)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 5)
+PASS: gdb.base/recurse.exp: next over b = 0 in second instance
+PASS: gdb.base/recurse.exp: set second instance watchpoint
+PASS: gdb.base/recurse.exp: continue to second instance watchpoint, first time
+PASS: gdb.base/recurse.exp: continue to recurse (a = 4)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 3)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 2)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 1)
+PASS: gdb.base/recurse.exp: continue to second instance watchpoint, second time
+PASS: gdb.base/recurse.exp: second instance watchpoint deleted when leaving scope
+PASS: gdb.base/recurse.exp: continue to first instance watchpoint, second time
+PASS: gdb.base/recurse.exp: first instance watchpoint deleted when leaving scope
+Running ./gdb.base/relational.exp ...
+PASS: gdb.base/relational.exp: set variable x=14
+PASS: gdb.base/relational.exp: set variable y=2
+PASS: gdb.base/relational.exp: set variable z=2
+PASS: gdb.base/relational.exp: set variable w=3
+PASS: gdb.base/relational.exp: print value of x
+PASS: gdb.base/relational.exp: print value of y
+PASS: gdb.base/relational.exp: print value of z
+PASS: gdb.base/relational.exp: print value of w
+PASS: gdb.base/relational.exp: print value of x<y
+PASS: gdb.base/relational.exp: print value of x<=y
+PASS: gdb.base/relational.exp: print value of x>y
+PASS: gdb.base/relational.exp: print value of x>=y
+PASS: gdb.base/relational.exp: print value of x==y
+PASS: gdb.base/relational.exp: print value of x!=y
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y<z
+PASS: gdb.base/relational.exp: print value of x<=y<=z
+PASS: gdb.base/relational.exp: print value of x>y>z
+PASS: gdb.base/relational.exp: print value of x>=y>=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x==y==z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x!=y!=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y==z
+PASS: gdb.base/relational.exp: print value of x<y!=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y<=z
+PASS: gdb.base/relational.exp: print value of x<y>=z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y>z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: print value of x>y>=z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>y==z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>y!=z
+PASS: gdb.base/relational.exp: set x to 4
+PASS: gdb.base/relational.exp: print value of x>y<=z
+PASS: gdb.base/relational.exp: print value of x>=y==z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: print value of x>=y!=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>=y<=z
+PASS: gdb.base/relational.exp: print value of x<=y==z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: print value of x<=y!=z
+PASS: gdb.base/relational.exp: print value of x==y!=z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>=(y<z)
+PASS: gdb.base/relational.exp: print value of x>=(y!=z)
+PASS: gdb.base/relational.exp: print value of x==(y==z)
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of (x==y)<z
+Running ./gdb.base/relativedebug.exp ...
+PASS: gdb.base/relativedebug.exp: continue
+FAIL: gdb.base/relativedebug.exp: pause found in backtrace
+Running ./gdb.base/relocate.exp ...
+PASS: gdb.base/relocate.exp: add-symbol-file relocate.o 0
+PASS: gdb.base/relocate.exp: get address of static_foo
+PASS: gdb.base/relocate.exp: get address of static_bar
+PASS: gdb.base/relocate.exp: static variables have different addresses
+PASS: gdb.base/relocate.exp: get address of global_foo
+PASS: gdb.base/relocate.exp: get address of global_bar
+PASS: gdb.base/relocate.exp: global variables have different addresses
+PASS: gdb.base/relocate.exp: get address of function_foo
+PASS: gdb.base/relocate.exp: get address of function_bar
+PASS: gdb.base/relocate.exp: functions have different addresses
+PASS: gdb.base/relocate.exp: set $offset = 0x10000
+PASS: gdb.base/relocate.exp: add-symbol-file relocate.o $offset
+PASS: gdb.base/relocate.exp: get address of function_foo
+PASS: gdb.base/relocate.exp: function foo has a different address
+PASS: gdb.base/relocate.exp: print static_foo
+PASS: gdb.base/relocate.exp: print static_bar
+PASS: gdb.base/relocate.exp: print global_foo
+PASS: gdb.base/relocate.exp: print global_bar
+Running ./gdb.base/remote.exp ...
+PASS: gdb.base/remote.exp: write-packet default
+PASS: gdb.base/remote.exp: set write-packet - NULL
+PASS: gdb.base/remote.exp: set remote memory-write-packet-size 20
+PASS: gdb.base/remote.exp: set write-packet - small
+PASS: gdb.base/remote.exp: set remote memory-write-packet-size 1
+PASS: gdb.base/remote.exp: set write-packet - very-small
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 398 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 398
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 400 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 400
+PASS: gdb.base/remote.exp: timed download `remote' - fixed, 0 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - fixed, 0 - set write size class
+PASS: gdb.base/remote.exp: timed download `remote' - fixed, 16385 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 0 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 0
+PASS: gdb.base/remote.exp: get integer valueof "sizeof (random_data)" (49152)
+PASS: gdb.base/remote.exp: x/8ub random_data
+PASS: gdb.base/remote.exp: x/8ub random_data + 400 - 4
+PASS: gdb.base/remote.exp: x/8ub random_data + 16384 - 4
+PASS: gdb.base/remote.exp: set remote memory-read-packet-size 16
+PASS: gdb.base/remote.exp: show remote memory-read-packet-size
+PASS: gdb.base/remote.exp: x/17ub random_data
+PASS: gdb.base/remote.exp: set remote hardware-watchpoint-limit -1
+PASS: gdb.base/remote.exp: set remote hardware-breakpoint-limit -1
+PASS: gdb.base/remote.exp: set remote hardware-watchpoint-limit 2147483647
+PASS: gdb.base/remote.exp: set remote hardware-breakpoint-limit 2147483647
+Running ./gdb.base/remotetimeout.exp ...
+Running ./gdb.base/reread.exp ...
+FAIL: gdb.base/reread.exp: breakpoint foo in first file
+FAIL: gdb.base/reread.exp: run to foo()
+UNSUPPORTED: gdb.base/reread.exp: run to foo() second time
+UNSUPPORTED: gdb.base/reread.exp: second pass: GDB should check for changes before running
+Running ./gdb.base/restore.exp ...
+PASS: gdb.base/restore.exp: tbreak caller1
+PASS: gdb.base/restore.exp: run to caller1
+PASS: gdb.base/restore.exp: caller1 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: tbreak caller2
+PASS: gdb.base/restore.exp: run to caller2
+PASS: gdb.base/restore.exp: caller2 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: tbreak caller3
+PASS: gdb.base/restore.exp: run to caller3
+PASS: gdb.base/restore.exp: caller3 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee1; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee2; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee3; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee4; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee5; return restored l3 to 32494
+PASS: gdb.base/restore.exp: tbreak caller4
+PASS: gdb.base/restore.exp: run to caller4
+PASS: gdb.base/restore.exp: caller4 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee1; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee1; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee2; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee2; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee3; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee3; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee4; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee4; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee5; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee5; return restored l4 to 32495
+PASS: gdb.base/restore.exp: tbreak caller5
+PASS: gdb.base/restore.exp: run to caller5
+PASS: gdb.base/restore.exp: caller5 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l5 to 32496
+Running ./gdb.base/return2.exp ...
+PASS: gdb.base/return2.exp: set break on void_func
+PASS: gdb.base/return2.exp: continue to void_func
+PASS: gdb.base/return2.exp: return from void_func
+PASS: gdb.base/return2.exp: void function returned successfully
+PASS: gdb.base/return2.exp: set break on char_func
+PASS: gdb.base/return2.exp: continue to char_func
+PASS: gdb.base/return2.exp: return from char_func
+PASS: gdb.base/return2.exp: char value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on short_func
+PASS: gdb.base/return2.exp: continue to short_func
+PASS: gdb.base/return2.exp: return from short_func
+PASS: gdb.base/return2.exp: short value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on int_func
+PASS: gdb.base/return2.exp: continue to int_func
+PASS: gdb.base/return2.exp: return from int_func
+PASS: gdb.base/return2.exp: int value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on long_func
+PASS: gdb.base/return2.exp: continue to long_func
+PASS: gdb.base/return2.exp: return from long_func
+PASS: gdb.base/return2.exp: long value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on long_long_func
+PASS: gdb.base/return2.exp: continue to long_long_func
+PASS: gdb.base/return2.exp: return from long_long_func
+PASS: gdb.base/return2.exp: long_long value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on float_func
+PASS: gdb.base/return2.exp: continue to float_func
+PASS: gdb.base/return2.exp: return from float_func
+PASS: gdb.base/return2.exp: float value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on double_func
+PASS: gdb.base/return2.exp: continue to double_func
+PASS: gdb.base/return2.exp: return from double_func
+FAIL: gdb.base/return2.exp: double value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+Running ./gdb.base/return.exp ...
+PASS: gdb.base/return.exp: simple return
+PASS: gdb.base/return.exp: break func2
+PASS: gdb.base/return.exp: break func3
+PASS: gdb.base/return.exp: continue to return of -5
+PASS: gdb.base/return.exp: next over call to func2
+PASS: gdb.base/return.exp: correct value returned (integer test)
+PASS: gdb.base/return.exp: continue to return of -5.0
+PASS: gdb.base/return.exp: next over call to func3
+FAIL: gdb.base/return.exp: correct value returned double test (known problem with sparc solaris)
+Running ./gdb.base/return-nodebug.exp ...
+PASS: gdb.base/return-nodebug.exp: signed-char: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: signed-char: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: signed-char: advance to marker
+PASS: gdb.base/return-nodebug.exp: signed-char: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: short: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: short: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: short: advance to marker
+PASS: gdb.base/return-nodebug.exp: short: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: int: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: int: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: int: advance to marker
+PASS: gdb.base/return-nodebug.exp: int: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: long: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: long: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: long: advance to marker
+PASS: gdb.base/return-nodebug.exp: long: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: long-long: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: long-long: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: long-long: advance to marker
+PASS: gdb.base/return-nodebug.exp: long-long: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: float: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: float: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: float: advance to marker
+FAIL: gdb.base/return-nodebug.exp: float: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: double: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: double: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: double: advance to marker
+FAIL: gdb.base/return-nodebug.exp: double: full width of the returned result
+Running ./gdb.base/save-bp.exp ...
+PASS: gdb.base/save-bp.exp: add breakpoint commands
+PASS: gdb.base/save-bp.exp: dprintf save-bp.c:33,"At foo entry\n"
+PASS: gdb.base/save-bp.exp: save breakpoint bps
+PASS: gdb.base/save-bp.exp: source bps
+PASS: gdb.base/save-bp.exp: info break
+Running ./gdb.base/savedregs.exp ...
+PASS: gdb.base/savedregs.exp: advance thrower
+PASS: gdb.base/savedregs.exp: Get main info frame
+PASS: gdb.base/savedregs.exp: handle SIGSEGV pass print nostop
+PASS: gdb.base/savedregs.exp: handle SIGILL pass print nostop
+PASS: gdb.base/savedregs.exp: advance catcher
+PASS: gdb.base/savedregs.exp: Get sigtramp info frame
+PASS: gdb.base/savedregs.exp: Get thrower info frame
+PASS: gdb.base/savedregs.exp: Check main info frame; stack contains catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: break caller
+PASS: gdb.base/savedregs.exp: call caller (1,2,3,4,5,6,7,8)
+PASS: gdb.base/savedregs.exp: Get dummy info frame
+PASS: gdb.base/savedregs.exp: Get catcher info frame
+PASS: gdb.base/savedregs.exp: Check sigtramp info frame; stack contains caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check thrower info frame; stack contains caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check main info frame; stack contains caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: advance callee
+PASS: gdb.base/savedregs.exp: Get caller info frame
+PASS: gdb.base/savedregs.exp: Check dummy info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check catcher info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check sigtramp info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check thrower info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check main info frame; stack contains callee caller dummy catcher sigtramp thrower main
+Running ./gdb.base/scope.exp ...
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
+UNSUPPORTED: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss before run
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal before run
+PASS: gdb.base/scope.exp: next over init0() in main
+PASS: gdb.base/scope.exp: print filelocal
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at main
+PASS: gdb.base/scope.exp: print filelocal_bss
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_main
+PASS: gdb.base/scope.exp: print filelocal_ro in test_at_main
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro
+PASS: gdb.base/scope.exp: print foo::funclocal
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal
+PASS: gdb.base/scope.exp: print foo::funclocal_ro
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_ro
+PASS: gdb.base/scope.exp: print bar::funclocal
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at foo
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_foo
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
+PASS: gdb.base/scope.exp: print filelocal at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal at foo
+PASS: gdb.base/scope.exp: print filelocal_bss at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss at foo
+PASS: gdb.base/scope.exp: print filelocal_ro at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro at foo
+PASS: gdb.base/scope.exp: print funclocal at foo
+PASS: gdb.base/scope.exp: print foo::funclocal at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal at foo
+PASS: gdb.base/scope.exp: print funclocal_bss at foo
+PASS: gdb.base/scope.exp: print foo::funclocal_bss at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_bss at foo
+PASS: gdb.base/scope.exp: print funclocal_ro at foo
+PASS: gdb.base/scope.exp: print foo::funclocal_ro at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_ro at foo
+PASS: gdb.base/scope.exp: print bar::funclocal at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal at foo
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at bar
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_bar
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro at bar
+PASS: gdb.base/scope.exp: print filelocal at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal at bar
+PASS: gdb.base/scope.exp: print filelocal_bss at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss at bar
+PASS: gdb.base/scope.exp: print filelocal_ro in test_at_bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro at bar
+PASS: gdb.base/scope.exp: print foo::funclocal at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal at bar
+PASS: gdb.base/scope.exp: print foo::funclocal_bss at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_bss at bar
+PASS: gdb.base/scope.exp: print foo::funclocal_ro at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_ro at bar
+PASS: gdb.base/scope.exp: print funclocal at bar
+PASS: gdb.base/scope.exp: print bar::funclocal at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal at bar
+PASS: gdb.base/scope.exp: print funclocal_bss at bar
+PASS: gdb.base/scope.exp: print bar::funclocal_bss at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal_bss at bar
+PASS: gdb.base/scope.exp: continue to marker2
+PASS: gdb.base/scope.exp: up from marker2 in scopes.exp
+PASS: gdb.base/scope.exp: print localval, outer scope
+PASS: gdb.base/scope.exp: print localval1, outer scope
+PASS: gdb.base/scope.exp: print localval2, outer scope
+PASS: gdb.base/scope.exp: print localval3, outer scope
+PASS: gdb.base/scope.exp: continue to marker3 in scope.exp
+PASS: gdb.base/scope.exp: up from marker3 in scope.exp
+PASS: gdb.base/scope.exp: print localval, first nested scope
+PASS: gdb.base/scope.exp: print localval1, first nested scope
+PASS: gdb.base/scope.exp: print localval2, first nested scope
+PASS: gdb.base/scope.exp: print localval3, first nested scope
+PASS: gdb.base/scope.exp: continue to marker4 in scope.exp
+PASS: gdb.base/scope.exp: up from marker4 in scope.exp
+PASS: gdb.base/scope.exp: print localval, innermost scope
+PASS: gdb.base/scope.exp: print localval1, innermost scope
+PASS: gdb.base/scope.exp: print localval2, innermost scope
+PASS: gdb.base/scope.exp: print localval3, innermost scope
+PASS: gdb.base/scope.exp: continue to marker1
+PASS: gdb.base/scope.exp: up from marker1 in scope.exp
+PASS: gdb.base/scope.exp: 100 auto variables correctly initialized
+PASS: gdb.base/scope.exp: args in correct order
+Running ./gdb.base/sect-cmd.exp ...
+Running ./gdb.base/sepdebug.exp ...
+PASS: gdb.base/sepdebug.exp: breakpoint function
+PASS: gdb.base/sepdebug.exp: breakpoint quoted function
+PASS: gdb.base/sepdebug.exp: breakpoint function in file
+PASS: gdb.base/sepdebug.exp: use `list' to establish default source file
+PASS: gdb.base/sepdebug.exp: breakpoint line number
+PASS: gdb.base/sepdebug.exp: breakpoint duplicate
+PASS: gdb.base/sepdebug.exp: breakpoint line number in file
+PASS: gdb.base/sepdebug.exp: breakpoint at start of multi line if conditional
+PASS: gdb.base/sepdebug.exp: breakpoint at start of multi line while conditional
+FAIL: gdb.base/sepdebug.exp: breakpoint info
+FAIL: gdb.base/sepdebug.exp: run until function breakpoint
+PASS: gdb.base/sepdebug.exp: run until breakpoint set at a line number
+PASS: gdb.base/sepdebug.exp: run until file:function(6) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(5) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(4) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(3) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(2) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(1) breakpoint
+PASS: gdb.base/sepdebug.exp: run until quoted breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:linenum breakpoint
+PASS: gdb.base/sepdebug.exp: breakpoint offset +1
+PASS: gdb.base/sepdebug.exp: step onto breakpoint
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint function
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint function in file
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number #1
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number #2
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number in file #1
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number in file #2
+FAIL: gdb.base/sepdebug.exp: Temporary breakpoint info
+PASS: gdb.base/sepdebug.exp: catch requires an event name
+PASS: gdb.base/sepdebug.exp: set catch fork, never expected to trigger
+PASS: gdb.base/sepdebug.exp: set catch vfork, never expected to trigger
+PASS: gdb.base/sepdebug.exp: set catch exec, never expected to trigger
+PASS: gdb.base/sepdebug.exp: set breakpoint pending off
+PASS: gdb.base/sepdebug.exp: break on non-existent source line
+PASS: gdb.base/sepdebug.exp: until bp_location1
+PASS: gdb.base/sepdebug.exp: break on default location, 1st time
+PASS: gdb.base/sepdebug.exp: break on default location, 2nd time
+PASS: gdb.base/sepdebug.exp: break on default location, 3rd time
+PASS: gdb.base/sepdebug.exp: break on default location, 4th time
+PASS: gdb.base/sepdebug.exp: set to-be-silent break bp_location1
+PASS: gdb.base/sepdebug.exp: set silent break bp_location1
+PASS: gdb.base/sepdebug.exp: info silent break bp_location1
+PASS: gdb.base/sepdebug.exp: hit silent break bp_location1
+PASS: gdb.base/sepdebug.exp: stopped for silent break bp_location1
+PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on non-existent thread disallowed
+PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on bogus thread ID disallowed
+PASS: gdb.base/sepdebug.exp: breakpoint with trailing garbage disallowed
+PASS: gdb.base/sepdebug.exp: step over breakpoint
+PASS: gdb.base/sepdebug.exp: clear line has no breakpoint disallowed
+PASS: gdb.base/sepdebug.exp: clear current line has no breakpoint disallowed
+PASS: gdb.base/sepdebug.exp: break marker3 #1
+PASS: gdb.base/sepdebug.exp: break marker3 #2
+PASS: gdb.base/sepdebug.exp: clear marker3
+PASS: gdb.base/sepdebug.exp: set convenience variable $foo to bp_location11
+PASS: gdb.base/sepdebug.exp: set breakpoint via convenience variable
+PASS: gdb.base/sepdebug.exp: set convenience variable $foo to 81.5
+PASS: gdb.base/sepdebug.exp: set breakpoint via non-integer convenience variable disallowed
+PASS: gdb.base/sepdebug.exp: set breakpoint on to-be-called function
+PASS: gdb.base/sepdebug.exp: hit breakpoint on called function
+PASS: gdb.base/sepdebug.exp: backtrace while in called function
+PASS: gdb.base/sepdebug.exp: finish from called function
+PASS: gdb.base/sepdebug.exp: finish with arguments disallowed
+PASS: gdb.base/sepdebug.exp: finish from outermost frame disallowed
+PASS: gdb.base/sepdebug.exp: kill program
+PASS: gdb.base/sepdebug.exp: break at factorial
+PASS: gdb.base/sepdebug.exp: continue to factorial(5)
+PASS: gdb.base/sepdebug.exp: backtrace from factorial(5)
+PASS: gdb.base/sepdebug.exp: next to recursive call
+PASS: gdb.base/sepdebug.exp: next over recursive call
+PASS: gdb.base/sepdebug.exp: backtrace from factorial(5.1)
+FAIL: gdb.base/sepdebug.exp: setting breakpoint at exit
+PASS: gdb.base/sepdebug.exp: debuglink: set separate debug location
+PASS: gdb.base/sepdebug.exp: debuglink: breakpoint function, optimized file
+PASS: gdb.base/sepdebug.exp: debuglink: breakpoint small function, optimized file
+PASS: gdb.base/sepdebug.exp: debuglink: run until function breakpoint, optimized file (code motion)
+PASS: gdb.base/sepdebug.exp: debuglink: run until breakpoint set at small function, optimized file
+PASS: gdb.base/sepdebug.exp: CRC mismatch is reported
+PASS: gdb.base/sepdebug.exp: build-id support by binutils
+PASS: gdb.base/sepdebug.exp: build-id: set separate debug location
+PASS: gdb.base/sepdebug.exp: build-id: breakpoint function, optimized file
+PASS: gdb.base/sepdebug.exp: build-id: breakpoint small function, optimized file
+PASS: gdb.base/sepdebug.exp: build-id: run until function breakpoint, optimized file (code motion)
+PASS: gdb.base/sepdebug.exp: build-id: run until breakpoint set at small function, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: set separate debug location
+PASS: gdb.base/sepdebug.exp: multiple-dirs: breakpoint function, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: breakpoint small function, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: run until function breakpoint, optimized file (code motion)
+PASS: gdb.base/sepdebug.exp: multiple-dirs: run until breakpoint set at small function, optimized file
+Running ./gdb.base/sep.exp ...
+PASS: gdb.base/sep.exp: list using location inside included file
+PASS: gdb.base/sep.exp: breakpoint inside included file
+Running ./gdb.base/sepsymtab.exp ...
+PASS: gdb.base/sepsymtab.exp: info sym main
+Running ./gdb.base/set-lang-auto.exp ...
+PASS: gdb.base/set-lang-auto.exp: show lang after loading binary
+PASS: gdb.base/set-lang-auto.exp: forcing the language to ada
+PASS: gdb.base/set-lang-auto.exp: show lang after switching language to ada
+PASS: gdb.base/set-lang-auto.exp: switching the language back to auto
+PASS: gdb.base/set-lang-auto.exp: show lang after having switched back to auto
+Running ./gdb.base/set-noassign.exp ...
+PASS: gdb.base/set-noassign.exp: set language ada
+PASS: gdb.base/set-noassign.exp: warning for set without assignment
+Running ./gdb.base/setshow.exp ...
+PASS: gdb.base/setshow.exp: default annotation_level is zero
+PASS: gdb.base/setshow.exp: set annotate 2
+PASS: gdb.base/setshow.exp: show annotate 2
+PASS: gdb.base/setshow.exp: annotation_level 2
+PASS: gdb.base/setshow.exp: set annotate 1
+PASS: gdb.base/setshow.exp: show annotate (1)
+PASS: gdb.base/setshow.exp: annotation_level 1
+PASS: gdb.base/setshow.exp: set annotate 0
+PASS: gdb.base/setshow.exp: show annotate (0)
+PASS: gdb.base/setshow.exp: annotation_level 0
+PASS: gdb.base/setshow.exp: set args ~
+PASS: gdb.base/setshow.exp: show args ~
+PASS: gdb.base/setshow.exp: set args
+PASS: gdb.base/setshow.exp: show args
+PASS: gdb.base/setshow.exp: set check range on
+PASS: gdb.base/setshow.exp: show check range (on)
+PASS: gdb.base/setshow.exp: set check range off
+PASS: gdb.base/setshow.exp: show check range (off)
+PASS: gdb.base/setshow.exp: set check range auto
+PASS: gdb.base/setshow.exp: show check range (auto)
+PASS: gdb.base/setshow.exp: set check type on
+PASS: gdb.base/setshow.exp: show check type (on)
+PASS: gdb.base/setshow.exp: set check type off
+PASS: gdb.base/setshow.exp: show check type (off)
+PASS: gdb.base/setshow.exp: set complaints 100
+PASS: gdb.base/setshow.exp: show complaints (100)
+PASS: gdb.base/setshow.exp: set complaints 0
+PASS: gdb.base/setshow.exp: show complaints (0)
+PASS: gdb.base/setshow.exp: set confirm off
+PASS: gdb.base/setshow.exp: show confirm (off)
+PASS: gdb.base/setshow.exp: set confirm on
+PASS: gdb.base/setshow.exp: show confirm (on)
+PASS: gdb.base/setshow.exp: set editing off
+PASS: gdb.base/setshow.exp: show editing (off)
+PASS: gdb.base/setshow.exp: set environment FOOBARBAZ
+PASS: gdb.base/setshow.exp: show environment FOOBARBAZ
+PASS: gdb.base/setshow.exp: set height 100
+PASS: gdb.base/setshow.exp: show height
+PASS: gdb.base/setshow.exp: set history expansion on
+PASS: gdb.base/setshow.exp: show history expansion
+PASS: gdb.base/setshow.exp: set history filename foobar.baz
+PASS: gdb.base/setshow.exp: show history filename (foobar.baz)
+PASS: gdb.base/setshow.exp: set history save on
+PASS: gdb.base/setshow.exp: show history save (on)
+PASS: gdb.base/setshow.exp: set history size 100
+PASS: gdb.base/setshow.exp: show history size (100)
+PASS: gdb.base/setshow.exp: set language asm
+PASS: gdb.base/setshow.exp: show language (asm)
+PASS: gdb.base/setshow.exp: set language java
+PASS: gdb.base/setshow.exp: show language (java)
+PASS: gdb.base/setshow.exp: complete set language minimal
+PASS: gdb.base/setshow.exp: set language auto
+PASS: gdb.base/setshow.exp: show language (auto)
+PASS: gdb.base/setshow.exp: set listsize 100
+PASS: gdb.base/setshow.exp: show listsize (100)
+PASS: gdb.base/setshow.exp: set prompt FooBarBaz
+PASS: gdb.base/setshow.exp: show prompt FooBarBaz
+PASS: gdb.base/setshow.exp: set prompt gdb
+PASS: gdb.base/setshow.exp: set radix 11
+PASS: gdb.base/setshow.exp: set radix 16
+PASS: gdb.base/setshow.exp: show radix (16)
+PASS: gdb.base/setshow.exp: set radix 10
+PASS: gdb.base/setshow.exp: show radix (10)
+PASS: gdb.base/setshow.exp: set width 90
+PASS: gdb.base/setshow.exp: show width (90)
+PASS: gdb.base/setshow.exp: set write on
+PASS: gdb.base/setshow.exp: show write (on)
+PASS: gdb.base/setshow.exp: show user
+PASS: gdb.base/setshow.exp: set verbose on
+PASS: gdb.base/setshow.exp: show verbose (on)
+PASS: gdb.base/setshow.exp: set verbose off
+PASS: gdb.base/setshow.exp: show verbose (off)
+Running ./gdb.base/setvar.exp ...
+PASS: gdb.base/setvar.exp: set print sevenbit-strings
+PASS: gdb.base/setvar.exp: set variable char=0
+PASS: gdb.base/setvar.exp: set variable char=1
+PASS: gdb.base/setvar.exp: set variable char=7 (Bel)
+PASS: gdb.base/setvar.exp: set variable char=32 (SPC)
+PASS: gdb.base/setvar.exp: set variable char=65 ('A')
+PASS: gdb.base/setvar.exp: set variable char=97 ('a')
+PASS: gdb.base/setvar.exp: set variable char=126 ('~')
+PASS: gdb.base/setvar.exp: set variable char=127 (8-bit)
+PASS: gdb.base/setvar.exp: set variable signed char=0
+PASS: gdb.base/setvar.exp: set variable signed char=1
+PASS: gdb.base/setvar.exp: set variable signed char=7 (Bel)
+PASS: gdb.base/setvar.exp: set variable signed char=32 (SPC)
+PASS: gdb.base/setvar.exp: set variable signed char=65 ('A')
+PASS: gdb.base/setvar.exp: set variable signed char=97 ('a')
+PASS: gdb.base/setvar.exp: set variable signed char=126 ('~')
+PASS: gdb.base/setvar.exp: set variable signed char=127 (8-bit)
+PASS: gdb.base/setvar.exp: set variable v_signed_char=-1
+PASS: gdb.base/setvar.exp: set variable signed char=-1 (-1)
+PASS: gdb.base/setvar.exp: set variable v_signed_char=0xFF
+PASS: gdb.base/setvar.exp: set variable signed char=0xFF (0xFF)
+PASS: gdb.base/setvar.exp: set variable unsigned char=0
+PASS: gdb.base/setvar.exp: set variable unsigned char=1
+PASS: gdb.base/setvar.exp: set variable unsigned char=7 (Bel)
+PASS: gdb.base/setvar.exp: set variable unsigned char=32 (SPC)
+PASS: gdb.base/setvar.exp: set variable unsigned char=65 ('A')
+PASS: gdb.base/setvar.exp: set variable unsigned char=97 ('a')
+PASS: gdb.base/setvar.exp: set variable unsigned char=126 ('~')
+PASS: gdb.base/setvar.exp: set variable unsigned char=255 (8-bit)
+PASS: gdb.base/setvar.exp: set variable short=0
+PASS: gdb.base/setvar.exp: set variable short=1
+PASS: gdb.base/setvar.exp: set variable short=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable signed short=0
+PASS: gdb.base/setvar.exp: set variable signed short=1
+PASS: gdb.base/setvar.exp: set variable signed short=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable unsigned short=0
+PASS: gdb.base/setvar.exp: set variable unsigned short=1
+PASS: gdb.base/setvar.exp: set variable unsigned short=~0 (minus)
+PASS: gdb.base/setvar.exp: set variable int=0
+PASS: gdb.base/setvar.exp: set variable int=1
+PASS: gdb.base/setvar.exp: set variable int=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable signed int=0
+PASS: gdb.base/setvar.exp: set variable signed int=1
+PASS: gdb.base/setvar.exp: set variable signed int=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable unsigned int=0
+PASS: gdb.base/setvar.exp: set variable unsigned int=1
+PASS: gdb.base/setvar.exp: set variable unsigned int=~0 (minus)
+PASS: gdb.base/setvar.exp: set variable long=0
+PASS: gdb.base/setvar.exp: set variable long=1
+PASS: gdb.base/setvar.exp: set variable long=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable signed long=0
+PASS: gdb.base/setvar.exp: set variable signed long=1
+PASS: gdb.base/setvar.exp: set variable signed long=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable unsigned long=0
+PASS: gdb.base/setvar.exp: set variable unsigned long=1
+PASS: gdb.base/setvar.exp: set variable unsigned long=~0 (minus)
+PASS: gdb.base/setvar.exp: set variable float=0
+PASS: gdb.base/setvar.exp: set variable float=1
+PASS: gdb.base/setvar.exp: set variable float=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable double=0
+PASS: gdb.base/setvar.exp: set variable double=1
+PASS: gdb.base/setvar.exp: set variable double=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable char array="hi" (string)
+PASS: gdb.base/setvar.exp: set variable signed char array="hi" (string)
+PASS: gdb.base/setvar.exp: set variable unsigned char array="hi" (string)
+PASS: gdb.base/setvar.exp: set variable short array
+PASS: gdb.base/setvar.exp: set variable signed short array
+PASS: gdb.base/setvar.exp: set variable unsigned short array
+PASS: gdb.base/setvar.exp: set variable int array
+PASS: gdb.base/setvar.exp: set variable signed int array
+PASS: gdb.base/setvar.exp: set variable unsigned int array
+PASS: gdb.base/setvar.exp: set variable long array
+PASS: gdb.base/setvar.exp: set variable signed long array
+PASS: gdb.base/setvar.exp: set variable unsigned long array
+PASS: gdb.base/setvar.exp: set variable float array
+PASS: gdb.base/setvar.exp: set variable double array
+PASS: gdb.base/setvar.exp: set variable char pointer="hi" (string)
+PASS: gdb.base/setvar.exp: set variable char pointer="hi" (string) (#2)
+PASS: gdb.base/setvar.exp: set variable signed char pointer="hi" (string)
+PASS: gdb.base/setvar.exp: set variable signed char pointer="hi" (string) (#2)
+PASS: gdb.base/setvar.exp: set variable unsigned char pointer="hi" (string)
+PASS: gdb.base/setvar.exp: set variable unsigned char pointer="hi" (string) (#2)
+PASS: gdb.base/setvar.exp: set variable short pointer
+PASS: gdb.base/setvar.exp: set variable short pointer (#2)
+PASS: gdb.base/setvar.exp: set v_signed_short_pointer=v_signed_short_array
+PASS: gdb.base/setvar.exp: set variable *(v_signed_short_pointer)=123
+PASS: gdb.base/setvar.exp: set variable *(v_signed_short_pointer+1)=-456
+PASS: gdb.base/setvar.exp: set variable signed short pointer
+PASS: gdb.base/setvar.exp: print *(v_signed_short_pointer+1)
+PASS: gdb.base/setvar.exp: set v_unsigned_short_pointer=v_unsigned_short_array
+PASS: gdb.base/setvar.exp: set variable *(v_unsigned_short_pointer)=123
+PASS: gdb.base/setvar.exp: set variable *(v_unsigned_short_pointer+1)=-456
+PASS: gdb.base/setvar.exp: set variable unsigned short pointer
+PASS: gdb.base/setvar.exp: print *(v_unsigned_short_pointer+1)
+PASS: gdb.base/setvar.exp: set variable int pointer
+PASS: gdb.base/setvar.exp: set variable int pointer (#2)
+PASS: gdb.base/setvar.exp: set variable signed int pointer
+PASS: gdb.base/setvar.exp: set variable signed int pointer (#2)
+PASS: gdb.base/setvar.exp: set variable unsigned int pointer
+PASS: gdb.base/setvar.exp: print variable unsigned int pointer+1
+PASS: gdb.base/setvar.exp: set variable long pointer
+PASS: gdb.base/setvar.exp: set variable long pointer (#2)
+PASS: gdb.base/setvar.exp: set variable signed long pointer
+PASS: gdb.base/setvar.exp: set variable signed long pointer (#2)
+PASS: gdb.base/setvar.exp: set variable unsigned long pointer
+PASS: gdb.base/setvar.exp: set variable unsigned long pointer (#2)
+PASS: gdb.base/setvar.exp: set variable float pointer
+PASS: gdb.base/setvar.exp: set variable float pointer (#2)
+PASS: gdb.base/setvar.exp: set variable double pointer
+PASS: gdb.base/setvar.exp: set variable double pointer (#2)
+PASS: gdb.base/setvar.exp: set variable structure char member
+PASS: gdb.base/setvar.exp: set variable structure short member
+PASS: gdb.base/setvar.exp: set variable structure int member
+PASS: gdb.base/setvar.exp: set variable structure long member
+PASS: gdb.base/setvar.exp: set variable structure float member
+PASS: gdb.base/setvar.exp: set variable structure double member
+PASS: gdb.base/setvar.exp: set print structure #1
+PASS: gdb.base/setvar.exp: set print structure #2
+PASS: gdb.base/setvar.exp: set print structure #3
+PASS: gdb.base/setvar.exp: set print structure #4
+PASS: gdb.base/setvar.exp: print sef.field=sm1
+PASS: gdb.base/setvar.exp: print sef.field (sm1)
+PASS: gdb.base/setvar.exp: print sef.field=s1
+PASS: gdb.base/setvar.exp: print sef.field (s1)
+PASS: gdb.base/setvar.exp: print uef.field=u2
+PASS: gdb.base/setvar.exp: print uef.field (u2)
+PASS: gdb.base/setvar.exp: print uef.field=u1
+PASS: gdb.base/setvar.exp: print uef.field (u1)
+PASS: gdb.base/setvar.exp: print sef.field=7
+PASS: gdb.base/setvar.exp: print uef.field=6
+Running ./gdb.base/shell.exp ...
+PASS: gdb.base/shell.exp: shell echo foo
+PASS: gdb.base/shell.exp: ! echo foo
+PASS: gdb.base/shell.exp: !echo foo
+Running ./gdb.base/shlib-call.exp ...
+PASS: gdb.base/shlib-call.exp: set print sevenbit-strings
+PASS: gdb.base/shlib-call.exp: set print address off
+PASS: gdb.base/shlib-call.exp: set width 0
+FAIL: gdb.base/shlib-call.exp: next to shr1
+FAIL: gdb.base/shlib-call.exp: print g
+FAIL: gdb.base/shlib-call.exp: print g
+FAIL: gdb.base/shlib-call.exp: breakpoint function shr2 (got interactive prompt)
+FAIL: gdb.base/shlib-call.exp: run until breakpoint set at a function (the program exited)
+FAIL: gdb.base/shlib-call.exp: print mainshr1(1) from shlib func
+FAIL: gdb.base/shlib-call.exp: step out of shr2 to main (the program is no longer running)
+FAIL: gdb.base/shlib-call.exp: print mainshr1(1)
+FAIL: gdb.base/shlib-call.exp: step into mainshr1 (the program is no longer running)
+PASS: gdb.base/shlib-call.exp: set print sevenbit-strings
+PASS: gdb.base/shlib-call.exp: set print address off
+PASS: gdb.base/shlib-call.exp: set width 0
+Running ./gdb.base/shreloc.exp ...
+FAIL: gdb.base/shreloc.exp: get address of fn_1
+FAIL: gdb.base/shreloc.exp: get address of fn_2
+FAIL: gdb.base/shreloc.exp: relocated extern functions have different addresses
+FAIL: gdb.base/shreloc.exp: get address of extern_var_1
+FAIL: gdb.base/shreloc.exp: get address of extern_var_2
+FAIL: gdb.base/shreloc.exp: relocated extern variables have different addresses
+FAIL: gdb.base/shreloc.exp: get address of static_var_1
+FAIL: gdb.base/shreloc.exp: get address of static_var_2
+FAIL: gdb.base/shreloc.exp: relocated static variables have different addresses
+PASS: gdb.base/shreloc.exp: get_msym_addrs static_var_[12]
+FAIL: gdb.base/shreloc.exp: (msymbol) relocated static vars have different addresses
+PASS: gdb.base/shreloc.exp: get_msym_addrs extern_var_[12]
+FAIL: gdb.base/shreloc.exp: (msymbol) relocated extern vars have different addresses
+PASS: gdb.base/shreloc.exp: get_msym_addrs fn_[12]
+FAIL: gdb.base/shreloc.exp: (msymbol) relocated functions have different addresses
+Running ./gdb.base/sigall.exp ...
+PASS: gdb.base/sigall.exp: handle SIGABRT stop print
+PASS: gdb.base/sigall.exp: b handle_ABRT
+PASS: gdb.base/sigall.exp: b gen_HUP
+PASS: gdb.base/sigall.exp: get signal ABRT
+PASS: gdb.base/sigall.exp: send signal ABRT
+PASS: gdb.base/sigall.exp: advance to HUP
+PASS: gdb.base/sigall.exp: handle SIGHUP stop print
+PASS: gdb.base/sigall.exp: b handle_HUP
+PASS: gdb.base/sigall.exp: b gen_QUIT
+PASS: gdb.base/sigall.exp: get signal HUP
+PASS: gdb.base/sigall.exp: send signal HUP
+PASS: gdb.base/sigall.exp: advance to QUIT
+PASS: gdb.base/sigall.exp: handle SIGQUIT stop print
+PASS: gdb.base/sigall.exp: b handle_QUIT
+PASS: gdb.base/sigall.exp: b gen_ILL
+PASS: gdb.base/sigall.exp: get signal QUIT
+PASS: gdb.base/sigall.exp: send signal QUIT
+PASS: gdb.base/sigall.exp: advance to ILL
+PASS: gdb.base/sigall.exp: handle SIGILL stop print
+PASS: gdb.base/sigall.exp: b handle_ILL
+PASS: gdb.base/sigall.exp: b gen_EMT
+PASS: gdb.base/sigall.exp: get signal ILL
+PASS: gdb.base/sigall.exp: send signal ILL
+PASS: gdb.base/sigall.exp: advance to EMT
+PASS: gdb.base/sigall.exp: handle SIGEMT stop print
+PASS: gdb.base/sigall.exp: b handle_EMT
+PASS: gdb.base/sigall.exp: b gen_FPE
+PASS: gdb.base/sigall.exp: send signal EMT
+PASS: gdb.base/sigall.exp: advance to FPE
+PASS: gdb.base/sigall.exp: handle SIGFPE stop print
+PASS: gdb.base/sigall.exp: b handle_FPE
+PASS: gdb.base/sigall.exp: b gen_BUS
+PASS: gdb.base/sigall.exp: get signal FPE
+PASS: gdb.base/sigall.exp: send signal FPE
+PASS: gdb.base/sigall.exp: advance to BUS
+PASS: gdb.base/sigall.exp: handle SIGBUS stop print
+PASS: gdb.base/sigall.exp: b handle_BUS
+PASS: gdb.base/sigall.exp: b gen_SEGV
+PASS: gdb.base/sigall.exp: get signal BUS
+PASS: gdb.base/sigall.exp: send signal BUS
+PASS: gdb.base/sigall.exp: advance to SEGV
+PASS: gdb.base/sigall.exp: handle SIGSEGV stop print
+PASS: gdb.base/sigall.exp: b handle_SEGV
+PASS: gdb.base/sigall.exp: b gen_SYS
+PASS: gdb.base/sigall.exp: get signal SEGV
+PASS: gdb.base/sigall.exp: send signal SEGV
+PASS: gdb.base/sigall.exp: advance to SYS
+PASS: gdb.base/sigall.exp: handle SIGSYS stop print
+PASS: gdb.base/sigall.exp: b handle_SYS
+PASS: gdb.base/sigall.exp: b gen_PIPE
+PASS: gdb.base/sigall.exp: get signal SYS
+PASS: gdb.base/sigall.exp: send signal SYS
+PASS: gdb.base/sigall.exp: advance to PIPE
+PASS: gdb.base/sigall.exp: handle SIGPIPE stop print
+PASS: gdb.base/sigall.exp: b handle_PIPE
+PASS: gdb.base/sigall.exp: b gen_ALRM
+PASS: gdb.base/sigall.exp: get signal PIPE
+PASS: gdb.base/sigall.exp: send signal PIPE
+PASS: gdb.base/sigall.exp: advance to ALRM
+PASS: gdb.base/sigall.exp: handle SIGALRM stop print
+PASS: gdb.base/sigall.exp: b handle_ALRM
+PASS: gdb.base/sigall.exp: b gen_URG
+PASS: gdb.base/sigall.exp: get signal ALRM
+PASS: gdb.base/sigall.exp: send signal ALRM
+PASS: gdb.base/sigall.exp: advance to URG
+PASS: gdb.base/sigall.exp: handle SIGURG stop print
+PASS: gdb.base/sigall.exp: b handle_URG
+PASS: gdb.base/sigall.exp: b gen_TSTP
+PASS: gdb.base/sigall.exp: get signal URG
+PASS: gdb.base/sigall.exp: send signal URG
+PASS: gdb.base/sigall.exp: advance to TSTP
+PASS: gdb.base/sigall.exp: handle SIGTSTP stop print
+PASS: gdb.base/sigall.exp: b handle_TSTP
+PASS: gdb.base/sigall.exp: b gen_CONT
+PASS: gdb.base/sigall.exp: get signal TSTP
+PASS: gdb.base/sigall.exp: send signal TSTP
+PASS: gdb.base/sigall.exp: advance to CONT
+PASS: gdb.base/sigall.exp: handle SIGCONT stop print
+PASS: gdb.base/sigall.exp: b handle_CONT
+PASS: gdb.base/sigall.exp: b gen_CHLD
+PASS: gdb.base/sigall.exp: get signal CONT
+PASS: gdb.base/sigall.exp: send signal CONT
+PASS: gdb.base/sigall.exp: advance to CHLD
+PASS: gdb.base/sigall.exp: handle SIGCHLD stop print
+PASS: gdb.base/sigall.exp: b handle_CHLD
+PASS: gdb.base/sigall.exp: b gen_TTIN
+PASS: gdb.base/sigall.exp: get signal CHLD
+PASS: gdb.base/sigall.exp: send signal CHLD
+PASS: gdb.base/sigall.exp: advance to TTIN
+PASS: gdb.base/sigall.exp: handle SIGTTIN stop print
+PASS: gdb.base/sigall.exp: b handle_TTIN
+PASS: gdb.base/sigall.exp: b gen_TTOU
+PASS: gdb.base/sigall.exp: get signal TTIN
+PASS: gdb.base/sigall.exp: send signal TTIN
+PASS: gdb.base/sigall.exp: advance to TTOU
+PASS: gdb.base/sigall.exp: handle SIGTTOU stop print
+PASS: gdb.base/sigall.exp: b handle_TTOU
+PASS: gdb.base/sigall.exp: b gen_IO
+PASS: gdb.base/sigall.exp: get signal TTOU
+PASS: gdb.base/sigall.exp: send signal TTOU
+PASS: gdb.base/sigall.exp: advance to IO
+PASS: gdb.base/sigall.exp: handle SIGIO stop print
+PASS: gdb.base/sigall.exp: b handle_IO
+PASS: gdb.base/sigall.exp: b gen_XCPU
+PASS: gdb.base/sigall.exp: get signal IO
+PASS: gdb.base/sigall.exp: send signal IO
+PASS: gdb.base/sigall.exp: advance to XCPU
+PASS: gdb.base/sigall.exp: handle SIGXCPU stop print
+PASS: gdb.base/sigall.exp: b handle_XCPU
+PASS: gdb.base/sigall.exp: b gen_XFSZ
+PASS: gdb.base/sigall.exp: get signal XCPU
+PASS: gdb.base/sigall.exp: send signal XCPU
+PASS: gdb.base/sigall.exp: advance to XFSZ
+PASS: gdb.base/sigall.exp: handle SIGXFSZ stop print
+PASS: gdb.base/sigall.exp: b handle_XFSZ
+PASS: gdb.base/sigall.exp: b gen_VTALRM
+PASS: gdb.base/sigall.exp: get signal XFSZ
+PASS: gdb.base/sigall.exp: send signal XFSZ
+PASS: gdb.base/sigall.exp: advance to VTALRM
+PASS: gdb.base/sigall.exp: handle SIGVTALRM stop print
+PASS: gdb.base/sigall.exp: b handle_VTALRM
+PASS: gdb.base/sigall.exp: b gen_PROF
+PASS: gdb.base/sigall.exp: get signal VTALRM
+PASS: gdb.base/sigall.exp: send signal VTALRM
+PASS: gdb.base/sigall.exp: advance to PROF
+PASS: gdb.base/sigall.exp: handle SIGPROF stop print
+PASS: gdb.base/sigall.exp: b handle_PROF
+PASS: gdb.base/sigall.exp: b gen_WINCH
+PASS: gdb.base/sigall.exp: get signal PROF
+PASS: gdb.base/sigall.exp: send signal PROF
+PASS: gdb.base/sigall.exp: advance to WINCH
+PASS: gdb.base/sigall.exp: handle SIGWINCH stop print
+PASS: gdb.base/sigall.exp: b handle_WINCH
+PASS: gdb.base/sigall.exp: b gen_LOST
+PASS: gdb.base/sigall.exp: get signal WINCH
+PASS: gdb.base/sigall.exp: send signal WINCH
+PASS: gdb.base/sigall.exp: advance to LOST
+PASS: gdb.base/sigall.exp: handle SIGLOST stop print
+PASS: gdb.base/sigall.exp: b handle_LOST
+PASS: gdb.base/sigall.exp: b gen_USR1
+PASS: gdb.base/sigall.exp: send signal LOST
+PASS: gdb.base/sigall.exp: advance to USR1
+PASS: gdb.base/sigall.exp: handle SIGUSR1 stop print
+PASS: gdb.base/sigall.exp: b handle_USR1
+PASS: gdb.base/sigall.exp: b gen_USR2
+PASS: gdb.base/sigall.exp: get signal USR1
+PASS: gdb.base/sigall.exp: send signal USR1
+PASS: gdb.base/sigall.exp: advance to USR2
+PASS: gdb.base/sigall.exp: handle SIGUSR2 stop print
+PASS: gdb.base/sigall.exp: b handle_USR2
+PASS: gdb.base/sigall.exp: b gen_PWR
+PASS: gdb.base/sigall.exp: get signal USR2
+PASS: gdb.base/sigall.exp: send signal USR2
+PASS: gdb.base/sigall.exp: advance to PWR
+PASS: gdb.base/sigall.exp: handle SIGPWR stop print
+PASS: gdb.base/sigall.exp: b handle_PWR
+PASS: gdb.base/sigall.exp: b gen_POLL
+PASS: gdb.base/sigall.exp: get signal PWR
+PASS: gdb.base/sigall.exp: send signal PWR
+PASS: gdb.base/sigall.exp: advance to POLL
+PASS: gdb.base/sigall.exp: handle SIGPOLL stop print
+PASS: gdb.base/sigall.exp: b handle_POLL
+PASS: gdb.base/sigall.exp: b gen_WIND
+PASS: gdb.base/sigall.exp: send signal POLL
+PASS: gdb.base/sigall.exp: advance to WIND
+PASS: gdb.base/sigall.exp: handle SIGWIND stop print
+PASS: gdb.base/sigall.exp: b handle_WIND
+PASS: gdb.base/sigall.exp: b gen_PHONE
+PASS: gdb.base/sigall.exp: send signal WIND
+PASS: gdb.base/sigall.exp: advance to PHONE
+PASS: gdb.base/sigall.exp: handle SIGPHONE stop print
+PASS: gdb.base/sigall.exp: b handle_PHONE
+PASS: gdb.base/sigall.exp: b gen_WAITING
+PASS: gdb.base/sigall.exp: send signal PHONE
+PASS: gdb.base/sigall.exp: advance to WAITING
+PASS: gdb.base/sigall.exp: handle SIGWAITING stop print
+PASS: gdb.base/sigall.exp: b handle_WAITING
+PASS: gdb.base/sigall.exp: b gen_LWP
+PASS: gdb.base/sigall.exp: send signal WAITING
+PASS: gdb.base/sigall.exp: advance to LWP
+PASS: gdb.base/sigall.exp: handle SIGLWP stop print
+PASS: gdb.base/sigall.exp: b handle_LWP
+PASS: gdb.base/sigall.exp: b gen_DANGER
+PASS: gdb.base/sigall.exp: send signal LWP
+PASS: gdb.base/sigall.exp: advance to DANGER
+PASS: gdb.base/sigall.exp: handle SIGDANGER stop print
+PASS: gdb.base/sigall.exp: b handle_DANGER
+PASS: gdb.base/sigall.exp: b gen_GRANT
+PASS: gdb.base/sigall.exp: send signal DANGER
+PASS: gdb.base/sigall.exp: advance to GRANT
+PASS: gdb.base/sigall.exp: handle SIGGRANT stop print
+PASS: gdb.base/sigall.exp: b handle_GRANT
+PASS: gdb.base/sigall.exp: b gen_RETRACT
+PASS: gdb.base/sigall.exp: send signal GRANT
+PASS: gdb.base/sigall.exp: advance to RETRACT
+PASS: gdb.base/sigall.exp: handle SIGRETRACT stop print
+PASS: gdb.base/sigall.exp: b handle_RETRACT
+PASS: gdb.base/sigall.exp: b gen_MSG
+PASS: gdb.base/sigall.exp: send signal RETRACT
+PASS: gdb.base/sigall.exp: advance to MSG
+PASS: gdb.base/sigall.exp: handle SIGMSG stop print
+PASS: gdb.base/sigall.exp: b handle_MSG
+PASS: gdb.base/sigall.exp: b gen_SOUND
+PASS: gdb.base/sigall.exp: send signal MSG
+PASS: gdb.base/sigall.exp: advance to SOUND
+PASS: gdb.base/sigall.exp: handle SIGSOUND stop print
+PASS: gdb.base/sigall.exp: b handle_SOUND
+PASS: gdb.base/sigall.exp: b gen_SAK
+PASS: gdb.base/sigall.exp: send signal SOUND
+PASS: gdb.base/sigall.exp: advance to SAK
+PASS: gdb.base/sigall.exp: handle SIGSAK stop print
+PASS: gdb.base/sigall.exp: b handle_SAK
+PASS: gdb.base/sigall.exp: b gen_PRIO
+PASS: gdb.base/sigall.exp: send signal SAK
+PASS: gdb.base/sigall.exp: advance to PRIO
+PASS: gdb.base/sigall.exp: handle SIGPRIO stop print
+PASS: gdb.base/sigall.exp: b handle_PRIO
+PASS: gdb.base/sigall.exp: b gen_33
+PASS: gdb.base/sigall.exp: send signal PRIO
+PASS: gdb.base/sigall.exp: advance to 33
+PASS: gdb.base/sigall.exp: handle SIG33 stop print
+PASS: gdb.base/sigall.exp: b handle_33
+PASS: gdb.base/sigall.exp: b gen_34
+PASS: gdb.base/sigall.exp: send signal 33
+PASS: gdb.base/sigall.exp: advance to 34
+PASS: gdb.base/sigall.exp: handle SIG34 stop print
+PASS: gdb.base/sigall.exp: b handle_34
+PASS: gdb.base/sigall.exp: b gen_35
+PASS: gdb.base/sigall.exp: send signal 34
+PASS: gdb.base/sigall.exp: advance to 35
+PASS: gdb.base/sigall.exp: handle SIG35 stop print
+PASS: gdb.base/sigall.exp: b handle_35
+PASS: gdb.base/sigall.exp: b gen_36
+PASS: gdb.base/sigall.exp: send signal 35
+PASS: gdb.base/sigall.exp: advance to 36
+PASS: gdb.base/sigall.exp: handle SIG36 stop print
+PASS: gdb.base/sigall.exp: b handle_36
+PASS: gdb.base/sigall.exp: b gen_37
+PASS: gdb.base/sigall.exp: send signal 36
+PASS: gdb.base/sigall.exp: advance to 37
+PASS: gdb.base/sigall.exp: handle SIG37 stop print
+PASS: gdb.base/sigall.exp: b handle_37
+PASS: gdb.base/sigall.exp: b gen_38
+PASS: gdb.base/sigall.exp: send signal 37
+PASS: gdb.base/sigall.exp: advance to 38
+PASS: gdb.base/sigall.exp: handle SIG38 stop print
+PASS: gdb.base/sigall.exp: b handle_38
+PASS: gdb.base/sigall.exp: b gen_39
+PASS: gdb.base/sigall.exp: send signal 38
+PASS: gdb.base/sigall.exp: advance to 39
+PASS: gdb.base/sigall.exp: handle SIG39 stop print
+PASS: gdb.base/sigall.exp: b handle_39
+PASS: gdb.base/sigall.exp: b gen_40
+PASS: gdb.base/sigall.exp: send signal 39
+PASS: gdb.base/sigall.exp: advance to 40
+PASS: gdb.base/sigall.exp: handle SIG40 stop print
+PASS: gdb.base/sigall.exp: b handle_40
+PASS: gdb.base/sigall.exp: b gen_41
+PASS: gdb.base/sigall.exp: send signal 40
+PASS: gdb.base/sigall.exp: advance to 41
+PASS: gdb.base/sigall.exp: handle SIG41 stop print
+PASS: gdb.base/sigall.exp: b handle_41
+PASS: gdb.base/sigall.exp: b gen_42
+PASS: gdb.base/sigall.exp: send signal 41
+PASS: gdb.base/sigall.exp: advance to 42
+PASS: gdb.base/sigall.exp: handle SIG42 stop print
+PASS: gdb.base/sigall.exp: b handle_42
+PASS: gdb.base/sigall.exp: b gen_43
+PASS: gdb.base/sigall.exp: send signal 42
+PASS: gdb.base/sigall.exp: advance to 43
+PASS: gdb.base/sigall.exp: handle SIG43 stop print
+PASS: gdb.base/sigall.exp: b handle_43
+PASS: gdb.base/sigall.exp: b gen_44
+PASS: gdb.base/sigall.exp: send signal 43
+PASS: gdb.base/sigall.exp: advance to 44
+PASS: gdb.base/sigall.exp: handle SIG44 stop print
+PASS: gdb.base/sigall.exp: b handle_44
+PASS: gdb.base/sigall.exp: b gen_45
+PASS: gdb.base/sigall.exp: send signal 44
+PASS: gdb.base/sigall.exp: advance to 45
+PASS: gdb.base/sigall.exp: handle SIG45 stop print
+PASS: gdb.base/sigall.exp: b handle_45
+PASS: gdb.base/sigall.exp: b gen_46
+PASS: gdb.base/sigall.exp: send signal 45
+PASS: gdb.base/sigall.exp: advance to 46
+PASS: gdb.base/sigall.exp: handle SIG46 stop print
+PASS: gdb.base/sigall.exp: b handle_46
+PASS: gdb.base/sigall.exp: b gen_47
+PASS: gdb.base/sigall.exp: send signal 46
+PASS: gdb.base/sigall.exp: advance to 47
+PASS: gdb.base/sigall.exp: handle SIG47 stop print
+PASS: gdb.base/sigall.exp: b handle_47
+PASS: gdb.base/sigall.exp: b gen_48
+PASS: gdb.base/sigall.exp: send signal 47
+PASS: gdb.base/sigall.exp: advance to 48
+PASS: gdb.base/sigall.exp: handle SIG48 stop print
+PASS: gdb.base/sigall.exp: b handle_48
+PASS: gdb.base/sigall.exp: b gen_49
+PASS: gdb.base/sigall.exp: send signal 48
+PASS: gdb.base/sigall.exp: advance to 49
+PASS: gdb.base/sigall.exp: handle SIG49 stop print
+PASS: gdb.base/sigall.exp: b handle_49
+PASS: gdb.base/sigall.exp: b gen_50
+PASS: gdb.base/sigall.exp: send signal 49
+PASS: gdb.base/sigall.exp: advance to 50
+PASS: gdb.base/sigall.exp: handle SIG50 stop print
+PASS: gdb.base/sigall.exp: b handle_50
+PASS: gdb.base/sigall.exp: b gen_51
+PASS: gdb.base/sigall.exp: send signal 50
+PASS: gdb.base/sigall.exp: advance to 51
+PASS: gdb.base/sigall.exp: handle SIG51 stop print
+PASS: gdb.base/sigall.exp: b handle_51
+PASS: gdb.base/sigall.exp: b gen_52
+PASS: gdb.base/sigall.exp: send signal 51
+PASS: gdb.base/sigall.exp: advance to 52
+PASS: gdb.base/sigall.exp: handle SIG52 stop print
+PASS: gdb.base/sigall.exp: b handle_52
+PASS: gdb.base/sigall.exp: b gen_53
+PASS: gdb.base/sigall.exp: send signal 52
+PASS: gdb.base/sigall.exp: advance to 53
+PASS: gdb.base/sigall.exp: handle SIG53 stop print
+PASS: gdb.base/sigall.exp: b handle_53
+PASS: gdb.base/sigall.exp: b gen_54
+PASS: gdb.base/sigall.exp: send signal 53
+PASS: gdb.base/sigall.exp: advance to 54
+PASS: gdb.base/sigall.exp: handle SIG54 stop print
+PASS: gdb.base/sigall.exp: b handle_54
+PASS: gdb.base/sigall.exp: b gen_55
+PASS: gdb.base/sigall.exp: send signal 54
+PASS: gdb.base/sigall.exp: advance to 55
+PASS: gdb.base/sigall.exp: handle SIG55 stop print
+PASS: gdb.base/sigall.exp: b handle_55
+PASS: gdb.base/sigall.exp: b gen_56
+PASS: gdb.base/sigall.exp: send signal 55
+PASS: gdb.base/sigall.exp: advance to 56
+PASS: gdb.base/sigall.exp: handle SIG56 stop print
+PASS: gdb.base/sigall.exp: b handle_56
+PASS: gdb.base/sigall.exp: b gen_57
+PASS: gdb.base/sigall.exp: send signal 56
+PASS: gdb.base/sigall.exp: advance to 57
+PASS: gdb.base/sigall.exp: handle SIG57 stop print
+PASS: gdb.base/sigall.exp: b handle_57
+PASS: gdb.base/sigall.exp: b gen_58
+PASS: gdb.base/sigall.exp: send signal 57
+PASS: gdb.base/sigall.exp: advance to 58
+PASS: gdb.base/sigall.exp: handle SIG58 stop print
+PASS: gdb.base/sigall.exp: b handle_58
+PASS: gdb.base/sigall.exp: b gen_59
+PASS: gdb.base/sigall.exp: send signal 58
+PASS: gdb.base/sigall.exp: advance to 59
+PASS: gdb.base/sigall.exp: handle SIG59 stop print
+PASS: gdb.base/sigall.exp: b handle_59
+PASS: gdb.base/sigall.exp: b gen_60
+PASS: gdb.base/sigall.exp: send signal 59
+PASS: gdb.base/sigall.exp: advance to 60
+PASS: gdb.base/sigall.exp: handle SIG60 stop print
+PASS: gdb.base/sigall.exp: b handle_60
+PASS: gdb.base/sigall.exp: b gen_61
+PASS: gdb.base/sigall.exp: send signal 60
+PASS: gdb.base/sigall.exp: advance to 61
+PASS: gdb.base/sigall.exp: handle SIG61 stop print
+PASS: gdb.base/sigall.exp: b handle_61
+PASS: gdb.base/sigall.exp: b gen_62
+PASS: gdb.base/sigall.exp: send signal 61
+PASS: gdb.base/sigall.exp: advance to 62
+PASS: gdb.base/sigall.exp: handle SIG62 stop print
+PASS: gdb.base/sigall.exp: b handle_62
+PASS: gdb.base/sigall.exp: b gen_63
+PASS: gdb.base/sigall.exp: send signal 62
+PASS: gdb.base/sigall.exp: advance to 63
+PASS: gdb.base/sigall.exp: handle SIG63 stop print
+PASS: gdb.base/sigall.exp: b handle_63
+PASS: gdb.base/sigall.exp: b gen_TERM
+PASS: gdb.base/sigall.exp: send signal 63
+PASS: gdb.base/sigall.exp: advance to TERM
+PASS: gdb.base/sigall.exp: handle SIGTERM stop print
+PASS: gdb.base/sigall.exp: b handle_TERM
+PASS: gdb.base/sigall.exp: get signal TERM
+PASS: gdb.base/sigall.exp: send signal TERM
+FAIL: gdb.base/sigall.exp: setting breakpoint at exit
+Running ./gdb.base/sigaltstack.exp ...
+PASS: gdb.base/sigaltstack.exp: handle SIGALRM print pass nostop
+PASS: gdb.base/sigaltstack.exp: handle SIGVTALRM print pass nostop
+PASS: gdb.base/sigaltstack.exp: handle SIGPROF print pass nostop
+PASS: gdb.base/sigaltstack.exp: break catcher if level == INNER
+PASS: gdb.base/sigaltstack.exp: continue to catch
+PASS: gdb.base/sigaltstack.exp: next
+PASS: gdb.base/sigaltstack.exp: backtrace
+FAIL: gdb.base/sigaltstack.exp: finish from catch LEAF
+FAIL: gdb.base/sigaltstack.exp: finish to throw INNER
+FAIL: gdb.base/sigaltstack.exp: finish to catch INNER (GDB internal error)
+FAIL: gdb.base/sigaltstack.exp: finish from catch INNER (GDB internal error)
+FAIL: gdb.base/sigaltstack.exp: finish to OUTER (GDB internal error)
+FAIL: gdb.base/sigaltstack.exp: finish to catch MAIN (GDB internal error)
+FAIL: gdb.base/sigaltstack.exp: finish to MAIN (GDB internal error)
+Running ./gdb.base/sigbpt.exp ...
+PASS: gdb.base/sigbpt.exp: break keeper
+PASS: gdb.base/sigbpt.exp: display/i $pc
+PASS: gdb.base/sigbpt.exp: advance to the bowler
+PASS: gdb.base/sigbpt.exp: stepping to fault
+PASS: gdb.base/sigbpt.exp: get insn after fault
+PASS: gdb.base/sigbpt.exp: Verify that SIGSEGV occurs at the last STEPI insn
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi; nopass SIGSEGV
+KFAIL: gdb.base/sigbpt.exp: stepi; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; set breakpoint 0 of 1
+KFAIL: gdb.base/sigbpt.exp: stepi bp before segv; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; clear breakpoint 0 of 1
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; set breakpoint 0 of 1
+KFAIL: gdb.base/sigbpt.exp: stepi bp at segv; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; clear breakpoint 0 of 1
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; set breakpoint 0 of 2
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; set breakpoint 1 of 2
+KFAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; clear breakpoint 0 of 2
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; clear breakpoint 1 of 2
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: cont; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont; continue to keeper
+PASS: gdb.base/sigbpt.exp: cont; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont; set breakpoint 0  of 1
+PASS: gdb.base/sigbpt.exp: cont; continue to breakpoint at fault
+PASS: gdb.base/sigbpt.exp: cont; stepi fault
+PASS: gdb.base/sigbpt.exp: cont; clear breakpoint 0 of 1
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: cont bp after segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp after segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: cont bp after segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp after segv; set breakpoint 0  of 2
+PASS: gdb.base/sigbpt.exp: cont bp after segv; set breakpoint 1  of 2
+PASS: gdb.base/sigbpt.exp: cont bp after segv; continue to breakpoint at fault
+PASS: gdb.base/sigbpt.exp: cont bp after segv; stepi fault
+PASS: gdb.base/sigbpt.exp: cont bp after segv; clear breakpoint 0 of 2
+PASS: gdb.base/sigbpt.exp: cont bp after segv; clear breakpoint 1 of 2
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 0  of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 1  of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 2  of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; continue to breakpoint at fault
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; stepi fault
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 0 of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 1 of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 2 of 3
+Running ./gdb.base/sigchld.exp ...
+PASS: gdb.base/sigchld.exp: set breakpoint at success exit
+PASS: gdb.base/sigchld.exp: set breakpoint at failure exit
+PASS: gdb.base/sigchld.exp: SIGCHLD blocked in inferior
+Running ./gdb.base/siginfo-addr.exp ...
+Running ./gdb.base/siginfo.exp ...
+PASS: gdb.base/siginfo.exp: display/i $pc
+PASS: gdb.base/siginfo.exp: break handler
+PASS: gdb.base/siginfo.exp: continue to stepi handler
+PASS: gdb.base/siginfo.exp: backtrace for nexti
+PASS: gdb.base/siginfo.exp: step out of handler
+Running ./gdb.base/siginfo-infcall.exp ...
+PASS: gdb.base/siginfo-infcall.exp: continue to SIGUSR1
+PASS: gdb.base/siginfo-infcall.exp: p callme ()
+PASS: gdb.base/siginfo-infcall.exp: continue to the handler
+Running ./gdb.base/siginfo-obj.exp ...
+PASS: gdb.base/siginfo-obj.exp: continue to signal
+PASS: gdb.base/siginfo-obj.exp: save a core file
+PASS: gdb.base/siginfo-obj.exp: Extract si_addr
+PASS: gdb.base/siginfo-obj.exp: Extract si_errno
+PASS: gdb.base/siginfo-obj.exp: Extract si_code
+PASS: gdb.base/siginfo-obj.exp: Extract si_signo
+PASS: gdb.base/siginfo-obj.exp: break 38
+PASS: gdb.base/siginfo-obj.exp: continue to handler
+PASS: gdb.base/siginfo-obj.exp: p ssi_addr
+PASS: gdb.base/siginfo-obj.exp: p ssi_errno
+PASS: gdb.base/siginfo-obj.exp: p ssi_code
+PASS: gdb.base/siginfo-obj.exp: p ssi_signo
+PASS: gdb.base/siginfo-obj.exp: continue to signal
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo._sifields._sigfault.si_addr = 0x666
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_errno = 666
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_code = 999
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_signo = 11
+PASS: gdb.base/siginfo-obj.exp: break 38
+PASS: gdb.base/siginfo-obj.exp: continue to handler
+PASS: gdb.base/siginfo-obj.exp: p ssi_addr
+PASS: gdb.base/siginfo-obj.exp: p ssi_errno
+PASS: gdb.base/siginfo-obj.exp: p ssi_code
+PASS: gdb.base/siginfo-obj.exp: p ssi_signo
+PASS: gdb.base/siginfo-obj.exp: core siginfo-obj.gcore
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_signo from core file
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_errno from core file
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_code from core file
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo._sifields._sigfault.si_addr from core file
+Running ./gdb.base/siginfo-thread.exp ...
+PASS: gdb.base/siginfo-thread.exp: successfully compiled posix threads test case
+PASS: gdb.base/siginfo-thread.exp: continue to signal
+PASS: gdb.base/siginfo-thread.exp: save a core file
+PASS: gdb.base/siginfo-thread.exp: Extract si_addr
+PASS: gdb.base/siginfo-thread.exp: Extract si_errno
+PASS: gdb.base/siginfo-thread.exp: Extract si_code
+PASS: gdb.base/siginfo-thread.exp: Extract si_signo
+PASS: gdb.base/siginfo-thread.exp: break 39
+PASS: gdb.base/siginfo-thread.exp: continue to handler
+PASS: gdb.base/siginfo-thread.exp: p ssi_addr
+PASS: gdb.base/siginfo-thread.exp: p ssi_errno
+PASS: gdb.base/siginfo-thread.exp: p ssi_code
+PASS: gdb.base/siginfo-thread.exp: p ssi_signo
+PASS: gdb.base/siginfo-thread.exp: thread 1
+PASS: gdb.base/siginfo-thread.exp: test signal in main thread
+PASS: gdb.base/siginfo-thread.exp: core siginfo-thread.gcore
+PASS: gdb.base/siginfo-thread.exp: p $_siginfo.si_signo from core file
+PASS: gdb.base/siginfo-thread.exp: p $_siginfo.si_errno from core file
+PASS: gdb.base/siginfo-thread.exp: p $_siginfo.si_code from core file
+PASS: gdb.base/siginfo-thread.exp: p $_siginfo._sifields._sigfault.si_addr from core file
+PASS: gdb.base/siginfo-thread.exp: set variable $count = 0
+PASS: gdb.base/siginfo-thread.exp: select thread 1 with core file
+PASS: gdb.base/siginfo-thread.exp: update counter in thread 1
+PASS: gdb.base/siginfo-thread.exp: select thread 2 with core file
+PASS: gdb.base/siginfo-thread.exp: update counter in thread 2
+PASS: gdb.base/siginfo-thread.exp: print $count
+Running ./gdb.base/signals.exp ...
+PASS: gdb.base/signals.exp: handle all print
+PASS: gdb.base/signals.exp: set variable count = 0
+PASS: gdb.base/signals.exp: break handler if 0
+PASS: gdb.base/signals.exp: set $handler_breakpoint_number = $bpnum
+PASS: gdb.base/signals.exp: next to signal
+PASS: gdb.base/signals.exp: next to alarm #1
+PASS: gdb.base/signals.exp: next to ++count #1
+PASS: gdb.base/signals.exp: p func1 () #1
+PASS: gdb.base/signals.exp: p count #1
+PASS: gdb.base/signals.exp: condition $handler_breakpoint_number
+PASS: gdb.base/signals.exp: next to alarm #2
+PASS: gdb.base/signals.exp: next to ++count #2
+PASS: gdb.base/signals.exp: p func1 () #2
+PASS: gdb.base/signals.exp: backtrace from handler when calling func1
+PASS: gdb.base/signals.exp: continue
+PASS: gdb.base/signals.exp: p count #2
+PASS: gdb.base/signals.exp: info signals
+PASS: gdb.base/signals.exp: info signal SIGTRAP
+PASS: gdb.base/signals.exp: info signal 5
+PASS: gdb.base/signals.exp: handle without arguments
+PASS: gdb.base/signals.exp: handle with bogus SIG
+PASS: gdb.base/signals.exp: handle SIG with bogus action
+PASS: gdb.base/signals.exp: handle SIG with multiple conflicting actions
+PASS: gdb.base/signals.exp: handle SIG parses all legal actions
+PASS: gdb.base/signals.exp: handle multiple SIGs
+PASS: gdb.base/signals.exp: override SIGTRAP
+PASS: gdb.base/signals.exp: invalid signal number rejected
+PASS: gdb.base/signals.exp: handle multiple SIGs via integer range
+PASS: gdb.base/signals.exp: handle multiple SIGs via reverse integer range
+PASS: gdb.base/signals.exp: override SIGINT
+PASS: gdb.base/signals.exp: signal without arguments disallowed
+PASS: gdb.base/signals.exp: signal SIGUSR1
+PASS: gdb.base/signals.exp: backtrace for SIGUSR1
+Running ./gdb.base/signest.exp ...
+PASS: gdb.base/signest.exp: continue to fault
+PASS: gdb.base/signest.exp: set conditional breakpoint
+PASS: gdb.base/signest.exp: pass SIGSEGV
+PASS: gdb.base/signest.exp: pass SIGBUS
+PASS: gdb.base/signest.exp: run through nested faults
+Running ./gdb.base/signull.exp ...
+PASS: gdb.base/signull.exp: set for function pointer probe
+PASS: gdb.base/signull.exp: probe function pointer (function entry-point)
+PASS: gdb.base/signull.exp: rerun to main
+PASS: gdb.base/signull.exp: break bowler
+PASS: gdb.base/signull.exp: break keeper
+PASS: gdb.base/signull.exp: handle SIGSEGV
+PASS: gdb.base/signull.exp: handle SIGBUS
+PASS: gdb.base/signull.exp: data read; start with the bowler
+PASS: gdb.base/signull.exp: data read; select the pointer type
+PASS: gdb.base/signull.exp: data read; take the SIGSEGV
+PASS: gdb.base/signull.exp: data read; backtrace from SIGSEGV
+PASS: gdb.base/signull.exp: data read; continue to the keeper
+PASS: gdb.base/signull.exp: data read; backtrace from keeper through SIGSEGV
+PASS: gdb.base/signull.exp: data write; start with the bowler
+PASS: gdb.base/signull.exp: data write; select the pointer type
+PASS: gdb.base/signull.exp: data write; take the SIGSEGV
+PASS: gdb.base/signull.exp: data write; backtrace from SIGSEGV
+PASS: gdb.base/signull.exp: data write; continue to the keeper
+PASS: gdb.base/signull.exp: data write; backtrace from keeper through SIGSEGV
+PASS: gdb.base/signull.exp: code; start with the bowler
+PASS: gdb.base/signull.exp: code; select the pointer type
+PASS: gdb.base/signull.exp: code; take the SIGSEGV
+PASS: gdb.base/signull.exp: code; backtrace from SIGSEGV
+PASS: gdb.base/signull.exp: code; continue to the keeper
+PASS: gdb.base/signull.exp: code; backtrace from keeper through SIGSEGV
+Running ./gdb.base/sigrepeat.exp ...
+PASS: gdb.base/sigrepeat.exp: advance to infinite loop
+PASS: gdb.base/sigrepeat.exp: next
+Running ./gdb.base/sigstep.exp ...
+PASS: gdb.base/sigstep.exp: display/i $pc
+PASS: gdb.base/sigstep.exp: break handler
+PASS: gdb.base/sigstep.exp: continue to stepi handler
+PASS: gdb.base/sigstep.exp: backtrace for nexti
+PASS: gdb.base/sigstep.exp: step from handler; continue to handler
+PASS: gdb.base/sigstep.exp: step from handler; leave handler
+PASS: gdb.base/sigstep.exp: stepi from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: stepi from handleri; leave handler
+PASS: gdb.base/sigstep.exp: stepi from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: next from handler; continue to handler
+PASS: gdb.base/sigstep.exp: next from handler; leave handler
+PASS: gdb.base/sigstep.exp: nexti from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: nexti from handleri; leave handler
+PASS: gdb.base/sigstep.exp: nexti from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: finish from handleri; continue to handler
+FAIL: gdb.base/sigstep.exp: finish from handleri; leave handler
+FAIL: gdb.base/sigstep.exp: finish from handleri; leave signal trampoline
+FAIL: gdb.base/sigstep.exp: return from handleri; continue to handler
+FAIL: gdb.base/sigstep.exp: return from handleri; leave handler
+FAIL: gdb.base/sigstep.exp: return from handleri; leave signal trampoline
+FAIL: gdb.base/sigstep.exp: Set done as return will have skipped it
+FAIL: gdb.base/sigstep.exp: set itimer = itimer_real
+PASS: gdb.base/sigstep.exp: break 79
+FAIL: gdb.base/sigstep.exp: step to handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step to handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: step to handler; break handler
+FAIL: gdb.base/sigstep.exp: step to handler; performing step (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step to handler; clear handler
+FAIL: gdb.base/sigstep.exp: next to handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next to handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: next to handler; break handler
+FAIL: gdb.base/sigstep.exp: next to handler; performing next (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next to handler; clear handler
+FAIL: gdb.base/sigstep.exp: continue to handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue to handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: continue to handler; break handler
+FAIL: gdb.base/sigstep.exp: continue to handler; performing continue (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue to handler; clear handler
+FAIL: gdb.base/sigstep.exp: step to handler entry; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step to handler entry; advance to infinite loop
+PASS: gdb.base/sigstep.exp: step to handler entry; break handler
+FAIL: gdb.base/sigstep.exp: step to handler entry; performing step (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step to handler entry; clear handler
+FAIL: gdb.base/sigstep.exp: next to handler entry; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next to handler entry; advance to infinite loop
+PASS: gdb.base/sigstep.exp: next to handler entry; break handler
+FAIL: gdb.base/sigstep.exp: next to handler entry; performing next (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next to handler entry; clear handler
+FAIL: gdb.base/sigstep.exp: continue to handler entry; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue to handler entry; advance to infinite loop
+PASS: gdb.base/sigstep.exp: continue to handler entry; break handler
+FAIL: gdb.base/sigstep.exp: continue to handler entry; performing continue (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue to handler entry; clear handler
+FAIL: gdb.base/sigstep.exp: step over handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step over handler; advance to infinite loop
+FAIL: gdb.base/sigstep.exp: step over handler; performing step (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: next over handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next over handler; advance to infinite loop
+FAIL: gdb.base/sigstep.exp: next over handler; performing next (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: continue over handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue over handler; advance to infinite loop
+FAIL: gdb.base/sigstep.exp: continue over handler; performing continue (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; break infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; break handler
+FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; continue to infinite loop (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; performing step (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; clear handler
+FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; break infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; break handler
+FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; continue to infinite loop (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; performing next (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; clear handler
+FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; break infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; break handler
+FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; continue to infinite loop (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; performing continue (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; clear handler
+FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; break infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; break handler
+FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; continue to infinite loop (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; performing step (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; clear infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; clear handler
+FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; break infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; break handler
+FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; continue to infinite loop (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; performing next (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; clear infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; clear handler
+FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; break infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; break handler
+FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; continue to infinite loop (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; performing continue (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; clear infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; clear handler
+FAIL: gdb.base/sigstep.exp: step on breakpoint, skip handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; break infinite loop
+FAIL: gdb.base/sigstep.exp: step on breakpoint, skip handler; continue to infinite loop (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: step on breakpoint, skip handler; performing step (the program is no longer running)
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; clear infinite loop
+FAIL: gdb.base/sigstep.exp: next on breakpoint, skip handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; break infinite loop
+FAIL: gdb.base/sigstep.exp: next on breakpoint, skip handler; continue to infinite loop (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: next on breakpoint, skip handler; performing next (the program is no longer running)
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; clear infinite loop
+FAIL: gdb.base/sigstep.exp: continue on breakpoint, skip handler; resync (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; break infinite loop
+FAIL: gdb.base/sigstep.exp: continue on breakpoint, skip handler; continue to infinite loop (the program is no longer running)
+FAIL: gdb.base/sigstep.exp: continue on breakpoint, skip handler; performing continue (the program is no longer running)
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; clear infinite loop
+Running ./gdb.base/sizeof.exp ...
+Running ./gdb.base/skip.exp ...
+PASS: gdb.base/skip.exp: skip file (no default file)
+PASS: gdb.base/skip.exp: skip function
+PASS: gdb.base/skip.exp: skip (no default function)
+PASS: gdb.base/skip.exp: info skip empty
+PASS: gdb.base/skip.exp: skip file (skip.c)
+PASS: gdb.base/skip.exp: skip (main)
+PASS: gdb.base/skip.exp: skip file skip1.c
+PASS: gdb.base/skip.exp: skip function baz
+PASS: gdb.base/skip.exp: skip enable 999
+PASS: gdb.base/skip.exp: skip disable 999
+PASS: gdb.base/skip.exp: skip delete 999
+PASS: gdb.base/skip.exp: skip enable a
+PASS: gdb.base/skip.exp: skip disable a
+PASS: gdb.base/skip.exp: skip delete a
+PASS: gdb.base/skip.exp: info skip 999
+PASS: gdb.base/skip.exp: info skip
+PASS: gdb.base/skip.exp: step in the main
+PASS: gdb.base/skip.exp: step after all ignored
+PASS: gdb.base/skip.exp: skip delete 1
+PASS: gdb.base/skip.exp: info skip (delete 1)
+PASS: gdb.base/skip.exp: step after deleting 1 (1)
+PASS: gdb.base/skip.exp: step after deleting 1 (2)
+PASS: gdb.base/skip.exp: step after deleting 1 (3)
+PASS: gdb.base/skip.exp: skip disable 3
+PASS: gdb.base/skip.exp: info skip shows entry as disabled
+FAIL: gdb.base/skip.exp: step after disabling 3 (1)
+PASS: gdb.base/skip.exp: step after disabling 3 (2)
+FAIL: gdb.base/skip.exp: step after disabling 3 (3)
+PASS: gdb.base/skip.exp: step after disabling 3 (4)
+PASS: gdb.base/skip.exp: step after disabling 3 (5)
+PASS: gdb.base/skip.exp: skip enable 3
+PASS: gdb.base/skip.exp: info skip shows entry as enabled
+PASS: gdb.base/skip.exp: step after enable 3 (1)
+PASS: gdb.base/skip.exp: step after enable 3 (2)
+PASS: gdb.base/skip.exp: step after enable 3 (3)
+PASS: gdb.base/skip.exp: skip disable
+PASS: gdb.base/skip.exp: info skip after disabling all
+PASS: gdb.base/skip.exp: skip enable
+PASS: gdb.base/skip.exp: info skip after enabling all
+PASS: gdb.base/skip.exp: skip disable 4 2-3
+PASS: gdb.base/skip.exp: info skip after disabling 4 2-3
+PASS: gdb.base/skip.exp: skip enable 2-3
+PASS: gdb.base/skip.exp: info skip after enabling 2-3
+PASS: gdb.base/skip.exp: info skip 2-3
+PASS: gdb.base/skip.exp: skip delete 2 3
+PASS: gdb.base/skip.exp: info skip after deleting 2 3
+PASS: gdb.base/skip.exp: skip delete
+PASS: gdb.base/skip.exp: info skip after deleting all
+Running ./gdb.base/skip-solib.exp ...
+Running ./gdb.base/so-impl-ld.exp ...
+PASS: gdb.base/so-impl-ld.exp: step over solib call
+FAIL: gdb.base/so-impl-ld.exp: step into solib call
+FAIL: gdb.base/so-impl-ld.exp: step in solib call
+FAIL: gdb.base/so-impl-ld.exp: step out of solib call
+Running ./gdb.base/so-indr-cl.exp ...
+Running ./gdb.base/solib-corrupted.exp ...
+Running ./gdb.base/solib-disc.exp ...
+PASS: gdb.base/solib-disc.exp: set stop-on-solib-events 1
+FAIL: gdb.base/solib-disc.exp: continue to load (the program exited)
+FAIL: gdb.base/solib-disc.exp: save $pc after load
+FAIL: gdb.base/solib-disc.exp: disconnect after load
+FAIL: gdb.base/solib-disc.exp: reconnect after load
+Running ./gdb.base/solib-display.exp ...
+Running ./gdb.base/solib.exp ...
+Running ./gdb.base/solib-nodir.exp ...
+Running ./gdb.base/solib-overlap.exp ...
+Running ./gdb.base/solib-symbol.exp ...
+PASS: gdb.base/solib-symbol.exp: foo2 in main
+FAIL: gdb.base/solib-symbol.exp: foo in libmd (got interactive prompt)
+PASS: gdb.base/solib-symbol.exp: continue
+FAIL: gdb.base/solib-symbol.exp: foo2 in mdlib
+Running ./gdb.base/solib-weak.exp ...
+FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
+FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 nodebug, lib1 first (the program exited)
+FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
+FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 nodebug, lib2 first (the program exited)
+FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
+FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 debug, lib1 first (the program exited)
+FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
+FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 debug, lib2 first (the program exited)
+FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
+FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 nodebug, lib1 first (the program exited)
+FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
+FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 nodebug, lib2 first (the program exited)
+FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
+FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 debug, lib1 first (the program exited)
+FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
+FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 debug, lib2 first (the program exited)
+Running ./gdb.base/source.exp ...
+PASS: gdb.base/source.exp: script contains error
+PASS: gdb.base/source.exp: source -v
+PASS: gdb.base/source.exp: source after -v
+PASS: gdb.base/source.exp: set search directories
+PASS: gdb.base/source.exp: source -s
+PASS: gdb.base/source.exp: source -s -v
+PASS: gdb.base/source.exp: source -v -s
+Running ./gdb.base/stack-checking.exp ...
+PASS: gdb.base/stack-checking.exp: continue to breakpoint: breakpoint for small frame
+PASS: gdb.base/stack-checking.exp: bt
+PASS: gdb.base/stack-checking.exp: continue to breakpoint: breakpoint for medium frame
+PASS: gdb.base/stack-checking.exp: bt
+PASS: gdb.base/stack-checking.exp: continue to breakpoint: breakpoint for big frame
+PASS: gdb.base/stack-checking.exp: bt
+Running ./gdb.base/stale-infcall.exp ...
+PASS: gdb.base/stale-infcall.exp: continue to breakpoint: test-next
+PASS: gdb.base/stale-infcall.exp: set $test_fail_bpnum=$bpnum
+XFAIL: gdb.base/stale-infcall.exp: test system longjmp tracking support
+UNTESTED: gdb.base/stale-infcall.exp: System lacks support for tracking longjmps
+Running ./gdb.base/stap-probe.exp ...
+gdb compile failed, ./gdb.base/stap-probe.c:39:21: fatal error: sys/sdt.h: No such file or directory
+ #include <sys/sdt.h>
+                     ^
+compilation terminated.
+UNTESTED: gdb.base/stap-probe.exp: without semaphore, not optimized: stap-probe.exp
+UNTESTED: gdb.base/stap-probe.exp: without semaphore, not optimized: stap-probe.exp
+Running ./gdb.base/start.exp ...
+UNTESTED: gdb.base/start.exp: start
+Running ./gdb.base/step-break.exp ...
+PASS: gdb.base/step-break.exp: breakpoint line number
+PASS: gdb.base/step-break.exp: run until breakpoint set at a line number
+PASS: gdb.base/step-break.exp: next 2 (1)
+PASS: gdb.base/step-break.exp: next 2 (2)
+PASS: gdb.base/step-break.exp: next 2 (3)
+PASS: gdb.base/step-break.exp: next 2 (4)
+PASS: gdb.base/step-break.exp: next 2 (5)
+PASS: gdb.base/step-break.exp: next 2 (6)
+Running ./gdb.base/step-bt.exp ...
+PASS: gdb.base/step-bt.exp: breakpoint at first instruction of hello()
+PASS: gdb.base/step-bt.exp: run to hello()
+PASS: gdb.base/step-bt.exp: step first instruction
+PASS: gdb.base/step-bt.exp: backtrace after first instruction step
+PASS: gdb.base/step-bt.exp: step second instruction
+PASS: gdb.base/step-bt.exp: backtrace after second instruction step
+Running ./gdb.base/step-line.exp ...
+PASS: gdb.base/step-line.exp: break f1
+PASS: gdb.base/step-line.exp: continue to f1
+PASS: gdb.base/step-line.exp: next over dummy 1
+PASS: gdb.base/step-line.exp: next to dummy 2
+PASS: gdb.base/step-line.exp: next over dummy 2
+PASS: gdb.base/step-line.exp: step into f2
+PASS: gdb.base/step-line.exp: next over dummy 4
+PASS: gdb.base/step-line.exp: next to dummy 5
+PASS: gdb.base/step-line.exp: next to dummy 6
+PASS: gdb.base/step-line.exp: next over dummy 6
+PASS: gdb.base/step-line.exp: next to dummy 7
+PASS: gdb.base/step-line.exp: next to dummy 8
+PASS: gdb.base/step-line.exp: next over dummy 8
+PASS: gdb.base/step-line.exp: next to dummy 9
+PASS: gdb.base/step-line.exp: next to dummy 10
+PASS: gdb.base/step-line.exp: next over dummy 10
+Running ./gdb.base/step-resume-infcall.exp ...
+PASS: gdb.base/step-resume-infcall.exp: step
+PASS: gdb.base/step-resume-infcall.exp: up
+PASS: gdb.base/step-resume-infcall.exp: set $b=$pc
+PASS: gdb.base/step-resume-infcall.exp: print $bpnum
+PASS: gdb.base/step-resume-infcall.exp: disass/m
+PASS: gdb.base/step-resume-infcall.exp: info breakpoints
+PASS: gdb.base/step-resume-infcall.exp: next
+PASS: gdb.base/step-resume-infcall.exp: p cond_hit
+Running ./gdb.base/step-symless.exp ...
+PASS: gdb.base/step-symless.exp: strip stub symbols
+PASS: gdb.base/step-symless.exp: step
+Running ./gdb.base/step-test.exp ...
+PASS: gdb.base/step-test.exp: next 1
+PASS: gdb.base/step-test.exp: step 1
+PASS: gdb.base/step-test.exp: next 2
+PASS: gdb.base/step-test.exp: step 3
+PASS: gdb.base/step-test.exp: next 3
+PASS: gdb.base/step-test.exp: next over
+PASS: gdb.base/step-test.exp: step into
+PASS: gdb.base/step-test.exp: step out
+PASS: gdb.base/step-test.exp: stepi to next line
+PASS: gdb.base/step-test.exp: stepi into function
+PASS: gdb.base/step-test.exp: stepi into function's first source line
+PASS: gdb.base/step-test.exp: stepi: finish call
+PASS: gdb.base/step-test.exp: nexti over function
+PASS: gdb.base/step-test.exp: set breakpoint at call to large_struct_by_value
+PASS: gdb.base/step-test.exp: run to pass large struct
+PASS: gdb.base/step-test.exp: large struct by value
+FAIL: gdb.base/step-test.exp: setting breakpoint at exit
+Running ./gdb.base/store.exp ...
+PASS: gdb.base/store.exp: tbreak wack_charest
+PASS: gdb.base/store.exp: continue to wack_charest
+PASS: gdb.base/store.exp: var charest l; print old l, expecting -1 .*
+PASS: gdb.base/store.exp: var charest l; print old r, expecting -2 .*
+PASS: gdb.base/store.exp: var charest l; setting l to 4
+PASS: gdb.base/store.exp: var charest l; print new l, expecting 4 ..004.
+PASS: gdb.base/store.exp: var charest l; next over add call
+PASS: gdb.base/store.exp: var charest l; print incremented l, expecting 2 ..002.
+PASS: gdb.base/store.exp: tbreak wack_short
+PASS: gdb.base/store.exp: continue to wack_short
+PASS: gdb.base/store.exp: var short l; print old l, expecting -1
+PASS: gdb.base/store.exp: var short l; print old r, expecting -2
+PASS: gdb.base/store.exp: var short l; setting l to 4
+PASS: gdb.base/store.exp: var short l; print new l, expecting 4
+PASS: gdb.base/store.exp: var short l; next over add call
+FAIL: gdb.base/store.exp: var short l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_int
+PASS: gdb.base/store.exp: continue to wack_int
+PASS: gdb.base/store.exp: var int l; print old l, expecting -1
+PASS: gdb.base/store.exp: var int l; print old r, expecting -2
+PASS: gdb.base/store.exp: var int l; setting l to 4
+PASS: gdb.base/store.exp: var int l; print new l, expecting 4
+PASS: gdb.base/store.exp: var int l; next over add call
+PASS: gdb.base/store.exp: var int l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_long
+PASS: gdb.base/store.exp: continue to wack_long
+PASS: gdb.base/store.exp: var long l; print old l, expecting -1
+PASS: gdb.base/store.exp: var long l; print old r, expecting -2
+PASS: gdb.base/store.exp: var long l; setting l to 4
+PASS: gdb.base/store.exp: var long l; print new l, expecting 4
+PASS: gdb.base/store.exp: var long l; next over add call
+PASS: gdb.base/store.exp: var long l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_longest
+PASS: gdb.base/store.exp: continue to wack_longest
+PASS: gdb.base/store.exp: var longest l; print old l, expecting -1
+PASS: gdb.base/store.exp: var longest l; print old r, expecting -2
+PASS: gdb.base/store.exp: var longest l; setting l to 4
+PASS: gdb.base/store.exp: var longest l; print new l, expecting 4
+PASS: gdb.base/store.exp: var longest l; next over add call
+PASS: gdb.base/store.exp: var longest l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_float
+PASS: gdb.base/store.exp: continue to wack_float
+PASS: gdb.base/store.exp: var float l; print old l, expecting -1
+PASS: gdb.base/store.exp: var float l; print old r, expecting -2
+PASS: gdb.base/store.exp: var float l; setting l to 4
+PASS: gdb.base/store.exp: var float l; print new l, expecting 4
+PASS: gdb.base/store.exp: var float l; next over add call
+FAIL: gdb.base/store.exp: var float l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_double
+PASS: gdb.base/store.exp: continue to wack_double
+PASS: gdb.base/store.exp: var double l; print old l, expecting -1
+PASS: gdb.base/store.exp: var double l; print old r, expecting -2
+PASS: gdb.base/store.exp: var double l; setting l to 4
+PASS: gdb.base/store.exp: var double l; print new l, expecting 4
+PASS: gdb.base/store.exp: var double l; next over add call
+FAIL: gdb.base/store.exp: var double l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_doublest
+PASS: gdb.base/store.exp: continue to wack_doublest
+PASS: gdb.base/store.exp: var doublest l; print old l, expecting -1
+PASS: gdb.base/store.exp: var doublest l; print old r, expecting -2
+PASS: gdb.base/store.exp: var doublest l; setting l to 4
+PASS: gdb.base/store.exp: var doublest l; print new l, expecting 4
+PASS: gdb.base/store.exp: var doublest l; next over add call
+FAIL: gdb.base/store.exp: var doublest l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak add_charest
+PASS: gdb.base/store.exp: continue to add_charest
+PASS: gdb.base/store.exp: upvar charest l; up
+PASS: gdb.base/store.exp: upvar charest l; print old l, expecting -1 .*
+PASS: gdb.base/store.exp: upvar charest l; print old r, expecting -2 .*
+PASS: gdb.base/store.exp: upvar charest l; set l to 4
+PASS: gdb.base/store.exp: upvar charest l; print new l, expecting 4 ..004.
+PASS: gdb.base/store.exp: tbreak add_short
+PASS: gdb.base/store.exp: continue to add_short
+PASS: gdb.base/store.exp: upvar short l; up
+PASS: gdb.base/store.exp: upvar short l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar short l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar short l; set l to 4
+PASS: gdb.base/store.exp: upvar short l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_int
+PASS: gdb.base/store.exp: continue to add_int
+PASS: gdb.base/store.exp: upvar int l; up
+PASS: gdb.base/store.exp: upvar int l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar int l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar int l; set l to 4
+PASS: gdb.base/store.exp: upvar int l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_long
+PASS: gdb.base/store.exp: continue to add_long
+PASS: gdb.base/store.exp: upvar long l; up
+PASS: gdb.base/store.exp: upvar long l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar long l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar long l; set l to 4
+PASS: gdb.base/store.exp: upvar long l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_longest
+PASS: gdb.base/store.exp: continue to add_longest
+PASS: gdb.base/store.exp: upvar longest l; up
+PASS: gdb.base/store.exp: upvar longest l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar longest l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar longest l; set l to 4
+PASS: gdb.base/store.exp: upvar longest l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_float
+PASS: gdb.base/store.exp: continue to add_float
+PASS: gdb.base/store.exp: upvar float l; up
+PASS: gdb.base/store.exp: upvar float l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar float l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar float l; set l to 4
+PASS: gdb.base/store.exp: upvar float l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_double
+PASS: gdb.base/store.exp: continue to add_double
+PASS: gdb.base/store.exp: upvar double l; up
+PASS: gdb.base/store.exp: upvar double l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar double l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar double l; set l to 4
+PASS: gdb.base/store.exp: upvar double l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_doublest
+PASS: gdb.base/store.exp: continue to add_doublest
+PASS: gdb.base/store.exp: upvar doublest l; up
+PASS: gdb.base/store.exp: upvar doublest l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar doublest l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar doublest l; set l to 4
+PASS: gdb.base/store.exp: upvar doublest l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak wack_struct_1
+FAIL: gdb.base/store.exp: continue to wack_struct_1
+FAIL: gdb.base/store.exp: var struct 1 u; next to add_struct_1 call
+PASS: gdb.base/store.exp: var struct 1 u; print old u, expecting {s = \{0}}
+PASS: gdb.base/store.exp: var struct 1 u; set u to s_1
+FAIL: gdb.base/store.exp: var struct 1 u; print new u, expecting {s = \{1}}
+PASS: gdb.base/store.exp: tbreak wack_struct_2
+FAIL: gdb.base/store.exp: continue to wack_struct_2
+FAIL: gdb.base/store.exp: var struct 2 u; next to add_struct_2 call
+PASS: gdb.base/store.exp: var struct 2 u; print old u, expecting {s = \{0, 0}}
+PASS: gdb.base/store.exp: var struct 2 u; set u to s_2
+FAIL: gdb.base/store.exp: var struct 2 u; print new u, expecting {s = \{1, 2}}
+PASS: gdb.base/store.exp: tbreak wack_struct_3
+FAIL: gdb.base/store.exp: continue to wack_struct_3
+FAIL: gdb.base/store.exp: var struct 3 u; next to add_struct_3 call
+PASS: gdb.base/store.exp: var struct 3 u; print old u, expecting {s = \{0, 0, 0}}
+PASS: gdb.base/store.exp: var struct 3 u; set u to s_3
+FAIL: gdb.base/store.exp: var struct 3 u; print new u, expecting {s = \{1, 2, 3}}
+PASS: gdb.base/store.exp: tbreak wack_struct_4
+FAIL: gdb.base/store.exp: continue to wack_struct_4
+FAIL: gdb.base/store.exp: var struct 4 u; next to add_struct_4 call
+PASS: gdb.base/store.exp: var struct 4 u; print old u, expecting {s = \{0, 0, 0, 0}}
+PASS: gdb.base/store.exp: var struct 4 u; set u to s_4
+FAIL: gdb.base/store.exp: var struct 4 u; print new u, expecting {s = \{1, 2, 3, 4}}
+PASS: gdb.base/store.exp: tbreak add_struct_1
+PASS: gdb.base/store.exp: continue to add_struct_1
+PASS: gdb.base/store.exp: up struct 1 u; up
+PASS: gdb.base/store.exp: up struct 1 u; print old u, expecting {s = \{0}}
+PASS: gdb.base/store.exp: up struct 1 u; set u to s_1
+PASS: gdb.base/store.exp: up struct 1 u; print new u, expecting {s = \{1}}
+PASS: gdb.base/store.exp: tbreak add_struct_2
+PASS: gdb.base/store.exp: continue to add_struct_2
+PASS: gdb.base/store.exp: up struct 2 u; up
+PASS: gdb.base/store.exp: up struct 2 u; print old u, expecting {s = \{0, 0}}
+PASS: gdb.base/store.exp: up struct 2 u; set u to s_2
+PASS: gdb.base/store.exp: up struct 2 u; print new u, expecting {s = \{1, 2}}
+PASS: gdb.base/store.exp: tbreak add_struct_3
+PASS: gdb.base/store.exp: continue to add_struct_3
+PASS: gdb.base/store.exp: up struct 3 u; up
+PASS: gdb.base/store.exp: up struct 3 u; print old u, expecting {s = \{0, 0, 0}}
+PASS: gdb.base/store.exp: up struct 3 u; set u to s_3
+PASS: gdb.base/store.exp: up struct 3 u; print new u, expecting {s = \{1, 2, 3}}
+PASS: gdb.base/store.exp: tbreak add_struct_4
+PASS: gdb.base/store.exp: continue to add_struct_4
+PASS: gdb.base/store.exp: up struct 4 u; up
+PASS: gdb.base/store.exp: up struct 4 u; print old u, expecting {s = \{0, 0, 0, 0}}
+PASS: gdb.base/store.exp: up struct 4 u; set u to s_4
+PASS: gdb.base/store.exp: up struct 4 u; print new u, expecting {s = \{1, 2, 3, 4}}
+PASS: gdb.base/store.exp: tbreak wack_field_1
+PASS: gdb.base/store.exp: continue field 1
+PASS: gdb.base/store.exp: next field 1
+PASS: gdb.base/store.exp: old field 1
+PASS: gdb.base/store.exp: set variable u = F_1
+PASS: gdb.base/store.exp: new field 1
+PASS: gdb.base/store.exp: set variable u = F_1, u.i = f_1.i
+PASS: gdb.base/store.exp: f_1.i
+PASS: gdb.base/store.exp: set variable u = F_1, u.j = f_1.j
+PASS: gdb.base/store.exp: f_1.j
+PASS: gdb.base/store.exp: set variable u = F_1, u.k = f_1.k
+PASS: gdb.base/store.exp: f_1.k
+PASS: gdb.base/store.exp: set variable u = f_1, u.i = F_1.i
+PASS: gdb.base/store.exp: F_1.i
+PASS: gdb.base/store.exp: set variable u = f_1, u.j = F_1.j
+PASS: gdb.base/store.exp: F_1.j
+PASS: gdb.base/store.exp: set variable u = f_1, u.k = F_1.k
+PASS: gdb.base/store.exp: F_1.k
+PASS: gdb.base/store.exp: tbreak wack_field_2
+PASS: gdb.base/store.exp: continue field 2
+PASS: gdb.base/store.exp: next field 2
+PASS: gdb.base/store.exp: old field 2
+PASS: gdb.base/store.exp: set variable u = F_2
+PASS: gdb.base/store.exp: new field 2
+PASS: gdb.base/store.exp: set variable u = F_2, u.i = f_2.i
+PASS: gdb.base/store.exp: f_2.i
+PASS: gdb.base/store.exp: set variable u = F_2, u.j = f_2.j
+PASS: gdb.base/store.exp: f_2.j
+PASS: gdb.base/store.exp: set variable u = F_2, u.k = f_2.k
+PASS: gdb.base/store.exp: f_2.k
+PASS: gdb.base/store.exp: set variable u = f_2, u.i = F_2.i
+PASS: gdb.base/store.exp: F_2.i
+PASS: gdb.base/store.exp: set variable u = f_2, u.j = F_2.j
+PASS: gdb.base/store.exp: F_2.j
+PASS: gdb.base/store.exp: set variable u = f_2, u.k = F_2.k
+PASS: gdb.base/store.exp: F_2.k
+PASS: gdb.base/store.exp: tbreak wack_field_3
+PASS: gdb.base/store.exp: continue field 3
+PASS: gdb.base/store.exp: next field 3
+PASS: gdb.base/store.exp: old field 3
+PASS: gdb.base/store.exp: set variable u = F_3
+PASS: gdb.base/store.exp: new field 3
+PASS: gdb.base/store.exp: set variable u = F_3, u.i = f_3.i
+PASS: gdb.base/store.exp: f_3.i
+PASS: gdb.base/store.exp: set variable u = F_3, u.j = f_3.j
+PASS: gdb.base/store.exp: f_3.j
+PASS: gdb.base/store.exp: set variable u = F_3, u.k = f_3.k
+PASS: gdb.base/store.exp: f_3.k
+PASS: gdb.base/store.exp: set variable u = f_3, u.i = F_3.i
+PASS: gdb.base/store.exp: F_3.i
+PASS: gdb.base/store.exp: set variable u = f_3, u.j = F_3.j
+PASS: gdb.base/store.exp: F_3.j
+PASS: gdb.base/store.exp: set variable u = f_3, u.k = F_3.k
+PASS: gdb.base/store.exp: F_3.k
+PASS: gdb.base/store.exp: tbreak wack_field_4
+PASS: gdb.base/store.exp: continue field 4
+PASS: gdb.base/store.exp: next field 4
+PASS: gdb.base/store.exp: old field 4
+PASS: gdb.base/store.exp: set variable u = F_4
+PASS: gdb.base/store.exp: new field 4
+PASS: gdb.base/store.exp: set variable u = F_4, u.i = f_4.i
+PASS: gdb.base/store.exp: f_4.i
+PASS: gdb.base/store.exp: set variable u = F_4, u.j = f_4.j
+PASS: gdb.base/store.exp: f_4.j
+PASS: gdb.base/store.exp: set variable u = F_4, u.k = f_4.k
+PASS: gdb.base/store.exp: f_4.k
+PASS: gdb.base/store.exp: set variable u = f_4, u.i = F_4.i
+PASS: gdb.base/store.exp: F_4.i
+PASS: gdb.base/store.exp: set variable u = f_4, u.j = F_4.j
+PASS: gdb.base/store.exp: F_4.j
+PASS: gdb.base/store.exp: set variable u = f_4, u.k = F_4.k
+PASS: gdb.base/store.exp: F_4.k
+Running ./gdb.base/structs2.exp ...
+PASS: gdb.base/structs2.exp: set width 0
+FAIL: gdb.base/structs2.exp: structs2 sanity check
+PASS: gdb.base/structs2.exp: structs2 breakpoint set
+FAIL: gdb.base/structs2.exp: structs2 continue1
+FAIL: gdb.base/structs2.exp: structs2 continue2
+Running ./gdb.base/structs3.exp ...
+PASS: gdb.base/structs3.exp: print two
+PASS: gdb.base/structs3.exp: print *twop
+PASS: gdb.base/structs3.exp: print *(struct Two *)onep
+PASS: gdb.base/structs3.exp: print *(tTwo *)onep
+Running ./gdb.base/structs.exp ...
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: continue to breakpoint: chartest-done
+PASS: gdb.base/structs.exp: p chartest
+PASS: gdb.base/structs.exp: ptype foo1; structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 7 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 7 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 7 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 8 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 8 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 8 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 9 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 9 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 9 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 10 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 10 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 10 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 11 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 11 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 11 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 12 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 12 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 12 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 13 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 13 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 13 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 14 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 14 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 14 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 15 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 15 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 15 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 16 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 16 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 16 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 17 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 17 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 17 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 3 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 3 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 3 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 3 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 3 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 3 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 4 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 4 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 4 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 4 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 4 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 4 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 5 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 5 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 5 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 5 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 5 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 5 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 5 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 5 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 5 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 6 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 6 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 6 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 6 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 6 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 6 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 6 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 6 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 6 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 7 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 7 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 7 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 7 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 7 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 7 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 7 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 7 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 7 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 8 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 8 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 8 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 8 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 8 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 8 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 8 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 8 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 8 structs-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 3 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 3 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 3 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 3 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 3 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 3 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 4 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 4 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 4 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 4 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 4 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 4 structs-ts
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ti
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ti
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ti
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ti
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tl
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tl
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tl
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tl
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tll
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tll
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tll
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tll
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tll
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tll
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tll
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tll
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tll
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tll
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tll
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tll
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tll
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tll
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tll
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tf
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tf
+FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tf
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tf
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf
+FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-td
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-td
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-td
+FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-td
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-td
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-td
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-td
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-td
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-td
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tld
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tld
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tld
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tld
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tld
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tld
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tld
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tld
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tld
+FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tld
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tld
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tld
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tld
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tld
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tld
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 7 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 7 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 7 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 8 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 8 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 8 structs-ts-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-ti-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tl-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tll-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tll-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tll-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tf-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-td-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tld-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tld-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tld-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tll
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tll
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tll
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tll
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tf
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-td
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tld
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tld
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tld
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tld
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-td-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tf-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-td
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf-td
+Running ./gdb.base/subst.exp ...
+PASS: gdb.base/subst.exp: deactivate GDB's confirmation interface
+PASS: gdb.base/subst.exp: show substitute-path, no rule entered yet
+PASS: gdb.base/subst.exp: show substitute-path from, no rule entered yet
+PASS: gdb.base/subst.exp: show substitute-path, too many arguments
+PASS: gdb.base/subst.exp: unset substitute-path from, no rule entered yet
+PASS: gdb.base/subst.exp: unset substitute-path, no rule entered yet
+PASS: gdb.base/subst.exp: unset substitute-path from, no rule entered yet
+PASS: gdb.base/subst.exp: unset substitute-path, too many arguments
+PASS: gdb.base/subst.exp: set substitute-path, too many arguments
+PASS: gdb.base/subst.exp: set substitute-path, too few arguments
+PASS: gdb.base/subst.exp: set substitute-path, first argument is empty string
+PASS: gdb.base/subst.exp: add from -> to substitution rule
+PASS: gdb.base/subst.exp: add from1 -> to1 substitution rule
+PASS: gdb.base/subst.exp: add source -> destination substitution rule
+PASS: gdb.base/subst.exp: add depuis -> vers substitution rule
+PASS: gdb.base/subst.exp: add substitution rule to empty string
+PASS: gdb.base/subst.exp: show substitute-path after all paths added
+PASS: gdb.base/subst.exp: show substitute-path from, after all paths added
+PASS: gdb.base/subst.exp: show substitute-path depuis, after all paths added
+PASS: gdb.base/subst.exp: show substitute-path garbage, after all paths added
+PASS: gdb.base/subst.exp: unset substitute-path from
+PASS: gdb.base/subst.exp: show substitute-path from, after unsetting it
+PASS: gdb.base/subst.exp: show substitute-path after from rule removed
+PASS: gdb.base/subst.exp: unset substitute-path from after the rule was removed
+PASS: gdb.base/subst.exp: unset substitute-path depuis (middle of list)
+PASS: gdb.base/subst.exp: show substitute-path after depuis rule removed
+PASS: gdb.base/subst.exp: unset substitute-path empty (end of list)
+PASS: gdb.base/subst.exp: show substitute-path after empty rule removed
+PASS: gdb.base/subst.exp: remove all remaining substitution rules
+PASS: gdb.base/subst.exp: show substitute-path after all remaining rules removed
+Running ./gdb.base/symbol-without-target_section.exp ...
+PASS: gdb.base/symbol-without-target_section.exp: add-symbol-file
+PASS: gdb.base/symbol-without-target_section.exp: list main
+PASS: gdb.base/symbol-without-target_section.exp: print symbol_without_target_section
+Running ./gdb.base/term.exp ...
+Running ./gdb.base/testenv.exp ...
+Running ./gdb.base/trace-commands.exp ...
+PASS: gdb.base/trace-commands.exp: show trace-commands says off
+PASS: gdb.base/trace-commands.exp: source -v
+PASS: gdb.base/trace-commands.exp: set trace-commands
+PASS: gdb.base/trace-commands.exp: show trace-commands says on
+PASS: gdb.base/trace-commands.exp: simple trace-commands test
+PASS: gdb.base/trace-commands.exp: nested trace-commands test
+PASS: gdb.base/trace-commands.exp: define user command
+PASS: gdb.base/trace-commands.exp: nested trace-commands test with source
+PASS: gdb.base/trace-commands.exp: depth resets on error part 1
+PASS: gdb.base/trace-commands.exp: depth resets on error part 2
+Running ./gdb.base/tui-layout.exp ...
+PASS: gdb.base/tui-layout.exp: layout asm
+Running ./gdb.base/twice.exp ...
+PASS: gdb.base/twice.exp: step
+Running ./gdb.base/type-opaque.exp ...
+FAIL: gdb.base/type-opaque.exp: opaque struct type resolving
+PASS: gdb.base/type-opaque.exp: empty struct type resolving
+PASS: gdb.base/type-opaque.exp: filled struct type resolving
+FAIL: gdb.base/type-opaque.exp: opaque union type resolving
+PASS: gdb.base/type-opaque.exp: empty union type resolving
+PASS: gdb.base/type-opaque.exp: filled union type resolving
+Running ./gdb.base/ui-redirect.exp ...
+PASS: gdb.base/ui-redirect.exp: commands
+PASS: gdb.base/ui-redirect.exp: print 1
+PASS: gdb.base/ui-redirect.exp: end
+PASS: gdb.base/ui-redirect.exp: set logging file /dev/null
+PASS: gdb.base/ui-redirect.exp: set logging on
+PASS: gdb.base/ui-redirect.exp: save breakpoints /dev/null
+PASS: gdb.base/ui-redirect.exp: set logging off
+PASS: gdb.base/ui-redirect.exp: help
+Running ./gdb.base/unload.exp ...
+PASS: gdb.base/unload.exp: pending breakpoint info before run
+FAIL: gdb.base/unload.exp: running program (the program exited)
+FAIL: gdb.base/unload.exp: pending breakpoint info on first run at shrfunc1
+FAIL: gdb.base/unload.exp: continuing to unloaded libfile (the program is no longer running)
+FAIL: gdb.base/unload.exp: print y from libfile
+FAIL: gdb.base/unload.exp: rerun to shared library breakpoint
+FAIL: gdb.base/unload.exp: pending breakpoint info on second run at shrfunc1
+FAIL: gdb.base/unload.exp: continuing to unloaded libfile (the program exited)
+FAIL: gdb.base/unload.exp: continue to shrfunc2 (the program is no longer running)
+FAIL: gdb.base/unload.exp: pending breakpoint info on second run at shrfunc2
+FAIL: gdb.base/unload.exp: continuing to unloaded libfile2 (the program is no longer running)
+FAIL: gdb.base/unload.exp: print y from libfile2
+Running ./gdb.base/until.exp ...
+PASS: gdb.base/until.exp: until line number
+PASS: gdb.base/until.exp: malformed until
+PASS: gdb.base/until.exp: until factorial, recursive function
+PASS: gdb.base/until.exp: until func, not called by current frame
+Running ./gdb.base/unwindonsignal.exp ...
+Running ./gdb.base/valgrind-db-attach.exp ...
+Running ./gdb.base/valgrind-infcall.exp ...
+Running ./gdb.base/value-double-free.exp ...
+FAIL: gdb.base/value-double-free.exp: watch var
+PASS: gdb.base/value-double-free.exp: continue
+PASS: gdb.base/value-double-free.exp: print empty()
+PASS: gdb.base/value-double-free.exp: help help
+Running ./gdb.base/varargs.exp ...
+PASS: gdb.base/varargs.exp: set print sevenbit-strings
+PASS: gdb.base/varargs.exp: set print address off
+PASS: gdb.base/varargs.exp: set width 0
+Running ./gdb.base/volatile.exp ...
+PASS: gdb.base/volatile.exp: continue to marker1
+PASS: gdb.base/volatile.exp: up from marker1
+PASS: gdb.base/volatile.exp: ptype vox
+PASS: gdb.base/volatile.exp: ptype victuals
+PASS: gdb.base/volatile.exp: ptype vixen
+PASS: gdb.base/volatile.exp: ptype vitriol
+PASS: gdb.base/volatile.exp: ptype vellum
+PASS: gdb.base/volatile.exp: ptype valve
+PASS: gdb.base/volatile.exp: ptype vacuity
+PASS: gdb.base/volatile.exp: ptype vertigo
+PASS: gdb.base/volatile.exp: ptype vampire
+PASS: gdb.base/volatile.exp: ptype viper
+PASS: gdb.base/volatile.exp: ptype vigour
+PASS: gdb.base/volatile.exp: ptype vapour
+PASS: gdb.base/volatile.exp: ptype ventricle
+PASS: gdb.base/volatile.exp: ptype vigintillion
+PASS: gdb.base/volatile.exp: ptype vocation
+PASS: gdb.base/volatile.exp: ptype veracity
+PASS: gdb.base/volatile.exp: ptype vapidity
+PASS: gdb.base/volatile.exp: ptype velocity
+PASS: gdb.base/volatile.exp: ptype veneer
+PASS: gdb.base/volatile.exp: ptype video
+PASS: gdb.base/volatile.exp: ptype vacuum
+PASS: gdb.base/volatile.exp: ptype veniality
+PASS: gdb.base/volatile.exp: ptype vitality
+PASS: gdb.base/volatile.exp: ptype voracity
+PASS: gdb.base/volatile.exp: ptype victor
+PASS: gdb.base/volatile.exp: ptype vicar
+PASS: gdb.base/volatile.exp: ptype victory
+PASS: gdb.base/volatile.exp: ptype vicarage
+PASS: gdb.base/volatile.exp: ptype vein
+PASS: gdb.base/volatile.exp: ptype vogue
+PASS: gdb.base/volatile.exp: ptype cavern
+PASS: gdb.base/volatile.exp: ptype coverlet
+PASS: gdb.base/volatile.exp: ptype caveat
+PASS: gdb.base/volatile.exp: ptype covenant
+PASS: gdb.base/volatile.exp: ptype vizier
+PASS: gdb.base/volatile.exp: ptype vanadium
+PASS: gdb.base/volatile.exp: ptype vane
+PASS: gdb.base/volatile.exp: ptype veldt
+PASS: gdb.base/volatile.exp: ptype cove
+PASS: gdb.base/volatile.exp: ptype cavity
+PASS: gdb.base/volatile.exp: ptype vagus
+PASS: gdb.base/volatile.exp: ptype vagrancy
+PASS: gdb.base/volatile.exp: ptype vagary
+PASS: gdb.base/volatile.exp: ptype vendor
+PASS: gdb.base/volatile.exp: ptype qux2
+Running ./gdb.base/watch-cond.exp ...
+PASS: gdb.base/watch-cond.exp: set write watchpoint on global variable, local condition
+PASS: gdb.base/watch-cond.exp: watchpoint with global expression, local condition evaluates in correct frame
+PASS: gdb.base/watch-cond.exp: set write watchpoint on local variable, local condition
+PASS: gdb.base/watch-cond.exp: watchpoint with local expression, local condition evaluates in correct frame
+PASS: gdb.base/watch-cond.exp: set write watchpoint on global2 variable
+PASS: gdb.base/watch-cond.exp: watchpoint on global2 variable triggers
+PASS: gdb.base/watch-cond.exp: condition of watchpoint 2 changes
+PASS: gdb.base/watch-cond.exp: watchpoint stops with untestable local expression
+Running ./gdb.base/watch-cond-infcall.exp ...
+PASS: gdb.base/watch-cond-infcall.exp: sw: watch var if return_1 ()
+PASS: gdb.base/watch-cond-infcall.exp: sw: continue
+Running ./gdb.base/watch-non-mem.exp ...
+PASS: gdb.base/watch-non-mem.exp: set write watchpoint on $pc
+PASS: gdb.base/watch-non-mem.exp: watchpoint on $pc works
+Running ./gdb.base/watchpoint-cond-gone.exp ...
+PASS: gdb.base/watchpoint-cond-gone.exp: set can-use-hw-watchpoints 0
+PASS: gdb.base/watchpoint-cond-gone.exp: continue to breakpoint: Place to set the watchpoint
+PASS: gdb.base/watchpoint-cond-gone.exp: Place the watchpoint
+PASS: gdb.base/watchpoint-cond-gone.exp: Catch the no longer valid watchpoint
+Running ./gdb.base/watchpoint-delete.exp ...
+PASS: gdb.base/watchpoint-delete.exp: set can-use-hw-watchpoints 0
+PASS: gdb.base/watchpoint-delete.exp: continue to breakpoint: break-here
+PASS: gdb.base/watchpoint-delete.exp: watch x
+PASS: gdb.base/watchpoint-delete.exp: delete $bpnum
+Running ./gdb.base/watchpoint.exp ...
+PASS: gdb.base/watchpoint.exp: disable fast watches
+PASS: gdb.base/watchpoint.exp: show disable fast watches
+PASS: gdb.base/watchpoint.exp: set slow conditional watch
+PASS: gdb.base/watchpoint.exp: trigger slow conditional watch
+PASS: gdb.base/watchpoint.exp: delete watch ival3
+PASS: gdb.base/watchpoint.exp: set slow condition watch w/thread
+PASS: gdb.base/watchpoint.exp: delete watch w/condition and thread
+PASS: gdb.base/watchpoint.exp: rwatch disallowed when can-set-hw-watchpoints cleared
+PASS: gdb.base/watchpoint.exp: set breakpoint at marker1
+PASS: gdb.base/watchpoint.exp: set breakpoint at marker2
+PASS: gdb.base/watchpoint.exp: info break in watchpoint.exp
+PASS: gdb.base/watchpoint.exp: set watchpoint on ival3
+PASS: gdb.base/watchpoint.exp: watchpoint found in watchpoint/breakpoint table
+PASS: gdb.base/watchpoint.exp: disable watchpoint
+PASS: gdb.base/watchpoint.exp: disable watchpoint in test_simple_watchpoint
+PASS: gdb.base/watchpoint.exp: run to marker1 in test_simple_watchpoint
+PASS: gdb.base/watchpoint.exp: enable watchpoint
+PASS: gdb.base/watchpoint.exp: break func1
+PASS: gdb.base/watchpoint.exp: set $func1_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: continue to breakpoint at func1
+PASS: gdb.base/watchpoint.exp: watchpoint hit, first time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 1
+PASS: gdb.base/watchpoint.exp: delete $func1_breakpoint_number
+PASS: gdb.base/watchpoint.exp: watchpoint hit, second time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 2
+PASS: gdb.base/watchpoint.exp: watchpoint hit, third time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 3
+PASS: gdb.base/watchpoint.exp: watchpoint hit, fourth time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 4
+PASS: gdb.base/watchpoint.exp: watchpoint hit, fifth time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 5
+PASS: gdb.base/watchpoint.exp: continue to marker2
+PASS: gdb.base/watchpoint.exp: watchpoint disabled
+FAIL: gdb.base/watchpoint.exp: setting breakpoint at exit
+PASS: gdb.base/watchpoint.exp: watchpoints found in watchpoint/breakpoint table
+PASS: gdb.base/watchpoint.exp: disable watchpoint in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: run to marker1 in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: watchpoint enabled
+PASS: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, first time
+PASS: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, second time
+PASS: gdb.base/watchpoint.exp: disable watchpoint #2 in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: watchpoint disabled in table
+PASS: gdb.base/watchpoint.exp: disabled watchpoint skipped
+FAIL: gdb.base/watchpoint.exp: setting breakpoint at exit
+PASS: gdb.base/watchpoint.exp: watch ival2
+PASS: gdb.base/watchpoint.exp: break func2 if 0
+PASS: gdb.base/watchpoint.exp: p $func2_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: calling function with watchpoint enabled
+PASS: gdb.base/watchpoint.exp: finish from marker1
+PASS: gdb.base/watchpoint.exp: back at main from marker1
+PASS: gdb.base/watchpoint.exp: next to `for' in watchpoint.exp
+PASS: gdb.base/watchpoint.exp: until to ival1 assignment
+PASS: gdb.base/watchpoint.exp: until to ival3 assignment
+PASS: gdb.base/watchpoint.exp: until out of loop
+PASS: gdb.base/watchpoint.exp: step to ival2 assignment
+PASS: gdb.base/watchpoint.exp: watch ptr1->val
+PASS: gdb.base/watchpoint.exp: break marker5
+PASS: gdb.base/watchpoint.exp: Test complex watchpoint
+PASS: gdb.base/watchpoint.exp: did not trigger wrong watchpoint
+PASS: gdb.base/watchpoint.exp: disable in test_complex_watchpoint
+PASS: gdb.base/watchpoint.exp: break marker6
+PASS: gdb.base/watchpoint.exp: continue to marker6
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here
+PASS: gdb.base/watchpoint.exp: set local watch
+PASS: gdb.base/watchpoint.exp: trigger local watch
+PASS: gdb.base/watchpoint.exp: self-delete local watch
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here
+PASS: gdb.base/watchpoint.exp: set partially local watch
+PASS: gdb.base/watchpoint.exp: trigger1 partially local watch
+PASS: gdb.base/watchpoint.exp: trigger2 partially local watch
+PASS: gdb.base/watchpoint.exp: self-delete partially local watch
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here
+PASS: gdb.base/watchpoint.exp: set static local watch
+PASS: gdb.base/watchpoint.exp: trigger static local watch
+PASS: gdb.base/watchpoint.exp: continue after trigger static local watch
+PASS: gdb.base/watchpoint.exp: static local watch did not self-delete
+PASS: gdb.base/watchpoint.exp: tbreak recurser
+PASS: gdb.base/watchpoint.exp: cont
+PASS: gdb.base/watchpoint.exp: next past local_x initialization
+PASS: gdb.base/watchpoint.exp: set local watch in recursive call
+PASS: gdb.base/watchpoint.exp: trigger local watch in recursive call
+PASS: gdb.base/watchpoint.exp: self-delete local watch in recursive call
+PASS: gdb.base/watchpoint.exp: cont
+PASS: gdb.base/watchpoint.exp: tbreak recurser
+PASS: gdb.base/watchpoint.exp: cont
+PASS: gdb.base/watchpoint.exp: next past local_x initialization
+PASS: gdb.base/watchpoint.exp: set local watch in recursive call with explicit scope
+PASS: gdb.base/watchpoint.exp: trigger local watch with explicit scope in recursive call
+PASS: gdb.base/watchpoint.exp: self-delete local watch with explicit scope in recursive call (2)
+PASS: gdb.base/watchpoint.exp: disable in test_complex_watchpoint
+FAIL: gdb.base/watchpoint.exp: setting breakpoint at exit
+PASS: gdb.base/watchpoint.exp: watchpoint refused to insert on nonexistent struct member
+PASS: gdb.base/watchpoint.exp: watch global_ptr
+PASS: gdb.base/watchpoint.exp: watch *(int *) 0
+PASS: gdb.base/watchpoint.exp: watch -location *global_ptr
+PASS: gdb.base/watchpoint.exp: watch *global_ptr
+PASS: gdb.base/watchpoint.exp: set $global_ptr_breakpoint_number = $bpnum
+FAIL: gdb.base/watchpoint.exp: global_ptr next
+FAIL: gdb.base/watchpoint.exp: next over ptr init
+FAIL: gdb.base/watchpoint.exp: next over buffer set
+PASS: gdb.base/watchpoint.exp: delete $global_ptr_breakpoint_number
+PASS: gdb.base/watchpoint.exp: watch **global_ptr_ptr
+PASS: gdb.base/watchpoint.exp: set $global_ptr_ptr_breakpoint_number = $bpnum
+FAIL: gdb.base/watchpoint.exp: global_ptr_ptr next
+FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr init
+FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr buffer set
+FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr pointer advance
+PASS: gdb.base/watchpoint.exp: delete $global_ptr_ptr_breakpoint_number
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: second x assignment
+PASS: gdb.base/watchpoint.exp: watch x
+PASS: gdb.base/watchpoint.exp: next after watch x
+PASS: gdb.base/watchpoint.exp: delete watch x
+PASS: gdb.base/watchpoint.exp: watch buf
+PASS: gdb.base/watchpoint.exp: watchpoint on buf hit
+PASS: gdb.base/watchpoint.exp: delete watch buf
+PASS: gdb.base/watchpoint.exp: number is constant
+PASS: gdb.base/watchpoint.exp: number with cast is constant
+PASS: gdb.base/watchpoint.exp: marker1 is constant
+PASS: gdb.base/watchpoint.exp: watch count + 6
+PASS: gdb.base/watchpoint.exp: delete watchpoint `count + 6'
+PASS: gdb.base/watchpoint.exp: watch 7 + count
+PASS: gdb.base/watchpoint.exp: delete watchpoint `7 + count'
+PASS: gdb.base/watchpoint.exp: watch $pc
+PASS: gdb.base/watchpoint.exp: disable watchpoint `$pc'
+PASS: gdb.base/watchpoint.exp: reenable watchpoint `$pc'
+PASS: gdb.base/watchpoint.exp: watchpoint `$pc' is enabled
+PASS: gdb.base/watchpoint.exp: delete watchpoint `$pc'
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func5 breakpoint here
+PASS: gdb.base/watchpoint.exp: watch -location .x
+PASS: gdb.base/watchpoint.exp: continue with watch -location
+PASS: gdb.base/watchpoint.exp: delete watch -location
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func6 breakpoint here
+PASS: gdb.base/watchpoint.exp: watch foo2
+PASS: gdb.base/watchpoint.exp: continue with watch foo2
+PASS: gdb.base/watchpoint.exp: delete watch foo2
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func7 breakpoint here
+PASS: gdb.base/watchpoint.exp: watch foo4
+PASS: gdb.base/watchpoint.exp: continue with watch foo4
+PASS: gdb.base/watchpoint.exp: delete watch foo4
+Running ./gdb.base/watchpoint-hw.exp ...
+Running ./gdb.base/watchpoint-hw-hit-once.exp ...
+Running ./gdb.base/watchpoints.exp ...
+PASS: gdb.base/watchpoints.exp: watchpoint hit, first time
+PASS: gdb.base/watchpoints.exp: watchpoint hit, first time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 1
+PASS: gdb.base/watchpoints.exp: watchpoint ival1 hit, second time
+PASS: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 2
+PASS: gdb.base/watchpoints.exp: watchpoint hit, second time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 2
+PASS: gdb.base/watchpoints.exp: watchpoint ival1 hit, third time
+PASS: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 3
+PASS: gdb.base/watchpoints.exp: watchpoint hit, third time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 3
+PASS: gdb.base/watchpoints.exp: watchpoint hit, fourth time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 4
+PASS: gdb.base/watchpoints.exp: watchpoint hit, fifth time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 5
+Running ./gdb.base/watchpoint-solib.exp ...
+PASS: gdb.base/watchpoint-solib.exp: set pending breakpoint
+FAIL: gdb.base/watchpoint-solib.exp: continue to foo (the program exited)
+FAIL: gdb.base/watchpoint-solib.exp: set watchpoint on g
+FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit (the program is no longer running)
+PASS: gdb.base/watchpoint-solib.exp: rerun to main
+FAIL: gdb.base/watchpoint-solib.exp: continue to foo again (the program exited)
+FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit again (the program is no longer running)
+Running ./gdb.base/watch-read.exp ...
+Running ./gdb.base/watch_thread_num.exp ...
+Running ./gdb.base/watch-vfork.exp ...
+Running ./gdb.base/wchar.exp ...
+PASS: gdb.base/wchar.exp: print narrow
+PASS: gdb.base/wchar.exp: print single
+PASS: gdb.base/wchar.exp: print simple
+PASS: gdb.base/wchar.exp: print difficile
+PASS: gdb.base/wchar.exp: print simple[2]
+PASS: gdb.base/wchar.exp: print difficile[2]
+PASS: gdb.base/wchar.exp: print repeat
+PASS: gdb.base/wchar.exp: print repeat_p
+PASS: gdb.base/wchar.exp: set print null on
+PASS: gdb.base/wchar.exp: print repeat (print null on)
+PASS: gdb.base/wchar.exp: set print elements 3
+PASS: gdb.base/wchar.exp: print repeat (print elements 3)
+PASS: gdb.base/wchar.exp: print repeat_p (print elements 3)
+Running ./gdb.base/whatis.exp ...
+PASS: gdb.base/whatis.exp: whatis char
+PASS: gdb.base/whatis.exp: whatis signed char
+PASS: gdb.base/whatis.exp: whatis unsigned char
+PASS: gdb.base/whatis.exp: whatis short
+PASS: gdb.base/whatis.exp: whatis signed short
+PASS: gdb.base/whatis.exp: whatis unsigned short
+PASS: gdb.base/whatis.exp: whatis int
+PASS: gdb.base/whatis.exp: whatis signed int
+PASS: gdb.base/whatis.exp: whatis unsigned int
+PASS: gdb.base/whatis.exp: whatis long
+PASS: gdb.base/whatis.exp: whatis signed long
+PASS: gdb.base/whatis.exp: whatis unsigned long
+PASS: gdb.base/whatis.exp: whatis unsigned long long
+PASS: gdb.base/whatis.exp: whatis float
+PASS: gdb.base/whatis.exp: whatis double
+PASS: gdb.base/whatis.exp: whatis char array
+PASS: gdb.base/whatis.exp: whatis signed char array
+PASS: gdb.base/whatis.exp: whatis unsigned char array
+PASS: gdb.base/whatis.exp: whatis short array
+PASS: gdb.base/whatis.exp: whatis signed short array
+PASS: gdb.base/whatis.exp: whatis unsigned short array
+PASS: gdb.base/whatis.exp: whatis int array
+PASS: gdb.base/whatis.exp: whatis signed int array
+PASS: gdb.base/whatis.exp: whatis unsigned int array
+PASS: gdb.base/whatis.exp: whatis long array
+PASS: gdb.base/whatis.exp: whatis signed long array
+PASS: gdb.base/whatis.exp: whatis unsigned long array
+PASS: gdb.base/whatis.exp: whatis unsigned long array
+PASS: gdb.base/whatis.exp: whatis float array
+PASS: gdb.base/whatis.exp: whatis double array
+PASS: gdb.base/whatis.exp: whatis char pointer
+PASS: gdb.base/whatis.exp: whatis signed char pointer
+PASS: gdb.base/whatis.exp: whatis unsigned char pointer
+PASS: gdb.base/whatis.exp: whatis short pointer
+PASS: gdb.base/whatis.exp: whatis signed short pointer
+PASS: gdb.base/whatis.exp: whatis unsigned short pointer
+PASS: gdb.base/whatis.exp: whatis int pointer
+PASS: gdb.base/whatis.exp: whatis signed int pointer
+PASS: gdb.base/whatis.exp: whatis unsigned int pointer
+PASS: gdb.base/whatis.exp: whatis long pointer
+PASS: gdb.base/whatis.exp: whatis signed long pointer
+PASS: gdb.base/whatis.exp: whatis unsigned long pointer
+PASS: gdb.base/whatis.exp: whatis long long pointer
+PASS: gdb.base/whatis.exp: whatis signed long long pointer
+PASS: gdb.base/whatis.exp: whatis unsigned long long pointer
+PASS: gdb.base/whatis.exp: whatis float pointer
+PASS: gdb.base/whatis.exp: whatis double pointer
+PASS: gdb.base/whatis.exp: whatis named structure
+PASS: gdb.base/whatis.exp: whatis named structure using type name
+PASS: gdb.base/whatis.exp: whatis unnamed structure
+PASS: gdb.base/whatis.exp: whatis named union
+PASS: gdb.base/whatis.exp: whatis named union using type name
+PASS: gdb.base/whatis.exp: whatis unnamed union
+PASS: gdb.base/whatis.exp: whatis char function
+PASS: gdb.base/whatis.exp: whatis signed char function
+PASS: gdb.base/whatis.exp: whatis unsigned char function
+PASS: gdb.base/whatis.exp: whatis short function
+PASS: gdb.base/whatis.exp: whatis signed short function
+PASS: gdb.base/whatis.exp: whatis unsigned short function
+PASS: gdb.base/whatis.exp: whatis int function
+PASS: gdb.base/whatis.exp: whatis signed int function
+PASS: gdb.base/whatis.exp: whatis unsigned int function
+PASS: gdb.base/whatis.exp: whatis long function
+PASS: gdb.base/whatis.exp: whatis signed long function
+PASS: gdb.base/whatis.exp: whatis unsigned long function
+PASS: gdb.base/whatis.exp: whatis long long function
+PASS: gdb.base/whatis.exp: whatis signed long long function
+PASS: gdb.base/whatis.exp: whatis unsigned long long function
+PASS: gdb.base/whatis.exp: whatis float function
+PASS: gdb.base/whatis.exp: whatis double function
+PASS: gdb.base/whatis.exp: whatis complicated structure
+PASS: gdb.base/whatis.exp: whatis complicated union
+PASS: gdb.base/whatis.exp: whatis enumeration
+PASS: gdb.base/whatis.exp: whatis enumeration using type name
+PASS: gdb.base/whatis.exp: whatis outer structure
+PASS: gdb.base/whatis.exp: whatis outer structure member
+PASS: gdb.base/whatis.exp: whatis inner structure
+PASS: gdb.base/whatis.exp: whatis inner structure member
+PASS: gdb.base/whatis.exp: whatis inner union
+PASS: gdb.base/whatis.exp: whatis inner union member
+PASS: gdb.base/whatis.exp: whatis using typedef type name
+PASS: gdb.base/whatis.exp: whatis applied to variable defined by typedef
+PASS: gdb.base/whatis.exp: whatis applied to pointer to pointer to function
+PASS: gdb.base/whatis.exp: whatis applied to const pointer to pointer to function
+PASS: gdb.base/whatis.exp: whatis applied to pointer to const pointer to function
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function returning pointer to int
+PASS: gdb.base/whatis.exp: whatis applied to pointer to pointer to function returning pointer to int
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function returning pointer to array
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function taking int,int and returning int
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function taking const int ptr and varargs and returning int
+PASS: gdb.base/whatis.exp: whatis applied to function with types trailing 'void'
+PASS: gdb.base/whatis.exp: whatis applied to function with 'void' parameter type
+Running ./gdb.base/whatis-exp.exp ...
+PASS: gdb.base/whatis-exp.exp: set variable x=14
+PASS: gdb.base/whatis-exp.exp: set variable y=2
+PASS: gdb.base/whatis-exp.exp: set variable z=2
+PASS: gdb.base/whatis-exp.exp: set variable w=3
+PASS: gdb.base/whatis-exp.exp: print value of x
+PASS: gdb.base/whatis-exp.exp: print value of y
+PASS: gdb.base/whatis-exp.exp: print value of z
+PASS: gdb.base/whatis-exp.exp: print value of w
+PASS: gdb.base/whatis-exp.exp: whatis value of x+y
+PASS: gdb.base/whatis-exp.exp: whatis value of x-y
+PASS: gdb.base/whatis-exp.exp: whatis value of x*y
+PASS: gdb.base/whatis-exp.exp: whatis value of x/y
+PASS: gdb.base/whatis-exp.exp: whatis value of x%y
+PASS: gdb.base/whatis-exp.exp: whatis value of x=y
+PASS: gdb.base/whatis-exp.exp: whatis value of x+=2
+PASS: gdb.base/whatis-exp.exp: whatis value of  ++x
+PASS: gdb.base/whatis-exp.exp: whatis value of  --x
+PASS: gdb.base/whatis-exp.exp: whatis value of  x++
+PASS: gdb.base/whatis-exp.exp: whatis value of  x--
+Running ./gdb.btrace/enable.exp ...
+Running ./gdb.btrace/function_call_history.exp ...
+Running ./gdb.btrace/instruction_history.exp ...
+Running ./gdb.cell/arch.exp ...
+Running ./gdb.cell/break.exp ...
+Running ./gdb.cell/bt.exp ...
+Running ./gdb.cell/core.exp ...
+Running ./gdb.cell/data.exp ...
+Running ./gdb.cell/dwarfaddr.exp ...
+Running ./gdb.cell/ea-cache.exp ...
+Running ./gdb.cell/ea-standalone.exp ...
+Running ./gdb.cell/ea-test.exp ...
+Running ./gdb.cell/fork.exp ...
+Running ./gdb.cell/f-regs.exp ...
+Running ./gdb.cell/gcore.exp ...
+Running ./gdb.cell/mem-access.exp ...
+Running ./gdb.cell/ptype.exp ...
+Running ./gdb.cell/registers.exp ...
+Running ./gdb.cell/sizeof.exp ...
+Running ./gdb.cell/solib.exp ...
+Running ./gdb.cell/solib-symbol.exp ...
+Running ./gdb.cp/abstract-origin.exp ...
+PASS: gdb.cp/abstract-origin.exp: continue to breakpoint: break-here
+PASS: gdb.cp/abstract-origin.exp: p problem
+Running ./gdb.cp/ambiguous.exp ...
+Running ./gdb.cp/annota2.exp ...
+Running ./gdb.cp/annota3.exp ...
+Running ./gdb.cp/anon-ns.exp ...
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::doit1(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::doit1(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::doit1(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::doit1(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::one(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::one(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::one(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::one(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::doit2(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::doit2(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::doit2(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::doit2(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::two(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::two(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::two(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::two(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::doit1(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::doit1(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::doit1(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::doit1(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::one(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::one(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::one(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::one(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::doit2(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::doit2(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::doit2(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::doit2(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::two(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::two(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::two(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::two(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::doit1(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::doit1(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::doit1(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::doit1(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::one(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::one(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::one(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::one(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::doit2(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::doit2(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::doit2(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::doit2(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::two(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::two(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::two(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::two(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::doit(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::doit(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::doit(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::doit(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::doit(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::doit(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::doit(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::doit(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)'
+Running ./gdb.cp/anon-struct.exp ...
+FAIL: gdb.cp/anon-struct.exp: print type of t::t
+PASS: gdb.cp/anon-struct.exp: print type of X::t2
+FAIL: gdb.cp/anon-struct.exp: print type of X::t2::t2
+FAIL: gdb.cp/anon-struct.exp: print type of t3::~t3
+Running ./gdb.cp/anon-union.exp ...
+PASS: gdb.cp/anon-union.exp: set width 0
+PASS: gdb.cp/anon-union.exp: next 1
+PASS: gdb.cp/anon-union.exp: print foo 1
+PASS: gdb.cp/anon-union.exp: next 2
+PASS: gdb.cp/anon-union.exp: print foo 2
+PASS: gdb.cp/anon-union.exp: set var foo.cloth
+PASS: gdb.cp/anon-union.exp: print foo 3
+PASS: gdb.cp/anon-union.exp: next 3
+PASS: gdb.cp/anon-union.exp: print foo 4
+PASS: gdb.cp/anon-union.exp: set var foo.pebble
+PASS: gdb.cp/anon-union.exp: print foo 5
+PASS: gdb.cp/anon-union.exp: set var foo.qux
+PASS: gdb.cp/anon-union.exp: print foo 6
+PASS: gdb.cp/anon-union.exp: set var foo.mux
+PASS: gdb.cp/anon-union.exp: print foo 7
+PASS: gdb.cp/anon-union.exp: set var foo.x.rock
+PASS: gdb.cp/anon-union.exp: print foo 8
+PASS: gdb.cp/anon-union.exp: set var foo.x.rock2
+PASS: gdb.cp/anon-union.exp: print foo 9
+PASS: gdb.cp/anon-union.exp: next 4
+PASS: gdb.cp/anon-union.exp: print w 1
+PASS: gdb.cp/anon-union.exp: print z 1
+PASS: gdb.cp/anon-union.exp: next 5
+PASS: gdb.cp/anon-union.exp: print w 2
+PASS: gdb.cp/anon-union.exp: print z 2
+PASS: gdb.cp/anon-union.exp: set var z
+PASS: gdb.cp/anon-union.exp: print w 3
+PASS: gdb.cp/anon-union.exp: print z 3
+Running ./gdb.cp/arg-reference.exp ...
+PASS: gdb.cp/arg-reference.exp: No false reference
+Running ./gdb.cp/baseenum.exp ...
+PASS: gdb.cp/baseenum.exp: continue to breakpoint: breakpoint 1
+PASS: gdb.cp/baseenum.exp: Print enum constant X of class A
+PASS: gdb.cp/baseenum.exp: continue to breakpoint: breakpoint 2
+PASS: gdb.cp/baseenum.exp: Print enum constant X of class A in namespace N
+Running ./gdb.cp/bool.exp ...
+PASS: gdb.cp/bool.exp: print return_true()
+PASS: gdb.cp/bool.exp: print return_false()
+Running ./gdb.cp/breakpoint.exp ...
+PASS: gdb.cp/breakpoint.exp: continue to C1::Nested::foo
+PASS: gdb.cp/breakpoint.exp: conditional breakpoint in method
+PASS: gdb.cp/breakpoint.exp: conditional breakpoint in method 2
+PASS: gdb.cp/breakpoint.exp: continue to breakpoint
+PASS: gdb.cp/breakpoint.exp: check the member variable
+PASS: gdb.cp/breakpoint.exp: continue to breakpoint
+PASS: gdb.cp/breakpoint.exp: check the member variable
+Running ./gdb.cp/bs15503.exp ...
+PASS: gdb.cp/bs15503.exp: break StringTest<wchar_t>::testFunction
+PASS: gdb.cp/bs15503.exp: continue to StringTest<wchar_t>
+PASS: gdb.cp/bs15503.exp: continue to breakpoint: find position where blank needs to be inserted
+FAIL: gdb.cp/bs15503.exp: print s.length()
+FAIL: gdb.cp/bs15503.exp: print s[0]
+FAIL: gdb.cp/bs15503.exp: print s[s.length()-1]
+PASS: gdb.cp/bs15503.exp: print (const char *) s
+FAIL: gdb.cp/bs15503.exp: print (const char *) s.substr(0,4)
+FAIL: gdb.cp/bs15503.exp: print (const char *) (s=s.substr(0,4))
+Running ./gdb.cp/call-c.exp ...
+PASS: gdb.cp/call-c.exp: b 43
+PASS: gdb.cp/call-c.exp: print foo(1)
+PASS: gdb.cp/call-c.exp: continue to bp
+PASS: gdb.cp/call-c.exp: print rf->func()
+PASS: gdb.cp/call-c.exp: print handle->func()
+Running ./gdb.cp/casts.exp ...
+PASS: gdb.cp/casts.exp: cast base class pointer to derived class pointer
+PASS: gdb.cp/casts.exp: let compiler cast base class pointer to derived class pointer
+PASS: gdb.cp/casts.exp: cast derived class pointer to base class pointer
+PASS: gdb.cp/casts.exp: cast derived class reference to base class reference
+PASS: gdb.cp/casts.exp: cast base class reference to derived class reference
+PASS: gdb.cp/casts.exp: let compiler cast base class reference to derived class reference
+PASS: gdb.cp/casts.exp: basic test of const_cast
+PASS: gdb.cp/casts.exp: const_cast of 0
+PASS: gdb.cp/casts.exp: basic test of static_cast
+PASS: gdb.cp/casts.exp: static_cast to reference type
+PASS: gdb.cp/casts.exp: basic test of reinterpret_cast
+PASS: gdb.cp/casts.exp: test invalid reinterpret_cast
+PASS: gdb.cp/casts.exp: reinterpret_cast to reference type
+PASS: gdb.cp/casts.exp: whatis decltype(5)
+PASS: gdb.cp/casts.exp: old-style cast using __typeof__
+PASS: gdb.cp/casts.exp: static_cast using __typeof__
+PASS: gdb.cp/casts.exp: reinterpret_cast using __typeof__
+PASS: gdb.cp/casts.exp: old-style cast using __typeof
+PASS: gdb.cp/casts.exp: static_cast using __typeof
+PASS: gdb.cp/casts.exp: reinterpret_cast using __typeof
+PASS: gdb.cp/casts.exp: old-style cast using __decltype
+PASS: gdb.cp/casts.exp: static_cast using __decltype
+PASS: gdb.cp/casts.exp: reinterpret_cast using __decltype
+PASS: gdb.cp/casts.exp: whatis __decltype(*a)
+PASS: gdb.cp/casts.exp: invalid dynamic_cast
+PASS: gdb.cp/casts.exp: dynamic_cast of 0 to void*
+PASS: gdb.cp/casts.exp: dynamic_cast simple upcast
+PASS: gdb.cp/casts.exp: dynamic_cast upcast to unique base
+PASS: gdb.cp/casts.exp: dynamic_cast simple upcast to reference
+PASS: gdb.cp/casts.exp: dynamic_cast simple downcast
+PASS: gdb.cp/casts.exp: dynamic_cast simple downcast to intermediate class
+PASS: gdb.cp/casts.exp: dynamic_cast to non-existing base
+PASS: gdb.cp/casts.exp: dynamic_cast to reference to non-existing base
+PASS: gdb.cp/casts.exp: dynamic_cast unique downcast
+PASS: gdb.cp/casts.exp: dynamic_cast to sibling
+Running ./gdb.cp/class2.exp ...
+PASS: gdb.cp/class2.exp: set print object off
+PASS: gdb.cp/class2.exp: print alpha at marker return 0
+PASS: gdb.cp/class2.exp: print beta at marker return 0
+PASS: gdb.cp/class2.exp: print * aap at marker return 0
+PASS: gdb.cp/class2.exp: print * bbp at marker return 0
+PASS: gdb.cp/class2.exp: print * abp at marker return 0, s-p-o off
+PASS: gdb.cp/class2.exp: print * (B *) abp at marker return 0
+PASS: gdb.cp/class2.exp: print object with no data fields
+PASS: gdb.cp/class2.exp: set print object on
+PASS: gdb.cp/class2.exp: p acp
+PASS: gdb.cp/class2.exp: p acp->c1
+PASS: gdb.cp/class2.exp: p acp->c2
+Running ./gdb.cp/classes.exp ...
+PASS: gdb.cp/classes.exp: ptype struct default_public_struct
+PASS: gdb.cp/classes.exp: ptype struct explicit_public_struct
+PASS: gdb.cp/classes.exp: ptype struct protected_struct
+PASS: gdb.cp/classes.exp: ptype struct private_struct
+PASS: gdb.cp/classes.exp: ptype struct mixed_protection_struct
+PASS: gdb.cp/classes.exp: ptype class public_class
+PASS: gdb.cp/classes.exp: ptype class protected_class
+PASS: gdb.cp/classes.exp: ptype class default_private_class
+PASS: gdb.cp/classes.exp: ptype class explicit_private_class
+PASS: gdb.cp/classes.exp: ptype class mixed_protection_class
+PASS: gdb.cp/classes.exp: ptype class A
+PASS: gdb.cp/classes.exp: ptype class B
+PASS: gdb.cp/classes.exp: ptype class C
+PASS: gdb.cp/classes.exp: ptype class D
+PASS: gdb.cp/classes.exp: ptype class E
+PASS: gdb.cp/classes.exp: ptype class Static
+PASS: gdb.cp/classes.exp: ptype class vA
+PASS: gdb.cp/classes.exp: ptype class vB
+PASS: gdb.cp/classes.exp: ptype class vC
+PASS: gdb.cp/classes.exp: ptype class vD
+PASS: gdb.cp/classes.exp: ptype class vE
+PASS: gdb.cp/classes.exp: ptype class Base1
+PASS: gdb.cp/classes.exp: ptype class Foo
+PASS: gdb.cp/classes.exp: ptype class Bar
+PASS: gdb.cp/classes.exp: print g_A.a
+PASS: gdb.cp/classes.exp: print g_A.x
+PASS: gdb.cp/classes.exp: print g_B.b
+PASS: gdb.cp/classes.exp: print g_B.x
+PASS: gdb.cp/classes.exp: print g_C.c
+PASS: gdb.cp/classes.exp: print g_C.x
+PASS: gdb.cp/classes.exp: print g_D.d
+PASS: gdb.cp/classes.exp: print g_D.x
+PASS: gdb.cp/classes.exp: print g_E.e
+PASS: gdb.cp/classes.exp: print g_E.x
+PASS: gdb.cp/classes.exp: print g_A.b
+PASS: gdb.cp/classes.exp: print g_B.c
+PASS: gdb.cp/classes.exp: print g_B.d
+PASS: gdb.cp/classes.exp: print g_C.b
+PASS: gdb.cp/classes.exp: print g_C.d
+PASS: gdb.cp/classes.exp: print g_D.e
+PASS: gdb.cp/classes.exp: print g_A.y
+PASS: gdb.cp/classes.exp: print g_B.z
+PASS: gdb.cp/classes.exp: print g_C.q
+PASS: gdb.cp/classes.exp: print g_D.p
+PASS: gdb.cp/classes.exp: call class_param.Aptr_a (&g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aptr_x (&g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aptr_a (&g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aptr_x (&g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aref_a (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aref_x (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aref_a (g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aref_x (g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aval_a (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aval_x (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aval_a (g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aval_x (g_B)
+PASS: gdb.cp/classes.exp: unrelated class *param
+PASS: gdb.cp/classes.exp: unrelated class &param
+PASS: gdb.cp/classes.exp: unrelated class param
+PASS: gdb.cp/classes.exp: continue to enums2(\(\)|)
+PASS: gdb.cp/classes.exp: print obj_with_enum (1)
+PASS: gdb.cp/classes.exp: next
+PASS: gdb.cp/classes.exp: print obj_with_enum (2)
+PASS: gdb.cp/classes.exp: print obj_with_enum.priv_enum
+PASS: gdb.cp/classes.exp: ptype obj_with_enum.priv_enum
+PASS: gdb.cp/classes.exp: ptype obj_with_enum
+PASS: gdb.cp/classes.exp: print (ClassWithEnum::PrivEnum) 42
+PASS: gdb.cp/classes.exp: print ('ClassWithEnum::PrivEnum') 42
+PASS: gdb.cp/classes.exp: print Bar::z
+PASS: gdb.cp/classes.exp: print &Foo::x
+PASS: gdb.cp/classes.exp: print (int)&Foo::x
+PASS: gdb.cp/classes.exp: print (int)&Bar::y == 2*sizeof(int)
+PASS: gdb.cp/classes.exp: ptype Bar::z
+PASS: gdb.cp/classes.exp: ptype &Bar::z
+PASS: gdb.cp/classes.exp: print (int)pmi == sizeof(int)
+PASS: gdb.cp/classes.exp: print Foo::st
+PASS: gdb.cp/classes.exp: print bar.st
+PASS: gdb.cp/classes.exp: print &foo.st
+PASS: gdb.cp/classes.exp: print &Bar::st
+PASS: gdb.cp/classes.exp: print *$
+PASS: gdb.cp/classes.exp: set print static-members off
+PASS: gdb.cp/classes.exp: print csi without static members
+PASS: gdb.cp/classes.exp: print cnsi without static members
+PASS: gdb.cp/classes.exp: set print static-members on
+PASS: gdb.cp/classes.exp: print csi with static members
+PASS: gdb.cp/classes.exp: print cnsi with static members
+PASS: gdb.cp/classes.exp: finish from marker_reg1
+PASS: gdb.cp/classes.exp: calling method for small class
+FAIL: gdb.cp/classes.exp: print ctor of typedef class
+FAIL: gdb.cp/classes.exp: print dtor of typedef class
+PASS: gdb.cp/classes.exp: list ByAnyOtherName::times
+Running ./gdb.cp/cmpd-minsyms.exp ...
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at 'GDB<int>::a() const'
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at 'GDB<int>::b() volatile'
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at 'GDB<int>::c() const volatile'
+PASS: gdb.cp/cmpd-minsyms.exp: set language c++
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::operator ==
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::operator==(GDB<int> const&)
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<char>::harder(char)
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::harder(int)
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at "int GDB<char>::even_harder<int>(char)"
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::simple()
+Running ./gdb.cp/converts.exp ...
+PASS: gdb.cp/converts.exp: continue to breakpoint: end of main
+PASS: gdb.cp/converts.exp: typedef to another typedef
+PASS: gdb.cp/converts.exp: typedef to typedef of a typedef
+PASS: gdb.cp/converts.exp: Pointer-to-pointer-to-pointer derived to Pointer-to-pointer-to-pointer base.
+PASS: gdb.cp/converts.exp: pointer to pointer
+PASS: gdb.cp/converts.exp: pointer to array
+PASS: gdb.cp/converts.exp: pointer to pointer of wrong type
+PASS: gdb.cp/converts.exp: pointer to pointer of wrong type
+PASS: gdb.cp/converts.exp: pointer to ancestor pointer
+PASS: gdb.cp/converts.exp: pointer to void pointer
+PASS: gdb.cp/converts.exp: pointer to void pointer pointer
+PASS: gdb.cp/converts.exp: pointer to boolean
+PASS: gdb.cp/converts.exp: pointer to long int
+PASS: gdb.cp/converts.exp: pointer pointer to void pointer
+PASS: gdb.cp/converts.exp: pointer pointer to pointer pointer
+PASS: gdb.cp/converts.exp: pointer pointer to array of arrays
+PASS: gdb.cp/converts.exp: pointer pointer to array of pointers
+PASS: gdb.cp/converts.exp: pointer pointer to array of wrong pointers
+PASS: gdb.cp/converts.exp: check all parameters for badness
+PASS: gdb.cp/converts.exp: null pointer conversion
+PASS: gdb.cp/converts.exp: p foo3_1 (0, 1)
+PASS: gdb.cp/converts.exp: p foo3_1 (0, (const char**) 1)
+PASS: gdb.cp/converts.exp: p foo3_2 (0, 0)
+PASS: gdb.cp/converts.exp: p foo3_2 (0, (char const**) 0)
+PASS: gdb.cp/converts.exp: p foo1_7(0)
+PASS: gdb.cp/converts.exp: p foo1_7(integer)
+PASS: gdb.cp/converts.exp: p foo1_7(long_int)
+PASS: gdb.cp/converts.exp: p foo1_7(*a)
+PASS: gdb.cp/converts.exp: p foo1_7(MY_A)
+PASS: gdb.cp/converts.exp: p foo1_7(&foo1_7)
+PASS: gdb.cp/converts.exp: p foo1_7(&A::member_)
+PASS: gdb.cp/converts.exp: p foo1_7(a)
+PASS: gdb.cp/converts.exp: p foo1_7(fp)
+PASS: gdb.cp/converts.exp: p foo1_7(dp)
+PASS: gdb.cp/converts.exp: p foo1_7(-1.23)
+PASS: gdb.cp/converts.exp: p foo1_7(ta)
+PASS: gdb.cp/converts.exp: show check type
+PASS: gdb.cp/converts.exp: p foo1_type_check (123)
+PASS: gdb.cp/converts.exp: p foo2_type_check (0, 1)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 0)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 0, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 0, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 1)
+PASS: gdb.cp/converts.exp: set check type off
+PASS: gdb.cp/converts.exp: show check type
+PASS: gdb.cp/converts.exp: p foo1_type_check (123)
+PASS: gdb.cp/converts.exp: p foo2_type_check (0, 1)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 0)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 0, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 0, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 1)
+PASS: gdb.cp/converts.exp: p foo3_2 (1,1)
+Running ./gdb.cp/cpcompletion.exp ...
+PASS: gdb.cp/cpcompletion.exp: complete class methods
+PASS: gdb.cp/cpcompletion.exp: complete class methods beginning with F
+PASS: gdb.cp/cpcompletion.exp: complete p foo1.g
+PASS: gdb.cp/cpcompletion.exp: complete p foo1.base
+PASS: gdb.cp/cpcompletion.exp: complete p foo1.Fo
+PASS: gdb.cp/cpcompletion.exp: complete p a.g
+Running ./gdb.cp/cpexprs.exp ...
+PASS: gdb.cp/cpexprs.exp: set listsize 1
+PASS: gdb.cp/cpexprs.exp: print base1::a_function
+FAIL: gdb.cp/cpexprs.exp: print base1::base1(int)
+FAIL: gdb.cp/cpexprs.exp: print base1::base1(void)
+PASS: gdb.cp/cpexprs.exp: print base2::a_function
+FAIL: gdb.cp/cpexprs.exp: print base2::base2
+FAIL: gdb.cp/cpexprs.exp: print base::base(int)
+FAIL: gdb.cp/cpexprs.exp: print base::base(void)
+PASS: gdb.cp/cpexprs.exp: print base::operator char*
+PASS: gdb.cp/cpexprs.exp: print base::operator delete
+PASS: gdb.cp/cpexprs.exp: print base::operator delete[]
+PASS: gdb.cp/cpexprs.exp: print base::operator fluff*
+PASS: gdb.cp/cpexprs.exp: print base::operator fluff**
+PASS: gdb.cp/cpexprs.exp: print base::operator int
+PASS: gdb.cp/cpexprs.exp: print base::operator new
+PASS: gdb.cp/cpexprs.exp: print base::operator new[]
+PASS: gdb.cp/cpexprs.exp: print base::operator!
+PASS: gdb.cp/cpexprs.exp: print base::operator!=
+PASS: gdb.cp/cpexprs.exp: print base::operator%
+PASS: gdb.cp/cpexprs.exp: print base::operator%=
+PASS: gdb.cp/cpexprs.exp: print base::operator&
+PASS: gdb.cp/cpexprs.exp: print base::operator&&
+PASS: gdb.cp/cpexprs.exp: print base::operator&=
+PASS: gdb.cp/cpexprs.exp: print base::operator()
+PASS: gdb.cp/cpexprs.exp: print base::operator*
+PASS: gdb.cp/cpexprs.exp: print base::operator*=
+PASS: gdb.cp/cpexprs.exp: print base::operator+
+PASS: gdb.cp/cpexprs.exp: print base::operator++
+PASS: gdb.cp/cpexprs.exp: print base::operator+=
+PASS: gdb.cp/cpexprs.exp: print base::operator-
+PASS: gdb.cp/cpexprs.exp: print base::operator--
+PASS: gdb.cp/cpexprs.exp: print base::operator-=
+PASS: gdb.cp/cpexprs.exp: print base::operator/
+PASS: gdb.cp/cpexprs.exp: print base::operator/=
+PASS: gdb.cp/cpexprs.exp: print base::operator<
+PASS: gdb.cp/cpexprs.exp: print base::operator<<
+PASS: gdb.cp/cpexprs.exp: print base::operator<<=
+PASS: gdb.cp/cpexprs.exp: print base::operator<=
+PASS: gdb.cp/cpexprs.exp: print base::operator=
+PASS: gdb.cp/cpexprs.exp: print base::operator==
+PASS: gdb.cp/cpexprs.exp: print base::operator>
+PASS: gdb.cp/cpexprs.exp: print base::operator>=
+PASS: gdb.cp/cpexprs.exp: print base::operator>>
+PASS: gdb.cp/cpexprs.exp: print base::operator>>=
+PASS: gdb.cp/cpexprs.exp: print base::operator[]
+PASS: gdb.cp/cpexprs.exp: print base::operator^
+PASS: gdb.cp/cpexprs.exp: print base::operator^=
+PASS: gdb.cp/cpexprs.exp: print base::operator|
+PASS: gdb.cp/cpexprs.exp: print base::operator|=
+PASS: gdb.cp/cpexprs.exp: print base::operator||
+PASS: gdb.cp/cpexprs.exp: print base::operator~
+PASS: gdb.cp/cpexprs.exp: print base::overload(base&) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(char*) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(int) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(long) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(short) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(void) const
+FAIL: gdb.cp/cpexprs.exp: print base::~base
+PASS: gdb.cp/cpexprs.exp: print derived::a_function
+FAIL: gdb.cp/cpexprs.exp: print derived::derived
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, short, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<long, short, long, short, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<short, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: print policy1::function
+FAIL: gdb.cp/cpexprs.exp: print policy1::policy
+PASS: gdb.cp/cpexprs.exp: print policy2::function
+FAIL: gdb.cp/cpexprs.exp: print policy2::policy
+PASS: gdb.cp/cpexprs.exp: print policy3::function
+FAIL: gdb.cp/cpexprs.exp: print policy3::policy
+PASS: gdb.cp/cpexprs.exp: print policy4::function
+FAIL: gdb.cp/cpexprs.exp: print policy4::policy
+PASS: gdb.cp/cpexprs.exp: print policyd1::function
+FAIL: gdb.cp/cpexprs.exp: print policyd1::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd1::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd2::function
+FAIL: gdb.cp/cpexprs.exp: print policyd2::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd2::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd3::function
+FAIL: gdb.cp/cpexprs.exp: print policyd3::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd3::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd4::function
+FAIL: gdb.cp/cpexprs.exp: print policyd4::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd4::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd5::function
+FAIL: gdb.cp/cpexprs.exp: print policyd5::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd5::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<base, operation_1<base> >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<base, operation_1<base> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<base, operation_1<base> >::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<char, operation_1<char> >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<char, operation_1<char> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<char, operation_1<char> >::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<int, operation_1<int> >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<int, operation_1<int> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<int, operation_1<int> >::~policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<long, operation_1<long> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<long, operation_1<long> >::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<tclass<int>, operation_1<tclass<int> > >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<tclass<int>, operation_1<tclass<int> > >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
+PASS: gdb.cp/cpexprs.exp: print tclass<base>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<char>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<int>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<long>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<short>::do_something
+PASS: gdb.cp/cpexprs.exp: print test_function
+PASS: gdb.cp/cpexprs.exp: list base1::a_function
+PASS: gdb.cp/cpexprs.exp: list base1::base1(int)
+PASS: gdb.cp/cpexprs.exp: list base1::base1(void)
+PASS: gdb.cp/cpexprs.exp: list base2::a_function
+PASS: gdb.cp/cpexprs.exp: list base2::base2
+PASS: gdb.cp/cpexprs.exp: list base::base(int)
+PASS: gdb.cp/cpexprs.exp: list base::base(void)
+PASS: gdb.cp/cpexprs.exp: list base::operator char*
+PASS: gdb.cp/cpexprs.exp: list base::operator delete
+PASS: gdb.cp/cpexprs.exp: list base::operator delete[]
+PASS: gdb.cp/cpexprs.exp: list base::operator fluff*
+PASS: gdb.cp/cpexprs.exp: list base::operator fluff**
+PASS: gdb.cp/cpexprs.exp: list base::operator int
+PASS: gdb.cp/cpexprs.exp: list base::operator new
+PASS: gdb.cp/cpexprs.exp: list base::operator new[]
+PASS: gdb.cp/cpexprs.exp: list base::operator!
+PASS: gdb.cp/cpexprs.exp: list base::operator!=
+PASS: gdb.cp/cpexprs.exp: list base::operator%
+PASS: gdb.cp/cpexprs.exp: list base::operator%=
+PASS: gdb.cp/cpexprs.exp: list base::operator&
+PASS: gdb.cp/cpexprs.exp: list base::operator&&
+PASS: gdb.cp/cpexprs.exp: list base::operator&=
+PASS: gdb.cp/cpexprs.exp: list base::operator()
+PASS: gdb.cp/cpexprs.exp: list base::operator*
+PASS: gdb.cp/cpexprs.exp: list base::operator*=
+PASS: gdb.cp/cpexprs.exp: list base::operator+
+PASS: gdb.cp/cpexprs.exp: list base::operator++
+PASS: gdb.cp/cpexprs.exp: list base::operator+=
+PASS: gdb.cp/cpexprs.exp: list base::operator-
+PASS: gdb.cp/cpexprs.exp: list base::operator--
+PASS: gdb.cp/cpexprs.exp: list base::operator-=
+PASS: gdb.cp/cpexprs.exp: list base::operator/
+PASS: gdb.cp/cpexprs.exp: list base::operator/=
+PASS: gdb.cp/cpexprs.exp: list base::operator<
+PASS: gdb.cp/cpexprs.exp: list base::operator<<
+PASS: gdb.cp/cpexprs.exp: list base::operator<<=
+PASS: gdb.cp/cpexprs.exp: list base::operator<=
+PASS: gdb.cp/cpexprs.exp: list base::operator=
+PASS: gdb.cp/cpexprs.exp: list base::operator==
+PASS: gdb.cp/cpexprs.exp: list base::operator>
+PASS: gdb.cp/cpexprs.exp: list base::operator>=
+PASS: gdb.cp/cpexprs.exp: list base::operator>>
+PASS: gdb.cp/cpexprs.exp: list base::operator>>=
+PASS: gdb.cp/cpexprs.exp: list base::operator[]
+PASS: gdb.cp/cpexprs.exp: list base::operator^
+PASS: gdb.cp/cpexprs.exp: list base::operator^=
+PASS: gdb.cp/cpexprs.exp: list base::operator|
+PASS: gdb.cp/cpexprs.exp: list base::operator|=
+PASS: gdb.cp/cpexprs.exp: list base::operator||
+PASS: gdb.cp/cpexprs.exp: list base::operator~
+PASS: gdb.cp/cpexprs.exp: list base::overload(base&) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(char*) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(int) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(long) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(short) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(void) const
+PASS: gdb.cp/cpexprs.exp: list base::~base
+PASS: gdb.cp/cpexprs.exp: list derived::a_function
+PASS: gdb.cp/cpexprs.exp: list derived::derived
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, short, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<long, short, long, short, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<short, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: list policy1::function
+PASS: gdb.cp/cpexprs.exp: list policy1::policy
+PASS: gdb.cp/cpexprs.exp: list policy2::function
+PASS: gdb.cp/cpexprs.exp: list policy2::policy
+PASS: gdb.cp/cpexprs.exp: list policy3::function
+PASS: gdb.cp/cpexprs.exp: list policy3::policy
+PASS: gdb.cp/cpexprs.exp: list policy4::function
+PASS: gdb.cp/cpexprs.exp: list policy4::policy
+PASS: gdb.cp/cpexprs.exp: list policyd1::function
+PASS: gdb.cp/cpexprs.exp: list policyd1::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd1::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd2::function
+PASS: gdb.cp/cpexprs.exp: list policyd2::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd2::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd3::function
+PASS: gdb.cp/cpexprs.exp: list policyd3::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd3::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd4::function
+PASS: gdb.cp/cpexprs.exp: list policyd4::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd4::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd5::function
+PASS: gdb.cp/cpexprs.exp: list policyd5::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd5::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<base, operation_1<base> >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<base, operation_1<base> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<base, operation_1<base> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<char, operation_1<char> >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<char, operation_1<char> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<char, operation_1<char> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<int, operation_1<int> >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<int, operation_1<int> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<int, operation_1<int> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<long, operation_1<long> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<long, operation_1<long> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<tclass<int>, operation_1<tclass<int> > >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<tclass<int>, operation_1<tclass<int> > >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
+PASS: gdb.cp/cpexprs.exp: list tclass<base>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<char>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<int>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<long>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<short>::do_something
+PASS: gdb.cp/cpexprs.exp: list test_function
+PASS: gdb.cp/cpexprs.exp: continue to base1::a_function
+PASS: gdb.cp/cpexprs.exp: continue to base1::base1(int)
+PASS: gdb.cp/cpexprs.exp: continue to base1::base1(void)
+PASS: gdb.cp/cpexprs.exp: continue to base2::a_function
+PASS: gdb.cp/cpexprs.exp: continue to base2::base2
+PASS: gdb.cp/cpexprs.exp: continue to base::base(int)
+PASS: gdb.cp/cpexprs.exp: continue to base::base(void)
+PASS: gdb.cp/cpexprs.exp: continue to base::operator char*
+PASS: gdb.cp/cpexprs.exp: continue to base::operator delete
+PASS: gdb.cp/cpexprs.exp: continue to base::operator delete[]
+PASS: gdb.cp/cpexprs.exp: continue to base::operator fluff*
+PASS: gdb.cp/cpexprs.exp: continue to base::operator fluff**
+PASS: gdb.cp/cpexprs.exp: continue to base::operator int
+PASS: gdb.cp/cpexprs.exp: continue to base::operator new
+PASS: gdb.cp/cpexprs.exp: continue to base::operator new[]
+PASS: gdb.cp/cpexprs.exp: continue to base::operator!
+PASS: gdb.cp/cpexprs.exp: continue to base::operator!=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator%
+PASS: gdb.cp/cpexprs.exp: continue to base::operator%=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator&
+PASS: gdb.cp/cpexprs.exp: continue to base::operator&&
+PASS: gdb.cp/cpexprs.exp: continue to base::operator&=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator()
+PASS: gdb.cp/cpexprs.exp: continue to base::operator*
+PASS: gdb.cp/cpexprs.exp: continue to base::operator*=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator+
+PASS: gdb.cp/cpexprs.exp: continue to base::operator++
+PASS: gdb.cp/cpexprs.exp: continue to base::operator+=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator-
+PASS: gdb.cp/cpexprs.exp: continue to base::operator--
+PASS: gdb.cp/cpexprs.exp: continue to base::operator-=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator/
+PASS: gdb.cp/cpexprs.exp: continue to base::operator/=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<<
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<<=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator==
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>>
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>>=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator[]
+PASS: gdb.cp/cpexprs.exp: continue to base::operator^
+PASS: gdb.cp/cpexprs.exp: continue to base::operator^=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator|
+PASS: gdb.cp/cpexprs.exp: continue to base::operator|=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator||
+PASS: gdb.cp/cpexprs.exp: continue to base::operator~
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(base&) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(char*) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(int) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(long) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(short) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(void) const
+PASS: gdb.cp/cpexprs.exp: continue to base::~base
+PASS: gdb.cp/cpexprs.exp: continue to derived::a_function
+PASS: gdb.cp/cpexprs.exp: continue to derived::derived
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, short, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<long, short, long, short, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<short, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: continue to policy1::function
+PASS: gdb.cp/cpexprs.exp: continue to policy1::policy
+PASS: gdb.cp/cpexprs.exp: continue to policy2::function
+PASS: gdb.cp/cpexprs.exp: continue to policy2::policy
+PASS: gdb.cp/cpexprs.exp: continue to policy3::function
+PASS: gdb.cp/cpexprs.exp: continue to policy3::policy
+PASS: gdb.cp/cpexprs.exp: continue to policy4::function
+PASS: gdb.cp/cpexprs.exp: continue to policy4::policy
+PASS: gdb.cp/cpexprs.exp: continue to policyd1::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd1::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd1::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd1::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd2::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd2::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd2::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd2::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd3::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd3::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd3::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd3::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd4::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd4::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd4::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd4::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd5::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd5::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd5::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd5::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<base, operation_1<base> >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<base, operation_1<base> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<base, operation_1<base> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<char, operation_1<char> >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<char, operation_1<char> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<char, operation_1<char> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<int, operation_1<int> >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<int, operation_1<int> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<int, operation_1<int> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<long, operation_1<long> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<long, operation_1<long> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<tclass<int>, operation_1<tclass<int> > >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<tclass<int>, operation_1<tclass<int> > >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to tclass<base>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<char>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<int>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<long>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<short>::do_something
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int)'
+PASS: gdb.cp/cpexprs.exp: p CV::m(int)
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int) const'
+KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) const (PRMS: c++/14186)
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int) volatile'
+KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) volatile (PRMS: c++/14186)
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int) const volatile'
+KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) const volatile (PRMS: c++/14186)
+PASS: gdb.cp/cpexprs.exp: p CV_f(int)
+PASS: gdb.cp/cpexprs.exp: p CV_f(CV::t)
+PASS: gdb.cp/cpexprs.exp: p CV_f(CV::i)
+Running ./gdb.cp/cplabel.exp ...
+PASS: gdb.cp/cplabel.exp: break foo::bar:to_the_top
+PASS: gdb.cp/cplabel.exp: break foo::bar:get_out_of_here
+PASS: gdb.cp/cplabel.exp: break foo::baz:to_the_top
+PASS: gdb.cp/cplabel.exp: break foo::baz:get_out_of_here
+Running ./gdb.cp/cplusfuncs.exp ...
+PASS: gdb.cp/cplusfuncs.exp: set width 0
+PASS: gdb.cp/cplusfuncs.exp: set language c++
+PASS: gdb.cp/cplusfuncs.exp: detect dm_operator_comma
+PASS: gdb.cp/cplusfuncs.exp: detect dm_operator_char_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_char_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_foo_ref
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_int_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_long_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_unsigned_int
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_void
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_void_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_short
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_unsigned_short
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_long
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_unsigned_long
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_typedef
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(void)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(char)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(signed char)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned char)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(short)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned short)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(long)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned long)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(float)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(double)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator*(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator%(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator-(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>>(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator!=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator|(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator&&(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator!(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator++(int)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator+=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator*=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator%=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>>=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator|=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator,(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator/(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator+(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<<(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator==(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator&(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator^(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator||(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator~(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator--(int)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator->(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator-=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator/=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<<=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator&=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator^=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator->*(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator[](foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator()(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator new
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator new[]
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator delete(void*)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator delete(void*)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator int(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator char*(void)
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc1
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc2
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc3
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc4
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc5
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc6
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc7
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator\*("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator%("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator-("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>>("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator!=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator|("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator&&("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator!("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator++("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator+=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator\*=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator%=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>>=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator|=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator,("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator/("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator+("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<<("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator==("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator&("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator^("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator||("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator~("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator--("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator->("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator-=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator/=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<<=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator&=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator^=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator->\*("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator\[\]("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator new("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator delete("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator int("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator()("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator char\*("
+PASS: gdb.cp/cplusfuncs.exp: list foo::operator int*
+Running ./gdb.cp/cp-relocate.exp ...
+PASS: gdb.cp/cp-relocate.exp: info functions
+PASS: gdb.cp/cp-relocate.exp: get address of func<1>(int)
+PASS: gdb.cp/cp-relocate.exp: get address of func<2>(int)
+PASS: gdb.cp/cp-relocate.exp: get address of caller
+PASS: gdb.cp/cp-relocate.exp: C++ functions have different addresses
+PASS: gdb.cp/cp-relocate.exp: info file
+PASS: gdb.cp/cp-relocate.exp: add-symbol-file cp-relocate.o
+PASS: gdb.cp/cp-relocate.exp: break *func<1>(int)
+PASS: gdb.cp/cp-relocate.exp: break *func<2>(int)
+Running ./gdb.cp/ctti.exp ...
+PASS: gdb.cp/ctti.exp: continue to breakpoint: marker add1
+PASS: gdb.cp/ctti.exp: print c
+PASS: gdb.cp/ctti.exp: print f
+PASS: gdb.cp/ctti.exp: print i
+Running ./gdb.cp/debug-expr.exp ...
+PASS: gdb.cp/debug-expr.exp: set language c++
+PASS: gdb.cp/debug-expr.exp: set debug expression 1
+PASS: gdb.cp/debug-expr.exp: print static_cast<void*>(0)
+PASS: gdb.cp/debug-expr.exp: print reinterpret_cast<void*>(0)
+PASS: gdb.cp/debug-expr.exp: print dynamic_cast<void*>(0)
+Running ./gdb.cp/demangle.exp ...
+PASS: gdb.cp/demangle.exp: set language c++
+PASS: gdb.cp/demangle.exp: set width 0
+PASS: gdb.cp/demangle.exp: lucid: set demangle-style
+PASS: gdb.cp/demangle.exp: lucid: check demangling style
+PASS: gdb.cp/demangle.exp: lucid: WS__FR7istream
+PASS: gdb.cp/demangle.exp: lucid: __aa__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __aad__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ad__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __adv__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __adv__7complexF7complex
+PASS: gdb.cp/demangle.exp: lucid: __aer__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __als__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __amd__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ami__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __amu__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __amu__7complexF7complex
+PASS: gdb.cp/demangle.exp: lucid: __aor__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __apl__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ars__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __as__18istream_withassignFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __as__18istream_withassignFR7istream
+PASS: gdb.cp/demangle.exp: lucid: __as__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __as__3iosFR3ios
+PASS: gdb.cp/demangle.exp: lucid: __cl__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __cm__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __co__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__10istrstreamFPc
+PASS: gdb.cp/demangle.exp: lucid: __ct__10istrstreamFPci
+PASS: gdb.cp/demangle.exp: lucid: __ct__10ostrstreamFPciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__10ostrstreamFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__10smanip_intFPFR3iosi_R3iosi
+PASS: gdb.cp/demangle.exp: lucid: __ct__11c_exceptionFPcRC7complexT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFi
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__11smanip_longFPFR3iosl_R3iosl
+PASS: gdb.cp/demangle.exp: lucid: __ct__11stdiostreamFP4FILE
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFPFl_PvPFPv_v
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFPUciT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFPciT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFi
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__13strstreambaseFPciT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFi
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFiN31
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFiPCc
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFiR3fooT1T2T1T2
+PASS: gdb.cp/demangle.exp: lucid: __ct__3iosFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ct__7filebufFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__7fstreamFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__7fstreamFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFP9streambufiP7ostream
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFiT1P7ostream
+PASS: gdb.cp/demangle.exp: lucid: __ct__7ostreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ct__7ostreamFiPc
+PASS: gdb.cp/demangle.exp: lucid: __ct__8ifstreamFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__8ifstreamFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__Q23foo3barFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__Q33foo3bar4bellFv
+PASS: gdb.cp/demangle.exp: lucid: __dl__3fooSFPv
+PASS: gdb.cp/demangle.exp: lucid: __dl__FPv
+PASS: gdb.cp/demangle.exp: lucid: __dt__10istrstreamFv
+PASS: gdb.cp/demangle.exp: lucid: __dt__Q23foo3barFv
+PASS: gdb.cp/demangle.exp: lucid: __dt__Q33foo3bar4bellFv
+PASS: gdb.cp/demangle.exp: lucid: __dv__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __dv__F7complexT1
+PASS: gdb.cp/demangle.exp: lucid: __eq__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __er__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ge__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __gt__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __le__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ls__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFPCc
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFPFR3ios_R3ios
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFPv
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFUi
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFUl
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFd
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFf
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFi
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFl
+PASS: gdb.cp/demangle.exp: lucid: __ls__FR7ostream7complex
+PASS: gdb.cp/demangle.exp: lucid: __lt__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __md__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __mi__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ml__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ml__F7complexT1
+PASS: gdb.cp/demangle.exp: lucid: __mm__3fooFi
+PASS: gdb.cp/demangle.exp: lucid: __ne__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __nt__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __nw__3fooSFi
+PASS: gdb.cp/demangle.exp: lucid: __nw__FUi
+PASS: gdb.cp/demangle.exp: lucid: __nw__FUiPv
+PASS: gdb.cp/demangle.exp: lucid: __oo__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __opPc__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __opi__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __or__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __pl__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __pp__3fooFi
+PASS: gdb.cp/demangle.exp: lucid: __pt__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __rm__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __rs__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPFR3ios_R3ios
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPFR7istream_R7istream
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPUc
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPc
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRUi
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRUl
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRUs
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRd
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRf
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRi
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRl
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRs
+PASS: gdb.cp/demangle.exp: lucid: __rs__FR7istreamR7complex
+PASS: gdb.cp/demangle.exp: lucid: __vc__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__10istrstream
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__17ostream__iostream__19iostream_withassign
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__3ios
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__3ios__13strstreambase
+KFAIL: gdb.cp/demangle.exp: lucid: __vtbl__3foo__vt_cc_main_ (PRMS: gdb/945)
+PASS: gdb.cp/demangle.exp: lucid: abs__F7complex
+PASS: gdb.cp/demangle.exp: lucid: allocate__9streambufFv
+PASS: gdb.cp/demangle.exp: lucid: attach__11fstreambaseFi
+PASS: gdb.cp/demangle.exp: lucid: bitalloc__3iosSFv
+PASS: gdb.cp/demangle.exp: lucid: chr__FiT1
+PASS: gdb.cp/demangle.exp: lucid: complex_error__FR11c_exception
+PASS: gdb.cp/demangle.exp: lucid: complexfunc2__FPFPc_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc3__FPFPFPl_s_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc4__FPFPFPc_s_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc5__FPFPc_PFl_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc6__FPFPi_PFl_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc7__FPFPFPc_i_PFl_i
+PASS: gdb.cp/demangle.exp: lucid: complicated_put__7ostreamFc
+PASS: gdb.cp/demangle.exp: lucid: conv10__FlPc
+PASS: gdb.cp/demangle.exp: lucid: conv16__FUlPc
+PASS: gdb.cp/demangle.exp: lucid: dec__FR3ios
+PASS: gdb.cp/demangle.exp: lucid: dec__Fli
+PASS: gdb.cp/demangle.exp: lucid: dofield__FP7ostreamPciT2T3
+PASS: gdb.cp/demangle.exp: lucid: flags__3iosFl
+PASS: gdb.cp/demangle.exp: lucid: flags__3iosFv
+PASS: gdb.cp/demangle.exp: lucid: foo__FiN31
+PASS: gdb.cp/demangle.exp: lucid: foo__FiR3fooT1T2T1T2
+PASS: gdb.cp/demangle.exp: lucid: foo___3barFl
+PASS: gdb.cp/demangle.exp: lucid: form__FPCce
+PASS: gdb.cp/demangle.exp: lucid: get__7istreamFPcic
+PASS: gdb.cp/demangle.exp: lucid: get__7istreamFR9streambufc
+PASS: gdb.cp/demangle.exp: lucid: get_complicated__7istreamFRUc
+PASS: gdb.cp/demangle.exp: lucid: get_complicated__7istreamFRc
+PASS: gdb.cp/demangle.exp: lucid: getline__7istreamFPUcic
+PASS: gdb.cp/demangle.exp: lucid: getline__7istreamFPcic
+PASS: gdb.cp/demangle.exp: lucid: ignore__7istreamFiT1
+PASS: gdb.cp/demangle.exp: lucid: init__12strstreambufFPciT1
+PASS: gdb.cp/demangle.exp: lucid: init__3iosFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: initcount__13Iostream_init
+PASS: gdb.cp/demangle.exp: lucid: ipfx__7istreamFi
+PASS: gdb.cp/demangle.exp: lucid: ls_complicated__7ostreamFUc
+PASS: gdb.cp/demangle.exp: lucid: ls_complicated__7ostreamFc
+PASS: gdb.cp/demangle.exp: lucid: open__11fstreambaseFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: open__7filebufFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FSc
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUc
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUi
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUl
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUs
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fc
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fd
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Ff
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fi
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fl
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fs
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fv
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN21
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN31
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN41
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN51
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN61
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN71
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN81
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN91
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN91N11
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiT1
+PASS: gdb.cp/demangle.exp: lucid: polar__FdT1
+PASS: gdb.cp/demangle.exp: lucid: pow__F7complexT1
+PASS: gdb.cp/demangle.exp: lucid: pow__F7complexd
+PASS: gdb.cp/demangle.exp: lucid: pow__F7complexi
+PASS: gdb.cp/demangle.exp: lucid: pow__Fd7complex
+PASS: gdb.cp/demangle.exp: lucid: pstart__FPciT2
+PASS: gdb.cp/demangle.exp: lucid: put__7ostreamFc
+PASS: gdb.cp/demangle.exp: lucid: read__7istreamFPci
+PASS: gdb.cp/demangle.exp: lucid: resetiosflags__FR3iosl
+PASS: gdb.cp/demangle.exp: lucid: restore_errno__FRi
+PASS: gdb.cp/demangle.exp: lucid: rs_complicated__7istreamFRUc
+PASS: gdb.cp/demangle.exp: lucid: rs_complicated__7istreamFRc
+PASS: gdb.cp/demangle.exp: lucid: seekg__7istreamFl8seek_dir
+PASS: gdb.cp/demangle.exp: lucid: seekoff__12strstreambufFl8seek_diri
+PASS: gdb.cp/demangle.exp: lucid: seekoff__9streambufFlQ2_3ios12ios_seek_diri
+PASS: gdb.cp/demangle.exp: lucid: seekpos__9streambufFli
+PASS: gdb.cp/demangle.exp: lucid: set_new_handler__FPFv_v
+PASS: gdb.cp/demangle.exp: lucid: setb__9streambufFPcT1i
+PASS: gdb.cp/demangle.exp: lucid: setb__FR3iosi
+PASS: gdb.cp/demangle.exp: lucid: setbuf__11fstreambaseFPci
+PASS: gdb.cp/demangle.exp: lucid: setbuf__9streambufFPUci
+PASS: gdb.cp/demangle.exp: lucid: setbuf__9streambufFPciT2
+PASS: gdb.cp/demangle.exp: lucid: setf__3iosFlT1
+PASS: gdb.cp/demangle.exp: lucid: setfill__FR3iosi
+PASS: gdb.cp/demangle.exp: lucid: setg__9streambufFPcN21
+PASS: gdb.cp/demangle.exp: lucid: setp__9streambufFPcT1
+PASS: gdb.cp/demangle.exp: lucid: sputn__9streambufFPCci
+PASS: gdb.cp/demangle.exp: lucid: str__FPCci
+PASS: gdb.cp/demangle.exp: lucid: tie__3iosFP7ostream
+PASS: gdb.cp/demangle.exp: lucid: uconv10__FUlPc
+PASS: gdb.cp/demangle.exp: lucid: write__7ostreamFPCci
+PASS: gdb.cp/demangle.exp: lucid: xget__7istreamFPc
+PASS: gdb.cp/demangle.exp: lucid: xsgetn__9streambufFPci
+PASS: gdb.cp/demangle.exp: lucid: xsputn__9streambufFPCci
+PASS: gdb.cp/demangle.exp: lucid: _Utf390_1__1_9223372036854775807__9223372036854775
+PASS: gdb.cp/demangle.exp: gnu: set demangle-style
+PASS: gdb.cp/demangle.exp: gnu: check demangling style
+PASS: gdb.cp/demangle.exp: gnu: Abort__FP6EditoriPCc
+PASS: gdb.cp/demangle.exp: gnu: AddAlignment__9ivTSolverUiP12ivInteractorP7ivTGlue
+PASS: gdb.cp/demangle.exp: gnu: Append__15NameChooserViewPCc
+PASS: gdb.cp/demangle.exp: gnu: ArrowheadIntersects__9ArrowLineP9ArrowheadR6BoxObjP7Graphic
+PASS: gdb.cp/demangle.exp: gnu: AtEnd__13ivRubberGroup
+PASS: gdb.cp/demangle.exp: gnu: BgFilter__9ivTSolverP12ivInteractor
+PASS: gdb.cp/demangle.exp: gnu: BitPatterntoa__FRC10BitPatternccc
+PASS: gdb.cp/demangle.exp: gnu: Check__6UArrayi
+PASS: gdb.cp/demangle.exp: gnu: CoreConstDecls__8TextCodeR7ostream
+PASS: gdb.cp/demangle.exp: gnu: Detach__8StateVarP12StateVarView
+PASS: gdb.cp/demangle.exp: gnu: Done__9ComponentG8Iterator
+PASS: gdb.cp/demangle.exp: gnu: DrawDestinationTransformedImage__FP7_XImageiiT0iiUlUiiiUiUlUlP4_XGCRC13ivTransformeriiii
+PASS: gdb.cp/demangle.exp: gnu: Edit__12StringEditorPCcii
+PASS: gdb.cp/demangle.exp: gnu: Effect__11RelateManipR7ivEvent
+PASS: gdb.cp/demangle.exp: gnu: FilterName__FPCc
+PASS: gdb.cp/demangle.exp: gnu: Filter__6PSTextPCci
+PASS: gdb.cp/demangle.exp: gnu: FindColor__7CatalogPCciii
+PASS: gdb.cp/demangle.exp: gnu: FindFixed__FRP4CNetP4CNet
+PASS: gdb.cp/demangle.exp: gnu: FindFont__7CatalogPCcN21
+PASS: gdb.cp/demangle.exp: gnu: Fix48_abort__FR8twolongs
+PASS: gdb.cp/demangle.exp: gnu: GetBarInfo__15iv2_6_VScrollerP13ivPerspectiveRiT2
+PASS: gdb.cp/demangle.exp: gnu: GetBgColor__C9ivPainter
+PASS: gdb.cp/demangle.exp: gnu: Iisdouble__FPC6IntRep
+PASS: gdb.cp/demangle.exp: gnu: InsertBody__15H_PullrightMenuii
+PASS: gdb.cp/demangle.exp: gnu: InsertCharacter__9TextManipc
+PASS: gdb.cp/demangle.exp: gnu: InsertToplevel__7ivWorldP12ivInteractorT1
+PASS: gdb.cp/demangle.exp: gnu: InsertToplevel__7ivWorldP12ivInteractorT1iiUi
+PASS: gdb.cp/demangle.exp: gnu: IsADirectory__FPCcR4stat
+PASS: gdb.cp/demangle.exp: gnu: IsAGroup__FP11GraphicViewP11GraphicComp
+PASS: gdb.cp/demangle.exp: gnu: IsA__10ButtonCodeUl
+PASS: gdb.cp/demangle.exp: gnu: ReadName__FR7istreamPc
+PASS: gdb.cp/demangle.exp: gnu: Redraw__13StringBrowseriiii
+PASS: gdb.cp/demangle.exp: gnu: Rotate__13ivTransformerf
+PASS: gdb.cp/demangle.exp: gnu: Rotated__C13ivTransformerf
+PASS: gdb.cp/demangle.exp: gnu: Round__Ff
+PASS: gdb.cp/demangle.exp: gnu: SetExport__16MemberSharedNameUi
+PASS: gdb.cp/demangle.exp: gnu: Set__14ivControlState13ControlStatusUi
+PASS: gdb.cp/demangle.exp: gnu: Set__5DFacePcii
+PASS: gdb.cp/demangle.exp: gnu: VConvert__9ivTSolverP12ivInteractorRP8TElementT2
+PASS: gdb.cp/demangle.exp: gnu: VConvert__9ivTSolverP7ivTGlueRP8TElement
+PASS: gdb.cp/demangle.exp: gnu: VOrder__9ivTSolverUiRP12ivInteractorT2
+PASS: gdb.cp/demangle.exp: gnu: Valid__7CatalogPCcRP4Tool
+PASS: gdb.cp/demangle.exp: gnu: _10PageButton$__both
+PASS: gdb.cp/demangle.exp: gnu: _3RNG$singleMantissa
+PASS: gdb.cp/demangle.exp: gnu: _5IComp$_release
+PASS: gdb.cp/demangle.exp: gnu: _$_10BitmapComp
+PASS: gdb.cp/demangle.exp: gnu: _$_9__io_defs
+PASS: gdb.cp/demangle.exp: gnu: _$_Q23foo3bar
+PASS: gdb.cp/demangle.exp: gnu: _$_Q33foo3bar4bell
+PASS: gdb.cp/demangle.exp: gnu: __10ivTelltaleiP7ivGlyph
+PASS: gdb.cp/demangle.exp: gnu: __10ivViewportiP12ivInteractorUi
+PASS: gdb.cp/demangle.exp: gnu: __10ostrstream
+PASS: gdb.cp/demangle.exp: gnu: __10ostrstreamPcii
+PASS: gdb.cp/demangle.exp: gnu: __11BasicDialogiPCcP13ivButtonStateN22Ui
+PASS: gdb.cp/demangle.exp: gnu: __11BitmapTablei
+PASS: gdb.cp/demangle.exp: gnu: __12ViewportCodeP12ViewportComp
+PASS: gdb.cp/demangle.exp: gnu: __12iv2_6_BorderiPCci
+PASS: gdb.cp/demangle.exp: gnu: __12iv2_6_Borderii
+PASS: gdb.cp/demangle.exp: gnu: __12ivBackgroundiP7ivGlyphPC7ivColor
+PASS: gdb.cp/demangle.exp: gnu: __12ivBreak_Listl
+PASS: gdb.cp/demangle.exp: gnu: __14TextInteractoriPCcUi
+PASS: gdb.cp/demangle.exp: gnu: __14iv2_6_MenuItemiP12ivInteractor
+PASS: gdb.cp/demangle.exp: gnu: __14iv2_6_MenuItemiPCcP12ivInteractor
+PASS: gdb.cp/demangle.exp: gnu: __20DisplayList_IteratorR11DisplayList
+PASS: gdb.cp/demangle.exp: gnu: __3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __3fooiN31
+PASS: gdb.cp/demangle.exp: gnu: __3fooiPCc
+PASS: gdb.cp/demangle.exp: gnu: __3fooiRT0iT2iT2
+PASS: gdb.cp/demangle.exp: gnu: __6GetOptiPPcPCc
+PASS: gdb.cp/demangle.exp: gnu: __6KeyMapPT0
+PASS: gdb.cp/demangle.exp: gnu: __7ivWorldPCcRiPPcPC12ivOptionDescPC14ivPropertyData
+PASS: gdb.cp/demangle.exp: gnu: __7procbufPCci
+PASS: gdb.cp/demangle.exp: gnu: __8ArrowCmdP6EditorUiUi
+PASS: gdb.cp/demangle.exp: gnu: __9F_EllipseiiiiP7Graphic
+PASS: gdb.cp/demangle.exp: gnu: __9FrameDataP9FrameCompi
+PASS: gdb.cp/demangle.exp: gnu: __9HVGraphicP9CanvasVarP7Graphic
+PASS: gdb.cp/demangle.exp: gnu: __Q23foo3bar
+PASS: gdb.cp/demangle.exp: gnu: __Q33foo3bar4bell
+PASS: gdb.cp/demangle.exp: gnu: __aa__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __aad__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ad__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __adv__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __aer__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __als__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __amd__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ami__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __aml__3FixRT0
+PASS: gdb.cp/demangle.exp: gnu: __aml__5Fix16i
+PASS: gdb.cp/demangle.exp: gnu: __aml__5Fix32RT0
+PASS: gdb.cp/demangle.exp: gnu: __aor__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __apl__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ars__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __as__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __cl__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __cl__6Normal
+PASS: gdb.cp/demangle.exp: gnu: __cl__6Stringii
+PASS: gdb.cp/demangle.exp: gnu: __cm__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __co__3foo
+PASS: gdb.cp/demangle.exp: gnu: __dl__3fooPv
+PASS: gdb.cp/demangle.exp: gnu: __dv__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __eq__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __er__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ge__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __gt__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __le__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ls__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ls__FR7ostreamPFR3ios_R3ios
+PASS: gdb.cp/demangle.exp: gnu: __ls__FR7ostreamR3Fix
+PASS: gdb.cp/demangle.exp: gnu: __lt__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __md__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __mi__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ml__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __mm__3fooi
+PASS: gdb.cp/demangle.exp: gnu: __ne__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ne__FRC7ComplexT0
+PASS: gdb.cp/demangle.exp: gnu: __ne__FRC7Complexd
+PASS: gdb.cp/demangle.exp: gnu: __ne__FRC9SubStringRC6String
+PASS: gdb.cp/demangle.exp: gnu: __nt__3foo
+PASS: gdb.cp/demangle.exp: gnu: __nw__3fooi
+PASS: gdb.cp/demangle.exp: gnu: __oo__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __opPc__3foo
+PASS: gdb.cp/demangle.exp: gnu: __opi__3foo
+PASS: gdb.cp/demangle.exp: gnu: __or__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __pl__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __pp__3fooi
+PASS: gdb.cp/demangle.exp: gnu: __rf__3foo
+PASS: gdb.cp/demangle.exp: gnu: __rm__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __rs__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __vc__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: _gsub__6StringRC5RegexPCci
+PASS: gdb.cp/demangle.exp: gnu: _new_Fix__FUs
+PASS: gdb.cp/demangle.exp: gnu: _vt.foo
+PASS: gdb.cp/demangle.exp: gnu: _vt.foo.bar
+PASS: gdb.cp/demangle.exp: gnu: _vt$foo
+PASS: gdb.cp/demangle.exp: gnu: _vt$foo$bar
+PASS: gdb.cp/demangle.exp: gnu: append__7ivGlyphPT0
+PASS: gdb.cp/demangle.exp: gnu: arg__FRC7Complex
+PASS: gdb.cp/demangle.exp: gnu: clearok__FP7_win_sti
+PASS: gdb.cp/demangle.exp: gnu: complexfunc2__FPFPc_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc3__FPFPFPl_s_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc4__FPFPFPc_s_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc5__FPFPc_PFl_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc6__FPFPi_PFl_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc7__FPFPFPc_i_PFl_i
+PASS: gdb.cp/demangle.exp: gnu: contains__C9BitStringRC10BitPattern
+PASS: gdb.cp/demangle.exp: gnu: contains__C9BitStringRC12BitSubStringi
+PASS: gdb.cp/demangle.exp: gnu: contains__C9BitStringRT0
+PASS: gdb.cp/demangle.exp: gnu: div__FPC6IntRepT0P6IntRep
+PASS: gdb.cp/demangle.exp: gnu: div__FPC6IntReplP6IntRep
+PASS: gdb.cp/demangle.exp: gnu: div__FRC8RationalT0R8Rational
+PASS: gdb.cp/demangle.exp: gnu: divide__FRC7IntegerT0R7IntegerT2
+PASS: gdb.cp/demangle.exp: gnu: divide__FRC7IntegerlR7IntegerRl
+PASS: gdb.cp/demangle.exp: gnu: enable__14DocumentViewerPCcUi
+PASS: gdb.cp/demangle.exp: gnu: foo__FiN30
+PASS: gdb.cp/demangle.exp: gnu: foo__FiR3fooiT1iT1
+PASS: gdb.cp/demangle.exp: gnu: foo___3barl
+PASS: gdb.cp/demangle.exp: gnu: insert__15ivClippingStacklRP8_XRegion
+PASS: gdb.cp/demangle.exp: gnu: insert__16ChooserInfo_ListlR11ChooserInfo
+PASS: gdb.cp/demangle.exp: gnu: insert__17FontFamilyRepListlRP15ivFontFamilyRep
+PASS: gdb.cp/demangle.exp: gnu: leaveok__FP7_win_stc
+PASS: gdb.cp/demangle.exp: gnu: left_mover__C7ivMFKitP12ivAdjustableP7ivStyle
+PASS: gdb.cp/demangle.exp: gnu: matches__C9BitStringRC10BitPatterni
+PASS: gdb.cp/demangle.exp: gnu: matches__C9SubStringRC5Regex
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FSc
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUc
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUi
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUl
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUs
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fc
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fd
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Ff
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fi
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fl
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fs
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fv
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fi
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: pick__13ivCompositionP8ivCanvasRC12ivAllocationiR5ivHit
+PASS: gdb.cp/demangle.exp: gnu: pointer__C11ivHScrollerRC7ivEventRC12ivAllocation
+PASS: gdb.cp/demangle.exp: gnu: poke__8ivRasterUlUlffff
+PASS: gdb.cp/demangle.exp: gnu: polar__Fdd
+PASS: gdb.cp/demangle.exp: gnu: read__10osStdInputRPCc
+PASS: gdb.cp/demangle.exp: gnu: scale__13ivTransformerff
+PASS: gdb.cp/demangle.exp: gnu: scanw__12CursesWindowPCce
+PASS: gdb.cp/demangle.exp: gnu: scmp__FPCcT0
+PASS: gdb.cp/demangle.exp: gnu: sgetn__7filebufPci
+PASS: gdb.cp/demangle.exp: gnu: shift__FP5_FrepiT0
+PASS: gdb.cp/demangle.exp: gnu: test__C6BitSeti
+PASS: gdb.cp/demangle.exp: gnu: test__C6BitSetii
+PASS: gdb.cp/demangle.exp: gnu: testbit__FRC7Integerl
+PASS: gdb.cp/demangle.exp: gnu: text_source__8Documentl
+PASS: gdb.cp/demangle.exp: gnu: variance__6Erlangd
+PASS: gdb.cp/demangle.exp: gnu: vform__8iostreamPCcPc
+PASS: gdb.cp/demangle.exp: gnu: view__14DocumentViewerP8ItemViewP11TabularItem
+PASS: gdb.cp/demangle.exp: gnu: xy_extents__11ivExtensionffff
+PASS: gdb.cp/demangle.exp: gnu: zero__8osMemoryPvUi
+PASS: gdb.cp/demangle.exp: gnu: _2T4$N
+PASS: gdb.cp/demangle.exp: gnu: _Q22T42t1$N
+PASS: gdb.cp/demangle.exp: gnu: get__2T1
+PASS: gdb.cp/demangle.exp: gnu: get__Q22T11a
+PASS: gdb.cp/demangle.exp: gnu: get__Q32T11a1b
+PASS: gdb.cp/demangle.exp: gnu: get__Q42T11a1b1c
+PASS: gdb.cp/demangle.exp: gnu: get__Q52T11a1b1c1d
+PASS: gdb.cp/demangle.exp: gnu: put__2T1i
+PASS: gdb.cp/demangle.exp: gnu: put__Q22T11ai
+PASS: gdb.cp/demangle.exp: gnu: put__Q32T11a1bi
+PASS: gdb.cp/demangle.exp: gnu: put__Q42T11a1b1ci
+PASS: gdb.cp/demangle.exp: gnu: put__Q52T11a1b1c1di
+PASS: gdb.cp/demangle.exp: gnu: bar__3fooPv
+PASS: gdb.cp/demangle.exp: gnu: bar__3fooPCv
+PASS: gdb.cp/demangle.exp: gnu: bar__C3fooPv
+PASS: gdb.cp/demangle.exp: gnu: bar__C3fooPCv
+PASS: gdb.cp/demangle.exp: gnu: __eq__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __eq__3fooRC3foo
+PASS: gdb.cp/demangle.exp: gnu: __eq__C3fooR3foo
+PASS: gdb.cp/demangle.exp: gnu: __eq__C3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: elem__t6vector1Zdi
+PASS: gdb.cp/demangle.exp: gnu: elem__t6vector1Zii
+PASS: gdb.cp/demangle.exp: gnu: __t6vector1Zdi
+PASS: gdb.cp/demangle.exp: gnu: __t6vector1Zii
+PASS: gdb.cp/demangle.exp: gnu: _$_t6vector1Zdi
+PASS: gdb.cp/demangle.exp: gnu: _$_t6vector1Zii
+PASS: gdb.cp/demangle.exp: gnu: __nw__t2T11ZcUi
+PASS: gdb.cp/demangle.exp: gnu: __nw__t2T11Z1tUi
+PASS: gdb.cp/demangle.exp: gnu: __dl__t2T11ZcPv
+PASS: gdb.cp/demangle.exp: gnu: __dl__t2T11Z1tPv
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Zci
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Zc
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Z1ti
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Z1t
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity3PixPQ2t4List1Z10VHDLEntity7element
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity3PixRCQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity7elementRC10VHDLEntityPT0
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity7elementRCQ2t4List1Z10VHDLEntity7element
+PASS: gdb.cp/demangle.exp: gnu: __cl__C11VHDLLibraryGt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __cl__Ct4List1Z10VHDLEntityRCQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __t4List1Z10VHDLEntityRCt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityP14VHDLLibraryRepGQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: nextE__C11VHDLLibraryRt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: next__Ct4List1Z10VHDLEntityRQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: _GLOBAL_$D$set
+PASS: gdb.cp/demangle.exp: gnu: _GLOBAL_$I$set
+PASS: gdb.cp/demangle.exp: gnu: __as__t5ListS1ZUiRCt5ListS1ZUi
+PASS: gdb.cp/demangle.exp: gnu: __cl__Ct5ListS1ZUiRCQ2t5ListS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __cl__Ct5SetLS1ZUiRCQ2t5SetLS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __t10ListS_link1ZUiRCUiPT0
+PASS: gdb.cp/demangle.exp: gnu: __t10ListS_link1ZUiRCt10ListS_link1ZUi
+PASS: gdb.cp/demangle.exp: gnu: __t5ListS1ZUiRCt5ListS1ZUi
+PASS: gdb.cp/demangle.exp: gnu: next__Ct5ListS1ZUiRQ2t5ListS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCQ2t5SetLS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __t8ListElem1Z5LabelRt4List1Z5Label
+PASS: gdb.cp/demangle.exp: gnu: __t8BDDHookV1ZPcRCPc
+PASS: gdb.cp/demangle.exp: gnu: _vt$t8BDDHookV1ZPc
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCQ211BDDFunction4VixB
+PASS: gdb.cp/demangle.exp: gnu: __eq__FPvRCQ211BDDFunction4VixB
+PASS: gdb.cp/demangle.exp: gnu: relativeId__CQ36T_phi210T_preserve8FPC_nextRCQ26T_phi210T_preserveRC10Parameters
+PASS: gdb.cp/demangle.exp: gnu: _Utf390_1__1_9223372036854775807__9223372036854775
+PASS: gdb.cp/demangle.exp: gnu: foo__I40
+PASS: gdb.cp/demangle.exp: gnu: foo__I_200_
+PASS: gdb.cp/demangle.exp: gnu: foo__I_200
+PASS: gdb.cp/demangle.exp: gnu: foo__I_4000000000000000000000000000000000000000000000000000000000000000000000000
+PASS: gdb.cp/demangle.exp: gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator
+PASS: gdb.cp/demangle.exp: arm: set demangle-style
+PASS: gdb.cp/demangle.exp: arm: check demangling style
+PASS: gdb.cp/demangle.exp: arm: __dt__21T5__pt__11_PFiPPdPv_iFv
+PASS: gdb.cp/demangle.exp: arm: __ct__1cFi
+PASS: gdb.cp/demangle.exp: arm: __dt__11T5__pt__2_iFv
+PASS: gdb.cp/demangle.exp: arm: __dt__11T5__pt__2_cFv
+PASS: gdb.cp/demangle.exp: arm: __ct__2T2Fi
+PASS: gdb.cp/demangle.exp: arm: __dt__2T1Fv
+PASS: gdb.cp/demangle.exp: arm: __dt__12T5__pt__3_1xFv
+PASS: gdb.cp/demangle.exp: arm: __dt__17T5__pt__8_PFcPv_iFv
+PASS: gdb.cp/demangle.exp: arm: g__FP1cPC1cT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUlPCUlT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUiPCUiT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUsPCUsT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUcPCUcT1
+PASS: gdb.cp/demangle.exp: arm: g__F1TPlPClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRlRClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TPiPCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRiRCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TPsPCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRsRCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TPcPCcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRcRCcT2
+PASS: gdb.cp/demangle.exp: arm: __ct__21T5__pt__11_PFiPPdPv_iFi
+PASS: gdb.cp/demangle.exp: arm: __gt__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __ge__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __lt__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __le__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __ne__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __eq__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __amd__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __adv__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __amu__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __ami__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __apl__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __nw__2T1SFUi
+PASS: gdb.cp/demangle.exp: arm: __dl__2T1SFPv
+PASS: gdb.cp/demangle.exp: arm: put__2T7SFi
+PASS: gdb.cp/demangle.exp: arm: __dl__12T5__pt__3_1xSFPv
+PASS: gdb.cp/demangle.exp: arm: h__FUc
+PASS: gdb.cp/demangle.exp: arm: f__Fic
+PASS: gdb.cp/demangle.exp: arm: h__FUi
+PASS: gdb.cp/demangle.exp: arm: h__Fci
+PASS: gdb.cp/demangle.exp: arm: h__FUl
+PASS: gdb.cp/demangle.exp: arm: h__Fcl
+PASS: gdb.cp/demangle.exp: arm: h__FUs
+PASS: gdb.cp/demangle.exp: arm: h__Fcs
+PASS: gdb.cp/demangle.exp: arm: __amd__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __adv__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __amu__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __ami__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __apl__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUlRPCUlT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUiRPCUiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUsRPCUsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUcRPCUcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SRPlRPClT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SRPiRPCiT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SRPcRPCcT3
+PASS: gdb.cp/demangle.exp: arm: X__12T5__pt__3_1x
+PASS: gdb.cp/demangle.exp: arm: __ct__11T5__pt__2_iFi
+PASS: gdb.cp/demangle.exp: arm: __ct__11T5__pt__2_cFi
+PASS: gdb.cp/demangle.exp: arm: __gt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __ge__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __lt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __le__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __ne__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __eq__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: g__FcR1cRC1cT2
+PASS: gdb.cp/demangle.exp: arm: g__FcRPdRPCdT2
+PASS: gdb.cp/demangle.exp: arm: g__FcRPfRPCfT2
+PASS: gdb.cp/demangle.exp: arm: h__FcT1
+PASS: gdb.cp/demangle.exp: arm: f__Ficd
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SdRPsRPCsT4
+PASS: gdb.cp/demangle.exp: arm: g__F1cC1cT1
+PASS: gdb.cp/demangle.exp: arm: g__FPdPCdT1
+PASS: gdb.cp/demangle.exp: arm: g__FPfPCfT1
+PASS: gdb.cp/demangle.exp: arm: g__FUlCUlT1
+PASS: gdb.cp/demangle.exp: arm: g__FPlPClT1
+PASS: gdb.cp/demangle.exp: arm: g__FUiCUiT1
+PASS: gdb.cp/demangle.exp: arm: g__FPiPCiT1
+PASS: gdb.cp/demangle.exp: arm: g__FUsCUsT1
+PASS: gdb.cp/demangle.exp: arm: g__FPsPCsT1
+PASS: gdb.cp/demangle.exp: arm: g__FUcCUcT1
+PASS: gdb.cp/demangle.exp: arm: g__FPcPCcT1
+PASS: gdb.cp/demangle.exp: arm: g__F1TlClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TiCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TsCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TcCcT2
+PASS: gdb.cp/demangle.exp: arm: __dl__17T5__pt__8_PFcPv_iSFPv
+PASS: gdb.cp/demangle.exp: arm: printf__FPCce
+PASS: gdb.cp/demangle.exp: arm: X__17T5__pt__8_PFcPv_i
+PASS: gdb.cp/demangle.exp: arm: __ct__12T5__pt__3_1xFi
+PASS: gdb.cp/demangle.exp: arm: g__F1SRUlRCUlT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPlRPClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRUiRCUiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPiRPCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRUsRCUsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPsRPCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRUcRCUcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPcRPCcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRlRClT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRiRCiT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRsRCsT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRcRCcT3
+PASS: gdb.cp/demangle.exp: arm: __dl__21T5__pt__11_PFiPPdPv_iSFPv
+PASS: gdb.cp/demangle.exp: arm: __std__foo
+PASS: gdb.cp/demangle.exp: arm: __sti__bar
+PASS: gdb.cp/demangle.exp: arm: f__FicdPcPFci_v
+PASS: gdb.cp/demangle.exp: arm: f__FicdPcPFic_v
+PASS: gdb.cp/demangle.exp: arm: get__2T7SFv
+PASS: gdb.cp/demangle.exp: arm: X__21T5__pt__11_PFiPPdPv_i
+PASS: gdb.cp/demangle.exp: arm: g__FcRdRCdT2
+PASS: gdb.cp/demangle.exp: arm: g__FcRfRCfT2
+PASS: gdb.cp/demangle.exp: arm: __md__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __dv__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __ml__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __mi__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __pl__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __dl__11T5__pt__2_iSFPv
+PASS: gdb.cp/demangle.exp: arm: __dl__11T5__pt__2_cSFPv
+PASS: gdb.cp/demangle.exp: arm: h__Fc
+PASS: gdb.cp/demangle.exp: arm: h__Fd
+PASS: gdb.cp/demangle.exp: arm: h__Ff
+PASS: gdb.cp/demangle.exp: arm: h__Fi
+PASS: gdb.cp/demangle.exp: arm: f__Fi
+PASS: gdb.cp/demangle.exp: arm: h__Fl
+PASS: gdb.cp/demangle.exp: arm: h__Fs
+PASS: gdb.cp/demangle.exp: arm: __md__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __dv__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __ml__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __mi__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __pl__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: g__FcRP1cRPC1cT2
+PASS: gdb.cp/demangle.exp: arm: X__11T5__pt__2_c
+PASS: gdb.cp/demangle.exp: arm: X__11T5__pt__2_i
+PASS: gdb.cp/demangle.exp: arm: g__FdCdT1
+PASS: gdb.cp/demangle.exp: arm: g__FfCfT1
+PASS: gdb.cp/demangle.exp: arm: g__FlClT1
+PASS: gdb.cp/demangle.exp: arm: g__FiCiT1
+PASS: gdb.cp/demangle.exp: arm: g__FsCsT1
+PASS: gdb.cp/demangle.exp: arm: g__FcCcT1
+PASS: gdb.cp/demangle.exp: arm: __ct__17T5__pt__8_PFcPv_iFi
+PASS: gdb.cp/demangle.exp: arm: f__FicdPc
+PASS: gdb.cp/demangle.exp: arm: __nw__FUi
+PASS: gdb.cp/demangle.exp: arm: __ct__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: arm: __dt__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: arm: put__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: arm: get__Q2_2T11aSFv
+PASS: gdb.cp/demangle.exp: arm: put__2T1SFi
+PASS: gdb.cp/demangle.exp: arm: put__Q5_2T11a1b1c1dSFi
+PASS: gdb.cp/demangle.exp: arm: get__Q4_2T11a1b1cSFv
+PASS: gdb.cp/demangle.exp: arm: put__Q2_2T11aSFi
+PASS: gdb.cp/demangle.exp: arm: put__Q4_2T11a1b1cSFi
+PASS: gdb.cp/demangle.exp: arm: get__Q3_2T11a1bSFv
+PASS: gdb.cp/demangle.exp: arm: get__2T1SFv
+PASS: gdb.cp/demangle.exp: arm: get__Q5_2T11a1b1c1dSFv
+PASS: gdb.cp/demangle.exp: arm: __dt__11T1__pt__2_cFv
+PASS: gdb.cp/demangle.exp: arm: __dt__12T1__pt__3_1tFv
+PASS: gdb.cp/demangle.exp: arm: __dl__12T1__pt__3_1tSFPv
+PASS: gdb.cp/demangle.exp: arm: __ct__11T1__pt__2_cFi
+PASS: gdb.cp/demangle.exp: arm: __ct__11T1__pt__2_cFv
+PASS: gdb.cp/demangle.exp: arm: __ct__12T1__pt__3_1tFi
+PASS: gdb.cp/demangle.exp: arm: __ct__12T1__pt__3_1tFv
+PASS: gdb.cp/demangle.exp: arm: __dl__11T1__pt__2_cSFPv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFPv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFPCv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooCFPv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooCFPCv
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooFR3foo
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooFRC3foo
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooCFR3foo
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooCFRC3foo
+PASS: gdb.cp/demangle.exp: arm: elem__15vector__pt__2_dFi
+PASS: gdb.cp/demangle.exp: arm: elem__15vector__pt__2_iFi
+PASS: gdb.cp/demangle.exp: arm: __ct__15vector__pt__2_dFi
+PASS: gdb.cp/demangle.exp: arm: __ct__15vector__pt__2_iFi
+PASS: gdb.cp/demangle.exp: arm: __ct__25DListNode__pt__9_R6RLabelFR6RLabelP25DListNode__pt__9_R6RLabelT2
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFiT16FooBar
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFPiN51PdN37PcN211T1iN215
+PASS: gdb.cp/demangle.exp: arm: _Utf390_1__1_9223372036854775807__9223372036854775
+PASS: gdb.cp/demangle.exp: hp: set demangle-style
+PASS: gdb.cp/demangle.exp: hp: check demangling style
+PASS: gdb.cp/demangle.exp: hp: g__FP1cPC1cT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUlPCUlT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUiPCUiT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUsPCUsT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUcPCUcT1
+PASS: gdb.cp/demangle.exp: hp: g__F1TPlPClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRlRClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TPiPCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRiRCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TPsPCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRsRCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TPcPCcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRcRCcT2
+PASS: gdb.cp/demangle.exp: hp: __gt__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __ge__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __lt__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __le__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __ne__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __eq__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __amd__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __adv__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __amu__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __ami__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __apl__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __nw__2T1SFUi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T1SFPv
+PASS: gdb.cp/demangle.exp: hp: put__2T7SFi
+PASS: gdb.cp/demangle.exp: hp: h__FUc
+PASS: gdb.cp/demangle.exp: hp: f__Fic
+PASS: gdb.cp/demangle.exp: hp: h__FUi
+PASS: gdb.cp/demangle.exp: hp: h__Fci
+PASS: gdb.cp/demangle.exp: hp: h__FUl
+PASS: gdb.cp/demangle.exp: hp: h__Fcl
+PASS: gdb.cp/demangle.exp: hp: h__FUs
+PASS: gdb.cp/demangle.exp: hp: h__Fcs
+PASS: gdb.cp/demangle.exp: hp: __amd__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __adv__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __amu__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __ami__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __apl__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUlRPCUlT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUiRPCUiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUsRPCUsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUcRPCUcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SRPlRPClT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SRPiRPCiT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SRPcRPCcT3
+PASS: gdb.cp/demangle.exp: hp: __gt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __ge__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __lt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __le__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __ne__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __eq__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: g__FcR1cRC1cT2
+PASS: gdb.cp/demangle.exp: hp: g__FcRPdRPCdT2
+PASS: gdb.cp/demangle.exp: hp: g__FcRPfRPCfT2
+PASS: gdb.cp/demangle.exp: hp: h__FcT1
+PASS: gdb.cp/demangle.exp: hp: f__Ficd
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SdRPsRPCsT4
+PASS: gdb.cp/demangle.exp: hp: g__F1cC1cT1
+PASS: gdb.cp/demangle.exp: hp: g__FPdPCdT1
+PASS: gdb.cp/demangle.exp: hp: g__FPfPCfT1
+PASS: gdb.cp/demangle.exp: hp: g__FUlCUlT1
+PASS: gdb.cp/demangle.exp: hp: g__FPlPClT1
+PASS: gdb.cp/demangle.exp: hp: g__FUiCUiT1
+PASS: gdb.cp/demangle.exp: hp: g__FPiPCiT1
+PASS: gdb.cp/demangle.exp: hp: g__FUsCUsT1
+PASS: gdb.cp/demangle.exp: hp: g__FPsPCsT1
+PASS: gdb.cp/demangle.exp: hp: g__FUcCUcT1
+PASS: gdb.cp/demangle.exp: hp: g__FPcPCcT1
+PASS: gdb.cp/demangle.exp: hp: g__F1TlClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TiCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TsCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TcCcT2
+PASS: gdb.cp/demangle.exp: hp: printf__FPCce
+PASS: gdb.cp/demangle.exp: hp: g__F1SRUlRCUlT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPlRPClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRUiRCUiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPiRPCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRUsRCUsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPsRPCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRUcRCUcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPcRPCcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRlRClT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRiRCiT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRsRCsT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRcRCcT3
+PASS: gdb.cp/demangle.exp: hp: f__FicdPcPFci_v
+PASS: gdb.cp/demangle.exp: hp: f__FicdPcPFic_v
+PASS: gdb.cp/demangle.exp: hp: get__2T7SFv
+PASS: gdb.cp/demangle.exp: hp: g__FcRdRCdT2
+PASS: gdb.cp/demangle.exp: hp: g__FcRfRCfT2
+PASS: gdb.cp/demangle.exp: hp: __md__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __dv__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __ml__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __mi__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __pl__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: h__Fc
+PASS: gdb.cp/demangle.exp: hp: h__Fd
+PASS: gdb.cp/demangle.exp: hp: h__Ff
+PASS: gdb.cp/demangle.exp: hp: h__Fi
+PASS: gdb.cp/demangle.exp: hp: f__Fi
+PASS: gdb.cp/demangle.exp: hp: h__Fl
+PASS: gdb.cp/demangle.exp: hp: h__Fs
+PASS: gdb.cp/demangle.exp: hp: __md__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __dv__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __ml__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __mi__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __pl__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: g__FcRP1cRPC1cT2
+PASS: gdb.cp/demangle.exp: hp: g__FdCdT1
+PASS: gdb.cp/demangle.exp: hp: g__FfCfT1
+PASS: gdb.cp/demangle.exp: hp: g__FlClT1
+PASS: gdb.cp/demangle.exp: hp: g__FiCiT1
+PASS: gdb.cp/demangle.exp: hp: g__FsCsT1
+PASS: gdb.cp/demangle.exp: hp: g__FcCcT1
+PASS: gdb.cp/demangle.exp: hp: f__FicdPc
+PASS: gdb.cp/demangle.exp: hp: __nw__FUi
+PASS: gdb.cp/demangle.exp: hp: __ct__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: hp: __dt__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: hp: put__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: hp: get__Q2_2T11aSFv
+PASS: gdb.cp/demangle.exp: hp: put__2T1SFi
+PASS: gdb.cp/demangle.exp: hp: put__Q5_2T11a1b1c1dSFi
+PASS: gdb.cp/demangle.exp: hp: get__Q4_2T11a1b1cSFv
+PASS: gdb.cp/demangle.exp: hp: put__Q2_2T11aSFi
+PASS: gdb.cp/demangle.exp: hp: put__Q4_2T11a1b1cSFi
+PASS: gdb.cp/demangle.exp: hp: get__Q3_2T11a1bSFv
+PASS: gdb.cp/demangle.exp: hp: get__2T1SFv
+PASS: gdb.cp/demangle.exp: hp: get__Q5_2T11a1b1c1dSFv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFPv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFPCv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooCFPv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooCFPCv
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooFR3foo
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooFRC3foo
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooCFR3foo
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooCFRC3foo
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFiT16FooBar
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFPiN51PdN37PcN211T1iN215
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTPFiPPdPv_i__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__1cFi
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTi__Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTc__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T2Fi
+PASS: gdb.cp/demangle.exp: hp: __dt__2T1Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XT1x__Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTPFcPv_i__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFiPPdPv_i__Fi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XT1x__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XT1x
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTi__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTc__Fi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTPFcPv_i__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTPFcPv_i
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XT1x__Fi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTPFiPPdPv_i__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTPFiPPdPv_i
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTi__SFPv
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTc__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTc
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFcPv_i__Fi
+PASS: gdb.cp/demangle.exp: hp: __dt__2T1XTc__Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T1XT1t__Fv
+PASS: gdb.cp/demangle.exp: hp: __dl__2T1XT1t__SFPv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XTc__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XTc__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XT1t__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XT1t__Fv
+PASS: gdb.cp/demangle.exp: hp: __dl__2T1XTc__SFPv
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTd__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTi__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__6vectorXTd__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__6vectorXTi__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__9DListNodeXTR6RLabel__FR6RLabelP9DListNodeXTR6RLabel_T2
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiUP34__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXUP2701Td__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSP334__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN67__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSM__SCFPPd
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN67UP4000TRs__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN67TRdTFPv_i__Fi
+PASS: gdb.cp/demangle.exp: hp: X__6vectorXTiSN67TdTPvUP5TRs
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiA3foo__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiA3fooTPvA5Label__FiPPvT2
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN42A3foo__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFcPv_i__Fi_2
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFcPv_i__Fi_19
+PASS: gdb.cp/demangle.exp: hp: f__FicdPcPFci_v_34
+PASS: gdb.cp/demangle.exp: hp: spec__13Spec<%1,%1.*>XTiTPi_FPi
+PASS: gdb.cp/demangle.exp: hp: spec__16Spec<%1,%1.&,%1>XTiTRiTi_FPi
+PASS: gdb.cp/demangle.exp: hp: add__XTc_FcT1
+PASS: gdb.cp/demangle.exp: hp: add__XTcSP9A5label_FcPPlT1
+PASS: gdb.cp/demangle.exp: hp: add__XTPfTFPd_f_FcT1
+PASS: gdb.cp/demangle.exp: hp: unLink__12basic_stringXTcT18string_char_traitsXTc_T9allocator_Fv
+PASS: gdb.cp/demangle.exp: hp: _Utf390_1__1_9223372036854775807__9223372036854775
+Running ./gdb.cp/derivation.exp ...
+PASS: gdb.cp/derivation.exp: before run: ptype A::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis A::value_type
+PASS: gdb.cp/derivation.exp: before run: p (A::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype D::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis D::value_type
+PASS: gdb.cp/derivation.exp: before run: p (D::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype E::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis E::value_type
+PASS: gdb.cp/derivation.exp: before run: p (E::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype F::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis F::value_type
+PASS: gdb.cp/derivation.exp: before run: p (F::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype A2::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis A2::value_type
+PASS: gdb.cp/derivation.exp: before run: p (A2::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype D2::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis D2::value_type
+PASS: gdb.cp/derivation.exp: before run: p (D2::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype Z::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis Z::value_type
+PASS: gdb.cp/derivation.exp: before run: p (Z::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype ZZ::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis ZZ::value_type
+PASS: gdb.cp/derivation.exp: before run: p (ZZ::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype A::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis A::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (A::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype D::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis D::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (D::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype A2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis A2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (A2::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype D2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis D2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (D2::value_type) 0
+PASS: gdb.cp/derivation.exp: up from marker1
+PASS: gdb.cp/derivation.exp: print value of a_instance
+PASS: gdb.cp/derivation.exp: ptype a_instance
+PASS: gdb.cp/derivation.exp: print value of d_instance
+PASS: gdb.cp/derivation.exp: ptype d_instance
+PASS: gdb.cp/derivation.exp: print value of e_instance
+PASS: gdb.cp/derivation.exp: ptype e_instance
+PASS: gdb.cp/derivation.exp: print value of f_instance
+PASS: gdb.cp/derivation.exp: ptype f_instance
+PASS: gdb.cp/derivation.exp: ptype g_instance
+PASS: gdb.cp/derivation.exp: print value of d_instance.a
+PASS: gdb.cp/derivation.exp: print value of d_instance.aa
+PASS: gdb.cp/derivation.exp: print value of d_instance.b
+PASS: gdb.cp/derivation.exp: print value of d_instance.bb
+PASS: gdb.cp/derivation.exp: print value of d_instance.c
+PASS: gdb.cp/derivation.exp: print value of d_instance.cc
+PASS: gdb.cp/derivation.exp: print value of d_instance.d
+PASS: gdb.cp/derivation.exp: print value of d_instance.dd
+PASS: gdb.cp/derivation.exp: print value of g_instance.a
+PASS: gdb.cp/derivation.exp: print value of g_instance.b
+PASS: gdb.cp/derivation.exp: print value of g_instance.c
+PASS: gdb.cp/derivation.exp: print value of g_instance.afoo()
+PASS: gdb.cp/derivation.exp: re-selected 'main' frame after inferior call
+PASS: gdb.cp/derivation.exp: print value of g_instance.bfoo()
+PASS: gdb.cp/derivation.exp: print value of g_instance.cfoo()
+PASS: gdb.cp/derivation.exp: whatis c_instance.c
+PASS: gdb.cp/derivation.exp: ptype c_instance.c
+PASS: gdb.cp/derivation.exp: whatis g_instance.g
+PASS: gdb.cp/derivation.exp: ptype g_instance.g
+PASS: gdb.cp/derivation.exp: whatis a_instance.a
+PASS: gdb.cp/derivation.exp: ptype a_instance.a
+PASS: gdb.cp/derivation.exp: p (A::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis b_instance.b
+PASS: gdb.cp/derivation.exp: ptype b_instance.b
+PASS: gdb.cp/derivation.exp: whatis d_instance.d
+PASS: gdb.cp/derivation.exp: ptype d_instance.d
+PASS: gdb.cp/derivation.exp: p (D::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis e_instance.e
+PASS: gdb.cp/derivation.exp: ptype e_instance.e
+PASS: gdb.cp/derivation.exp: p (E::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis f_instance.f
+PASS: gdb.cp/derivation.exp: ptype f_instance.f
+PASS: gdb.cp/derivation.exp: p (F::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis z_instance.z
+PASS: gdb.cp/derivation.exp: ptype z_instance.z
+PASS: gdb.cp/derivation.exp: p (Z::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis zz_instance.zz
+PASS: gdb.cp/derivation.exp: ptype zz_instance.zz
+PASS: gdb.cp/derivation.exp: p (ZZ::value_type) 0
+PASS: gdb.cp/derivation.exp: ptype vderived
+PASS: gdb.cp/derivation.exp: print vderived
+PASS: gdb.cp/derivation.exp: ptype N::value_type
+PASS: gdb.cp/derivation.exp: ptype N::Derived::value_type
+PASS: gdb.cp/derivation.exp: ptype value_type
+Running ./gdb.cp/destrprint.exp ...
+PASS: gdb.cp/destrprint.exp: continue to breakpoint: Break here
+PASS: gdb.cp/destrprint.exp: go up to ~Derived
+PASS: gdb.cp/destrprint.exp: set print object on
+PASS: gdb.cp/destrprint.exp: print *this with print object = on
+PASS: gdb.cp/destrprint.exp: set print object off
+PASS: gdb.cp/destrprint.exp: print *this with print object = off
+Running ./gdb.cp/dispcxx.exp ...
+PASS: gdb.cp/dispcxx.exp: continue to breakpoint: here
+PASS: gdb.cp/dispcxx.exp: display k
+Running ./gdb.cp/exception.exp ...
+PASS: gdb.cp/exception.exp: catch catch (before inferior run)
+PASS: gdb.cp/exception.exp: catch throw (before inferior run)
+PASS: gdb.cp/exception.exp: info breakpoints (before inferior run)
+PASS: gdb.cp/exception.exp: Set temporary breakpoint at main
+PASS: gdb.cp/exception.exp: Run to main
+FAIL: gdb.cp/exception.exp: info breakpoints (after inferior run)
+PASS: gdb.cp/exception.exp: break catcher
+FAIL: gdb.cp/exception.exp: continue to first throw
+FAIL: gdb.cp/exception.exp: backtrace after first throw
+FAIL: gdb.cp/exception.exp: continue to first catch
+FAIL: gdb.cp/exception.exp: backtrace after first catch
+PASS: gdb.cp/exception.exp: continue to catcher for the first time
+FAIL: gdb.cp/exception.exp: continue to second throw
+FAIL: gdb.cp/exception.exp: backtrace after second throw
+FAIL: gdb.cp/exception.exp: continue to second catch
+FAIL: gdb.cp/exception.exp: backtrace after second catch
+FAIL: gdb.cp/exception.exp: continue to catcher for the second time (the program is no longer running)
+Running ./gdb.cp/expand-psymtabs-cxx.exp ...
+PASS: gdb.cp/expand-psymtabs-cxx.exp: set language c++
+PASS: gdb.cp/expand-psymtabs-cxx.exp: before expand
+PASS: gdb.cp/expand-psymtabs-cxx.exp: force expand
+PASS: gdb.cp/expand-psymtabs-cxx.exp: after expand
+Running ./gdb.cp/expand-sals.exp ...
+PASS: gdb.cp/expand-sals.exp: continue to breakpoint: func
+PASS: gdb.cp/expand-sals.exp: up
+PASS: gdb.cp/expand-sals.exp: break
+PASS: gdb.cp/expand-sals.exp: continue to breakpoint: caller
+PASS: gdb.cp/expand-sals.exp: bt from A
+PASS: gdb.cp/expand-sals.exp: continue to breakpoint: next caller func
+Running ./gdb.cp/extern-c.exp ...
+PASS: gdb.cp/extern-c.exp: setting breakpoint at c_func
+PASS: gdb.cp/extern-c.exp: continue to breakpoint: c_func
+PASS: gdb.cp/extern-c.exp: initialize counter
+PASS: gdb.cp/extern-c.exp: rbreak c_funcs
+PASS: gdb.cp/extern-c.exp: command details for multiple breakpoints
+PASS: gdb.cp/extern-c.exp: set commands on multiple breakpoints
+PASS: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_1
+PASS: gdb.cp/extern-c.exp: verify counter at first breakpoint
+PASS: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_2
+PASS: gdb.cp/extern-c.exp: verify counter at second breakpoint
+Running ./gdb.cp/formatted-ref.exp ...
+PASS: gdb.cp/formatted-ref.exp: print/x s
+PASS: gdb.cp/formatted-ref.exp: print/x e
+PASS: gdb.cp/formatted-ref.exp: print/x i
+PASS: gdb.cp/formatted-ref.exp: print/x &s
+PASS: gdb.cp/formatted-ref.exp: print/x &e
+PASS: gdb.cp/formatted-ref.exp: print/x &i
+PASS: gdb.cp/formatted-ref.exp: print/x *(&(&s))
+PASS: gdb.cp/formatted-ref.exp: print/x *(&(&i))
+PASS: gdb.cp/formatted-ref.exp: print/x *(&(&e))
+PASS: gdb.cp/formatted-ref.exp: print s.x == 13
+Running ./gdb.cp/fpointer.exp ...
+PASS: gdb.cp/fpointer.exp: p p1()
+PASS: gdb.cp/fpointer.exp: p p2()
+PASS: gdb.cp/fpointer.exp: p p[0]()
+PASS: gdb.cp/fpointer.exp: p p[1]()
+PASS: gdb.cp/fpointer.exp: p p3('a')
+PASS: gdb.cp/fpointer.exp: p p4(1)
+Running ./gdb.cp/gdb1355.exp ...
+PASS: gdb.cp/gdb1355.exp: ptype s1
+PASS: gdb.cp/gdb1355.exp: print s1
+Running ./gdb.cp/gdb2384.exp ...
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here
+FAIL: gdb.cp/gdb2384.exp: print d1.meth ()
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here
+FAIL: gdb.cp/gdb2384.exp: gdb2384
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here (second)
+FAIL: gdb.cp/gdb2384.exp: print d2.meth()
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here (second)
+FAIL: gdb.cp/gdb2384.exp: gdb2384 (second)
+Running ./gdb.cp/gdb2495.exp ...
+PASS: gdb.cp/gdb2495.exp: p exceptions.no_throw_function()
+PASS: gdb.cp/gdb2495.exp: p exceptions.throw_function_with_handler()
+FAIL: gdb.cp/gdb2495.exp: Call a function that raises an exception without a handler.
+FAIL: gdb.cp/gdb2495.exp: bt after returning from a popped frame
+PASS: gdb.cp/gdb2495.exp: info breakpoints
+PASS: gdb.cp/gdb2495.exp: set unwinn-on-terminating-exception off
+PASS: gdb.cp/gdb2495.exp: Turn off unwind on terminating exception flag
+PASS: gdb.cp/gdb2495.exp: Call a function that raises an exception with unwinding off..
+PASS: gdb.cp/gdb2495.exp: set unwindonsignal on
+PASS: gdb.cp/gdb2495.exp: Turn on unwind on signal
+PASS: gdb.cp/gdb2495.exp: p exceptions.raise_signal(1)
+PASS: gdb.cp/gdb2495.exp: set unwindonsignal off
+PASS: gdb.cp/gdb2495.exp: Turn off unwind on signal
+PASS: gdb.cp/gdb2495.exp: p exceptions.raise_signal(1)
+Running ./gdb.cp/hang.exp ...
+PASS: gdb.cp/hang.exp: doesn't overwrite struct type
+PASS: gdb.cp/hang.exp: doesn't corrupt cv_type chain
+Running ./gdb.cp/infcall-dlopen.exp ...
+FAIL: gdb.cp/infcall-dlopen.exp: test 0 (GDB internal error)
+PASS: gdb.cp/infcall-dlopen.exp: test 0 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 0 stub 2
+FAIL: gdb.cp/infcall-dlopen.exp: test 1
+PASS: gdb.cp/infcall-dlopen.exp: test 1 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 1 stub 2
+FAIL: gdb.cp/infcall-dlopen.exp: test 2
+PASS: gdb.cp/infcall-dlopen.exp: test 2 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 2 stub 2
+FAIL: gdb.cp/infcall-dlopen.exp: test 3
+PASS: gdb.cp/infcall-dlopen.exp: test 3 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 3 stub 2
+FAIL: gdb.cp/infcall-dlopen.exp: test 4
+PASS: gdb.cp/infcall-dlopen.exp: test 4 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 4 stub 2
+FAIL: gdb.cp/infcall-dlopen.exp: test 5
+PASS: gdb.cp/infcall-dlopen.exp: test 5 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 5 stub 2
+FAIL: gdb.cp/infcall-dlopen.exp: test 6
+PASS: gdb.cp/infcall-dlopen.exp: test 6 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 6 stub 2
+FAIL: gdb.cp/infcall-dlopen.exp: test 7
+PASS: gdb.cp/infcall-dlopen.exp: test 7 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 7 stub 2
+FAIL: gdb.cp/infcall-dlopen.exp: test 8
+PASS: gdb.cp/infcall-dlopen.exp: test 8 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 8 stub 2
+FAIL: gdb.cp/infcall-dlopen.exp: test 9
+PASS: gdb.cp/infcall-dlopen.exp: test 9 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 9 stub 2
+Running ./gdb.cp/inherit.exp ...
+PASS: gdb.cp/inherit.exp: set width 0
+PASS: gdb.cp/inherit.exp: set language c++
+PASS: gdb.cp/inherit.exp: ptype A (FIXME)
+PASS: gdb.cp/inherit.exp: ptype class A (FIXME)
+PASS: gdb.cp/inherit.exp: ptype g_A (FIXME)
+PASS: gdb.cp/inherit.exp: ptype B
+PASS: gdb.cp/inherit.exp: ptype class B
+PASS: gdb.cp/inherit.exp: ptype g_B
+PASS: gdb.cp/inherit.exp: ptype C
+PASS: gdb.cp/inherit.exp: ptype class C
+PASS: gdb.cp/inherit.exp: ptype g_C
+PASS: gdb.cp/inherit.exp: ptype tagless struct
+PASS: gdb.cp/inherit.exp: ptype variable of type tagless struct
+PASS: gdb.cp/inherit.exp: ptype D
+PASS: gdb.cp/inherit.exp: ptype class D
+PASS: gdb.cp/inherit.exp: ptype g_D
+PASS: gdb.cp/inherit.exp: ptype E
+PASS: gdb.cp/inherit.exp: ptype class E
+PASS: gdb.cp/inherit.exp: ptype g_E
+PASS: gdb.cp/inherit.exp: ptype vA
+PASS: gdb.cp/inherit.exp: ptype class vA
+PASS: gdb.cp/inherit.exp: ptype g_vA
+PASS: gdb.cp/inherit.exp: ptype vB
+PASS: gdb.cp/inherit.exp: ptype class vB
+PASS: gdb.cp/inherit.exp: ptype g_vB
+PASS: gdb.cp/inherit.exp: ptype vC
+PASS: gdb.cp/inherit.exp: ptype class vC
+PASS: gdb.cp/inherit.exp: ptype g_vC
+PASS: gdb.cp/inherit.exp: ptype vD
+PASS: gdb.cp/inherit.exp: ptype class vD
+PASS: gdb.cp/inherit.exp: ptype g_vD
+PASS: gdb.cp/inherit.exp: ptype vE
+PASS: gdb.cp/inherit.exp: ptype class vE
+PASS: gdb.cp/inherit.exp: ptype g_vE
+PASS: gdb.cp/inherit.exp: print g_A.A::a
+PASS: gdb.cp/inherit.exp: print g_A.A::x
+PASS: gdb.cp/inherit.exp: print g_A.a
+PASS: gdb.cp/inherit.exp: print g_A.x
+PASS: gdb.cp/inherit.exp: print g_B.A::a
+PASS: gdb.cp/inherit.exp: print g_B.A::x
+PASS: gdb.cp/inherit.exp: print g_B.B::b
+PASS: gdb.cp/inherit.exp: print g_B.B::x
+PASS: gdb.cp/inherit.exp: print g_B.a
+PASS: gdb.cp/inherit.exp: print g_B.b
+PASS: gdb.cp/inherit.exp: print g_B.x
+PASS: gdb.cp/inherit.exp: print g_C.A::a
+PASS: gdb.cp/inherit.exp: print g_C.A::x
+PASS: gdb.cp/inherit.exp: print g_C.C::c
+PASS: gdb.cp/inherit.exp: print g_C.C::x
+PASS: gdb.cp/inherit.exp: print g_C.a
+PASS: gdb.cp/inherit.exp: print g_C.c
+PASS: gdb.cp/inherit.exp: print g_C.x
+PASS: gdb.cp/inherit.exp: print g_A
+PASS: gdb.cp/inherit.exp: print g_B
+PASS: gdb.cp/inherit.exp: print g_C
+PASS: gdb.cp/inherit.exp: print g_A.A::a
+PASS: gdb.cp/inherit.exp: print g_A.A::x
+PASS: gdb.cp/inherit.exp: print g_B.A::a
+PASS: gdb.cp/inherit.exp: print g_B.A::x
+PASS: gdb.cp/inherit.exp: print g_B.B::b
+PASS: gdb.cp/inherit.exp: print g_B.B::x
+PASS: gdb.cp/inherit.exp: print g_C.A::a
+PASS: gdb.cp/inherit.exp: print g_C.A::x
+PASS: gdb.cp/inherit.exp: print g_C.C::c
+PASS: gdb.cp/inherit.exp: print g_C.C::x
+PASS: gdb.cp/inherit.exp: print g_D.A::a
+PASS: gdb.cp/inherit.exp: print g_D.C::a
+PASS: gdb.cp/inherit.exp: print g_D.B::a
+PASS: gdb.cp/inherit.exp: print g_D.A::x
+PASS: gdb.cp/inherit.exp: print g_D.B::b
+PASS: gdb.cp/inherit.exp: print g_D.B::x
+PASS: gdb.cp/inherit.exp: print g_D.C::c
+PASS: gdb.cp/inherit.exp: print g_D.C::x
+PASS: gdb.cp/inherit.exp: print g_D.D::d
+PASS: gdb.cp/inherit.exp: print g_D.D::x
+PASS: gdb.cp/inherit.exp: print g_E.A::a
+PASS: gdb.cp/inherit.exp: print g_E.A::x
+PASS: gdb.cp/inherit.exp: print g_E.B::b
+PASS: gdb.cp/inherit.exp: print g_E.B::x
+PASS: gdb.cp/inherit.exp: print g_E.C::c
+PASS: gdb.cp/inherit.exp: print g_E.C::x
+PASS: gdb.cp/inherit.exp: print g_E.D::d
+PASS: gdb.cp/inherit.exp: print g_E.D::x
+PASS: gdb.cp/inherit.exp: print g_E.E::e
+PASS: gdb.cp/inherit.exp: print g_E.E::x
+PASS: gdb.cp/inherit.exp: ptype g_D.b
+PASS: gdb.cp/inherit.exp: ptype g_D.c
+PASS: gdb.cp/inherit.exp: ptype g_D.d
+PASS: gdb.cp/inherit.exp: ptype g_A.A::a
+PASS: gdb.cp/inherit.exp: ptype g_A.A::x
+PASS: gdb.cp/inherit.exp: ptype g_B.A::a
+PASS: gdb.cp/inherit.exp: ptype g_B.A::x
+PASS: gdb.cp/inherit.exp: ptype g_B.B::b
+PASS: gdb.cp/inherit.exp: ptype g_B.B::x
+PASS: gdb.cp/inherit.exp: ptype g_C.A::a
+PASS: gdb.cp/inherit.exp: ptype g_C.A::x
+PASS: gdb.cp/inherit.exp: ptype g_C.C::c
+PASS: gdb.cp/inherit.exp: ptype g_C.C::x
+PASS: gdb.cp/inherit.exp: ptype g_D.A::a
+PASS: gdb.cp/inherit.exp: ptype g_D.A::x
+PASS: gdb.cp/inherit.exp: ptype g_D.B::b
+PASS: gdb.cp/inherit.exp: ptype g_D.B::x
+PASS: gdb.cp/inherit.exp: ptype g_D.C::c
+PASS: gdb.cp/inherit.exp: ptype g_D.C::x
+PASS: gdb.cp/inherit.exp: ptype g_D.D::d
+PASS: gdb.cp/inherit.exp: ptype g_D.D::x
+PASS: gdb.cp/inherit.exp: ptype g_E.A::a
+PASS: gdb.cp/inherit.exp: ptype g_E.A::x
+PASS: gdb.cp/inherit.exp: ptype g_E.B::b
+PASS: gdb.cp/inherit.exp: ptype g_E.B::x
+PASS: gdb.cp/inherit.exp: ptype g_E.C::c
+PASS: gdb.cp/inherit.exp: ptype g_E.C::x
+PASS: gdb.cp/inherit.exp: ptype g_E.D::d
+PASS: gdb.cp/inherit.exp: ptype g_E.D::x
+PASS: gdb.cp/inherit.exp: ptype g_E.E::e
+PASS: gdb.cp/inherit.exp: ptype g_E.E::x
+PASS: gdb.cp/inherit.exp: print g_D
+PASS: gdb.cp/inherit.exp: print g_E
+PASS: gdb.cp/inherit.exp: print anonymous union member
+PASS: gdb.cp/inherit.exp: print variable of type anonymous union
+PASS: gdb.cp/inherit.exp: print type of anonymous union
+PASS: gdb.cp/inherit.exp: print g_vA.vA::va
+PASS: gdb.cp/inherit.exp: print g_vA.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vA.va
+PASS: gdb.cp/inherit.exp: print g_vA.vx
+PASS: gdb.cp/inherit.exp: print g_vB.vA::va
+PASS: gdb.cp/inherit.exp: print g_vB.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vB.vB::vb
+PASS: gdb.cp/inherit.exp: print g_vB.vB::vx
+PASS: gdb.cp/inherit.exp: print g_vB.va
+PASS: gdb.cp/inherit.exp: print g_vB.vb
+PASS: gdb.cp/inherit.exp: print g_vB.vx
+PASS: gdb.cp/inherit.exp: print g_vC.vA::va
+PASS: gdb.cp/inherit.exp: print g_vC.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vC.vC::vc
+PASS: gdb.cp/inherit.exp: print g_vC.vC::vx
+PASS: gdb.cp/inherit.exp: print g_vC.va
+PASS: gdb.cp/inherit.exp: print g_vC.vc
+PASS: gdb.cp/inherit.exp: print g_vC.vx
+PASS: gdb.cp/inherit.exp: print g_vA
+PASS: gdb.cp/inherit.exp: print g_vB (FIXME v3 vtbl ptr)
+PASS: gdb.cp/inherit.exp: print g_vC (FIXME v3 vtbl ptr)
+PASS: gdb.cp/inherit.exp: print g_vD.vA::va
+PASS: gdb.cp/inherit.exp: print g_vD.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vD.vB::vb
+PASS: gdb.cp/inherit.exp: print g_vD.vB::vx
+PASS: gdb.cp/inherit.exp: print g_vD.vC::vc
+PASS: gdb.cp/inherit.exp: print g_vD.vC::vx
+PASS: gdb.cp/inherit.exp: print g_vD.vD::vd
+PASS: gdb.cp/inherit.exp: print g_vD.vD::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vA::va
+PASS: gdb.cp/inherit.exp: print g_vE.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vB::vb
+PASS: gdb.cp/inherit.exp: print g_vE.vB::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vC::vc
+PASS: gdb.cp/inherit.exp: print g_vE.vC::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vD::vd
+PASS: gdb.cp/inherit.exp: print g_vE.vD::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vE::ve
+PASS: gdb.cp/inherit.exp: print g_vE.vE::vx
+PASS: gdb.cp/inherit.exp: print g_vD (FIXME v3 vtbl ptr)
+PASS: gdb.cp/inherit.exp: print g_vE (FIXME v3 vtbl ptr)
+Running ./gdb.cp/koenig.exp ...
+PASS: gdb.cp/koenig.exp: p first(c)
+PASS: gdb.cp/koenig.exp: p second(0,0,c,0,0)
+PASS: gdb.cp/koenig.exp: p entry (c)
+PASS: gdb.cp/koenig.exp: p first(0,c)
+PASS: gdb.cp/koenig.exp: p first(b.c)
+PASS: gdb.cp/koenig.exp: p foo(eo)
+PASS: gdb.cp/koenig.exp: p foo(eo, eo)
+PASS: gdb.cp/koenig.exp: p foo(eo, eo, 1)
+PASS: gdb.cp/koenig.exp: p foo(fo, eo)
+PASS: gdb.cp/koenig.exp: p foo(1 ,fo, eo)
+PASS: gdb.cp/koenig.exp: p foo(go, fo, eo)
+PASS: gdb.cp/koenig.exp: p fake(eo)
+PASS: gdb.cp/koenig.exp: p foo (fake)
+PASS: gdb.cp/koenig.exp: p foo(io)
+PASS: gdb.cp/koenig.exp: p foo(ix)
+PASS: gdb.cp/koenig.exp: p foo(ju)
+PASS: gdb.cp/koenig.exp: p foo(js)
+PASS: gdb.cp/koenig.exp: p foo(je)
+XFAIL: gdb.cp/koenig.exp: p foo(jab)
+PASS: gdb.cp/koenig.exp: p foo(jap)
+PASS: gdb.cp/koenig.exp: p foo(japp)
+PASS: gdb.cp/koenig.exp: p foo(jca)
+PASS: gdb.cp/koenig.exp: p foo(ko,1)
+PASS: gdb.cp/koenig.exp: p foo(ko,1.0f)
+XFAIL: gdb.cp/koenig.exp: p bar(ko,1)
+PASS: gdb.cp/koenig.exp: p foo(labo)
+PASS: gdb.cp/koenig.exp: p ma.foo('a')
+PASS: gdb.cp/koenig.exp: p foo(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::N::foo(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::FAKE::foo(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::N::fake(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::bar('a')
+PASS: gdb.cp/koenig.exp: p M::N::bar('a')
+PASS: gdb.cp/koenig.exp: p foo(ttoa, 'a')
+PASS: gdb.cp/koenig.exp: p foo (p_union)
+PASS: gdb.cp/koenig.exp: p q == 5
+PASS: gdb.cp/koenig.exp: p q == 5.0f
+PASS: gdb.cp/koenig.exp: p q != 5
+PASS: gdb.cp/koenig.exp: p q != 5.0f
+PASS: gdb.cp/koenig.exp: p q + 5.0f
+PASS: gdb.cp/koenig.exp: p q + 5
+PASS: gdb.cp/koenig.exp: p ++q
+PASS: gdb.cp/koenig.exp: p r.rfoo()
+PASS: gdb.cp/koenig.exp: continue to breakpoint: marker1
+PASS: gdb.cp/koenig.exp: p rfoo()
+PASS: gdb.cp/koenig.exp: p this->rfoo()
+Running ./gdb.cp/local.exp ...
+PASS: gdb.cp/local.exp: up from marker1
+PASS: gdb.cp/local.exp: ptype l
+PASS: gdb.cp/local.exp: ptype Local
+PASS: gdb.cp/local.exp: break marker2
+PASS: gdb.cp/local.exp: continuing to marker2
+PASS: gdb.cp/local.exp: up from marker2
+PASS: gdb.cp/local.exp: Local out of scope
+PASS: gdb.cp/local.exp: ptype InnerLocal (pattern 1)
+PASS: gdb.cp/local.exp: ptype NestedInnerLocal
+KFAIL: gdb.cp/local.exp: ptype InnerLocal::NestedInnerLocal (PRMS: gdb/482)
+Running ./gdb.cp/maint.exp ...
+PASS: gdb.cp/maint.exp: help maintenance cplus
+PASS: gdb.cp/maint.exp: help maint cp
+PASS: gdb.cp/maint.exp: maint cp
+PASS: gdb.cp/maint.exp: help maint cp first_component
+PASS: gdb.cp/maint.exp: help maint cp namespace
+PASS: gdb.cp/maint.exp: set complaints 1000
+PASS: gdb.cp/maint.exp: maint cp first_component foo
+PASS: gdb.cp/maint.exp: maint cp first_component operator<<
+PASS: gdb.cp/maint.exp: maint cp first_component operator>>
+PASS: gdb.cp/maint.exp: maint cp first_component operator ->
+PASS: gdb.cp/maint.exp: maint cp first_component operator()
+PASS: gdb.cp/maint.exp: maint cp first_component operator>
+PASS: gdb.cp/maint.exp: maint cp first_component operator<
+PASS: gdb.cp/maint.exp: maint cp first_component operator ->
+PASS: gdb.cp/maint.exp: maint cp first_component operator  ->
+PASS: gdb.cp/maint.exp: maint cp first_component foo()
+PASS: gdb.cp/maint.exp: maint cp first_component foo(int)
+PASS: gdb.cp/maint.exp: maint cp first_component foo(X::Y)
+PASS: gdb.cp/maint.exp: maint cp first_component foo(X::Y, A::B)
+PASS: gdb.cp/maint.exp: maint cp first_component foo(std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >)
+PASS: gdb.cp/maint.exp: maint cp first_component operator>(X::Y)
+PASS: gdb.cp/maint.exp: maint cp first_component int operator<< <char>()
+PASS: gdb.cp/maint.exp: maint cp first_component T<Cooperator>
+PASS: gdb.cp/maint.exp: maint cp first_component int foo<&(operator<<(C, C))>()
+PASS: gdb.cp/maint.exp: maint cp first_component int foo<&operator<<(C, C)>()
+PASS: gdb.cp/maint.exp: maint cp first_component int foo<operator<<(C, C)>()
+PASS: gdb.cp/maint.exp: maint cp first_component foo::bar
+PASS: gdb.cp/maint.exp: maint cp first_component foo::bar::baz
+PASS: gdb.cp/maint.exp: maint cp first_component C<A>::bar
+PASS: gdb.cp/maint.exp: maint cp first_component C<std::basic_streambuf<wchar_t,std::char_traits<wchar_t> > >::bar
+PASS: gdb.cp/maint.exp: maint cp first_component foo<
+PASS: gdb.cp/maint.exp: maint cp first_component foo(
+PASS: gdb.cp/maint.exp: maint cp first_component bool operator<<char>
+PASS: gdb.cp/maint.exp: maint cp namespace
+Running ./gdb.cp/mb-ctor.exp ...
+PASS: gdb.cp/mb-ctor.exp: set-breakpoint at ctor
+PASS: gdb.cp/mb-ctor.exp: set-breakpoint at dtor
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 1 v1
+PASS: gdb.cp/mb-ctor.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 1 v2
+PASS: gdb.cp/mb-ctor.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 3 v1
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 3 v2
+PASS: gdb.cp/mb-ctor.exp: run to exit
+Running ./gdb.cp/mb-inline.exp ...
+PASS: gdb.cp/mb-inline.exp: set breakpoint
+PASS: gdb.cp/mb-inline.exp: info break
+PASS: gdb.cp/mb-inline.exp: run to breakpoint
+PASS: gdb.cp/mb-inline.exp: run to breakpoint 2
+PASS: gdb.cp/mb-inline.exp: disabling location: disable
+PASS: gdb.cp/mb-inline.exp: disabling location: run to breakpoint
+PASS: gdb.cp/mb-inline.exp: disabled breakpoint 1.2
+PASS: gdb.cp/mb-inline.exp: set multi_line_foo breakpoint
+PASS: gdb.cp/mb-inline.exp: run to multi_line_foo breakpoint 4 afn
+PASS: gdb.cp/mb-inline.exp: run to multi_line_foo breakpoint 4 bfn
+Running ./gdb.cp/mb-templates.exp ...
+PASS: gdb.cp/mb-templates.exp: initial condition: set breakpoint
+PASS: gdb.cp/mb-templates.exp: initial condition: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: initial condition: run to breakpoint 2
+PASS: gdb.cp/mb-templates.exp: kill
+PASS: gdb.cp/mb-templates.exp: separate condition: set breakpoint
+PASS: gdb.cp/mb-templates.exp: separate condition: set condition
+PASS: gdb.cp/mb-templates.exp: separate condition: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: separate condition: run to breakpoint 2
+PASS: gdb.cp/mb-templates.exp: disabling location: disable
+PASS: gdb.cp/mb-templates.exp: disabling location: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: disabling location: enable
+PASS: gdb.cp/mb-templates.exp: disable breakpoint: disable
+PASS: gdb.cp/mb-templates.exp: disable breakpoint: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: instantiation: set breakpoint
+PASS: gdb.cp/mb-templates.exp: instantiation: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: instantiation: run to breakpoint 2
+PASS: gdb.cp/mb-templates.exp: set multi_line_foo breakpoint
+PASS: gdb.cp/mb-templates.exp: run to multi_line_foo breakpoint 2 <int>
+PASS: gdb.cp/mb-templates.exp: run to multi_line_foo breakpoint 2 <double>
+Running ./gdb.cp/m-data.exp ...
+PASS: gdb.cp/m-data.exp: continue to breakpoint: end of first constructors
+PASS: gdb.cp/m-data.exp: simple object, const bool
+PASS: gdb.cp/m-data.exp: simple object, const int
+PASS: gdb.cp/m-data.exp: simple object, long
+PASS: gdb.cp/m-data.exp: simple object, enum
+PASS: gdb.cp/m-data.exp: derived template object, base const bool
+PASS: gdb.cp/m-data.exp: derived template object, base const int
+PASS: gdb.cp/m-data.exp: derived template object, base long
+PASS: gdb.cp/m-data.exp: derived template object, base enum
+PASS: gdb.cp/m-data.exp: derived template object, derived enum
+PASS: gdb.cp/m-data.exp: template object, const bool
+PASS: gdb.cp/m-data.exp: template object, const int
+PASS: gdb.cp/m-data.exp: template object, long
+PASS: gdb.cp/m-data.exp: template object, base enum
+PASS: gdb.cp/m-data.exp: template object, derived enum
+PASS: gdb.cp/m-data.exp: continue to breakpoint: continue to shadow breakpoint
+PASS: gdb.cp/m-data.exp: shadowing member
+PASS: gdb.cp/m-data.exp: shadowed global variable
+Running ./gdb.cp/member-name.exp ...
+PASS: gdb.cp/member-name.exp: continue to breakpoint: continue to first breakpoint
+PASS: gdb.cp/member-name.exp: print C::x from first breakpoint
+PASS: gdb.cp/member-name.exp: print B::b from first breakpoint
+PASS: gdb.cp/member-name.exp: print inner::z from first breakpoint
+PASS: gdb.cp/member-name.exp: continue to breakpoint: continue to second breakpoint
+PASS: gdb.cp/member-name.exp: print C::x from second breakpoint
+PASS: gdb.cp/member-name.exp: print B::b from second breakpoint
+PASS: gdb.cp/member-name.exp: print inner::z from second breakpoint
+PASS: gdb.cp/member-name.exp: continue to breakpoint: continue to third breakpoint
+PASS: gdb.cp/member-name.exp: print Templ::y from third breakpoint
+Running ./gdb.cp/member-ptr.exp ...
+PASS: gdb.cp/member-ptr.exp: continue to breakpoint: continue to pmi = NULL
+PASS: gdb.cp/member-ptr.exp: ptype pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: print pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: set var pmi = &A::jj
+PASS: gdb.cp/member-ptr.exp: print pmi (A::jj)
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::jj)
+PASS: gdb.cp/member-ptr.exp: set var pmi = &A::j
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::j) (again)
+PASS: gdb.cp/member-ptr.exp: print a.*pmi = 33
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::j) (33)
+PASS: gdb.cp/member-ptr.exp: print a (j = 33)
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmi = 44
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmi (44)
+PASS: gdb.cp/member-ptr.exp: print a (j = 44)
+PASS: gdb.cp/member-ptr.exp: ptype a.*pmi
+PASS: gdb.cp/member-ptr.exp: print *pmi
+PASS: gdb.cp/member-ptr.exp: ptype *pmi
+PASS: gdb.cp/member-ptr.exp: print (int) pmi
+PASS: gdb.cp/member-ptr.exp: print ((int) pmi) == ((char *) &a.j - (char *) &a)
+PASS: gdb.cp/member-ptr.exp: ptype diamond_pfunc_ptr
+PASS: gdb.cp/member-ptr.exp: ptype diamond.*diamond_pfunc_ptr
+PASS: gdb.cp/member-ptr.exp: print diamond.*diamond_pfunc_ptr (20)
+PASS: gdb.cp/member-ptr.exp: print (diamond.*diamond_pfunc_ptr) (20)
+PASS: gdb.cp/member-ptr.exp: print diamond.func_ptr (20)
+PASS: gdb.cp/member-ptr.exp: ptype pmf
+PASS: gdb.cp/member-ptr.exp: print pmf
+PASS: gdb.cp/member-ptr.exp: ptype pmf_p
+PASS: gdb.cp/member-ptr.exp: gdb/NNNN
+PASS: gdb.cp/member-ptr.exp: print a.*pmf
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmf
+PASS: gdb.cp/member-ptr.exp: set var pmf = &A::foo
+PASS: gdb.cp/member-ptr.exp: print *pmf
+PASS: gdb.cp/member-ptr.exp: ptype *pmf
+PASS: gdb.cp/member-ptr.exp: print (a.*pmf)(3)
+PASS: gdb.cp/member-ptr.exp: ptype a.*pmf
+PASS: gdb.cp/member-ptr.exp: ptype (a.*pmf)(3)
+PASS: gdb.cp/member-ptr.exp: print diamond_pmi
+PASS: gdb.cp/member-ptr.exp: print diamond.*diamond_pmi
+PASS: gdb.cp/member-ptr.exp: print diamond.*left_pmf
+PASS: gdb.cp/member-ptr.exp: print diamond.*right_pmf
+PASS: gdb.cp/member-ptr.exp: print (diamond.*left_pmf) ()
+PASS: gdb.cp/member-ptr.exp: print (diamond.*right_pmf) ()
+PASS: gdb.cp/member-ptr.exp: print diamond.*left_vpmf
+PASS: gdb.cp/member-ptr.exp: print diamond.*right_vpmf
+PASS: gdb.cp/member-ptr.exp: print (diamond.*left_vpmf) ()
+PASS: gdb.cp/member-ptr.exp: print (diamond.*left_base_vpmf) ()
+PASS: gdb.cp/member-ptr.exp: print (diamond.*right_vpmf) ()
+PASS: gdb.cp/member-ptr.exp: print left_vpmf
+PASS: gdb.cp/member-ptr.exp: print right_vpmf
+PASS: gdb.cp/member-ptr.exp: print base_vpmf
+PASS: gdb.cp/member-ptr.exp: print diamond.*left_vpmf ()
+PASS: gdb.cp/member-ptr.exp: print null_pmi
+PASS: gdb.cp/member-ptr.exp: print null_pmi = &A::j
+PASS: gdb.cp/member-ptr.exp: print null_pmi = 0
+PASS: gdb.cp/member-ptr.exp: print null_pmf
+PASS: gdb.cp/member-ptr.exp: print null_pmf = &A::foo
+PASS: gdb.cp/member-ptr.exp: print null_pmf = 0
+Running ./gdb.cp/method2.exp ...
+PASS: gdb.cp/method2.exp: set multiple-symbols ask
+PASS: gdb.cp/method2.exp: setting language c
+PASS: gdb.cp/method2.exp: breaking in method (c)
+PASS: gdb.cp/method2.exp: setting language c++
+PASS: gdb.cp/method2.exp: breaking in method (c++)
+FAIL: gdb.cp/method2.exp: setting breakpoint at exit
+Running ./gdb.cp/method.exp ...
+PASS: gdb.cp/method.exp: break A::foo
+PASS: gdb.cp/method.exp: continue to A::foo
+PASS: gdb.cp/method.exp: print x in A::foo
+PASS: gdb.cp/method.exp: print this in A::foo
+PASS: gdb.cp/method.exp: break A::bar
+PASS: gdb.cp/method.exp: continue to A::bar
+PASS: gdb.cp/method.exp: print x in A::bar
+PASS: gdb.cp/method.exp: print this in A::bar
+PASS: gdb.cp/method.exp: break 21
+PASS: gdb.cp/method.exp: continue to 21
+PASS: gdb.cp/method.exp: print data_ in funk::getFunky
+PASS: gdb.cp/method.exp: print this in funk::getFunky
+PASS: gdb.cp/method.exp: print res in funk::getFunky
+PASS: gdb.cp/method.exp: ptype A
+PASS: gdb.cp/method.exp: finish program
+Running ./gdb.cp/meth-typedefs.exp ...
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list test(_BAR_&)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(_BAR_&)'
+PASS: gdb.cp/meth-typedefs.exp: break test(_BAR_&)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(_BAR_&)'
+PASS: gdb.cp/meth-typedefs.exp: list test(a::b::BAR&)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(a::b::BAR&)'
+PASS: gdb.cp/meth-typedefs.exp: break test(a::b::BAR&)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(a::b::BAR&)'
+PASS: gdb.cp/meth-typedefs.exp: list test(a::b::c::d::bar&)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(a::b::c::d::bar&)'
+PASS: gdb.cp/meth-typedefs.exp: break test(a::b::c::d::bar&)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(a::b::c::d::bar&)'
+Running ./gdb.cp/minsym-fallback.exp ...
+PASS: gdb.cp/minsym-fallback.exp: set breakpoint pending off
+PASS: gdb.cp/minsym-fallback.exp: break C::f()
+PASS: gdb.cp/minsym-fallback.exp: break C::operator()()
+Running ./gdb.cp/misc.exp ...
+PASS: gdb.cp/misc.exp: deduced language is C++, before full symbols
+PASS: gdb.cp/misc.exp: deduced language is C++, after full symbols
+PASS: gdb.cp/misc.exp: print s.a for foo struct (known gcc 2.7.2 and earlier bug)
+PASS: gdb.cp/misc.exp: print as bool (setup)
+PASS: gdb.cp/misc.exp: print as bool (print 1 == 1)
+PASS: gdb.cp/misc.exp: print as bool (print 1 == 2)
+PASS: gdb.cp/misc.exp: print a bool var
+PASS: gdb.cp/misc.exp: set a bool var (setup)
+PASS: gdb.cp/misc.exp: set a bool var (print v_bool)
+PASS: gdb.cp/misc.exp: print a bool array
+PASS: gdb.cp/misc.exp: set a bool array elem (setup)
+PASS: gdb.cp/misc.exp: set a bool array elem (print v_bool_array)
+PASS: gdb.cp/misc.exp: print true
+PASS: gdb.cp/misc.exp: print false
+PASS: gdb.cp/misc.exp: 1 + true
+PASS: gdb.cp/misc.exp: 3 + false
+PASS: gdb.cp/misc.exp: 1 < 2 < 3
+PASS: gdb.cp/misc.exp: 2 < 1 > 4
+PASS: gdb.cp/misc.exp: (bool)43
+PASS: gdb.cp/misc.exp: (bool)0
+PASS: gdb.cp/misc.exp: (bool)17.93
+PASS: gdb.cp/misc.exp: (bool)0.0
+PASS: gdb.cp/misc.exp: (int)true
+PASS: gdb.cp/misc.exp: (int)false
+Running ./gdb.cp/m-static.exp ...
+PASS: gdb.cp/m-static.exp: continue to breakpoint: end of constructors
+PASS: gdb.cp/m-static.exp: simple object, static const int, accessing via 'class::method::variable
+PASS: gdb.cp/m-static.exp: simple object, static const bool
+PASS: gdb.cp/m-static.exp: simple object, static const int
+PASS: gdb.cp/m-static.exp: simple object, static long
+PASS: gdb.cp/m-static.exp: simple object, static enum
+FAIL: gdb.cp/m-static.exp: simple object instance, print quoted destructor
+FAIL: gdb.cp/m-static.exp: simple object class, ptype quoted destructor
+PASS: gdb.cp/m-static.exp: derived template object, base static const bool
+PASS: gdb.cp/m-static.exp: derived template object, base static const int
+PASS: gdb.cp/m-static.exp: derived template object, base static long
+PASS: gdb.cp/m-static.exp: derived template object, base static enum
+PASS: gdb.cp/m-static.exp: derived template object, static enum
+PASS: gdb.cp/m-static.exp: template object, static const bool
+PASS: gdb.cp/m-static.exp: template object, static const int
+PASS: gdb.cp/m-static.exp: template object, static long
+PASS: gdb.cp/m-static.exp: template object, static enum
+PASS: gdb.cp/m-static.exp: template object, static derived enum
+PASS: gdb.cp/m-static.exp: static const int initialized elsewhere
+PASS: gdb.cp/m-static.exp: static const int initialized nowhere
+PASS: gdb.cp/m-static.exp: static const int initialized in class definition
+PASS: gdb.cp/m-static.exp: static const float initialized in class definition
+PASS: gdb.cp/m-static.exp: info variable everywhere
+PASS: gdb.cp/m-static.exp: step
+FAIL: gdb.cp/m-static.exp: print svar
+Running ./gdb.cp/namespace-enum.exp ...
+PASS: gdb.cp/namespace-enum.exp: print foo::B::B_B
+PASS: gdb.cp/namespace-enum.exp: print foo::B_B
+PASS: gdb.cp/namespace-enum.exp: print A_A
+Running ./gdb.cp/namespace.exp ...
+PASS: gdb.cp/namespace.exp: show lang
+PASS: gdb.cp/namespace.exp: up from marker1
+PASS: gdb.cp/namespace.exp: print 'AAA::c'
+PASS: gdb.cp/namespace.exp: print AAA::c
+PASS: gdb.cp/namespace.exp: print ina
+PASS: gdb.cp/namespace.exp: ptype ina
+PASS: gdb.cp/namespace.exp: info func xyzq
+PASS: gdb.cp/namespace.exp: print 'AAA::xyzq'('x')
+PASS: gdb.cp/namespace.exp: print AAA::xyzq('x')
+PASS: gdb.cp/namespace.exp: break AAA::xyzq
+PASS: gdb.cp/namespace.exp: break ::ensureOtherRefs
+PASS: gdb.cp/namespace.exp: print 'BBB::CCC::xyzq'('x')
+PASS: gdb.cp/namespace.exp: print BBB::CCC::xyzq('x')
+PASS: gdb.cp/namespace.exp: break BBB::CCC::xyzq
+PASS: gdb.cp/namespace.exp: break ::BBB::CCC::xyzq
+PASS: gdb.cp/namespace.exp: print 'BBB::Class::xyzq'
+PASS: gdb.cp/namespace.exp: print BBB::Class::xyzq
+PASS: gdb.cp/namespace.exp: break BBB::Class::xyzq
+PASS: gdb.cp/namespace.exp: whatis C::cOtherFileType
+PASS: gdb.cp/namespace.exp: whatis ::C::cOtherFileType
+PASS: gdb.cp/namespace.exp: whatis C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: whatis ::C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: print C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: print ::C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: whatis C::OtherFileClass::cOtherFileClassType
+PASS: gdb.cp/namespace.exp: whatis ::C::OtherFileClass::cOtherFileClassType
+PASS: gdb.cp/namespace.exp: print C::OtherFileClass::cOtherFileClassVar
+PASS: gdb.cp/namespace.exp: print ::cOtherFileClassVar
+PASS: gdb.cp/namespace.exp: print ::C::OtherFileClass::cOtherFileClassVar
+PASS: gdb.cp/namespace.exp: print c
+PASS: gdb.cp/namespace.exp: print cc
+PASS: gdb.cp/namespace.exp: print 'C::cc'
+PASS: gdb.cp/namespace.exp: print C::cc
+PASS: gdb.cp/namespace.exp: print cd
+PASS: gdb.cp/namespace.exp: print C::D::cd
+PASS: gdb.cp/namespace.exp: print 'E::cde'
+PASS: gdb.cp/namespace.exp: print E::cde
+PASS: gdb.cp/namespace.exp: print shadow
+PASS: gdb.cp/namespace.exp: print E::ce
+PASS: gdb.cp/namespace.exp: ptype C
+PASS: gdb.cp/namespace.exp: ptype E
+PASS: gdb.cp/namespace.exp: ptype CClass
+PASS: gdb.cp/namespace.exp: ptype CClass::NestedClass
+PASS: gdb.cp/namespace.exp: ptype NestedClass
+PASS: gdb.cp/namespace.exp: ptype ::C::CClass
+PASS: gdb.cp/namespace.exp: ptype ::C::CClass::NestedClass
+PASS: gdb.cp/namespace.exp: ptype ::C::NestedClass
+PASS: gdb.cp/namespace.exp: ptype C::CClass
+PASS: gdb.cp/namespace.exp: ptype C::CClass::NestedClass
+PASS: gdb.cp/namespace.exp: ptype C::NestedClass
+PASS: gdb.cp/namespace.exp: print cOtherFile
+PASS: gdb.cp/namespace.exp: ptype OtherFileClass
+PASS: gdb.cp/namespace.exp: ptype ::C::OtherFileClass
+PASS: gdb.cp/namespace.exp: ptype C::OtherFileClass
+PASS: gdb.cp/namespace.exp: ptype OtherFileClass typedefs
+PASS: gdb.cp/namespace.exp: ptype ::C::OtherFileClass typedefs
+PASS: gdb.cp/namespace.exp: print cX
+PASS: gdb.cp/namespace.exp: print 'F::cXf'
+PASS: gdb.cp/namespace.exp: print F::cXf
+PASS: gdb.cp/namespace.exp: print F::cXfX
+PASS: gdb.cp/namespace.exp: print X
+PASS: gdb.cp/namespace.exp: print 'G::Xg'
+PASS: gdb.cp/namespace.exp: print G::Xg
+PASS: gdb.cp/namespace.exp: print G::XgX
+PASS: gdb.cp/namespace.exp: print cXOtherFile
+PASS: gdb.cp/namespace.exp: print XOtherFile
+PASS: gdb.cp/namespace.exp: print AAA::ALPHA
+PASS: gdb.cp/namespace.exp: whatis ::C::CClass::NestedClass
+PASS: gdb.cp/namespace.exp: whatis ::C::CClass::NestedClass *
+Running ./gdb.cp/namespace-nested-import.exp ...
+PASS: gdb.cp/namespace-nested-import.exp: print C::x
+Running ./gdb.cp/nextoverthrow.exp ...
+UNSUPPORTED: gdb.cp/nextoverthrow.exp: nextoverthrow.exp could not find _Unwind_DebugHook
+Running ./gdb.cp/no-dmgl-verbose.exp ...
+PASS: gdb.cp/no-dmgl-verbose.exp: set breakpoint pending off
+PASS: gdb.cp/no-dmgl-verbose.exp: DMGL_VERBOSE-demangled f(std::string) is not defined
+Running ./gdb.cp/noparam.exp ...
+PASS: gdb.cp/noparam.exp: p C::m (int)
+Running ./gdb.cp/nsdecl.exp ...
+PASS: gdb.cp/nsdecl.exp: print fakex
+Running ./gdb.cp/nsimport.exp ...
+PASS: gdb.cp/nsimport.exp: print x
+PASS: gdb.cp/nsimport.exp: print xx
+PASS: gdb.cp/nsimport.exp: print xxx
+Running ./gdb.cp/nsnested.exp ...
+PASS: gdb.cp/nsnested.exp: print ab
+PASS: gdb.cp/nsnested.exp: continue to breakpoint: C::first
+PASS: gdb.cp/nsnested.exp: print ab
+PASS: gdb.cp/nsnested.exp: print C::D::ab
+PASS: gdb.cp/nsnested.exp: continue to breakpoint: C::D::second
+PASS: gdb.cp/nsnested.exp: print ab
+Running ./gdb.cp/nsnoimports.exp ...
+PASS: gdb.cp/nsnoimports.exp: print A::_a
+PASS: gdb.cp/nsnoimports.exp: print A::B::ab
+PASS: gdb.cp/nsnoimports.exp: print A::B::C::abc
+PASS: gdb.cp/nsnoimports.exp: print _a
+PASS: gdb.cp/nsnoimports.exp: print ab
+PASS: gdb.cp/nsnoimports.exp: print abc
+PASS: gdb.cp/nsnoimports.exp: continue to breakpoint: A::B::first
+PASS: gdb.cp/nsnoimports.exp: print A::_a
+PASS: gdb.cp/nsnoimports.exp: print A::B::ab
+PASS: gdb.cp/nsnoimports.exp: print A::B::C::abc
+PASS: gdb.cp/nsnoimports.exp: print _a
+PASS: gdb.cp/nsnoimports.exp: print ab
+PASS: gdb.cp/nsnoimports.exp: print C::abc
+PASS: gdb.cp/nsnoimports.exp: print abc
+PASS: gdb.cp/nsnoimports.exp: continue to breakpoint: A::B::C::second
+PASS: gdb.cp/nsnoimports.exp: print A::_a
+PASS: gdb.cp/nsnoimports.exp: print A::B::ab
+PASS: gdb.cp/nsnoimports.exp: print A::B::C::abc
+PASS: gdb.cp/nsnoimports.exp: print _a
+PASS: gdb.cp/nsnoimports.exp: print ab
+PASS: gdb.cp/nsnoimports.exp: print abc
+Running ./gdb.cp/nsrecurs.exp ...
+PASS: gdb.cp/nsrecurs.exp: print ax
+PASS: gdb.cp/nsrecurs.exp: print dx
+PASS: gdb.cp/nsrecurs.exp: print xx
+KFAIL: gdb.cp/nsrecurs.exp: ptype G::GF (PRMS: gdb/10541)
+KFAIL: gdb.cp/nsrecurs.exp: print G::GF::FE::ex (PRMS: gdb/10541)
+Running ./gdb.cp/nsstress.exp ...
+PASS: gdb.cp/nsstress.exp: print y
+Running ./gdb.cp/nsusing.exp ...
+PASS: gdb.cp/nsusing.exp: print _a
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker3
+PASS: gdb.cp/nsusing.exp: Print _a without import
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker1 stop
+PASS: gdb.cp/nsusing.exp: print _a in a nested scope
+PASS: gdb.cp/nsusing.exp: print cc
+PASS: gdb.cp/nsusing.exp: print B::_a
+PASS: gdb.cp/nsusing.exp: print _a in namespace alias scope
+PASS: gdb.cp/nsusing.exp: print x in namespace alias scope
+PASS: gdb.cp/nsusing.exp: Print _a without import
+PASS: gdb.cp/nsusing.exp: print dx
+PASS: gdb.cp/nsusing.exp: print efx
+PASS: gdb.cp/nsusing.exp: print ghx
+PASS: gdb.cp/nsusing.exp: print jx
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: K::marker9
+PASS: gdb.cp/nsusing.exp: print jx
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker10 stop
+PASS: gdb.cp/nsusing.exp: print x (from M::x)
+Running ./gdb.cp/operator.exp ...
+PASS: gdb.cp/operator.exp: global operator
+PASS: gdb.cp/operator.exp: global operator overload
+PASS: gdb.cp/operator.exp: ADL operator
+PASS: gdb.cp/operator.exp: ADL operator overload
+PASS: gdb.cp/operator.exp: Fully qualified explicit operator call
+PASS: gdb.cp/operator.exp: anonymous namespace operator
+PASS: gdb.cp/operator.exp: anonymous namespace operator overload
+PASS: gdb.cp/operator.exp: anonymous namespace operator overload float
+PASS: gdb.cp/operator.exp: imported operator
+PASS: gdb.cp/operator.exp: imported operator overload
+PASS: gdb.cp/operator.exp: imported operator overload float
+PASS: gdb.cp/operator.exp: member operator
+PASS: gdb.cp/operator.exp: member operator overload
+PASS: gdb.cp/operator.exp: namespace alias
+PASS: gdb.cp/operator.exp: imported declaration
+PASS: gdb.cp/operator.exp: p l == 1
+PASS: gdb.cp/operator.exp: p x[0]
+Running ./gdb.cp/oranking.exp ...
+PASS: gdb.cp/oranking.exp: continue to breakpoint: end of main
+KFAIL: gdb.cp/oranking.exp: p foo0(b) (PRMS: gdb/12096)
+PASS: gdb.cp/oranking.exp: p test1()
+PASS: gdb.cp/oranking.exp: p foo1(b)
+PASS: gdb.cp/oranking.exp: p test2()
+KFAIL: gdb.cp/oranking.exp: p foo2(b) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test3()
+PASS: gdb.cp/oranking.exp: p foo3(1.0f)
+PASS: gdb.cp/oranking.exp: p test4()
+KFAIL: gdb.cp/oranking.exp: p foo4(&a) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test5()
+PASS: gdb.cp/oranking.exp: p foo5(c)
+PASS: gdb.cp/oranking.exp: p test6()
+PASS: gdb.cp/oranking.exp: p foo6(bp)
+PASS: gdb.cp/oranking.exp: p test7()
+PASS: gdb.cp/oranking.exp: p foo7(cp)
+PASS: gdb.cp/oranking.exp: p test8()
+PASS: gdb.cp/oranking.exp: p foo8(co)
+PASS: gdb.cp/oranking.exp: p test9()
+PASS: gdb.cp/oranking.exp: p foo9(co)
+PASS: gdb.cp/oranking.exp: p test10()
+KFAIL: gdb.cp/oranking.exp: p foo10(amp) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test101()
+KFAIL: gdb.cp/oranking.exp: p foo101("abc") (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test11()
+KFAIL: gdb.cp/oranking.exp: p foo11(d) (PRMS: gdb/12096)
+PASS: gdb.cp/oranking.exp: p test12()
+PASS: gdb.cp/oranking.exp: p foo12(1)
+PASS: gdb.cp/oranking.exp: p test13()
+KFAIL: gdb.cp/oranking.exp: p foo13(c) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test14()
+KFAIL: gdb.cp/oranking.exp: p foo14(e) (PRMS: gdb/12096)
+Running ./gdb.cp/overload-const.exp ...
+PASS: gdb.cp/overload-const.exp: set language c++
+PASS: gdb.cp/overload-const.exp: setting breakpoint at myclass::func
+Running ./gdb.cp/overload.exp ...
+PASS: gdb.cp/overload.exp: up from marker1
+PASS: gdb.cp/overload.exp: print foo_instance1
+PASS: gdb.cp/overload.exp: ptype foo_instance1 (shorter match)
+PASS: gdb.cp/overload.exp: print foo_instance2
+PASS: gdb.cp/overload.exp: print foo_instance3
+PASS: gdb.cp/overload.exp: print call overloaded func 1 arg
+PASS: gdb.cp/overload.exp: re-selected 'main' frame after inferior call
+PASS: gdb.cp/overload.exp: print call overloaded func 2 args
+PASS: gdb.cp/overload.exp: print call overloaded func 3 args
+PASS: gdb.cp/overload.exp: print call overloaded func 4 args
+PASS: gdb.cp/overload.exp: print call overloaded func 5 args
+PASS: gdb.cp/overload.exp: print call overloaded func 6 args
+PASS: gdb.cp/overload.exp: print call overloaded func 7 args
+PASS: gdb.cp/overload.exp: print call overloaded func 8 args
+PASS: gdb.cp/overload.exp: print call overloaded func 9 args
+PASS: gdb.cp/overload.exp: print call overloaded func 10 args
+PASS: gdb.cp/overload.exp: print call overloaded func 11 args
+PASS: gdb.cp/overload.exp: print call overloaded func void arg
+PASS: gdb.cp/overload.exp: print call overloaded func char arg
+PASS: gdb.cp/overload.exp: print call overloaded func signed char arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned char arg
+PASS: gdb.cp/overload.exp: print call overloaded func short arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned short arg
+PASS: gdb.cp/overload.exp: print call overloaded func int arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned int arg
+PASS: gdb.cp/overload.exp: print call overloaded func long arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned long arg
+PASS: gdb.cp/overload.exp: print call overloaded func float arg
+PASS: gdb.cp/overload.exp: print call overloaded func double arg
+PASS: gdb.cp/overload.exp: print call overloaded func int\* arg
+PASS: gdb.cp/overload.exp: print call overloaded func char\* arg
+PASS: gdb.cp/overload.exp: print bar(a)
+PASS: gdb.cp/overload.exp: print bar(b)
+PASS: gdb.cp/overload.exp: print bar(c)
+PASS: gdb.cp/overload.exp: print bar(d)
+PASS: gdb.cp/overload.exp: list overloaded function with no args
+PASS: gdb.cp/overload.exp: list overloaded function with int arg
+PASS: gdb.cp/overload.exp: list overloaded function with function ptr args
+PASS: gdb.cp/overload.exp: list overloaded function with function ptr args - quotes around argument
+PASS: gdb.cp/overload.exp: list overload.cc:intToChar
+PASS: gdb.cp/overload.exp: list overload.cc:intToChar(char)
+PASS: gdb.cp/overload.exp: list overload.cc:'intToChar(char)'
+PASS: gdb.cp/overload.exp: list 'overload.cc:intToChar(char)'
+PASS: gdb.cp/overload.exp: list 'overload.cc':intToChar(char)
+PASS: gdb.cp/overload.exp: list 'overload.cc':'intToChar(char)'
+PASS: gdb.cp/overload.exp: list overload.cc:foo::overloadfnarg(int)
+PASS: gdb.cp/overload.exp: list overload.cc:'foo::overloadfnarg(int)'
+PASS: gdb.cp/overload.exp: print overloadNamespace(1)
+PASS: gdb.cp/overload.exp: print overloadNamespace('a')
+PASS: gdb.cp/overload.exp: print overloadNamespace(dummyInstance)
+PASS: gdb.cp/overload.exp: print K::staticoverload ()
+PASS: gdb.cp/overload.exp: print K::staticoverload (2)
+PASS: gdb.cp/overload.exp: print K::staticoverload (2, 3)
+PASS: gdb.cp/overload.exp: print N::nsoverload ()
+PASS: gdb.cp/overload.exp: print N::nsoverload (2)
+PASS: gdb.cp/overload.exp: print N::nsoverload (2, 3)
+PASS: gdb.cp/overload.exp: print overloadNamespace(1) in XXX
+PASS: gdb.cp/overload.exp: print overloadNamespace('a') in XXX
+PASS: gdb.cp/overload.exp: print overloadNamespace(dummyInstance) in XXX
+PASS: gdb.cp/overload.exp: print intToChar(1)
+PASS: gdb.cp/overload.exp: print foo::overload1arg
+PASS: gdb.cp/overload.exp: print foo::overload1arg(char***)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(void)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(char)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(signed char)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned char)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(short)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned short)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(int)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned int)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(long)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned long)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(float)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(double)
+Running ./gdb.cp/ovldbreak.exp ...
+PASS: gdb.cp/ovldbreak.exp: detect void
+PASS: gdb.cp/ovldbreak.exp: detect char
+PASS: gdb.cp/ovldbreak.exp: detect signed_char
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_char
+PASS: gdb.cp/ovldbreak.exp: detect short_int
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_short_int
+PASS: gdb.cp/ovldbreak.exp: detect int
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_int
+PASS: gdb.cp/ovldbreak.exp: detect long_int
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_long_int
+PASS: gdb.cp/ovldbreak.exp: detect float
+PASS: gdb.cp/ovldbreak.exp: detect double
+PASS: gdb.cp/ovldbreak.exp: set multiple-symbols ask
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 2
+PASS: gdb.cp/ovldbreak.exp: set bp 2 on foo::overload1arg 2 line 107
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 3
+PASS: gdb.cp/ovldbreak.exp: set bp 3 on foo::overload1arg 3 line 110
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 4
+PASS: gdb.cp/ovldbreak.exp: set bp 4 on foo::overload1arg 4 line 140
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 5
+PASS: gdb.cp/ovldbreak.exp: set bp 5 on foo::overload1arg 5 line 137
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 6
+PASS: gdb.cp/ovldbreak.exp: set bp 6 on foo::overload1arg 6 line 125
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 7
+PASS: gdb.cp/ovldbreak.exp: set bp 7 on foo::overload1arg 7 line 131
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 8
+PASS: gdb.cp/ovldbreak.exp: set bp 8 on foo::overload1arg 8 line 119
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 9
+PASS: gdb.cp/ovldbreak.exp: set bp 9 on foo::overload1arg 9 line 113
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 10
+PASS: gdb.cp/ovldbreak.exp: set bp 10 on foo::overload1arg 10 line 116
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 11
+PASS: gdb.cp/ovldbreak.exp: set bp 11 on foo::overload1arg 11 line 128
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 12
+PASS: gdb.cp/ovldbreak.exp: set bp 12 on foo::overload1arg 12 line 134
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 13
+PASS: gdb.cp/ovldbreak.exp: set bp 13 on foo::overload1arg 13 line 122
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after setting one-by-one)
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice cancel
+PASS: gdb.cp/ovldbreak.exp: set bp on overload1arg canceled
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after cancel)
+PASS: gdb.cp/ovldbreak.exp: delete all breakpoints
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after delete)
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice all
+PASS: gdb.cp/ovldbreak.exp: set bp on overload1arg all
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after setting on all)
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : void
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : char
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : signed_char
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_char
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : short_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_short_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : long_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_long_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : float
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : double
+PASS: gdb.cp/ovldbreak.exp: set multiple-symbols cancel
+PASS: gdb.cp/ovldbreak.exp: break foo::foofunc
+PASS: gdb.cp/ovldbreak.exp: set multiple-symbols all
+PASS: gdb.cp/ovldbreak.exp: break foo::foofunc
+FAIL: gdb.cp/ovldbreak.exp: setting breakpoint at exit
+Running ./gdb.cp/ovsrch.exp ...
+PASS: gdb.cp/ovsrch.exp: break A::stop_here
+PASS: gdb.cp/ovsrch.exp: break 'A::stop_here'
+PASS: gdb.cp/ovsrch.exp: continue to breakpoint: stop_here
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (char*)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (char*)  const'
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (char*)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (char*)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (char*)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (char*)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (void)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (void)  const'
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (int)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (int)  const'
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (int)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (int)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (int)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (int)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::outer::hibob if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::B::stop_here_too
+PASS: gdb.cp/ovsrch.exp: break 'A::B::stop_here_too'
+PASS: gdb.cp/ovsrch.exp: continue to breakpoint: stop_here_too
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (char*)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (char*)  const'
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (char*)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (char*)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (char*)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (char*)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (void)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (void)  const'
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (int)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (int)  const'
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (int)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (int)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (int)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (int)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::hibob if (a_param == 3)
+Running ./gdb.cp/paren-type.exp ...
+PASS: gdb.cp/paren-type.exp: set breakpoint pending off
+PASS: gdb.cp/paren-type.exp: break C::f(long)
+PASS: gdb.cp/paren-type.exp: break C::f(short)
+Running ./gdb.cp/parse-lang.exp ...
+PASS: gdb.cp/parse-lang.exp: breakpoint hit
+Running ./gdb.cp/pass-by-ref.exp ...
+PASS: gdb.cp/pass-by-ref.exp: call function in obj
+PASS: gdb.cp/pass-by-ref.exp: call function in derived
+PASS: gdb.cp/pass-by-ref.exp: call function in container
+Running ./gdb.cp/pr-1023.exp ...
+PASS: gdb.cp/pr-1023.exp: break myClass::performBlocking
+PASS: gdb.cp/pr-1023.exp: break myClass::performUnblocking
+Running ./gdb.cp/pr10687.exp ...
+PASS: gdb.cp/pr10687.exp: continue to breakpoint: marker
+PASS: gdb.cp/pr10687.exp: p a
+Running ./gdb.cp/pr10728.exp ...
+PASS: gdb.cp/pr10728.exp: continue to breakpoint: marker 1
+PASS: gdb.cp/pr10728.exp: print x->y2 - x->y1
+Running ./gdb.cp/pr12028.exp ...
+PASS: gdb.cp/pr12028.exp: p D::foo(b)
+Running ./gdb.cp/pr-1210.exp ...
+PASS: gdb.cp/pr-1210.exp: step past initialization
+PASS: gdb.cp/pr-1210.exp: print *obj
+PASS: gdb.cp/pr-1210.exp: print obj->myB
+Running ./gdb.cp/pr-574.exp ...
+PASS: gdb.cp/pr-574.exp: continue to breakpoint: end of constructors
+PASS: gdb.cp/pr-574.exp: PR gdb/574
+Running ./gdb.cp/pr9067.exp ...
+PASS: gdb.cp/pr9067.exp: print b
+Running ./gdb.cp/pr9167.exp ...
+PASS: gdb.cp/pr9167.exp: continue to breakpoint: marker
+PASS: gdb.cp/pr9167.exp: p b
+Running ./gdb.cp/pr9631.exp ...
+PASS: gdb.cp/pr9631.exp: continue to breakpoint: after bar tender is initialized
+PASS: gdb.cp/pr9631.exp: print tender
+Running ./gdb.cp/printmethod.exp ...
+PASS: gdb.cp/printmethod.exp: continue to breakpoint: end of constructors
+PASS: gdb.cp/printmethod.exp: print virtual method.
+PASS: gdb.cp/printmethod.exp: print nonvirtual method.
+Running ./gdb.cp/psmang.exp ...
+PASS: gdb.cp/psmang.exp: break s::method1
+PASS: gdb.cp/psmang.exp: break s::method2
+Running ./gdb.cp/psymtab-parameter.exp ...
+PASS: gdb.cp/psymtab-parameter.exp: set language c++
+PASS: gdb.cp/psymtab-parameter.exp: maintenance info symtabs
+PASS: gdb.cp/psymtab-parameter.exp: complete p 'func<short>(
+Running ./gdb.cp/ptype-cv-cp.exp ...
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_const_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_const_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_const_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_const_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_volatile_const_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_volatile_const_my_int
+Running ./gdb.cp/ptype-flags.exp ...
+PASS: gdb.cp/ptype-flags.exp: basic test
+PASS: gdb.cp/ptype-flags.exp: no methods
+PASS: gdb.cp/ptype-flags.exp: no typedefs
+PASS: gdb.cp/ptype-flags.exp: no methods or typedefs
+PASS: gdb.cp/ptype-flags.exp: raw
+PASS: gdb.cp/ptype-flags.exp: raw no methods
+PASS: gdb.cp/ptype-flags.exp: raw no typedefs
+PASS: gdb.cp/ptype-flags.exp: raw no methods or typedefs
+PASS: gdb.cp/ptype-flags.exp: set print type methods off
+PASS: gdb.cp/ptype-flags.exp: basic test, default methods off
+PASS: gdb.cp/ptype-flags.exp: methods, default methods off
+PASS: gdb.cp/ptype-flags.exp: no typedefs, default methods off
+PASS: gdb.cp/ptype-flags.exp: methods, no typedefs, default methods off
+PASS: gdb.cp/ptype-flags.exp: set print type typedefs off
+PASS: gdb.cp/ptype-flags.exp: basic test, default methods+typedefs off
+PASS: gdb.cp/ptype-flags.exp: methods, default methods+typedefs off
+PASS: gdb.cp/ptype-flags.exp: typedefs, default methods+typedefs off
+PASS: gdb.cp/ptype-flags.exp: methods typedefs, default methods+typedefs off
+Running ./gdb.cp/punctuator.exp ...
+PASS: gdb.cp/punctuator.exp: set lang c++
+PASS: gdb.cp/punctuator.exp: print (0x5a5a bitand 0xaaaa) == (0x5a5a & 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a bitor 0xaaaa) == (0x5a5a | 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a xor 0xaaaa) == (0x5a5a ^ 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a and 0xaaaa) == (0x5a5a && 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a or 0xaaaa) == (0x5a5a || 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (not not 0xaaaa) == (!!0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (compl 0xaaaa) == (~0xaaaa)
+PASS: gdb.cp/punctuator.exp: set $u 1
+PASS: gdb.cp/punctuator.exp: set $v 1
+PASS: gdb.cp/punctuator.exp: print ($u not_eq 0xaaaa) == ($v != 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print ($u and_eq 0xaaaa) == ($v &= 0xaaaa)
+PASS: gdb.cp/punctuator.exp: set $u 2
+PASS: gdb.cp/punctuator.exp: set $v 2
+PASS: gdb.cp/punctuator.exp: print ($u or_eq 0xaaaa) == ($v |= 0xaaaa)
+PASS: gdb.cp/punctuator.exp: set $u 3
+PASS: gdb.cp/punctuator.exp: set $v 3
+PASS: gdb.cp/punctuator.exp: print ($u xor_eq 0xaaaa) == ($v ^= 0xaaaa)
+Running ./gdb.cp/readnow-language.exp ...
+PASS: gdb.cp/readnow-language.exp: show language
+Running ./gdb.cp/ref-params.exp ...
+PASS: gdb.cp/ref-params.exp: print value of a Child in main
+PASS: gdb.cp/ref-params.exp: print value of f1 on Child in main
+PASS: gdb.cp/ref-params.exp: print value of f2 on Child in main
+PASS: gdb.cp/ref-params.exp: print value of f1 on (Child&) in main
+PASS: gdb.cp/ref-params.exp: print value of f2 on (Child&) in main
+PASS: gdb.cp/ref-params.exp: print value of Child& in f2
+PASS: gdb.cp/ref-params.exp: print value of f1 on Child& in f2
+PASS: gdb.cp/ref-params.exp: print value of Parent& in f1
+PASS: gdb.cp/ref-params.exp: print f1(MQ)
+PASS: gdb.cp/ref-params.exp: print mf1(MQ)
+PASS: gdb.cp/ref-params.exp: print mf2(MQ)
+PASS: gdb.cp/ref-params.exp: print f1(MQR)
+PASS: gdb.cp/ref-params.exp: print mf1(MQR)
+PASS: gdb.cp/ref-params.exp: print mf2(MQR)
+Running ./gdb.cp/ref-types.exp ...
+PASS: gdb.cp/ref-types.exp: up from marker1 1
+PASS: gdb.cp/ref-types.exp: print value of s
+PASS: gdb.cp/ref-types.exp: ptype s
+PASS: gdb.cp/ref-types.exp: print value of ps
+PASS: gdb.cp/ref-types.exp: ptype ps
+PASS: gdb.cp/ref-types.exp: print value of as[0]
+PASS: gdb.cp/ref-types.exp: ptype as
+PASS: gdb.cp/ref-types.exp: print value of as[1]
+PASS: gdb.cp/ref-types.exp: print value of as[2]
+PASS: gdb.cp/ref-types.exp: print value of as[3]
+PASS: gdb.cp/ref-types.exp: print value of rs
+PASS: gdb.cp/ref-types.exp: ptype rs
+PASS: gdb.cp/ref-types.exp: print value of *rps
+PASS: gdb.cp/ref-types.exp: examine value at rps
+PASS: gdb.cp/ref-types.exp: ptype rps
+PASS: gdb.cp/ref-types.exp: print value of ras[0]
+PASS: gdb.cp/ref-types.exp: ptype ras
+PASS: gdb.cp/ref-types.exp: print value of ras[1]
+PASS: gdb.cp/ref-types.exp: print value of ras[2]
+PASS: gdb.cp/ref-types.exp: print value of ras[3]
+PASS: gdb.cp/ref-types.exp: up from f
+PASS: gdb.cp/ref-types.exp: print value of C
+PASS: gdb.cp/ref-types.exp: ptype C
+PASS: gdb.cp/ref-types.exp: print value of UC
+PASS: gdb.cp/ref-types.exp: ptype UC
+PASS: gdb.cp/ref-types.exp: print value of S
+PASS: gdb.cp/ref-types.exp: ptype S
+PASS: gdb.cp/ref-types.exp: print value of US
+PASS: gdb.cp/ref-types.exp: ptype US
+PASS: gdb.cp/ref-types.exp: print value of I
+PASS: gdb.cp/ref-types.exp: ptype I
+PASS: gdb.cp/ref-types.exp: print value of UI
+PASS: gdb.cp/ref-types.exp: ptype UI
+PASS: gdb.cp/ref-types.exp: print value of L
+PASS: gdb.cp/ref-types.exp: ptype L
+PASS: gdb.cp/ref-types.exp: print value of UL
+PASS: gdb.cp/ref-types.exp: ptype UL
+PASS: gdb.cp/ref-types.exp: print value of F
+PASS: gdb.cp/ref-types.exp: ptype F
+PASS: gdb.cp/ref-types.exp: print value of D
+PASS: gdb.cp/ref-types.exp: ptype D
+PASS: gdb.cp/ref-types.exp: ptype rC
+PASS: gdb.cp/ref-types.exp: ptype rUC
+PASS: gdb.cp/ref-types.exp: ptype rS
+PASS: gdb.cp/ref-types.exp: ptype rUS
+PASS: gdb.cp/ref-types.exp: ptype rI
+PASS: gdb.cp/ref-types.exp: ptype rUI
+PASS: gdb.cp/ref-types.exp: ptype rL
+PASS: gdb.cp/ref-types.exp: ptype rUL
+PASS: gdb.cp/ref-types.exp: ptype rF
+PASS: gdb.cp/ref-types.exp: ptype rD
+PASS: gdb.cp/ref-types.exp: print value of rC
+PASS: gdb.cp/ref-types.exp: print value of rUC
+PASS: gdb.cp/ref-types.exp: print value of rS
+PASS: gdb.cp/ref-types.exp: print value of rUS
+PASS: gdb.cp/ref-types.exp: print value of rI
+PASS: gdb.cp/ref-types.exp: print value of UI
+PASS: gdb.cp/ref-types.exp: print value of rL
+PASS: gdb.cp/ref-types.exp: print value of rUL
+PASS: gdb.cp/ref-types.exp: print value of rF
+PASS: gdb.cp/ref-types.exp: print value of rD
+Running ./gdb.cp/re-set-overloaded.exp ...
+PASS: gdb.cp/re-set-overloaded.exp: set breakpoint pending yes
+PASS: gdb.cp/re-set-overloaded.exp: break C::C
+PASS: gdb.cp/re-set-overloaded.exp: set variable $brk = $bpnum
+PASS: gdb.cp/re-set-overloaded.exp: start
+KFAIL: gdb.cp/re-set-overloaded.exp: breakpoint resolved (PRMS: breakpoints/11657)
+Running ./gdb.cp/rtti.exp ...
+PASS: gdb.cp/rtti.exp: continue to breakpoint: end of constructors in main
+PASS: gdb.cp/rtti.exp: print *e1
+PASS: gdb.cp/rtti.exp: print *e2
+PASS: gdb.cp/rtti.exp: continue to breakpoint: end of constructors in func
+PASS: gdb.cp/rtti.exp: print *obj
+PASS: gdb.cp/rtti.exp: continue to breakpoint: end of constructors in func3
+PASS: gdb.cp/rtti.exp: print *obj3
+Running ./gdb.cp/shadow.exp ...
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker1
+PASS: gdb.cp/shadow.exp: Print class x shadowing global x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker2
+PASS: gdb.cp/shadow.exp: Print local x shadowing class x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker3
+PASS: gdb.cp/shadow.exp: Print inner scope x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker4
+PASS: gdb.cp/shadow.exp: Print local x not namespace x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker5
+PASS: gdb.cp/shadow.exp: Print imported namespace x
+Running ./gdb.cp/smartp.exp ...
+PASS: gdb.cp/smartp.exp: continue to breakpoint: end of main
+PASS: gdb.cp/smartp.exp: p mp->foo()
+PASS: gdb.cp/smartp.exp: p mtp->foo()
+PASS: gdb.cp/smartp.exp: p mt1.foo()
+PASS: gdb.cp/smartp.exp: p mt4p.a
+PASS: gdb.cp/smartp.exp: p mt4->a
+PASS: gdb.cp/smartp.exp: p sp1->foo()
+PASS: gdb.cp/smartp.exp: p sp2->foo()
+PASS: gdb.cp/smartp.exp: p sp3->foo(1)
+PASS: gdb.cp/smartp.exp: p sp3->foo('a')
+PASS: gdb.cp/smartp.exp: p sp4->a
+PASS: gdb.cp/smartp.exp: p sp4->b
+PASS: gdb.cp/smartp.exp: p mt4p->a
+PASS: gdb.cp/smartp.exp: p mt4p->b
+PASS: gdb.cp/smartp.exp: p mt4->fake
+PASS: gdb.cp/smartp.exp: p mt4->fake()
+PASS: gdb.cp/smartp.exp: p b->foo()
+PASS: gdb.cp/smartp.exp: p c->foo()
+PASS: gdb.cp/smartp.exp: p c->inta
+KFAIL: gdb.cp/smartp.exp: p c2->inta (PRMS: gdb/11606)
+Running ./gdb.cp/static-method.exp ...
+PASS: gdb.cp/static-method.exp: info addr A::func()
+PASS: gdb.cp/static-method.exp: list static-method.cc:xxx::(anonymous namespace)::func
+PASS: gdb.cp/static-method.exp: list 'static-method.cc:xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: list 'static-method.cc':'xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: list static-method.cc:'xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: continue to xxx::(anonymous namespace)::func
+PASS: gdb.cp/static-method.exp: continue to 'xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: list static-method.cc:xxx::(anonymous namespace)::A::func
+PASS: gdb.cp/static-method.exp: list 'static-method.cc:xxx::(anonymous namespace)::A::func'
+PASS: gdb.cp/static-method.exp: list 'static-method.cc':'xxx::(anonymous namespace)::A::func'
+PASS: gdb.cp/static-method.exp: list static-method.cc:'xxx::(anonymous namespace)::A::func'
+PASS: gdb.cp/static-method.exp: continue to xxx::(anonymous namespace)::A::func
+PASS: gdb.cp/static-method.exp: continue to 'xxx::(anonymous namespace)::A::func'
+Running ./gdb.cp/static-print-quit.exp ...
+PASS: gdb.cp/static-print-quit.exp: set width 80
+PASS: gdb.cp/static-print-quit.exp: set height 2
+PASS: gdb.cp/static-print-quit.exp: print c - <return>
+PASS: gdb.cp/static-print-quit.exp: print c - q <return>
+PASS: gdb.cp/static-print-quit.exp: print c - to quit
+PASS: gdb.cp/static-print-quit.exp: q
+PASS: gdb.cp/static-print-quit.exp: set pagination off
+PASS: gdb.cp/static-print-quit.exp: first print
+PASS: gdb.cp/static-print-quit.exp: second print
+Running ./gdb.cp/temargs.exp ...
+PASS: gdb.cp/temargs.exp: set first breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set second breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set third breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set fourth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set fifth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set sixth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to first breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in base_m
+PASS: gdb.cp/temargs.exp: test value of I in base_m
+PASS: gdb.cp/temargs.exp: test value of P in base_m
+PASS: gdb.cp/temargs.exp: test value of MP in base_m
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to second breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in inner_m
+PASS: gdb.cp/temargs.exp: test value of I in inner_m
+PASS: gdb.cp/temargs.exp: test value of P in inner_m
+PASS: gdb.cp/temargs.exp: test value of MP in inner_m
+PASS: gdb.cp/temargs.exp: test type of Z in inner_m
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to third breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in func
+PASS: gdb.cp/temargs.exp: test value of I in func
+PASS: gdb.cp/temargs.exp: test value of P in func
+PASS: gdb.cp/temargs.exp: test value of MP in func
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to fourth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in templ_m
+PASS: gdb.cp/temargs.exp: test value of I in templ_m
+PASS: gdb.cp/temargs.exp: test value of P in templ_m
+PASS: gdb.cp/temargs.exp: test value of MP in templ_m
+PASS: gdb.cp/temargs.exp: test type of Q in templ_m
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to fifth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of F in k2_m
+XFAIL: gdb.cp/temargs.exp: test value of F in k2_m (PRMS gcc/49366)
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to sixth breakpoint for temargs
+XFAIL: gdb.cp/temargs.exp: test type of F in k3_m (PRMS gcc/49546)
+XFAIL: gdb.cp/temargs.exp: test value of F in k3_m (PRMS gcc/49546)
+Running ./gdb.cp/templates.exp ...
+PASS: gdb.cp/templates.exp: set multiple-symbols ask
+KFAIL: gdb.cp/templates.exp: ptype T5<int> (PRMS: gdb/8218)
+KFAIL: gdb.cp/templates.exp: ptype T5<int> (PRMS: gdb/8218)
+PASS: gdb.cp/templates.exp: constructor breakpoint
+PASS: gdb.cp/templates.exp: destructor breakpoint
+PASS: gdb.cp/templates.exp: value method breakpoint
+PASS: gdb.cp/templates.exp: breakpoint on a line with no real code
+PASS: gdb.cp/templates.exp: print method of template typedef
+XFAIL: gdb.cp/templates.exp: print destructor of template typedef (PRMS gcc/51668)
+PASS: gdb.cp/templates.exp: verify GCC PR debug/51668
+PASS: gdb.cp/templates.exp: ptype empty
+PASS: gdb.cp/templates.exp: ptype arg
+PASS: gdb.cp/templates.exp: print t5i.value()
+PASS: gdb.cp/templates.exp: b 770
+PASS: gdb.cp/templates.exp: continue to line 770
+PASS: gdb.cp/templates.exp: print fint
+PASS: gdb.cp/templates.exp: print fvpchar
+PASS: gdb.cp/templates.exp: ptype Foo
+PASS: gdb.cp/templates.exp: ptype fint
+PASS: gdb.cp/templates.exp: ptype fchar
+KFAIL: gdb.cp/templates.exp: ptype fvpchar (PRMS: gdb/1512)
+PASS: gdb.cp/templates.exp: print Foo<volatile char *>::foo
+PASS: gdb.cp/templates.exp: print Foo<volatile char*>::foo
+PASS: gdb.cp/templates.exp: ptype Bar
+PASS: gdb.cp/templates.exp: ptype bint
+PASS: gdb.cp/templates.exp: ptype bint2
+PASS: gdb.cp/templates.exp: ptype Baz
+PASS: gdb.cp/templates.exp: ptype bazint
+PASS: gdb.cp/templates.exp: ptype bazint2
+PASS: gdb.cp/templates.exp: ptype Qux
+PASS: gdb.cp/templates.exp: ptype quxint
+PASS: gdb.cp/templates.exp: ptype Spec
+PASS: gdb.cp/templates.exp: ptype siip
+PASS: gdb.cp/templates.exp: ptype Garply<int>
+PASS: gdb.cp/templates.exp: ptype Garply<Garply<char> >
+PASS: gdb.cp/templates.exp: print Garply<Garply<char> >::garply
+PASS: gdb.cp/templates.exp: break Garply<Garply<char> >::garply
+Running ./gdb.cp/try_catch.exp ...
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 1-throw
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 1-catch
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-start
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-next
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-throw
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-catch
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 3-throw
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 3-catch
+Running ./gdb.cp/typedef-operator.exp ...
+PASS: gdb.cp/typedef-operator.exp: set language c++
+PASS: gdb.cp/typedef-operator.exp: test crash
+PASS: gdb.cp/typedef-operator.exp: test typedef
+Running ./gdb.cp/userdef.exp ...
+PASS: gdb.cp/userdef.exp: break marker1
+PASS: gdb.cp/userdef.exp: continue to marker1
+PASS: gdb.cp/userdef.exp: up from marker1
+PASS: gdb.cp/userdef.exp: print one + two
+PASS: gdb.cp/userdef.exp: re-selected 'main' frame after inferior call
+PASS: gdb.cp/userdef.exp: print one - two
+PASS: gdb.cp/userdef.exp: print one * two
+PASS: gdb.cp/userdef.exp: print one / two
+PASS: gdb.cp/userdef.exp: print one % two
+PASS: gdb.cp/userdef.exp: print one && two
+PASS: gdb.cp/userdef.exp: print one || two
+PASS: gdb.cp/userdef.exp: print one & two
+PASS: gdb.cp/userdef.exp: print one | two
+PASS: gdb.cp/userdef.exp: print one ^ two
+PASS: gdb.cp/userdef.exp: print one < two
+PASS: gdb.cp/userdef.exp: print one <= two
+PASS: gdb.cp/userdef.exp: print one > two
+PASS: gdb.cp/userdef.exp: print one >= two
+PASS: gdb.cp/userdef.exp: print one == two
+PASS: gdb.cp/userdef.exp: print one.operator== (two)
+PASS: gdb.cp/userdef.exp: print one != two
+PASS: gdb.cp/userdef.exp: print one << 31
+PASS: gdb.cp/userdef.exp: print one >> 31
+PASS: gdb.cp/userdef.exp: print !one
+PASS: gdb.cp/userdef.exp: print +one
+PASS: gdb.cp/userdef.exp: print ~one
+PASS: gdb.cp/userdef.exp: print -one
+PASS: gdb.cp/userdef.exp: print one++
+PASS: gdb.cp/userdef.exp: print ++one
+PASS: gdb.cp/userdef.exp: print one--
+PASS: gdb.cp/userdef.exp: print --one
+PASS: gdb.cp/userdef.exp: print one += 7
+PASS: gdb.cp/userdef.exp: print two = one
+PASS: gdb.cp/userdef.exp: break A2::operator+
+PASS: gdb.cp/userdef.exp: break A2::operator +
+PASS: gdb.cp/userdef.exp: print c
+PASS: gdb.cp/userdef.exp: print *c
+PASS: gdb.cp/userdef.exp: print &*c
+PASS: gdb.cp/userdef.exp: ptype &*c
+PASS: gdb.cp/userdef.exp: print operator== (mem1, mem2)
+PASS: gdb.cp/userdef.exp: print operator== (mem1, mem1)
+Running ./gdb.cp/using-crash.exp ...
+PASS: gdb.cp/using-crash.exp: reload file
+Running ./gdb.cp/virtbase.exp ...
+PASS: gdb.cp/virtbase.exp: continue to breakpoint: first breakpoint
+PASS: gdb.cp/virtbase.exp: print *this
+PASS: gdb.cp/virtbase.exp: print x in get_y
+PASS: gdb.cp/virtbase.exp: continue to breakpoint: second breakpoint
+PASS: gdb.cp/virtbase.exp: print x in get_z
+PASS: gdb.cp/virtbase.exp: continue to breakpoint: third breakpoint
+PASS: gdb.cp/virtbase.exp: print *(D *) e
+PASS: gdb.cp/virtbase.exp: set print object on
+PASS: gdb.cp/virtbase.exp: print/x b->mA
+PASS: gdb.cp/virtbase.exp: print rtti_data
+PASS: gdb.cp/virtbase.exp: print pointer to virtual base at non-zero offset of larger object
+PASS: gdb.cp/virtbase.exp: print same pointer from history value
+PASS: gdb.cp/virtbase.exp: print whole pointed-to object, starting from the virtual base pointer
+Running ./gdb.cp/virtfunc2.exp ...
+PASS: gdb.cp/virtfunc2.exp: continue to breakpoint: marker 1
+PASS: gdb.cp/virtfunc2.exp: print o.do_print()
+PASS: gdb.cp/virtfunc2.exp: print o.do_print3()
+PASS: gdb.cp/virtfunc2.exp: print o2.do_print()
+PASS: gdb.cp/virtfunc2.exp: print o2.do_print2()
+PASS: gdb.cp/virtfunc2.exp: print o2.do_print3()
+PASS: gdb.cp/virtfunc2.exp: print o
+Running ./gdb.cp/virtfunc.exp ...
+PASS: gdb.cp/virtfunc.exp: ptype VA
+PASS: gdb.cp/virtfunc.exp: ptype VB
+PASS: gdb.cp/virtfunc.exp: ptype V
+PASS: gdb.cp/virtfunc.exp: ptype A
+PASS: gdb.cp/virtfunc.exp: ptype B
+PASS: gdb.cp/virtfunc.exp: ptype C
+PASS: gdb.cp/virtfunc.exp: ptype AD
+PASS: gdb.cp/virtfunc.exp: ptype D
+PASS: gdb.cp/virtfunc.exp: ptype E
+PASS: gdb.cp/virtfunc.exp: ptype dd
+PASS: gdb.cp/virtfunc.exp: ptype ppd
+PASS: gdb.cp/virtfunc.exp: ptype pAd
+PASS: gdb.cp/virtfunc.exp: ptype a
+PASS: gdb.cp/virtfunc.exp: ptype b
+PASS: gdb.cp/virtfunc.exp: ptype c
+PASS: gdb.cp/virtfunc.exp: ptype d
+PASS: gdb.cp/virtfunc.exp: ptype e
+PASS: gdb.cp/virtfunc.exp: ptype v
+PASS: gdb.cp/virtfunc.exp: ptype vb
+PASS: gdb.cp/virtfunc.exp: ptype pAa
+PASS: gdb.cp/virtfunc.exp: ptype pAe
+PASS: gdb.cp/virtfunc.exp: ptype pBe
+PASS: gdb.cp/virtfunc.exp: ptype pDd
+PASS: gdb.cp/virtfunc.exp: ptype pDe
+PASS: gdb.cp/virtfunc.exp: ptype pVa
+PASS: gdb.cp/virtfunc.exp: ptype pVv
+PASS: gdb.cp/virtfunc.exp: ptype pVe
+PASS: gdb.cp/virtfunc.exp: ptype pVd
+PASS: gdb.cp/virtfunc.exp: ptype pADe
+PASS: gdb.cp/virtfunc.exp: ptype pEe
+PASS: gdb.cp/virtfunc.exp: ptype pVB
+PASS: gdb.cp/virtfunc.exp: info vtbl a
+PASS: gdb.cp/virtfunc.exp: info vtbl b
+PASS: gdb.cp/virtfunc.exp: info vtbl c
+PASS: gdb.cp/virtfunc.exp: info vtbl d
+FAIL: gdb.cp/virtfunc.exp: info vtbl e
+FAIL: gdb.cp/virtfunc.exp: info vtbl pEe
+PASS: gdb.cp/virtfunc.exp: info vtbl
+PASS: gdb.cp/virtfunc.exp: info vtbl va
+PASS: gdb.cp/virtfunc.exp: info vtbl all_count
+PASS: gdb.cp/virtfunc.exp: print pAe->f()
+PASS: gdb.cp/virtfunc.exp: print pAa->f()
+PASS: gdb.cp/virtfunc.exp: print pDe->vg()
+PASS: gdb.cp/virtfunc.exp: print pADe->vg()
+PASS: gdb.cp/virtfunc.exp: print pDd->vg()
+PASS: gdb.cp/virtfunc.exp: print pEe->vvb()
+PASS: gdb.cp/virtfunc.exp: print pVB->vvb()
+PASS: gdb.cp/virtfunc.exp: print pBe->vvb()
+PASS: gdb.cp/virtfunc.exp: print pDe->vvb()
+PASS: gdb.cp/virtfunc.exp: print pEe->vd()
+PASS: gdb.cp/virtfunc.exp: print pEe->fvb()
+KFAIL: gdb.cp/virtfunc.exp: print pEe->D::vg() (PRMS: gdb/1064)
+PASS: gdb.cp/virtfunc.exp: next to pAa->f call
+PASS: gdb.cp/virtfunc.exp: next to pDe->vg call
+PASS: gdb.cp/virtfunc.exp: step through thunk into E::vg
+Running ./gdb.disasm/am33.exp ...
+Running ./gdb.disasm/h8300s.exp ...
+Running ./gdb.disasm/hppa.exp ...
+Running ./gdb.disasm/mn10300.exp ...
+Running ./gdb.disasm/sh3.exp ...
+Running ./gdb.disasm/t01_mov.exp ...
+Running ./gdb.disasm/t02_mova.exp ...
+Running ./gdb.disasm/t03_add.exp ...
+Running ./gdb.disasm/t04_sub.exp ...
+Running ./gdb.disasm/t05_cmp.exp ...
+Running ./gdb.disasm/t06_ari2.exp ...
+Running ./gdb.disasm/t07_ari3.exp ...
+Running ./gdb.disasm/t08_or.exp ...
+Running ./gdb.disasm/t09_xor.exp ...
+Running ./gdb.disasm/t10_and.exp ...
+Running ./gdb.disasm/t11_logs.exp ...
+Running ./gdb.disasm/t12_bit.exp ...
+Running ./gdb.disasm/t13_otr.exp ...
+Running ./gdb.dwarf2/callframecfa.exp ...
+Running ./gdb.dwarf2/clztest.exp ...
+Running ./gdb.dwarf2/dup-psym.exp ...
+PASS: gdb.dwarf2/dup-psym.exp: info sources should contain only one reference to file1.txt
+Running ./gdb.dwarf2/dw2-ada-ffffffff.exp ...
+PASS: gdb.dwarf2/dw2-ada-ffffffff.exp: p sizeof (t)
+PASS: gdb.dwarf2/dw2-ada-ffffffff.exp: ptype t
+Running ./gdb.dwarf2/dw2-anon-mptr.exp ...
+PASS: gdb.dwarf2/dw2-anon-mptr.exp: set cp-abi gnu-v3
+PASS: gdb.dwarf2/dw2-anon-mptr.exp: show cp-abi
+PASS: gdb.dwarf2/dw2-anon-mptr.exp: ptype crash
+Running ./gdb.dwarf2/dw2-anonymous-func.exp ...
+PASS: gdb.dwarf2/dw2-anonymous-func.exp: list file1.txt
+Running ./gdb.dwarf2/dw2-bad-parameter-type.exp ...
+PASS: gdb.dwarf2/dw2-bad-parameter-type.exp: ptype f
+PASS: gdb.dwarf2/dw2-bad-parameter-type.exp: ptype f
+PASS: gdb.dwarf2/dw2-bad-parameter-type.exp: is alive
+Running ./gdb.dwarf2/dw2-basic.exp ...
+PASS: gdb.dwarf2/dw2-basic.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-basic.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-basic.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-canonicalize-type.exp ...
+PASS: gdb.dwarf2/dw2-canonicalize-type.exp: ptype f
+Running ./gdb.dwarf2/dw2-case-insensitive.exp ...
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: show case-sensitive
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive on
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: set case-sensitive off
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive off
+FAIL: gdb.dwarf2/dw2-case-insensitive.exp: p fuNC_lang
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: p fuNC_symtab
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: setting breakpoint at fuNC_lang
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: setting breakpoint at fuNC_symtab
+Running ./gdb.dwarf2/dw2-common-block.exp ...
+Running ./gdb.dwarf2/dw2-compdir-oldgcc.exp ...
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: list gcc42
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc42
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: list gcc43
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc43
+Running ./gdb.dwarf2/dw2-compressed.exp ...
+PASS: gdb.dwarf2/dw2-compressed.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-compressed.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-compressed.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-const.exp ...
+PASS: gdb.dwarf2/dw2-const.exp: print twelve
+PASS: gdb.dwarf2/dw2-const.exp: print/x val8
+Running ./gdb.dwarf2/dw2-cp-infcall-ref-static.exp ...
+PASS: gdb.dwarf2/dw2-cp-infcall-ref-static.exp: set language c++
+PASS: gdb.dwarf2/dw2-cp-infcall-ref-static.exp: set cp-abi gnu-v3
+ERROR: Process no longer exists
+UNRESOLVED: gdb.dwarf2/dw2-cp-infcall-ref-static.exp: p f()
+Running ./gdb.dwarf2/dw2-cu-size.exp ...
+PASS: gdb.dwarf2/dw2-cu-size.exp: ptype noloc
+Running ./gdb.dwarf2/dw2-dir-file-name.exp ...
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: cd .../rdir
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: continue to breakpoint: compdir_missing__ldir_missing__file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: continue to breakpoint: compdir_missing__ldir_missing__file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: continue to breakpoint: compdir_missing__ldir_missing__file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: continue to breakpoint: compdir_missing__ldir_relative_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: continue to breakpoint: compdir_missing__ldir_relative_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: continue to breakpoint: compdir_missing__ldir_relative_file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: continue to breakpoint: compdir_missing__ldir_absolute_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: continue to breakpoint: compdir_missing__ldir_absolute_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: continue to breakpoint: compdir_missing__ldir_absolute_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: continue to breakpoint: compdir_missing__ldir_absolute_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: continue to breakpoint: compdir_relative_ldir_missing__file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: continue to breakpoint: compdir_relative_ldir_missing__file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: continue to breakpoint: compdir_relative_ldir_missing__file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: continue to breakpoint: compdir_relative_ldir_relative_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: continue to breakpoint: compdir_relative_ldir_relative_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: continue to breakpoint: compdir_relative_ldir_relative_file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: continue to breakpoint: compdir_relative_ldir_absolute_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: continue to breakpoint: compdir_relative_ldir_absolute_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: continue to breakpoint: compdir_relative_ldir_absolute_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: continue to breakpoint: compdir_relative_ldir_absolute_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: continue to breakpoint: compdir_absolute_ldir_missing__file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: continue to breakpoint: compdir_absolute_ldir_missing__file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: continue to breakpoint: compdir_absolute_ldir_missing__file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: continue to breakpoint: compdir_absolute_ldir_missing__file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: continue to breakpoint: compdir_absolute_ldir_relative_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: continue to breakpoint: compdir_absolute_ldir_relative_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: continue to breakpoint: compdir_absolute_ldir_relative_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: continue to breakpoint: compdir_absolute_ldir_relative_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: continue to breakpoint: compdir_absolute_ldir_absolute_file_basename_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: continue to breakpoint: compdir_absolute_ldir_absolute_file_relative_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: continue to breakpoint: compdir_absolute_ldir_absolute_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: continue to breakpoint: compdir_absolute_ldir_absolute_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: relative
+Running ./gdb.dwarf2/dw2-dos-drive.exp ...
+PASS: gdb.dwarf2/dw2-dos-drive.exp: set breakpoint pending off
+FAIL: gdb.dwarf2/dw2-dos-drive.exp: break 'z:file.c':func
+UNSUPPORTED: gdb.dwarf2/dw2-dos-drive.exp: break file.c:func
+Running ./gdb.dwarf2/dw2-double-set-die-type.exp ...
+PASS: gdb.dwarf2/dw2-double-set-die-type.exp: ptype a
+Running ./gdb.dwarf2/dw2-empty-namespace.exp ...
+PASS: gdb.dwarf2/dw2-empty-namespace.exp: ptype var
+PASS: gdb.dwarf2/dw2-empty-namespace.exp: p var
+Running ./gdb.dwarf2/dw2-empty-pc-range.exp ...
+PASS: gdb.dwarf2/dw2-empty-pc-range.exp: empty range before CU load
+PASS: gdb.dwarf2/dw2-empty-pc-range.exp: valid range after CU load
+PASS: gdb.dwarf2/dw2-empty-pc-range.exp: empty range after CU load
+Running ./gdb.dwarf2/dw2-entry-value.exp ...
+FAIL: gdb.dwarf2/dw2-entry-value.exp: <optimized out> is printed
+Running ./gdb.dwarf2/dw2-error.exp ...
+gdb compile failed, dw2-error.c: Assembler messages:
+dw2-error.c:25: Error: unrecognized symbol type ""
+dw2-error.c:33: Error: bad instruction `pushq %rbp'
+dw2-error.c:36: Error: bad instruction `movq %rsp,%rbp'
+dw2-error.c:40: Error: bad instruction `movl $23,%eax'
+dw2-error.c:43: Error: bad instruction `popq %rbp'
+dw2-error.c:45: Error: bad instruction `ret'
+dw2-error.c:50: Error: junk at end of line, first unrecognized character is `,'
+dw2-error.c:52: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:53: Error: unknown pseudo-op: `.value'
+dw2-error.c:54: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:55: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:56: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:57: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:58: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:59: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:60: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:61: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:62: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:63: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:64: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:66: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:67: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:68: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:69: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:70: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:71: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:72: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:73: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:75: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:76: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:77: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:78: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:79: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:80: Error: junk at end of line, first unrecognized character is `,'
+dw2-error.c:82: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:83: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:84: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:85: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:86: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:87: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:88: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:89: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:90: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:91: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:92: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:93: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:94: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:95: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:96: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:97: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:98: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:101: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:102: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:103: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:104: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:105: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:106: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:107: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:108: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:109: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:110: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:111: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:112: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:113: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:114: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:115: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:116: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:117: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:118: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:119: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:120: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:121: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:124: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:125: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:126: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:127: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:128: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:129: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:130: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:131: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:132: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:136: Error: junk at end of line, first unrecognized character is `,'
+dw2-error.c:137: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:138: Error: unknown pseudo-op: `.value'
+dw2-error.c:139: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:140: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:141: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:142: Error: unknown pseudo-op: `.value'
+dw2-error.c:143: Error: unknown pseudo-op: `.value'
+dw2-error.c:144: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:145: Error: junk at end of line, first unrecognized character is `#'
+dw2-error.c:148: Error: junk at end of line, first unrecognized character is `,'
+dw2-error.c:160: Error: junk at end of line, first unrecognized character is `,'
+UNTESTED: gdb.dwarf2/dw2-error.exp: dw2-error.exp
+Running ./gdb.dwarf2/dw2-filename.exp ...
+PASS: gdb.dwarf2/dw2-filename.exp: interpreter-exec mi -file-list-exec-source-files
+PASS: gdb.dwarf2/dw2-filename.exp: info sources
+Running ./gdb.dwarf2/dw2-icc-opaque.exp ...
+PASS: gdb.dwarf2/dw2-icc-opaque.exp: ptype p_struct
+Running ./gdb.dwarf2/dw2-ifort-parameter.exp ...
+FAIL: gdb.dwarf2/dw2-ifort-parameter.exp: p/x param
+Running ./gdb.dwarf2/dw2-inheritance.exp ...
+PASS: gdb.dwarf2/dw2-inheritance.exp: ptype inherited
+Running ./gdb.dwarf2/dw2-inline-break.exp ...
+Running ./gdb.dwarf2/dw2-inline-param.exp ...
+PASS: gdb.dwarf2/dw2-inline-param.exp: info addr break_at
+Running ./gdb.dwarf2/dw2-intercu.exp ...
+PASS: gdb.dwarf2/dw2-intercu.exp: ptype int2
+PASS: gdb.dwarf2/dw2-intercu.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-intercu.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-intercu.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-intermix.exp ...
+gdb compile failed, ./gdb.dwarf2/dw2-intermix.S: Assembler messages:
+./gdb.dwarf2/dw2-intermix.S:139: Error: bad relocation fixup type (1)
+./gdb.dwarf2/dw2-intermix.S:142: Error: bad relocation fixup type (1)
+UNTESTED: gdb.dwarf2/dw2-intermix.exp: dw2-intermix.exp
+Running ./gdb.dwarf2/dw2-linkage-name-trust.exp ...
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: set language c++
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: set cp-abi gnu-v3
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: p c.membername
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: p c.membername ()
+Running ./gdb.dwarf2/dw2-minsym-in-cu.exp ...
+PASS: gdb.dwarf2/dw2-minsym-in-cu.exp: info fun func2
+Running ./gdb.dwarf2/dw2-modula2-self-type.exp ...
+PASS: gdb.dwarf2/dw2-modula2-self-type.exp: set language modula-2
+PASS: gdb.dwarf2/dw2-modula2-self-type.exp: ptype v
+PASS: gdb.dwarf2/dw2-modula2-self-type.exp: alive
+Running ./gdb.dwarf2/dw2-namespaceless-anonymous.exp ...
+PASS: gdb.dwarf2/dw2-namespaceless-anonymous.exp: ptype '(anonymous namespace)::v'
+PASS: gdb.dwarf2/dw2-namespaceless-anonymous.exp: p '(anonymous namespace)::v'
+Running ./gdb.dwarf2/dw2-noloc.exp ...
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_locno_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_locno_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_extern_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_extern_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_extern_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_extern_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_extern_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_extern_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_extern_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_extern_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: print file_extern_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: no-run: ptype file_extern_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_locno_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_locno_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_extern_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_extern_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_extern_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_extern_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_extern_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_extern_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_extern_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_extern_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: print file_extern_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: in-main: ptype file_extern_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_local_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_local_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_local_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_local_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_local_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_local_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_local_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_local_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_local_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_local_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_local_locno_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_local_locno_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_extern_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_extern_locaddr_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_extern_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_extern_locaddr_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_extern_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_extern_locempty_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_extern_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_extern_locempty_unresolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: print main_extern_locno_resolvable
+PASS: gdb.dwarf2/dw2-noloc.exp: ptype main_extern_locno_resolvable
+Running ./gdb.dwarf2/dw2-objfile-overlap.exp ...
+PASS: gdb.dwarf2/dw2-objfile-overlap.exp: add-symbol-file
+PASS: gdb.dwarf2/dw2-objfile-overlap.exp: info line inner
+Running ./gdb.dwarf2/dw2-op-call.exp ...
+PASS: gdb.dwarf2/dw2-op-call.exp: maintenance set dwarf2 max-cache-age 0
+PASS: gdb.dwarf2/dw2-op-call.exp: p array1
+PASS: gdb.dwarf2/dw2-op-call.exp: array2 using DW_OP_call2
+PASS: gdb.dwarf2/dw2-op-call.exp: array3 using DW_OP_call4
+PASS: gdb.dwarf2/dw2-op-call.exp: p arraynoloc
+PASS: gdb.dwarf2/dw2-op-call.exp: p arraycallnoloc
+Running ./gdb.dwarf2/dw2-op-out-param.exp ...
+Running ./gdb.dwarf2/dw2-op-stack-value.exp ...
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x stack2
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x stack8
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: x/wx &aa551234
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x implicit4to2
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x implicit4to4
+Running ./gdb.dwarf2/dw2-param-error.exp ...
+FAIL: gdb.dwarf2/dw2-param-error.exp: frame
+Running ./gdb.dwarf2/dw2-producer.exp ...
+PASS: gdb.dwarf2/dw2-producer.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-producer.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-producer.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-ranges.exp ...
+PASS: gdb.dwarf2/dw2-ranges.exp: info line main
+PASS: gdb.dwarf2/dw2-ranges.exp: info line func
+PASS: gdb.dwarf2/dw2-ranges.exp: info line main2
+PASS: gdb.dwarf2/dw2-ranges.exp: info line func2
+KFAIL: gdb.dwarf2/dw2-ranges.exp: info line main3 (PRMS: symtab/12497)
+Running ./gdb.dwarf2/dw2-ref-missing-frame.exp ...
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_nofb print
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_nofb backtrace
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_loopfb print
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_loopfb backtrace
+Running ./gdb.dwarf2/dw2-restore.exp ...
+Running ./gdb.dwarf2/dw2-restrict.exp ...
+Running ./gdb.dwarf2/dw2-simple-locdesc.exp ...
+KFAIL: gdb.dwarf2/dw2-simple-locdesc.exp: p &s.shl (PRMS: symtab/13307)
+PASS: gdb.dwarf2/dw2-simple-locdesc.exp: p &s.data4
+Running ./gdb.dwarf2/dw2-skip-prologue.exp ...
+PASS: gdb.dwarf2/dw2-skip-prologue.exp: strip stub symbols
+PASS: gdb.dwarf2/dw2-skip-prologue.exp: continue to breakpoint: func
+FAIL: gdb.dwarf2/dw2-skip-prologue.exp: 2 locations found
+FAIL: gdb.dwarf2/dw2-skip-prologue.exp: no statement got executed
+Running ./gdb.dwarf2/dw2-stack-boundary.exp ...
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: set complaints 100
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: check partial symtab errors
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: p underflow
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: p overflow
+Running ./gdb.dwarf2/dw2-strp.exp ...
+PASS: gdb.dwarf2/dw2-strp.exp: p a_string
+PASS: gdb.dwarf2/dw2-strp.exp: ptype a_string
+PASS: gdb.dwarf2/dw2-strp.exp: p a_string2
+PASS: gdb.dwarf2/dw2-strp.exp: ptype a_string2
+Running ./gdb.dwarf2/dw2-unresolved.exp ...
+PASS: gdb.dwarf2/dw2-unresolved.exp: continue to breakpoint: *extern_block_start
+PASS: gdb.dwarf2/dw2-unresolved.exp: print/d var
+Running ./gdb.dwarf2/dw2-var-zero-addr.exp ...
+PASS: gdb.dwarf2/dw2-var-zero-addr.exp: print &var
+Running ./gdb.dwarf2/dw4-sig-types.exp ...
+PASS: gdb.dwarf2/dw4-sig-types.exp: maint set dwarf2 max-cache-age 0
+PASS: gdb.dwarf2/dw4-sig-types.exp: p myset
+PASS: gdb.dwarf2/dw4-sig-types.exp: continue to foo
+Running ./gdb.dwarf2/dw4-sig-type-unused.exp ...
+PASS: gdb.dwarf2/dw4-sig-type-unused.exp: alive
+Running ./gdb.dwarf2/fission-base.exp ...
+Running ./gdb.dwarf2/fission-loclists.exp ...
+Running ./gdb.dwarf2/fission-reread.exp ...
+gdb compile failed, fission-reread.cc: Assembler messages:
+fission-reread.cc:46: Error: unrecognized symbol type ""
+fission-reread.cc:54: Error: unrecognized symbol type ""
+UNTESTED: gdb.dwarf2/fission-reread.exp: fission-reread.exp
+Running ./gdb.dwarf2/implptr-64bit.exp ...
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+Running ./gdb.dwarf2/implptr.exp ...
+Running ./gdb.dwarf2/implptr-optimized-out.exp ...
+PASS: gdb.dwarf2/implptr-optimized-out.exp: p p->f
+Running ./gdb.dwarf2/mac-fileno.exp ...
+gdb compile failed, ./gdb.dwarf2/mac-fileno.S: Assembler messages:
+./gdb.dwarf2/mac-fileno.S:203: Error: junk at end of line, first unrecognized character is `,'
+UNTESTED: gdb.dwarf2/mac-fileno.exp: mac-fileno.exp
+Running ./gdb.dwarf2/member-ptr-forwardref.exp ...
+gdb compile failed, member-ptr-forwardref.cc: Assembler messages:
+member-ptr-forwardref.cc:34: Error: junk at end of line, first unrecognized character is `,'
+member-ptr-forwardref.cc:36: Error: junk at end of line, first unrecognized character is `,'
+member-ptr-forwardref.cc:38: Error: junk at end of line, first unrecognized character is `,'
+member-ptr-forwardref.cc:45: Error: unrecognized symbol type ""
+member-ptr-forwardref.cc:51: Error: unrecognized symbol type ""
+member-ptr-forwardref.cc:293: Error: junk at end of line, first unrecognized character is `,'
+member-ptr-forwardref.cc:303: Error: junk at end of line, first unrecognized character is `,'
+member-ptr-forwardref.cc:327: Error: junk at end of line, first unrecognized character is `,'
+UNTESTED: gdb.dwarf2/member-ptr-forwardref.exp: member-ptr-forwardref.exp
+Running ./gdb.dwarf2/method-ptr.exp ...
+PASS: gdb.dwarf2/method-ptr.exp: ptype the_typedef
+Running ./gdb.dwarf2/pieces.exp ...
+Running ./gdb.dwarf2/pr10770.exp ...
+PASS: gdb.dwarf2/pr10770.exp: set breakpoint for pr10770
+PASS: gdb.dwarf2/pr10770.exp: cont
+PASS: gdb.dwarf2/pr10770.exp: frame 2
+Running ./gdb.dwarf2/pr11465.exp ...
+PASS: gdb.dwarf2/pr11465.exp: p N::c.C
+Running ./gdb.dwarf2/pr13961.exp ...
+gdb compile failed, pr13961.cc: Assembler messages:
+pr13961.cc:45: Error: unrecognized symbol type ""
+pr13961.cc:59: Error: unrecognized symbol type ""
+pr13961.cc:67: Error: junk at end of line, first unrecognized character is `,'
+pr13961.cc:124: Error: junk at end of line, first unrecognized character is `,'
+pr13961.cc:208: Error: junk at end of line, first unrecognized character is `,'
+pr13961.cc:336: Error: junk at end of line, first unrecognized character is `,'
+pr13961.cc:349: Error: junk at end of line, first unrecognized character is `,'
+UNTESTED: gdb.dwarf2/pr13961.exp: pr13961.exp
+Running ./gdb.dwarf2/subrange.exp ...
+PASS: gdb.dwarf2/subrange.exp: set language pascal
+PASS: gdb.dwarf2/subrange.exp: ptype TByteArray
+Running ./gdb.dwarf2/trace-crash.exp ...
+Running ./gdb.dwarf2/typeddwarf.exp ...
+Running ./gdb.dwarf2/valop.exp ...
+Running ./gdb.dwarf2/watch-notconst.exp ...
+Running ./gdb.fortran/array-element.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gfortran.
+UNTESTED: gdb.fortran/array-element.exp: array-element.exp
+Running ./gdb.fortran/charset.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gfortran.
+UNTESTED: gdb.fortran/charset.exp: charset.exp
+Running ./gdb.fortran/common-block.exp ...
+UNTESTED: gdb.fortran/common-block.exp: common-block.exp
+Running ./gdb.fortran/complex.exp ...
+UNTESTED: gdb.fortran/complex.exp: complex.exp
+UNTESTED: gdb.fortran/complex.exp: Couldn't compile complex.f
+Running ./gdb.fortran/derived-type.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gfortran.
+UNTESTED: gdb.fortran/derived-type.exp: derived-type.exp
+Running ./gdb.fortran/exprs.exp ...
+PASS: gdb.fortran/exprs.exp: set print sevenbit-strings
+PASS: gdb.fortran/exprs.exp: set language fortran
+PASS: gdb.fortran/exprs.exp: set language to "fortran"
+PASS: gdb.fortran/exprs.exp: Set value-history[1] using $1
+PASS: gdb.fortran/exprs.exp: Set value-history[2] using $2
+PASS: gdb.fortran/exprs.exp: Set value-history[3] using $3
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX-1] using inplicit index $$
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX-1] again using implicit index $$
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX] using implicit index $
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX-2] using explicit index $$2
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX] using explicit index $0
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX] using explicit index $$0
+PASS: gdb.fortran/exprs.exp: Print value-history[1] using explicit index $1
+PASS: gdb.fortran/exprs.exp: Print value-history[2] using explicit index $2
+PASS: gdb.fortran/exprs.exp: Print value-history[3] using explicit index $3
+PASS: gdb.fortran/exprs.exp: Print (value-history[MAX] - 3) using implicit index $
+PASS: gdb.fortran/exprs.exp: Use value-history element in arithmetic expression
+PASS: gdb.fortran/exprs.exp: Set a new convenience variable
+PASS: gdb.fortran/exprs.exp: Print contents of new convenience variable
+PASS: gdb.fortran/exprs.exp: Set convenience variable to a new value
+PASS: gdb.fortran/exprs.exp: Print new contents of convenience variable
+PASS: gdb.fortran/exprs.exp: Set convenience variable $_
+PASS: gdb.fortran/exprs.exp: Print contents of convenience variable $_
+PASS: gdb.fortran/exprs.exp: Use convenience variable in arithmetic expression
+PASS: gdb.fortran/exprs.exp: Use convenience variable assignment in arithmetic expression
+PASS: gdb.fortran/exprs.exp: Print contents of uninitialized convenience variable
+PASS: gdb.fortran/exprs.exp: p 123
+PASS: gdb.fortran/exprs.exp: p -123
+PASS: gdb.fortran/exprs.exp: reject p _
+PASS: gdb.fortran/exprs.exp: p .TRUE.
+PASS: gdb.fortran/exprs.exp: p .FALSE.
+PASS: gdb.fortran/exprs.exp: p 'a'
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(2:4)
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(:3)
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(5:)
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(:)
+PASS: gdb.fortran/exprs.exp: p .44 .LT. .45
+PASS: gdb.fortran/exprs.exp: p .44 .GT. .45
+PASS: gdb.fortran/exprs.exp: p 0.44 .LT. 0.45
+PASS: gdb.fortran/exprs.exp: p 0.44 .GT. 0.45
+PASS: gdb.fortran/exprs.exp: p 44. .LT. 45.
+PASS: gdb.fortran/exprs.exp: p 44. .GT. 45.
+PASS: gdb.fortran/exprs.exp: p 44.0 .LT. 45.0
+PASS: gdb.fortran/exprs.exp: p 44.0 .GT. 45.0
+PASS: gdb.fortran/exprs.exp: p 10D20 .LT. 10D21
+PASS: gdb.fortran/exprs.exp: p 10D20 .GT. 10D21
+PASS: gdb.fortran/exprs.exp: p 10d20 .LT. 10d21
+PASS: gdb.fortran/exprs.exp: p 10d20 .GT. 10d21
+PASS: gdb.fortran/exprs.exp: p 10E20 .LT. 10E21
+PASS: gdb.fortran/exprs.exp: p 10E20 .GT. 10E21
+PASS: gdb.fortran/exprs.exp: p 10e20 .LT. 10e21
+PASS: gdb.fortran/exprs.exp: p 10e20 .GT. 10e21
+PASS: gdb.fortran/exprs.exp: p 10.D20 .LT. 10.D21
+PASS: gdb.fortran/exprs.exp: p 10.D20 .GT. 10.D21
+PASS: gdb.fortran/exprs.exp: p 10.d20 .LT. 10.d21
+PASS: gdb.fortran/exprs.exp: p 10.d20 .GT. 10.d21
+PASS: gdb.fortran/exprs.exp: p 10.E20 .LT. 10.E21
+PASS: gdb.fortran/exprs.exp: p 10.E20 .GT. 10.E21
+PASS: gdb.fortran/exprs.exp: p 10.e20 .LT. 10.e21
+PASS: gdb.fortran/exprs.exp: p 10.e20 .GT. 10.e21
+PASS: gdb.fortran/exprs.exp: p 10.0D20 .LT. 10.0D21
+PASS: gdb.fortran/exprs.exp: p 10.0D20 .GT. 10.0D21
+PASS: gdb.fortran/exprs.exp: p 10.0d20 .LT. 10.0d21
+PASS: gdb.fortran/exprs.exp: p 10.0d20 .GT. 10.0d21
+PASS: gdb.fortran/exprs.exp: p 10.0E20 .LT. 10.0E21
+PASS: gdb.fortran/exprs.exp: p 10.0E20 .GT. 10.0E21
+PASS: gdb.fortran/exprs.exp: p 10.0e20 .LT. 10.0e21
+PASS: gdb.fortran/exprs.exp: p 10.0e20 .GT. 10.0e21
+PASS: gdb.fortran/exprs.exp: p 10.0D+20 .LT. 10.0D+21
+PASS: gdb.fortran/exprs.exp: p 10.0D+20 .GT. 10.0D+21
+PASS: gdb.fortran/exprs.exp: p 10.0d+20 .LT. 10.0d+21
+PASS: gdb.fortran/exprs.exp: p 10.0d+20 .GT. 10.0d+21
+PASS: gdb.fortran/exprs.exp: p 10.0E+20 .LT. 10.0E+21
+PASS: gdb.fortran/exprs.exp: p 10.0E+20 .GT. 10.0E+21
+PASS: gdb.fortran/exprs.exp: p 10.0e+20 .LT. 10.0e+21
+PASS: gdb.fortran/exprs.exp: p 10.0e+20 .GT. 10.0e+21
+PASS: gdb.fortran/exprs.exp: p 10.0D-11 .LT. 10.0D-10
+PASS: gdb.fortran/exprs.exp: p 10.0D-11 .GT. 10.0D-10
+PASS: gdb.fortran/exprs.exp: p 10.0d-11 .LT. 10.0d-10
+PASS: gdb.fortran/exprs.exp: p 10.0d-11 .GT. 10.0d-10
+PASS: gdb.fortran/exprs.exp: p 10.0E-11 .LT. 10.0E-10
+PASS: gdb.fortran/exprs.exp: p 10.0E-11 .GT. 10.0E-10
+PASS: gdb.fortran/exprs.exp: p 10.0e-11 .LT. 10.0e-10
+PASS: gdb.fortran/exprs.exp: p 10.0e-11 .GT. 10.0e-10
+PASS: gdb.fortran/exprs.exp: unary minus applied to int
+PASS: gdb.fortran/exprs.exp: unary minus applied to real
+PASS: gdb.fortran/exprs.exp: bool plus int
+PASS: gdb.fortran/exprs.exp: int plus int
+PASS: gdb.fortran/exprs.exp: real plus int
+PASS: gdb.fortran/exprs.exp: real plus real
+PASS: gdb.fortran/exprs.exp: bool minus int
+PASS: gdb.fortran/exprs.exp: int minus int
+PASS: gdb.fortran/exprs.exp: real minus int
+PASS: gdb.fortran/exprs.exp: real minus real
+PASS: gdb.fortran/exprs.exp: bool times int
+PASS: gdb.fortran/exprs.exp: int times int
+PASS: gdb.fortran/exprs.exp: real times int
+PASS: gdb.fortran/exprs.exp: real times real
+PASS: gdb.fortran/exprs.exp: bool divided by int
+PASS: gdb.fortran/exprs.exp: int divided by int
+PASS: gdb.fortran/exprs.exp: real divided by int
+PASS: gdb.fortran/exprs.exp: real divided by real
+PASS: gdb.fortran/exprs.exp: int powered by int
+PASS: gdb.fortran/exprs.exp: combined exponentiation expression
+PASS: gdb.fortran/exprs.exp: combined exponentiation expression in specified order
+PASS: gdb.fortran/exprs.exp: int powered by real
+PASS: gdb.fortran/exprs.exp: real powered by real
+Running ./gdb.fortran/library-module.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gfortran.
+UNTESTED: gdb.fortran/library-module.exp: Couldn't compile library-module-lib.f90
+Running ./gdb.fortran/logical.exp ...
+UNTESTED: gdb.fortran/logical.exp: logical.exp
+Running ./gdb.fortran/module.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gfortran.
+UNTESTED: gdb.fortran/module.exp: module.exp
+Running ./gdb.fortran/multi-dim.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gfortran.
+UNTESTED: gdb.fortran/multi-dim.exp: multi-dim.exp
+Running ./gdb.fortran/subarray.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gfortran.
+UNTESTED: gdb.fortran/subarray.exp: subarray.exp
+Running ./gdb.fortran/types.exp ...
+PASS: gdb.fortran/types.exp: set print sevenbit-strings
+PASS: gdb.fortran/types.exp: set language fortran
+PASS: gdb.fortran/types.exp: set language to "fortran"
+PASS: gdb.fortran/types.exp: pt 123
+PASS: gdb.fortran/types.exp: reject pt _
+PASS: gdb.fortran/types.exp: pt .TRUE.
+PASS: gdb.fortran/types.exp: pt .FALSE.
+PASS: gdb.fortran/types.exp: pt 'a'
+PASS: gdb.fortran/types.exp: pt .44
+PASS: gdb.fortran/types.exp: pt 44.0
+PASS: gdb.fortran/types.exp: pt 10D20
+PASS: gdb.fortran/types.exp: pt 10D20
+PASS: gdb.fortran/types.exp: pt 10d20
+PASS: gdb.fortran/types.exp: pt 10d20
+PASS: gdb.fortran/types.exp: pt 10E20
+PASS: gdb.fortran/types.exp: pt 10E20
+PASS: gdb.fortran/types.exp: pt 10e20
+PASS: gdb.fortran/types.exp: pt 10e20
+Running ./gdb.gdb/complaints.exp ...
+Running ./gdb.gdb/observer.exp ...
+Running ./gdb.gdb/selftest.exp ...
+Running ./gdb.gdb/xfullpath.exp ...
+Running ./gdb.go/basic-types.exp ...
+PASS: gdb.go/basic-types.exp: set language go
+PASS: gdb.go/basic-types.exp: set language to "go"
+PASS: gdb.go/basic-types.exp: pt 123
+PASS: gdb.go/basic-types.exp: pt void(42)
+PASS: gdb.go/basic-types.exp: pt byte(42)
+PASS: gdb.go/basic-types.exp: pt int(42)
+PASS: gdb.go/basic-types.exp: pt uint(42)
+PASS: gdb.go/basic-types.exp: pt uintptr(42)
+PASS: gdb.go/basic-types.exp: pt int8(42)
+PASS: gdb.go/basic-types.exp: pt int16(42)
+PASS: gdb.go/basic-types.exp: pt int32(42)
+PASS: gdb.go/basic-types.exp: pt int64(42)
+PASS: gdb.go/basic-types.exp: pt uint8(42)
+PASS: gdb.go/basic-types.exp: pt uint16(42)
+PASS: gdb.go/basic-types.exp: pt uint32(42)
+PASS: gdb.go/basic-types.exp: pt uint64(42)
+PASS: gdb.go/basic-types.exp: pt true
+PASS: gdb.go/basic-types.exp: pt false
+PASS: gdb.go/basic-types.exp: pt bool(0)
+PASS: gdb.go/basic-types.exp: pt bool(1)
+PASS: gdb.go/basic-types.exp: pt 'a'
+PASS: gdb.go/basic-types.exp: pt "a simple string"
+PASS: gdb.go/basic-types.exp: pt `a simple raw string`
+PASS: gdb.go/basic-types.exp: pt .44
+PASS: gdb.go/basic-types.exp: pt 44.0
+PASS: gdb.go/basic-types.exp: pt 10e20
+PASS: gdb.go/basic-types.exp: pt 10E20
+PASS: gdb.go/basic-types.exp: pt float32(.42)
+PASS: gdb.go/basic-types.exp: pt float64(.42)
+PASS: gdb.go/basic-types.exp: pt complex64(.42)
+XFAIL: gdb.go/basic-types.exp: pt complex64(.42i1.0)
+XFAIL: gdb.go/basic-types.exp: pt complex64(i1.0)
+PASS: gdb.go/basic-types.exp: pt complex128(.42)
+XFAIL: gdb.go/basic-types.exp: pt complex128(.42i1.0)
+XFAIL: gdb.go/basic-types.exp: pt complex128(i1.0)
+Running ./gdb.go/chan.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gccgo.
+UNTESTED: gdb.go/chan.exp: chan.exp
+Running ./gdb.go/handcall.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gccgo.
+UNTESTED: gdb.go/handcall.exp: handcall.exp
+Running ./gdb.go/hello.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gccgo.
+UNTESTED: gdb.go/hello.exp: hello.exp
+Running ./gdb.go/integers.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gccgo.
+UNTESTED: gdb.go/integers.exp: integers.exp
+Running ./gdb.go/methods.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gccgo.
+UNTESTED: gdb.go/methods.exp: methods.exp
+Running ./gdb.go/package.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gccgo.
+UNTESTED: gdb.go/package.exp: package
+Running ./gdb.go/print.exp ...
+PASS: gdb.go/print.exp: set language go
+PASS: gdb.go/print.exp: set language to "go"
+PASS: gdb.go/print.exp: check fp + text
+PASS: gdb.go/print.exp: p 1.
+PASS: gdb.go/print.exp: p 1.5
+PASS: gdb.go/print.exp: p 1.f
+PASS: gdb.go/print.exp: p 1.5f
+PASS: gdb.go/print.exp: p 1.l
+PASS: gdb.go/print.exp: p 1.5l
+PASS: gdb.go/print.exp: p 0x1.1
+PASS: gdb.go/print.exp: reject p 1.1x
+PASS: gdb.go/print.exp: reject p 1.1ff
+PASS: gdb.go/print.exp: reject p 1.1ll
+Running ./gdb.go/strings.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gccgo.
+UNTESTED: gdb.go/strings.exp: strings.exp
+Running ./gdb.go/types.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gccgo.
+UNTESTED: gdb.go/types.exp: types.exp
+Running ./gdb.go/unsafe.exp ...
+gdb compile failed, default_target_compile: Can't find armv7a-cros-linux-gnueabi-gccgo.
+UNTESTED: gdb.go/unsafe.exp: unsafe.exp
+Running ./gdb.java/jmain.exp ...
+UNSUPPORTED: gdb.java/jmain.exp: compilation jmain.java
+Running ./gdb.java/jmisc.exp ...
+UNSUPPORTED: gdb.java/jmisc.exp: compilation jmisc.java
+Running ./gdb.java/jnpe.exp ...
+UNSUPPORTED: gdb.java/jnpe.exp: compilation jnpe.java
+UNTESTED: gdb.java/jnpe.exp: Couldn't compile ./gdb.java/jnpe.java
+Running ./gdb.java/jprint.exp ...
+UNSUPPORTED: gdb.java/jprint.exp: compilation jprint.java
+Running ./gdb.java/jv-exp.exp ...
+PASS: gdb.java/jv-exp.exp: set print sevenbit-strings
+PASS: gdb.java/jv-exp.exp: set width 0
+PASS: gdb.java/jv-exp.exp: set language java
+PASS: gdb.java/jv-exp.exp: set language to "java"
+PASS: gdb.java/jv-exp.exp: p 1 > 2
+PASS: gdb.java/jv-exp.exp: p 1 < 2
+Running ./gdb.java/jv-print.exp ...
+PASS: gdb.java/jv-print.exp: print $pc
+PASS: gdb.java/jv-print.exp: set print sevenbit-strings
+PASS: gdb.java/jv-print.exp: set width 0
+PASS: gdb.java/jv-print.exp: set language java
+PASS: gdb.java/jv-print.exp: set language to "java"
+PASS: gdb.java/jv-print.exp: p 123
+PASS: gdb.java/jv-print.exp: p -123
+PASS: gdb.java/jv-print.exp: p/d 123
+PASS: gdb.java/jv-print.exp: p 0123
+PASS: gdb.java/jv-print.exp: p 00123
+PASS: gdb.java/jv-print.exp: p -0123
+PASS: gdb.java/jv-print.exp: p/o 0123
+PASS: gdb.java/jv-print.exp: p 0x123
+PASS: gdb.java/jv-print.exp: p -0x123
+PASS: gdb.java/jv-print.exp: p 0x0123
+PASS: gdb.java/jv-print.exp: p -0x0123
+PASS: gdb.java/jv-print.exp: p 0xABCDEF
+PASS: gdb.java/jv-print.exp: p 0xabcdef
+PASS: gdb.java/jv-print.exp: p 0xAbCdEf
+PASS: gdb.java/jv-print.exp: p/x 0x123
+PASS: gdb.java/jv-print.exp: p 'a'
+PASS: gdb.java/jv-print.exp: p/c 'a'
+PASS: gdb.java/jv-print.exp: p/c 70
+PASS: gdb.java/jv-print.exp: p/x 'a'
+PASS: gdb.java/jv-print.exp: p/d 'a'
+PASS: gdb.java/jv-print.exp: p/t 'a'
+PASS: gdb.java/jv-print.exp: p/x '\377'
+PASS: gdb.java/jv-print.exp: p '\''
+PASS: gdb.java/jv-print.exp: p '\\'
+PASS: gdb.java/jv-print.exp: reject p 0x
+PASS: gdb.java/jv-print.exp: p ''
+PASS: gdb.java/jv-print.exp: p '''
+PASS: gdb.java/jv-print.exp: reject p '\'
+PASS: gdb.java/jv-print.exp: reject p '\\\'
+PASS: gdb.java/jv-print.exp: reject p DEADBEEF
+PASS: gdb.java/jv-print.exp: reject p 123DEADBEEF
+PASS: gdb.java/jv-print.exp: reject p 123foobar.bazfoo3
+PASS: gdb.java/jv-print.exp: reject p 123EEEEEEEEEEEEEEEEE33333k333
+PASS: gdb.java/jv-print.exp: check for floating addition
+PASS: gdb.java/jv-print.exp: reject p 09
+PASS: gdb.java/jv-print.exp: reject p 079
+PASS: gdb.java/jv-print.exp: reject p 0xG
+PASS: gdb.java/jv-print.exp: reject p 0xAG
+PASS: gdb.java/jv-print.exp: check fp + text
+PASS: gdb.java/jv-print.exp: p 1.
+PASS: gdb.java/jv-print.exp: p 1.5
+PASS: gdb.java/jv-print.exp: p 1.f
+PASS: gdb.java/jv-print.exp: p 1.5f
+PASS: gdb.java/jv-print.exp: p 1.d
+PASS: gdb.java/jv-print.exp: p 1.5d
+PASS: gdb.java/jv-print.exp: p 0x1.1
+PASS: gdb.java/jv-print.exp: reject p 1.1x
+PASS: gdb.java/jv-print.exp: reject p 1.1ff
+PASS: gdb.java/jv-print.exp: reject p 1.1dd
+Running ./gdb.linespec/break-ask.exp ...
+PASS: gdb.linespec/break-ask.exp: set multiple-symbols ask
+PASS: gdb.linespec/break-ask.exp: set filename-display absolute
+PASS: gdb.linespec/break-ask.exp: break twodup absolute
+PASS: gdb.linespec/break-ask.exp: 0
+PASS: gdb.linespec/break-ask.exp: set filename-display relative
+PASS: gdb.linespec/break-ask.exp: break twodup relative
+PASS: gdb.linespec/break-ask.exp: 2
+PASS: gdb.linespec/break-ask.exp: expect breakpoint
+PASS: gdb.linespec/break-ask.exp: info source
+PASS: gdb.linespec/break-ask.exp: continue to breakpoint: body_elsewhere
+PASS: gdb.linespec/break-ask.exp: break twodup relative other
+PASS: gdb.linespec/break-ask.exp: 3
+PASS: gdb.linespec/break-ask.exp: expect breakpoint other
+PASS: gdb.linespec/break-ask.exp: info source other
+PASS: gdb.linespec/break-ask.exp: continue to breakpoint: body_elsewhere other
+Running ./gdb.linespec/linespec.exp ...
+PASS: gdb.linespec/linespec.exp: set multiple-symbols to all for linespec tests
+PASS: gdb.linespec/linespec.exp: single-location break using dir/file:line
+PASS: gdb.linespec/linespec.exp: clear breakpoint using dir/file:line
+PASS: gdb.linespec/linespec.exp: multi-location break using file:line
+PASS: gdb.linespec/linespec.exp: multi-location break using duplicate function name
+PASS: gdb.linespec/linespec.exp: multi-location break using duplicate function name and label
+PASS: gdb.linespec/linespec.exp: complete condition
+PASS: gdb.linespec/linespec.exp: disable pending breakpoints for linespec tests
+PASS: gdb.linespec/linespec.exp: set breakpoint on non-existent function
+PASS: gdb.linespec/linespec.exp: set breakpoint at all instances of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint at lspec.cc instance of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint at non-existent lspec.cc instance of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint at specific instance of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint in body.h
+PASS: gdb.linespec/linespec.exp: set breakpoint in f1
+PASS: gdb.linespec/linespec.exp: add inferior for linespec tests
+PASS: gdb.linespec/linespec.exp: switch to inferior 2 for linespec tests
+PASS: gdb.linespec/linespec.exp: set the new inferior file for linespec tests
+PASS: gdb.linespec/linespec.exp: set breakpoint at main in both inferiors
+Running ./gdb.linespec/ls-dollar.exp ...
+PASS: gdb.linespec/ls-dollar.exp: set listsize 1
+PASS: gdb.linespec/ls-dollar.exp: list $dollar_var
+PASS: gdb.linespec/ls-dollar.exp: break $dollar_func
+Running ./gdb.linespec/ls-errs.exp ...
+PASS: gdb.linespec/ls-errs.exp: set breakpoint pending off
+PASS: gdb.linespec/ls-errs.exp: break :
+PASS: gdb.linespec/ls-errs.exp: break :
+PASS: gdb.linespec/ls-errs.exp: break  :
+PASS: gdb.linespec/ls-errs.exp: break  :
+PASS: gdb.linespec/ls-errs.exp: break 	:
+PASS: gdb.linespec/ls-errs.exp: break   :
+PASS: gdb.linespec/ls-errs.exp: break 	:
+PASS: gdb.linespec/ls-errs.exp: break  	:
+PASS: gdb.linespec/ls-errs.exp: break 	  	:
+PASS: gdb.linespec/ls-errs.exp: break -100
+PASS: gdb.linespec/ls-errs.exp: break +500
+PASS: gdb.linespec/ls-errs.exp: break 1000
+PASS: gdb.linespec/ls-errs.exp: break 3:
+PASS: gdb.linespec/ls-errs.exp: break +10:
+PASS: gdb.linespec/ls-errs.exp: break -10:
+PASS: gdb.linespec/ls-errs.exp: break 3:
+PASS: gdb.linespec/ls-errs.exp: break +10:
+PASS: gdb.linespec/ls-errs.exp: break -10:
+PASS: gdb.linespec/ls-errs.exp: break 3 :
+PASS: gdb.linespec/ls-errs.exp: break +10 :
+PASS: gdb.linespec/ls-errs.exp: break -10 :
+PASS: gdb.linespec/ls-errs.exp: break 3 :
+PASS: gdb.linespec/ls-errs.exp: break +10 :
+PASS: gdb.linespec/ls-errs.exp: break -10 :
+PASS: gdb.linespec/ls-errs.exp: break 3	:
+PASS: gdb.linespec/ls-errs.exp: break +10	:
+PASS: gdb.linespec/ls-errs.exp: break -10	:
+PASS: gdb.linespec/ls-errs.exp: break 3  :
+PASS: gdb.linespec/ls-errs.exp: break +10  :
+PASS: gdb.linespec/ls-errs.exp: break -10  :
+PASS: gdb.linespec/ls-errs.exp: break 3	:
+PASS: gdb.linespec/ls-errs.exp: break +10	:
+PASS: gdb.linespec/ls-errs.exp: break -10	:
+PASS: gdb.linespec/ls-errs.exp: break 3 	:
+PASS: gdb.linespec/ls-errs.exp: break +10 	:
+PASS: gdb.linespec/ls-errs.exp: break -10 	:
+PASS: gdb.linespec/ls-errs.exp: break 3	  	:
+PASS: gdb.linespec/ls-errs.exp: break +10	  	:
+PASS: gdb.linespec/ls-errs.exp: break -10	  	:
+PASS: gdb.linespec/ls-errs.exp: break 3 1
+PASS: gdb.linespec/ls-errs.exp: break +10 1
+PASS: gdb.linespec/ls-errs.exp: break -10 1
+PASS: gdb.linespec/ls-errs.exp: break 3 +1
+PASS: gdb.linespec/ls-errs.exp: break +10 +1
+PASS: gdb.linespec/ls-errs.exp: break -10 +1
+PASS: gdb.linespec/ls-errs.exp: break 3 +100
+PASS: gdb.linespec/ls-errs.exp: break +10 +100
+PASS: gdb.linespec/ls-errs.exp: break -10 +100
+PASS: gdb.linespec/ls-errs.exp: break 3 -10
+PASS: gdb.linespec/ls-errs.exp: break +10 -10
+PASS: gdb.linespec/ls-errs.exp: break -10 -10
+PASS: gdb.linespec/ls-errs.exp: break 3 foo
+PASS: gdb.linespec/ls-errs.exp: break +10 foo
+PASS: gdb.linespec/ls-errs.exp: break -10 foo
+PASS: gdb.linespec/ls-errs.exp: break this_file_doesn't_exist.c:3
+PASS: gdb.linespec/ls-errs.exp: break this file has spaces.c:3
+PASS: gdb.linespec/ls-errs.exp: break "file::colons.c":3
+PASS: gdb.linespec/ls-errs.exp: break 'file::colons.c':3
+PASS: gdb.linespec/ls-errs.exp: break "this "file" has quotes.c":3
+PASS: gdb.linespec/ls-errs.exp: break 'this "file" has quotes.c':3
+PASS: gdb.linespec/ls-errs.exp: break 'this 'file' has quotes.c':3
+PASS: gdb.linespec/ls-errs.exp: break "this 'file' has quotes.c":3
+PASS: gdb.linespec/ls-errs.exp: break "spaces: and :colons.c":3
+PASS: gdb.linespec/ls-errs.exp: break 'more: :spaces: :and  colons::.c':3
+PASS: gdb.linespec/ls-errs.exp: break "src-file.c':3
+PASS: gdb.linespec/ls-errs.exp: break 'src-file.c:3
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main:foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c  :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main  :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c 	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main 	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c	  	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main	  	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c::
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 1
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 +100
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 -100
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:-100
+PASS: gdb.linespec/ls-errs.exp: break "ls-errs.c:-100"
+PASS: gdb.linespec/ls-errs.exp: break 'ls-errs.c:-100'
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:+500
+PASS: gdb.linespec/ls-errs.exp: break "ls-errs.c:+500"
+PASS: gdb.linespec/ls-errs.exp: break 'ls-errs.c:+500'
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:1000
+PASS: gdb.linespec/ls-errs.exp: break "ls-errs.c:1000"
+PASS: gdb.linespec/ls-errs.exp: break 'ls-errs.c:1000'
+PASS: gdb.linespec/ls-errs.exp: break foobar
+PASS: gdb.linespec/ls-errs.exp: break foo::bar
+PASS: gdb.linespec/ls-errs.exp: break foo.bar
+PASS: gdb.linespec/ls-errs.exp: break foo .
+PASS: gdb.linespec/ls-errs.exp: break foo bar
+PASS: gdb.linespec/ls-errs.exp: break foo 1
+PASS: gdb.linespec/ls-errs.exp: break foo 0
+PASS: gdb.linespec/ls-errs.exp: break foo +10
+PASS: gdb.linespec/ls-errs.exp: break foo -10
+PASS: gdb.linespec/ls-errs.exp: break foo +100
+PASS: gdb.linespec/ls-errs.exp: break foo -100
+PASS: gdb.linespec/ls-errs.exp: break main:there
+PASS: gdb.linespec/ls-errs.exp: break main:here:
+PASS: gdb.linespec/ls-errs.exp: break main: there
+PASS: gdb.linespec/ls-errs.exp: break main:here:
+PASS: gdb.linespec/ls-errs.exp: break main :there
+PASS: gdb.linespec/ls-errs.exp: break main:here :
+PASS: gdb.linespec/ls-errs.exp: break main : there
+PASS: gdb.linespec/ls-errs.exp: break main:here :
+PASS: gdb.linespec/ls-errs.exp: break main	:  there
+PASS: gdb.linespec/ls-errs.exp: break main:here	:
+PASS: gdb.linespec/ls-errs.exp: break main  :	there
+PASS: gdb.linespec/ls-errs.exp: break main:here  :
+PASS: gdb.linespec/ls-errs.exp: break main	:	there
+PASS: gdb.linespec/ls-errs.exp: break main:here	:
+PASS: gdb.linespec/ls-errs.exp: break main 	:	 there
+PASS: gdb.linespec/ls-errs.exp: break main:here 	:
+PASS: gdb.linespec/ls-errs.exp: break main	  	:	  	  	there
+PASS: gdb.linespec/ls-errs.exp: break main:here	  	:
+PASS: gdb.linespec/ls-errs.exp: break main 3
+PASS: gdb.linespec/ls-errs.exp: break main +100
+PASS: gdb.linespec/ls-errs.exp: break main -100
+PASS: gdb.linespec/ls-errs.exp: break main foo
+PASS: gdb.linespec/ls-errs.exp: break main:here 3
+PASS: gdb.linespec/ls-errs.exp: break main:here +100
+PASS: gdb.linespec/ls-errs.exp: break main:here -100
+PASS: gdb.linespec/ls-errs.exp: break main:here foo
+PASS: gdb.linespec/ls-errs.exp: break if
+PASS: gdb.linespec/ls-errs.exp: break task
+PASS: gdb.linespec/ls-errs.exp: break thread
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'flubber
+PASS: gdb.linespec/ls-errs.exp: break 'main.c',21
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'3
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'+3
+PASS: gdb.linespec/ls-errs.exp: break $zippo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:$zippo
+Running ./gdb.linespec/macro-relative.exp ...
+FAIL: gdb.linespec/macro-relative.exp: info macro HEADER
+Running ./gdb.linespec/skip-two.exp ...
+PASS: gdb.linespec/skip-two.exp: skip function dupname
+PASS: gdb.linespec/skip-two.exp: dupname ignored from main
+PASS: gdb.linespec/skip-two.exp: continue to breakpoint: n
+PASS: gdb.linespec/skip-two.exp: dupname ignored from n
+PASS: gdb.linespec/skip-two.exp: skip delete 1
+PASS: gdb.linespec/skip-two.exp: skip file thefile.cc
+PASS: gdb.linespec/skip-two.exp: step into dupname
+PASS: gdb.linespec/skip-two.exp: finish from dupname
+PASS: gdb.linespec/skip-two.exp: dupname ignored for thefile.cc
+Running ./gdb.linespec/thread.exp ...
+PASS: gdb.linespec/thread.exp: breakpoint line number in file
+PASS: gdb.linespec/thread.exp: continue to breakpoint: 29
+PASS: gdb.linespec/thread.exp: setting breakpoint at thread
+PASS: gdb.linespec/thread.exp: continue to breakpoint: thread function
+Running ./gdb.mi/dw2-ref-missing-frame.exp ...
+PASS: gdb.mi/dw2-ref-missing-frame.exp: breakpoint at func_nofb_marker
+PASS: gdb.mi/dw2-ref-missing-frame.exp: mi runto func_nofb_marker
+PASS: gdb.mi/dw2-ref-missing-frame.exp: test func_nofb_marker
+PASS: gdb.mi/dw2-ref-missing-frame.exp: breakpoint at func_loopfb_marker
+PASS: gdb.mi/dw2-ref-missing-frame.exp: mi runto func_loopfb_marker
+PASS: gdb.mi/dw2-ref-missing-frame.exp: test func_loopfb_var
+Running ./gdb.mi/gdb2549.exp ...
+PASS: gdb.mi/gdb2549.exp: wrong arguments
+PASS: gdb.mi/gdb2549.exp: no executable
+PASS: gdb.mi/gdb2549.exp: breakpoint at main
+PASS: gdb.mi/gdb2549.exp: mi runto main
+PASS: gdb.mi/gdb2549.exp: register values x
+PASS: gdb.mi/gdb2549.exp: register values f
+PASS: gdb.mi/gdb2549.exp: register values d
+PASS: gdb.mi/gdb2549.exp: register values o
+PASS: gdb.mi/gdb2549.exp: register values t
+Running ./gdb.mi/gdb669.exp ...
+PASS: gdb.mi/gdb669.exp: successfully compiled posix threads test case
+PASS: gdb.mi/gdb669.exp: breakpoint at main
+PASS: gdb.mi/gdb669.exp: mi runto main
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (at main)
+PASS: gdb.mi/gdb669.exp: info threads (at main)
+PASS: gdb.mi/gdb669.exp: finding MI result string (at main)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (at main)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (at main)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (at main)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (at main)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (at main)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (at main)
+PASS: gdb.mi/gdb669.exp: next, try 0
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 0)
+PASS: gdb.mi/gdb669.exp: info threads (try 0)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 0)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 0)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 0)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 0)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 0)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 0)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 0)
+PASS: gdb.mi/gdb669.exp: next, try 1
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 1)
+PASS: gdb.mi/gdb669.exp: info threads (try 1)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 1)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 1)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 1)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 1)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 1)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 1)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 1)
+PASS: gdb.mi/gdb669.exp: next, try 2
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 2)
+PASS: gdb.mi/gdb669.exp: info threads (try 2)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 2)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 2)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 2)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 2)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 2)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 2)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 2)
+PASS: gdb.mi/gdb669.exp: next, try 3
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 3)
+PASS: gdb.mi/gdb669.exp: info threads (try 3)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 3)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 3)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 3)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 3)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 3)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 3)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 3)
+Running ./gdb.mi/gdb680.exp ...
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 0
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 1
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 2
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 3
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 4
+Running ./gdb.mi/gdb701.exp ...
+PASS: gdb.mi/gdb701.exp: breakpoint at main
+PASS: gdb.mi/gdb701.exp: mi runto main
+PASS: gdb.mi/gdb701.exp: step over "foo = 0"
+PASS: gdb.mi/gdb701.exp: create fooPtr
+PASS: gdb.mi/gdb701.exp: list children of fooPtr
+PASS: gdb.mi/gdb701.exp: list children of fooPtr.x
+PASS: gdb.mi/gdb701.exp: list children of fooPtr.y
+PASS: gdb.mi/gdb701.exp: list children of fooPtr.z
+Running ./gdb.mi/gdb792.exp ...
+PASS: gdb.mi/gdb792.exp: breakpoint at main
+PASS: gdb.mi/gdb792.exp: mi runto main
+PASS: gdb.mi/gdb792.exp: create var for class A
+PASS: gdb.mi/gdb792.exp: list children of class A
+PASS: gdb.mi/gdb792.exp: list children of A.public
+PASS: gdb.mi/gdb792.exp: list children of A.private
+PASS: gdb.mi/gdb792.exp: list children of A.protected
+PASS: gdb.mi/gdb792.exp: list children of A.protected.b
+PASS: gdb.mi/gdb792.exp: list children of A.protected.b.public
+PASS: gdb.mi/gdb792.exp: list children of A.protected.b.private
+PASS: gdb.mi/gdb792.exp: create var for class C which has baseclass A
+PASS: gdb.mi/gdb792.exp: list children of class C
+Running ./gdb.mi/mi2-amd64-entry-value.exp ...
+Running ./gdb.mi/mi2-prompt.exp ...
+PASS: gdb.mi/mi2-prompt.exp: console set prompt
+PASS: gdb.mi/mi2-prompt.exp: -break-list
+PASS: gdb.mi/mi2-prompt.exp: set prompt (banana)
+PASS: gdb.mi/mi2-prompt.exp: interpreter-exec mi -break-list
+Running ./gdb.mi/mi2-var-child.exp ...
+PASS: gdb.mi/mi2-var-child.exp: breakpoint at do_children_tests
+PASS: gdb.mi/mi2-var-child.exp: mi runto do_children_tests
+PASS: gdb.mi/mi2-var-child.exp: run to 237 (set breakpoint)
+PASS: gdb.mi/mi2-var-child.exp: create local variable struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.integer
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.integer
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.character
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.character
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_int
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_int
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.1
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.1
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.3
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.3
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.4
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.4
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.5
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.5
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.6
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.6
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.7
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.7
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.8
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.8
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.9
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.9
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.a
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.a
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.b
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.b
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.c
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.c
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.d
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.d
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.g
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.g
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.h
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.h
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.i
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.i
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: step to line $line_dct_123
+PASS: gdb.mi/mi2-var-child.exp: create local variable weird
+PASS: gdb.mi/mi2-var-child.exp: get children of weird
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird
+PASS: gdb.mi/mi2-var-child.exp: get children of weird.long_array
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird.long_array
+PASS: gdb.mi/mi2-var-child.exp: get children of weird.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: create local variable weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: is weird editable
+PASS: gdb.mi/mi2-var-child.exp: is weird->int_ptr_ptr editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.u1 editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.s2 editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.a editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.b editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.c editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.long_array editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.long_array.0 editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations editable
+PASS: gdb.mi/mi2-var-child.exp: delete var weird
+PASS: gdb.mi/mi2-var-child.exp: update all vars. None changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 1
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.integer
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 4
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 5
+PASS: gdb.mi/mi2-var-child.exp: update all vars int_ptr_ptr and children changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 6
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.0 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 7
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.1 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 8
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.2 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_nothing
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.3-9 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_a0_0
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.func_ptr changed
+PASS: gdb.mi/mi2-var-child.exp: delete var struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: delete var weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 1
+PASS: gdb.mi/mi2-var-child.exp: create local variable  psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: create local variable  psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: create local variable  psnp->ptrs
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.next
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.next.ptrs
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 2
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->char_ptr (and 0.char_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 3
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->next->char_ptr (and 1.char_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 4
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->next->next->char_ptr (and 2.char_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 5
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->long_ptr (and 0.long_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 6
+XFAIL: gdb.mi/mi2-var-child.exp: update all vars psnp->next->long_ptr (and 1.long_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 7
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->next->next->long_ptr (and 2.long_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: break in do_anonymous_type_tests
+PASS: gdb.mi/mi2-var-child.exp: continue to do_anonymous_type_tests breakpoint
+PASS: gdb.mi/mi2-var-child.exp: VT: create root varobj for ptr
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.a
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.a
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.b
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.b
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.c
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.c
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.c
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.c.*c
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.c.*c
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.d
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.d
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.e
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.e
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.f
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.f
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.g
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.g
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h.**h
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h.**h
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.integer
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.integer
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.unsigned_integer
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.unsigned_integer
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.character
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.character
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.signed_character
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.signed_character
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.0
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.0
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.1
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.1
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.2
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.2
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.3
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.3
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.4
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.4
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.5
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.5
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.6
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.6
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.7
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.7
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.8
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.8
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.9
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.9
+PASS: gdb.mi/mi2-var-child.exp: VT: create root varobj for v
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of v3
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3
+PASS: gdb.mi/mi2-var-child.exp: expression for v3
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.x
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.x
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of v3.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of v3.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.1_anonymous.a
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.1_anonymous.a
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.2_anonymous.b
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.2_anonymous.b
+Running ./gdb.mi/mi-async.exp ...
+Running ./gdb.mi/mi-basics.exp ...
+PASS: gdb.mi/mi-basics.exp: acceptance of MI operations
+PASS: gdb.mi/mi-basics.exp: file-exec-and-symbols operation
+PASS: gdb.mi/mi-basics.exp: file-exec-file operation
+PASS: gdb.mi/mi-basics.exp: file-symbol-file operation
+PASS: gdb.mi/mi-basics.exp: break-delete (all) operation
+PASS: gdb.mi/mi-basics.exp: all breakpoints removed
+PASS: gdb.mi/mi-basics.exp: environment-directory arg operation
+PASS: gdb.mi/mi-basics.exp: environment-directory empty-string operation
+PASS: gdb.mi/mi-basics.exp: environment-directory operation
+PASS: gdb.mi/mi-basics.exp: environment-cd arg operation
+PASS: gdb.mi/mi-basics.exp: environment-pwd operation
+PASS: gdb.mi/mi-basics.exp: environment-path
+PASS: gdb.mi/mi-basics.exp: environment-path no-args operation
+PASS: gdb.mi/mi-basics.exp: environment-path dir1 dir2 operation
+PASS: gdb.mi/mi-basics.exp: environment-path -r dir operation
+PASS: gdb.mi/mi-basics.exp: environment-path -r operation
+PASS: gdb.mi/mi-basics.exp: initial tty is mi_inferior_tty_name
+PASS: gdb.mi/mi-basics.exp: set tty to /dev/pts/1
+PASS: gdb.mi/mi-basics.exp: tty was set correctly
+PASS: gdb.mi/mi-basics.exp: set tty to the empty string
+PASS: gdb.mi/mi-basics.exp: make sure tty is empty
+PASS: gdb.mi/mi-basics.exp: set tty to mi_inferior_tty_name (the way it was)
+PASS: gdb.mi/mi-basics.exp: verify tty is correct
+Running ./gdb.mi/mi-break.exp ...
+PASS: gdb.mi/mi-break.exp: break-insert -t operation
+PASS: gdb.mi/mi-break.exp: insert temp breakpoint at basics.c:callee2
+PASS: gdb.mi/mi-break.exp: insert temp breakpoint at basics.c:$line_callee3_head
+PASS: gdb.mi/mi-break.exp: insert temp breakpoint at "<fullfilename>":$line_callee4_head
+PASS: gdb.mi/mi-break.exp: list of breakpoints
+PASS: gdb.mi/mi-break.exp: delete temp breakpoints
+KFAIL: gdb.mi/mi-break.exp: break-insert -r operation (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp callee2 (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp callee (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp .*llee (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: list of breakpoints (PRMS: mi/14270)
+PASS: gdb.mi/mi-break.exp: delete temp breakpoints
+PASS: gdb.mi/mi-break.exp: insert breakpoint with ignore count at callme
+PASS: gdb.mi/mi-break.exp: run to breakpoint with ignore count
+PASS: gdb.mi/mi-break.exp: breakpoint at nonexistent function
+PASS: gdb.mi/mi-break.exp: create varobj for function call
+PASS: gdb.mi/mi-break.exp: update varobj for function call
+PASS: gdb.mi/mi-break.exp: test disabled creation
+PASS: gdb.mi/mi-break.exp: test disabled creation: cleanup
+PASS: gdb.mi/mi-break.exp: breakpoint commands: insert breakpoint at basics.c:callee2
+PASS: gdb.mi/mi-break.exp: breakpoint commands: set commands
+PASS: gdb.mi/mi-break.exp: breakpoint commands: check that commands are set
+PASS: gdb.mi/mi-break.exp: breakpoint commands: clear commands
+PASS: gdb.mi/mi-break.exp: breakpoint commands: check that commands are cleared
+FAIL: gdb.mi/mi-break.exp: breakpoint at main
+FAIL: gdb.mi/mi-break.exp: mi runto main (unknown output after running)
+FAIL: gdb.mi/mi-break.exp: breakpoint commands: insert breakpoint at basics.c:callee2, again
+FAIL: gdb.mi/mi-break.exp: breakpoint commands: set commands
+FAIL: gdb.mi/mi-break.exp: breakpoint commands: continue (MI error)
+FAIL: gdb.mi/mi-break.exp: intermediate stop and continue
+FAIL: gdb.mi/mi-break.exp: test hitting breakpoint with commands (unknown output after running)
+PASS: gdb.mi/mi-break.exp: create local variable tpnum
+PASS: gdb.mi/mi-break.exp: eval tpnum before tracepoint
+FAIL: gdb.mi/mi-break.exp: break-insert -a operation
+PASS: gdb.mi/mi-break.exp: update tpnum
+FAIL: gdb.mi/mi-break.exp: eval tpnum after tracepoint
+Running ./gdb.mi/mi-breakpoint-changed.exp ...
+PASS: gdb.mi/mi-breakpoint-changed.exp: breakpoint at main
+FAIL: gdb.mi/mi-breakpoint-changed.exp: mi runto main (unknown output after running)
+PASS: gdb.mi/mi-breakpoint-changed.exp: change command
+PASS: gdb.mi/mi-breakpoint-changed.exp: watch watch
+PASS: gdb.mi/mi-breakpoint-changed.exp: trace marker
+FAIL: gdb.mi/mi-breakpoint-changed.exp: catch syscall
+FAIL: gdb.mi/mi-breakpoint-changed.exp: dprintf marker, "arg" "
+PASS: gdb.mi/mi-breakpoint-changed.exp: condition 2 main > 0x0
+PASS: gdb.mi/mi-breakpoint-changed.exp: disable 3
+PASS: gdb.mi/mi-breakpoint-changed.exp: enable 3
+PASS: gdb.mi/mi-breakpoint-changed.exp: ignore 5 1
+PASS: gdb.mi/mi-breakpoint-changed.exp: passcount 1 4
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 3
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 4
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 5
+FAIL: gdb.mi/mi-breakpoint-changed.exp: delete 6
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: insert breakpoint on pendfunc1
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc1 resolved
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to pendfunc1 breakpoint (timeout)
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: delete breakpoint on pendfunc1
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: insert breakpoint on marker
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: insert breakpoint on pendfunc3
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to marker 1 (MI error)
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to marker 1 (timeout)
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continuing execution to marker (MI error)
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc3 resolved (timeout)
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to marker 2 (timeout)
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continuing to exit (MI error)
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc3 pending again (timeout)
+FAIL: gdb.mi/mi-breakpoint-changed.exp: pending resolved: (unknown output after running)
+Running ./gdb.mi/mi-catch-load.exp ...
+PASS: gdb.mi/mi-catch-load.exp: breakpoint at main
+PASS: gdb.mi/mi-catch-load.exp: mi runto main
+PASS: gdb.mi/mi-catch-load.exp: catch-load: auto-solib-add on
+PASS: gdb.mi/mi-catch-load.exp: catch-load: catch load
+FAIL: gdb.mi/mi-catch-load.exp: catch-load: solib-event stop
+PASS: gdb.mi/mi-catch-load.exp: breakpoint at main
+PASS: gdb.mi/mi-catch-load.exp: mi runto main
+PASS: gdb.mi/mi-catch-load.exp: catch-unload: auto-solib-add on
+PASS: gdb.mi/mi-catch-load.exp: catch-unload: catch unload
+FAIL: gdb.mi/mi-catch-load.exp: catch-unload: solib-event stop
+Running ./gdb.mi/mi-cli.exp ...
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec with no arguments
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec with one argument
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec with bogus interpreter
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console bogus
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "file $binfile"
+PASS: gdb.mi/mi-cli.exp: breakpoint at main
+PASS: gdb.mi/mi-cli.exp: mi runto main
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set args foobar"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "show args"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "break callee4"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "info break"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set listsize 1"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "list"
+PASS: gdb.mi/mi-cli.exp: continue to callee4
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "delete 2"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "up"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "down"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "frame 2"
+PASS: gdb.mi/mi-cli.exp: -stack-select-frame 0
+PASS: gdb.mi/mi-cli.exp: check *stopped from CLI command
+PASS: gdb.mi/mi-cli.exp: -break-insert -t basics.c:$line_main_hello
+PASS: gdb.mi/mi-cli.exp: -exec-continue to line $line_main_hello
+PASS: gdb.mi/mi-cli.exp: 34 next: run
+PASS: gdb.mi/mi-cli.exp: 34 next: stop
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "list" at basics.c:$line_main_return
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "help set args"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set $pc=0x0"
+Running ./gdb.mi/mi-cmd-param-changed.exp ...
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: breakpoint at main
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: mi runto main
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking step"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: interpreter-exec "set scheduler-locking on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: interpreter-exec "set scheduler-locking off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: interpreter-exec "set scheduler-locking step"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking on" no event (requested by MI)
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking step" no event (requested by MI interp)
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking stepr" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache" warmup
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type" warmup
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set trace-notes foo"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set trace-notes bar"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set trace-notes bar" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remote exec-file foo"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remote exec-file bar"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remote exec-file bar" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "maint set profile on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "maint set profile off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set ch type on"
+Running ./gdb.mi/mi-console.exp ...
+PASS: gdb.mi/mi-console.exp: breakpoint at main
+PASS: gdb.mi/mi-console.exp: mi runto main
+PASS: gdb.mi/mi-console.exp: Testing console output
+UNSUPPORTED: gdb.mi/mi-console.exp: Testing console output inferior output
+PASS: gdb.mi/mi-console.exp: finished step over hello
+Running ./gdb.mi/mi-disassemble.exp ...
+PASS: gdb.mi/mi-disassemble.exp: breakpoint at main
+PASS: gdb.mi/mi-disassemble.exp: mi runto main
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble from pc to pc+12 assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file & line, assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble from pc to pc+12 assembly with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file & line, assembly with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line assembly mixed with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble bogus filename
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble bogus address
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble mix different args
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble wrong mode arg
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (zero lines) assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (more than main lines) assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (zero lines) assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (more than main lines) assembly mixed
+Running ./gdb.mi/mi-eval.exp ...
+PASS: gdb.mi/mi-eval.exp: breakpoint at callee4
+PASS: gdb.mi/mi-eval.exp: mi runto callee4
+PASS: gdb.mi/mi-eval.exp: next at callee4
+PASS: gdb.mi/mi-eval.exp: eval A
+PASS: gdb.mi/mi-eval.exp: eval &A
+PASS: gdb.mi/mi-eval.exp: eval A+3
+PASS: gdb.mi/mi-eval.exp: eval A + 3
+Running ./gdb.mi/mi-file.exp ...
+PASS: gdb.mi/mi-file.exp: request path info of current source file (basics.c)
+PASS: gdb.mi/mi-file.exp: Getting a list of source files.
+Running ./gdb.mi/mi-file-transfer.exp ...
+FAIL: gdb.mi/mi-file-transfer.exp: put binary file
+FAIL: gdb.mi/mi-file-transfer.exp: get binary file
+FAIL: gdb.mi/mi-file-transfer.exp: compare binary file
+FAIL: gdb.mi/mi-file-transfer.exp: deleted binary file
+Running ./gdb.mi/mi-fill-memory.exp ...
+PASS: gdb.mi/mi-fill-memory.exp: breakpoint at main
+PASS: gdb.mi/mi-fill-memory.exp: mi runto main
+PASS: gdb.mi/mi-fill-memory.exp: next at main
+PASS: gdb.mi/mi-fill-memory.exp: no arguments
+PASS: gdb.mi/mi-fill-memory.exp: one argument missing
+PASS: gdb.mi/mi-fill-memory.exp: memory successfully written
+PASS: gdb.mi/mi-fill-memory.exp: memory successfully filled (8 bytes)
+PASS: gdb.mi/mi-fill-memory.exp: pattern correctly read from memory
+Running ./gdb.mi/mi-fullname-deleted.exp ...
+PASS: gdb.mi/mi-fullname-deleted.exp: set substitute-path
+PASS: gdb.mi/mi-fullname-deleted.exp: fullname present
+PASS: gdb.mi/mi-fullname-deleted.exp: substituted fullname
+PASS: gdb.mi/mi-fullname-deleted.exp: compare_filenames_for_search does not match
+PASS: gdb.mi/mi-fullname-deleted.exp: compare_filenames_for_search does match
+Running ./gdb.mi/mi-hack-cli.exp ...
+PASS: gdb.mi/mi-hack-cli.exp: show architecture
+PASS: gdb.mi/mi-hack-cli.exp: 47show architecture
+Running ./gdb.mi/mi-info-os.exp ...
+FAIL: gdb.mi/mi-info-os.exp: -info-os
+Running ./gdb.mi/mi-inheritance-syntax-error.exp ...
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: breakpoint at C::testLocation
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: mi runto C::testLocation
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: create var for THIS
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: list children of THIS
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: -var-info-path-expression var1.A
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: -data-evaluate-expression (*(class A*) this)
+Running ./gdb.mi/mi-logging.exp ...
+PASS: gdb.mi/mi-logging.exp: breakpoint at main
+PASS: gdb.mi/mi-logging.exp: mi runto main
+PASS: gdb.mi/mi-logging.exp: logging on
+PASS: gdb.mi/mi-logging.exp: logged step
+PASS: gdb.mi/mi-logging.exp: logged next
+PASS: gdb.mi/mi-logging.exp: logging off
+PASS: gdb.mi/mi-logging.exp: Log file contents
+PASS: gdb.mi/mi-logging.exp: redirect logging on
+PASS: gdb.mi/mi-logging.exp: redirect logging off
+PASS: gdb.mi/mi-logging.exp: Redirect log file contents
+Running ./gdb.mi/mi-memory-changed.exp ...
+PASS: gdb.mi/mi-memory-changed.exp: insert breakpoint
+PASS: gdb.mi/mi-memory-changed.exp: continue to callee4
+PASS: gdb.mi/mi-memory-changed.exp: set var C = 4
+PASS: gdb.mi/mi-memory-changed.exp: create objvar for C
+PASS: gdb.mi/mi-memory-changed.exp: change C thru. varobj
+PASS: gdb.mi/mi-memory-changed.exp: change C thru. -data-write-memory-bytes
+PASS: gdb.mi/mi-memory-changed.exp: get address of main
+Running ./gdb.mi/mi-nonstop-exit.exp ...
+PASS: gdb.mi/mi-nonstop-exit.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nonstop-exit.exp: breakpoint at main
+PASS: gdb.mi/mi-nonstop-exit.exp: mi runto main
+PASS: gdb.mi/mi-nonstop-exit.exp: finished exec continue
+PASS: gdb.mi/mi-nonstop-exit.exp: breakpoint at main
+PASS: gdb.mi/mi-nonstop-exit.exp: mi runto main
+PASS: gdb.mi/mi-nonstop-exit.exp: finished exec continue (2)
+Running ./gdb.mi/mi-nonstop.exp ...
+PASS: gdb.mi/mi-nonstop.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nonstop.exp: breakpoint at main
+PASS: gdb.mi/mi-nonstop.exp: mi runto main
+PASS: gdb.mi/mi-nonstop.exp: breakpoint at marker
+PASS: gdb.mi/mi-nonstop.exp: w0,i0 stop
+PASS: gdb.mi/mi-nonstop.exp: w1,i0 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 1
+PASS: gdb.mi/mi-nonstop.exp: select thread 2
+PASS: gdb.mi/mi-nonstop.exp: create varobj in first thread
+PASS: gdb.mi/mi-nonstop.exp: select thread 3
+PASS: gdb.mi/mi-nonstop.exp: create varobj in second thread
+PASS: gdb.mi/mi-nonstop.exp: thread state, resume 1
+PASS: gdb.mi/mi-nonstop.exp: w0,i1 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 2
+PASS: gdb.mi/mi-nonstop.exp: thread state, resume 2
+PASS: gdb.mi/mi-nonstop.exp: w1,i1 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 3
+PASS: gdb.mi/mi-nonstop.exp: update varobj, 1
+PASS: gdb.mi/mi-nonstop.exp: check varobj, w0, 1
+PASS: gdb.mi/mi-nonstop.exp: check varobj, w1, 1
+PASS: gdb.mi/mi-nonstop.exp: interrupted
+PASS: gdb.mi/mi-nonstop.exp: got interrupt
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 4
+PASS: gdb.mi/mi-nonstop.exp: resume all
+PASS: gdb.mi/mi-nonstop.exp: w0,i2 stop
+PASS: gdb.mi/mi-nonstop.exp: w1,i2 stop
+PASS: gdb.mi/mi-nonstop.exp: set condition, 1
+PASS: gdb.mi/mi-nonstop.exp: w0,i3 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop on cond breakpoint
+PASS: gdb.mi/mi-nonstop.exp: update varobj, 2
+PASS: gdb.mi/mi-nonstop.exp: check varobj, w1, 1
+PASS: gdb.mi/mi-nonstop.exp: stacktrace of running thread
+PASS: gdb.mi/mi-nonstop.exp: stacktrace of stopped thread
+PASS: gdb.mi/mi-nonstop.exp: select first worker thread
+PASS: gdb.mi/mi-nonstop.exp: ask the second thread to exit
+UNSUPPORTED: gdb.mi/mi-nonstop.exp: wait for thread exit
+PASS: gdb.mi/mi-nonstop.exp: stacktrace of stopped thread
+Running ./gdb.mi/mi-nsintrall.exp ...
+PASS: gdb.mi/mi-nsintrall.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nsintrall.exp: breakpoint at main
+PASS: gdb.mi/mi-nsintrall.exp: mi runto main
+PASS: gdb.mi/mi-nsintrall.exp: breakpoint at thread_function
+PASS: gdb.mi/mi-nsintrall.exp: stop 0
+PASS: gdb.mi/mi-nsintrall.exp: stop 1
+PASS: gdb.mi/mi-nsintrall.exp: stop 2
+PASS: gdb.mi/mi-nsintrall.exp: stop 3
+PASS: gdb.mi/mi-nsintrall.exp: stop 4
+PASS: gdb.mi/mi-nsintrall.exp: stop 5
+PASS: gdb.mi/mi-nsintrall.exp: thread state, all stopped
+PASS: gdb.mi/mi-nsintrall.exp: resume all, no breakpoint
+PASS: gdb.mi/mi-nsintrall.exp: thread state, resume all
+PASS: gdb.mi/mi-nsintrall.exp: interrupt all threads
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 0
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 1
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 2
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 3
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 4
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 5
+PASS: gdb.mi/mi-nsintrall.exp: thread state, all interrupted
+PASS: gdb.mi/mi-nsintrall.exp: resume all after interrupting
+PASS: gdb.mi/mi-nsintrall.exp: thread state, resume all after interrupting
+Running ./gdb.mi/mi-nsmoribund.exp ...
+PASS: gdb.mi/mi-nsmoribund.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nsmoribund.exp: breakpoint at main
+PASS: gdb.mi/mi-nsmoribund.exp: mi runto main
+PASS: gdb.mi/mi-nsmoribund.exp: breakpoint at thread_function
+PASS: gdb.mi/mi-nsmoribund.exp: stop 0
+PASS: gdb.mi/mi-nsmoribund.exp: stop 1
+PASS: gdb.mi/mi-nsmoribund.exp: stop 2
+PASS: gdb.mi/mi-nsmoribund.exp: stop 3
+PASS: gdb.mi/mi-nsmoribund.exp: stop 4
+PASS: gdb.mi/mi-nsmoribund.exp: stop 5
+PASS: gdb.mi/mi-nsmoribund.exp: stop 6
+PASS: gdb.mi/mi-nsmoribund.exp: stop 7
+PASS: gdb.mi/mi-nsmoribund.exp: stop 8
+PASS: gdb.mi/mi-nsmoribund.exp: stop 9
+PASS: gdb.mi/mi-nsmoribund.exp: thread state: all stopped except the main thread
+PASS: gdb.mi/mi-nsmoribund.exp: select thread 5
+PASS: gdb.mi/mi-nsmoribund.exp: thread specific breakpoint at thread_function
+PASS: gdb.mi/mi-nsmoribund.exp: resume all, thread specific breakpoint
+PASS: gdb.mi/mi-nsmoribund.exp: hit thread specific breakpoint
+PASS: gdb.mi/mi-nsmoribund.exp: thread state: all running except the breakpoint thread
+PASS: gdb.mi/mi-nsmoribund.exp: resume all, program exited normally
+Running ./gdb.mi/mi-ns-stale-regcache.exp ...
+PASS: gdb.mi/mi-ns-stale-regcache.exp: breakpoint at main
+PASS: gdb.mi/mi-ns-stale-regcache.exp: mi runto main
+PASS: gdb.mi/mi-ns-stale-regcache.exp: no stale register cache of resumed thread
+PASS: gdb.mi/mi-ns-stale-regcache.exp: no stale frame info of resumed thread
+PASS: gdb.mi/mi-ns-stale-regcache.exp: main thread still running
+Running ./gdb.mi/mi-nsthrexec.exp ...
+Running ./gdb.mi/mi-pending.exp ...
+PASS: gdb.mi/mi-pending.exp: MI pending breakpoint on pendfunc1
+PASS: gdb.mi/mi-pending.exp: MI pending breakpoint on mi-pendshr.c:pendfunc2 if x==4
+FAIL: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc1 (unknown output after running)
+FAIL: gdb.mi/mi-pending.exp: continuing execution to skip conditional bp (MI error)
+FAIL: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc1 a second time (timeout)
+FAIL: gdb.mi/mi-pending.exp: continuing execution to conditional bp (MI error)
+FAIL: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc2 with x==4 (timeout)
+Running ./gdb.mi/mi-pthreads.exp ...
+PASS: gdb.mi/mi-pthreads.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-pthreads.exp: breakpoint at done_making_threads
+PASS: gdb.mi/mi-pthreads.exp: mi runto done_making_threads
+PASS: gdb.mi/mi-pthreads.exp: -thread_list_ids (in check_mi_thread_command_set)
+PASS: gdb.mi/mi-pthreads.exp: finding threads in MI output (in check_mi_thread_command_set)
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 123456789
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 6
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 5
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 4
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 3
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 2
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 1
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 6
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 5
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 4
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 3
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 2
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 1
+Running ./gdb.mi/mi-read-memory.exp ...
+PASS: gdb.mi/mi-read-memory.exp: breakpoint at main
+PASS: gdb.mi/mi-read-memory.exp: mi runto main
+PASS: gdb.mi/mi-read-memory.exp: next at main
+PASS: gdb.mi/mi-read-memory.exp: no arguments
+PASS: gdb.mi/mi-read-memory.exp: 3x2, one byte
+PASS: gdb.mi/mi-read-memory.exp: 3x2, one byte offset by -6
+PASS: gdb.mi/mi-read-memory.exp: expression in quotes
+PASS: gdb.mi/mi-read-memory.exp: ascii and data
+PASS: gdb.mi/mi-read-memory.exp: decimal
+PASS: gdb.mi/mi-read-memory.exp: octal
+Running ./gdb.mi/mi-record-changed.exp ...
+Running ./gdb.mi/mi-regs.exp ...
+Running ./gdb.mi/mi-return.exp ...
+PASS: gdb.mi/mi-return.exp: breakpoint at callee4
+PASS: gdb.mi/mi-return.exp: mi runto callee4
+PASS: gdb.mi/mi-return.exp: delete all breakpoints
+PASS: gdb.mi/mi-return.exp: return from callee4 now
+Running ./gdb.mi/mi-reverse.exp ...
+Running ./gdb.mi/mi-simplerun.exp ...
+PASS: gdb.mi/mi-simplerun.exp: break-insert operation
+PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at basics.c:callee2
+PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at basics.c:$line_callee3_head
+PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at "<fullfilename>":$line_callee4_head
+PASS: gdb.mi/mi-simplerun.exp: list of breakpoints
+PASS: gdb.mi/mi-simplerun.exp: disabling of breakpoints
+PASS: gdb.mi/mi-simplerun.exp: list of breakpoints, 16 disabled
+PASS: gdb.mi/mi-simplerun.exp: run to main
+PASS: gdb.mi/mi-simplerun.exp: next at main
+PASS: gdb.mi/mi-simplerun.exp: step at main
+PASS: gdb.mi/mi-simplerun.exp: step to callee4
+PASS: gdb.mi/mi-simplerun.exp: exec-finish
+PASS: gdb.mi/mi-simplerun.exp: continue to end
+Running ./gdb.mi/mi-solib.exp ...
+PASS: gdb.mi/mi-solib.exp: set stop-on-solib-events
+FAIL: gdb.mi/mi-solib.exp: check for solib event (unknown output after running)
+Running ./gdb.mi/mi-stack.exp ...
+PASS: gdb.mi/mi-stack.exp: breakpoint at callee4
+PASS: gdb.mi/mi-stack.exp: mi runto callee4
+PASS: gdb.mi/mi-stack.exp: stack frame listing
+PASS: gdb.mi/mi-stack.exp: stack frame listing 1 1
+PASS: gdb.mi/mi-stack.exp: stack frame listing 1 3
+PASS: gdb.mi/mi-stack.exp: stack frame listing wrong
+PASS: gdb.mi/mi-stack.exp: selected frame listing
+PASS: gdb.mi/mi-stack.exp: stack frame listing 1 300
+PASS: gdb.mi/mi-stack.exp: stack args listing 0
+PASS: gdb.mi/mi-stack.exp: stack args listing 0 1 1
+PASS: gdb.mi/mi-stack.exp: stack args listing 0 1 3
+PASS: gdb.mi/mi-stack.exp: stack args listing 1
+PASS: gdb.mi/mi-stack.exp: stack args listing 1 1 1
+PASS: gdb.mi/mi-stack.exp: stack args listing 1 1 3
+PASS: gdb.mi/mi-stack.exp: stack args listing wrong
+PASS: gdb.mi/mi-stack.exp: stack args listing 1 1 300
+PASS: gdb.mi/mi-stack.exp: stack locals listing of names
+PASS: gdb.mi/mi-stack.exp: next's in callee4
+PASS: gdb.mi/mi-stack.exp: stack locals listing of names and values
+PASS: gdb.mi/mi-stack.exp: stack locals listing, simple types: names and values, complex type: names and types
+PASS: gdb.mi/mi-stack.exp: stack locals listing wrong
+PASS: gdb.mi/mi-stack.exp: stack select frame 1
+PASS: gdb.mi/mi-stack.exp: stack locals listing for new frame
+PASS: gdb.mi/mi-stack.exp: stack locals for same frame (level 1)
+PASS: gdb.mi/mi-stack.exp: stack info-depth
+PASS: gdb.mi/mi-stack.exp: stack info-depth 3
+PASS: gdb.mi/mi-stack.exp: stack info-depth 99
+PASS: gdb.mi/mi-stack.exp: stack info-depth wrong usage
+Running ./gdb.mi/mi-stepi.exp ...
+PASS: gdb.mi/mi-stepi.exp: breakpoint at main
+PASS: gdb.mi/mi-stepi.exp: mi runto main
+PASS: gdb.mi/mi-stepi.exp: step-instruction at main
+PASS: gdb.mi/mi-stepi.exp: step-instruction at main (line check)
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main (line check)
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main 2
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main 2 (line check)
+Running ./gdb.mi/mi-stepn.exp ...
+PASS: gdb.mi/mi-stepn.exp: breakpoint at main
+PASS: gdb.mi/mi-stepn.exp: mi runto main
+PASS: gdb.mi/mi-stepn.exp: breakpoint at do_nothing
+PASS: gdb.mi/mi-stepn.exp: breakpoint-hit reported
+Running ./gdb.mi/mi-syn-frame.exp ...
+PASS: gdb.mi/mi-syn-frame.exp: breakpoint at main
+PASS: gdb.mi/mi-syn-frame.exp: mi runto main
+PASS: gdb.mi/mi-syn-frame.exp: insert breakpoint foo
+PASS: gdb.mi/mi-syn-frame.exp: call inferior's function with a breakpoint set in it
+PASS: gdb.mi/mi-syn-frame.exp: backtrace from inferior function stopped at bp, showing gdb dummy frame
+PASS: gdb.mi/mi-syn-frame.exp: finished exec continue
+PASS: gdb.mi/mi-syn-frame.exp: list stack frames
+PASS: gdb.mi/mi-syn-frame.exp: insert breakpoint subroutine
+PASS: gdb.mi/mi-syn-frame.exp: data evaluate expression
+FAIL: gdb.mi/mi-syn-frame.exp: list stack frames
+PASS: gdb.mi/mi-syn-frame.exp: finished exec continue
+PASS: gdb.mi/mi-syn-frame.exp: list stack frames
+PASS: gdb.mi/mi-syn-frame.exp: call inferior function which raises exception
+PASS: gdb.mi/mi-syn-frame.exp: backtrace from inferior function at exception
+Running ./gdb.mi/mi-until.exp ...
+PASS: gdb.mi/mi-until.exp: break-insert operation
+PASS: gdb.mi/mi-until.exp: run to main
+PASS: gdb.mi/mi-until.exp: break-delete 1
+KFAIL: gdb.mi/mi-until.exp: until after while loop (stopped at wrong place) (PRMS: gdb/2104)
+PASS: gdb.mi/mi-until.exp: until line number
+PASS: gdb.mi/mi-until.exp: until line number:file
+PASS: gdb.mi/mi-until.exp: until after current function
+Running ./gdb.mi/mi-var-block.exp ...
+PASS: gdb.mi/mi-var-block.exp: breakpoint at do_block_tests
+PASS: gdb.mi/mi-var-block.exp: mi runto do_block_tests
+PASS: gdb.mi/mi-var-block.exp: create local variable cb
+PASS: gdb.mi/mi-var-block.exp: try to create local variable foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 1
+PASS: gdb.mi/mi-var-block.exp: delete var foo 1
+PASS: gdb.mi/mi-var-block.exp: create local variable foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 2
+PASS: gdb.mi/mi-var-block.exp: update all vars: cb foo changed
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 3
+PASS: gdb.mi/mi-var-block.exp: create local variable inner_foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 4
+PASS: gdb.mi/mi-var-block.exp: create local variable foo2
+XFAIL: gdb.mi/mi-var-block.exp: update inner_foo: should be out of scope: KNOWN PROBLEM
+XFAIL: gdb.mi/mi-var-block.exp: evaluate inner_foo: should be out of scope: KNOWN PROBLEM
+PASS: gdb.mi/mi-var-block.exp: update foo: did not change
+PASS: gdb.mi/mi-var-block.exp: delete var inner_foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 5
+XFAIL: gdb.mi/mi-var-block.exp: update foo2: should be out of scope: KNOWN PROBLEM
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 6
+XFAIL: gdb.mi/mi-var-block.exp: update foo2 should be out of scope: KNOWN PROBLEM
+XFAIL: gdb.mi/mi-var-block.exp: update foo should be out of scope: KNOWN PROBLEM
+PASS: gdb.mi/mi-var-block.exp: update cb
+PASS: gdb.mi/mi-var-block.exp: delete var foo 2
+PASS: gdb.mi/mi-var-block.exp: delete var foo2
+PASS: gdb.mi/mi-var-block.exp: delete var cb
+Running ./gdb.mi/mi-var-child.exp ...
+PASS: gdb.mi/mi-var-child.exp: breakpoint at do_children_tests
+PASS: gdb.mi/mi-var-child.exp: mi runto do_children_tests
+PASS: gdb.mi/mi-var-child.exp: run to 215 (set breakpoint)
+PASS: gdb.mi/mi-var-child.exp: create local variable struct_declarations
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.integer
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.integer
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.character
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.character
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_int
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_int
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.1
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.1
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.3
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.3
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.4
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.4
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.5
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.5
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.6
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.6
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.7
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.7
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.8
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.8
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.9
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.9
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.a
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.a
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.b
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.b
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.c
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.c
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.d
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.d
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.g
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.g
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.h
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.h
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.i
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.i
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: step to line $line_dct_123
+PASS: gdb.mi/mi-var-child.exp: create local variable weird
+PASS: gdb.mi/mi-var-child.exp: get children of weird
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird
+PASS: gdb.mi/mi-var-child.exp: get children of weird.long_array
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird.long_array
+PASS: gdb.mi/mi-var-child.exp: get children of weird.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: create local variable weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: is weird editable
+PASS: gdb.mi/mi-var-child.exp: is weird->int_ptr_ptr editable
+PASS: gdb.mi/mi-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr editable
+PASS: gdb.mi/mi-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable
+PASS: gdb.mi/mi-var-child.exp: is weird.u1 editable
+PASS: gdb.mi/mi-var-child.exp: is weird.s2 editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.u1.a editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.u1.b editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.u1.c editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.long_array editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.long_array.0 editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations editable
+PASS: gdb.mi/mi-var-child.exp: delete var weird
+PASS: gdb.mi/mi-var-child.exp: update all vars. None changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 1
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.integer
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 4
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.char_ptr
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 5
+PASS: gdb.mi/mi-var-child.exp: update all vars int_ptr_ptr and children changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 6
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.0 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 7
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.1 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 8
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.2 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_nothing
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.3-9 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 1
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.func_ptr changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 2
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.10 changed, don't print values.
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_a0_0
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.11 changed, print values.
+PASS: gdb.mi/mi-var-child.exp: listing of names and values of children
+PASS: gdb.mi/mi-var-child.exp: listing of children, simple types: names, type and values, complex types: names and types
+PASS: gdb.mi/mi-var-child.exp: delete var struct_declarations
+PASS: gdb.mi/mi-var-child.exp: delete var weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 1
+PASS: gdb.mi/mi-var-child.exp: create local variable  psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: create local variable  psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: create local variable  psnp->ptrs
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.next
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.next.ptrs
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 2
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->char_ptr (and 0.char_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 3
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->next->char_ptr (and 1.char_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 4
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->next->next->char_ptr (and 2.char_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 5
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->long_ptr (and 0.long_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 6
+XFAIL: gdb.mi/mi-var-child.exp: update all vars psnp->next->long_ptr (and 1.long_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 7
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->next->next->long_ptr (and 2.long_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: run to mi-var-child.c:323 (set breakpoint)
+PASS: gdb.mi/mi-var-child.exp: create varobj for s
+PASS: gdb.mi/mi-var-child.exp: list children of S
+PASS: gdb.mi/mi-var-child.exp: delete S.a
+PASS: gdb.mi/mi-var-child.exp: delete S.b
+PASS: gdb.mi/mi-var-child.exp: delete S
+Running ./gdb.mi/mi-var-child-f.exp ...
+UNSUPPORTED: gdb.mi/mi-var-child-f.exp: compilation array.f
+Running ./gdb.mi/mi-var-cmd.exp ...
+PASS: gdb.mi/mi-var-cmd.exp: create global variable
+PASS: gdb.mi/mi-var-cmd.exp: create non-existent variable
+PASS: gdb.mi/mi-var-cmd.exp: create out of scope variable
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: run to 148 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create local variable linteger
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpcharacter
+PASS: gdb.mi/mi-var-cmd.exp: create local variable llong
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lplong
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lfloat
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpfloat
+PASS: gdb.mi/mi-var-cmd.exp: create local variable ldouble
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpdouble
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lsimple
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpsimple
+PASS: gdb.mi/mi-var-cmd.exp: create local variable func
+PASS: gdb.mi/mi-var-cmd.exp: create lsimple.character
+PASS: gdb.mi/mi-var-cmd.exp: create lsimple->integer
+PASS: gdb.mi/mi-var-cmd.exp: create lsimple.integer
+PASS: gdb.mi/mi-var-cmd.exp: create int
+PASS: gdb.mi/mi-var-cmd.exp: update all vars
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_test
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: linteger changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (2)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lpinteger changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (3)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lcharacter changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (4)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lpcharacter changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (5)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: many changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (6)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: func and lpsimple changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (7)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lsimple and others changed
+PASS: gdb.mi/mi-var-cmd.exp: assign to global_simple
+PASS: gdb.mi/mi-var-cmd.exp: assign to linteger
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: linteger changed after assign
+PASS: gdb.mi/mi-var-cmd.exp: assign to linteger again, same value
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: linteger not changed after same assign
+PASS: gdb.mi/mi-var-cmd.exp: eval linteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lpinteger changed after assign
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: no changes on second update
+PASS: gdb.mi/mi-var-cmd.exp: eval lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to linteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: eval lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: assign to llong
+PASS: gdb.mi/mi-var-cmd.exp: eval llong
+PASS: gdb.mi/mi-var-cmd.exp: assign to llong
+PASS: gdb.mi/mi-var-cmd.exp: assign to lplong
+PASS: gdb.mi/mi-var-cmd.exp: eval lplong
+PASS: gdb.mi/mi-var-cmd.exp: assign to lplong
+PASS: gdb.mi/mi-var-cmd.exp: assign to lfloat
+PASS: gdb.mi/mi-var-cmd.exp: eval lfloat
+PASS: gdb.mi/mi-var-cmd.exp: assign to lfloat
+PASS: gdb.mi/mi-var-cmd.exp: assign to lpfloat
+PASS: gdb.mi/mi-var-cmd.exp: assign to ldouble
+PASS: gdb.mi/mi-var-cmd.exp: assign to func
+PASS: gdb.mi/mi-var-cmd.exp: assign to lsimple.character
+PASS: gdb.mi/mi-var-cmd.exp: assign to lsimple->integer
+PASS: gdb.mi/mi-var-cmd.exp: assign to lsimple.integer
+PASS: gdb.mi/mi-var-cmd.exp: var update
+PASS: gdb.mi/mi-var-cmd.exp: assign same value to func
+PASS: gdb.mi/mi-var-cmd.exp: assign same value to func (update)
+PASS: gdb.mi/mi-var-cmd.exp: create global variable array_ptr
+PASS: gdb.mi/mi-var-cmd.exp: assign array to pointer
+PASS: gdb.mi/mi-var-cmd.exp: assign array to pointer (update)
+PASS: gdb.mi/mi-var-cmd.exp: assign same array to pointer
+PASS: gdb.mi/mi-var-cmd.exp: assign same array to pointer (update)
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at subroutine1
+PASS: gdb.mi/mi-var-cmd.exp: mi runto subroutine1
+PASS: gdb.mi/mi-var-cmd.exp: create i
+PASS: gdb.mi/mi-var-cmd.exp: create l
+PASS: gdb.mi/mi-var-cmd.exp: create linteger
+FAIL: gdb.mi/mi-var-cmd.exp: step at subroutine1 (stopped at wrong place)
+XFAIL: gdb.mi/mi-var-cmd.exp: update all vars: changed FIXME
+FAIL: gdb.mi/mi-var-cmd.exp: step at subroutine1 (2) (stopped at wrong place)
+FAIL: gdb.mi/mi-var-cmd.exp: update all vars: i changed
+FAIL: gdb.mi/mi-var-cmd.exp: step at subroutine1 (3) (stopped at wrong place)
+FAIL: gdb.mi/mi-var-cmd.exp: update all vars: llong changed
+FAIL: gdb.mi/mi-var-cmd.exp: next out of subroutine1 (stopped at wrong place)
+FAIL: gdb.mi/mi-var-cmd.exp: update all vars: all now out of scope
+PASS: gdb.mi/mi-var-cmd.exp: delete var
+PASS: gdb.mi/mi-var-cmd.exp: delete var linteger
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: delete var lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpcharacter
+PASS: gdb.mi/mi-var-cmd.exp: delete var llong
+PASS: gdb.mi/mi-var-cmd.exp: delete var lplong
+PASS: gdb.mi/mi-var-cmd.exp: delete var lfloat
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpfloat
+PASS: gdb.mi/mi-var-cmd.exp: delete var ldouble
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpdouble
+PASS: gdb.mi/mi-var-cmd.exp: delete var lsimple
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpsimple
+PASS: gdb.mi/mi-var-cmd.exp: delete var func
+PASS: gdb.mi/mi-var-cmd.exp: delete var lsimple.character
+PASS: gdb.mi/mi-var-cmd.exp: delete var  lsimple->integer
+PASS: gdb.mi/mi-var-cmd.exp: delete var lsimple.integer
+PASS: gdb.mi/mi-var-cmd.exp: delete var i
+PASS: gdb.mi/mi-var-cmd.exp: delete var l
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: create selected_a
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at incr_a
+PASS: gdb.mi/mi-var-cmd.exp: mi runto incr_a
+PASS: gdb.mi/mi-var-cmd.exp: update selected_a in incr_a
+PASS: gdb.mi/mi-var-cmd.exp: step a line in incr_a
+PASS: gdb.mi/mi-var-cmd.exp: return from incr_a to do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: update selected_a in do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: floating varobj invalidation
+PASS: gdb.mi/mi-var-cmd.exp: delete selected_a
+PASS: gdb.mi/mi-var-cmd.exp: delete array_ptr
+FAIL: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:351 (set breakpoint)
+FAIL: gdb.mi/mi-var-cmd.exp: wait for stop (frozen: step to 351)
+FAIL: gdb.mi/mi-var-cmd.exp: frozen: go to line 351
+FAIL: gdb.mi/mi-var-cmd.exp: frozen: step over 351 (MI error)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:510 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create varobj for Data
+PASS: gdb.mi/mi-var-cmd.exp: list children of Data
+PASS: gdb.mi/mi-var-cmd.exp: access bitfield
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:453 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create floating varobj
+PASS: gdb.mi/mi-var-cmd.exp: update F (1)
+PASS: gdb.mi/mi-var-cmd.exp: check F (1)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:464 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: update F (2)
+PASS: gdb.mi/mi-var-cmd.exp: check F (2)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:472 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: update F (--all-values)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:478 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: update F (3)
+PASS: gdb.mi/mi-var-cmd.exp: check F (3)
+PASS: gdb.mi/mi-var-cmd.exp: inside breakpoint inside callee
+PASS: gdb.mi/mi-var-cmd.exp: continue to where i is initialized
+PASS: gdb.mi/mi-var-cmd.exp: update F inside callee
+PASS: gdb.mi/mi-var-cmd.exp: check F inside callee
+PASS: gdb.mi/mi-var-cmd.exp: create null_ptr
+PASS: gdb.mi/mi-var-cmd.exp: update null_ptr
+PASS: gdb.mi/mi-var-cmd.exp: delete null_ptr
+PASS: gdb.mi/mi-var-cmd.exp: kill program before endvar
+PASS: gdb.mi/mi-var-cmd.exp: create endvar
+PASS: gdb.mi/mi-var-cmd.exp: update endvar
+PASS: gdb.mi/mi-var-cmd.exp: delete endvar
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: create varobj
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: check initial value
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at main
+PASS: gdb.mi/mi-var-cmd.exp: mi runto main
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now, not changed
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now, not changed
+Running ./gdb.mi/mi-var-cp.exp ...
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:20 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for rx
+PASS: gdb.mi/mi-var-cp.exp: update RX (1)
+PASS: gdb.mi/mi-var-cp.exp: check RX: expect 167
+PASS: gdb.mi/mi-var-cp.exp: update RX (2)
+PASS: gdb.mi/mi-var-cp.exp: check RX: expect 567
+PASS: gdb.mi/mi-var-cp.exp: update RX (3)
+PASS: gdb.mi/mi-var-cp.exp: delete RX
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:46 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for s2
+PASS: gdb.mi/mi-var-cp.exp: list children of s2
+PASS: gdb.mi/mi-var-cp.exp: list children of s2.s
+PASS: gdb.mi/mi-var-cp.exp: list children of s2.s.public
+PASS: gdb.mi/mi-var-cp.exp: check S2.S.public.i
+PASS: gdb.mi/mi-var-cp.exp: check S2.S.public.j
+PASS: gdb.mi/mi-var-cp.exp: delete S2
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:82 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for rptr_s
+PASS: gdb.mi/mi-var-cp.exp: list public child of RPTR
+PASS: gdb.mi/mi-var-cp.exp: list children of reference to pointer
+PASS: gdb.mi/mi-var-cp.exp: check i member
+PASS: gdb.mi/mi-var-cp.exp: check j member
+PASS: gdb.mi/mi-var-cp.exp: delete RPTR
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:105 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for s
+PASS: gdb.mi/mi-var-cp.exp: create varobj for s
+PASS: gdb.mi/mi-var-cp.exp: check attributes of S
+PASS: gdb.mi/mi-var-cp.exp: check attributes of R
+PASS: gdb.mi/mi-var-cp.exp: -var-update should not list structure varobjs
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:145 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for ip
+PASS: gdb.mi/mi-var-cp.exp: list children of IP
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression IP.*ip
+PASS: gdb.mi/mi-var-cp.exp: create varobj for dp
+PASS: gdb.mi/mi-var-cp.exp: list children of DP
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.Base1
+PASS: gdb.mi/mi-var-cp.exp: list children of DP.public
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.public.i
+PASS: gdb.mi/mi-var-cp.exp: list children of DP.Base1
+PASS: gdb.mi/mi-var-cp.exp: list children of DP.Base1.public
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.Base1.public.i
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.public
+PASS: gdb.mi/mi-var-cp.exp: create varobj for d
+PASS: gdb.mi/mi-var-cp.exp: list children of D
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression D.Base1
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:192 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for array
+PASS: gdb.mi/mi-var-cp.exp: list children of A
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression A.2
+PASS: gdb.mi/mi-var-cp.exp: break in anonymous_structs_and_unions
+PASS: gdb.mi/mi-var-cp.exp: continue to anonymous_structs breakpoint
+PASS: gdb.mi/mi-var-cp.exp: VT: create root varobj for a
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1
+PASS: gdb.mi/mi-var-cp.exp: expression for a1
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.0_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.0_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous.public.b
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous.public.b
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous.public.c
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous.public.c
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.d
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.d
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.e
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.e
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.f
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.f
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.i
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.i
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.j
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.j
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.g
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.g
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.h
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.h
+Running ./gdb.mi/mi-var-create-rtti.exp ...
+PASS: gdb.mi/mi-var-create-rtti.exp: breakpoint at main
+PASS: gdb.mi/mi-var-create-rtti.exp: mi runto main
+PASS: gdb.mi/mi-var-create-rtti.exp: -var-create sp1 * $sp
+Running ./gdb.mi/mi-var-display.exp ...
+PASS: gdb.mi/mi-var-display.exp: break-insert operation
+PASS: gdb.mi/mi-var-display.exp: run to main
+PASS: gdb.mi/mi-var-display.exp: create local variable bar
+PASS: gdb.mi/mi-var-display.exp: info type variable bar
+PASS: gdb.mi/mi-var-display.exp: show format variable bar
+PASS: gdb.mi/mi-var-display.exp: eval variable bar
+PASS: gdb.mi/mi-var-display.exp: set format variable bar
+PASS: gdb.mi/mi-var-display.exp: eval variable bar with new format
+PASS: gdb.mi/mi-var-display.exp: assing to variable bar
+PASS: gdb.mi/mi-var-display.exp: set format variable bar
+PASS: gdb.mi/mi-var-display.exp: eval variable bar with new value
+PASS: gdb.mi/mi-var-display.exp: delete var bar
+PASS: gdb.mi/mi-var-display.exp: create local variable foo
+PASS: gdb.mi/mi-var-display.exp: info type variable foo
+PASS: gdb.mi/mi-var-display.exp: show format variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo
+PASS: gdb.mi/mi-var-display.exp: set format variable foo
+PASS: gdb.mi/mi-var-display.exp: show format variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo
+PASS: gdb.mi/mi-var-display.exp: assing to variable foo
+PASS: gdb.mi/mi-var-display.exp: set format variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in hex
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in hex
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in octal
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in octal
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in decimal
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in decimal
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in natural
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in natural
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in binary
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in binary
+PASS: gdb.mi/mi-var-display.exp: delete var foo
+PASS: gdb.mi/mi-var-display.exp: create local variable weird
+PASS: gdb.mi/mi-var-display.exp: get children local variable weird
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr
+PASS: gdb.mi/mi-var-display.exp: show format variable weird.func_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: show format variable weird.func_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.integer
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.character
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.char_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.long_int
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.int_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.long_array
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_struct
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.u1
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.s2
+PASS: gdb.mi/mi-var-display.exp: delete var weird
+PASS: gdb.mi/mi-var-display.exp: break-insert operation 2
+PASS: gdb.mi/mi-var-display.exp: continue to do_special_tests
+PASS: gdb.mi/mi-var-display.exp: create local variable u
+PASS: gdb.mi/mi-var-display.exp: eval variable u
+PASS: gdb.mi/mi-var-display.exp: info type variable u
+PASS: gdb.mi/mi-var-display.exp: is u editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of u
+PASS: gdb.mi/mi-var-display.exp: get children of u
+PASS: gdb.mi/mi-var-display.exp: create local variable anonu
+PASS: gdb.mi/mi-var-display.exp: eval variable anonu
+PASS: gdb.mi/mi-var-display.exp: info type variable anonu
+PASS: gdb.mi/mi-var-display.exp: is anonu editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of anonu
+PASS: gdb.mi/mi-var-display.exp: get children of anonu
+PASS: gdb.mi/mi-var-display.exp: create local variable s
+PASS: gdb.mi/mi-var-display.exp: eval variable s
+PASS: gdb.mi/mi-var-display.exp: info type variable s
+PASS: gdb.mi/mi-var-display.exp: is s editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of s
+PASS: gdb.mi/mi-var-display.exp: get children of s
+PASS: gdb.mi/mi-var-display.exp: create local variable anons
+PASS: gdb.mi/mi-var-display.exp: eval variable anons
+PASS: gdb.mi/mi-var-display.exp: info type variable anons
+PASS: gdb.mi/mi-var-display.exp: is anons editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of anons
+PASS: gdb.mi/mi-var-display.exp: get children of anons
+PASS: gdb.mi/mi-var-display.exp: create local variable e
+PASS: gdb.mi/mi-var-display.exp: eval variable e
+PASS: gdb.mi/mi-var-display.exp: info type variable e
+PASS: gdb.mi/mi-var-display.exp: is e editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of e
+PASS: gdb.mi/mi-var-display.exp: get children of e
+PASS: gdb.mi/mi-var-display.exp: create local variable anone
+PASS: gdb.mi/mi-var-display.exp: eval variable anone
+PASS: gdb.mi/mi-var-display.exp: create duplicate local variable anone
+PASS: gdb.mi/mi-var-display.exp: info type variable anone
+PASS: gdb.mi/mi-var-display.exp: is anone editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of anone
+PASS: gdb.mi/mi-var-display.exp: get children of anone
+PASS: gdb.mi/mi-var-display.exp: print FP register
+PASS: gdb.mi/mi-var-display.exp: breakpoint at incr_a
+PASS: gdb.mi/mi-var-display.exp: mi runto incr_a
+PASS: gdb.mi/mi-var-display.exp: create local variable a1
+PASS: gdb.mi/mi-var-display.exp: create variable a2 in different scope
+Running ./gdb.mi/mi-var-invalidate.exp ...
+PASS: gdb.mi/mi-var-invalidate.exp: create global variable
+PASS: gdb.mi/mi-var-invalidate.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-invalidate.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-invalidate.exp: create local variable linteger
+PASS: gdb.mi/mi-var-invalidate.exp: create floating variable
+FAIL: gdb.mi/mi-var-invalidate.exp: breakpoint at main
+FAIL: gdb.mi/mi-var-invalidate.exp: mi runto main (unknown output after running)
+PASS: gdb.mi/mi-var-invalidate.exp: set format variable float_simple
+PASS: gdb.mi/mi-var-invalidate.exp: linteger not anymore in scope due to binary changes
+PASS: gdb.mi/mi-var-invalidate.exp: no type for invalid variable linteger (1)
+PASS: gdb.mi/mi-var-invalidate.exp: global_simple still alive
+PASS: gdb.mi/mi-var-invalidate.exp: type simpleton for valid variable global_simple
+PASS: gdb.mi/mi-var-invalidate.exp: linteger not valid anymore due to binary changes
+PASS: gdb.mi/mi-var-invalidate.exp: no type for invalid variable linteger (2)
+PASS: gdb.mi/mi-var-invalidate.exp: global_simple not anymore in scope due to binary changes
+PASS: gdb.mi/mi-var-invalidate.exp: no type for invalid variable global_simple
+Running ./gdb.mi/mi-var-rtti.exp ...
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:37 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:64 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ref (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.public (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->A (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ref (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constRef (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.public (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->A (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constRef (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ref (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.Base (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.Base.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->A (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->B (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->C (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ref (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constRef (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.Base (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.Base.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->A (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->B (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->C (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constRef (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:94 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:149 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.public (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->A (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.public (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->A (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.Base (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.Base.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->A (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->B (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->C (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.Base (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.Base.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->A (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->B (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->C (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:202 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ref (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.public (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: check ref->A (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ref (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.First (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:245 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in type_update_when_use_rtti
+FAIL: gdb.mi/mi-var-rtti.exp: create varobj for ptr in type_update_when_use_rtti
+FAIL: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in type_update_when_use_rtti
+FAIL: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for S in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:269 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr to derived in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->B (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->C (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s.ptr to derived in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->B (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->C (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:281 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr back to base type in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s.ptr back to base type in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:299 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for S in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:323 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr to derived type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s to derived type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:335 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr back to base type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s back to base type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s in skip_type_update_when_not_use_rtti
+Running ./gdb.mi/mi-watch.exp ...
+PASS: gdb.mi/mi-watch.exp: hw watchpoints toggle (1)
+PASS: gdb.mi/mi-watch.exp: sw: breakpoint at callee4
+PASS: gdb.mi/mi-watch.exp: sw: mi runto callee4
+PASS: gdb.mi/mi-watch.exp: sw: break-watch operation
+PASS: gdb.mi/mi-watch.exp: sw: list of watchpoints
+PASS: gdb.mi/mi-watch.exp: sw: watchpoint trigger
+XPASS: gdb.mi/mi-watch.exp: sw: watchpoint trigger
+Running ./gdb.mi/mi-watch-nonstop.exp ...
+Running ./gdb.mi/pr11022.exp ...
+Running ./gdb.modula2/unbounded-array.exp ...
+PASS: gdb.modula2/unbounded-array.exp: switch to modula-2
+PASS: gdb.modula2/unbounded-array.exp: print the last legal element of array a
+PASS: gdb.modula2/unbounded-array.exp: print unbounded array contents
+PASS: gdb.modula2/unbounded-array.exp: print the 1st element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 2nd element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 3rd element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 4th element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 5th element of array a
+Running ./gdb.multi/base.exp ...
+PASS: gdb.multi/base.exp: add empty inferior 2
+PASS: gdb.multi/base.exp: switch to inferior 2
+PASS: gdb.multi/base.exp: load hangout file in inferior 2
+PASS: gdb.multi/base.exp: add inferior 3 with -exec goodbye
+PASS: gdb.multi/base.exp: info inferiors
+PASS: gdb.multi/base.exp: info inferior 2 3
+PASS: gdb.multi/base.exp: info inferior 1-2
+PASS: gdb.multi/base.exp: switch to inferior 1
+PASS: gdb.multi/base.exp: 'info functions commonfun' in inferior 1
+PASS: gdb.multi/base.exp: switch to inferior 3
+PASS: gdb.multi/base.exp: 'info functions commonfun' in inferior 3
+PASS: gdb.multi/base.exp: switch back to inferior 1
+PASS: gdb.multi/base.exp: set listsize 1
+PASS: gdb.multi/base.exp: list commonfun in hello
+PASS: gdb.multi/base.exp: print hglob
+PASS: gdb.multi/base.exp: print glob (hello)
+PASS: gdb.multi/base.exp: switch to inferior 3 to print globals
+PASS: gdb.multi/base.exp: print gglob
+PASS: gdb.multi/base.exp: print glob (goodbye)
+PASS: gdb.multi/base.exp: list commonfun in goodbye
+PASS: gdb.multi/base.exp: switch to inferior 1 to run it
+PASS: gdb.multi/base.exp: break hello
+PASS: gdb.multi/base.exp: continue
+PASS: gdb.multi/base.exp: remove-inferiors 2-3
+PASS: gdb.multi/base.exp: check remove-inferiors
+Running ./gdb.multi/bkpt-multi-exec.exp ...
+Running ./gdb.multi/multi-arch-exec.exp ...
+Running ./gdb.multi/multi-arch.exp ...
+Running ./gdb.multi/watchpoint-multi.exp ...
+UNTESTED: gdb.multi/watchpoint-multi.exp: watchpoint-multi.exp
+Running ./gdb.objc/basicclass.exp ...
+UNSUPPORTED: gdb.objc/basicclass.exp: Couldn't compile ./gdb.objc/basicclass.m: unrecognized error
+Running ./gdb.objc/nondebug.exp ...
+UNSUPPORTED: gdb.objc/nondebug.exp: Couldn't compile ./gdb.objc/nondebug.m: unrecognized error
+Running ./gdb.objc/objcdecode.exp ...
+UNSUPPORTED: gdb.objc/objcdecode.exp: Couldn't compile ./gdb.objc/objcdecode.m: unrecognized error
+Running ./gdb.objc/print.exp ...
+PASS: gdb.objc/print.exp: set language objective-c
+PASS: gdb.objc/print.exp: set language to "objective-c"
+PASS: gdb.objc/print.exp: check fp + text
+PASS: gdb.objc/print.exp: p 1.
+PASS: gdb.objc/print.exp: p 1.5
+PASS: gdb.objc/print.exp: p 1.f
+PASS: gdb.objc/print.exp: p 1.5f
+PASS: gdb.objc/print.exp: p 1.l
+PASS: gdb.objc/print.exp: p 1.5l
+PASS: gdb.objc/print.exp: p 0x1.1
+PASS: gdb.objc/print.exp: reject p 1.1x
+PASS: gdb.objc/print.exp: reject p 1.1ff
+PASS: gdb.objc/print.exp: reject p 1.1ll
+Running ./gdb.opencl/callfuncs.exp ...
+Running ./gdb.opencl/convs_casts.exp ...
+Running ./gdb.opencl/datatypes.exp ...
+Running ./gdb.opencl/operators.exp ...
+Running ./gdb.opencl/vec_comps.exp ...
+Running ./gdb.opt/clobbered-registers-O2.exp ...
+PASS: gdb.opt/clobbered-registers-O2.exp: Backtracing
+PASS: gdb.opt/clobbered-registers-O2.exp: print operand0
+PASS: gdb.opt/clobbered-registers-O2.exp: print operand1
+Running ./gdb.opt/inline-break.exp ...
+PASS: gdb.opt/inline-break.exp: break func1
+PASS: gdb.opt/inline-break.exp: break func2
+PASS: gdb.opt/inline-break.exp: break func3b
+FAIL: gdb.opt/inline-break.exp: break func4b
+PASS: gdb.opt/inline-break.exp: break func5b
+FAIL: gdb.opt/inline-break.exp: break func6b
+PASS: gdb.opt/inline-break.exp: break func7b
+PASS: gdb.opt/inline-break.exp: break func8b
+PASS: gdb.opt/inline-break.exp: print func1
+PASS: gdb.opt/inline-break.exp: print func2
+Running ./gdb.opt/inline-bt.exp ...
+PASS: gdb.opt/inline-bt.exp: continue to bar (1)
+PASS: gdb.opt/inline-bt.exp: backtrace from bar (1)
+PASS: gdb.opt/inline-bt.exp: bar not inlined
+PASS: gdb.opt/inline-bt.exp: continue to bar (2)
+PASS: gdb.opt/inline-bt.exp: backtrace from bar (2)
+PASS: gdb.opt/inline-bt.exp: up from bar (2)
+PASS: gdb.opt/inline-bt.exp: func1 inlined (2)
+PASS: gdb.opt/inline-bt.exp: continue to bar (3)
+PASS: gdb.opt/inline-bt.exp: backtrace from bar (3)
+PASS: gdb.opt/inline-bt.exp: up from bar (3)
+PASS: gdb.opt/inline-bt.exp: func1 inlined (3)
+PASS: gdb.opt/inline-bt.exp: up from func1 (3)
+PASS: gdb.opt/inline-bt.exp: func2 inlined (3)
+Running ./gdb.opt/inline-cmds.exp ...
+PASS: gdb.opt/inline-cmds.exp: set listsize 1
+PASS: gdb.opt/inline-cmds.exp: continue to bar (1)
+PASS: gdb.opt/inline-cmds.exp: backtrace from bar (1)
+PASS: gdb.opt/inline-cmds.exp: up from bar (1)
+PASS: gdb.opt/inline-cmds.exp: func1 inlined (1)
+PASS: gdb.opt/inline-cmds.exp: continue to bar (2)
+PASS: gdb.opt/inline-cmds.exp: backtrace from bar (2)
+PASS: gdb.opt/inline-cmds.exp: up from bar (2)
+PASS: gdb.opt/inline-cmds.exp: func1 inlined (2)
+PASS: gdb.opt/inline-cmds.exp: up from func1 (2)
+PASS: gdb.opt/inline-cmds.exp: func2 inlined (2)
+PASS: gdb.opt/inline-cmds.exp: continue to marker
+PASS: gdb.opt/inline-cmds.exp: backtrace from marker
+PASS: gdb.opt/inline-cmds.exp: marker not inlined
+PASS: gdb.opt/inline-cmds.exp: next over inlined functions
+PASS: gdb.opt/inline-cmds.exp: next past inlined func1
+PASS: gdb.opt/inline-cmds.exp: print x before func1
+PASS: gdb.opt/inline-cmds.exp: backtrace does not include func1
+PASS: gdb.opt/inline-cmds.exp: stepped over call to func1
+FAIL: gdb.opt/inline-cmds.exp: step into func1
+PASS: gdb.opt/inline-cmds.exp: finish from func1
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: consecutive func1
+PASS: gdb.opt/inline-cmds.exp: next to first func1
+KFAIL: gdb.opt/inline-cmds.exp: next to second func1 (PRMS: gdb/NNNN)
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: func1 then func3
+PASS: gdb.opt/inline-cmds.exp: next to func1 before func3
+PASS: gdb.opt/inline-cmds.exp: next to func3
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: finish into func1
+PASS: gdb.opt/inline-cmds.exp: next to finish marker
+FAIL: gdb.opt/inline-cmds.exp: step into finish marker
+PASS: gdb.opt/inline-cmds.exp: finish from marker to func1
+PASS: gdb.opt/inline-cmds.exp: step into func1 for finish
+PASS: gdb.opt/inline-cmds.exp: finish from func1 to func3
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: before the outer_inline call
+PASS: gdb.opt/inline-cmds.exp: reach 1 the outer_inline call
+PASS: gdb.opt/inline-cmds.exp: reach outer_inline2
+PASS: gdb.opt/inline-cmds.exp: backtrace at main of outer_inline
+PASS: gdb.opt/inline-cmds.exp: enter outer_inline2
+PASS: gdb.opt/inline-cmds.exp: backtrace at outer_inline2
+PASS: gdb.opt/inline-cmds.exp: enter outer_inline1 from outer_inline2
+PASS: gdb.opt/inline-cmds.exp: backtrace at outer_inline1
+PASS: gdb.opt/inline-cmds.exp: enter noinline from outer_inline1
+PASS: gdb.opt/inline-cmds.exp: backtrace at noinline from outer_inline1
+FAIL: gdb.opt/inline-cmds.exp: enter inlined_fn from noinline
+FAIL: gdb.opt/inline-cmds.exp: backtrace at inlined_fn from noinline
+FAIL: gdb.opt/inline-cmds.exp: inlined_fn from noinline inlined
+FAIL: gdb.opt/inline-cmds.exp: up to noinline
+FAIL: gdb.opt/inline-cmds.exp: noinline from outer_inline1 not inlined
+PASS: gdb.opt/inline-cmds.exp: up to outer_inline1
+PASS: gdb.opt/inline-cmds.exp: outer_inline1 inlined
+PASS: gdb.opt/inline-cmds.exp: up to outer_inline2
+FAIL: gdb.opt/inline-cmds.exp: outer_inline2 inlined
+FAIL: gdb.opt/inline-cmds.exp: up from outer_inline2
+PASS: gdb.opt/inline-cmds.exp: main not inlined
+Running ./gdb.opt/inline-locals.exp ...
+PASS: gdb.opt/inline-locals.exp: continue to bar (1)
+PASS: gdb.opt/inline-locals.exp: continue to bar (2)
+PASS: gdb.opt/inline-locals.exp: backtrace from bar (2)
+PASS: gdb.opt/inline-locals.exp: up from bar (2)
+PASS: gdb.opt/inline-locals.exp: func1 inlined (2)
+PASS: gdb.opt/inline-locals.exp: info locals above bar (2)
+PASS: gdb.opt/inline-locals.exp: info args above bar (2)
+PASS: gdb.opt/inline-locals.exp: print local (2)
+PASS: gdb.opt/inline-locals.exp: print out of scope local
+PASS: gdb.opt/inline-locals.exp: continue to bar (3)
+PASS: gdb.opt/inline-locals.exp: backtrace from bar (3)
+PASS: gdb.opt/inline-locals.exp: up from bar (3)
+PASS: gdb.opt/inline-locals.exp: func1 inlined (3)
+PASS: gdb.opt/inline-locals.exp: info locals above bar (3)
+PASS: gdb.opt/inline-locals.exp: info args above bar (3)
+PASS: gdb.opt/inline-locals.exp: print local (3)
+Running ./gdb.pascal/floats.exp ...
+UNSUPPORTED: gdb.pascal/floats.exp: No pascal compiler found
+UNTESTED: gdb.pascal/floats.exp: floats.exp
+Running ./gdb.pascal/gdb11492.exp ...
+UNSUPPORTED: gdb.pascal/gdb11492.exp: No pascal compiler found
+UNTESTED: gdb.pascal/gdb11492.exp: gdb11492.exp
+Running ./gdb.pascal/hello.exp ...
+UNSUPPORTED: gdb.pascal/hello.exp: No pascal compiler found
+Running ./gdb.pascal/integers.exp ...
+UNSUPPORTED: gdb.pascal/integers.exp: No pascal compiler found
+Running ./gdb.pascal/print.exp ...
+PASS: gdb.pascal/print.exp: set language pascal
+PASS: gdb.pascal/print.exp: set language to "pascal"
+PASS: gdb.pascal/print.exp: check fp + text
+PASS: gdb.pascal/print.exp: p 1.
+PASS: gdb.pascal/print.exp: p 1.5
+PASS: gdb.pascal/print.exp: p 1.f
+PASS: gdb.pascal/print.exp: p 1.5f
+PASS: gdb.pascal/print.exp: p 1.l
+PASS: gdb.pascal/print.exp: p 1.5l
+PASS: gdb.pascal/print.exp: p 0x1.1
+PASS: gdb.pascal/print.exp: reject p 1.1x
+PASS: gdb.pascal/print.exp: reject p 1.1ff
+PASS: gdb.pascal/print.exp: reject p 1.1ll
+Running ./gdb.pascal/types.exp ...
+PASS: gdb.pascal/types.exp: set language pascal
+PASS: gdb.pascal/types.exp: set language to "pascal"
+PASS: gdb.pascal/types.exp: pt 123
+PASS: gdb.pascal/types.exp: pt TRUE
+PASS: gdb.pascal/types.exp: pt FALSE
+PASS: gdb.pascal/types.exp: pt 'a'
+KFAIL: gdb.pascal/types.exp: pt 'a simple string' (PRMS: gdb/2326)
+PASS: gdb.pascal/types.exp: pt .44
+PASS: gdb.pascal/types.exp: pt 44.0
+PASS: gdb.pascal/types.exp: pt 10e20
+PASS: gdb.pascal/types.exp: pt 10E20
+Running ./gdb.python/lib-types.exp ...
+PASS: gdb.python/lib-types.exp: python import gdb.types
+PASS: gdb.python/lib-types.exp: python const_class1_obj = gdb.parse_and_eval ('const_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_const_class1_obj = gdb.types.get_basic_type (const_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (const_class1_obj.type))
+PASS: gdb.python/lib-types.exp: const stripping
+PASS: gdb.python/lib-types.exp: python volatile_class1_obj = gdb.parse_and_eval ('volatile_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_volatile_class1_obj = gdb.types.get_basic_type (volatile_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (volatile_class1_obj.type))
+PASS: gdb.python/lib-types.exp: volatile stripping
+PASS: gdb.python/lib-types.exp: python const_volatile_class1_obj = gdb.parse_and_eval ('const_volatile_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_const_volatile_class1_obj = gdb.types.get_basic_type (const_volatile_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (const_volatile_class1_obj.type))
+PASS: gdb.python/lib-types.exp: volatile+const stripping
+PASS: gdb.python/lib-types.exp: python typedef_class1_obj = gdb.parse_and_eval ('typedef_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_typedef_class1_obj = gdb.types.get_basic_type (typedef_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (typedef_class1_obj.type))
+PASS: gdb.python/lib-types.exp: typedef stripping
+PASS: gdb.python/lib-types.exp: python class1_ref_obj = gdb.parse_and_eval ('class1_ref_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_class1_ref_obj = gdb.types.get_basic_type (class1_ref_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (class1_ref_obj.type))
+PASS: gdb.python/lib-types.exp: reference stripping
+PASS: gdb.python/lib-types.exp: python typedef_const_typedef_class1_obj = gdb.parse_and_eval ('typedef_const_typedef_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_typedef_const_typedef_class1_obj = gdb.types.get_basic_type (typedef_const_typedef_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (typedef_class1_obj.type))
+PASS: gdb.python/lib-types.exp: nested typedef stripping
+PASS: gdb.python/lib-types.exp: python typedef_const_typedef_class1_ref_obj = gdb.parse_and_eval ('typedef_const_typedef_class1_ref_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_typedef_const_typedef_class1_ref_obj = gdb.types.get_basic_type (typedef_const_typedef_class1_ref_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (typedef_const_typedef_class1_ref_obj.type))
+PASS: gdb.python/lib-types.exp: nested typedef/ref stripping
+PASS: gdb.python/lib-types.exp: python class1_obj = gdb.parse_and_eval ('class1_obj')
+PASS: gdb.python/lib-types.exp: python print (gdb.types.has_field (class1_obj.type, 'x'))
+PASS: gdb.python/lib-types.exp: python print (gdb.types.has_field (class1_obj.type, 'nope'))
+PASS: gdb.python/lib-types.exp: python subclass1_obj = gdb.parse_and_eval ('subclass1_obj')
+PASS: gdb.python/lib-types.exp: python print (gdb.types.has_field (subclass1_obj.type, 'x'))
+PASS: gdb.python/lib-types.exp: python enum1_obj = gdb.parse_and_eval ('enum1_obj')
+PASS: gdb.python/lib-types.exp: python enum1_dict = gdb.types.make_enum_dict (enum1_obj.type)
+PASS: gdb.python/lib-types.exp: python enum1_list = sorted (enum1_dict.items ())
+PASS: gdb.python/lib-types.exp: python print (enum1_list)
+PASS: gdb.python/lib-types.exp: python struct_a = gdb.lookup_type ('struct A')
+PASS: gdb.python/lib-types.exp: python print (struct_a.keys ())
+PASS: gdb.python/lib-types.exp: python print ([k for k,v in gdb.types.deep_items(struct_a)])
+Running ./gdb.python/py-arch.exp ...
+PASS: gdb.python/py-arch.exp: test number of instructions 1
+PASS: gdb.python/py-arch.exp: test number of instructions 2
+PASS: gdb.python/py-arch.exp: test number of instructions 3
+PASS: gdb.python/py-arch.exp: test number of instructions 4
+PASS: gdb.python/py-arch.exp: test key addr
+PASS: gdb.python/py-arch.exp: test key asm
+PASS: gdb.python/py-arch.exp: test key length
+PASS: gdb.python/py-arch.exp: test exception
+Running ./gdb.python/py-block.exp ...
+PASS: gdb.python/py-block.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-block.exp: Check block not None
+PASS: gdb.python/py-block.exp: First anonymous block
+PASS: gdb.python/py-block.exp: Check start not None
+PASS: gdb.python/py-block.exp: Check end not None
+PASS: gdb.python/py-block.exp: Not a global block
+PASS: gdb.python/py-block.exp: Not a static block
+PASS: gdb.python/py-block.exp: Get block
+PASS: gdb.python/py-block.exp: Get block
+PASS: gdb.python/py-block.exp: Is the global block
+PASS: gdb.python/py-block.exp: Is the static block
+PASS: gdb.python/py-block.exp: Get superblock
+PASS: gdb.python/py-block.exp: Second anonymous block
+PASS: gdb.python/py-block.exp: Get superblock 2
+PASS: gdb.python/py-block.exp: Print superblock 2 function
+PASS: gdb.python/py-block.exp: up
+PASS: gdb.python/py-block.exp: Check Frame 2's block not None
+PASS: gdb.python/py-block.exp: main block
+PASS: gdb.python/py-block.exp: Check block validity
+PASS: gdb.python/py-block.exp: Check block validity
+PASS: gdb.python/py-block.exp: Check block validity
+PASS: gdb.python/py-block.exp: Check block validity
+Running ./gdb.python/py-breakpoint.exp ...
+PASS: gdb.python/py-breakpoint.exp: Check obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check for two breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint hit count
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint hit count
+PASS: gdb.python/py-breakpoint.exp: Check expected variable result after 6 iterations
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at add.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint enabled.
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at add.
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint thread
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint type
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint number
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint number
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint number
+PASS: gdb.python/py-breakpoint.exp: Number of breakpoints before delete
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint invalidated
+PASS: gdb.python/py-breakpoint.exp: Number of breakpoints after delete
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at end.
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test conditional has been set
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test conditional breakpoint stopped after five iterations
+PASS: gdb.python/py-breakpoint.exp: Test conditional read
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test breakpoint stopped after six iterations
+PASS: gdb.python/py-breakpoint.exp: commands $bpnum
+PASS: gdb.python/py-breakpoint.exp: print "Command for breakpoint has been executed."
+PASS: gdb.python/py-breakpoint.exp: print result
+PASS: gdb.python/py-breakpoint.exp: end
+PASS: gdb.python/py-breakpoint.exp: python print (blist[len(blist)-1].commands)
+PASS: gdb.python/py-breakpoint.exp: Check invisible bp obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint visibility
+PASS: gdb.python/py-breakpoint.exp: Check info breakpoints shows visible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check invisible bp obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint visibility
+PASS: gdb.python/py-breakpoint.exp: Check info breakpoints does not show invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check maint info breakpoints shows invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Test watchpoint write
+PASS: gdb.python/py-breakpoint.exp: Check info breakpoints does not show invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check maint info breakpoints shows invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Test watchpoint write
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint - class bp_eval (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -    inf_i = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -    count = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -    def stop (self):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       self.count = self.count + 1
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       self.inf_i = gdb.parse_and_eval("i")
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       if self.inf_i == 3:
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -         return True
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       return False
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint - end
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint - class bp_also_eval (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -    count = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -    def stop (self):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -       self.count = self.count + 1
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -       if self.count == 9:
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -         return True
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -       return False
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint - end
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint - class basic (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint -    count = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint - end
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check inferior value matches python accounting
+PASS: gdb.python/py-breakpoint.exp: Check python accounting matches inferior
+PASS: gdb.python/py-breakpoint.exp: Check non firing same-location breakpoint eval function was also called at each stop.
+PASS: gdb.python/py-breakpoint.exp: Check non firing same-location breakpoint eval function was also called at each stop.
+PASS: gdb.python/py-breakpoint.exp: Check you cannot add a CLI condition to a Python breakpoint that
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function - python
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function - def stop_func ():
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function -    return True
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function - end
+PASS: gdb.python/py-breakpoint.exp: Assign stop function to a breakpoint that has a condition
+PASS: gdb.python/py-breakpoint.exp: Test that evaluate function has not been yet executed (ie count = 0)
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test that evaluate function is run when location also has normal bp
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint - class wp_eval (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -    def stop (self):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -       self.result = gdb.parse_and_eval("result")
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -       if self.result == 788:
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -         return True
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -       return False
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint - end
+PASS: gdb.python/py-breakpoint.exp: Test watchpoint write
+PASS: gdb.python/py-breakpoint.exp: Check that this unrelated breakpoints eval function was never called.
+Running ./gdb.python/py-cmd.exp ...
+PASS: gdb.python/py-cmd.exp: input simple command - python
+PASS: gdb.python/py-cmd.exp: input simple command - class test_cmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input simple command -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input simple command -     super (test_cmd, self).__init__ ("test_cmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input simple command -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input simple command -     print ("test_cmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input simple command - test_cmd ()
+PASS: gdb.python/py-cmd.exp: input simple command - end
+PASS: gdb.python/py-cmd.exp: call simple command
+PASS: gdb.python/py-cmd.exp: input prefix command - python
+PASS: gdb.python/py-cmd.exp: input prefix command - class prefix_cmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input prefix command -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input prefix command -     super (prefix_cmd, self).__init__ ("prefix_cmd", gdb.COMMAND_OBSCURE, gdb.COMPLETE_NONE, True)
+PASS: gdb.python/py-cmd.exp: input prefix command -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input prefix command -     print ("prefix_cmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input prefix command - prefix_cmd ()
+PASS: gdb.python/py-cmd.exp: input prefix command - end
+PASS: gdb.python/py-cmd.exp: call prefix command
+PASS: gdb.python/py-cmd.exp: input subcommand - python
+PASS: gdb.python/py-cmd.exp: input subcommand - class subcmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input subcommand -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input subcommand -     super (subcmd, self).__init__ ("prefix_cmd subcmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input subcommand -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input subcommand -     print ("subcmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input subcommand - subcmd ()
+PASS: gdb.python/py-cmd.exp: input subcommand - end
+PASS: gdb.python/py-cmd.exp: call subcmd
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - python
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - class prefix_cmd2 (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -     super (prefix_cmd2, self).__init__ ("prefix_cmd2", gdb.COMMAND_OBSCURE, prefix = True, completer_class = gdb.COMPLETE_FILENAME)
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -     print ("prefix_cmd2 output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - prefix_cmd2 ()
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - end
+PASS: gdb.python/py-cmd.exp: call prefix command, keyword arguments
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - python
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - class subcmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -     super (subcmd, self).__init__ ("prefix_cmd2 subcmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -     print ("subcmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - subcmd ()
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - end
+PASS: gdb.python/py-cmd.exp: call subcmd under prefix_cmd2
+PASS: gdb.python/py-cmd.exp: input new subcommand - python
+PASS: gdb.python/py-cmd.exp: input new subcommand - class newsubcmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input new subcommand -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input new subcommand -     super (newsubcmd, self).__init__ ("info newsubcmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input new subcommand -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input new subcommand -     print ("newsubcmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input new subcommand - newsubcmd ()
+PASS: gdb.python/py-cmd.exp: input new subcommand - end
+PASS: gdb.python/py-cmd.exp: call newsubcmd
+PASS: gdb.python/py-cmd.exp: input command to throw error - python
+PASS: gdb.python/py-cmd.exp: input command to throw error - class test_error_cmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input command to throw error -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input command to throw error -     super (test_error_cmd, self).__init__ ("test_error_cmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input command to throw error -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input command to throw error -     raise gdb.GdbError ('you lose!')
+PASS: gdb.python/py-cmd.exp: input command to throw error - test_error_cmd ()
+PASS: gdb.python/py-cmd.exp: input command to throw error - end
+PASS: gdb.python/py-cmd.exp: call error command
+PASS: gdb.python/py-cmd.exp: string_to_argv ("1 2 3")
+PASS: gdb.python/py-cmd.exp: string_to_argv ("'1 2' 3")
+PASS: gdb.python/py-cmd.exp: string_to_argv ('"1 2" 3')
+PASS: gdb.python/py-cmd.exp: string_to_argv ('1\ 2 3')
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - python
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - class test_help (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -   """Docstring"""
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -     super (test_help, self).__init__ ("test_help", gdb.COMMAND_USER)
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -     print ("test_cmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - test_help ()
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - end
+PASS: gdb.python/py-cmd.exp: call simple user-defined command
+PASS: gdb.python/py-cmd.exp: see user-defined command in `help user-defined`
+Running ./gdb.python/py-error.exp ...
+PASS: gdb.python/py-error.exp: set host-charset IBM1047
+PASS: gdb.python/py-error.exp: main reached
+PASS: gdb.python/py-error.exp: no delayed error
+Running ./gdb.python/py-events.exp ...
+Running ./gdb.python/py-evsignal.exp ...
+KFAIL: gdb.python/py-evsignal.exp: Signal Thread 3 (PRMS: python/12966)
+Running ./gdb.python/py-evthreads.exp ...
+KFAIL: gdb.python/py-evthreads.exp: Run to breakpoint 1 (PRMS: python/12966)
+Running ./gdb.python/py-explore-cc.exp ...
+PASS: gdb.python/py-explore-cc.exp: continue to breakpoint: Break here
+PASS: gdb.python/py-explore-cc.exp: explore A
+PASS: gdb.python/py-explore-cc.exp: explore a
+PASS: gdb.python/py-explore-cc.exp: explore int_ref
+PASS: gdb.python/py-explore-cc.exp: explore int_ptr_ref
+PASS: gdb.python/py-explore-cc.exp: explore_int_ptr_ref_as_single_value_pointer
+PASS: gdb.python/py-explore-cc.exp: explore b
+PASS: gdb.python/py-explore-cc.exp: explore_base_class_A
+PASS: gdb.python/py-explore-cc.exp: return_to_b_from_A
+PASS: gdb.python/py-explore-cc.exp: explore_field_i_of_b
+PASS: gdb.python/py-explore-cc.exp: return_to_b_from_i
+PASS: gdb.python/py-explore-cc.exp: explore_field_c_of_b
+PASS: gdb.python/py-explore-cc.exp: return_to_b_from_i
+PASS: gdb.python/py-explore-cc.exp: return_to_gdb_prompt_from_b
+PASS: gdb.python/py-explore-cc.exp: explore B
+PASS: gdb.python/py-explore-cc.exp: explore_base_class_A
+PASS: gdb.python/py-explore-cc.exp: return_to_B
+PASS: gdb.python/py-explore-cc.exp: explore_field_i_of_B
+PASS: gdb.python/py-explore-cc.exp: return_to_B_from_i
+PASS: gdb.python/py-explore-cc.exp: explore_field_c_of_B
+PASS: gdb.python/py-explore-cc.exp: return_to_B_from_c
+PASS: gdb.python/py-explore-cc.exp: return_to_gdb_prompt_from_B
+Running ./gdb.python/py-explore.exp ...
+PASS: gdb.python/py-explore.exp: continue to breakpoint: Break here
+PASS: gdb.python/py-explore.exp: explore i
+PASS: gdb.python/py-explore.exp: explore ss
+PASS: gdb.python/py-explore.exp: explore *ss_ptr
+PASS: gdb.python/py-explore.exp: explore ss_t
+PASS: gdb.python/py-explore.exp: explore ss_ptr
+PASS: gdb.python/py-explore.exp: explore ss_ptr as single value pointer
+PASS: gdb.python/py-explore.exp: explore darray_ref
+PASS: gdb.python/py-explore.exp: no_to_explore_as_pointer
+PASS: gdb.python/py-explore.exp: explore_as_array
+PASS: gdb.python/py-explore.exp: explore_as_array_index_2
+PASS: gdb.python/py-explore.exp: end explore_as_array_index_2
+PASS: gdb.python/py-explore.exp: end explore_as_array
+PASS: gdb.python/py-explore.exp: explore su
+PASS: gdb.python/py-explore.exp: explore su.d
+PASS: gdb.python/py-explore.exp: end su.d exploration
+PASS: gdb.python/py-explore.exp: end su exploration
+PASS: gdb.python/py-explore.exp: explore cs
+PASS: gdb.python/py-explore.exp: explore cs.s
+PASS: gdb.python/py-explore.exp: end cs.s exploration
+PASS: gdb.python/py-explore.exp: explore cs.u
+PASS: gdb.python/py-explore.exp: end cs.u exploration
+PASS: gdb.python/py-explore.exp: end cs exploration
+PASS: gdb.python/py-explore.exp: explore cu
+PASS: gdb.python/py-explore.exp: explore cu.sa
+PASS: gdb.python/py-explore.exp: explore cu.sa[0]
+PASS: gdb.python/py-explore.exp: end cu.sa[0] exploration
+PASS: gdb.python/py-explore.exp: end cu.sa exploration
+PASS: gdb.python/py-explore.exp: end cu exploration
+PASS: gdb.python/py-explore.exp: explore int
+PASS: gdb.python/py-explore.exp: explore struct SimpleStruct
+PASS: gdb.python/py-explore.exp: explore type struct SimpleStruct feild 0
+PASS: gdb.python/py-explore.exp: return to struct SimpleStruct from field 0
+PASS: gdb.python/py-explore.exp: explore type struct SimpleStruct feild 1
+PASS: gdb.python/py-explore.exp: return to struct SimpleStruct from field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from struct SimpleStruct
+PASS: gdb.python/py-explore.exp: explore union SimpleUnion
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 0
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 0
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 1
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 1
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 2
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 2
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 3
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 3
+PASS: gdb.python/py-explore.exp: return to GDB prompt from union SimpleUnion
+PASS: gdb.python/py-explore.exp: explore SS
+PASS: gdb.python/py-explore.exp: explore type SS feild 0
+PASS: gdb.python/py-explore.exp: return to SS from field 0
+PASS: gdb.python/py-explore.exp: explore type SS feild 1
+PASS: gdb.python/py-explore.exp: return to SS field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from SS
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct field 0
+PASS: gdb.python/py-explore.exp: return to ComplexStruct from field 0
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct field 1
+PASS: gdb.python/py-explore.exp: return to ComplexStruct from field 1
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct field 2
+PASS: gdb.python/py-explore.exp: return to ComplexStruct from field 2
+PASS: gdb.python/py-explore.exp: return to GDB prompt from ComplexStruct type exploration
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 0
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 0
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 1
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from ComplexUnion type exploration
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 0
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 0
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 1
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from ComplexUnion type exploration
+Running ./gdb.python/py-finish-breakpoint2.exp ...
+PASS: gdb.python/py-finish-breakpoint2.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint2.exp: run to exception 1
+PASS: gdb.python/py-finish-breakpoint2.exp: check BP count
+PASS: gdb.python/py-finish-breakpoint2.exp: set FinishBP after the exception
+PASS: gdb.python/py-finish-breakpoint2.exp: check FinishBreakpoint in catch()
+PASS: gdb.python/py-finish-breakpoint2.exp: check finish BP removal
+PASS: gdb.python/py-finish-breakpoint2.exp: continue to second exception
+PASS: gdb.python/py-finish-breakpoint2.exp: set FinishBP after the exception
+PASS: gdb.python/py-finish-breakpoint2.exp: FinishBreakpoint with exception thrown not caught
+Running ./gdb.python/py-finish-breakpoint.exp ...
+PASS: gdb.python/py-finish-breakpoint.exp: disable confirmation
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: continue to the function to finish
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBreakpoint with default frame value
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBreakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: check return_value at init
+PASS: gdb.python/py-finish-breakpoint.exp: check MyFinishBreakpoint hit
+PASS: gdb.python/py-finish-breakpoint.exp: check return_value
+PASS: gdb.python/py-finish-breakpoint.exp: check finishBP on default frame has been hit
+PASS: gdb.python/py-finish-breakpoint.exp: ensure that finish bp is invalid afer normal hit
+PASS: gdb.python/py-finish-breakpoint.exp: return to main()
+PASS: gdb.python/py-finish-breakpoint.exp: check FinishBP not allowed in main
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+FAIL: gdb.python/py-finish-breakpoint.exp: ensure that shared lib has no debug info
+FAIL: gdb.python/py-finish-breakpoint.exp: setting breakpoint at do_nothing
+FAIL: gdb.python/py-finish-breakpoint.exp: continue to do_nothing
+PASS: gdb.python/py-finish-breakpoint.exp: set finish breakpoint
+FAIL: gdb.python/py-finish-breakpoint.exp: check FinishBreakpoint hit
+PASS: gdb.python/py-finish-breakpoint.exp: check return value without debug symbol
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: set finish breakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: set BP after the jump
+PASS: gdb.python/py-finish-breakpoint.exp: check FinishBP out of scope notification
+PASS: gdb.python/py-finish-breakpoint.exp: ensure that finish bp is invalid afer out of scope notification
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: set a conditional BP
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBP in a breakpoint condition
+PASS: gdb.python/py-finish-breakpoint.exp: don't allow FinishBreakpoint on dummy frames
+PASS: gdb.python/py-finish-breakpoint.exp: check stopped location
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: set conditional BP
+PASS: gdb.python/py-finish-breakpoint.exp: set BP in condition
+PASS: gdb.python/py-finish-breakpoint.exp: stop in condition function
+PASS: gdb.python/py-finish-breakpoint.exp: finish condition evaluation
+PASS: gdb.python/py-finish-breakpoint.exp: stop at conditional breakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: check stopped location
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: prepare TestExplicitBreakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: don't allow FinishBreakpoint on dummy frames
+PASS: gdb.python/py-finish-breakpoint.exp: prepare TestExplicitBreakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: FinishBP stop at during explicit function call
+PASS: gdb.python/py-finish-breakpoint.exp: switch to exit() test
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBP after the exit()
+PASS: gdb.python/py-finish-breakpoint.exp: catch out of scope after exit
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBP after the exec
+PASS: gdb.python/py-finish-breakpoint.exp: catch exec
+PASS: gdb.python/py-finish-breakpoint.exp: catch out of scope after exec
+Running ./gdb.python/py-frame.exp ...
+PASS: gdb.python/py-frame.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-frame.exp: test Frame.architecture()
+PASS: gdb.python/py-frame.exp: test i
+PASS: gdb.python/py-frame.exp: test f
+PASS: gdb.python/py-frame.exp: test b
+PASS: gdb.python/py-frame.exp: test i = 1.1
+PASS: gdb.python/py-frame.exp: test double i
+PASS: gdb.python/py-frame.exp: test f = 2.2
+PASS: gdb.python/py-frame.exp: test double f
+PASS: gdb.python/py-frame.exp: test i = 99
+PASS: gdb.python/py-frame.exp: test int i
+PASS: gdb.python/py-frame.exp: continue to breakpoint: breakpoint at f2
+PASS: gdb.python/py-frame.exp: selected frame -vs- newest frame
+PASS: gdb.python/py-frame.exp: newest frame -vs- newest frame
+PASS: gdb.python/py-frame.exp: test equality comparison (false)
+PASS: gdb.python/py-frame.exp: test equality comparison (true)
+PASS: gdb.python/py-frame.exp: test inequality comparison (true)
+PASS: gdb.python/py-frame.exp: test inequality comparison (false)
+PASS: gdb.python/py-frame.exp: test Frame.is_valid
+PASS: gdb.python/py-frame.exp: test Frame.name
+PASS: gdb.python/py-frame.exp: test Frame.type
+PASS: gdb.python/py-frame.exp: test Frame.type
+PASS: gdb.python/py-frame.exp: test gdb.frame_stop_reason_string
+PASS: gdb.python/py-frame.exp: test Frame.pc
+PASS: gdb.python/py-frame.exp: test Frame.older
+PASS: gdb.python/py-frame.exp: test Frame.newer
+PASS: gdb.python/py-frame.exp: test Frame.read_var - error
+PASS: gdb.python/py-frame.exp: test Frame.read_var - success
+PASS: gdb.python/py-frame.exp: test gdb.selected_frame
+Running ./gdb.python/py-frame-inline.exp ...
+PASS: gdb.python/py-frame-inline.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-frame-inline.exp: info frame
+PASS: gdb.python/py-frame-inline.exp: up
+PASS: gdb.python/py-frame-inline.exp: python print (gdb.selected_frame().read_var('l'))
+Running ./gdb.python/py-function.exp ...
+PASS: gdb.python/py-function.exp: input convenience function - python
+PASS: gdb.python/py-function.exp: input convenience function - class test_func (gdb.Function):
+PASS: gdb.python/py-function.exp: input convenience function -   def __init__ (self):
+PASS: gdb.python/py-function.exp: input convenience function -     super (test_func, self).__init__ ("test_func")
+PASS: gdb.python/py-function.exp: input convenience function -   def invoke (self, arg):
+PASS: gdb.python/py-function.exp: input convenience function -     return "test_func output, arg = %s" % arg.string ()
+PASS: gdb.python/py-function.exp: input convenience function - test_func ()
+PASS: gdb.python/py-function.exp: input convenience function - end
+PASS: gdb.python/py-function.exp: call function
+PASS: gdb.python/py-function.exp: input value-returning convenience function - python
+PASS: gdb.python/py-function.exp: input value-returning convenience function - class Double (gdb.Function):
+PASS: gdb.python/py-function.exp: input value-returning convenience function -   def __init__ (self):
+PASS: gdb.python/py-function.exp: input value-returning convenience function -     super (Double, self).__init__ ("double")
+PASS: gdb.python/py-function.exp: input value-returning convenience function -   def invoke (self, n):
+PASS: gdb.python/py-function.exp: input value-returning convenience function -     return n*2
+PASS: gdb.python/py-function.exp: input value-returning convenience function - Double ()
+PASS: gdb.python/py-function.exp: input value-returning convenience function - end
+PASS: gdb.python/py-function.exp: call value-returning function
+PASS: gdb.python/py-function.exp: input int-returning function - python
+PASS: gdb.python/py-function.exp: input int-returning function - class Yes(gdb.Function):
+PASS: gdb.python/py-function.exp: input int-returning function -     def __init__(self):
+PASS: gdb.python/py-function.exp: input int-returning function -         gdb.Function.__init__(self, 'yes')
+PASS: gdb.python/py-function.exp: input int-returning function -     def invoke(self):
+PASS: gdb.python/py-function.exp: input int-returning function -         return 1
+PASS: gdb.python/py-function.exp: input int-returning function - Yes ()
+PASS: gdb.python/py-function.exp: input int-returning function - end
+PASS: gdb.python/py-function.exp: call yes with &&
+PASS: gdb.python/py-function.exp: call yes with ||
+PASS: gdb.python/py-function.exp: Test GDBError - python
+PASS: gdb.python/py-function.exp: Test GDBError - class GDBError(gdb.Function):
+PASS: gdb.python/py-function.exp: Test GDBError -     def __init__(self):
+PASS: gdb.python/py-function.exp: Test GDBError -         gdb.Function.__init__(self, 'gdberror')
+PASS: gdb.python/py-function.exp: Test GDBError -     def invoke(self):
+PASS: gdb.python/py-function.exp: Test GDBError -         raise gdb.GdbError("This is a GdbError")
+PASS: gdb.python/py-function.exp: Test GDBError - GDBError ()
+PASS: gdb.python/py-function.exp: Test GDBError - end
+PASS: gdb.python/py-function.exp: Test GdbError.  There should not be a stack trace
+PASS: gdb.python/py-function.exp: Test Normal Error - python
+PASS: gdb.python/py-function.exp: Test Normal Error - class NormalError(gdb.Function):
+PASS: gdb.python/py-function.exp: Test Normal Error -     def __init__(self):
+PASS: gdb.python/py-function.exp: Test Normal Error -         gdb.Function.__init__(self, 'normalerror')
+PASS: gdb.python/py-function.exp: Test Normal Error -     def invoke(self):
+PASS: gdb.python/py-function.exp: Test Normal Error -         raise RuntimeError("This is a Normal Error")
+PASS: gdb.python/py-function.exp: Test Normal Error - NormalError ()
+PASS: gdb.python/py-function.exp: Test Normal Error - end
+PASS: gdb.python/py-function.exp: set python print-stack full
+PASS: gdb.python/py-function.exp: Test a Runtime error.  There should be a stack trace.
+PASS: gdb.python/py-function.exp: input command-calling function - python
+PASS: gdb.python/py-function.exp: input command-calling function - class CallCommand(gdb.Function):
+PASS: gdb.python/py-function.exp: input command-calling function -     def __init__(self):
+PASS: gdb.python/py-function.exp: input command-calling function -         gdb.Function.__init__(self, 'call_command')
+PASS: gdb.python/py-function.exp: input command-calling function -     def invoke(self):
+PASS: gdb.python/py-function.exp: input command-calling function -         return gdb.execute('print 1', to_string=True)
+PASS: gdb.python/py-function.exp: input command-calling function - CallCommand ()
+PASS: gdb.python/py-function.exp: input command-calling function - end
+PASS: gdb.python/py-function.exp: Setting a value from a function which executes a command.
+PASS: gdb.python/py-function.exp: Setting a value from a function which executes a command, again.
+Running ./gdb.python/py-inferior.exp ...
+PASS: gdb.python/py-inferior.exp: successfully compiled posix threads test case
+PASS: gdb.python/py-inferior.exp: get inferiors list
+PASS: gdb.python/py-inferior.exp: verify inferiors list
+PASS: gdb.python/py-inferior.exp: test equality comparison (true)
+PASS: gdb.python/py-inferior.exp: test Inferior.num
+PASS: gdb.python/py-inferior.exp: test Inferior.pid
+PASS: gdb.python/py-inferior.exp: test Inferior.was_attached
+PASS: gdb.python/py-inferior.exp: test Inferior.threads
+PASS: gdb.python/py-inferior.exp: continue to breakpoint: cont to check_threads
+PASS: gdb.python/py-inferior.exp: test Inferior.threads 2
+PASS: gdb.python/py-inferior.exp: continue to breakpoint: cont to Break here.
+PASS: gdb.python/py-inferior.exp: read str contents
+PASS: gdb.python/py-inferior.exp: write str
+PASS: gdb.python/py-inferior.exp: ensure str was changed in the inferior
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: find string pattern
+PASS: gdb.python/py-inferior.exp: pattern not found at end of range
+PASS: gdb.python/py-inferior.exp: pattern found at end of range
+PASS: gdb.python/py-inferior.exp: py from struct import *
+PASS: gdb.python/py-inferior.exp: set int16_search_buf[10] = 0x1234
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('int16_search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<H',0x1234)
+PASS: gdb.python/py-inferior.exp: find 16-bit pattern, with value pattern
+PASS: gdb.python/py-inferior.exp: set int32_search_buf[10] = 0x12345678
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('int32_search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<I',0x12345678)
+PASS: gdb.python/py-inferior.exp: find 32-bit pattern, with python pattern
+PASS: gdb.python/py-inferior.exp: set int64_search_buf[10] = 0xfedcba9876543210LL
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('int64_search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<Q', 0xfedcba9876543210)
+PASS: gdb.python/py-inferior.exp: find 64-bit pattern, with value pattern
+PASS: gdb.python/py-inferior.exp: set *(int8_t*) &search_buf[10] = 0x62
+PASS: gdb.python/py-inferior.exp: set *(int16_t*) &search_buf[11] = 0x6363
+PASS: gdb.python/py-inferior.exp: set *(int32_t*) &search_buf[13] = 0x64646464
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf[0].address
+PASS: gdb.python/py-inferior.exp: py pattern1 = pack('B', 0x62)
+PASS: gdb.python/py-inferior.exp: py pattern2 = pack('<H', 0x6363)
+PASS: gdb.python/py-inferior.exp: py pattern3 = pack('<I', 0x64646464)
+PASS: gdb.python/py-inferior.exp: find mixed-sized pattern
+PASS: gdb.python/py-inferior.exp: find mixed-sized pattern
+PASS: gdb.python/py-inferior.exp: find mixed-sized pattern
+PASS: gdb.python/py-inferior.exp: set *(int32_t*) &search_buf[0*16000+100] = 0x12345678
+PASS: gdb.python/py-inferior.exp: set *(int32_t*) &search_buf[1*16000+100] = 0x12345678
+PASS: gdb.python/py-inferior.exp: py start_addr = gdb.selected_frame ().read_var ('search_buf')
+PASS: gdb.python/py-inferior.exp: py end_addr = start_addr + gdb.selected_frame ().read_var ('search_buf_size')
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<I', 0x12345678)
+PASS: gdb.python/py-inferior.exp: py first = gdb.inferiors()[0].search_memory (start_addr,end_addr - start_addr, pattern)
+PASS: gdb.python/py-inferior.exp: search spanning large range 1st result
+PASS: gdb.python/py-inferior.exp: py start_addr = first + 1
+PASS: gdb.python/py-inferior.exp: py second = gdb.inferiors()[0].search_memory (start_addr, end_addr - start_addr, pattern)
+PASS: gdb.python/py-inferior.exp: search spanning large range 2nd result
+PASS: gdb.python/py-inferior.exp: py start_addr = second + 1
+PASS: gdb.python/py-inferior.exp: py third = gdb.inferiors()[0].search_memory (start_addr, end_addr - start_addr, pattern)
+PASS: gdb.python/py-inferior.exp: search spanning large range 3rd result
+PASS: gdb.python/py-inferior.exp: get initial list
+PASS: gdb.python/py-inferior.exp: Get inferior list length
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: add empty inferior 2
+PASS: gdb.python/py-inferior.exp: get new list
+PASS: gdb.python/py-inferior.exp: Get inferior list length
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: remove-inferiors 3
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: Switch to first inferior
+PASS: gdb.python/py-inferior.exp: First inferior selected
+PASS: gdb.python/py-inferior.exp: Create new inferior
+PASS: gdb.python/py-inferior.exp: Switch to third inferior
+PASS: gdb.python/py-inferior.exp: Third inferior selected
+PASS: gdb.python/py-inferior.exp: Switch to first inferior
+PASS: gdb.python/py-inferior.exp: Remove second inferior
+Running ./gdb.python/py-infthread.exp ...
+PASS: gdb.python/py-infthread.exp: test gdb.selected_thread
+PASS: gdb.python/py-infthread.exp: verify InferiorThread object
+PASS: gdb.python/py-infthread.exp: test Inferior.num
+PASS: gdb.python/py-infthread.exp: test InferiorThread.ptid
+PASS: gdb.python/py-infthread.exp: get supplied name of current thread
+PASS: gdb.python/py-infthread.exp: set name of current thread
+PASS: gdb.python/py-infthread.exp: check name of current thread
+PASS: gdb.python/py-infthread.exp: reset name of current thread
+PASS: gdb.python/py-infthread.exp: check name of current thread again
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_stopped
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_running
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_exited
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_valid
+PASS: gdb.python/py-infthread.exp: kill inferior 1
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_valid
+Running ./gdb.python/py-mi.exp ...
+PASS: gdb.python/py-mi.exp: breakpoint at main
+PASS: gdb.python/py-mi.exp: mi runto main
+PASS: gdb.python/py-mi.exp: run to 328 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create container varobj, no pretty-printing
+PASS: gdb.python/py-mi.exp: examine container children=0, no pretty-printing
+PASS: gdb.python/py-mi.exp: delete varobj
+PASS: gdb.python/py-mi.exp: create nscont varobj, no pretty-printing
+PASS: gdb.python/py-mi.exp: examine nscont children=0, no pretty-printing
+PASS: gdb.python/py-mi.exp: delete varobj
+PASS: gdb.python/py-mi.exp: create string_1 varobj
+PASS: gdb.python/py-mi.exp: create estring varobj
+PASS: gdb.python/py-mi.exp: assign string_1 from string_2
+PASS: gdb.python/py-mi.exp: update string varobj after assignment
+PASS: gdb.python/py-mi.exp: create container varobj
+PASS: gdb.python/py-mi.exp: examine container children=0
+PASS: gdb.python/py-mi.exp: next over update 1
+PASS: gdb.python/py-mi.exp: varobj update 1
+PASS: gdb.python/py-mi.exp: next over update 2
+PASS: gdb.python/py-mi.exp: varobj update 2
+PASS: gdb.python/py-mi.exp: clear visualizer
+PASS: gdb.python/py-mi.exp: varobj update after clearing
+PASS: gdb.python/py-mi.exp: choose default visualizer
+PASS: gdb.python/py-mi.exp: varobj update after choosing default
+PASS: gdb.python/py-mi.exp: choose visualizer using expression
+PASS: gdb.python/py-mi.exp: varobj update after choosing via expression
+PASS: gdb.python/py-mi.exp: list varobj children after selecting child range
+PASS: gdb.python/py-mi.exp: list varobj children after resetting child range
+PASS: gdb.python/py-mi.exp: next over update 3
+PASS: gdb.python/py-mi.exp: set update range
+PASS: gdb.python/py-mi.exp: list children after setting update range
+PASS: gdb.python/py-mi.exp: list selected children after setting range
+PASS: gdb.python/py-mi.exp: list children after listing selected range
+PASS: gdb.python/py-mi.exp: next over update 4
+PASS: gdb.python/py-mi.exp: update after next with restricted range
+PASS: gdb.python/py-mi.exp: set update range with non-zero start
+PASS: gdb.python/py-mi.exp: update varobj with change outside selected range
+PASS: gdb.python/py-mi.exp: next over update 5
+PASS: gdb.python/py-mi.exp: create second container varobj
+PASS: gdb.python/py-mi.exp: update varobj, no children requested
+PASS: gdb.python/py-mi.exp: next over update 6
+PASS: gdb.python/py-mi.exp: update varobj 2, no children requested
+PASS: gdb.python/py-mi.exp: run to 131 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create outer varobj
+PASS: gdb.python/py-mi.exp: list children of outer
+PASS: gdb.python/py-mi.exp: list children of outer.s
+PASS: gdb.python/py-mi.exp: next over outer update
+PASS: gdb.python/py-mi.exp: update after updating element of outer
+PASS: gdb.python/py-mi.exp: run to 222 (set breakpoint)
+PASS: gdb.python/py-mi.exp: update after type change
+PASS: gdb.python/py-mi.exp: run to 351 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create nstype varobj
+PASS: gdb.python/py-mi.exp: list children after setting update range
+PASS: gdb.python/py-mi.exp: clear visualizer
+PASS: gdb.python/py-mi.exp: varobj update after clearing
+PASS: gdb.python/py-mi.exp: choose default visualizer
+PASS: gdb.python/py-mi.exp: create nstype2 varobj
+PASS: gdb.python/py-mi.exp: list children after setting exception flag
+PASS: gdb.python/py-mi.exp: create me varobj
+PASS: gdb.python/py-mi.exp: evaluate me varobj
+PASS: gdb.python/py-mi.exp: printer whose children are returned as a list
+PASS: gdb.python/py-mi.exp: run to 254 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create varobj for c
+PASS: gdb.python/py-mi.exp: choose array visualizer for c
+PASS: gdb.python/py-mi.exp: list children of c
+PASS: gdb.python/py-mi.exp: next over change of array element
+PASS: gdb.python/py-mi.exp: update varobj after element change
+PASS: gdb.python/py-mi.exp: breakpoint at main
+PASS: gdb.python/py-mi.exp: mi runto main
+PASS: gdb.python/py-mi.exp: run to 351 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create fake varobj
+PASS: gdb.python/py-mi.exp: list children of fake
+PASS: gdb.python/py-mi.exp: list children fake.private
+PASS: gdb.python/py-mi.exp: Install visualizer on a cplus_fake_child
+Running ./gdb.python/py-objfile.exp ...
+PASS: gdb.python/py-objfile.exp: Find a symbol in objfile
+PASS: gdb.python/py-objfile.exp: Get backing object file
+PASS: gdb.python/py-objfile.exp: Get objfile validity
+PASS: gdb.python/py-objfile.exp: Get objfile validity
+PASS: gdb.python/py-objfile.exp: Get objfile validity after unload
+Running ./gdb.python/py-objfile-script.exp ...
+PASS: gdb.python/py-objfile-script.exp: set auto-load safe-path
+PASS: gdb.python/py-objfile-script.exp: info auto-load python-scripts
+PASS: gdb.python/py-objfile-script.exp: b 38
+PASS: gdb.python/py-objfile-script.exp: continue
+PASS: gdb.python/py-objfile-script.exp: print ss
+Running ./gdb.python/py-parameter.exp ...
+PASS: gdb.python/py-parameter.exp: python print (gdb.parameter ('directories'))
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    """When enabled, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    show_doc = "Show the state of the boolean test-param"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    set_doc = "Set the state of the boolean test-param"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "The state of the Test Parameter is " + pvalue
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       val = "on"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       if (self.value == False):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -          val = "off"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "Test Parameter has been set to " + val
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_param = TestParam ('print test-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - python
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - class TestEnumParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    """When set, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    show_doc = "Show the state of the enum"
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    set_doc = "Set the state of the enum"
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       return "The state of the enum is " + pvalue
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       return "The state of the enum has been set to " + self.value
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       super (TestEnumParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_ENUM, ["one", "two"])
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       self.value = "one"
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - test_enum_param = TestEnumParam ('print test-enum-param')
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - end
+PASS: gdb.python/py-parameter.exp: Test enum parameter value
+PASS: gdb.python/py-parameter.exp: Show parameter is initial value
+PASS: gdb.python/py-parameter.exp: Set enum to two
+PASS: gdb.python/py-parameter.exp: Show parameter is new value
+PASS: gdb.python/py-parameter.exp: Test enum parameter value
+PASS: gdb.python/py-parameter.exp: Set invalid enum parameter
+PASS: gdb.python/py-parameter.exp: file gdb parameter - python
+PASS: gdb.python/py-parameter.exp: file gdb parameter - class TestFileParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    """When set, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    show_doc = "Show the name of the file"
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    set_doc = "Set the name of the file"
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       return "The name of the file is " + pvalue
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       return "The name of the file has been changed to " + self.value
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       super (TestFileParam, self).__init__ (name, gdb.COMMAND_FILES, gdb.PARAM_FILENAME)
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       self.value = "foo.txt"
+PASS: gdb.python/py-parameter.exp: file gdb parameter - test_file_param = TestFileParam ('test-file-param')
+PASS: gdb.python/py-parameter.exp: file gdb parameter - end
+PASS: gdb.python/py-parameter.exp: Test file parameter value
+PASS: gdb.python/py-parameter.exp: Show initial file value
+PASS: gdb.python/py-parameter.exp: Set new file parameter
+PASS: gdb.python/py-parameter.exp: Show new file value
+PASS: gdb.python/py-parameter.exp: Test new file parameter value
+PASS: gdb.python/py-parameter.exp: set test-file-param
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestUndocParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "The state of the Test Parameter is " + pvalue
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       val = "on"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       if (self.value == False):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -          val = "off"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "Test Parameter has been set to " + val
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestUndocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_undoc_param = TestUndocParam ('print test-undoc-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestNodocParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestNodocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_nodoc_param = TestNodocParam ('print test-nodoc-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    """When enabled, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    show_doc = "State of the Test Parameter"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    set_doc = "Set the state of the Test Parameter"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_param = TestParam ('print test-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+Running ./gdb.python/py-pp-maint.exp ...
+PASS: gdb.python/py-pp-maint.exp: b 77
+PASS: gdb.python/py-pp-maint.exp: continue
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer global .*function
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer .* pp-test
+PASS: gdb.python/py-pp-maint.exp: print flt enabled #1
+PASS: gdb.python/py-pp-maint.exp: print ss enabled #1
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer global
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer global lookup_function_lookup_test
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer global pp-test;.*
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer global .*function
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer .* pp-test
+PASS: gdb.python/py-pp-maint.exp: print flt disabled
+PASS: gdb.python/py-pp-maint.exp: print ss disabled
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global lookup_function_lookup_test
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test;.*ss.*
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test;.*s.*
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test;.*
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer
+PASS: gdb.python/py-pp-maint.exp: print flt re-enabled
+PASS: gdb.python/py-pp-maint.exp: print ss re-enabled
+PASS: gdb.python/py-pp-maint.exp: print FLAG_1
+PASS: gdb.python/py-pp-maint.exp: print FLAG_1 | FLAG_3
+PASS: gdb.python/py-pp-maint.exp: print FLAG_1 | 8
+Running ./gdb.python/py-prettyprint.exp ...
+PASS: gdb.python/py-prettyprint.exp: set print pretty on
+PASS: gdb.python/py-prettyprint.exp: b 351
+PASS: gdb.python/py-prettyprint.exp: continue
+PASS: gdb.python/py-prettyprint.exp: python exec (open ('py-prettyprint.py').read ())
+PASS: gdb.python/py-prettyprint.exp: print ss
+PASS: gdb.python/py-prettyprint.exp: print ssa[1]
+PASS: gdb.python/py-prettyprint.exp: print ssa
+PASS: gdb.python/py-prettyprint.exp: print arraystruct
+PASS: gdb.python/py-prettyprint.exp: print ns2
+PASS: gdb.python/py-prettyprint.exp: print x
+PASS: gdb.python/py-prettyprint.exp: print cstring
+PASS: gdb.python/py-prettyprint.exp: print estring
+PASS: gdb.python/py-prettyprint.exp: python pp_ls_encoding = 'UTF-8'
+PASS: gdb.python/py-prettyprint.exp: print estring2
+PASS: gdb.python/py-prettyprint.exp: set python print-stack full
+PASS: gdb.python/py-prettyprint.exp: print hint_error
+PASS: gdb.python/py-prettyprint.exp: print c
+PASS: gdb.python/py-prettyprint.exp: print nstype
+PASS: gdb.python/py-prettyprint.exp: set print pretty off
+PASS: gdb.python/py-prettyprint.exp: print nstype on one line
+FAIL: gdb.python/py-prettyprint.exp: setting breakpoint at exit
+PASS: gdb.python/py-prettyprint.exp: set print pretty on
+PASS: gdb.python/py-prettyprint.exp: b 351
+PASS: gdb.python/py-prettyprint.exp: continue
+PASS: gdb.python/py-prettyprint.exp: python exec (open ('py-prettyprint.py').read ())
+PASS: gdb.python/py-prettyprint.exp: print ss
+PASS: gdb.python/py-prettyprint.exp: print ssa[1]
+PASS: gdb.python/py-prettyprint.exp: print ssa
+PASS: gdb.python/py-prettyprint.exp: print arraystruct
+PASS: gdb.python/py-prettyprint.exp: print cps
+PASS: gdb.python/py-prettyprint.exp: print cpss
+PASS: gdb.python/py-prettyprint.exp: print cpssa[0]
+PASS: gdb.python/py-prettyprint.exp: print cpssa[1]
+PASS: gdb.python/py-prettyprint.exp: print cpssa
+PASS: gdb.python/py-prettyprint.exp: print sss
+PASS: gdb.python/py-prettyprint.exp: print ref
+PASS: gdb.python/py-prettyprint.exp: print derived
+PASS: gdb.python/py-prettyprint.exp: print ns
+PASS: gdb.python/py-prettyprint.exp:
+PASS: gdb.python/py-prettyprint.exp: print ns
+PASS: gdb.python/py-prettyprint.exp:
+PASS: gdb.python/py-prettyprint.exp: print ns
+PASS: gdb.python/py-prettyprint.exp:
+PASS: gdb.python/py-prettyprint.exp: print ns2
+PASS: gdb.python/py-prettyprint.exp: print x
+PASS: gdb.python/py-prettyprint.exp: print cstring
+PASS: gdb.python/py-prettyprint.exp: print estring
+PASS: gdb.python/py-prettyprint.exp: python pp_ls_encoding = 'UTF-8'
+PASS: gdb.python/py-prettyprint.exp: print estring2
+PASS: gdb.python/py-prettyprint.exp: set python print-stack full
+PASS: gdb.python/py-prettyprint.exp: print hint_error
+PASS: gdb.python/py-prettyprint.exp: print c
+PASS: gdb.python/py-prettyprint.exp: print nstype
+PASS: gdb.python/py-prettyprint.exp: set print pretty off
+PASS: gdb.python/py-prettyprint.exp: print nstype on one line
+FAIL: gdb.python/py-prettyprint.exp: setting breakpoint at exit
+PASS: gdb.python/py-prettyprint.exp: python exec (open ('py-prettyprint.py').read ())
+PASS: gdb.python/py-prettyprint.exp: continue to breakpoint: eval-break
+PASS: gdb.python/py-prettyprint.exp: info locals
+PASS: gdb.python/py-prettyprint.exp: b 351
+PASS: gdb.python/py-prettyprint.exp: continue
+PASS: gdb.python/py-prettyprint.exp: print ss enabled #1
+PASS: gdb.python/py-prettyprint.exp: python disable_lookup_function ()
+PASS: gdb.python/py-prettyprint.exp: print ss disabled
+PASS: gdb.python/py-prettyprint.exp: python enable_lookup_function ()
+PASS: gdb.python/py-prettyprint.exp: print ss enabled #2
+Running ./gdb.python/py-progspace.exp ...
+PASS: gdb.python/py-progspace.exp: current progspace filename (None)
+PASS: gdb.python/py-progspace.exp: python print (gdb.progspaces())
+PASS: gdb.python/py-progspace.exp: current progspace filename (py-progspace)
+Running ./gdb.python/py-prompt.exp ...
+Running ./gdb.python/py-section-script.exp ...
+PASS: gdb.python/py-section-script.exp: set auto-load safe-path
+PASS: gdb.python/py-section-script.exp: info auto-load python-scripts
+PASS: gdb.python/py-section-script.exp: info auto-load python-scripts py-section-script
+PASS: gdb.python/py-section-script.exp: info auto-load python-scripts no-script-matches-this
+PASS: gdb.python/py-section-script.exp: b 51
+PASS: gdb.python/py-section-script.exp: continue
+PASS: gdb.python/py-section-script.exp: print ss
+Running ./gdb.python/py-shared.exp ...
+PASS: gdb.python/py-shared.exp: func1 address
+FAIL: gdb.python/py-shared.exp: Aquire func1 address
+FAIL: gdb.python/py-shared.exp: test func1 solib location
+PASS: gdb.python/py-shared.exp: main address
+PASS: gdb.python/py-shared.exp: Aquire main address
+PASS: gdb.python/py-shared.exp: test main solib location
+Running ./gdb.python/py-strfns.exp ...
+PASS: gdb.python/py-strfns.exp: p $_streq (str1, str2)
+PASS: gdb.python/py-strfns.exp: p $_streq (str1, str3)
+PASS: gdb.python/py-strfns.exp: p $_strlen (str1)
+PASS: gdb.python/py-strfns.exp: p $_strlen (buf1)
+PASS: gdb.python/py-strfns.exp: p $_memeq (buf1, buf2, 4)
+PASS: gdb.python/py-strfns.exp: p $_memeq (buf1, buf3, 4)
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "Hello")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "Help")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "^Hello")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "^Hello.$")
+PASS: gdb.python/py-strfns.exp: condition $bpnum $_streq (arg, "Goodbye.")
+PASS: gdb.python/py-strfns.exp: continue to breakpoint: Break func here.
+PASS: gdb.python/py-strfns.exp: p arg
+PASS: gdb.python/py-strfns.exp: condition $bpnum $_memeq (arg, buf3, 4)
+PASS: gdb.python/py-strfns.exp: continue to breakpoint: Break bfunc here.
+PASS: gdb.python/py-strfns.exp: p /d {char[4]} arg
+PASS: gdb.python/py-strfns.exp: save a corefile
+PASS: gdb.python/py-strfns.exp: re-load generated corefile
+PASS: gdb.python/py-strfns.exp: p $_streq (str1, str2)
+PASS: gdb.python/py-strfns.exp: p $_streq (str1, str3)
+PASS: gdb.python/py-strfns.exp: p $_strlen (str1)
+PASS: gdb.python/py-strfns.exp: p $_strlen (buf1)
+PASS: gdb.python/py-strfns.exp: p $_memeq (buf1, buf2, 4)
+PASS: gdb.python/py-strfns.exp: p $_memeq (buf1, buf3, 4)
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "Hello")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "Help")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "^Hello")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "^Hello.$")
+Running ./gdb.python/py-symbol.exp ...
+PASS: gdb.python/py-symbol.exp: Lookup main
+PASS: gdb.python/py-symbol.exp: Test main_func.is_function
+PASS: gdb.python/py-symbol.exp: Test lookup_global_symbol("junk")
+PASS: gdb.python/py-symbol.exp: print value of main
+PASS: gdb.python/py-symbol.exp: print line number of qq
+PASS: gdb.python/py-symbol.exp: print value of qq
+PASS: gdb.python/py-symbol.exp: print whether qq needs a frame
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-symbol.exp: Test arg.is_variable
+PASS: gdb.python/py-symbol.exp: Test arg.is_constant
+PASS: gdb.python/py-symbol.exp: Test arg.is_argument
+PASS: gdb.python/py-symbol.exp: Test arg.is_function
+PASS: gdb.python/py-symbol.exp: Test func.is_variable
+PASS: gdb.python/py-symbol.exp: Test func.is_constant
+PASS: gdb.python/py-symbol.exp: Test func.is_argument
+PASS: gdb.python/py-symbol.exp: Test func.is_function
+PASS: gdb.python/py-symbol.exp: Test func.name
+PASS: gdb.python/py-symbol.exp: Test func.print_name
+PASS: gdb.python/py-symbol.exp: Test func.linkage_name
+PASS: gdb.python/py-symbol.exp: Test func.addr_class
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Break at end.
+PASS: gdb.python/py-symbol.exp: Test a.is_variable
+PASS: gdb.python/py-symbol.exp: Test a.is_constant
+PASS: gdb.python/py-symbol.exp: Test a.is_argument
+PASS: gdb.python/py-symbol.exp: Test a.is_function
+PASS: gdb.python/py-symbol.exp: Test a.addr_class
+PASS: gdb.python/py-symbol.exp: try to print value of a without a frame
+PASS: gdb.python/py-symbol.exp: print value of a
+PASS: gdb.python/py-symbol.exp: print whether a needs a frame
+PASS: gdb.python/py-symbol.exp: Test t.is_variable
+PASS: gdb.python/py-symbol.exp: Test t.is_constant
+PASS: gdb.python/py-symbol.exp: Test t.is_argument
+PASS: gdb.python/py-symbol.exp: Test t.is_function
+PASS: gdb.python/py-symbol.exp: Test t.addr_class
+PASS: gdb.python/py-symbol.exp: Get type
+PASS: gdb.python/py-symbol.exp: Get symtab
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Break in class.
+PASS: gdb.python/py-symbol.exp: Test func.is_variable
+PASS: gdb.python/py-symbol.exp: Test func.is_constant
+PASS: gdb.python/py-symbol.exp: Test func.is_argument
+PASS: gdb.python/py-symbol.exp: Test func.is_function
+PASS: gdb.python/py-symbol.exp: Test func.name
+PASS: gdb.python/py-symbol.exp: Test func.print_name
+PASS: gdb.python/py-symbol.exp: Test func.linkage_name
+PASS: gdb.python/py-symbol.exp: Test func.addr_class
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Break at end.
+PASS: gdb.python/py-symbol.exp: Test symbol validity
+PASS: gdb.python/py-symbol.exp: Test symbol validity
+PASS: gdb.python/py-symbol.exp: Test symbol destructor
+Running ./gdb.python/py-symtab.exp ...
+PASS: gdb.python/py-symtab.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-symtab.exp: Test symtab
+PASS: gdb.python/py-symtab.exp: Test sal.pc
+PASS: gdb.python/py-symtab.exp: Test sal.last
+PASS: gdb.python/py-symtab.exp: Test sal.line
+PASS: gdb.python/py-symtab.exp: Test sal.is_valid
+PASS: gdb.python/py-symtab.exp: Test symtab.filename
+PASS: gdb.python/py-symtab.exp: Test symtab.objfile
+PASS: gdb.python/py-symtab.exp: Test symtab.fullname
+PASS: gdb.python/py-symtab.exp: Test symtab.is_valid()
+PASS: gdb.python/py-symtab.exp: Test qq in global symbols
+PASS: gdb.python/py-symtab.exp: Test func in global symbols
+PASS: gdb.python/py-symtab.exp: Test main in global symbols
+PASS: gdb.python/py-symtab.exp: Test int in static symbols
+PASS: gdb.python/py-symtab.exp: Test char in static symbols
+PASS: gdb.python/py-symtab.exp: Test simple_struct in static symbols
+PASS: gdb.python/py-symtab.exp: Test sal.is_valid
+PASS: gdb.python/py-symtab.exp: Test symtab.is_valid()
+PASS: gdb.python/py-symtab.exp: Test sal destructor
+PASS: gdb.python/py-symtab.exp: Test symtab destructor
+Running ./gdb.python/py-template.exp ...
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int &
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int &
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int * const
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int * const *
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int * volatile
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int * volatile * const * volatile *
+Running ./gdb.python/python.exp ...
+PASS: gdb.python/python.exp: multi-line python command - python
+PASS: gdb.python/python.exp: multi-line python command - print (23)
+PASS: gdb.python/python.exp: multi-line python command - end
+PASS: gdb.python/python.exp: show python command - define zzq
+PASS: gdb.python/python.exp: show python command - python
+PASS: gdb.python/python.exp: show python command - print (23)
+PASS: gdb.python/python.exp: show python command - end
+PASS: gdb.python/python.exp: show python command - end
+PASS: gdb.python/python.exp: show python command - show user zzq
+PASS: gdb.python/python.exp: indented multi-line python command - python
+PASS: gdb.python/python.exp: indented multi-line python command - def foo ():
+PASS: gdb.python/python.exp: indented multi-line python command -   print ('hello, world!')
+PASS: gdb.python/python.exp: indented multi-line python command - foo ()
+PASS: gdb.python/python.exp: indented multi-line python command - end
+PASS: gdb.python/python.exp: source source2.py
+PASS: gdb.python/python.exp: source -s source2.py
+PASS: gdb.python/python.exp: python print (gdb.current_objfile())
+PASS: gdb.python/python.exp: python print (gdb.objfiles())
+PASS: gdb.python/python.exp: pythonX.Y/lib-dynload/*.so
+PASS: gdb.python/python.exp: python x = gdb.execute('printf "%d", 23', to_string = True)
+PASS: gdb.python/python.exp: python print (x)
+PASS: gdb.python/python.exp: post event insertion - python
+PASS: gdb.python/python.exp: post event insertion - someVal = 0
+PASS: gdb.python/python.exp: post event insertion - class Foo(object):
+PASS: gdb.python/python.exp: post event insertion -   def __call__(self):
+PASS: gdb.python/python.exp: post event insertion -     global someVal
+PASS: gdb.python/python.exp: post event insertion -     someVal += 1
+PASS: gdb.python/python.exp: post event insertion - gdb.post_event(Foo())
+PASS: gdb.python/python.exp: post event insertion - end
+PASS: gdb.python/python.exp: test post event execution
+PASS: gdb.python/python.exp: Test non callable class
+PASS: gdb.python/python.exp: show height
+PASS: gdb.python/python.exp: set height 10
+PASS: gdb.python/python.exp: verify pagination beforehand
+PASS: gdb.python/python.exp: verify pagination beforehand: q
+PASS: gdb.python/python.exp: gdb.execute does not page
+PASS: gdb.python/python.exp: verify pagination afterwards
+PASS: gdb.python/python.exp: verify pagination afterwards: q
+PASS: gdb.python/python.exp: set height 0
+PASS: gdb.python/python.exp: collect help from uiout
+PASS: gdb.python/python.exp: verify help to uiout
+PASS: gdb.python/python.exp: Attempt to aquire thread with no inferior
+PASS: gdb.python/python.exp: Ensure that no threads are returned
+PASS: gdb.python/python.exp: register atexit function - python
+PASS: gdb.python/python.exp: register atexit function - import atexit
+PASS: gdb.python/python.exp: register atexit function - def printit(arg):
+PASS: gdb.python/python.exp: register atexit function -   print (arg)
+PASS: gdb.python/python.exp: register atexit function - atexit.register(printit, 'good bye world')
+PASS: gdb.python/python.exp: register atexit function - end
+PASS: gdb.python/python.exp: atexit handling
+PASS: gdb.python/python.exp: test decode_line no source named main
+PASS: gdb.python/python.exp: test decode_line current location
+PASS: gdb.python/python.exp: Test decode_line current location
+PASS: gdb.python/python.exp: Test decode_line expression parse
+PASS: gdb.python/python.exp: Test decode_line current location
+PASS: gdb.python/python.exp: Test decode_line current locationn filename
+PASS: gdb.python/python.exp: Test decode_line current location line number
+PASS: gdb.python/python.exp: test decode_line python.c:26
+PASS: gdb.python/python.exp: Test decode_line python.c:26 length
+PASS: gdb.python/python.exp: Test decode_line expression parse
+PASS: gdb.python/python.exp: Test decode_line python.c:26 length
+PASS: gdb.python/python.exp: Test decode_line python.c:26 filename
+PASS: gdb.python/python.exp: Test decode_line python.c:26 line number
+PASS: gdb.python/python.exp: test decode_line randomfunc
+PASS: gdb.python/python.exp: test decode_line func1()
+PASS: gdb.python/python.exp: Test decode_line func1 length
+PASS: gdb.python/python.exp: Test decode_line func1 length
+PASS: gdb.python/python.exp: Test decode_line func1 filename
+PASS: gdb.python/python.exp: Test decode_line func1 line number
+PASS: gdb.python/python.exp: test decode_line func1,func2
+PASS: gdb.python/python.exp: stop at comma in linespec
+PASS: gdb.python/python.exp: Test stderr location
+PASS: gdb.python/python.exp: Test stdout location
+PASS: gdb.python/python.exp: Test default write
+PASS: gdb.python/python.exp: Test stderr write
+PASS: gdb.python/python.exp: Test stdout write
+PASS: gdb.python/python.exp: Test stdlog write
+PASS: gdb.python/python.exp: Test print-backtrace show setting. Default is message.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: Test print-backtrace show setting to full.
+PASS: gdb.python/python.exp: prompt substitution - python
+PASS: gdb.python/python.exp: prompt substitution - someCounter = 0
+PASS: gdb.python/python.exp: prompt substitution - def prompt(current):
+PASS: gdb.python/python.exp: prompt substitution -    global someCounter
+PASS: gdb.python/python.exp: prompt substitution -    if (current == "testfake "):
+PASS: gdb.python/python.exp: prompt substitution -       return None
+PASS: gdb.python/python.exp: prompt substitution -    someCounter = someCounter + 1
+PASS: gdb.python/python.exp: prompt substitution -    return "py prompt " + str (someCounter) + " "
+PASS: gdb.python/python.exp: prompt substitution - end
+PASS: gdb.python/python.exp: prompt substitution readline - python
+PASS: gdb.python/python.exp: prompt substitution readline - pCounter = 0
+PASS: gdb.python/python.exp: prompt substitution readline - def program_prompt(current):
+PASS: gdb.python/python.exp: prompt substitution readline -    global pCounter
+PASS: gdb.python/python.exp: prompt substitution readline -    if (current == ">"):
+PASS: gdb.python/python.exp: prompt substitution readline -       pCounter = pCounter + 1
+PASS: gdb.python/python.exp: prompt substitution readline -       return "python line " + str (pCounter) + ": "
+PASS: gdb.python/python.exp: prompt substitution readline -    return None
+PASS: gdb.python/python.exp: prompt substitution readline - end
+PASS: gdb.python/python.exp: set hook
+PASS: gdb.python/python.exp: set prompt testfake
+PASS: gdb.python/python.exp: show prompt shows guarded prompt
+PASS: gdb.python/python.exp: set prompt blah overriden
+PASS: gdb.python/python.exp: Delete old hook
+PASS: gdb.python/python.exp: set default prompt
+PASS: gdb.python/python.exp: set programming hook
+PASS: gdb.python/python.exp: readline secondary are not substituted
+PASS: gdb.python/python.exp: end programming
+PASS: gdb.python/python.exp: prompt substitution readline - python
+PASS: gdb.python/python.exp: prompt substitution readline - import gdb.command.prompt
+PASS: gdb.python/python.exp: prompt substitution readline - end
+PASS: gdb.python/python.exp: set basic extended prompt
+PASS: gdb.python/python.exp: set extended prompt working directory
+PASS: gdb.python/python.exp: set extended prompt parameter
+PASS: gdb.python/python.exp: Test print-backtrace show setting. Default is message.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: Test print-backtrace show setting to full.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: Test print-backtrace show setting to none.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: prompt substitution readline - python
+PASS: gdb.python/python.exp: prompt substitution readline - pCounter = 0
+PASS: gdb.python/python.exp: prompt substitution readline - def error_prompt(current):
+PASS: gdb.python/python.exp: prompt substitution readline -    raise RuntimeError("Python exception called")
+PASS: gdb.python/python.exp: prompt substitution readline - end
+PASS: gdb.python/python.exp: set hook
+PASS: gdb.python/python.exp: set the hook to default
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: set hook
+PASS: gdb.python/python.exp: set the hook to default
+PASS: gdb.python/python.exp: Get line number of func2 call site
+PASS: gdb.python/python.exp: Test find_pc_line at func2 call site
+PASS: gdb.python/python.exp: Step into func2
+PASS: gdb.python/python.exp: Step out of func2
+PASS: gdb.python/python.exp: Test find_pc_line with resume address
+Running ./gdb.python/py-type.exp ...
+PASS: gdb.python/py-type.exp: lang_c: continue to breakpoint: break to inspect struct and array.
+PASS: gdb.python/py-type.exp: lang_c: test_fields: c typedef field list
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (st)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (st) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get fields from st.type
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check number of fields (st)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check structure field a name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check structure field b name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check that dir includes name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check number of fields (st.type)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check fields lookup by name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check fields iteration over values
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check fields items list
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check field name exists test
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check field name nonexists test
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check conversion to bool
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (len (st.type['a'].type))
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (st.type['a'].type.has_key ('x'))
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (st.type['a'].type.keys ())
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (st.type['a'].type['x'])
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (not not st.type['a'].type)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (ar)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python fields = ar.type.fields()
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check the number of fields
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check array field type
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to array with one argument
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to array with two arguments
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (ar[0].type == ar[0].type)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (vec_data_1)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (vec_data_1) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (vec_data_2)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (vec_data_2) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: set vec1
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to vector with one argument
+PASS: gdb.python/py-type.exp: lang_c: test_fields: set vec2
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to vector with two arguments
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print vec1 == vec2
+PASS: gdb.python/py-type.exp: lang_c: test_fields: set vec3
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print vec1 == vec3
+PASS: gdb.python/py-type.exp: lang_c: test_enum: print value (e)
+PASS: gdb.python/py-type.exp: lang_c: test_enum: get value (e) from history
+PASS: gdb.python/py-type.exp: lang_c: test_enum: extract type fields from e
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check the number of enum fields
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field[0] name
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field[1]name
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check the number of type fields
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field lookup by name (v1)
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field lookup by name (v2)
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check num fields iteration over values
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum fields items list
+PASS: gdb.python/py-type.exp: lang_cpp: continue to breakpoint: break to inspect struct and array.
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: c++ typedef field list
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (c)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (c) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get fields from c.type
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check number of fields (c)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check class field c name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check class field d name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (c.type == gdb.parse_and_eval('d').type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (c.type == gdb.parse_and_eval('d').type.fields()[0].type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (st)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (st) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get fields from st.type
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check number of fields (st)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check structure field a name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check structure field b name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check that dir includes name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check number of fields (st.type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields lookup by name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields iteration over values
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields items list
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check field name exists test
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check field name nonexists test
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check conversion to bool
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (len (st.type['a'].type))
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (st.type['a'].type.has_key ('x'))
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (st.type['a'].type.keys ())
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (st.type['a'].type['x'])
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (not not st.type['a'].type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (ar)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python fields = ar.type.fields()
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check the number of fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check array field type
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to array with one argument
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to array with two arguments
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (ar[0].type == ar[0].type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (vec_data_1)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (vec_data_1) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (vec_data_2)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (vec_data_2) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: set vec1
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to vector with one argument
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: set vec2
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to vector with two arguments
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print vec1 == vec2
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: set vec3
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print vec1 == vec3
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: print value (d)
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: get value (d) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: extract type fields from d
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: Check the number of fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: Check base class (fields[0])
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: Check base class (fields[1])
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: print value (ar)
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: Check correct tuple length
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: Check range low bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: Check range high bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: print value (ar)
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: get fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: Check range low bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: Check range high bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on unranged value: print value (st)
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on unranged value: get value (st) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on unranged value: Check range for non ranged type.
+PASS: gdb.python/py-type.exp: lang_cpp: get type of temvar
+PASS: gdb.python/py-type.exp: lang_cpp: python print (ttype.template_argument(0))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (isinstance(ttype.template_argument(0), gdb.Type))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (ttype.template_argument(1))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (isinstance(ttype.template_argument(1), gdb.Value))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (ttype.template_argument(2))
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: print value (e)
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: get value (e) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: extract type fields from e
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check the number of enum fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field[0] name
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field[1]name
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check the number of type fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field lookup by name (v1)
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field lookup by name (v2)
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check num fields iteration over values
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum fields items list
+Running ./gdb.python/py-typeprint.exp ...
+PASS: gdb.python/py-typeprint.exp: python exec (open ('py-typeprint.py').read ())
+PASS: gdb.python/py-typeprint.exp: basic test
+PASS: gdb.python/py-typeprint.exp: raw test
+PASS: gdb.python/py-typeprint.exp: disable type-printer string
+PASS: gdb.python/py-typeprint.exp: whatis with disabled printer
+PASS: gdb.python/py-typeprint.exp: info type-printers
+PASS: gdb.python/py-typeprint.exp: enable type-printer string
+PASS: gdb.python/py-typeprint.exp: whatis with enabled printer
+PASS: gdb.python/py-typeprint.exp: whatis s
+Running ./gdb.python/py-value-cc.exp ...
+PASS: gdb.python/py-value-cc.exp: continue to breakpoint: Break here
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("a").type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("a").referenced_value().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ref").type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ref").referenced_value().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ref").referenced_value()))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").dereference().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").referenced_value().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").referenced_value().dereference()))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").referenced_value().referenced_value()))
+Running ./gdb.python/py-value.exp ...
+PASS: gdb.python/py-value.exp: create boolean value
+PASS: gdb.python/py-value.exp: create integer value
+PASS: gdb.python/py-value.exp: create long value
+PASS: gdb.python/py-value.exp: create double value
+PASS: gdb.python/py-value.exp: create 8-bit string value
+PASS: gdb.python/py-value.exp: print 8-bit string
+PASS: gdb.python/py-value.exp: verify type of 8-bit string
+PASS: gdb.python/py-value.exp: create unicode value
+PASS: gdb.python/py-value.exp: print Unicode string
+PASS: gdb.python/py-value.exp: verify type of unicode string
+PASS: gdb.python/py-value.exp: Test address attribute in non-addressable value
+PASS: gdb.python/py-value.exp: add two integer values
+PASS: gdb.python/py-value.exp: verify type of integer add result
+PASS: gdb.python/py-value.exp: add two double values
+PASS: gdb.python/py-value.exp: subtract two integer values
+PASS: gdb.python/py-value.exp: subtract two double values
+PASS: gdb.python/py-value.exp: multiply two integer values
+PASS: gdb.python/py-value.exp: multiply two double values
+PASS: gdb.python/py-value.exp: divide two integer values
+PASS: gdb.python/py-value.exp: divide two double values
+PASS: gdb.python/py-value.exp: take remainder of two integer values
+PASS: gdb.python/py-value.exp: integer value raised to the power of another integer value
+PASS: gdb.python/py-value.exp: double value raised to the power of integer value
+PASS: gdb.python/py-value.exp: negated integer value
+PASS: gdb.python/py-value.exp: positive integer value
+PASS: gdb.python/py-value.exp: negated double value
+PASS: gdb.python/py-value.exp: positive double value
+PASS: gdb.python/py-value.exp: absolute of integer value
+PASS: gdb.python/py-value.exp: absolute of double value
+PASS: gdb.python/py-value.exp: subtract integer value from python integer
+PASS: gdb.python/py-value.exp: verify type of mixed integer subtraction result
+PASS: gdb.python/py-value.exp: add double value with python float
+PASS: gdb.python/py-value.exp: subtract python integer from integer value
+PASS: gdb.python/py-value.exp: add python float with double value
+PASS: gdb.python/py-value.exp: print evalue
+PASS: gdb.python/py-value.exp: python evalue = gdb.history (0)
+PASS: gdb.python/py-value.exp: python print (int (evalue))
+PASS: gdb.python/py-value.exp: add pointer value with python integer
+PASS: gdb.python/py-value.exp: subtract python integer from pointer value
+PASS: gdb.python/py-value.exp: subtract two pointer values
+PASS: gdb.python/py-value.exp: catch error in python type conversion
+PASS: gdb.python/py-value.exp: catch throw of GDB error
+PASS: gdb.python/py-value.exp: define function to test booleans - python
+PASS: gdb.python/py-value.exp: define function to test booleans - def test_bool (val):
+PASS: gdb.python/py-value.exp: define function to test booleans -   if val:
+PASS: gdb.python/py-value.exp: define function to test booleans -     print ('yay')
+PASS: gdb.python/py-value.exp: define function to test booleans -   else:
+PASS: gdb.python/py-value.exp: define function to test booleans -     print ('nay')
+PASS: gdb.python/py-value.exp: define function to test booleans - end
+PASS: gdb.python/py-value.exp: check evaluation of true boolean value in expression
+PASS: gdb.python/py-value.exp: check evaluation of false boolean value in expression
+PASS: gdb.python/py-value.exp: check evaluation of true integer value in expression
+PASS: gdb.python/py-value.exp: check evaluation of false integer value in expression
+PASS: gdb.python/py-value.exp: check evaluation of true integer value in expression
+PASS: gdb.python/py-value.exp: check evaluation of false integer value in expression
+PASS: gdb.python/py-value.exp: less than, equal
+PASS: gdb.python/py-value.exp: less than, less
+PASS: gdb.python/py-value.exp: less than, greater
+PASS: gdb.python/py-value.exp: less than, None
+PASS: gdb.python/py-value.exp: less or equal, equal
+PASS: gdb.python/py-value.exp: less or equal, less
+PASS: gdb.python/py-value.exp: less or equal, greater
+PASS: gdb.python/py-value.exp: less or equal, None
+PASS: gdb.python/py-value.exp: equality of gdb.Values
+PASS: gdb.python/py-value.exp: inequality of gdb.Values
+PASS: gdb.python/py-value.exp: equality of gdb.Value with Python value
+PASS: gdb.python/py-value.exp: inequality of gdb.Value with Python value
+PASS: gdb.python/py-value.exp: inequality of gdb.Value with None
+PASS: gdb.python/py-value.exp: inequality, false
+PASS: gdb.python/py-value.exp: inequality, true
+PASS: gdb.python/py-value.exp: inequality, None
+PASS: gdb.python/py-value.exp: greater than, equal
+PASS: gdb.python/py-value.exp: greater than, less
+PASS: gdb.python/py-value.exp: greater than, greater
+PASS: gdb.python/py-value.exp: greater than, None
+PASS: gdb.python/py-value.exp: greater or equal, equal
+PASS: gdb.python/py-value.exp: greater or equal, less
+PASS: gdb.python/py-value.exp: greater or equal, greater
+PASS: gdb.python/py-value.exp: greater or equal, None
+PASS: gdb.python/py-value.exp: py-value in file.filename
+PASS: gdb.python/py-value.exp: python print (gdb.objfiles()[0].pretty_printers)
+PASS: gdb.python/py-value.exp: python gdb.objfiles()[0].pretty_printers = 0
+PASS: gdb.python/py-value.exp: parse_and_eval constant test
+PASS: gdb.python/py-value.exp: parse_and_eval simple expression test
+PASS: gdb.python/py-value.exp: parse_and_eval type test
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - python
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - one = gdb.Value(1)
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - two = gdb.Value(2)
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - three = gdb.Value(3)
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - vdict = {one:"one str",two:"two str",three:"three str"}
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - end
+PASS: gdb.python/py-value.exp: Test dictionary hash
+PASS: gdb.python/py-value.exp: Test dictionary hash
+PASS: gdb.python/py-value.exp: Test dictionary hash
+PASS: gdb.python/py-value.exp: Test inbuilt hash
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect struct and union
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: access element inside struct using 8-bit string name
+PASS: gdb.python/py-value.exp: access element inside struct using unicode name
+PASS: gdb.python/py-value.exp: dereference value
+PASS: gdb.python/py-value.exp: Test is_optimized_out attribute
+PASS: gdb.python/py-value.exp: Test address attribute
+PASS: gdb.python/py-value.exp: parse_and_eval with memory error
+PASS: gdb.python/py-value.exp: python inval = gdb.parse_and_eval('*(int*)0')
+PASS: gdb.python/py-value.exp: python print (inval.is_lazy)
+PASS: gdb.python/py-value.exp: memory error and lazy values
+PASS: gdb.python/py-value.exp: memory error and lazy values
+PASS: gdb.python/py-value.exp: python argc_lazy = gdb.parse_and_eval('argc')
+PASS: gdb.python/py-value.exp: python argc_notlazy = gdb.parse_and_eval('argc')
+PASS: gdb.python/py-value.exp: python argc_notlazy.fetch_lazy()
+PASS: gdb.python/py-value.exp: python print (argc_lazy.is_lazy)
+PASS: gdb.python/py-value.exp: python print (argc_notlazy.is_lazy)
+PASS: gdb.python/py-value.exp: sanity check argc
+PASS: gdb.python/py-value.exp: python print (argc_lazy.is_lazy)
+PASS: gdb.python/py-value.exp: set argc=2
+PASS: gdb.python/py-value.exp: python print (argc_notlazy)
+PASS: gdb.python/py-value.exp: python print (argc_lazy)
+PASS: gdb.python/py-value.exp: python print (argc_lazy.is_lazy)
+PASS: gdb.python/py-value.exp: print st
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: Test string with no length
+PASS: gdb.python/py-value.exp: Test string (length = -1) is all of the string
+PASS: gdb.python/py-value.exp: python print (st.string (length = 6))
+PASS: gdb.python/py-value.exp: Test string (length = 0) is empty
+PASS: gdb.python/py-value.exp: Test length is 0
+PASS: gdb.python/py-value.exp: print nullst
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: Test string to first null
+PASS: gdb.python/py-value.exp: get string beyond null
+PASS: gdb.python/py-value.exp: python print (repr(nullst))
+PASS: gdb.python/py-value.exp: p/x fp1
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python fp1 = fp1.dereference()
+PASS: gdb.python/py-value.exp: python result = fp1()
+PASS: gdb.python/py-value.exp: python print (result)
+PASS: gdb.python/py-value.exp: p/x fp2
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python fp2 = fp2.dereference()
+PASS: gdb.python/py-value.exp: python result2 = fp2(10,20)
+PASS: gdb.python/py-value.exp: python print (result2)
+PASS: gdb.python/py-value.exp: p i
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python result3 = i()
+PASS: gdb.python/py-value.exp: p/x fp2
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python fp3 = fp3.dereference()
+PASS: gdb.python/py-value.exp: python result2 = fp3(10)
+PASS: gdb.python/py-value.exp: print sptr
+PASS: gdb.python/py-value.exp: Get value from history
+PASS: gdb.python/py-value.exp: Aquire lazy string
+PASS: gdb.python/py-value.exp: Test type name equality
+PASS: gdb.python/py-value.exp: Test type name equality
+PASS: gdb.python/py-value.exp: print sn
+PASS: gdb.python/py-value.exp: Get value from history
+PASS: gdb.python/py-value.exp: Test lazy string
+PASS: gdb.python/py-value.exp: Succesfully create a lazy string
+PASS: gdb.python/py-value.exp: Test lazy string length
+PASS: gdb.python/py-value.exp: Test lazy string address
+PASS: gdb.python/py-value.exp: create PTR type
+PASS: gdb.python/py-value.exp: kill the inferior
+PASS: gdb.python/py-value.exp: Discard the symbols
+PASS: gdb.python/py-value.exp: cast arg0 to PTR
+PASS: gdb.python/py-value.exp: delete PTR type
+PASS: gdb.python/py-value.exp: print value's type
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect struct and union
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access a string with a subscript
+PASS: gdb.python/py-value.exp: Build pointer to array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Access array via pointer with int subscript
+PASS: gdb.python/py-value.exp: Access array via pointer with value subscript
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Build array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Test multiple subscript
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect pointer by reference
+PASS: gdb.python/py-value.exp: Obtain address
+PASS: gdb.python/py-value.exp: Obtains value from GDB
+PASS: gdb.python/py-value.exp: Check pointer passed as reference
+PASS: gdb.python/py-value.exp: python print (bool(gdb.parse_and_eval('base').dynamic_cast(gdb.lookup_type('Derived').pointer())))
+PASS: gdb.python/py-value.exp: python print (gdb.parse_and_eval('base').dynamic_type)
+PASS: gdb.python/py-value.exp: python print (gdb.parse_and_eval('5').dynamic_type)
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect struct and union
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access a string with a subscript
+PASS: gdb.python/py-value.exp: Build pointer to array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Access array via pointer with int subscript
+PASS: gdb.python/py-value.exp: Access array via pointer with value subscript
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Build array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Test multiple subscript
+Running ./gdb.reverse/amd64-tailcall-reverse.exp ...
+Running ./gdb.reverse/break-precsave.exp ...
+Running ./gdb.reverse/break-reverse.exp ...
+Running ./gdb.reverse/consecutive-precsave.exp ...
+Running ./gdb.reverse/consecutive-reverse.exp ...
+Running ./gdb.reverse/finish-precsave.exp ...
+Running ./gdb.reverse/finish-reverse-bkpt.exp ...
+Running ./gdb.reverse/finish-reverse.exp ...
+Running ./gdb.reverse/i386-precsave.exp ...
+Running ./gdb.reverse/i386-reverse.exp ...
+Running ./gdb.reverse/i386-sse-reverse.exp ...
+Running ./gdb.reverse/i387-env-reverse.exp ...
+Running ./gdb.reverse/i387-stack-reverse.exp ...
+Running ./gdb.reverse/machinestate.exp ...
+Running ./gdb.reverse/machinestate-precsave.exp ...
+Running ./gdb.reverse/next-reverse-bkpt-over-sr.exp ...
+Running ./gdb.reverse/sigall-precsave.exp ...
+Running ./gdb.reverse/sigall-reverse.exp ...
+Running ./gdb.reverse/singlejmp-reverse.exp ...
+Running ./gdb.reverse/solib-precsave.exp ...
+Running ./gdb.reverse/solib-reverse.exp ...
+Running ./gdb.reverse/step-precsave.exp ...
+Running ./gdb.reverse/step-reverse.exp ...
+Running ./gdb.reverse/until-precsave.exp ...
+Running ./gdb.reverse/until-reverse.exp ...
+Running ./gdb.reverse/watch-precsave.exp ...
+Running ./gdb.reverse/watch-reverse.exp ...
+Running ./gdb.server/ext-attach.exp ...
+Running ./gdb.server/ext-run.exp ...
+PASS: gdb.server/ext-run.exp: disconnect
+PASS: gdb.server/ext-run.exp: set remote exec-file
+PASS: gdb.server/ext-run.exp: continue to main
+PASS: gdb.server/ext-run.exp: get process list
+PASS: gdb.server/ext-run.exp: kill
+PASS: gdb.server/ext-run.exp: load new file without any gdbserver inferior
+PASS: gdb.server/ext-run.exp: monitor exit
+Running ./gdb.server/file-transfer.exp ...
+PASS: gdb.server/file-transfer.exp: disconnect
+FAIL: gdb.server/file-transfer.exp: put binary file
+FAIL: gdb.server/file-transfer.exp: get binary file
+FAIL: gdb.server/file-transfer.exp: compare binary file
+FAIL: gdb.server/file-transfer.exp: deleted binary file
+FAIL: gdb.server/file-transfer.exp: put text file
+FAIL: gdb.server/file-transfer.exp: get text file
+FAIL: gdb.server/file-transfer.exp: compare text file
+FAIL: gdb.server/file-transfer.exp: deleted text file
+Running ./gdb.server/no-thread-db.exp ...
+PASS: gdb.server/no-thread-db.exp: successfully compiled posix threads test case
+PASS: gdb.server/no-thread-db.exp: disconnect
+PASS: gdb.server/no-thread-db.exp: libthread-db is now unresolvable
+FAIL: gdb.server/no-thread-db.exp: continue to breakpoint: after tls assignment
+FAIL: gdb.server/no-thread-db.exp: print foo
+Running ./gdb.server/server-exec-info.exp ...
+PASS: gdb.server/server-exec-info.exp: file
+PASS: gdb.server/server-exec-info.exp: set sysroot remote:
+PASS: gdb.server/server-exec-info.exp: info files
+Running ./gdb.server/server-kill.exp ...
+PASS: gdb.server/server-kill.exp: disconnect
+FAIL: gdb.server/server-kill.exp: tstatus
+Running ./gdb.server/server-mon.exp ...
+PASS: gdb.server/server-mon.exp: disconnect
+PASS: gdb.server/server-mon.exp: monitor help
+PASS: gdb.server/server-mon.exp: monitor
+PASS: gdb.server/server-mon.exp: monitor set debug 1
+PASS: gdb.server/server-mon.exp: monitor set debug 0
+PASS: gdb.server/server-mon.exp: monitor set remote-debug 1
+PASS: gdb.server/server-mon.exp: monitor set remote-debug 0
+Running ./gdb.server/server-run.exp ...
+PASS: gdb.server/server-run.exp: disconnect
+PASS: gdb.server/server-run.exp: loaded dynamic linker
+PASS: gdb.server/server-run.exp: continue to main
+Running ./gdb.server/solib-list.exp ...
+Running ./gdb.stabs/exclfwd.exp ...
+PASS: gdb.stabs/exclfwd.exp: ptype v1
+PASS: gdb.stabs/exclfwd.exp: ptype v2
+PASS: gdb.stabs/exclfwd.exp: ptype v3
+Running ./gdb.stabs/gdb11479.exp ...
+PASS: gdb.stabs/gdb11479.exp: Set breakpoints forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test2 forced_stabs
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test2 forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test forced_stabs
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Set breakpoints natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test2 natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test2 natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test natural_debug_format
+Running ./gdb.stabs/weird.exp ...
+PASS: gdb.stabs/weird.exp: weirdx.o read without error
+PASS: gdb.stabs/weird.exp: stabs found
+PASS: gdb.stabs/weird.exp: variable var0 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var0)
+PASS: gdb.stabs/weird.exp: variable var1 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var1)
+PASS: gdb.stabs/weird.exp: variable var2 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var2)
+PASS: gdb.stabs/weird.exp: variable var3 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var3)
+PASS: gdb.stabs/weird.exp: variable attr32 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr32)
+PASS: gdb.stabs/weird.exp: variable attr33 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr33)
+PASS: gdb.stabs/weird.exp: variable attr35 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr35)
+PASS: gdb.stabs/weird.exp: variable attr36 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr36)
+PASS: gdb.stabs/weird.exp: variable attr37 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr37)
+PASS: gdb.stabs/weird.exp: variable attr38 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr38)
+PASS: gdb.stabs/weird.exp: variable attr39 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr39)
+PASS: gdb.stabs/weird.exp: variable attr41 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr41)
+PASS: gdb.stabs/weird.exp: variable attr42 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr42)
+PASS: gdb.stabs/weird.exp: variable attr43 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr43)
+PASS: gdb.stabs/weird.exp: variable attr44 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr44)
+PASS: gdb.stabs/weird.exp: variable attr46 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr46)
+PASS: gdb.stabs/weird.exp: variable attr47 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr47)
+PASS: gdb.stabs/weird.exp: variable attr58 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr58)
+PASS: gdb.stabs/weird.exp: variable attr59 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr59)
+PASS: gdb.stabs/weird.exp: variable attr60 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr60)
+PASS: gdb.stabs/weird.exp: variable attr61 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr61)
+PASS: gdb.stabs/weird.exp: variable attr62 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr62)
+PASS: gdb.stabs/weird.exp: variable attr63 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr63)
+PASS: gdb.stabs/weird.exp: variable attr64 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr64)
+PASS: gdb.stabs/weird.exp: variable attr65 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr65)
+PASS: gdb.stabs/weird.exp: variable attr66 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr66)
+PASS: gdb.stabs/weird.exp: variable attr67 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr67)
+PASS: gdb.stabs/weird.exp: variable attr68 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr68)
+PASS: gdb.stabs/weird.exp: variable attr69 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr69)
+PASS: gdb.stabs/weird.exp: variable attr70 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr70)
+PASS: gdb.stabs/weird.exp: variable attr71 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr71)
+PASS: gdb.stabs/weird.exp: variable attr72 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr72)
+PASS: gdb.stabs/weird.exp: variable attr73 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr73)
+PASS: gdb.stabs/weird.exp: variable attr74 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr74)
+PASS: gdb.stabs/weird.exp: variable attr75 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr75)
+PASS: gdb.stabs/weird.exp: variable attr76 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr76)
+PASS: gdb.stabs/weird.exp: variable attr77 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr77)
+PASS: gdb.stabs/weird.exp: variable attr78 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr78)
+PASS: gdb.stabs/weird.exp: variable attr79 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr79)
+PASS: gdb.stabs/weird.exp: variable attr80 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr80)
+PASS: gdb.stabs/weird.exp: variable attr81 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr81)
+PASS: gdb.stabs/weird.exp: variable attr82 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr82)
+PASS: gdb.stabs/weird.exp: variable attr83 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr83)
+PASS: gdb.stabs/weird.exp: variable attr84 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr84)
+PASS: gdb.stabs/weird.exp: variable attr85 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr85)
+PASS: gdb.stabs/weird.exp: variable attr86 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr86)
+PASS: gdb.stabs/weird.exp: variable attr87 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr87)
+PASS: gdb.stabs/weird.exp: variable attr88 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr88)
+PASS: gdb.stabs/weird.exp: variable attr89 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr89)
+PASS: gdb.stabs/weird.exp: variable attr90 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr90)
+PASS: gdb.stabs/weird.exp: variable attr91 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr91)
+PASS: gdb.stabs/weird.exp: variable attr92 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr92)
+PASS: gdb.stabs/weird.exp: variable attr93 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr93)
+PASS: gdb.stabs/weird.exp: variable attr94 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr94)
+PASS: gdb.stabs/weird.exp: variable attr95 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr95)
+PASS: gdb.stabs/weird.exp: variable attr96 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr96)
+PASS: gdb.stabs/weird.exp: variable attr97 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr97)
+PASS: gdb.stabs/weird.exp: variable attr98 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr98)
+PASS: gdb.stabs/weird.exp: variable attr99 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr99)
+PASS: gdb.stabs/weird.exp: variable attr100 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr100)
+PASS: gdb.stabs/weird.exp: variable attr101 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr101)
+PASS: gdb.stabs/weird.exp: variable attr102 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr102)
+PASS: gdb.stabs/weird.exp: variable attr103 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr103)
+PASS: gdb.stabs/weird.exp: variable attr104 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr104)
+PASS: gdb.stabs/weird.exp: variable attr105 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr105)
+PASS: gdb.stabs/weird.exp: variable attr106 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr106)
+PASS: gdb.stabs/weird.exp: variable attr107 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr107)
+PASS: gdb.stabs/weird.exp: variable attr108 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr108)
+PASS: gdb.stabs/weird.exp: variable attr109 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr109)
+PASS: gdb.stabs/weird.exp: variable attr110 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr110)
+PASS: gdb.stabs/weird.exp: variable attr111 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr111)
+PASS: gdb.stabs/weird.exp: variable attr112 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr112)
+PASS: gdb.stabs/weird.exp: variable attr113 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr113)
+PASS: gdb.stabs/weird.exp: variable attr114 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr114)
+PASS: gdb.stabs/weird.exp: variable attr115 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr115)
+PASS: gdb.stabs/weird.exp: variable attr116 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr116)
+PASS: gdb.stabs/weird.exp: variable attr117 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr117)
+PASS: gdb.stabs/weird.exp: variable attr118 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr118)
+PASS: gdb.stabs/weird.exp: variable attr119 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr119)
+PASS: gdb.stabs/weird.exp: variable attr120 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr120)
+PASS: gdb.stabs/weird.exp: variable attr121 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr121)
+PASS: gdb.stabs/weird.exp: variable attr122 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr122)
+PASS: gdb.stabs/weird.exp: variable attr123 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr123)
+PASS: gdb.stabs/weird.exp: variable attr124 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr124)
+PASS: gdb.stabs/weird.exp: variable attr125 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr125)
+PASS: gdb.stabs/weird.exp: variable attr126 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr126)
+PASS: gdb.stabs/weird.exp: 'e' constant on non-enum type
+PASS: gdb.stabs/weird.exp: whatis const69
+PASS: gdb.stabs/weird.exp: 'e' constant with embedded type
+PASS: gdb.stabs/weird.exp: char constant
+PASS: gdb.stabs/weird.exp: String constant 1
+PASS: gdb.stabs/weird.exp: String constant 2
+PASS: gdb.stabs/weird.exp: String constant 3
+PASS: gdb.stabs/weird.exp: String constant 4
+PASS: gdb.stabs/weird.exp: p bad_neg0
+PASS: gdb.stabs/weird.exp: ptype on inttype
+PASS: gdb.stabs/weird.exp: unrecognized floating point type
+PASS: gdb.stabs/weird.exp: print very big integer
+PASS: gdb.stabs/weird.exp: whatis consth
+PASS: gdb.stabs/weird.exp: whatis consth2
+XFAIL: gdb.stabs/weird.exp: print struct constant
+PASS: gdb.stabs/weird.exp: print bad_type0
+PASS: gdb.stabs/weird.exp: print bad_type1
+XFAIL: gdb.stabs/weird.exp: array0 with strange index
+XFAIL: gdb.stabs/weird.exp: array1 with strange index
+PASS: gdb.stabs/weird.exp: whatis one_var (known failure in gdb 4.10)
+PASS: gdb.stabs/weird.exp: whatis one_var test 2
+PASS: gdb.stabs/weird.exp: whatis two_var (known failure in gdb 4.10)
+PASS: gdb.stabs/weird.exp: whatis two_var test 2
+XFAIL: gdb.stabs/weird.exp: whatis pointer_to_int_var
+XFAIL: gdb.stabs/weird.exp: whatis intp_var
+PASS: gdb.stabs/weird.exp: p common0var0
+XFAIL: gdb.stabs/weird.exp: p common0var1
+XFAIL: gdb.stabs/weird.exp: p common0var2
+Running ./gdb.threads/attach-into-signal.exp ...
+Running ./gdb.threads/attach-stopped.exp ...
+Running ./gdb.threads/bp_in_thread.exp ...
+PASS: gdb.threads/bp_in_thread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/bp_in_thread.exp: breakpoint on noreturn
+PASS: gdb.threads/bp_in_thread.exp: run to noreturn
+Running ./gdb.threads/clone-new-thread-event.exp ...
+PASS: gdb.threads/clone-new-thread-event.exp: catch SIGUSR1
+Running ./gdb.threads/corethreads.exp ...
+Running ./gdb.threads/create-fail.exp ...
+PASS: gdb.threads/create-fail.exp: successfully compiled posix threads test case
+FAIL: gdb.threads/create-fail.exp: iteration 1: run till end
+FAIL: gdb.threads/create-fail.exp: iteration 2: run till end
+FAIL: gdb.threads/create-fail.exp: iteration 3: run till end
+FAIL: gdb.threads/create-fail.exp: iteration 4: run till end
+FAIL: gdb.threads/create-fail.exp: iteration 5: run till end
+FAIL: gdb.threads/create-fail.exp: iteration 6: run till end
+FAIL: gdb.threads/create-fail.exp: iteration 7: run till end
+FAIL: gdb.threads/create-fail.exp: iteration 8: run till end
+FAIL: gdb.threads/create-fail.exp: iteration 9: run till end
+FAIL: gdb.threads/create-fail.exp: iteration 10: run till end
+Running ./gdb.threads/current-lwp-dead.exp ...
+PASS: gdb.threads/current-lwp-dead.exp: continue to breakpoint: fn_return
+Running ./gdb.threads/execl.exp ...
+Running ./gdb.threads/fork-child-threads.exp ...
+Running ./gdb.threads/fork-thread-pending.exp ...
+Running ./gdb.threads/gcore-thread.exp ...
+PASS: gdb.threads/gcore-thread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/gcore-thread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/gcore-thread.exp: help gcore
+PASS: gdb.threads/gcore-thread.exp: thread 1 is running
+PASS: gdb.threads/gcore-thread.exp: thread 2 is running
+PASS: gdb.threads/gcore-thread.exp: save a corefile
+XFAIL: gdb.threads/gcore-thread.exp: clear __stack_user.next
+XFAIL: gdb.threads/gcore-thread.exp: clear stack_used.next
+PASS: gdb.threads/gcore-thread.exp: corefile: re-load generated corefile
+PASS: gdb.threads/gcore-thread.exp: corefile: corefile contains at least two threads
+PASS: gdb.threads/gcore-thread.exp: corefile: a corefile thread is executing thread2
+PASS: gdb.threads/gcore-thread.exp: corefile: thread2 is current thread in corefile
+FAIL: gdb.threads/gcore-thread.exp: core0file: re-load generated corefile
+FAIL: gdb.threads/gcore-thread.exp: core0file: corefile contains at least two threads
+FAIL: gdb.threads/gcore-thread.exp: core0file: a corefile thread is executing thread2
+FAIL: gdb.threads/gcore-thread.exp: core0file: thread2 is current thread in corefile
+Running ./gdb.threads/hand-call-in-threads.exp ...
+PASS: gdb.threads/hand-call-in-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/hand-call-in-threads.exp: breakpoint on all_threads_running
+PASS: gdb.threads/hand-call-in-threads.exp: breakpoint on hand_call
+PASS: gdb.threads/hand-call-in-threads.exp: run to all_threads_running
+PASS: gdb.threads/hand-call-in-threads.exp: enable scheduler locking
+PASS: gdb.threads/hand-call-in-threads.exp: show scheduler locking on
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: set confirm off
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: all dummies popped
+PASS: gdb.threads/hand-call-in-threads.exp: disable scheduler locking
+PASS: gdb.threads/hand-call-in-threads.exp: show scheduler locking off
+Running ./gdb.threads/ia64-sigill.exp ...
+PASS: gdb.threads/ia64-sigill.exp: successfully compiled posix threads test case
+PASS: gdb.threads/ia64-sigill.exp: info addr label
+PASS: gdb.threads/ia64-sigill.exp: set $sigill_bpnum=$bpnum
+PASS: gdb.threads/ia64-sigill.exp: set debug infrun 1
+PASS: gdb.threads/ia64-sigill.exp: continue
+PASS: gdb.threads/ia64-sigill.exp: delete $sigill_bpnum
+PASS: gdb.threads/ia64-sigill.exp: continue for the pending signal
+Running ./gdb.threads/interrupted-hand-call.exp ...
+PASS: gdb.threads/interrupted-hand-call.exp: successfully compiled posix threads test case
+PASS: gdb.threads/interrupted-hand-call.exp: breakpoint on all_threads_running
+PASS: gdb.threads/interrupted-hand-call.exp: run to all_threads_running
+PASS: gdb.threads/interrupted-hand-call.exp: hand-call interrupted by signal in another thread
+PASS: gdb.threads/interrupted-hand-call.exp: dummy stack frame present
+PASS: gdb.threads/interrupted-hand-call.exp: finish hand-call
+PASS: gdb.threads/interrupted-hand-call.exp: dummy frame popped
+FAIL: gdb.threads/interrupted-hand-call.exp: setting breakpoint at exit
+Running ./gdb.threads/killed.exp ...
+PASS: gdb.threads/killed.exp: successfully compiled posix threads test case
+PASS: gdb.threads/killed.exp: run program to completion
+PASS: gdb.threads/killed.exp: GDB exits after multi-threaded program exits messily
+Running ./gdb.threads/leader-exit.exp ...
+PASS: gdb.threads/leader-exit.exp: successfully compiled posix threads test case
+FAIL: gdb.threads/leader-exit.exp: continue to breakpoint: break-here (timeout)
+FAIL: gdb.threads/leader-exit.exp: Single thread has been left (timeout)
+Running ./gdb.threads/linux-dp.exp ...
+PASS: gdb.threads/linux-dp.exp: successfully compiled posix threads test case
+PASS: gdb.threads/linux-dp.exp: set print sevenbit-strings
+PASS: gdb.threads/linux-dp.exp: info threads 1
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 0
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 0
+PASS: gdb.threads/linux-dp.exp: info threads after: 0
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 1
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 1
+PASS: gdb.threads/linux-dp.exp: info threads after: 1
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 2
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 2
+PASS: gdb.threads/linux-dp.exp: info threads after: 2
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 3
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 3
+PASS: gdb.threads/linux-dp.exp: info threads after: 3
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 4
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 4
+PASS: gdb.threads/linux-dp.exp: info threads after: 4
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: main thread's sleep
+PASS: gdb.threads/linux-dp.exp: info threads 2
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print
+FAIL: gdb.threads/linux-dp.exp: first thread-specific breakpoint hit
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 0
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 1
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 2
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 3
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 4
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 5
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 6
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 7
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 8
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 9
+PASS: gdb.threads/linux-dp.exp: thread-specific breakpoint is thread-specific
+PASS: gdb.threads/linux-dp.exp: selected thread: 1
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 1
+PASS: gdb.threads/linux-dp.exp: selected thread: 2
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 2
+PASS: gdb.threads/linux-dp.exp: selected thread: 3
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 3
+PASS: gdb.threads/linux-dp.exp: selected thread: 4
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 4
+PASS: gdb.threads/linux-dp.exp: selected thread: 5
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 5
+PASS: gdb.threads/linux-dp.exp: selected thread: 6
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 6
+PASS: gdb.threads/linux-dp.exp: found an interesting thread
+PASS: gdb.threads/linux-dp.exp: manager thread found (not found) when expected
+Running ./gdb.threads/local-watch-wrong-thread.exp ...
+Running ./gdb.threads/manythreads.exp ...
+PASS: gdb.threads/manythreads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/manythreads.exp: set print sevenbit-strings
+PASS: gdb.threads/manythreads.exp: shell stty intr '^C'
+PASS: gdb.threads/manythreads.exp: first continue
+PASS: gdb.threads/manythreads.exp: stop threads 1
+PASS: gdb.threads/manythreads.exp: info threads
+PASS: gdb.threads/manythreads.exp: give a name to the thread
+PASS: gdb.threads/manythreads.exp: check thread name
+PASS: gdb.threads/manythreads.exp: second continue
+PASS: gdb.threads/manythreads.exp: check for duplicate SIGINT
+PASS: gdb.threads/manythreads.exp: stop threads 2
+PASS: gdb.threads/manythreads.exp: GDB exits after stopping multithreaded program
+Running ./gdb.threads/multi-create.exp ...
+PASS: gdb.threads/multi-create.exp: successfully compiled posix threads test case
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 0
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 1
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 2
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 3
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 4
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 5
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 6
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 7
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 8
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 9
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 10
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 11
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 12
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 13
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 14
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 15
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 16
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 17
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 18
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 19
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 20
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 21
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 22
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 23
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 24
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 25
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 26
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 27
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 28
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 29
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 30
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 31
+Running ./gdb.threads/non-ldr-exc-1.exp ...
+Running ./gdb.threads/non-ldr-exc-2.exp ...
+Running ./gdb.threads/non-ldr-exc-3.exp ...
+Running ./gdb.threads/non-ldr-exc-4.exp ...
+Running ./gdb.threads/no-unwaited-for-left.exp ...
+PASS: gdb.threads/no-unwaited-for-left.exp: successfully compiled posix threads test case
+PASS: gdb.threads/no-unwaited-for-left.exp: continue to breakpoint: break-here
+PASS: gdb.threads/no-unwaited-for-left.exp: enable scheduler-locking, for thread 2
+FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when thread 2 exits (the program exited)
+FAIL: gdb.threads/no-unwaited-for-left.exp: only main thread left, thread 2 terminated
+PASS: gdb.threads/no-unwaited-for-left.exp: select main thread
+FAIL: gdb.threads/no-unwaited-for-left.exp: disable scheduler-locking, letting new thread start
+FAIL: gdb.threads/no-unwaited-for-left.exp: continue to breakpoint: break-here-2
+FAIL: gdb.threads/no-unwaited-for-left.exp: enable scheduler-locking, for main thread
+FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when the main thread exits (the program is no longer running)
+FAIL: gdb.threads/no-unwaited-for-left.exp: only thread 3 left, main thread terminated
+Running ./gdb.threads/pending-step.exp ...
+PASS: gdb.threads/pending-step.exp: successfully compiled posix threads test case
+PASS: gdb.threads/pending-step.exp: continue to breakpoint: continue to first breakpoint hit
+PASS: gdb.threads/pending-step.exp: next in multiple threads with breakpoints
+Running ./gdb.threads/print-threads.exp ...
+PASS: gdb.threads/print-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/print-threads.exp: set print sevenbit-strings
+PASS: gdb.threads/print-threads.exp: set width 0
+PASS: gdb.threads/print-threads.exp: shell stty intr '^C'
+PASS: gdb.threads/print-threads.exp: break thread_function
+PASS: gdb.threads/print-threads.exp: set var slow = 0
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 1 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 2 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 3 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 4 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 5 (fast)
+PASS: gdb.threads/print-threads.exp: program exited normally
+PASS: gdb.threads/print-threads.exp: all threads ran once (fast)
+PASS: gdb.threads/print-threads.exp: break thread_function (2)
+PASS: gdb.threads/print-threads.exp: set var slow = 1
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 1 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 2 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 3 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 4 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 5 (slow)
+PASS: gdb.threads/print-threads.exp: program exited normally
+PASS: gdb.threads/print-threads.exp: all threads ran once (slow)
+PASS: gdb.threads/print-threads.exp: break thread_function (3)
+PASS: gdb.threads/print-threads.exp: set var slow = 1 (2)
+FAIL: gdb.threads/print-threads.exp: setting breakpoint at kill
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 1 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 2 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 3 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 4 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 5 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: program exited normally
+PASS: gdb.threads/print-threads.exp: all threads ran once (slow with kill breakpoint)
+Running ./gdb.threads/pthread_cond_wait.exp ...
+PASS: gdb.threads/pthread_cond_wait.exp: successfully compiled posix threads test case
+PASS: gdb.threads/pthread_cond_wait.exp: breakpoint on break_me
+PASS: gdb.threads/pthread_cond_wait.exp: run to break_me
+FAIL: gdb.threads/pthread_cond_wait.exp: backtrace in blocked thread
+Running ./gdb.threads/pthreads.exp ...
+PASS: gdb.threads/pthreads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/pthreads.exp: set print sevenbit-strings
+PASS: gdb.threads/pthreads.exp: set width 0
+PASS: gdb.threads/pthreads.exp: shell stty intr '^C'
+PASS: gdb.threads/pthreads.exp: info threads
+PASS: gdb.threads/pthreads.exp: break thread1
+PASS: gdb.threads/pthreads.exp: Continue to creation of first thread
+PASS: gdb.threads/pthreads.exp: disable
+PASS: gdb.threads/pthreads.exp: break thread2
+PASS: gdb.threads/pthreads.exp: Continue to creation of second thread
+PASS: gdb.threads/pthreads.exp: set var common_routine::hits=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread1=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread2=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_main=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::full_coverage=0
+PASS: gdb.threads/pthreads.exp: disable
+PASS: gdb.threads/pthreads.exp: tbreak common_routine if hits >= 15
+PASS: gdb.threads/pthreads.exp: stopped before calling common_routine 15 times
+PASS: gdb.threads/pthreads.exp: All threads running after startup
+PASS: gdb.threads/pthreads.exp: Continue with all threads running
+PASS: gdb.threads/pthreads.exp: Stopped with a ^C
+PASS: gdb.threads/pthreads.exp: bt
+FAIL: gdb.threads/pthreads.exp: set var common_routine::hits=0
+FAIL: gdb.threads/pthreads.exp: set var common_routine::from_thread1=0
+FAIL: gdb.threads/pthreads.exp: set var common_routine::from_thread2=0
+FAIL: gdb.threads/pthreads.exp: set var common_routine::from_main=0
+FAIL: gdb.threads/pthreads.exp: set var common_routine::full_coverage=0
+PASS: gdb.threads/pthreads.exp: disable
+PASS: gdb.threads/pthreads.exp: tbreak common_routine if hits >= 15
+PASS: gdb.threads/pthreads.exp: stopped before calling common_routine 15 times
+PASS: gdb.threads/pthreads.exp: All threads running after continuing from ^C stop
+FAIL: gdb.threads/pthreads.exp: check backtrace from main thread
+FAIL: gdb.threads/pthreads.exp: check backtrace from thread 1
+FAIL: gdb.threads/pthreads.exp: check backtrace from thread 2
+FAIL: gdb.threads/pthreads.exp: apply backtrace command to all three threads
+PASS: gdb.threads/pthreads.exp: set break at common_routine in thread 2
+PASS: gdb.threads/pthreads.exp: continue to bkpt at common_routine in thread 2
+PASS: gdb.threads/pthreads.exp: backtrace from thread 2 bkpt in common_routine
+Running ./gdb.threads/schedlock.exp ...
+PASS: gdb.threads/schedlock.exp: successfully compiled posix threads test case
+PASS: gdb.threads/schedlock.exp: shell stty intr '^C'
+PASS: gdb.threads/schedlock.exp: set print sevenbit-strings
+PASS: gdb.threads/schedlock.exp: set width 0
+PASS: gdb.threads/schedlock.exp: scheduler locking set to none
+PASS: gdb.threads/schedlock.exp: continue to breakpoint: all threads started
+PASS: gdb.threads/schedlock.exp: listed args (1)
+PASS: gdb.threads/schedlock.exp: continue (initial)
+PASS: gdb.threads/schedlock.exp: stop all threads (initial)
+PASS: gdb.threads/schedlock.exp: continue to breakpoint: return to loop (initial)
+PASS: gdb.threads/schedlock.exp: listed args (2)
+PASS: gdb.threads/schedlock.exp: all threads alive
+PASS: gdb.threads/schedlock.exp: find current thread (1)
+PASS: gdb.threads/schedlock.exp: set scheduler-locking off
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 0)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 1)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 2)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 3)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 4)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 5)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 6)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 7)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 8)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 9)
+PASS: gdb.threads/schedlock.exp: find current thread (2)
+PASS: gdb.threads/schedlock.exp: step without lock does not change thread
+PASS: gdb.threads/schedlock.exp: listed args (3)
+PASS: gdb.threads/schedlock.exp: current thread stepped
+PASS: gdb.threads/schedlock.exp: other threads ran - unlocked
+PASS: gdb.threads/schedlock.exp: set scheduler-locking on
+PASS: gdb.threads/schedlock.exp: continue (with lock)
+PASS: gdb.threads/schedlock.exp: stop all threads (with lock)
+PASS: gdb.threads/schedlock.exp: continue to breakpoint: return to loop (with lock)
+PASS: gdb.threads/schedlock.exp: find current thread (3)
+PASS: gdb.threads/schedlock.exp: continue with lock does not change thread
+PASS: gdb.threads/schedlock.exp: listed args (4)
+PASS: gdb.threads/schedlock.exp: current thread ran
+PASS: gdb.threads/schedlock.exp: other threads didn't run - locked
+PASS: gdb.threads/schedlock.exp: step to increment (locked 0)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 1)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 2)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 3)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 4)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 5)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 6)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 7)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 8)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 9)
+PASS: gdb.threads/schedlock.exp: find current thread (2)
+PASS: gdb.threads/schedlock.exp: step with lock does not change thread
+PASS: gdb.threads/schedlock.exp: listed args (5)
+PASS: gdb.threads/schedlock.exp: current thread stepped locked
+PASS: gdb.threads/schedlock.exp: other threads didn't run - step locked
+Running ./gdb.threads/siginfo-threads.exp ...
+PASS: gdb.threads/siginfo-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/siginfo-threads.exp: handle SIGUSR1 stop print pass
+PASS: gdb.threads/siginfo-threads.exp: handle SIGUSR2 stop print pass
+PASS: gdb.threads/siginfo-threads.exp: get pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 0
+PASS: gdb.threads/siginfo-threads.exp: signal 0 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 0 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 0 si_pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 1
+PASS: gdb.threads/siginfo-threads.exp: signal 1 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 1 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 1 si_pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 2
+PASS: gdb.threads/siginfo-threads.exp: signal 2 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 2 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 2 si_pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 3
+PASS: gdb.threads/siginfo-threads.exp: signal 3 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 3 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 3 si_pid
+PASS: gdb.threads/siginfo-threads.exp: continue to breakpoint: break-at-exit
+Running ./gdb.threads/sigstep-threads.exp ...
+PASS: gdb.threads/sigstep-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/sigstep-threads.exp: handle SIGUSR1 nostop print pass
+PASS: gdb.threads/sigstep-threads.exp: set scheduler-locking off
+PASS: gdb.threads/sigstep-threads.exp: set $step1=$bpnum
+PASS: gdb.threads/sigstep-threads.exp: continue to breakpoint: step-1
+PASS: gdb.threads/sigstep-threads.exp: disable $step1
+PASS: gdb.threads/sigstep-threads.exp: step
+Running ./gdb.threads/sigthread.exp ...
+PASS: gdb.threads/sigthread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/sigthread.exp: handle SIGUSR1 nostop noprint pass
+PASS: gdb.threads/sigthread.exp: handle SIGUSR2 nostop noprint pass
+PASS: gdb.threads/sigthread.exp: continue
+PASS: gdb.threads/sigthread.exp: stop with control-c
+Running ./gdb.threads/staticthreads.exp ...
+PASS: gdb.threads/staticthreads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/staticthreads.exp: set print sevenbit-strings
+PASS: gdb.threads/staticthreads.exp: break sem_post
+PASS: gdb.threads/staticthreads.exp: Continue to main's call of sem_post
+PASS: gdb.threads/staticthreads.exp: rerun to main
+PASS: gdb.threads/staticthreads.exp: handle SIG32 nostop noprint pass
+PASS: gdb.threads/staticthreads.exp: handle SIG32 helps
+PASS: gdb.threads/staticthreads.exp: info threads
+PASS: gdb.threads/staticthreads.exp: GDB exits with static thread program
+Running ./gdb.threads/switch-threads.exp ...
+PASS: gdb.threads/switch-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/switch-threads.exp: continue to breakpoint: continue to thread_func
+PASS: gdb.threads/switch-threads.exp: next
+Running ./gdb.threads/threadapply.exp ...
+PASS: gdb.threads/threadapply.exp: successfully compiled posix threads test case
+PASS: gdb.threads/threadapply.exp: b 62
+PASS: gdb.threads/threadapply.exp: continue
+PASS: gdb.threads/threadapply.exp: macro details
+PASS: gdb.threads/threadapply.exp: defining macro
+PASS: gdb.threads/threadapply.exp: set backtrace limit 3
+PASS: gdb.threads/threadapply.exp: thread apply all backthread
+PASS: gdb.threads/threadapply.exp: step to the thread_function
+PASS: gdb.threads/threadapply.exp: go up in the stack frame
+PASS: gdb.threads/threadapply.exp: run a simple print command on all threads
+PASS: gdb.threads/threadapply.exp: go down and check selected frame
+Running ./gdb.threads/thread_check.exp ...
+PASS: gdb.threads/thread_check.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread_check.exp: breakpoint at tf
+PASS: gdb.threads/thread_check.exp: continue to tf
+PASS: gdb.threads/thread_check.exp: backtrace from thread function
+Running ./gdb.threads/thread_events.exp ...
+Running ./gdb.threads/thread-execl.exp ...
+Running ./gdb.threads/thread-find.exp ...
+PASS: gdb.threads/thread-find.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread-find.exp: set print sevenbit-strings
+PASS: gdb.threads/thread-find.exp: continue to breakpoint: main thread's sleep
+PASS: gdb.threads/thread-find.exp: info threads
+PASS: gdb.threads/thread-find.exp: name thread 1
+PASS: gdb.threads/thread-find.exp: name thread 2
+PASS: gdb.threads/thread-find.exp: name thread 3
+PASS: gdb.threads/thread-find.exp: name thread 4
+PASS: gdb.threads/thread-find.exp: name thread 5
+PASS: gdb.threads/thread-find.exp: name thread 6
+PASS: gdb.threads/thread-find.exp: collect thread id
+PASS: gdb.threads/thread-find.exp: got thread ids
+PASS: gdb.threads/thread-find.exp: collect process id
+PASS: gdb.threads/thread-find.exp: collect lwp id
+PASS: gdb.threads/thread-find.exp: find thread name 6
+PASS: gdb.threads/thread-find.exp: find thread name 5
+PASS: gdb.threads/thread-find.exp: find thread name 4
+PASS: gdb.threads/thread-find.exp: find thread name 3
+PASS: gdb.threads/thread-find.exp: find thread name 2
+PASS: gdb.threads/thread-find.exp: find thread name 1
+PASS: gdb.threads/thread-find.exp: find thread id 6
+PASS: gdb.threads/thread-find.exp: find thread id 5
+PASS: gdb.threads/thread-find.exp: find thread id 4
+PASS: gdb.threads/thread-find.exp: find thread id 3
+PASS: gdb.threads/thread-find.exp: find thread id 2
+PASS: gdb.threads/thread-find.exp: find thread id 1
+PASS: gdb.threads/thread-find.exp: no thread
+PASS: gdb.threads/thread-find.exp: test regular exp
+PASS: gdb.threads/thread-find.exp: info threads 2 4 6
+PASS: gdb.threads/thread-find.exp: info threads 3-5
+PASS: gdb.threads/thread-find.exp: test inverted range
+PASS: gdb.threads/thread-find.exp: info threads 3-3
+PASS: gdb.threads/thread-find.exp: info thread foo
+PASS: gdb.threads/thread-find.exp: info thread foo -1
+Running ./gdb.threads/thread-specific.exp ...
+PASS: gdb.threads/thread-specific.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread-specific.exp: set print sevenbit-strings
+PASS: gdb.threads/thread-specific.exp: set width 0
+PASS: gdb.threads/thread-specific.exp: thread var when not running
+PASS: gdb.threads/thread-specific.exp: continue to breakpoint: all threads started
+PASS: gdb.threads/thread-specific.exp: get threads list
+PASS: gdb.threads/thread-specific.exp: thread var in main
+PASS: gdb.threads/thread-specific.exp: breakpoint 59 main thread
+PASS: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint
+PASS: gdb.threads/thread-specific.exp: found breakpoint for thread number
+PASS: gdb.threads/thread-specific.exp: thread var at break
+Running ./gdb.threads/thread-unwindonsignal.exp ...
+PASS: gdb.threads/thread-unwindonsignal.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread-unwindonsignal.exp: breakpoint on all_threads_running
+PASS: gdb.threads/thread-unwindonsignal.exp: run to all_threads_running
+PASS: gdb.threads/thread-unwindonsignal.exp: setting unwindonsignal
+PASS: gdb.threads/thread-unwindonsignal.exp: showing unwindonsignal
+PASS: gdb.threads/thread-unwindonsignal.exp: hand-call interrupted by signal in another thread
+PASS: gdb.threads/thread-unwindonsignal.exp: dummy stack frame present
+FAIL: gdb.threads/thread-unwindonsignal.exp: wrong thread not unwound
+PASS: gdb.threads/thread-unwindonsignal.exp: finish hand-call
+PASS: gdb.threads/thread-unwindonsignal.exp: dummy frame popped
+FAIL: gdb.threads/thread-unwindonsignal.exp: setting breakpoint at exit
+Running ./gdb.threads/threxit-hop-specific.exp ...
+PASS: gdb.threads/threxit-hop-specific.exp: successfully compiled posix threads test case
+PASS: gdb.threads/threxit-hop-specific.exp: continue to thread start
+PASS: gdb.threads/threxit-hop-specific.exp: set thread specific breakpoint
+PASS: gdb.threads/threxit-hop-specific.exp: get past the thread specific breakpoint
+Running ./gdb.threads/tls.exp ...
+PASS: gdb.threads/tls.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls.exp: set breakpoint at all threads
+PASS: gdb.threads/tls.exp: set breakpoint at synch point
+PASS: gdb.threads/tls.exp: set breakpoint at exit
+PASS: gdb.threads/tls.exp: continue to first thread: get to thread
+PASS: gdb.threads/tls.exp: at least one th in spin while stopped at first th
+PASS: gdb.threads/tls.exp: first thread print me
+FAIL: gdb.threads/tls.exp: first thread local storage
+FAIL: gdb.threads/tls.exp: first another thread local storage
+PASS: gdb.threads/tls.exp: first info address a_thread_local
+PASS: gdb.threads/tls.exp: first info address another_thread_local
+PASS: gdb.threads/tls.exp: continue to second thread
+PASS: gdb.threads/tls.exp: at least one th in spin while stopped at second th
+PASS: gdb.threads/tls.exp: second thread print me
+FAIL: gdb.threads/tls.exp: second thread local storage
+FAIL: gdb.threads/tls.exp: second another thread local storage
+PASS: gdb.threads/tls.exp: second info address a_thread_local
+PASS: gdb.threads/tls.exp: second info address another_thread_local
+PASS: gdb.threads/tls.exp: continue to third thread
+PASS: gdb.threads/tls.exp: at least one th in spin while stopped at third th
+PASS: gdb.threads/tls.exp: third thread print me
+FAIL: gdb.threads/tls.exp: third thread local storage
+FAIL: gdb.threads/tls.exp: third another thread local storage
+PASS: gdb.threads/tls.exp: third info address a_thread_local
+PASS: gdb.threads/tls.exp: third info address another_thread_local
+PASS: gdb.threads/tls.exp: continue to synch point
+PASS: gdb.threads/tls.exp: get number of threads
+PASS: gdb.threads/tls.exp: selected thread: 1
+PASS: gdb.threads/tls.exp: backtrace of thread number 1 not relevant
+PASS: gdb.threads/tls.exp: selected thread: 2
+PASS: gdb.threads/tls.exp: backtrace of thread number 2 not relevant
+PASS: gdb.threads/tls.exp: selected thread: 3
+PASS: gdb.threads/tls.exp: backtrace of thread number 3 not relevant
+PASS: gdb.threads/tls.exp: selected thread: 4
+PASS: gdb.threads/tls.exp: backtrace of thread number 4 not relevant
+FAIL: gdb.threads/tls.exp: No thread backtrace reported spin (vsyscall kernel problem?)
+PASS: gdb.threads/tls.exp: threads exited
+PASS: gdb.threads/tls.exp: Expect only base thread at end
+PASS: gdb.threads/tls.exp: info address a_global
+FAIL: gdb.threads/tls.exp: info address me
+FAIL: gdb.threads/tls.exp: p a_thread_local
+FAIL: gdb.threads/tls.exp: p file2_thread_local
+PASS: gdb.threads/tls.exp: info address file2_thread_local
+FAIL: gdb.threads/tls.exp: p a_thread_local second time
+PASS: gdb.threads/tls.exp: info address a_thread_local
+Running ./gdb.threads/tls-nodebug.exp ...
+PASS: gdb.threads/tls-nodebug.exp: successfully compiled posix threads test case
+FAIL: gdb.threads/tls-nodebug.exp: thread local storage
+Running ./gdb.threads/tls-shared.exp ...
+PASS: gdb.threads/tls-shared.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls-shared.exp: successfully compiled posix threads test case
+FAIL: gdb.threads/tls-shared.exp: print thread local storage variable
+PASS: gdb.threads/tls-shared.exp: ptype of thread local storage variable
+PASS: gdb.threads/tls-shared.exp: print storage info for thread local storage variable
+PASS: gdb.threads/tls-shared.exp: break at and of main
+PASS: gdb.threads/tls-shared.exp: continue to break
+PASS: gdb.threads/tls-shared.exp: print result
+Running ./gdb.threads/tls-var.exp ...
+PASS: gdb.threads/tls-var.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls-var.exp: whatis tls_var
+FAIL: gdb.threads/tls-var.exp: print tls_var
+Running ./gdb.threads/watchpoint-fork.exp ...
+KFAIL: gdb.threads/watchpoint-fork.exp: gdbserver does not support debugging across fork (PRMS: remote/13584)
+Running ./gdb.threads/watchthreads2.exp ...
+Running ./gdb.threads/watchthreads.exp ...
+Running ./gdb.threads/watchthreads-reorder.exp ...
+Running ./gdb.trace/actions.exp ...
+PASS: gdb.trace/actions.exp: 5.1a: set three tracepoints, no actions
+PASS: gdb.trace/actions.exp: 5.1b: set actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.1c: verify actions set for first tracepoint
+PASS: gdb.trace/actions.exp: 5.1d: set actions for second tracepoint
+PASS: gdb.trace/actions.exp: 5.1e: verify actions set for second tracepoint
+PASS: gdb.trace/actions.exp: 5.2a: set actions for last (default) tracepoint
+PASS: gdb.trace/actions.exp: 5.2b: verify actions set for second tracepoint
+PASS: gdb.trace/actions.exp: 5.3a: reset actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.3b: verify actions set for first tracepoint
+PASS: gdb.trace/actions.exp: 5.4: 'end' command out of context
+PASS: gdb.trace/actions.exp: 5.5a: set empty actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.5c: verify NO actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.6: actions for invalid tracepoint number
+PASS: gdb.trace/actions.exp: 5.7: invalid action
+PASS: gdb.trace/actions.exp: 5.8a: help actions
+PASS: gdb.trace/actions.exp: 5.8b: help collect
+PASS: gdb.trace/actions.exp: 5.8c: help while-stepping
+PASS: gdb.trace/actions.exp: 5.8d: help end
+PASS: gdb.trace/actions.exp: 5.9a: set default-collect
+PASS: gdb.trace/actions.exp: 5.9b: show default-collect
+PASS: gdb.trace/actions.exp: 5.9c: set default-collect
+PASS: gdb.trace/actions.exp: Create a trace state variable
+PASS: gdb.trace/actions.exp: 5.10a: set teval action for first tracepoint
+PASS: gdb.trace/actions.exp: 5.10a: set teval action for second tracepoint
+PASS: gdb.trace/actions.exp: 5.10a: verify teval actions set for two tracepoints
+Running ./gdb.trace/ax.exp ...
+PASS: gdb.trace/ax.exp: maint agent 12
+PASS: gdb.trace/ax.exp: maint agent gdb_char_test
+PASS: gdb.trace/ax.exp: maint agent gdb_arr_test[12]
+PASS: gdb.trace/ax.exp: maint agent gdb_arr_test[gdb_short_test]
+PASS: gdb.trace/ax.exp: maint agent gdb_struct1_test
+PASS: gdb.trace/ax.exp: maint agent gdb_struct1_test.s
+PASS: gdb.trace/ax.exp: maint agent gdb_struct1_test.arr[gdb_struct1_test.c]
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test->l
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test->bfield
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test + gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test - gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test * gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test / gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test + 1
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test == gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test != gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test < gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test <= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test > gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test >= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent &gdb_long_test == &gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent &gdb_long_test < &gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval 12
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_char_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_arr_test[12]
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_arr_test[gdb_short_test]
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_struct1_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_struct1_test.s
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_struct1_test.arr[gdb_struct1_test.c]
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test->l
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test->bfield
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test + gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test - gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test * gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test / gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test + 1
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test == gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test != gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test < gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test <= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test > gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test >= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval &gdb_long_test == &gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval &gdb_long_test < &gdb_short_test
+Running ./gdb.trace/backtrace.exp ...
+UNSUPPORTED: gdb.trace/backtrace.exp: Current target does not support trace
+Running ./gdb.trace/change-loc.exp ...
+UNSUPPORTED: gdb.trace/change-loc.exp: Current target does not support trace
+Running ./gdb.trace/circ.exp ...
+PASS: gdb.trace/circ.exp: set circular-trace-buffer on
+PASS: gdb.trace/circ.exp: show circular-trace-buffer (on)
+PASS: gdb.trace/circ.exp: set circular-trace-buffer off
+PASS: gdb.trace/circ.exp: show circular-trace-buffer (off)
+UNSUPPORTED: gdb.trace/circ.exp: Current target does not support trace
+Running ./gdb.trace/collection.exp ...
+UNSUPPORTED: gdb.trace/collection.exp: Current target does not support trace
+Running ./gdb.trace/deltrace.exp ...
+PASS: gdb.trace/deltrace.exp: set tracepoint 1
+PASS: gdb.trace/deltrace.exp: set tracepoint 2
+PASS: gdb.trace/deltrace.exp: set tracepoint 3
+PASS: gdb.trace/deltrace.exp: 3.1a: set three tracepoints
+PASS: gdb.trace/deltrace.exp: 3.1b: delete all tracepoints
+PASS: gdb.trace/deltrace.exp: 3.2a: set three tracepoints
+PASS: gdb.trace/deltrace.exp: 3.2b: delete first tracepoint
+PASS: gdb.trace/deltrace.exp: 3.2c: verify delete first tracepoint
+PASS: gdb.trace/deltrace.exp: 3.2d: delete second tracepoint
+PASS: gdb.trace/deltrace.exp: 3.2e: verify delete second tracepoint
+PASS: gdb.trace/deltrace.exp: 3.2f: delete third tracepoint
+PASS: gdb.trace/deltrace.exp: 3.2g: verify delete third tracepoint
+PASS: gdb.trace/deltrace.exp: 3.3a: set three tracepoints
+PASS: gdb.trace/deltrace.exp: 3.3b: delete three tracepoints
+PASS: gdb.trace/deltrace.exp: 3.3c: verify delete three tracepoints
+PASS: gdb.trace/deltrace.exp: 3.4: delete invalid tracepoint number
+PASS: gdb.trace/deltrace.exp: 3.5: delete tracepoint number zero
+PASS: gdb.trace/deltrace.exp: 3.6: help delete tracepoints
+Running ./gdb.trace/disconnected-tracing.exp ...
+UNSUPPORTED: gdb.trace/disconnected-tracing.exp: target does not support trace
+Running ./gdb.trace/ftrace.exp ...
+UNSUPPORTED: gdb.trace/ftrace.exp: target does not support trace
+Running ./gdb.trace/infotrace.exp ...
+PASS: gdb.trace/infotrace.exp: 2.1: info tracepoints (all)
+PASS: gdb.trace/infotrace.exp: 2.2a: info tracepoint 1 (gdb_c_test)
+PASS: gdb.trace/infotrace.exp: 2.2b: info tracepoint 2 (gdb_asm_test)
+PASS: gdb.trace/infotrace.exp: 2.3: info tracepoint (invalid tracepoint number)
+PASS: gdb.trace/infotrace.exp: 2.4: info trace rejects multiple tracepoint numbers
+PASS: gdb.trace/infotrace.exp: 2.5: help info tracepoints
+PASS: gdb.trace/infotrace.exp: collect on tracepoint 1
+UNSUPPORTED: gdb.trace/infotrace.exp: Current target does not support trace
+Running ./gdb.trace/mi-traceframe-changed.exp ...
+ERROR: remote_download to host of  to basic.tf: cp: missing destination file operand after 'basic.tf'
+Try 'cp --help' for more information.
+UNRESOLVED: gdb.trace/mi-traceframe-changed.exp: tfile: select trace file
+FAIL: gdb.trace/mi-traceframe-changed.exp: tfile: tfind 0
+FAIL: gdb.trace/mi-traceframe-changed.exp: tfile: tfind 0 again
+FAIL: gdb.trace/mi-traceframe-changed.exp: tfile: tfind end
+FAIL: gdb.trace/mi-traceframe-changed.exp: tfile: -trace-find frame-number 0
+UNSUPPORTED: gdb.trace/mi-traceframe-changed.exp: Current target does not support trace
+Running ./gdb.trace/mi-tracepoint-changed.exp ...
+UNSUPPORTED: gdb.trace/mi-tracepoint-changed.exp: Current target does not support trace
+Running ./gdb.trace/mi-tsv-changed.exp ...
+PASS: gdb.trace/mi-tsv-changed.exp: create delete modify: tvariable $tvar1
+PASS: gdb.trace/mi-tsv-changed.exp: create delete modify: tvariable $tvar1 modified
+PASS: gdb.trace/mi-tsv-changed.exp: create delete modify: tvariable $tvar1 modified without notification
+PASS: gdb.trace/mi-tsv-changed.exp: create delete modify: tvariable $tvar2
+PASS: gdb.trace/mi-tsv-changed.exp: create delete modify: delete tvariable $tvar2
+PASS: gdb.trace/mi-tsv-changed.exp: create delete modify: delete all tvariables
+UNSUPPORTED: gdb.trace/mi-tsv-changed.exp: create delete modify: Current target does not support trace
+UNSUPPORTED: gdb.trace/mi-tsv-changed.exp: Current target does not support trace
+Running ./gdb.trace/packetlen.exp ...
+UNSUPPORTED: gdb.trace/packetlen.exp: Current target does not support trace
+Running ./gdb.trace/passc-dyn.exp ...
+UNSUPPORTED: gdb.trace/passc-dyn.exp: Current target does not support trace
+Running ./gdb.trace/passcount.exp ...
+PASS: gdb.trace/passcount.exp: 4.1a: set three tracepoints, passcounts all zero
+PASS: gdb.trace/passcount.exp: 4.1b: set 1st tracepoint's passcount to two
+PASS: gdb.trace/passcount.exp: 4.1c: verify 1st tracepoint's passcount set to two
+PASS: gdb.trace/passcount.exp: 4.1d: set 2nd tracepoint's passcount to four
+PASS: gdb.trace/passcount.exp: 4.1c: verify 2nd tracepoint's passcount set to four
+PASS: gdb.trace/passcount.exp: 4.2b: set last (default) tp's passcount to six
+PASS: gdb.trace/passcount.exp: 4.2b: verify last (default) tp's passcount set to six
+PASS: gdb.trace/passcount.exp: 4.4a: reset last (default) tp's passcount to seven
+PASS: gdb.trace/passcount.exp: 4.4a: verify reset last (default) tp's passcount to seven
+PASS: gdb.trace/passcount.exp: 4.4b: reset second tracepoint's passcount to five
+PASS: gdb.trace/passcount.exp: 4.4c: verify reset second tracepoint's passcount to five
+PASS: gdb.trace/passcount.exp: 4.20a: set all three passcounts to three
+PASS: gdb.trace/passcount.exp: 4.20a: set all three passcounts to three
+PASS: gdb.trace/passcount.exp: 4.20a: reset all three passcounts to four
+PASS: gdb.trace/passcount.exp: 4.20b: reset all three passcounts to four
+PASS: gdb.trace/passcount.exp: 4.6: set passcount to zero
+PASS: gdb.trace/passcount.exp: 4.6: set passcount to zero
+PASS: gdb.trace/passcount.exp: 4.7: set passcount to large number (32767)
+PASS: gdb.trace/passcount.exp: 4.7: set passcount to large number (32767)
+PASS: gdb.trace/passcount.exp: 4.8: invalid tracepoint number in passcount
+PASS: gdb.trace/passcount.exp: 4.9: help passcount
+Running ./gdb.trace/pending.exp ...
+UNSUPPORTED: gdb.trace/pending.exp: Current target does not support trace
+Running ./gdb.trace/qtro.exp ...
+PASS: gdb.trace/qtro.exp: probe for target remote
+UNSUPPORTED: gdb.trace/qtro.exp: Current target does not support trace
+Running ./gdb.trace/report.exp ...
+UNSUPPORTED: gdb.trace/report.exp: Current target does not support trace
+Running ./gdb.trace/save-trace.exp ...
+PASS: gdb.trace/save-trace.exp: 10.x: set passcount for tracepoint 1
+PASS: gdb.trace/save-trace.exp: 10.x: set condition for tracepoint 1
+PASS: gdb.trace/save-trace.exp: 10.x: set actions for tracepoint 1
+PASS: gdb.trace/save-trace.exp: 10.x: set passcount for tracepoint 2
+PASS: gdb.trace/save-trace.exp: 10.x: set condition for tracepoint 2
+PASS: gdb.trace/save-trace.exp: 10.x: set actions for tracepoint 2
+PASS: gdb.trace/save-trace.exp: 10.x: set passcount for tracepoint 3
+PASS: gdb.trace/save-trace.exp: 10.x: set condition for tracepoint 3
+PASS: gdb.trace/save-trace.exp: 10.x: set actions for tracepoint 3
+PASS: gdb.trace/save-trace.exp: 10.x: set passcount for tracepoint 4
+PASS: gdb.trace/save-trace.exp: 10.x: set condition for tracepoint 4
+PASS: gdb.trace/save-trace.exp: 10.x: set actions for tracepoint 4
+PASS: gdb.trace/save-trace.exp: 10.x: set passcount for tracepoint 5
+PASS: gdb.trace/save-trace.exp: 10.x: set condition for tracepoint 5
+PASS: gdb.trace/save-trace.exp: 10.x: set actions for tracepoint 5
+PASS: gdb.trace/save-trace.exp: 10.x: set passcount for tracepoint 6
+PASS: gdb.trace/save-trace.exp: 10.x: set condition for tracepoint 6
+PASS: gdb.trace/save-trace.exp: 10.x: set actions for tracepoint 6
+PASS: gdb.trace/save-trace.exp: 10: set default-collect
+PASS: gdb.trace/save-trace.exp: 10.x: verify trace setup
+PASS: gdb.trace/save-trace.exp: 10: show default-collect
+PASS: gdb.trace/save-trace.exp: 10.1: save tracepoint definitions
+PASS: gdb.trace/save-trace.exp: 10.2: clear default-collect
+PASS: gdb.trace/save-trace.exp: 10.2: delete tracepoints
+PASS: gdb.trace/save-trace.exp: 10.2: read back saved tracepoints
+PASS: gdb.trace/save-trace.exp: 10.2: verify recovered tracepoints
+PASS: gdb.trace/save-trace.exp: 10: show default-collect
+PASS: gdb.trace/save-trace.exp: 10.3: save tracepoint definitions, full path
+PASS: gdb.trace/save-trace.exp: 10.3: clear default-collect
+PASS: gdb.trace/save-trace.exp: 10.3: delete tracepoints
+PASS: gdb.trace/save-trace.exp: 10.4: read saved tracepoints, full path
+PASS: gdb.trace/save-trace.exp: 10.3: verify recovered tracepoints, full path
+PASS: gdb.trace/save-trace.exp: 10: show default-collect
+PASS: gdb.trace/save-trace.exp: 10.7: help save-tracepoints
+Running ./gdb.trace/stap-trace.exp ...
+Running ./gdb.trace/status-stop.exp ...
+UNSUPPORTED: gdb.trace/status-stop.exp: target does not support trace
+Running ./gdb.trace/strace.exp ...
+UNTESTED: gdb.trace/strace.exp: UST library or headers are not installed
+Running ./gdb.trace/tfile.exp ...
+ERROR: remote_download to host of  to basic.tf: cp: missing destination file operand after 'basic.tf'
+Try 'cp --help' for more information.
+ERROR: remote_download to host of  to error.tf: cp: missing destination file operand after 'error.tf'
+Try 'cp --help' for more information.
+UNRESOLVED: gdb.trace/tfile.exp: target tfile
+FAIL: gdb.trace/tfile.exp: info tracepoints on trace file
+FAIL: gdb.trace/tfile.exp: tfind 0 on trace file
+PASS: gdb.trace/tfile.exp: print testglob on trace file
+PASS: gdb.trace/tfile.exp: print testglob2 on trace file
+PASS: gdb.trace/tfile.exp: print constglob on trace file
+PASS: gdb.trace/tfile.exp: tfind does not find a second frame in trace file
+FAIL: gdb.trace/tfile.exp: tstatus on trace file
+PASS: gdb.trace/tfile.exp: leave tfind mode
+PASS: gdb.trace/tfile.exp: no stack if no traceframe selected
+PASS: gdb.trace/tfile.exp: no registers if no traceframe selected
+FAIL: gdb.trace/tfile.exp: target tfile
+FAIL: gdb.trace/tfile.exp: tstatus on error trace file
+FAIL: gdb.trace/tfile.exp: interpreter-exec mi "-target-select tfile basic.tf"
+FAIL: gdb.trace/tfile.exp: -trace-status
+Running ./gdb.trace/tfind.exp ...
+PASS: gdb.trace/tfind.exp: 6.2: help tstart
+PASS: gdb.trace/tfind.exp: 7.2: help tstop
+PASS: gdb.trace/tfind.exp: 8.38: help tfind
+PASS: gdb.trace/tfind.exp: 8.38: help tfind PC
+PASS: gdb.trace/tfind.exp: 8.38: help tfind end
+PASS: gdb.trace/tfind.exp: 8.38: help tfind none
+PASS: gdb.trace/tfind.exp: 8.38: help tfind line
+PASS: gdb.trace/tfind.exp: 8.38: help tfind start
+PASS: gdb.trace/tfind.exp: 8.38: help tfind range
+PASS: gdb.trace/tfind.exp: 8.38: help tfind tracepoint
+UNSUPPORTED: gdb.trace/tfind.exp: Current target does not support trace
+Running ./gdb.trace/trace-break.exp ...
+UNSUPPORTED: gdb.trace/trace-break.exp: target does not support trace
+Running ./gdb.trace/trace-buffer-size.exp ...
+UNSUPPORTED: gdb.trace/trace-buffer-size.exp: target does not support trace
+Running ./gdb.trace/tracecmd.exp ...
+PASS: gdb.trace/tracecmd.exp: 1.0: help tracepoints
+PASS: gdb.trace/tracecmd.exp: 1.1a: set tracepoint at sourceline
+PASS: gdb.trace/tracecmd.exp: 1.1b: trace sourcefile:line
+PASS: gdb.trace/tracecmd.exp: set breakpoint pending off
+PASS: gdb.trace/tracecmd.exp: 1.2a: trace invalid line in sourcefile
+PASS: gdb.trace/tracecmd.exp: 1.2b: reject invalid line in srcfile
+PASS: gdb.trace/tracecmd.exp: 1.3a: trace invalid source file
+PASS: gdb.trace/tracecmd.exp: 1.3b: reject invalid srcfile
+PASS: gdb.trace/tracecmd.exp: 1.4a: trace function by name
+PASS: gdb.trace/tracecmd.exp: 1.4b: trace function by name
+PASS: gdb.trace/tracecmd.exp: 1.5a: trace invalid function
+PASS: gdb.trace/tracecmd.exp: 1.5b: reject invalid srcfile
+PASS: gdb.trace/tracecmd.exp: 1.6a: trace at specific address
+PASS: gdb.trace/tracecmd.exp: 1.6b: verify trace at specific address
+PASS: gdb.trace/tracecmd.exp: 1.7a: trace at function label (before prologue)
+PASS: gdb.trace/tracecmd.exp: 1.7b: verify trace at specific address
+PASS: gdb.trace/tracecmd.exp: 1.9: trace <no arguments>
+PASS: gdb.trace/tracecmd.exp: 1.11a: conditional tracepoint
+PASS: gdb.trace/tracecmd.exp: 1.11b: verify conditional tracepoint
+PASS: gdb.trace/tracecmd.exp: 1.14: help trace
+PASS: gdb.trace/tracecmd.exp: Set a fast tracepoint
+Running ./gdb.trace/trace-mt.exp ...
+PASS: gdb.trace/trace-mt.exp: successfully compiled posix threads test case
+UNSUPPORTED: gdb.trace/trace-mt.exp: target does not support trace
+Running ./gdb.trace/tspeed.exp ...
+gdb compile failed, armv7a-cros-linux-gnueabi-gcc.real: error: /var/tmp/portage/cross-armv7a-cros-linux-gnueabi/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../gdbserver/libinproctrace.so: No such file or directory
+UNTESTED: gdb.trace/tspeed.exp: tspeed.exp
+Running ./gdb.trace/tstatus.exp ...
+UNSUPPORTED: gdb.trace/tstatus.exp: target does not support trace
+Running ./gdb.trace/tsv.exp ...
+PASS: gdb.trace/tsv.exp: Create a trace state variable
+PASS: gdb.trace/tsv.exp: Create a trace state variable with initial value
+PASS: gdb.trace/tsv.exp: Change initial value of a trace state variable
+PASS: gdb.trace/tsv.exp: Create a trace state variable with expression
+PASS: gdb.trace/tsv.exp: Init trace state variable to a 64-bit value
+PASS: gdb.trace/tsv.exp: tvariable syntax error, not empty variable name
+PASS: gdb.trace/tsv.exp: tvariable syntax error, bad name
+PASS: gdb.trace/tsv.exp: tvariable syntax error, bad name 2
+PASS: gdb.trace/tsv.exp: tvariable syntax error, bad name 3
+PASS: gdb.trace/tsv.exp: tvariable syntax error, not an assignment
+PASS: gdb.trace/tsv.exp: tvariable creation fails with invalid expression
+PASS: gdb.trace/tsv.exp: List tvariables
+PASS: gdb.trace/tsv.exp: Print a trace state variable before run
+PASS: gdb.trace/tsv.exp: delete trace state variable
+PASS: gdb.trace/tsv.exp: List tvariables after deletion
+PASS: gdb.trace/tsv.exp: Delete all trace state variables
+PASS: gdb.trace/tsv.exp: List tvariables after deleting all
+UNSUPPORTED: gdb.trace/tsv.exp: Current target does not support trace
+Running ./gdb.trace/unavailable.exp ...
+UNSUPPORTED: gdb.trace/unavailable.exp: Current target does not support trace
+Running ./gdb.trace/while-dyn.exp ...
+UNSUPPORTED: gdb.trace/while-dyn.exp: Current target does not support trace
+Running ./gdb.trace/while-stepping.exp ...
+PASS: gdb.trace/while-stepping.exp: 5.12: set a tracepoint, stepcount is zero
+PASS: gdb.trace/while-stepping.exp: 5.12: set stepcount to 12
+PASS: gdb.trace/while-stepping.exp: 5.12: info trace shows "while-stepping"
+PASS: gdb.trace/while-stepping.exp: 5.14: while-stepping null stepcount
+PASS: gdb.trace/while-stepping.exp: 5.15: while-stepping rejects zero stepcount
+PASS: gdb.trace/while-stepping.exp: 5.16: step without collecting anything
+PASS: gdb.trace/while-stepping.exp: 5.16: confirm actions, step without collecting anything
+Running ./gdb.xml/tdesc-arch.exp ...
+PASS: gdb.xml/tdesc-arch.exp: read valid architectures
+PASS: gdb.xml/tdesc-arch.exp: read default architecture
+PASS: gdb.xml/tdesc-arch.exp: set tdesc filename tdesc-arch.xml (first architecture)
+PASS: gdb.xml/tdesc-arch.exp: show architecture (first architecture)
+PASS: gdb.xml/tdesc-arch.exp: set tdesc filename tdesc-arch.xml (second architecture)
+PASS: gdb.xml/tdesc-arch.exp: show architecture (second architecture)
+PASS: gdb.xml/tdesc-arch.exp: set tdesc filename tdesc-arch.xml (invalid architecture)
+PASS: gdb.xml/tdesc-arch.exp: show architecture (invalid architecture)
+Running ./gdb.xml/tdesc-errors.exp ...
+PASS: gdb.xml/tdesc-errors.exp: set tdesc filename gdb.xml/tdesc-bogus.xml
+PASS: gdb.xml/tdesc-errors.exp: set tdesc filename gdb.xml/tdesc-unknown.xml
+Running ./gdb.xml/tdesc-regs.exp ...
+PASS: gdb.xml/tdesc-regs.exp: set tdesc file single-reg.xml
+PASS: gdb.xml/tdesc-regs.exp: set tdesc filename regs.xml - from extra-regs.xml
+PASS: gdb.xml/tdesc-regs.exp: ptype $extrareg
+PASS: gdb.xml/tdesc-regs.exp: ptype $uintreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $vecreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $unionreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $unionreg.v4
+PASS: gdb.xml/tdesc-regs.exp: ptype $structreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $structreg.v4
+PASS: gdb.xml/tdesc-regs.exp: ptype $bitfields
+PASS: gdb.xml/tdesc-regs.exp: set tdesc filename regs.xml - from core-only.xml
+PASS: gdb.xml/tdesc-regs.exp: ptype $extrareg
+Running ./gdb.xml/tdesc-xinclude.exp ...
+PASS: gdb.xml/tdesc-xinclude.exp: set tdesc filename gdb.xml/includes.xml
+PASS: gdb.xml/tdesc-xinclude.exp: set tdesc filename gdb.xml/bad-include.xml
+PASS: gdb.xml/tdesc-xinclude.exp: set tdesc filename gdb.xml/loop.xml
+
+		=== gdb Summary ===
+
+# of expected passes		17017
+# of unexpected failures	610
+# of unexpected successes	1
+# of expected failures		32
+# of known failures		41
+# of untested testcases		56
+# of unresolved testcases	4
+# of unsupported tests		131
+/var/tmp/portage/cross-armv7a-cros-linux-gnueabi/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../../gdb/gdb version  7.6.1 -nw -nx -data-directory /var/tmp/portage/cross-armv7a-cros-linux-gnueabi/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../data-directory 
+
diff --git a/dejagnu/gdb_baseline/i686-pc-linux-gnu b/dejagnu/gdb_baseline/i686-pc-linux-gnu
new file mode 100644
index 0000000..e3e1ee7
--- /dev/null
+++ b/dejagnu/gdb_baseline/i686-pc-linux-gnu
@@ -0,0 +1,19167 @@
+Test Run By yunlian on Fri Dec 27 14:14:24 2013
+Target is i686-pc-linux-gnu
+
+		=== gdb tests ===
+
+Schedule of variations:
+    x86-alex
+
+Running target x86-alex
+Running ./gdb.ada/aliased_array.exp ...
+UNSUPPORTED: gdb.ada/aliased_array.exp: compilation foo.adb
+Running ./gdb.ada/array_bounds.exp ...
+UNSUPPORTED: gdb.ada/array_bounds.exp: compilation bar.adb
+Running ./gdb.ada/arrayidx.exp ...
+UNSUPPORTED: gdb.ada/arrayidx.exp: compilation p.adb
+Running ./gdb.ada/arrayparam.exp ...
+UNSUPPORTED: gdb.ada/arrayparam.exp: compilation foo.adb
+Running ./gdb.ada/arrayptr.exp ...
+UNSUPPORTED: gdb.ada/arrayptr.exp: compilation foo.adb
+Running ./gdb.ada/array_return.exp ...
+UNSUPPORTED: gdb.ada/array_return.exp: compilation p.adb
+Running ./gdb.ada/array_subscript_addr.exp ...
+UNSUPPORTED: gdb.ada/array_subscript_addr.exp: compilation p.adb
+Running ./gdb.ada/assign_1.exp ...
+PASS: gdb.ada/assign_1.exp: Changing the language to ada
+PASS: gdb.ada/assign_1.exp: set convenience variable $xxx to 1
+Running ./gdb.ada/atomic_enum.exp ...
+UNSUPPORTED: gdb.ada/atomic_enum.exp: compilation foo.adb
+Running ./gdb.ada/bad-task-bp-keyword.exp ...
+UNSUPPORTED: gdb.ada/bad-task-bp-keyword.exp: compilation foo.adb
+Running ./gdb.ada/boolean_expr.exp ...
+PASS: gdb.ada/boolean_expr.exp: Changing the language to ada
+PASS: gdb.ada/boolean_expr.exp: print 1 = 2
+PASS: gdb.ada/boolean_expr.exp: print 3 = 3
+Running ./gdb.ada/bp_enum_homonym.exp ...
+UNSUPPORTED: gdb.ada/bp_enum_homonym.exp: compilation p.adb
+Running ./gdb.ada/bp_on_var.exp ...
+UNSUPPORTED: gdb.ada/bp_on_var.exp: compilation foo.adb
+Running ./gdb.ada/bp_range_type.exp ...
+UNSUPPORTED: gdb.ada/bp_range_type.exp: compilation foo.adb
+Running ./gdb.ada/bp_reset.exp ...
+UNSUPPORTED: gdb.ada/bp_reset.exp: compilation foo.adb
+Running ./gdb.ada/call_pn.exp ...
+UNSUPPORTED: gdb.ada/call_pn.exp: compilation foo.adb
+Running ./gdb.ada/catch_ex.exp ...
+UNSUPPORTED: gdb.ada/catch_ex.exp: compilation foo.adb
+Running ./gdb.ada/char_enum.exp ...
+UNSUPPORTED: gdb.ada/char_enum.exp: compilation foo.adb
+Running ./gdb.ada/char_param.exp ...
+UNSUPPORTED: gdb.ada/char_param.exp: compilation foo.adb
+Running ./gdb.ada/complete.exp ...
+UNSUPPORTED: gdb.ada/complete.exp: compilation foo.adb
+Running ./gdb.ada/cond_lang.exp ...
+UNSUPPORTED: gdb.ada/cond_lang.exp: compilation a.adb
+Running ./gdb.ada/dyn_loc.exp ...
+UNSUPPORTED: gdb.ada/dyn_loc.exp: compilation p.adb
+Running ./gdb.ada/enum_idx_packed.exp ...
+UNSUPPORTED: gdb.ada/enum_idx_packed.exp: compilation foo.adb
+Running ./gdb.ada/exec_changed.exp ...
+UNTESTED: gdb.ada/exec_changed.exp: exec_changed.exp
+Running ./gdb.ada/expr_delims.exp ...
+UNSUPPORTED: gdb.ada/expr_delims.exp: compilation foo.adb
+Running ./gdb.ada/exprs.exp ...
+UNSUPPORTED: gdb.ada/exprs.exp: compilation p.adb
+Running ./gdb.ada/fixed_cmp.exp ...
+UNSUPPORTED: gdb.ada/fixed_cmp.exp: compilation fixed.adb
+Running ./gdb.ada/fixed_points.exp ...
+UNSUPPORTED: gdb.ada/fixed_points.exp: compilation fixed_points.adb
+Running ./gdb.ada/formatted_ref.exp ...
+UNSUPPORTED: gdb.ada/formatted_ref.exp: compilation formatted_ref.adb
+UNTESTED: gdb.ada/formatted_ref.exp: formatted-ref.exp
+Running ./gdb.ada/frame_args.exp ...
+UNSUPPORTED: gdb.ada/frame_args.exp: compilation foo.adb
+Running ./gdb.ada/fullname_bp.exp ...
+UNSUPPORTED: gdb.ada/fullname_bp.exp: compilation foo.adb
+Running ./gdb.ada/fun_addr.exp ...
+UNSUPPORTED: gdb.ada/fun_addr.exp: compilation foo.adb
+Running ./gdb.ada/funcall_param.exp ...
+UNSUPPORTED: gdb.ada/funcall_param.exp: compilation foo.adb
+Running ./gdb.ada/fun_in_declare.exp ...
+UNSUPPORTED: gdb.ada/fun_in_declare.exp: compilation foo.adb
+Running ./gdb.ada/homonym.exp ...
+UNSUPPORTED: gdb.ada/homonym.exp: compilation homonym_main.adb
+Running ./gdb.ada/info_locals_renaming.exp ...
+UNSUPPORTED: gdb.ada/info_locals_renaming.exp: compilation foo.adb
+Running ./gdb.ada/info_types.exp ...
+PASS: gdb.ada/info_types.exp: set lang ada
+PASS: gdb.ada/info_types.exp: info types new_integer_type
+Running ./gdb.ada/int_deref.exp ...
+UNSUPPORTED: gdb.ada/int_deref.exp: compilation foo.adb
+Running ./gdb.ada/interface.exp ...
+UNSUPPORTED: gdb.ada/interface.exp: compilation foo.adb
+Running ./gdb.ada/iwide.exp ...
+UNSUPPORTED: gdb.ada/iwide.exp: compilation p.adb
+Running ./gdb.ada/lang_switch.exp ...
+UNSUPPORTED: gdb.ada/lang_switch.exp: compilation lang_switch.adb
+Running ./gdb.ada/mi_catch_ex.exp ...
+UNSUPPORTED: gdb.ada/mi_catch_ex.exp: compilation foo.adb
+Running ./gdb.ada/mi_task_arg.exp ...
+UNSUPPORTED: gdb.ada/mi_task_arg.exp: compilation task_switch.adb
+Running ./gdb.ada/mi_task_info.exp ...
+UNSUPPORTED: gdb.ada/mi_task_info.exp: compilation task_switch.adb
+Running ./gdb.ada/mod_from_name.exp ...
+UNSUPPORTED: gdb.ada/mod_from_name.exp: compilation foo.adb
+Running ./gdb.ada/nested.exp ...
+UNSUPPORTED: gdb.ada/nested.exp: compilation hello.adb
+Running ./gdb.ada/null_array.exp ...
+UNSUPPORTED: gdb.ada/null_array.exp: compilation foo.adb
+Running ./gdb.ada/null_record.exp ...
+UNSUPPORTED: gdb.ada/null_record.exp: compilation null_record.adb
+Running ./gdb.ada/operator_bp.exp ...
+UNSUPPORTED: gdb.ada/operator_bp.exp: compilation ops_test.adb
+Running ./gdb.ada/optim_drec.exp ...
+UNSUPPORTED: gdb.ada/optim_drec.exp: compilation foo.adb
+Running ./gdb.ada/packed_array.exp ...
+UNSUPPORTED: gdb.ada/packed_array.exp: compilation pa.adb
+Running ./gdb.ada/packed_tagged.exp ...
+UNSUPPORTED: gdb.ada/packed_tagged.exp: compilation comp_bug.adb
+Running ./gdb.ada/print_chars.exp ...
+UNSUPPORTED: gdb.ada/print_chars.exp: compilation foo.adb
+Running ./gdb.ada/print_pc.exp ...
+UNSUPPORTED: gdb.ada/print_pc.exp: compilation dummy.adb
+Running ./gdb.ada/ptr_typedef.exp ...
+UNSUPPORTED: gdb.ada/ptr_typedef.exp: compilation foo.adb
+Running ./gdb.ada/ptype_arith_binop.exp ...
+PASS: gdb.ada/ptype_arith_binop.exp: set lang ada
+PASS: gdb.ada/ptype_arith_binop.exp: ptype 3 * 2.0
+PASS: gdb.ada/ptype_arith_binop.exp: ptype 3 / 2.0
+Running ./gdb.ada/ptype_field.exp ...
+UNSUPPORTED: gdb.ada/ptype_field.exp: compilation foo.adb
+Running ./gdb.ada/ptype_tagged_param.exp ...
+UNSUPPORTED: gdb.ada/ptype_tagged_param.exp: compilation foo.adb
+Running ./gdb.ada/rdv_wait.exp ...
+UNSUPPORTED: gdb.ada/rdv_wait.exp: compilation foo.adb
+Running ./gdb.ada/rec_return.exp ...
+UNSUPPORTED: gdb.ada/rec_return.exp: compilation foo.adb
+Running ./gdb.ada/ref_param.exp ...
+UNSUPPORTED: gdb.ada/ref_param.exp: compilation foo.adb
+Running ./gdb.ada/ref_tick_size.exp ...
+UNSUPPORTED: gdb.ada/ref_tick_size.exp: compilation p.adb
+Running ./gdb.ada/same_enum.exp ...
+UNSUPPORTED: gdb.ada/same_enum.exp: compilation a.adb
+Running ./gdb.ada/set_pckd_arr_elt.exp ...
+UNSUPPORTED: gdb.ada/set_pckd_arr_elt.exp: compilation foo.adb
+Running ./gdb.ada/set_wstr.exp ...
+UNSUPPORTED: gdb.ada/set_wstr.exp: compilation a.adb
+Running ./gdb.ada/small_reg_param.exp ...
+UNSUPPORTED: gdb.ada/small_reg_param.exp: compilation foo.adb
+Running ./gdb.ada/start.exp ...
+UNTESTED: gdb.ada/start.exp: start.exp
+Running ./gdb.ada/str_ref_cmp.exp ...
+UNSUPPORTED: gdb.ada/str_ref_cmp.exp: compilation foo.adb
+Running ./gdb.ada/sym_print_name.exp ...
+UNSUPPORTED: gdb.ada/sym_print_name.exp: compilation foo.adb
+Running ./gdb.ada/taft_type.exp ...
+UNSUPPORTED: gdb.ada/taft_type.exp: compilation p.adb
+Running ./gdb.ada/tagged.exp ...
+UNSUPPORTED: gdb.ada/tagged.exp: compilation foo.adb
+Running ./gdb.ada/tagged_not_init.exp ...
+UNSUPPORTED: gdb.ada/tagged_not_init.exp: compilation foo.adb
+Running ./gdb.ada/task_bp.exp ...
+UNSUPPORTED: gdb.ada/task_bp.exp: compilation foo.adb
+Running ./gdb.ada/tasks.exp ...
+UNSUPPORTED: gdb.ada/tasks.exp: compilation foo.adb
+Running ./gdb.ada/tick_last_segv.exp ...
+UNSUPPORTED: gdb.ada/tick_last_segv.exp: compilation foo.adb
+Running ./gdb.ada/type_coercion.exp ...
+UNSUPPORTED: gdb.ada/type_coercion.exp: compilation assign.adb
+Running ./gdb.ada/unc_arr_ptr_in_var_rec.exp ...
+UNSUPPORTED: gdb.ada/unc_arr_ptr_in_var_rec.exp: compilation foo.adb
+Running ./gdb.ada/uninitialized_vars.exp ...
+UNSUPPORTED: gdb.ada/uninitialized_vars.exp: compilation parse.adb
+Running ./gdb.ada/variant_record_packed_array.exp ...
+UNSUPPORTED: gdb.ada/variant_record_packed_array.exp: compilation foo.adb
+Running ./gdb.ada/watch_arg.exp ...
+UNSUPPORTED: gdb.ada/watch_arg.exp: compilation watch.adb
+Running ./gdb.ada/whatis_array_val.exp ...
+UNSUPPORTED: gdb.ada/whatis_array_val.exp: compilation foo.adb
+Running ./gdb.ada/widewide.exp ...
+UNSUPPORTED: gdb.ada/widewide.exp: compilation foo.adb
+Running ./gdb.arch/alpha-step.exp ...
+Running ./gdb.arch/altivec-abi.exp ...
+Running ./gdb.arch/altivec-regs.exp ...
+Running ./gdb.arch/amd64-byte.exp ...
+Running ./gdb.arch/amd64-disp-step.exp ...
+Running ./gdb.arch/amd64-dword.exp ...
+Running ./gdb.arch/amd64-entry-value.exp ...
+Running ./gdb.arch/amd64-entry-value-inline.exp ...
+Running ./gdb.arch/amd64-entry-value-param.exp ...
+Running ./gdb.arch/amd64-i386-address.exp ...
+Running ./gdb.arch/amd64-prologue-xmm.exp ...
+Running ./gdb.arch/amd64-tailcall-cxx.exp ...
+Running ./gdb.arch/amd64-tailcall-noret.exp ...
+Running ./gdb.arch/amd64-tailcall-ret.exp ...
+Running ./gdb.arch/amd64-word.exp ...
+Running ./gdb.arch/arm-bl-branch-dest.exp ...
+Running ./gdb.arch/arm-disp-step.exp ...
+Running ./gdb.arch/e500-abi.exp ...
+Running ./gdb.arch/e500-prologue.exp ...
+Running ./gdb.arch/e500-regs.exp ...
+Running ./gdb.arch/gdb1291.exp ...
+Running ./gdb.arch/gdb1431.exp ...
+Running ./gdb.arch/gdb1558.exp ...
+Running ./gdb.arch/i386-avx.exp ...
+Running ./gdb.arch/i386-bp_permanent.exp ...
+PASS: gdb.arch/i386-bp_permanent.exp: Stop at the 'standard' start breakpoint (fetching esp).
+PASS: gdb.arch/i386-bp_permanent.exp: Stop at permanent breakpoint.
+PASS: gdb.arch/i386-bp_permanent.exp: Single stepping past permanent breakpoint.
+PASS: gdb.arch/i386-bp_permanent.exp: ESP value does not match - step_permanent_breakpoint wrong.
+Running ./gdb.arch/i386-byte.exp ...
+gdb compile failed, ./gdb.arch/i386-pseudo.c: In function 'main':
+./gdb.arch/i386-pseudo.c:32:3: error: PIC register clobbered by 'ebx' in 'asm'
+   asm ("mov 0(%0), %%eax\n\t"
+   ^
+./gdb.arch/i386-pseudo.c:41:3: error: PIC register clobbered by 'ebx' in 'asm'
+   asm ("mov %%eax, 0(%0)\n\t"
+   ^
+UNTESTED: gdb.arch/i386-byte.exp: i386-byte
+Running ./gdb.arch/i386-cfi-notcurrent.exp ...
+PASS: gdb.arch/i386-cfi-notcurrent.exp: backtrace
+Running ./gdb.arch/i386-disp-step.exp ...
+PASS: gdb.arch/i386-disp-step.exp: set displaced-stepping on
+PASS: gdb.arch/i386-disp-step.exp: show displaced-stepping
+PASS: gdb.arch/i386-disp-step.exp: break test_call
+PASS: gdb.arch/i386-disp-step.exp: break test_call_end
+PASS: gdb.arch/i386-disp-step.exp: break test_ret
+PASS: gdb.arch/i386-disp-step.exp: break test_ret_end
+PASS: gdb.arch/i386-disp-step.exp: continue to test_call
+PASS: gdb.arch/i386-disp-step.exp: continue to test_call_end
+PASS: gdb.arch/i386-disp-step.exp: continue to test_ret
+PASS: gdb.arch/i386-disp-step.exp: continue to test_ret_end
+PASS: gdb.arch/i386-disp-step.exp: break test_prefixed_abs_jump
+PASS: gdb.arch/i386-disp-step.exp: break test_prefixed_abs_jump_end
+PASS: gdb.arch/i386-disp-step.exp: continue to test_prefixed_abs_jump
+PASS: gdb.arch/i386-disp-step.exp: continue to test_prefixed_abs_jump_end
+PASS: gdb.arch/i386-disp-step.exp: break test_syscall
+PASS: gdb.arch/i386-disp-step.exp: break test_syscall_end
+PASS: gdb.arch/i386-disp-step.exp: continue to test_syscall
+PASS: gdb.arch/i386-disp-step.exp: continue to test_syscall_end
+PASS: gdb.arch/i386-disp-step.exp: break test_prefixed_syscall
+PASS: gdb.arch/i386-disp-step.exp: break test_prefixed_syscall_end
+PASS: gdb.arch/i386-disp-step.exp: continue to test_prefixed_syscall
+PASS: gdb.arch/i386-disp-step.exp: continue to test_prefixed_syscall_end
+PASS: gdb.arch/i386-disp-step.exp: break test_int3
+PASS: gdb.arch/i386-disp-step.exp: break test_int3_end
+PASS: gdb.arch/i386-disp-step.exp: continue to test_int3
+PASS: gdb.arch/i386-disp-step.exp: continue to test_int3_end
+PASS: gdb.arch/i386-disp-step.exp: continue until exit at i386-disp-step
+Running ./gdb.arch/i386-dr3-watch.exp ...
+PASS: gdb.arch/i386-dr3-watch.exp: set breakpoint always-inserted on
+PASS: gdb.arch/i386-dr3-watch.exp: watch i1
+PASS: gdb.arch/i386-dr3-watch.exp: watch i2
+PASS: gdb.arch/i386-dr3-watch.exp: watch i3
+PASS: gdb.arch/i386-dr3-watch.exp: watch i4
+PASS: gdb.arch/i386-dr3-watch.exp: continue to i1 watchpoint
+PASS: gdb.arch/i386-dr3-watch.exp: continue to i2 watchpoint
+PASS: gdb.arch/i386-dr3-watch.exp: continue to i3 watchpoint
+PASS: gdb.arch/i386-dr3-watch.exp: continue to i4 watchpoint
+PASS: gdb.arch/i386-dr3-watch.exp: set watchpoint occuping one debug register
+PASS: gdb.arch/i386-dr3-watch.exp: watchpoint on gap1 does not fit debug registers
+PASS: gdb.arch/i386-dr3-watch.exp: delete all watchpoints
+PASS: gdb.arch/i386-dr3-watch.exp: watch i1 still fits
+PASS: gdb.arch/i386-dr3-watch.exp: watch i2 still fits
+PASS: gdb.arch/i386-dr3-watch.exp: watch i3 still fits
+PASS: gdb.arch/i386-dr3-watch.exp: watch i4 still fits
+Running ./gdb.arch/i386-float.exp ...
+PASS: gdb.arch/i386-float.exp: first stepi
+PASS: gdb.arch/i386-float.exp: info float
+PASS: gdb.arch/i386-float.exp: second stepi
+PASS: gdb.arch/i386-float.exp: info float
+Running ./gdb.arch/i386-gnu-cfi.exp ...
+PASS: gdb.arch/i386-gnu-cfi.exp: continue to abort()
+PASS: gdb.arch/i386-gnu-cfi.exp: backtrace
+PASS: gdb.arch/i386-gnu-cfi.exp: shift up to the modified frame
+PASS: gdb.arch/i386-gnu-cfi.exp: Existence of the CFI inserted register
+PASS: gdb.arch/i386-gnu-cfi.exp: Value of the CFI inserted register
+Running ./gdb.arch/i386-permbkpt.exp ...
+PASS: gdb.arch/i386-permbkpt.exp: First permanent break
+PASS: gdb.arch/i386-permbkpt.exp: Second permanent break
+Running ./gdb.arch/i386-prologue.exp ...
+PASS: gdb.arch/i386-prologue.exp: continue to standard
+PASS: gdb.arch/i386-prologue.exp: skip breakpoint in standard
+PASS: gdb.arch/i386-prologue.exp: backtrace in standard
+PASS: gdb.arch/i386-prologue.exp: saved registers in standard
+PASS: gdb.arch/i386-prologue.exp: break *(stack_align_ecx + 7)
+PASS: gdb.arch/i386-prologue.exp: continue to stack_align_ecx + 7
+PASS: gdb.arch/i386-prologue.exp: first backtrace in stack_align_ecx
+PASS: gdb.arch/i386-prologue.exp: continue in stack_align_ecx
+PASS: gdb.arch/i386-prologue.exp: skip breakpoint in stack_align_ecx
+PASS: gdb.arch/i386-prologue.exp: second backtrace in stack_align_ecx
+PASS: gdb.arch/i386-prologue.exp: saved registers in stack_align_ecx
+PASS: gdb.arch/i386-prologue.exp: break *(stack_align_edx + 7)
+PASS: gdb.arch/i386-prologue.exp: continue to stack_align_edx + 7
+PASS: gdb.arch/i386-prologue.exp: first backtrace in stack_align_edx
+PASS: gdb.arch/i386-prologue.exp: continue in stack_align_edx
+PASS: gdb.arch/i386-prologue.exp: skip breakpoint in stack_align_edx
+PASS: gdb.arch/i386-prologue.exp: second backtrace in stack_align_edx
+PASS: gdb.arch/i386-prologue.exp: saved registers in stack_align_edx
+PASS: gdb.arch/i386-prologue.exp: break *(stack_align_eax + 7)
+PASS: gdb.arch/i386-prologue.exp: continue to stack_align_eax + 7
+PASS: gdb.arch/i386-prologue.exp: first backtrace in stack_align_eax
+PASS: gdb.arch/i386-prologue.exp: continue in stack_align_eax
+PASS: gdb.arch/i386-prologue.exp: skip breakpoint in stack_align_eax
+PASS: gdb.arch/i386-prologue.exp: second backtrace in stack_align_eax
+PASS: gdb.arch/i386-prologue.exp: saved registers in stack_align_eax
+PASS: gdb.arch/i386-prologue.exp: continue to gdb1253
+PASS: gdb.arch/i386-prologue.exp: skip breakpoint in gdb1253
+PASS: gdb.arch/i386-prologue.exp: backtrace in gdb1253
+PASS: gdb.arch/i386-prologue.exp: saved registers in gdb1253
+PASS: gdb.arch/i386-prologue.exp: continue to gdb1718
+PASS: gdb.arch/i386-prologue.exp: skip breakpoint in gdb1718
+PASS: gdb.arch/i386-prologue.exp: backtrace in gdb1718
+KFAIL: gdb.arch/i386-prologue.exp: saved registers in gdb1718 (PRMS: gdb/1718)
+PASS: gdb.arch/i386-prologue.exp: continue to gdb1338
+PASS: gdb.arch/i386-prologue.exp: skip breakpoint in gdb1338
+PASS: gdb.arch/i386-prologue.exp: backtrace in gdb1338
+PASS: gdb.arch/i386-prologue.exp: saved registers in gdb1338
+PASS: gdb.arch/i386-prologue.exp: check jump_at_beginning prologue end
+Running ./gdb.arch/i386-signal.exp ...
+PASS: gdb.arch/i386-signal.exp: backtrace 10
+PASS: gdb.arch/i386-signal.exp: finish
+Running ./gdb.arch/i386-size.exp ...
+PASS: gdb.arch/i386-size.exp: run past main
+PASS: gdb.arch/i386-size.exp: backtrace shows no function
+PASS: gdb.arch/i386-size.exp: disassemble stops at end of main
+Running ./gdb.arch/i386-size-overlap.exp ...
+PASS: gdb.arch/i386-size-overlap.exp: run past main
+PASS: gdb.arch/i386-size-overlap.exp: backtrace shows the outer function
+Running ./gdb.arch/i386-sse.exp ...
+PASS: gdb.arch/i386-sse.exp: check whether processor supports SSE
+PASS: gdb.arch/i386-sse.exp: set first breakpoint in main
+PASS: gdb.arch/i386-sse.exp: continue to breakpoint: continue to first breakpoint in main
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm0
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm0
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm1
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm1
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm2
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm2
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm3
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm3
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm4
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm4
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm5
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm5
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm6
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm6
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm7
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm7
+PASS: gdb.arch/i386-sse.exp: set %xmm0
+PASS: gdb.arch/i386-sse.exp: set %xmm1
+PASS: gdb.arch/i386-sse.exp: set %xmm2
+PASS: gdb.arch/i386-sse.exp: set %xmm3
+PASS: gdb.arch/i386-sse.exp: set %xmm4
+PASS: gdb.arch/i386-sse.exp: set %xmm5
+PASS: gdb.arch/i386-sse.exp: set %xmm6
+PASS: gdb.arch/i386-sse.exp: set %xmm7
+PASS: gdb.arch/i386-sse.exp: set second breakpoint in main
+PASS: gdb.arch/i386-sse.exp: continue to breakpoint: continue to second breakpoint in main
+PASS: gdb.arch/i386-sse.exp: check contents of data[0]
+PASS: gdb.arch/i386-sse.exp: check contents of data[1]
+PASS: gdb.arch/i386-sse.exp: check contents of data[2]
+PASS: gdb.arch/i386-sse.exp: check contents of data[3]
+PASS: gdb.arch/i386-sse.exp: check contents of data[4]
+PASS: gdb.arch/i386-sse.exp: check contents of data[5]
+PASS: gdb.arch/i386-sse.exp: check contents of data[6]
+PASS: gdb.arch/i386-sse.exp: check contents of data[7]
+Running ./gdb.arch/i386-sse-stack-align.exp ...
+PASS: gdb.arch/i386-sse-stack-align.exp: print g0 ()
+PASS: gdb.arch/i386-sse-stack-align.exp: print g1 (1)
+PASS: gdb.arch/i386-sse-stack-align.exp: print g2 (1, 2)
+PASS: gdb.arch/i386-sse-stack-align.exp: print g3 (1, 2, 3)
+PASS: gdb.arch/i386-sse-stack-align.exp: print g4 (1, 2, 3, 4)
+Running ./gdb.arch/i386-unwind.exp ...
+PASS: gdb.arch/i386-unwind.exp: run past gdb1435
+PASS: gdb.arch/i386-unwind.exp: backtrace past gdb1435
+Running ./gdb.arch/i386-word.exp ...
+gdb compile failed, ./gdb.arch/i386-pseudo.c: In function 'main':
+./gdb.arch/i386-pseudo.c:32:3: error: PIC register clobbered by 'ebx' in 'asm'
+   asm ("mov 0(%0), %%eax\n\t"
+   ^
+./gdb.arch/i386-pseudo.c:41:3: error: PIC register clobbered by 'ebx' in 'asm'
+   asm ("mov %%eax, 0(%0)\n\t"
+   ^
+UNTESTED: gdb.arch/i386-word.exp: i386-word
+Running ./gdb.arch/ia64-breakpoint-shadow.exp ...
+Running ./gdb.arch/iwmmxt-regs.exp ...
+Running ./gdb.arch/mips16-thunks.exp ...
+Running ./gdb.arch/mips-octeon-bbit.exp ...
+Running ./gdb.arch/pa-nullify.exp ...
+Running ./gdb.arch/powerpc-aix-prologue.exp ...
+Running ./gdb.arch/powerpc-d128-regs.exp ...
+Running ./gdb.arch/powerpc-prologue.exp ...
+Running ./gdb.arch/ppc64-atomic-inst.exp ...
+Running ./gdb.arch/ppc-dfp.exp ...
+Running ./gdb.arch/ppc-fp.exp ...
+Running ./gdb.arch/spu-info.exp ...
+Running ./gdb.arch/spu-ls.exp ...
+Running ./gdb.arch/system-gcore.exp ...
+PASS: gdb.arch/system-gcore.exp: help gcore
+PASS: gdb.arch/system-gcore.exp: set breakpoint at terminal_func
+PASS: gdb.arch/system-gcore.exp: continue to terminal_func
+PASS: gdb.arch/system-gcore.exp: save a corefile
+FAIL: gdb.arch/system-gcore.exp: re-load generated corefile (bad file format)
+Running ./gdb.arch/thumb2-it.exp ...
+Running ./gdb.arch/thumb-bx-pc.exp ...
+Running ./gdb.arch/thumb-prologue.exp ...
+Running ./gdb.arch/thumb-singlestep.exp ...
+Running ./gdb.arch/vsx-regs.exp ...
+Running ./gdb.asm/asm-source.exp ...
+PASS: gdb.asm/asm-source.exp: f at main
+PASS: gdb.asm/asm-source.exp: next over macro
+PASS: gdb.asm/asm-source.exp: step into foo2
+PASS: gdb.asm/asm-source.exp: info target
+PASS: gdb.asm/asm-source.exp: info symbol
+PASS: gdb.asm/asm-source.exp: list
+PASS: gdb.asm/asm-source.exp: search
+PASS: gdb.asm/asm-source.exp: f in foo2
+PASS: gdb.asm/asm-source.exp: n in foo2
+PASS: gdb.asm/asm-source.exp: bt ALL in foo2
+PASS: gdb.asm/asm-source.exp: bt 2 in foo2
+PASS: gdb.asm/asm-source.exp: s 2
+PASS: gdb.asm/asm-source.exp: n 2
+PASS: gdb.asm/asm-source.exp: bt 3 in foo3
+PASS: gdb.asm/asm-source.exp: info source asmsrc1.s
+PASS: gdb.asm/asm-source.exp: finish from foo3
+PASS: gdb.asm/asm-source.exp: info source asmsrc2.s
+PASS: gdb.asm/asm-source.exp: info sources
+PASS: gdb.asm/asm-source.exp: info line
+PASS: gdb.asm/asm-source.exp: next over foo3
+PASS: gdb.asm/asm-source.exp: return from foo2
+PASS: gdb.asm/asm-source.exp: look at global variable
+PASS: gdb.asm/asm-source.exp: x/i &globalvar
+PASS: gdb.asm/asm-source.exp: disassem &globalvar, &globalvar+1
+PASS: gdb.asm/asm-source.exp: look at static variable
+PASS: gdb.asm/asm-source.exp: x/i &staticvar
+PASS: gdb.asm/asm-source.exp: disassem &staticvar, &staticvar+1
+PASS: gdb.asm/asm-source.exp: look at static function
+Running ./gdb.base/a2-run.exp ...
+Running ./gdb.base/advance.exp ...
+PASS: gdb.base/advance.exp: advance line number
+PASS: gdb.base/advance.exp: malformed advance
+PASS: gdb.base/advance.exp: advance func
+PASS: gdb.base/advance.exp: advance function not called by current frame
+PASS: gdb.base/advance.exp: set breakpoint at call to func3
+PASS: gdb.base/advance.exp: continue to call to func3 in main
+PASS: gdb.base/advance.exp: advance function called as param
+PASS: gdb.base/advance.exp: advance with no argument
+Running ./gdb.base/alias.exp ...
+PASS: gdb.base/alias.exp: alias -a set2=set
+PASS: gdb.base/alias.exp: set2 print elements 42
+PASS: gdb.base/alias.exp: verify set2
+PASS: gdb.base/alias.exp: abbrev set2 not present in help command list
+PASS: gdb.base/alias.exp: alias -a set3= set
+PASS: gdb.base/alias.exp: set3 print elements 43
+PASS: gdb.base/alias.exp: verify set3
+PASS: gdb.base/alias.exp: abbrev set3 not present in help command list
+PASS: gdb.base/alias.exp: alias -a set4 =set
+PASS: gdb.base/alias.exp: set4 print elements 44
+PASS: gdb.base/alias.exp: verify set4
+PASS: gdb.base/alias.exp: abbrev set4 not present in help command list
+PASS: gdb.base/alias.exp: alias -a set5 = set
+PASS: gdb.base/alias.exp: set5 print elements 45
+PASS: gdb.base/alias.exp: verify set5
+PASS: gdb.base/alias.exp: abbrev set5 not present in help command list
+PASS: gdb.base/alias.exp: alias -a -- set6 = set
+PASS: gdb.base/alias.exp: set6 print elements 46
+PASS: gdb.base/alias.exp: verify set6
+PASS: gdb.base/alias.exp: abbrev set6 not present in help command list
+PASS: gdb.base/alias.exp: alias -a -- -a = set
+PASS: gdb.base/alias.exp: -a print elements 47
+PASS: gdb.base/alias.exp: verify -a
+PASS: gdb.base/alias.exp: abbrev -a not present in help command list
+PASS: gdb.base/alias.exp: alias set2=set
+PASS: gdb.base/alias.exp: alias foo=bar
+PASS: gdb.base/alias.exp: alias spe = set p elem
+PASS: gdb.base/alias.exp: spe 50
+PASS: gdb.base/alias.exp: verify spe
+PASS: gdb.base/alias.exp: alias set pr elms = set p elem
+PASS: gdb.base/alias.exp: set pr elms 51
+PASS: gdb.base/alias.exp: verify set pr elms
+PASS: gdb.base/alias.exp: help set print
+Running ./gdb.base/all-bin.exp ...
+PASS: gdb.base/all-bin.exp: continuing after dummy()
+PASS: gdb.base/all-bin.exp: print value of v_int+v_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int+v_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_float
+PASS: gdb.base/all-bin.exp: print value of v_int+v_double
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_char
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_long
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_float
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_double
+PASS: gdb.base/all-bin.exp: set v_char=0
+PASS: gdb.base/all-bin.exp: set v_double=0
+PASS: gdb.base/all-bin.exp: set v_unsigned_long=0
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_float
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_double
+Running ./gdb.base/annota1.exp ...
+Running ./gdb.base/annota3.exp ...
+Running ./gdb.base/anon.exp ...
+PASS: gdb.base/anon.exp: set breakpoint in anon.c
+PASS: gdb.base/anon.exp: continue to breakpoint: continue to breakpoint in anon.c
+PASS: gdb.base/anon.exp: print val.data.six
+Running ./gdb.base/args.exp ...
+Running ./gdb.base/argv0-symlink.exp ...
+PASS: gdb.base/argv0-symlink.exp: kept file symbolic link name
+FAIL: gdb.base/argv0-symlink.exp: kept directory symbolic link name
+Running ./gdb.base/arithmet.exp ...
+PASS: gdb.base/arithmet.exp: set variable x=14
+PASS: gdb.base/arithmet.exp: set variable y=2
+PASS: gdb.base/arithmet.exp: set variable z=2
+PASS: gdb.base/arithmet.exp: set variable w=3
+PASS: gdb.base/arithmet.exp: print x
+PASS: gdb.base/arithmet.exp: print y
+PASS: gdb.base/arithmet.exp: print z
+PASS: gdb.base/arithmet.exp: print w
+PASS: gdb.base/arithmet.exp: print x+y
+PASS: gdb.base/arithmet.exp: print x-y
+PASS: gdb.base/arithmet.exp: print x*y
+PASS: gdb.base/arithmet.exp: print x/y
+PASS: gdb.base/arithmet.exp: print x%y
+PASS: gdb.base/arithmet.exp: print x+y+z
+PASS: gdb.base/arithmet.exp: print x-y-z
+PASS: gdb.base/arithmet.exp: print x*y*z
+PASS: gdb.base/arithmet.exp: print x/y/z
+PASS: gdb.base/arithmet.exp: print x%y%z
+PASS: gdb.base/arithmet.exp: set variable x=10
+PASS: gdb.base/arithmet.exp: set variable y=4
+PASS: gdb.base/arithmet.exp: print x+y-z
+PASS: gdb.base/arithmet.exp: print x+y*z
+PASS: gdb.base/arithmet.exp: print x+y%w
+PASS: gdb.base/arithmet.exp: print x+y/w
+PASS: gdb.base/arithmet.exp: print x-y*z
+PASS: gdb.base/arithmet.exp: print x-y%z
+PASS: gdb.base/arithmet.exp: print x-y/z
+PASS: gdb.base/arithmet.exp: print x*y/z
+PASS: gdb.base/arithmet.exp: print x*y%w
+PASS: gdb.base/arithmet.exp: print x/y%w
+PASS: gdb.base/arithmet.exp: print x-(y+w)
+PASS: gdb.base/arithmet.exp: print x/(y*w)
+PASS: gdb.base/arithmet.exp: print x-(y/w)
+PASS: gdb.base/arithmet.exp: print (x+y)*w
+Running ./gdb.base/arrayidx.exp ...
+PASS: gdb.base/arrayidx.exp: Set print array-indexes to off
+PASS: gdb.base/arrayidx.exp: Print array with array-indexes off
+PASS: gdb.base/arrayidx.exp: Set print array-indexes to on
+PASS: gdb.base/arrayidx.exp: Print array with array-indexes on
+Running ./gdb.base/assign.exp ...
+PASS: gdb.base/assign.exp: continuing after dummy()
+PASS: gdb.base/assign.exp: v_int=57
+PASS: gdb.base/assign.exp: set v_int to 6
+PASS: gdb.base/assign.exp: v_int+=57
+PASS: gdb.base/assign.exp: set v_int to 6 (2)
+PASS: gdb.base/assign.exp: v_int-=57
+PASS: gdb.base/assign.exp: set v_int to 6 (3)
+PASS: gdb.base/assign.exp: v_int*=5
+PASS: gdb.base/assign.exp: set v_int to 6 (4)
+PASS: gdb.base/assign.exp: v_int/=4
+PASS: gdb.base/assign.exp: set v_int to 6 (5)
+PASS: gdb.base/assign.exp: v_int%=4
+PASS: gdb.base/assign.exp: set v_int to 6 (6)
+PASS: gdb.base/assign.exp: v_int+=char
+PASS: gdb.base/assign.exp: set v_int to 6 (7)
+PASS: gdb.base/assign.exp: v_int+=signed_char
+PASS: gdb.base/assign.exp: set v_int to 6 (8)
+PASS: gdb.base/assign.exp: v_int+=unsigned_char
+PASS: gdb.base/assign.exp: set v_int to 6 (9)
+PASS: gdb.base/assign.exp: v_int+=short
+PASS: gdb.base/assign.exp: set v_int to 6 (10)
+PASS: gdb.base/assign.exp: v_int+=signed_short
+PASS: gdb.base/assign.exp: set v_int to 6 (11)
+PASS: gdb.base/assign.exp: v_int=+unsigned_short
+PASS: gdb.base/assign.exp: set v_int to 6 (12)
+PASS: gdb.base/assign.exp: v_int+=signed_int
+PASS: gdb.base/assign.exp: set v_int to 6 (13)
+PASS: gdb.base/assign.exp: v_int+=unsigned_int
+PASS: gdb.base/assign.exp: set v_int to 6 (14)
+PASS: gdb.base/assign.exp: v_int+=long
+PASS: gdb.base/assign.exp: set v_int to 6 (15)
+PASS: gdb.base/assign.exp: v_int+=signed_long
+PASS: gdb.base/assign.exp: set v_int to 6 (16)
+PASS: gdb.base/assign.exp: v_int+=unsigned_long
+PASS: gdb.base/assign.exp: set v_int to 6 (17)
+PASS: gdb.base/assign.exp: v_int+=v_float
+PASS: gdb.base/assign.exp: set v_int to 6 (18)
+PASS: gdb.base/assign.exp: v_int+=double
+Running ./gdb.base/async.exp ...
+Running ./gdb.base/async-shell.exp ...
+Running ./gdb.base/attach.exp ...
+Running ./gdb.base/attach-pie-misread.exp ...
+Running ./gdb.base/attach-pie-noexec.exp ...
+Running ./gdb.base/attach-twice.exp ...
+Running ./gdb.base/auxv.exp ...
+PASS: gdb.base/auxv.exp: set print sevenbit-strings
+PASS: gdb.base/auxv.exp: set width 0
+PASS: gdb.base/auxv.exp: tbreak 78
+PASS: gdb.base/auxv.exp: continue
+PASS: gdb.base/auxv.exp: info auxv on live process
+PASS: gdb.base/auxv.exp: gcore
+PASS: gdb.base/auxv.exp: continue
+PASS: gdb.base/auxv.exp: continue
+UNSUPPORTED: gdb.base/auxv.exp: generate native core dump
+UNSUPPORTED: gdb.base/auxv.exp: info auxv on native core dump
+UNSUPPORTED: gdb.base/auxv.exp: matching auxv data from live and core
+FAIL: gdb.base/auxv.exp: load core file for info auxv on gcore-created dump
+FAIL: gdb.base/auxv.exp: info auxv on gcore-created dump
+FAIL: gdb.base/auxv.exp: matching auxv data from live and gcore
+Running ./gdb.base/bang.exp ...
+PASS: gdb.base/bang.exp: run program
+Running ./gdb.base/bfp-test.exp ...
+PASS: gdb.base/bfp-test.exp: continue to breakpoint: return
+PASS: gdb.base/bfp-test.exp: The original value of b32 is 1.5
+PASS: gdb.base/bfp-test.exp: The original value of b64 is 2.25
+PASS: gdb.base/bfp-test.exp: The original value of b128 is 3.375
+PASS: gdb.base/bfp-test.exp: Try to change b32 to -1.5 with 'print b32=-1.5f'
+PASS: gdb.base/bfp-test.exp: Try to change b64 to -2.25 with 'print b64=-2.25f'
+PASS: gdb.base/bfp-test.exp: Try to change b128 to -3.375 with 'print b128=-3.375l'
+PASS: gdb.base/bfp-test.exp: set variable b32 = 10.5f
+PASS: gdb.base/bfp-test.exp: set variable b64 = 20.25f
+PASS: gdb.base/bfp-test.exp: set variable b128 = 30.375l
+PASS: gdb.base/bfp-test.exp: The value of b32 is changed to 10.5
+PASS: gdb.base/bfp-test.exp: The value of b64 is changed to 20.25
+PASS: gdb.base/bfp-test.exp: The value of b128 is changed to 30.375
+PASS: gdb.base/bfp-test.exp: set variable b32 = 100.5a
+PASS: gdb.base/bfp-test.exp: set variable b64 = 200.25x
+PASS: gdb.base/bfp-test.exp: set variable b128 = 300.375fl
+PASS: gdb.base/bfp-test.exp: set variable b128 = 300.375fff
+Running ./gdb.base/bigcore.exp ...
+UNTESTED: gdb.base/bigcore.exp: Remote system
+Running ./gdb.base/bitfields2.exp ...
+PASS: gdb.base/bitfields2.exp: set print sevenbit-strings
+PASS: gdb.base/bitfields2.exp: break tester prior to break1
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #0
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s1 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #1
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u1 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #2
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s2 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #3
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u2 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #4
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s3 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #5
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u3 = 1
+PASS: gdb.base/bitfields2.exp: break tester prior to break2
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break2
+PASS: gdb.base/bitfields2.exp: continuing to break2 #0
+PASS: gdb.base/bitfields2.exp: bitfield containment; flags.u1, flags.u3, and flags.s3 to all 1s
+PASS: gdb.base/bitfields2.exp: continuing to break2 #1
+PASS: gdb.base/bitfields2.exp: bitfield containment; flags.u2, flags.s1, flags.s2 to all 1s
+PASS: gdb.base/bitfields2.exp: break tester prior to break3
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break3
+PASS: gdb.base/bitfields2.exp: continuing to break3 #0
+PASS: gdb.base/bitfields2.exp: maximum unsigned bitfield values
+PASS: gdb.base/bitfields2.exp: break tester prior to break4
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break4
+PASS: gdb.base/bitfields2.exp: continuing to break4 #0
+PASS: gdb.base/bitfields2.exp: maximum signed bitfield values
+PASS: gdb.base/bitfields2.exp: continuing to break4 #1
+PASS: gdb.base/bitfields2.exp: determining signed-ness of bitfields
+PASS: gdb.base/bitfields2.exp: most negative signed bitfield values
+PASS: gdb.base/bitfields2.exp: continuing to break4 #2
+PASS: gdb.base/bitfields2.exp: signed bitfields containing -1
+PASS: gdb.base/bitfields2.exp: break tester prior to break5
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break5
+PASS: gdb.base/bitfields2.exp: continuing to break5 #0
+PASS: gdb.base/bitfields2.exp: set long long unsigned bitfield
+PASS: gdb.base/bitfields2.exp: set long long signed bitfield positive
+PASS: gdb.base/bitfields2.exp: long long bitfield values after set
+PASS: gdb.base/bitfields2.exp: set long long signed bitfield negative
+PASS: gdb.base/bitfields2.exp: long long bitfield values after set negative
+Running ./gdb.base/bitfields.exp ...
+PASS: gdb.base/bitfields.exp: set print sevenbit-strings
+PASS: gdb.base/bitfields.exp: print flags
+PASS: gdb.base/bitfields.exp: continuing to break1 #1
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s1)
+PASS: gdb.base/bitfields.exp: continuing to break1 #2
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u1)
+PASS: gdb.base/bitfields.exp: continuing to break1 #3
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s2)
+PASS: gdb.base/bitfields.exp: continuing to break1 #4
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u2)
+PASS: gdb.base/bitfields.exp: continuing to break1 #5
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s3)
+PASS: gdb.base/bitfields.exp: continuing to break1 #6
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u3)
+PASS: gdb.base/bitfields.exp: continuing to break1 #7
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s9)
+PASS: gdb.base/bitfields.exp: continuing to break1 #8
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u9)
+PASS: gdb.base/bitfields.exp: continuing to break1 #9
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (sc)
+PASS: gdb.base/bitfields.exp: bitfield containment #1
+PASS: gdb.base/bitfields.exp: continuing to break2
+PASS: gdb.base/bitfields.exp: bitfield containment #2
+PASS: gdb.base/bitfields.exp: unsigned bitfield ranges
+PASS: gdb.base/bitfields.exp: signed bitfields, max positive values
+PASS: gdb.base/bitfields.exp: continuing to break4 #1
+PASS: gdb.base/bitfields.exp: determining signed-ness of bitfields
+PASS: gdb.base/bitfields.exp: signed bitfields, max negative values
+PASS: gdb.base/bitfields.exp: continuing to break4 #2
+PASS: gdb.base/bitfields.exp: signed bitfields with -1
+PASS: gdb.base/bitfields.exp: continuing to break5
+PASS: gdb.base/bitfields.exp: distinct bitfields in container
+PASS: gdb.base/bitfields.exp: print container.one.u3
+PASS: gdb.base/bitfields.exp: print container.two.u3
+PASS: gdb.base/bitfields.exp: set internal var
+PASS: gdb.base/bitfields.exp: set $myvar.a = 0
+PASS: gdb.base/bitfields.exp: set $myvar.inner.b = 1
+PASS: gdb.base/bitfields.exp: set $myvar.inner.deep.c = 0
+PASS: gdb.base/bitfields.exp: set $myvar.inner.deep.d = -1
+PASS: gdb.base/bitfields.exp: set $myvar.inner.e = 1
+PASS: gdb.base/bitfields.exp: set $myvar.f = 1
+PASS: gdb.base/bitfields.exp: print $myvar.a
+PASS: gdb.base/bitfields.exp: print $myvar.inner.b
+PASS: gdb.base/bitfields.exp: print $myvar.inner.deep.c
+PASS: gdb.base/bitfields.exp: print $myvar.inner.deep.d
+PASS: gdb.base/bitfields.exp: print $myvar.inner.e
+PASS: gdb.base/bitfields.exp: print $myvar.f
+Running ./gdb.base/bitops.exp ...
+PASS: gdb.base/bitops.exp: print value of !1
+PASS: gdb.base/bitops.exp: print value of !0
+PASS: gdb.base/bitops.exp: print value of !100
+PASS: gdb.base/bitops.exp: print value of !1000
+PASS: gdb.base/bitops.exp: print value of !10
+PASS: gdb.base/bitops.exp: print value of !2
+PASS: gdb.base/bitops.exp: print value of 10 | 5
+PASS: gdb.base/bitops.exp: print value of 10 & 5
+PASS: gdb.base/bitops.exp: print value of 10 ^ 5
+PASS: gdb.base/bitops.exp: print value of -!0
+PASS: gdb.base/bitops.exp: print value of ~-!0
+PASS: gdb.base/bitops.exp: print value of 3 * 2 / 4.0 * 2.0
+PASS: gdb.base/bitops.exp: print value of 8 << 2 >> 4
+PASS: gdb.base/bitops.exp: print value of -1 < 0 > 1
+PASS: gdb.base/bitops.exp: print value of 15 ^ 10 ^ 5 ^ 7
+PASS: gdb.base/bitops.exp: print value of 3.5 < 4.0
+PASS: gdb.base/bitops.exp: print value of 3.5 < -4.0
+PASS: gdb.base/bitops.exp: print value of 2 > -3
+PASS: gdb.base/bitops.exp: print value of -3>4
+PASS: gdb.base/bitops.exp: print value of (-3 > 4)
+PASS: gdb.base/bitops.exp: print value of 3>=2.5
+PASS: gdb.base/bitops.exp: print value of 3>=4.5
+PASS: gdb.base/bitops.exp: print value of 3==3.0
+PASS: gdb.base/bitops.exp: print value of 3==4.0
+PASS: gdb.base/bitops.exp: print value of 3!=3.0
+PASS: gdb.base/bitops.exp: print value of 3!=5.0
+PASS: gdb.base/bitops.exp: print value of 0 || 1 && 0 | 0 ^ 0 == 8 > 128 >>1 +2 *2
+PASS: gdb.base/bitops.exp: print value of 1.0 || 0
+PASS: gdb.base/bitops.exp: print value of 0.0 || 1.0
+PASS: gdb.base/bitops.exp: print value of 0.0 || 0
+PASS: gdb.base/bitops.exp: print value of 0 || 1 && 0 | 0 ^ 0 == 8
+PASS: gdb.base/bitops.exp: print value of 0 == 8 > 128 >> 1 + 2 * 2
+Running ./gdb.base/break-always.exp ...
+PASS: gdb.base/break-always.exp: set breakpoint always-inserted on
+PASS: gdb.base/break-always.exp: confirm breakpoint always-inserted
+PASS: gdb.base/break-always.exp: set breakpoint on bar
+PASS: gdb.base/break-always.exp: set 2nd breakpoint on bar
+PASS: gdb.base/break-always.exp: set 3rd breakpoint on bar
+PASS: gdb.base/break-always.exp: set 4th breakpoint on bar
+PASS: gdb.base/break-always.exp: initial check breakpoint state
+PASS: gdb.base/break-always.exp: initial disable all breakpoints
+PASS: gdb.base/break-always.exp: initial enable all breakpoints
+PASS: gdb.base/break-always.exp: re-disable all breakpoints
+PASS: gdb.base/break-always.exp: enable 3.A
+PASS: gdb.base/break-always.exp: disable 3.B
+PASS: gdb.base/break-always.exp: enable 3.C
+PASS: gdb.base/break-always.exp: enable 2.D
+PASS: gdb.base/break-always.exp: disable 2.E
+PASS: gdb.base/break-always.exp: disable 3.F
+PASS: gdb.base/break-always.exp: enable 3.G
+PASS: gdb.base/break-always.exp: enable 2.H
+PASS: gdb.base/break-always.exp: disable 2.I
+PASS: gdb.base/break-always.exp: before re-enable check breakpoint state
+PASS: gdb.base/break-always.exp: re-enable all breakpoints
+PASS: gdb.base/break-always.exp: set breakpoint on bar 2
+PASS: gdb.base/break-always.exp: save shadow
+PASS: gdb.base/break-always.exp: write 0 to breakpoint's address
+PASS: gdb.base/break-always.exp: read back 0 from the breakpoint's address
+PASS: gdb.base/break-always.exp: write 1 to breakpoint's address
+PASS: gdb.base/break-always.exp: read back 1 from the breakpoint's address
+PASS: gdb.base/break-always.exp: p /x *(char *) 0x555555c3 = $shadow
+PASS: gdb.base/break-always.exp: continue to breakpoint: bar
+Running ./gdb.base/break-caller-line.exp ...
+PASS: gdb.base/break-caller-line.exp: up
+PASS: gdb.base/break-caller-line.exp: info line *$pc
+PASS: gdb.base/break-caller-line.exp: break
+Running ./gdb.base/break-entry.exp ...
+UNTESTED: gdb.base/break-entry.exp: break-entry.exp
+Running ./gdb.base/break.exp ...
+PASS: gdb.base/break.exp: Delete all breakpoints when none
+PASS: gdb.base/break.exp: breakpoint function
+PASS: gdb.base/break.exp: breakpoint quoted function
+PASS: gdb.base/break.exp: breakpoint function in file
+PASS: gdb.base/break.exp: use `list' to establish default source file
+PASS: gdb.base/break.exp: breakpoint line number
+PASS: gdb.base/break.exp: breakpoint duplicate
+PASS: gdb.base/break.exp: breakpoint line number in file
+PASS: gdb.base/break.exp: breakpoint at start of multi line if conditional
+PASS: gdb.base/break.exp: breakpoint at start of multi line while conditional
+PASS: gdb.base/break.exp: breakpoint info
+PASS: gdb.base/break.exp: info break 2 4 6
+PASS: gdb.base/break.exp: info break 3-5
+PASS: gdb.base/break.exp: disable using history values
+PASS: gdb.base/break.exp: check disable with history values
+PASS: gdb.base/break.exp: disable with convenience values
+PASS: gdb.base/break.exp: check disable with convenience values
+PASS: gdb.base/break.exp: disable non-existent breakpoint 10
+PASS: gdb.base/break.exp: set $baz 1.234
+PASS: gdb.base/break.exp: disable with non-integer convenience var
+PASS: gdb.base/break.exp: disable with non-existent convenience var
+PASS: gdb.base/break.exp: disable with non-existent history value
+PASS: gdb.base/break.exp: disable with badly formed history value
+PASS: gdb.base/break.exp: run until function breakpoint
+PASS: gdb.base/break.exp: list marker1
+PASS: gdb.base/break.exp: break lineno
+PASS: gdb.base/break.exp: delete $bpnum
+PASS: gdb.base/break.exp: run until breakpoint set at a line number
+PASS: gdb.base/break.exp: run until file:function(6) breakpoint
+PASS: gdb.base/break.exp: run until file:function(5) breakpoint
+PASS: gdb.base/break.exp: run until file:function(4) breakpoint
+PASS: gdb.base/break.exp: run until file:function(3) breakpoint
+PASS: gdb.base/break.exp: run until file:function(2) breakpoint
+PASS: gdb.base/break.exp: run until file:function(1) breakpoint
+PASS: gdb.base/break.exp: run until quoted breakpoint
+PASS: gdb.base/break.exp: run until file:linenum breakpoint
+PASS: gdb.base/break.exp: breakpoint offset +1
+PASS: gdb.base/break.exp: step onto breakpoint
+PASS: gdb.base/break.exp: setting breakpoint at }
+PASS: gdb.base/break.exp: continue to breakpoint at }
+PASS: gdb.base/break.exp: Temporary breakpoint function
+PASS: gdb.base/break.exp: Temporary breakpoint function in file
+PASS: gdb.base/break.exp: Temporary breakpoint line number #1
+PASS: gdb.base/break.exp: Temporary breakpoint line number #2
+PASS: gdb.base/break.exp: Temporary breakpoint line number in file #1
+PASS: gdb.base/break.exp: Temporary breakpoint line number in file #2
+PASS: gdb.base/break.exp: Temporary breakpoint info
+PASS: gdb.base/break.exp: catch requires an event name
+PASS: gdb.base/break.exp: set catch fork, never expected to trigger
+PASS: gdb.base/break.exp: set catch vfork, never expected to trigger
+PASS: gdb.base/break.exp: set catch exec, never expected to trigger
+PASS: gdb.base/break.exp: set breakpoint pending off
+PASS: gdb.base/break.exp: break on non-existent source line
+PASS: gdb.base/break.exp: until bp_location1
+PASS: gdb.base/break.exp: break on default location, 1st time
+PASS: gdb.base/break.exp: break on default location, 2nd time
+PASS: gdb.base/break.exp: break on default location, 3rd time
+PASS: gdb.base/break.exp: break on default location, 4th time
+PASS: gdb.base/break.exp: set to-be-silent break bp_location1
+PASS: gdb.base/break.exp: set silent break bp_location1
+PASS: gdb.base/break.exp: info silent break bp_location1
+PASS: gdb.base/break.exp: hit silent break bp_location1
+PASS: gdb.base/break.exp: stopped for silent break bp_location1
+PASS: gdb.base/break.exp: thread-specific breakpoint on non-existent thread disallowed
+PASS: gdb.base/break.exp: thread-specific breakpoint on bogus thread ID disallowed
+PASS: gdb.base/break.exp: breakpoint with trailing garbage disallowed
+PASS: gdb.base/break.exp: step over breakpoint
+PASS: gdb.base/break.exp: clear line has no breakpoint disallowed
+PASS: gdb.base/break.exp: clear current line has no breakpoint disallowed
+PASS: gdb.base/break.exp: break marker3 #1
+PASS: gdb.base/break.exp: break marker3 #2
+PASS: gdb.base/break.exp: clear marker3
+PASS: gdb.base/break.exp: set convenience variable $foo to bp_location11
+PASS: gdb.base/break.exp: set breakpoint via convenience variable
+PASS: gdb.base/break.exp: set convenience variable $foo to 81.5
+PASS: gdb.base/break.exp: set breakpoint via non-integer convenience variable disallowed
+PASS: gdb.base/break.exp: set breakpoint on to-be-called function
+PASS: gdb.base/break.exp: hit breakpoint on called function
+PASS: gdb.base/break.exp: backtrace while in called function
+PASS: gdb.base/break.exp: finish from called function
+PASS: gdb.base/break.exp: finish with arguments disallowed
+PASS: gdb.base/break.exp: finish from outermost frame disallowed
+PASS: gdb.base/break.exp: kill program
+PASS: gdb.base/break.exp: break at factorial
+PASS: gdb.base/break.exp: continue to factorial(5)
+PASS: gdb.base/break.exp: backtrace from factorial(5)
+PASS: gdb.base/break.exp: next to recursive call
+PASS: gdb.base/break.exp: next over recursive call
+PASS: gdb.base/break.exp: backtrace from factorial(5.1)
+PASS: gdb.base/break.exp: continue until exit at recursive next test
+PASS: gdb.base/break.exp: breakpoint function, optimized file
+PASS: gdb.base/break.exp: breakpoint small function, optimized file
+PASS: gdb.base/break.exp: run until function breakpoint, optimized file (code motion)
+PASS: gdb.base/break.exp: run until breakpoint set at small function, optimized file
+PASS: gdb.base/break.exp: rbreak junk pending setup
+PASS: gdb.base/break.exp: rbreak junk set breakpoint
+PASS: gdb.base/break.exp: rbreak junk
+Running ./gdb.base/break-inline.exp ...
+PASS: gdb.base/break-inline.exp: break
+Running ./gdb.base/break-interp.exp ...
+Running ./gdb.base/break-on-linker-gcd-function.exp ...
+PASS: gdb.base/break-on-linker-gcd-function.exp: b 25
+Running ./gdb.base/breakpoint-shadow.exp ...
+PASS: gdb.base/breakpoint-shadow.exp: set breakpoint always-inserted on
+PASS: gdb.base/breakpoint-shadow.exp: show breakpoint always-inserted
+PASS: gdb.base/breakpoint-shadow.exp: disassembly without breakpoints
+PASS: gdb.base/breakpoint-shadow.exp: First breakpoint placed
+PASS: gdb.base/breakpoint-shadow.exp: Second breakpoint placed
+PASS: gdb.base/breakpoint-shadow.exp: disassembly with breakpoints
+Running ./gdb.base/call-ar-st.exp ...
+PASS: gdb.base/call-ar-st.exp: set print sevenbit-strings
+PASS: gdb.base/call-ar-st.exp: set print address off
+PASS: gdb.base/call-ar-st.exp: set width 0
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1209
+PASS: gdb.base/call-ar-st.exp: run until breakpoint set at a line
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1216
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1220
+PASS: gdb.base/call-ar-st.exp: step inside print_all_arrays
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1236
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1241
+PASS: gdb.base/call-ar-st.exp: continue to 1241
+PASS: gdb.base/call-ar-st.exp: set breakpoint in sum_array_print
+PASS: gdb.base/call-ar-st.exp: set print frame-arguments all
+PASS: gdb.base/call-ar-st.exp: check args of sum_array_print
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1281
+PASS: gdb.base/call-ar-st.exp: print compute_with_small_structs(20)
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1286
+PASS: gdb.base/call-ar-st.exp: continue to 1286
+PASS: gdb.base/call-ar-st.exp: tbreak in print_long_arg_list after stepping into memcpy
+PASS: gdb.base/call-ar-st.exp: step into print_long_arg_list
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1300
+PASS: gdb.base/call-ar-st.exp: step into init_bit_flags_combo
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1305
+PASS: gdb.base/call-ar-st.exp: continue to 1305
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1311
+PASS: gdb.base/call-ar-st.exp: continue to 1311
+Running ./gdb.base/callexit.exp ...
+PASS: gdb.base/callexit.exp: inferior function call terminated program
+Running ./gdb.base/callfuncs.exp ...
+PASS: gdb.base/callfuncs.exp: set print sevenbit-strings
+PASS: gdb.base/callfuncs.exp: set print address off
+PASS: gdb.base/callfuncs.exp: set width 0
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: set unwindonsignal on
+PASS: gdb.base/callfuncs.exp: p t_char_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_char_values('a','b')
+PASS: gdb.base/callfuncs.exp: p t_char_values(char_val1,char_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_values('a',char_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_values(char_val1,'b')
+PASS: gdb.base/callfuncs.exp: p t_short_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_short_values(10,-23)
+PASS: gdb.base/callfuncs.exp: p t_short_values(short_val1,short_val2)
+PASS: gdb.base/callfuncs.exp: p t_short_values(10,short_val2)
+PASS: gdb.base/callfuncs.exp: p t_short_values(short_val1,-23)
+PASS: gdb.base/callfuncs.exp: p t_int_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_int_values(87,-26)
+PASS: gdb.base/callfuncs.exp: p t_int_values(int_val1,int_val2)
+PASS: gdb.base/callfuncs.exp: p t_int_values(87,int_val2)
+PASS: gdb.base/callfuncs.exp: p t_int_values(int_val1,-26)
+PASS: gdb.base/callfuncs.exp: p t_long_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_long_values(789,-321)
+PASS: gdb.base/callfuncs.exp: p t_long_values(long_val1,long_val2)
+PASS: gdb.base/callfuncs.exp: p t_long_values(789,long_val2)
+PASS: gdb.base/callfuncs.exp: p t_long_values(long_val1,-321)
+PASS: gdb.base/callfuncs.exp: p t_float_values(0.0,0.0)
+PASS: gdb.base/callfuncs.exp: p t_float_values(3.14159,-2.3765)
+PASS: gdb.base/callfuncs.exp: p t_float_values(float_val1,float_val2)
+PASS: gdb.base/callfuncs.exp: p t_float_values(3.14159,float_val2)
+PASS: gdb.base/callfuncs.exp: p t_float_values(float_val1,-2.3765)
+PASS: gdb.base/callfuncs.exp: p t_float_values2(0.0,0.0)
+PASS: gdb.base/callfuncs.exp: p t_float_values2(3.14159,float_val2)
+PASS: gdb.base/callfuncs.exp: Call function with many float arguments.
+PASS: gdb.base/callfuncs.exp: p t_small_values(1,2,3,4,5,6,7,8,9,10)
+PASS: gdb.base/callfuncs.exp: p t_double_values(0.0,0.0)
+PASS: gdb.base/callfuncs.exp: p t_double_values(45.654,-67.66)
+PASS: gdb.base/callfuncs.exp: p t_double_values(double_val1,double_val2)
+PASS: gdb.base/callfuncs.exp: p t_double_values(45.654,double_val2)
+PASS: gdb.base/callfuncs.exp: p t_double_values(double_val1,-67.66)
+PASS: gdb.base/callfuncs.exp: Call function with many double arguments.
+PASS: gdb.base/callfuncs.exp: p t_double_int(99.0, 1)
+PASS: gdb.base/callfuncs.exp: p t_double_int(99.0, 99)
+PASS: gdb.base/callfuncs.exp: p t_int_double(99, 1.0)
+PASS: gdb.base/callfuncs.exp: p t_int_double(99, 99.0)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_values(fc1, fc2)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_values(fc3, fc4)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_many_args(fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_many_args(fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_values(dc1, dc2)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_values(dc3, dc4)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_many_args(dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_many_args(dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_values(ldc1, ldc2)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_values(ldc3, ldc4)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_many_args(ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_many_args(ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1,ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1)
+PASS: gdb.base/callfuncs.exp: p t_string_values(string_val2,string_val1)
+PASS: gdb.base/callfuncs.exp: p t_string_values(string_val1,string_val2)
+PASS: gdb.base/callfuncs.exp: p t_string_values("string 1","string 2")
+PASS: gdb.base/callfuncs.exp: p t_string_values("string 1",string_val2)
+PASS: gdb.base/callfuncs.exp: p t_string_values(string_val1,"string 2")
+PASS: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val2,char_array_val1)
+PASS: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val1,char_array_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_array_values("carray 1","carray 2")
+PASS: gdb.base/callfuncs.exp: p t_char_array_values("carray 1",char_array_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val1,"carray 2")
+PASS: gdb.base/callfuncs.exp: p doubleit(4)
+PASS: gdb.base/callfuncs.exp: p add(4,5)
+PASS: gdb.base/callfuncs.exp: p t_func_values(func_val2,func_val1)
+PASS: gdb.base/callfuncs.exp: p t_func_values(func_val1,func_val2)
+PASS: gdb.base/callfuncs.exp: p function_struct.func(5)
+PASS: gdb.base/callfuncs.exp: p function_struct_ptr->func(10)
+PASS: gdb.base/callfuncs.exp: p t_func_values(add,func_val2)
+PASS: gdb.base/callfuncs.exp: p t_func_values(func_val1,doubleit)
+PASS: gdb.base/callfuncs.exp: p t_call_add(add,3,4)
+PASS: gdb.base/callfuncs.exp: p t_call_add(func_val1,3,4)
+PASS: gdb.base/callfuncs.exp: p t_enum_value1(enumval1)
+PASS: gdb.base/callfuncs.exp: p t_enum_value1(enum_val1)
+PASS: gdb.base/callfuncs.exp: p t_enum_value1(enum_val2)
+PASS: gdb.base/callfuncs.exp: p t_enum_value2(enumval2)
+PASS: gdb.base/callfuncs.exp: p t_enum_value2(enum_val2)
+PASS: gdb.base/callfuncs.exp: p t_enum_value2(enum_val1)
+PASS: gdb.base/callfuncs.exp: p sum_args(1,{2})
+PASS: gdb.base/callfuncs.exp: p sum_args(2,{2,3})
+PASS: gdb.base/callfuncs.exp: p sum_args(3,{2,3,4})
+PASS: gdb.base/callfuncs.exp: p sum_args(4,{2,3,4,5})
+PASS: gdb.base/callfuncs.exp: p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
+PASS: gdb.base/callfuncs.exp: p cmp10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns char
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns short
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns int
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns long
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns float
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns double
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns float _Complex
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns double _Complex
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns long double _Complex
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns char *
+PASS: gdb.base/callfuncs.exp: set unwindonsignal off
+PASS: gdb.base/callfuncs.exp: register contents after gdb function calls
+PASS: gdb.base/callfuncs.exp: gdb function calls preserve register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: stop at breakpoint in call dummy function
+PASS: gdb.base/callfuncs.exp: continue from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: bt after continuing from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: register contents after stop in call dummy
+PASS: gdb.base/callfuncs.exp: continue after stop in call dummy preserves register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: call function causing a breakpoint then do a finish
+PASS: gdb.base/callfuncs.exp: finish from call dummy breakpoint returns correct value
+PASS: gdb.base/callfuncs.exp: bt after finishing from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: register contents after finish in call dummy
+PASS: gdb.base/callfuncs.exp: finish after stop in call dummy preserves register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: call function causing a breakpoint and then do a return
+PASS: gdb.base/callfuncs.exp: back at main after return from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: register contents after return in call dummy
+PASS: gdb.base/callfuncs.exp: return after stop in call dummy preserves register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: stop at nested call level 1
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 1
+PASS: gdb.base/callfuncs.exp: stop at nested call level 2
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 2
+PASS: gdb.base/callfuncs.exp: stop at nested call level 3
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 3
+PASS: gdb.base/callfuncs.exp: stop at nested call level 4
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 4
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 4
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 4
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 3
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 3
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 2
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 2
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 1
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 1
+PASS: gdb.base/callfuncs.exp: register contents after nested call dummies
+PASS: gdb.base/callfuncs.exp: nested call dummies preserve register contents
+PASS: gdb.base/callfuncs.exp: set $old_sp = $sp
+PASS: gdb.base/callfuncs.exp: set $sp = 0
+PASS: gdb.base/callfuncs.exp: sp == 0: call doubleit (1)
+PASS: gdb.base/callfuncs.exp: set $sp = -1
+PASS: gdb.base/callfuncs.exp: sp == -1: call doubleit (1)
+PASS: gdb.base/callfuncs.exp: set $sp = $old_sp
+PASS: gdb.base/callfuncs.exp: print callfunc (Lcallfunc, 5)
+PASS: gdb.base/callfuncs.exp: print *((int *(*) (void)) voidfunc)()
+Running ./gdb.base/call-rt-st.exp ...
+PASS: gdb.base/call-rt-st.exp: set print sevenbit-strings
+PASS: gdb.base/call-rt-st.exp: set print address off
+PASS: gdb.base/call-rt-st.exp: set width 0
+PASS: gdb.base/call-rt-st.exp: breakpoint loop_count
+PASS: gdb.base/call-rt-st.exp: continue to loop_count
+PASS: gdb.base/call-rt-st.exp: finish out from loop_count (line 777)
+Running ./gdb.base/call-sc.exp ...
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tc (char)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tc char
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tc
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tc
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tc
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tc
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tc
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tc
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tc
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tc
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tc
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tc
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tc
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tc
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-ts (short int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-ts short int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-ts
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-ts
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-ts
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ts
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-ts
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-ts
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-ts
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ts
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-ts
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-ts
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-ts
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-ts
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-ti (int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-ti int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-ti
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-ti
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-ti
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ti
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-ti
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-ti
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-ti
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ti
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-ti
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-ti
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-ti
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-ti
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tl (long int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tl long int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tl
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tl
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tl
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tl
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tl
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tl
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tl
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tl
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tl
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tl
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tl
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tl
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tll (long long int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tll long long int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tll
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tll
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tll
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tll
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tll
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tll
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tll
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tll
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tll
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tll
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tll
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tll
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tf (float)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tf float
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tf
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tf
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tf
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tf
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tf
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tf
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tf
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tf
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tf
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tf
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tf
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tf
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-td (double)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-td double
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-td
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-td
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-td
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-td
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-td
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-td
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-td
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-td
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-td
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-td
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-td
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-td
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tld (long double)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tld long double
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tld
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tld
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tld
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tld
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tld
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tld
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tld
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tld
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tld
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tld
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tld
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tld
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-te (enum {e = 49})
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-te enum {e = 49}
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-te
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-te
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-te
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-te
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-te
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-te
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-te
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-te
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-te
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-te
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-te
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-te
+Running ./gdb.base/call-signal-resume.exp ...
+Running ./gdb.base/call-strs.exp ...
+PASS: gdb.base/call-strs.exp: set print sevenbit-strings
+PASS: gdb.base/call-strs.exp: set print address off
+PASS: gdb.base/call-strs.exp: set print symbol off
+PASS: gdb.base/call-strs.exp: set width 0
+PASS: gdb.base/call-strs.exp: step after assignment to s
+PASS: gdb.base/call-strs.exp: next over strcpy
+PASS: gdb.base/call-strs.exp: print buf
+PASS: gdb.base/call-strs.exp: print s
+Running ./gdb.base/catch-load.exp ...
+PASS: gdb.base/catch-load.exp: plain load: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain load: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: plain load: catch load
+PASS: gdb.base/catch-load.exp: plain load: continue
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: catch load
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: rx load: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx load: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: rx load: catch load catch-load-so
+PASS: gdb.base/catch-load.exp: rx load: continue
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: catch load catch-load-so
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: non-matching load: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching load: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: non-matching load: catch load zardoz
+PASS: gdb.base/catch-load.exp: non-matching load: continue
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: catch load zardoz
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: plain unload: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain unload: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: plain unload: catch unload
+PASS: gdb.base/catch-load.exp: plain unload: continue
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: catch unload
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: rx unload: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx unload: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: rx unload: catch unload catch-load-so
+PASS: gdb.base/catch-load.exp: rx unload: continue
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: catch unload catch-load-so
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: non-matching unload: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching unload: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: non-matching unload: catch unload zardoz
+PASS: gdb.base/catch-load.exp: non-matching unload: continue
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: catch unload zardoz
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: continue
+Running ./gdb.base/catch-signal.exp ...
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: first HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: handle SIGHUP nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP: catch signal
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: handle marker
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: second HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: catch signal SIGHUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: third HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: handle SIGUSR1 nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP: catch signal SIGUSR1
+PASS: gdb.base/catch-signal.exp: SIGHUP: handle SIGHUP nostop noprint nopass
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: fourth HUP
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: first HUP
+PASS: gdb.base/catch-signal.exp: 1: handle SIGHUP nostop noprint pass
+PASS: gdb.base/catch-signal.exp: 1: catch signal
+PASS: gdb.base/catch-signal.exp: 1: continue
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: handle marker
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: second HUP
+PASS: gdb.base/catch-signal.exp: 1: catch signal 1
+PASS: gdb.base/catch-signal.exp: 1: continue
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: third HUP
+PASS: gdb.base/catch-signal.exp: 1: handle SIGUSR1 nostop noprint pass
+PASS: gdb.base/catch-signal.exp: 1: catch signal SIGUSR1
+PASS: gdb.base/catch-signal.exp: 1: handle SIGHUP nostop noprint nopass
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: fourth HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: first HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGHUP nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: catch signal
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: handle marker
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: second HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: catch signal SIGHUP SIGUSR2
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: third HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGUSR1 nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: catch signal SIGUSR1
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGHUP nostop noprint nopass
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: fourth HUP
+PASS: gdb.base/catch-signal.exp: catch signal SIGZARDOZ
+PASS: gdb.base/catch-signal.exp: catch signal all
+PASS: gdb.base/catch-signal.exp: catch signal all SIGHUP
+PASS: gdb.base/catch-signal.exp: catch signal SIGHUP all
+PASS: gdb.base/catch-signal.exp: set catchpoint '' for printing
+PASS: gdb.base/catch-signal.exp: info break for ''
+PASS: gdb.base/catch-signal.exp: save breakpoints for ''
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for ''
+PASS: gdb.base/catch-signal.exp: set catchpoint 'SIGHUP' for printing
+PASS: gdb.base/catch-signal.exp: info break for 'SIGHUP'
+PASS: gdb.base/catch-signal.exp: save breakpoints for 'SIGHUP'
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for 'SIGHUP'
+PASS: gdb.base/catch-signal.exp: set catchpoint 'SIGHUP SIGUSR2' for printing
+PASS: gdb.base/catch-signal.exp: info break for 'SIGHUP SIGUSR2'
+PASS: gdb.base/catch-signal.exp: save breakpoints for 'SIGHUP SIGUSR2'
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for 'SIGHUP SIGUSR2'
+PASS: gdb.base/catch-signal.exp: set catchpoint 'all' for printing
+PASS: gdb.base/catch-signal.exp: info break for 'all'
+PASS: gdb.base/catch-signal.exp: save breakpoints for 'all'
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for 'all'
+Running ./gdb.base/catch-syscall.exp ...
+Running ./gdb.base/charset.exp ...
+PASS: gdb.base/charset.exp: show charset
+PASS: gdb.base/charset.exp: show target-charset
+PASS: gdb.base/charset.exp: check `show target-charset' against `show charset'
+PASS: gdb.base/charset.exp: show host-charset
+PASS: gdb.base/charset.exp: check `show host-charset' against `show charset'
+PASS: gdb.base/charset.exp: try malformed `set charset'
+PASS: gdb.base/charset.exp: try `set host-charset' with invalid charset
+PASS: gdb.base/charset.exp: try `set target-charset' with invalid charset
+PASS: gdb.base/charset.exp: capture valid host charsets
+PASS: gdb.base/charset.exp: capture valid target charsets
+PASS: gdb.base/charset.exp: try `set host-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set host-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set host-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set host-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set host-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set host-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set host-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set host-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: set breakpoint after all strings have been initialized
+PASS: gdb.base/charset.exp: run until all strings have been initialized
+PASS: gdb.base/charset.exp: get integer valueof "sizeof (wchar_t)" (4)
+PASS: gdb.base/charset.exp: set host-charset ASCII
+PASS: gdb.base/charset.exp: set target-charset ASCII
+PASS: gdb.base/charset.exp: print the null character in ASCII
+PASS: gdb.base/charset.exp: print string in ASCII
+PASS: gdb.base/charset.exp: parse character literal in ASCII
+PASS: gdb.base/charset.exp: check value of parsed character literal in ASCII
+PASS: gdb.base/charset.exp: parse string literal in ASCII
+PASS: gdb.base/charset.exp: check value of parsed string literal in ASCII
+PASS: gdb.base/charset.exp: try printing '\a' in ASCII
+PASS: gdb.base/charset.exp: check value of '\a' in ASCII
+PASS: gdb.base/charset.exp: check value of "\a" in ASCII
+PASS: gdb.base/charset.exp: try printing '\b' in ASCII
+PASS: gdb.base/charset.exp: check value of '\b' in ASCII
+PASS: gdb.base/charset.exp: check value of "\b" in ASCII
+PASS: gdb.base/charset.exp: try printing '\f' in ASCII
+PASS: gdb.base/charset.exp: check value of '\f' in ASCII
+PASS: gdb.base/charset.exp: check value of "\f" in ASCII
+PASS: gdb.base/charset.exp: try printing '\n' in ASCII
+PASS: gdb.base/charset.exp: check value of '\n' in ASCII
+PASS: gdb.base/charset.exp: check value of "\n" in ASCII
+PASS: gdb.base/charset.exp: try printing '\r' in ASCII
+PASS: gdb.base/charset.exp: check value of '\r' in ASCII
+PASS: gdb.base/charset.exp: check value of "\r" in ASCII
+PASS: gdb.base/charset.exp: try printing '\t' in ASCII
+PASS: gdb.base/charset.exp: check value of '\t' in ASCII
+PASS: gdb.base/charset.exp: check value of "\t" in ASCII
+PASS: gdb.base/charset.exp: try printing '\v' in ASCII
+PASS: gdb.base/charset.exp: check value of '\v' in ASCII
+PASS: gdb.base/charset.exp: check value of "\v" in ASCII
+PASS: gdb.base/charset.exp: print escape that doesn't exist in ASCII
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in ASCII
+PASS: gdb.base/charset.exp: set target-charset ISO-8859-1
+PASS: gdb.base/charset.exp: print the null character in ISO-8859-1
+PASS: gdb.base/charset.exp: print string in ISO-8859-1
+PASS: gdb.base/charset.exp: parse character literal in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of parsed character literal in ISO-8859-1
+PASS: gdb.base/charset.exp: parse string literal in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of parsed string literal in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\a' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\a' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\a" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\b' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\b' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\b" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\f' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\f' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\f" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\n' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\n' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\n" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\r' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\r' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\r" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\t' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\t' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\t" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\v' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\v' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\v" in ISO-8859-1
+PASS: gdb.base/charset.exp: print escape that doesn't exist in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in ISO-8859-1
+PASS: gdb.base/charset.exp: set target-charset EBCDIC-US
+PASS: gdb.base/charset.exp: print the null character in EBCDIC-US
+PASS: gdb.base/charset.exp: print string in EBCDIC-US
+PASS: gdb.base/charset.exp: parse character literal in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of parsed character literal in EBCDIC-US
+PASS: gdb.base/charset.exp: parse string literal in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of parsed string literal in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\a' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\a' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\a" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\b' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\b' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\b" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\f' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\f' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\f" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\n' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\n' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\n" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\r' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\r' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\r" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\t' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\t' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\t" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\v' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\v' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\v" in EBCDIC-US
+PASS: gdb.base/charset.exp: print escape that doesn't exist in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in EBCDIC-US
+PASS: gdb.base/charset.exp: set target-charset IBM1047
+PASS: gdb.base/charset.exp: print the null character in IBM1047
+PASS: gdb.base/charset.exp: print string in IBM1047
+PASS: gdb.base/charset.exp: parse character literal in IBM1047
+PASS: gdb.base/charset.exp: check value of parsed character literal in IBM1047
+PASS: gdb.base/charset.exp: parse string literal in IBM1047
+PASS: gdb.base/charset.exp: check value of parsed string literal in IBM1047
+PASS: gdb.base/charset.exp: try printing '\a' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\a' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\a" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\b' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\b' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\b" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\f' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\f' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\f" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\n' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\n' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\n" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\r' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\r' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\r" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\t' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\t' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\t" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\v' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\v' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\v" in IBM1047
+PASS: gdb.base/charset.exp: print escape that doesn't exist in IBM1047
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in IBM1047
+PASS: gdb.base/charset.exp: set target-wide-charset UTF-32
+PASS: gdb.base/charset.exp: print the null character in UTF-32
+PASS: gdb.base/charset.exp: print string in UTF-32
+PASS: gdb.base/charset.exp: parse character literal in UTF-32
+PASS: gdb.base/charset.exp: check value of parsed character literal in UTF-32
+PASS: gdb.base/charset.exp: parse string literal in UTF-32
+PASS: gdb.base/charset.exp: check value of parsed string literal in UTF-32
+PASS: gdb.base/charset.exp: try printing '\a' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\a' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\a" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\b' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\b' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\b" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\f' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\f' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\f" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\n' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\n' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\n" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\r' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\r' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\r" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\t' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\t' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\t" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\v' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\v' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\v" in UTF-32
+PASS: gdb.base/charset.exp: print escape that doesn't exist in UTF-32
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in UTF-32
+PASS: gdb.base/charset.exp: set target-charset UTF-8
+PASS: gdb.base/charset.exp: non-representable target character
+PASS: gdb.base/charset.exp: print '\x'
+PASS: gdb.base/charset.exp: print '\u'
+PASS: gdb.base/charset.exp: print '\9'
+PASS: gdb.base/charset.exp: print "\1011"
+PASS: gdb.base/charset.exp: basic wide string concatenation
+PASS: gdb.base/charset.exp: narrow and wide string concatenation
+PASS: gdb.base/charset.exp: wide and narrow string concatenation
+PASS: gdb.base/charset.exp: wide string concatenation with escape
+PASS: gdb.base/charset.exp: concatenate three strings with empty wide string
+PASS: gdb.base/charset.exp: basic wide character
+PASS: gdb.base/charset.exp: get integer valueof "sizeof (char16_t)" (2)
+PASS: gdb.base/charset.exp: basic UTF-16 string concatenation
+PASS: gdb.base/charset.exp: narrow and UTF-16 string concatenation
+PASS: gdb.base/charset.exp: UTF-16 and narrow string concatenation
+PASS: gdb.base/charset.exp: UTF-16 string concatenation with escape
+PASS: gdb.base/charset.exp: concatenate three strings with empty UTF-16 string
+PASS: gdb.base/charset.exp: basic UTF-16 character
+PASS: gdb.base/charset.exp: get integer valueof "sizeof (char32_t)" (4)
+PASS: gdb.base/charset.exp: basic UTF-32 string concatenation
+PASS: gdb.base/charset.exp: narrow and UTF-32 string concatenation
+PASS: gdb.base/charset.exp: UTF-32 and narrow string concatenation
+PASS: gdb.base/charset.exp: UTF-32 string concatenation with escape
+PASS: gdb.base/charset.exp: concatenate three strings with empty UTF-32 string
+PASS: gdb.base/charset.exp: basic UTF-32 character
+PASS: gdb.base/charset.exp: undefined concatenation of wide and UTF-16
+PASS: gdb.base/charset.exp: undefined concatenation of wide and UTF-32
+PASS: gdb.base/charset.exp: typedef to wchar_t
+PASS: gdb.base/charset.exp: undefined concatenation of UTF-16 and UTF-32
+PASS: gdb.base/charset.exp: set up for python printing of utf-16 string
+PASS: gdb.base/charset.exp: extract utf-16 string using python
+PASS: gdb.base/charset.exp: EVAL_SKIP cleanup handling regression test
+PASS: gdb.base/charset.exp: Assign String16 with prefix u
+PASS: gdb.base/charset.exp: Display String String16 with x/hs
+PASS: gdb.base/charset.exp: Assign String32 with prefix U
+PASS: gdb.base/charset.exp: Display String String32 with x/ws
+PASS: gdb.base/charset.exp: Assign String32 with prefix L
+PASS: gdb.base/charset.exp: Display String String32 with x/ws
+PASS: gdb.base/charset.exp: assign string to short array
+PASS: gdb.base/charset.exp: assign string to int array
+PASS: gdb.base/charset.exp: assign string to long array
+Running ./gdb.base/checkpoint.exp ...
+Running ./gdb.base/chng-syms.exp ...
+PASS: gdb.base/chng-syms.exp: setting conditional breakpoint on function
+PASS: gdb.base/chng-syms.exp: continue until exit at breakpoint first time through
+PASS: gdb.base/chng-syms.exp: running with invalidated bpt condition after executable changes
+Running ./gdb.base/code_elim.exp ...
+PASS: gdb.base/code_elim.exp: symbol-file code_elim1
+PASS: gdb.base/code_elim.exp: single psymtabs: test eliminated var my_global_symbol
+PASS: gdb.base/code_elim.exp: single psymtabs: test eliminated var my_static_symbol
+PASS: gdb.base/code_elim.exp: single psymtabs: test eliminated var my_global_func
+PASS: gdb.base/code_elim.exp: single psymtabs: get address of main
+PASS: gdb.base/code_elim.exp: single symtabs: test eliminated var my_global_symbol
+PASS: gdb.base/code_elim.exp: single symtabs: test eliminated var my_static_symbol
+PASS: gdb.base/code_elim.exp: single symtabs: test eliminated var my_global_func
+PASS: gdb.base/code_elim.exp: single symtabs: get address of main
+PASS: gdb.base/code_elim.exp: order1: add-symbol-file code_elim1 0x100000
+PASS: gdb.base/code_elim.exp: order1: add-symbol-file code_elim2 0x200000
+PASS: gdb.base/code_elim.exp: order1: get address of my_global_symbol
+PASS: gdb.base/code_elim.exp: order1: get address of my_static_symbol
+PASS: gdb.base/code_elim.exp: order1: get address of my_global_func
+PASS: gdb.base/code_elim.exp: order1: get address of main
+PASS: gdb.base/code_elim.exp: order2: add-symbol-file code_elim2 0x200000
+PASS: gdb.base/code_elim.exp: order2: add-symbol-file code_elim1 0x100000
+PASS: gdb.base/code_elim.exp: order2: get address of my_global_symbol
+PASS: gdb.base/code_elim.exp: order2: get address of my_static_symbol
+PASS: gdb.base/code_elim.exp: order2: get address of my_global_func
+PASS: gdb.base/code_elim.exp: order2: get address of main
+Running ./gdb.base/code-expr.exp ...
+PASS: gdb.base/code-expr.exp: set print sevenbit-strings
+PASS: gdb.base/code-expr.exp: set print address off
+PASS: gdb.base/code-expr.exp: set width 0
+PASS: gdb.base/code-expr.exp: (@code char)
+PASS: gdb.base/code-expr.exp: (@code signed char)
+PASS: gdb.base/code-expr.exp: (@code unsigned char)
+PASS: gdb.base/code-expr.exp: (@code short)
+PASS: gdb.base/code-expr.exp: (@code signed short)
+PASS: gdb.base/code-expr.exp: (@code unsigned short)
+PASS: gdb.base/code-expr.exp: (@code int)
+PASS: gdb.base/code-expr.exp: (@code signed int)
+PASS: gdb.base/code-expr.exp: (@code unsigned int)
+PASS: gdb.base/code-expr.exp: (@code long)
+PASS: gdb.base/code-expr.exp: (@code signed long)
+PASS: gdb.base/code-expr.exp: (@code unsigned long)
+PASS: gdb.base/code-expr.exp: (@code long long)
+PASS: gdb.base/code-expr.exp: (@code signed long long)
+PASS: gdb.base/code-expr.exp: (@code unsigned long long)
+PASS: gdb.base/code-expr.exp: (@code float)
+PASS: gdb.base/code-expr.exp: (@code double)
+PASS: gdb.base/code-expr.exp: (@data char)
+PASS: gdb.base/code-expr.exp: (@data signed char)
+PASS: gdb.base/code-expr.exp: (@data unsigned char)
+PASS: gdb.base/code-expr.exp: (@data short)
+PASS: gdb.base/code-expr.exp: (@data signed short)
+PASS: gdb.base/code-expr.exp: (@data unsigned short)
+PASS: gdb.base/code-expr.exp: (@data int)
+PASS: gdb.base/code-expr.exp: (@data signed int)
+PASS: gdb.base/code-expr.exp: (@data unsigned int)
+PASS: gdb.base/code-expr.exp: (@data long)
+PASS: gdb.base/code-expr.exp: (@data signed long)
+PASS: gdb.base/code-expr.exp: (@data unsigned long)
+PASS: gdb.base/code-expr.exp: (@data long long)
+PASS: gdb.base/code-expr.exp: (@data signed long long)
+PASS: gdb.base/code-expr.exp: (@data unsigned long long)
+PASS: gdb.base/code-expr.exp: (@data float)
+PASS: gdb.base/code-expr.exp: (@data double)
+PASS: gdb.base/code-expr.exp: (char @code)
+PASS: gdb.base/code-expr.exp: (signed char @code)
+PASS: gdb.base/code-expr.exp: (unsigned char @code)
+PASS: gdb.base/code-expr.exp: (short @code)
+PASS: gdb.base/code-expr.exp: (signed short @code)
+PASS: gdb.base/code-expr.exp: (unsigned short @code)
+PASS: gdb.base/code-expr.exp: (int @code)
+PASS: gdb.base/code-expr.exp: (signed int @code)
+PASS: gdb.base/code-expr.exp: (unsigned int @code)
+PASS: gdb.base/code-expr.exp: (long @code)
+PASS: gdb.base/code-expr.exp: (signed long @code)
+PASS: gdb.base/code-expr.exp: (unsigned long @code)
+PASS: gdb.base/code-expr.exp: (long long @code)
+PASS: gdb.base/code-expr.exp: (signed long long @code)
+PASS: gdb.base/code-expr.exp: (unsigned long long @code)
+PASS: gdb.base/code-expr.exp: (float @code)
+PASS: gdb.base/code-expr.exp: (double @code)
+PASS: gdb.base/code-expr.exp: (char @data)
+PASS: gdb.base/code-expr.exp: (signed char @data)
+PASS: gdb.base/code-expr.exp: (unsigned char @data)
+PASS: gdb.base/code-expr.exp: (short @data)
+PASS: gdb.base/code-expr.exp: (signed short @data)
+PASS: gdb.base/code-expr.exp: (unsigned short @data)
+PASS: gdb.base/code-expr.exp: (int @data)
+PASS: gdb.base/code-expr.exp: (signed int @data)
+PASS: gdb.base/code-expr.exp: (unsigned int @data)
+PASS: gdb.base/code-expr.exp: (long @data)
+PASS: gdb.base/code-expr.exp: (signed long @data)
+PASS: gdb.base/code-expr.exp: (unsigned long @data)
+PASS: gdb.base/code-expr.exp: (long long @data)
+PASS: gdb.base/code-expr.exp: (signed long long @data)
+PASS: gdb.base/code-expr.exp: (unsigned long long @data)
+PASS: gdb.base/code-expr.exp: (float @data)
+PASS: gdb.base/code-expr.exp: (double @data)
+PASS: gdb.base/code-expr.exp: (@code enum misordered)
+PASS: gdb.base/code-expr.exp: (enum misordered @code)
+PASS: gdb.base/code-expr.exp: (@data enum misordered)
+PASS: gdb.base/code-expr.exp: (enum misordered @data)
+PASS: gdb.base/code-expr.exp: (@code int *)
+PASS: gdb.base/code-expr.exp: (int @code *)
+PASS: gdb.base/code-expr.exp: (int * @code)
+PASS: gdb.base/code-expr.exp: (@code int * @code)
+PASS: gdb.base/code-expr.exp: (int @code * @code)
+PASS: gdb.base/code-expr.exp: (@code int **)
+PASS: gdb.base/code-expr.exp: (int @code **)
+PASS: gdb.base/code-expr.exp: (int ** @code)
+PASS: gdb.base/code-expr.exp: (@code int * @code *)
+PASS: gdb.base/code-expr.exp: (int @code * @code *)
+PASS: gdb.base/code-expr.exp: (@code int * @code * @code)
+PASS: gdb.base/code-expr.exp: (int @code * @code * @code)
+PASS: gdb.base/code-expr.exp: (@code struct t_struct)
+PASS: gdb.base/code-expr.exp: (@code union t_union)
+PASS: gdb.base/code-expr.exp: (struct t_struct @code)
+PASS: gdb.base/code-expr.exp: (union t_union @code)
+PASS: gdb.base/code-expr.exp: (@code struct t_struct *)
+PASS: gdb.base/code-expr.exp: (@code union t_union *)
+PASS: gdb.base/code-expr.exp: (struct t_struct @code *)
+PASS: gdb.base/code-expr.exp: (union t_union @code *)
+PASS: gdb.base/code-expr.exp: (struct t_struct * @code)
+PASS: gdb.base/code-expr.exp: (union t_union * @code)
+PASS: gdb.base/code-expr.exp: (@code struct t_struct * @code)
+PASS: gdb.base/code-expr.exp: (@code union t_union * @code)
+PASS: gdb.base/code-expr.exp: (struct t_struct @code * @code)
+PASS: gdb.base/code-expr.exp: (union t_union @code * @code)
+Running ./gdb.base/commands.exp ...
+PASS: gdb.base/commands.exp: set foo in gdbvar_simple_if_test
+PASS: gdb.base/commands.exp: gdbvar_simple_if_test #1
+PASS: gdb.base/commands.exp: gdbvar_simple_if_test #2
+PASS: gdb.base/commands.exp: set foo in gdbvar_simple_while_test
+PASS: gdb.base/commands.exp: gdbvar_simple_while_test #1
+PASS: gdb.base/commands.exp: set foo in gdbvar complex_if_while_test
+PASS: gdb.base/commands.exp: gdbvar_complex_if_while_test #1
+PASS: gdb.base/commands.exp: set foo in user_defined_command_test
+PASS: gdb.base/commands.exp: define mycommand in user_defined_command_test
+PASS: gdb.base/commands.exp: enter commands in user_defined_command_test
+PASS: gdb.base/commands.exp: execute user defined command in user_defined_command_test
+PASS: gdb.base/commands.exp: display user command in user_defined_command_test
+PASS: gdb.base/commands.exp: tried to deprecate non-existing command
+PASS: gdb.base/commands.exp: maintenance deprecate p "new_p" /1/
+PASS: gdb.base/commands.exp: p deprecated warning, with replacement
+PASS: gdb.base/commands.exp: Deprecated warning goes away /1/
+PASS: gdb.base/commands.exp: maintenance deprecate p "new_p" /2/
+PASS: gdb.base/commands.exp: maintenance deprecate print "new_print"
+PASS: gdb.base/commands.exp: both alias and command are deprecated
+PASS: gdb.base/commands.exp: Deprecated warning goes away /2/
+PASS: gdb.base/commands.exp: deprecate long command /1/
+PASS: gdb.base/commands.exp: long command deprecated /1/
+PASS: gdb.base/commands.exp: deprecate long command /2/
+PASS: gdb.base/commands.exp: long command deprecated with no alternative /2/
+PASS: gdb.base/commands.exp: deprecate with no arguments
+PASS: gdb.base/commands.exp: stray_arg0_test #1
+PASS: gdb.base/commands.exp: stray_arg0_test #2
+PASS: gdb.base/commands.exp: stray_arg0_test #3
+PASS: gdb.base/commands.exp: stray_arg0_test #4
+PASS: gdb.base/commands.exp: source file with indented comment
+PASS: gdb.base/commands.exp: recursive source test
+PASS: gdb.base/commands.exp: set $tem in if_commands_test
+PASS: gdb.base/commands.exp: if $tem == 2 - if_commands_test 1
+PASS: gdb.base/commands.exp: break main - if_commands_test 1
+PASS: gdb.base/commands.exp: else - if_commands_test 1
+PASS: gdb.base/commands.exp: break factorial - if_commands_test 1
+PASS: gdb.base/commands.exp: commands - if_commands_test 1
+PASS: gdb.base/commands.exp: silent - if_commands_test 1
+PASS: gdb.base/commands.exp: set $tem = 3 - if_commands_test 1
+PASS: gdb.base/commands.exp: continue - if_commands_test 1
+PASS: gdb.base/commands.exp: first end - if_commands_test 1
+PASS: gdb.base/commands.exp: second end - if_commands_test 1
+PASS: gdb.base/commands.exp: if $tem == 1 - if_commands_test 2
+PASS: gdb.base/commands.exp: break main - if_commands_test 2
+PASS: gdb.base/commands.exp: else - if_commands_test 2
+PASS: gdb.base/commands.exp: break factorial - if_commands_test 2
+PASS: gdb.base/commands.exp: commands - if_commands_test 2
+PASS: gdb.base/commands.exp: silent - if_commands_test 2
+PASS: gdb.base/commands.exp: set $tem = 3 - if_commands_test 2
+PASS: gdb.base/commands.exp: continue - if_commands_test 2
+PASS: gdb.base/commands.exp: first end - if_commands_test 2
+PASS: gdb.base/commands.exp: second end - if_commands_test 2
+PASS: gdb.base/commands.exp: hook-stop 1
+PASS: gdb.base/commands.exp: hook-stop 1a
+PASS: gdb.base/commands.exp: hook-stop 1b
+PASS: gdb.base/commands.exp: main commands 1
+PASS: gdb.base/commands.exp: main commands 1a
+PASS: gdb.base/commands.exp: main commands 1b
+PASS: gdb.base/commands.exp: main commands 1c
+PASS: gdb.base/commands.exp: main commands 2
+PASS: gdb.base/commands.exp: main commands 2a
+PASS: gdb.base/commands.exp: main commands 2b
+PASS: gdb.base/commands.exp: main commands 2c
+PASS: gdb.base/commands.exp: cmd1 error
+PASS: gdb.base/commands.exp: no cmd2
+PASS: gdb.base/commands.exp: define one
+PASS: gdb.base/commands.exp: define hook-one
+PASS: gdb.base/commands.exp: define one in redefine_hook_test
+PASS: gdb.base/commands.exp: enter commands for one redefinition in redefine_hook_test
+PASS: gdb.base/commands.exp: execute one command in redefine_hook_test
+PASS: gdb.base/commands.exp: define backtrace
+PASS: gdb.base/commands.exp: expect response to define backtrace
+PASS: gdb.base/commands.exp: enter commands in redefine_backtrace_test
+PASS: gdb.base/commands.exp: execute backtrace command in redefine_backtrace_test
+PASS: gdb.base/commands.exp: execute bt command in redefine_backtrace_test
+Running ./gdb.base/completion.exp ...
+PASS: gdb.base/completion.exp: complete 'hfgfh'
+PASS: gdb.base/completion.exp: complete 'show output'
+PASS: gdb.base/completion.exp: complete 'show output-'
+PASS: gdb.base/completion.exp: complete 'p'
+PASS: gdb.base/completion.exp: complete 'p '
+PASS: gdb.base/completion.exp: complete 'info t foo'
+PASS: gdb.base/completion.exp: complete 'info t'
+PASS: gdb.base/completion.exp: complete 'info t '
+PASS: gdb.base/completion.exp: complete 'info asdfgh'
+PASS: gdb.base/completion.exp: complete 'info asdfgh '
+PASS: gdb.base/completion.exp: complete 'info'
+PASS: gdb.base/completion.exp: complete 'info '
+PASS: gdb.base/completion.exp: complete (2) 'info '
+PASS: gdb.base/completion.exp: complete 'help info wat'
+PASS: gdb.base/completion.exp: complete 'p "break1'
+XFAIL: gdb.base/completion.exp: complete 'p "break1.'
+PASS: gdb.base/completion.exp: complete 'p 'arg'
+PASS: gdb.base/completion.exp: complete (2) 'p 'arg'
+PASS: gdb.base/completion.exp: complete 'handle signal'
+PASS: gdb.base/completion.exp: complete 'handle keyword'
+PASS: gdb.base/completion.exp: complete help aliases
+PASS: gdb.base/completion.exp: complete 'p no_var_named_this-arg'
+PASS: gdb.base/completion.exp: complete (2) 'p no_var_named_this-arg'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: complete (2) 'p no_var_named_this-'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: complete 'p values[0].a'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: complete 'p values[0] . a'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: complete 'p &values[0] -> a'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: completion of field in anonymous union
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: ptype completion of field in anonymous union
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: whatis completion of field in anonymous union
+PASS: gdb.base/completion.exp: cd to ${srcdir}
+PASS: gdb.base/completion.exp: directory completion
+PASS: gdb.base/completion.exp: directory completion 2
+PASS: gdb.base/completion.exp: Glob remaining of directory test
+PASS: gdb.base/completion.exp: complete-command 'file ./gdb.base/compl'
+PASS: gdb.base/completion.exp: complete 'file ./gdb.base/complet'
+PASS: gdb.base/completion.exp: complete 'info func marke'
+PASS: gdb.base/completion.exp: complete 'set follow-fork-mode'
+PASS: gdb.base/completion.exp: field completion with invalid field
+PASS: gdb.base/completion.exp: test non-deprecated completion
+PASS: gdb.base/completion.exp: test deprecated completion
+PASS: gdb.base/completion.exp: complete ptype struct some_
+PASS: gdb.base/completion.exp: complete ptype enum some_
+PASS: gdb.base/completion.exp: complete ptype union some_
+PASS: gdb.base/completion.exp: complete set gnutarget aut
+PASS: gdb.base/completion.exp: complete set cp-abi aut
+Running ./gdb.base/complex.exp ...
+PASS: gdb.base/complex.exp: print complex packed value in C
+PASS: gdb.base/complex.exp: print complex value in C
+Running ./gdb.base/comprdebug.exp ...
+PASS: gdb.base/comprdebug.exp: file comprdebug0.o
+Running ./gdb.base/condbreak.exp ...
+PASS: gdb.base/condbreak.exp: breakpoint function
+PASS: gdb.base/condbreak.exp: break marker1 if 1==1
+PASS: gdb.base/condbreak.exp: delete 2
+PASS: gdb.base/condbreak.exp: break break.c:92 if 1==1
+PASS: gdb.base/condbreak.exp: delete 3
+PASS: gdb.base/condbreak.exp: break marker1 if (1==1)
+PASS: gdb.base/condbreak.exp: break break.c:92 if (1==1)
+PASS: gdb.base/condbreak.exp: break marker2 if (a==43)
+PASS: gdb.base/condbreak.exp: break marker3 if (multi_line_if_conditional(1,1,1)==0)
+PASS: gdb.base/condbreak.exp: break marker4
+PASS: gdb.base/condbreak.exp: breakpoint info
+PASS: gdb.base/condbreak.exp: rerun to main
+PASS: gdb.base/condbreak.exp: run until breakpoint set at a line number
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker1
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker2
+PASS: gdb.base/condbreak.exp: break main if (1==1) thread 999
+PASS: gdb.base/condbreak.exp: break main thread 999 if (1==1)
+PASS: gdb.base/condbreak.exp: break *main if (1==1) thread 999
+PASS: gdb.base/condbreak.exp: break *main thread 999 if (1==1)
+PASS: gdb.base/condbreak.exp: break *main if (1==1) task 999
+PASS: gdb.base/condbreak.exp: break *main task 999 if (1==1)
+PASS: gdb.base/condbreak.exp: break *main if (1==1) t 999
+PASS: gdb.base/condbreak.exp: break *main if (1==1) th 999
+PASS: gdb.base/condbreak.exp: break *main if (1==1) ta 999
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker3
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker4
+PASS: gdb.base/condbreak.exp: complete cond 1
+PASS: gdb.base/condbreak.exp: set variable $var = 1
+PASS: gdb.base/condbreak.exp: complete cond $v
+PASS: gdb.base/condbreak.exp: complete cond 1 values[0].a
+Running ./gdb.base/cond-eval-mode.exp ...
+PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation host
+PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation auto
+PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation target
+Running ./gdb.base/cond-expr.exp ...
+PASS: gdb.base/cond-expr.exp: print value of cond expr (const true)
+PASS: gdb.base/cond-expr.exp: print value of cond expr (const false)
+PASS: gdb.base/cond-expr.exp: set variable x=14
+PASS: gdb.base/cond-expr.exp: set variable y=2
+PASS: gdb.base/cond-expr.exp: set variable z=3
+PASS: gdb.base/cond-expr.exp: print value of cond expr (var true)
+PASS: gdb.base/cond-expr.exp: set variable x=0
+PASS: gdb.base/cond-expr.exp: print value of cond expr (var false)
+PASS: gdb.base/cond-expr.exp: print whatis of cond expr
+Running ./gdb.base/consecutive.exp ...
+PASS: gdb.base/consecutive.exp: continue to breakpoint in foo
+PASS: gdb.base/consecutive.exp: get breakpoint address for foo
+PASS: gdb.base/consecutive.exp: set bp, 2nd instr
+PASS: gdb.base/consecutive.exp: stopped at bp, 2nd instr
+Running ./gdb.base/constvars.exp ...
+PASS: gdb.base/constvars.exp: break marker1
+PASS: gdb.base/constvars.exp: continue to marker1
+PASS: gdb.base/constvars.exp: up from marker1
+PASS: gdb.base/constvars.exp: ptype qux1
+PASS: gdb.base/constvars.exp: print lave
+PASS: gdb.base/constvars.exp: ptype lave
+PASS: gdb.base/constvars.exp: print lavish
+PASS: gdb.base/constvars.exp: ptype lavish
+PASS: gdb.base/constvars.exp: print lax
+PASS: gdb.base/constvars.exp: ptype lax
+PASS: gdb.base/constvars.exp: print lecherous
+PASS: gdb.base/constvars.exp: ptype lecherous
+PASS: gdb.base/constvars.exp: print lechery
+PASS: gdb.base/constvars.exp: ptype lechery
+PASS: gdb.base/constvars.exp: print lectern
+PASS: gdb.base/constvars.exp: ptype lectern
+PASS: gdb.base/constvars.exp: print leeway
+PASS: gdb.base/constvars.exp: ptype leeway
+PASS: gdb.base/constvars.exp: print legacy
+PASS: gdb.base/constvars.exp: ptype legacy
+PASS: gdb.base/constvars.exp: print laconic
+PASS: gdb.base/constvars.exp: ptype laconic
+PASS: gdb.base/constvars.exp: print laggard
+PASS: gdb.base/constvars.exp: ptype laggard
+PASS: gdb.base/constvars.exp: print lagoon
+PASS: gdb.base/constvars.exp: ptype lagoon
+PASS: gdb.base/constvars.exp: print laity
+PASS: gdb.base/constvars.exp: ptype laity
+PASS: gdb.base/constvars.exp: print lambent
+PASS: gdb.base/constvars.exp: ptype lambent
+PASS: gdb.base/constvars.exp: print laminated
+PASS: gdb.base/constvars.exp: ptype laminated
+PASS: gdb.base/constvars.exp: print lampoon
+PASS: gdb.base/constvars.exp: ptype lampoon
+PASS: gdb.base/constvars.exp: print languid
+PASS: gdb.base/constvars.exp: ptype languid
+PASS: gdb.base/constvars.exp: print *legend
+PASS: gdb.base/constvars.exp: ptype legend
+PASS: gdb.base/constvars.exp: print *legerdemain
+PASS: gdb.base/constvars.exp: ptype legerdemain
+PASS: gdb.base/constvars.exp: print *leniency
+PASS: gdb.base/constvars.exp: ptype leniency
+PASS: gdb.base/constvars.exp: print *leonine
+PASS: gdb.base/constvars.exp: ptype leonine
+PASS: gdb.base/constvars.exp: print *lesion
+PASS: gdb.base/constvars.exp: ptype lesion
+PASS: gdb.base/constvars.exp: print *lethal
+PASS: gdb.base/constvars.exp: ptype lethal
+PASS: gdb.base/constvars.exp: print *lethargic
+PASS: gdb.base/constvars.exp: ptype lethargic
+PASS: gdb.base/constvars.exp: print *levity
+PASS: gdb.base/constvars.exp: ptype levity
+PASS: gdb.base/constvars.exp: print *lewd
+PASS: gdb.base/constvars.exp: ptype lewd
+PASS: gdb.base/constvars.exp: print *lexicographer
+PASS: gdb.base/constvars.exp: ptype lexicographer
+PASS: gdb.base/constvars.exp: print *lexicon
+PASS: gdb.base/constvars.exp: ptype lexicon
+PASS: gdb.base/constvars.exp: print *liaison
+PASS: gdb.base/constvars.exp: ptype liaison
+PASS: gdb.base/constvars.exp: print *libation
+PASS: gdb.base/constvars.exp: ptype libation
+PASS: gdb.base/constvars.exp: print *libelous
+PASS: gdb.base/constvars.exp: ptype libelous
+PASS: gdb.base/constvars.exp: print *libertine
+PASS: gdb.base/constvars.exp: ptype libertine
+PASS: gdb.base/constvars.exp: print *libidinous
+PASS: gdb.base/constvars.exp: ptype libidinous
+PASS: gdb.base/constvars.exp: print *languish
+PASS: gdb.base/constvars.exp: ptype languish
+PASS: gdb.base/constvars.exp: print *languor
+PASS: gdb.base/constvars.exp: ptype languor
+PASS: gdb.base/constvars.exp: print *lank
+PASS: gdb.base/constvars.exp: ptype lank
+PASS: gdb.base/constvars.exp: print *lapidary
+PASS: gdb.base/constvars.exp: ptype lapidary
+PASS: gdb.base/constvars.exp: print *larceny
+PASS: gdb.base/constvars.exp: ptype larceny
+PASS: gdb.base/constvars.exp: print *largess
+PASS: gdb.base/constvars.exp: ptype largess
+PASS: gdb.base/constvars.exp: print *lascivious
+PASS: gdb.base/constvars.exp: ptype lascivious
+PASS: gdb.base/constvars.exp: print *lassitude
+PASS: gdb.base/constvars.exp: ptype lassitude
+PASS: gdb.base/constvars.exp: print *lamprey
+PASS: gdb.base/constvars.exp: ptype lamprey
+PASS: gdb.base/constvars.exp: print *lariat
+PASS: gdb.base/constvars.exp: ptype lariat
+PASS: gdb.base/constvars.exp: print *laudanum
+PASS: gdb.base/constvars.exp: ptype laudanum
+PASS: gdb.base/constvars.exp: print *lecithin
+PASS: gdb.base/constvars.exp: ptype lecithin
+PASS: gdb.base/constvars.exp: print *leviathan
+PASS: gdb.base/constvars.exp: ptype leviathan
+PASS: gdb.base/constvars.exp: print *libretto
+PASS: gdb.base/constvars.exp: ptype libretto
+PASS: gdb.base/constvars.exp: print *lissome
+PASS: gdb.base/constvars.exp: ptype lissome
+PASS: gdb.base/constvars.exp: print *locust
+PASS: gdb.base/constvars.exp: ptype locust
+PASS: gdb.base/constvars.exp: ptype logical
+PASS: gdb.base/constvars.exp: ptype lugged
+PASS: gdb.base/constvars.exp: ptype luck
+PASS: gdb.base/constvars.exp: ptype lunar
+PASS: gdb.base/constvars.exp: ptype lumen
+PASS: gdb.base/constvars.exp: ptype lurk
+PASS: gdb.base/constvars.exp: ptype lush
+PASS: gdb.base/constvars.exp: ptype lynx
+PASS: gdb.base/constvars.exp: ptype crass
+PASS: gdb.base/constvars.exp: ptype crisp
+Running ./gdb.base/corefile.exp ...
+Running ./gdb.base/ctxobj.exp ...
+PASS: gdb.base/ctxobj.exp: break in get_version functions
+PASS: gdb.base/ctxobj.exp: continue to get_version_1
+PASS: gdb.base/ctxobj.exp: print libctxobj1's this_version_num from partial symtab
+PASS: gdb.base/ctxobj.exp: print libctxobj1's this_version_num from symtab
+PASS: gdb.base/ctxobj.exp: continue to get_version_2
+PASS: gdb.base/ctxobj.exp: print libctxobj2's this_version_num from partial symtab
+PASS: gdb.base/ctxobj.exp: print libctxobj2's this_version_num from symtab
+Running ./gdb.base/cursal.exp ...
+PASS: gdb.base/cursal.exp: set listsize 1
+PASS: gdb.base/cursal.exp: list before run
+PASS: gdb.base/cursal.exp: list in main
+PASS: gdb.base/cursal.exp: list in func2
+PASS: gdb.base/cursal.exp: backtrace
+PASS: gdb.base/cursal.exp: list after backtrace
+PASS: gdb.base/cursal.exp: set listsize 3
+PASS: gdb.base/cursal.exp: list size 3
+Running ./gdb.base/cvexpr.exp ...
+PASS: gdb.base/cvexpr.exp: set print sevenbit-strings
+PASS: gdb.base/cvexpr.exp: set print address off
+PASS: gdb.base/cvexpr.exp: set width 0
+PASS: gdb.base/cvexpr.exp: (const char)
+PASS: gdb.base/cvexpr.exp: (const signed char)
+PASS: gdb.base/cvexpr.exp: (const unsigned char)
+PASS: gdb.base/cvexpr.exp: (const short)
+PASS: gdb.base/cvexpr.exp: (const signed short)
+PASS: gdb.base/cvexpr.exp: (const unsigned short)
+PASS: gdb.base/cvexpr.exp: (const int)
+PASS: gdb.base/cvexpr.exp: (const signed int)
+PASS: gdb.base/cvexpr.exp: (const unsigned int)
+PASS: gdb.base/cvexpr.exp: (const long)
+PASS: gdb.base/cvexpr.exp: (const signed long)
+PASS: gdb.base/cvexpr.exp: (const unsigned long)
+PASS: gdb.base/cvexpr.exp: (const long long)
+PASS: gdb.base/cvexpr.exp: (const signed long long)
+PASS: gdb.base/cvexpr.exp: (const unsigned long long)
+PASS: gdb.base/cvexpr.exp: (const float)
+PASS: gdb.base/cvexpr.exp: (const double)
+PASS: gdb.base/cvexpr.exp: (volatile char)
+PASS: gdb.base/cvexpr.exp: (volatile signed char)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned char)
+PASS: gdb.base/cvexpr.exp: (volatile short)
+PASS: gdb.base/cvexpr.exp: (volatile signed short)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned short)
+PASS: gdb.base/cvexpr.exp: (volatile int)
+PASS: gdb.base/cvexpr.exp: (volatile signed int)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned int)
+PASS: gdb.base/cvexpr.exp: (volatile long)
+PASS: gdb.base/cvexpr.exp: (volatile signed long)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned long)
+PASS: gdb.base/cvexpr.exp: (volatile long long)
+PASS: gdb.base/cvexpr.exp: (volatile signed long long)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned long long)
+PASS: gdb.base/cvexpr.exp: (volatile float)
+PASS: gdb.base/cvexpr.exp: (volatile double)
+PASS: gdb.base/cvexpr.exp: (const volatile int)
+PASS: gdb.base/cvexpr.exp: (volatile const int)
+PASS: gdb.base/cvexpr.exp: (const int volatile)
+PASS: gdb.base/cvexpr.exp: (volatile int const)
+PASS: gdb.base/cvexpr.exp: (int const volatile)
+PASS: gdb.base/cvexpr.exp: (int volatile const)
+PASS: gdb.base/cvexpr.exp: (const volatile int *)
+PASS: gdb.base/cvexpr.exp: (volatile const int *)
+PASS: gdb.base/cvexpr.exp: (const int volatile)
+PASS: gdb.base/cvexpr.exp: (volatile int const *)
+PASS: gdb.base/cvexpr.exp: (int const volatile *)
+PASS: gdb.base/cvexpr.exp: (int volatile const *)
+PASS: gdb.base/cvexpr.exp: (int * const volatile)
+PASS: gdb.base/cvexpr.exp: (int * volatile const)
+PASS: gdb.base/cvexpr.exp: (char const)
+PASS: gdb.base/cvexpr.exp: (signed char const)
+PASS: gdb.base/cvexpr.exp: (unsigned char const)
+PASS: gdb.base/cvexpr.exp: (short const)
+PASS: gdb.base/cvexpr.exp: (signed short const)
+PASS: gdb.base/cvexpr.exp: (unsigned short const)
+PASS: gdb.base/cvexpr.exp: (int const)
+PASS: gdb.base/cvexpr.exp: (signed int const)
+PASS: gdb.base/cvexpr.exp: (unsigned int const)
+PASS: gdb.base/cvexpr.exp: (long const)
+PASS: gdb.base/cvexpr.exp: (signed long const)
+PASS: gdb.base/cvexpr.exp: (unsigned long const)
+PASS: gdb.base/cvexpr.exp: (long long const)
+PASS: gdb.base/cvexpr.exp: (signed long long const)
+PASS: gdb.base/cvexpr.exp: (unsigned long long const)
+PASS: gdb.base/cvexpr.exp: (float const)
+PASS: gdb.base/cvexpr.exp: (double const)
+PASS: gdb.base/cvexpr.exp: (char volatile)
+PASS: gdb.base/cvexpr.exp: (signed char volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned char volatile)
+PASS: gdb.base/cvexpr.exp: (short volatile)
+PASS: gdb.base/cvexpr.exp: (signed short volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned short volatile)
+PASS: gdb.base/cvexpr.exp: (int volatile)
+PASS: gdb.base/cvexpr.exp: (signed int volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned int volatile)
+PASS: gdb.base/cvexpr.exp: (long volatile)
+PASS: gdb.base/cvexpr.exp: (signed long volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned long volatile)
+PASS: gdb.base/cvexpr.exp: (long long volatile)
+PASS: gdb.base/cvexpr.exp: (signed long long volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned long long volatile)
+PASS: gdb.base/cvexpr.exp: (float volatile)
+PASS: gdb.base/cvexpr.exp: (double volatile)
+PASS: gdb.base/cvexpr.exp: (const enum misordered)
+PASS: gdb.base/cvexpr.exp: (enum misordered const)
+PASS: gdb.base/cvexpr.exp: (volatile enum misordered)
+PASS: gdb.base/cvexpr.exp: (enum misordered volatile)
+PASS: gdb.base/cvexpr.exp: (const int *)
+PASS: gdb.base/cvexpr.exp: (int const *)
+PASS: gdb.base/cvexpr.exp: (int * const)
+PASS: gdb.base/cvexpr.exp: (const int * const)
+PASS: gdb.base/cvexpr.exp: (int const * const)
+PASS: gdb.base/cvexpr.exp: (const int **)
+PASS: gdb.base/cvexpr.exp: (int const **)
+PASS: gdb.base/cvexpr.exp: (int ** const)
+PASS: gdb.base/cvexpr.exp: (const int * const *)
+PASS: gdb.base/cvexpr.exp: (int const * const *)
+PASS: gdb.base/cvexpr.exp: (const int * const * const)
+PASS: gdb.base/cvexpr.exp: (int const * const * const)
+PASS: gdb.base/cvexpr.exp: (const struct t_struct)
+PASS: gdb.base/cvexpr.exp: (const union t_union)
+PASS: gdb.base/cvexpr.exp: (struct t_struct const)
+PASS: gdb.base/cvexpr.exp: (union t_union const)
+PASS: gdb.base/cvexpr.exp: (const struct t_struct *)
+PASS: gdb.base/cvexpr.exp: (const union t_union *)
+PASS: gdb.base/cvexpr.exp: (struct t_struct const *)
+PASS: gdb.base/cvexpr.exp: (union t_union const *)
+PASS: gdb.base/cvexpr.exp: (struct t_struct * const)
+PASS: gdb.base/cvexpr.exp: (union t_union * const)
+PASS: gdb.base/cvexpr.exp: (const struct t_struct * const)
+PASS: gdb.base/cvexpr.exp: (const union t_union * const)
+PASS: gdb.base/cvexpr.exp: (struct t_struct const * const)
+PASS: gdb.base/cvexpr.exp: (union t_union const * const)
+Running ./gdb.base/dbx.exp ...
+PASS: gdb.base/dbx.exp: stop in main
+PASS: gdb.base/dbx.exp: status
+PASS: gdb.base/dbx.exp: stop at average.c:43
+PASS: gdb.base/dbx.exp: stop in average.c:43
+PASS: gdb.base/dbx.exp: stop at main
+PASS: gdb.base/dbx.exp: running to main
+PASS: gdb.base/dbx.exp: assign first
+PASS: gdb.base/dbx.exp: print first
+PASS: gdb.base/dbx.exp: whereis my_list
+PASS: gdb.base/dbx.exp: file average.c:1
+PASS: gdb.base/dbx.exp: cont 1
+PASS: gdb.base/dbx.exp: step
+XFAIL: gdb.base/dbx.exp: func sum
+PASS: gdb.base/dbx.exp: stop in sum
+PASS: gdb.base/dbx.exp: cont 2
+XFAIL: gdb.base/dbx.exp: func print_average
+Running ./gdb.base/debug-expr.exp ...
+PASS: gdb.base/debug-expr.exp: set variable array[0] = 0
+PASS: gdb.base/debug-expr.exp: set variable array[1] = 1
+PASS: gdb.base/debug-expr.exp: set variable array[2] = 2
+PASS: gdb.base/debug-expr.exp: set variable array[3] = 3
+PASS: gdb.base/debug-expr.exp: set debug expression 1
+PASS: gdb.base/debug-expr.exp: print /x {char[4]} array
+Running ./gdb.base/default.exp ...
+PASS: gdb.base/default.exp: add-symbol-file
+PASS: gdb.base/default.exp: append
+PASS: gdb.base/default.exp: append binary
+PASS: gdb.base/default.exp: append memory
+PASS: gdb.base/default.exp: append value
+PASS: gdb.base/default.exp: append binary memory
+PASS: gdb.base/default.exp: append binary value
+WARNING: Skipping backtrace and break tests because of GDB stub.
+PASS: gdb.base/default.exp: continue
+PASS: gdb.base/default.exp: continue "c" abbreviation
+PASS: gdb.base/default.exp: call
+PASS: gdb.base/default.exp: catch
+PASS: gdb.base/default.exp: cd
+PASS: gdb.base/default.exp: clear
+PASS: gdb.base/default.exp: commands
+PASS: gdb.base/default.exp: condition
+PASS: gdb.base/default.exp: core-file
+PASS: gdb.base/default.exp: delete "d" abbreviation
+PASS: gdb.base/default.exp: delete
+PASS: gdb.base/default.exp: define
+PASS: gdb.base/default.exp: delete breakpoints
+PASS: gdb.base/default.exp: delete display prompt
+PASS: gdb.base/default.exp: detach
+PASS: gdb.base/default.exp: directory prompt
+PASS: gdb.base/default.exp: disable "dis" abbreviation
+PASS: gdb.base/default.exp: disable "disa" abbreviation
+PASS: gdb.base/default.exp: disable
+PASS: gdb.base/default.exp: disable breakpoints
+PASS: gdb.base/default.exp: disable display
+PASS: gdb.base/default.exp: disassemble
+PASS: gdb.base/default.exp: display
+PASS: gdb.base/default.exp: do
+PASS: gdb.base/default.exp: document
+PASS: gdb.base/default.exp: down
+PASS: gdb.base/default.exp: down-silently
+PASS: gdb.base/default.exp: dump
+PASS: gdb.base/default.exp: dump binary
+PASS: gdb.base/default.exp: dump ihex
+PASS: gdb.base/default.exp: dump memory
+PASS: gdb.base/default.exp: dump srec
+PASS: gdb.base/default.exp: dump tekhex
+PASS: gdb.base/default.exp: dump value
+PASS: gdb.base/default.exp: dump binary memory
+PASS: gdb.base/default.exp: dump binary value
+PASS: gdb.base/default.exp: dump ihex memory
+PASS: gdb.base/default.exp: dump ihex value
+PASS: gdb.base/default.exp: dump srec memory
+PASS: gdb.base/default.exp: dump srec value
+PASS: gdb.base/default.exp: dump tekhex memory
+PASS: gdb.base/default.exp: dump tekhex value
+PASS: gdb.base/default.exp: echo
+PASS: gdb.base/default.exp: enable breakpoints delete
+PASS: gdb.base/default.exp: enable breakpoints once
+PASS: gdb.base/default.exp: enable breakpoints
+PASS: gdb.base/default.exp: enable delete
+PASS: gdb.base/default.exp: enable display
+PASS: gdb.base/default.exp: enable once
+PASS: gdb.base/default.exp: enable
+PASS: gdb.base/default.exp: exec-file
+PASS: gdb.base/default.exp: frame "f" abbreviation
+PASS: gdb.base/default.exp: frame
+PASS: gdb.base/default.exp: fg
+PASS: gdb.base/default.exp: file
+PASS: gdb.base/default.exp: finish
+PASS: gdb.base/default.exp: forward-search
+PASS: gdb.base/default.exp: gcore
+PASS: gdb.base/default.exp: generate-core-file
+PASS: gdb.base/default.exp: help "h" abbreviation
+PASS: gdb.base/default.exp: help
+PASS: gdb.base/default.exp: handle
+PASS: gdb.base/default.exp: info "i" abbreviation
+PASS: gdb.base/default.exp: info
+PASS: gdb.base/default.exp: ignore
+PASS: gdb.base/default.exp: info address
+PASS: gdb.base/default.exp: info all-registers
+PASS: gdb.base/default.exp: info args
+PASS: gdb.base/default.exp: info bogus-gdb-command
+PASS: gdb.base/default.exp: info breakpoints
+PASS: gdb.base/default.exp: info copying
+PASS: gdb.base/default.exp: info display
+PASS: gdb.base/default.exp: info frame "f" abbreviation
+PASS: gdb.base/default.exp: info frame
+PASS: gdb.base/default.exp: info files
+PASS: gdb.base/default.exp: info float
+PASS: gdb.base/default.exp: info functions
+PASS: gdb.base/default.exp: info locals
+PASS: gdb.base/default.exp: info program
+PASS: gdb.base/default.exp: info registers
+PASS: gdb.base/default.exp: info stack "s" abbreviation
+PASS: gdb.base/default.exp: info stack
+PASS: gdb.base/default.exp: info set
+PASS: gdb.base/default.exp: info symbol
+PASS: gdb.base/default.exp: info source
+PASS: gdb.base/default.exp: info sources
+PASS: gdb.base/default.exp: info target
+PASS: gdb.base/default.exp: info terminal
+PASS: gdb.base/default.exp: info threads
+PASS: gdb.base/default.exp: info types
+PASS: gdb.base/default.exp: info variables
+PASS: gdb.base/default.exp: info vector
+PASS: gdb.base/default.exp: info warranty
+PASS: gdb.base/default.exp: info watchpoints
+PASS: gdb.base/default.exp: inspect
+PASS: gdb.base/default.exp: jump
+PASS: gdb.base/default.exp: kill
+PASS: gdb.base/default.exp: list "l" abbreviation
+PASS: gdb.base/default.exp: list
+PASS: gdb.base/default.exp: load
+PASS: gdb.base/default.exp: next "n" abbreviation
+PASS: gdb.base/default.exp: next
+PASS: gdb.base/default.exp: nexti "ni" abbreviation
+PASS: gdb.base/default.exp: nexti
+PASS: gdb.base/default.exp: output
+PASS: gdb.base/default.exp: overlay
+PASS: gdb.base/default.exp: overlay on
+PASS: gdb.base/default.exp: overlay manual #1
+PASS: gdb.base/default.exp: overlay auto
+PASS: gdb.base/default.exp: overlay off
+PASS: gdb.base/default.exp: overlay list
+PASS: gdb.base/default.exp: overlay map #1
+PASS: gdb.base/default.exp: overlay unmap #1
+PASS: gdb.base/default.exp: overlay manual #2
+PASS: gdb.base/default.exp: overlay map #2
+PASS: gdb.base/default.exp: overlay unmap #2
+PASS: gdb.base/default.exp: print "p" abbreviation
+PASS: gdb.base/default.exp: print
+PASS: gdb.base/default.exp: printf
+PASS: gdb.base/default.exp: ptype
+PASS: gdb.base/default.exp: pwd
+PASS: gdb.base/default.exp: rbreak
+PASS: gdb.base/default.exp: restore
+PASS: gdb.base/default.exp: return
+PASS: gdb.base/default.exp: reverse-search
+PASS: gdb.base/default.exp: step "s" abbreviation #1
+PASS: gdb.base/default.exp: step #1
+PASS: gdb.base/default.exp: search
+PASS: gdb.base/default.exp: section
+PASS: gdb.base/default.exp: set annotate
+PASS: gdb.base/default.exp: set args
+PASS: gdb.base/default.exp: set check "c" abbreviation
+PASS: gdb.base/default.exp: set check "ch" abbreviation
+PASS: gdb.base/default.exp: set check "check" abbreviation
+PASS: gdb.base/default.exp: set check range
+PASS: gdb.base/default.exp: set check type
+PASS: gdb.base/default.exp: set complaints
+PASS: gdb.base/default.exp: set confirm
+PASS: gdb.base/default.exp: set environment
+PASS: gdb.base/default.exp: set height
+PASS: gdb.base/default.exp: set history expansion
+PASS: gdb.base/default.exp: set history filename
+PASS: gdb.base/default.exp: set history save
+PASS: gdb.base/default.exp: set history size
+PASS: gdb.base/default.exp: set history
+PASS: gdb.base/default.exp: set language
+PASS: gdb.base/default.exp: set listsize
+PASS: gdb.base/default.exp: set print "p" abbreviation
+PASS: gdb.base/default.exp: set print "pr" abbreviation
+PASS: gdb.base/default.exp: set print
+PASS: gdb.base/default.exp: set print address
+PASS: gdb.base/default.exp: set print array
+PASS: gdb.base/default.exp: set print asm-demangle
+PASS: gdb.base/default.exp: set print demangle
+PASS: gdb.base/default.exp: set print elements
+PASS: gdb.base/default.exp: set print object
+PASS: gdb.base/default.exp: set print pretty
+PASS: gdb.base/default.exp: set print sevenbit-strings
+PASS: gdb.base/default.exp: set print union
+PASS: gdb.base/default.exp: set print vtbl
+PASS: gdb.base/default.exp: set radix
+PASS: gdb.base/default.exp: set variable
+PASS: gdb.base/default.exp: set verbose
+PASS: gdb.base/default.exp: set width
+PASS: gdb.base/default.exp: set write
+PASS: gdb.base/default.exp: set
+PASS: gdb.base/default.exp: shell echo Hi dad!
+PASS: gdb.base/default.exp: show annotate
+PASS: gdb.base/default.exp: show args
+PASS: gdb.base/default.exp: show check "c" abbreviation
+PASS: gdb.base/default.exp: show check "ch" abbreviation
+PASS: gdb.base/default.exp: show check "check" abbreviation
+PASS: gdb.base/default.exp: show check range
+PASS: gdb.base/default.exp: show check type
+PASS: gdb.base/default.exp: show commands
+PASS: gdb.base/default.exp: show complaints
+PASS: gdb.base/default.exp: show confirm
+PASS: gdb.base/default.exp: show convenience
+PASS: gdb.base/default.exp: show directories
+PASS: gdb.base/default.exp: show editing
+PASS: gdb.base/default.exp: show height
+PASS: gdb.base/default.exp: show history expansion
+PASS: gdb.base/default.exp: show history filename
+PASS: gdb.base/default.exp: show history save
+PASS: gdb.base/default.exp: show history size
+PASS: gdb.base/default.exp: show history
+PASS: gdb.base/default.exp: show language
+PASS: gdb.base/default.exp: show listsize
+PASS: gdb.base/default.exp: show p
+PASS: gdb.base/default.exp: show pr
+PASS: gdb.base/default.exp: show print
+PASS: gdb.base/default.exp: show paths
+PASS: gdb.base/default.exp: show print address
+PASS: gdb.base/default.exp: show print array
+PASS: gdb.base/default.exp: show print asm-demangle
+PASS: gdb.base/default.exp: show print demangle
+PASS: gdb.base/default.exp: show print elements
+PASS: gdb.base/default.exp: show print object
+PASS: gdb.base/default.exp: show print pretty
+PASS: gdb.base/default.exp: show print sevenbit-strings
+PASS: gdb.base/default.exp: show print union
+PASS: gdb.base/default.exp: show print vtbl
+PASS: gdb.base/default.exp: show prompt
+PASS: gdb.base/default.exp: show radix
+PASS: gdb.base/default.exp: show user
+PASS: gdb.base/default.exp: show values
+PASS: gdb.base/default.exp: show verbose
+PASS: gdb.base/default.exp: show version
+PASS: gdb.base/default.exp: show width
+PASS: gdb.base/default.exp: show write
+PASS: gdb.base/default.exp: show
+PASS: gdb.base/default.exp: stepi "si" abbreviation
+PASS: gdb.base/default.exp: stepi
+PASS: gdb.base/default.exp: signal
+PASS: gdb.base/default.exp: source
+PASS: gdb.base/default.exp: step "s" abbreviation #2
+PASS: gdb.base/default.exp: step #2
+PASS: gdb.base/default.exp: symbol-file
+PASS: gdb.base/default.exp: target child
+PASS: gdb.base/default.exp: target procfs
+PASS: gdb.base/default.exp: target core
+PASS: gdb.base/default.exp: target exec
+PASS: gdb.base/default.exp: target remote
+PASS: gdb.base/default.exp: target
+PASS: gdb.base/default.exp: tbreak
+PASS: gdb.base/default.exp: thread
+PASS: gdb.base/default.exp: thread apply
+PASS: gdb.base/default.exp: thread find
+PASS: gdb.base/default.exp: thread name
+PASS: gdb.base/default.exp: tty
+PASS: gdb.base/default.exp: until "u" abbreviation
+PASS: gdb.base/default.exp: until
+PASS: gdb.base/default.exp: undisplay prompt
+PASS: gdb.base/default.exp: unset environment prompt
+PASS: gdb.base/default.exp: unset
+PASS: gdb.base/default.exp: up-silently
+PASS: gdb.base/default.exp: watch
+PASS: gdb.base/default.exp: whatis
+PASS: gdb.base/default.exp: where
+PASS: gdb.base/default.exp: x
+Running ./gdb.base/define.exp ...
+PASS: gdb.base/define.exp: define user command: nextwhere
+PASS: gdb.base/define.exp: use user command: nextwhere
+PASS: gdb.base/define.exp: define user command: nextwh
+PASS: gdb.base/define.exp: redefine user command aborted: nextwhere
+PASS: gdb.base/define.exp: redefine user command: nextwhere
+PASS: gdb.base/define.exp: redocumenting builtin command disallowed
+PASS: gdb.base/define.exp: document user command: nextwhere
+PASS: gdb.base/define.exp: re-document user command: nextwhere
+PASS: gdb.base/define.exp: help user command: nextwhere
+PASS: gdb.base/define.exp: set up whitespace in help string
+PASS: gdb.base/define.exp: preserve whitespace in help string
+PASS: gdb.base/define.exp: define user command: ifnospace
+PASS: gdb.base/define.exp: test ifnospace is parsed correctly
+PASS: gdb.base/define.exp: define user command: whilenospace
+PASS: gdb.base/define.exp: test whilenospace is parsed correctly
+PASS: gdb.base/define.exp: define user command: user-bt
+PASS: gdb.base/define.exp: define hook-stop command
+PASS: gdb.base/define.exp: use hook-stop command
+PASS: gdb.base/define.exp: define hook undefined command aborted: bar
+PASS: gdb.base/define.exp: define hook undefined command: bar
+PASS: gdb.base/define.exp: define target testsuite
+PASS: gdb.base/define.exp: document target testsuite
+PASS: gdb.base/define.exp: help target
+PASS: gdb.base/define.exp: target testsuite
+PASS: gdb.base/define.exp: show user target testsuite
+PASS: gdb.base/define.exp: define target hook-testsuite
+PASS: gdb.base/define.exp: define target hookpost-testsuite
+PASS: gdb.base/define.exp: target testsuite with hooks
+PASS: gdb.base/define.exp: set gdb_prompt
+PASS: gdb.base/define.exp: reset gdb_prompt
+Running ./gdb.base/del.exp ...
+PASS: gdb.base/del.exp: Remove all breakpoints (del)
+PASS: gdb.base/del.exp: info break after removing break on main
+PASS: gdb.base/del.exp: breakpoint insertion (del)
+PASS: gdb.base/del.exp: Remove last breakpoint (del)
+PASS: gdb.base/del.exp: info break after removing break on main (del)
+PASS: gdb.base/del.exp: Remove all breakpoints (d)
+PASS: gdb.base/del.exp: info break after removing break on main
+PASS: gdb.base/del.exp: breakpoint insertion (d)
+PASS: gdb.base/del.exp: Remove last breakpoint (d)
+PASS: gdb.base/del.exp: info break after removing break on main (d)
+Running ./gdb.base/detach.exp ...
+Running ./gdb.base/dfp-exprs.exp ...
+PASS: gdb.base/dfp-exprs.exp: p 1.2df
+PASS: gdb.base/dfp-exprs.exp: p -1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.234567df
+PASS: gdb.base/dfp-exprs.exp: p -1.234567df
+PASS: gdb.base/dfp-exprs.exp: p 1234567.df
+PASS: gdb.base/dfp-exprs.exp: p -1234567.df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E1df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E10df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E-10df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E96df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p -1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.234567890123456dd
+PASS: gdb.base/dfp-exprs.exp: p -1.234567890123456dd
+PASS: gdb.base/dfp-exprs.exp: p 1234567890123456.dd
+PASS: gdb.base/dfp-exprs.exp: p -1234567890123456.dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E1dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E10dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E-10dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E384dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p -1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.234567890123456789012345678901234dl
+PASS: gdb.base/dfp-exprs.exp: p -1.234567890123456789012345678901234dl
+PASS: gdb.base/dfp-exprs.exp: p 1234567890123456789012345678901234.dl
+PASS: gdb.base/dfp-exprs.exp: p -1234567890123456789012345678901234.dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E1dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E10dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E-10dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E6144dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4df + 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4df - 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4df * 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4df / 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd + 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd - 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd * 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd / 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl + 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl - 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl * 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl / 1.2dl
+PASS: gdb.base/dfp-exprs.exp: ptype 2.df + 2.df
+PASS: gdb.base/dfp-exprs.exp: ptype 2.dd + 2.dd
+PASS: gdb.base/dfp-exprs.exp: ptype 2.dl + 2.dl
+PASS: gdb.base/dfp-exprs.exp: p 2.1df + 2.7dd
+PASS: gdb.base/dfp-exprs.exp: p 2.1dd + 2.7df
+PASS: gdb.base/dfp-exprs.exp: p 2.6df + 2.7dl
+PASS: gdb.base/dfp-exprs.exp: p 2.6dl + 2.7df
+PASS: gdb.base/dfp-exprs.exp: p 2.3dd + 2.2dl
+PASS: gdb.base/dfp-exprs.exp: p 2.3dl + 2.2dd
+PASS: gdb.base/dfp-exprs.exp: ptype 2.df + 2.dd
+PASS: gdb.base/dfp-exprs.exp: ptype 2.df + 2.dl
+PASS: gdb.base/dfp-exprs.exp: ptype 2.dd + 2.dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df + 1
+PASS: gdb.base/dfp-exprs.exp: p 2 + 1.7dd
+PASS: gdb.base/dfp-exprs.exp: p 3 + 2.1dl
+PASS: gdb.base/dfp-exprs.exp: ptype 1.2df + 1
+PASS: gdb.base/dfp-exprs.exp: ptype 2 + 1.7dd
+PASS: gdb.base/dfp-exprs.exp: ptype 3 + 2.1dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df + 2ll
+PASS: gdb.base/dfp-exprs.exp: p 1.2df + 1.2f
+PASS: gdb.base/dfp-exprs.exp: p !0.df
+PASS: gdb.base/dfp-exprs.exp: p !0.dd
+PASS: gdb.base/dfp-exprs.exp: p !0.dl
+PASS: gdb.base/dfp-exprs.exp: p !0.5df
+PASS: gdb.base/dfp-exprs.exp: p !0.5dd
+PASS: gdb.base/dfp-exprs.exp: p !0.5dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p +1.2df
+PASS: gdb.base/dfp-exprs.exp: p +1.2dd
+PASS: gdb.base/dfp-exprs.exp: p +1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df < 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df < 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd < 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd < 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df > 1
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl > 2
+PASS: gdb.base/dfp-exprs.exp: p 2 > 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 2 > 3.1dl
+PASS: gdb.base/dfp-exprs.exp: p (float) -0.1df
+PASS: gdb.base/dfp-exprs.exp: p (int) 8.3dd
+PASS: gdb.base/dfp-exprs.exp: p (_Decimal64) 3.1
+PASS: gdb.base/dfp-exprs.exp: p (_Decimal128) 3.7df
+PASS: gdb.base/dfp-exprs.exp: p (_Decimal32) 4
+Running ./gdb.base/dfp-test.exp ...
+PASS: gdb.base/dfp-test.exp: get integer valueof "sizeof (long)" (4)
+PASS: gdb.base/dfp-test.exp: next after initializing d32
+PASS: gdb.base/dfp-test.exp: d32 is initialized to 1.2345
+PASS: gdb.base/dfp-test.exp: next after assigning builtin infinity to d32
+PASS: gdb.base/dfp-test.exp: d32 is positive Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning negative builtin infinity to d32
+PASS: gdb.base/dfp-test.exp: d32 is negative Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning builtin NaN to d32
+PASS: gdb.base/dfp-test.exp: d32 is NaN
+PASS: gdb.base/dfp-test.exp: p d32=123.45df
+PASS: gdb.base/dfp-test.exp: p d32=12345.df
+PASS: gdb.base/dfp-test.exp: p d32=12345.67df
+PASS: gdb.base/dfp-test.exp: p d32=1234567.df
+PASS: gdb.base/dfp-test.exp: p d32=1.234567E0df
+PASS: gdb.base/dfp-test.exp: p d32=1.234567E10df
+PASS: gdb.base/dfp-test.exp: p d32=1.234567E+96df
+PASS: gdb.base/dfp-test.exp: p d32=9.999999E96df
+PASS: gdb.base/dfp-test.exp: p d32=1.0E-95df
+PASS: gdb.base/dfp-test.exp: p d32=1.E-101df
+PASS: gdb.base/dfp-test.exp: p d32=0.000001E-95df
+PASS: gdb.base/dfp-test.exp: 1.2345678 is rounded to 1.234568
+PASS: gdb.base/dfp-test.exp: 1.0E-101 is rounded to 1E-101
+PASS: gdb.base/dfp-test.exp: 1.234567E+97 is Infinity
+PASS: gdb.base/dfp-test.exp: 12345. is a valid number
+PASS: gdb.base/dfp-test.exp: 12345 is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E45A is an invalid number
+PASS: gdb.base/dfp-test.exp: next after initializing d64
+PASS: gdb.base/dfp-test.exp: d64 is initialized to 1.2345
+PASS: gdb.base/dfp-test.exp: next after assigning builtin infinity to d64
+PASS: gdb.base/dfp-test.exp: d64 is positive Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning negative builtin infinity to d64
+PASS: gdb.base/dfp-test.exp: d64 is negative Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning builtin NaN to d64
+PASS: gdb.base/dfp-test.exp: d64 is NaN
+PASS: gdb.base/dfp-test.exp: p d64=123.45dd
+PASS: gdb.base/dfp-test.exp: p d64=12345.dd
+PASS: gdb.base/dfp-test.exp: p d64=12345.67dd
+PASS: gdb.base/dfp-test.exp: p d64=1.234567890123456dd
+PASS: gdb.base/dfp-test.exp: p d64=1.234567890123456E10dd
+PASS: gdb.base/dfp-test.exp: p d64=1.234567890123456E100dd
+PASS: gdb.base/dfp-test.exp: p d64=1.234567890123456E384dd
+PASS: gdb.base/dfp-test.exp: p d64=9.999999999999999E384dd
+PASS: gdb.base/dfp-test.exp: p d64=1.E-383dd
+PASS: gdb.base/dfp-test.exp: p d64=1.E-398dd
+PASS: gdb.base/dfp-test.exp: p d64=0.000000000000001E-383dd
+PASS: gdb.base/dfp-test.exp: 1.2345678901234567 is rounded to 1.234567890123457
+PASS: gdb.base/dfp-test.exp: d64=9.9999999999999999E384 is Infinity
+PASS: gdb.base/dfp-test.exp: d64=1.234567890123456E385 is Infinity
+PASS: gdb.base/dfp-test.exp: 12345dd is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E45A is an invalid number
+PASS: gdb.base/dfp-test.exp: next after initializing d128
+PASS: gdb.base/dfp-test.exp: d128 is initialized to 1.2345
+PASS: gdb.base/dfp-test.exp: p d128=123.45dl
+PASS: gdb.base/dfp-test.exp: p d128=12345.dl
+PASS: gdb.base/dfp-test.exp: p d128=12345.67dl
+PASS: gdb.base/dfp-test.exp: p d128=1.234567890123456789012345678901234dl
+PASS: gdb.base/dfp-test.exp: p d128=1.234567890123456E10dl
+PASS: gdb.base/dfp-test.exp: p d128=1.234567890123456E100dl
+PASS: gdb.base/dfp-test.exp: p d128=1.234567890123456E1000dl
+PASS: gdb.base/dfp-test.exp: p d128=9.999999999999999999999999999999999E6144dl
+PASS: gdb.base/dfp-test.exp: p d128=1.E-6143dl
+PASS: gdb.base/dfp-test.exp: p d128=1.E-6176dl
+PASS: gdb.base/dfp-test.exp: p d128=0.000000000000000000000000000000001E-6143dl
+PASS: gdb.base/dfp-test.exp: 1.2345678901234567890123456789012345 is rounded to 1.234567890123456789012345678901234
+PASS: gdb.base/dfp-test.exp: d128=1.234567890123456E6145 is Infinity
+PASS: gdb.base/dfp-test.exp: 12345dl is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E45A is an invalid number
+PASS: gdb.base/dfp-test.exp: next after assigning builtin infinity to d128
+PASS: gdb.base/dfp-test.exp: d128 is positive Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning negative builtin infinity to d128
+PASS: gdb.base/dfp-test.exp: d128 is negative Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning builtin NaN to d128
+PASS: gdb.base/dfp-test.exp: d128 is NaN
+PASS: gdb.base/dfp-test.exp: continue to breakpoint: entry to arg0_32
+PASS: gdb.base/dfp-test.exp: backtrace at arg0_32
+PASS: gdb.base/dfp-test.exp: continue to breakpoint: entry to arg0_64
+PASS: gdb.base/dfp-test.exp: backtrace at arg0_64
+PASS: gdb.base/dfp-test.exp: continue to breakpoint: entry to arg0_128
+PASS: gdb.base/dfp-test.exp: backtrace at arg0_128
+PASS: gdb.base/dfp-test.exp: Call function with correct _Decimal32 arguments.
+PASS: gdb.base/dfp-test.exp: Backtrace function with correct _Decimal32 arguments.
+PASS: gdb.base/dfp-test.exp: Correct _Decimal32 return value from called function.
+PASS: gdb.base/dfp-test.exp: Call function with correct _Decimal64 arguments.
+PASS: gdb.base/dfp-test.exp: Backtrace function with correct _Decimal64 arguments.
+PASS: gdb.base/dfp-test.exp: Correct _Decimal64 return value from called function.
+PASS: gdb.base/dfp-test.exp: Call function with correct _Decimal128 arguments.
+PASS: gdb.base/dfp-test.exp: Backtrace function with correct _Decimal128 arguments.
+PASS: gdb.base/dfp-test.exp: Correct _Decimal128 return value from called function.
+PASS: gdb.base/dfp-test.exp: Call function with mixed decimal float arguments TEST.
+PASS: gdb.base/dfp-test.exp: Call function with mixed decimal float arguments.
+PASS: gdb.base/dfp-test.exp: Call function with many _Decimal32 arguments.
+PASS: gdb.base/dfp-test.exp: Call function with many _Decimal64 arguments.
+PASS: gdb.base/dfp-test.exp: Call function with many _Decimal128 arguments.
+PASS: gdb.base/dfp-test.exp: Call function with many mixed decimal float arguments.
+PASS: gdb.base/dfp-test.exp: continue to breakpoint: Setting a decimal struct
+PASS: gdb.base/dfp-test.exp: print ds.dec32
+PASS: gdb.base/dfp-test.exp: print ds.dec64
+PASS: gdb.base/dfp-test.exp: print ds.dec128
+PASS: gdb.base/dfp-test.exp: print d32 + ds.dec32
+PASS: gdb.base/dfp-test.exp: print d64 + ds.dec64
+PASS: gdb.base/dfp-test.exp: print d128 + ds.dec128
+PASS: gdb.base/dfp-test.exp: ptype d64 + ds.dec32
+PASS: gdb.base/dfp-test.exp: ptype d128 + ds.dec32
+PASS: gdb.base/dfp-test.exp: ptype d128 + ds.dec64
+PASS: gdb.base/dfp-test.exp: p d32 + 1
+PASS: gdb.base/dfp-test.exp: p 2 + d64
+PASS: gdb.base/dfp-test.exp: p ds.int4 + d128
+PASS: gdb.base/dfp-test.exp: ptype d32 + 1
+PASS: gdb.base/dfp-test.exp: ptype ds.int4 + d128
+PASS: gdb.base/dfp-test.exp: p !d32
+PASS: gdb.base/dfp-test.exp: p !d64
+PASS: gdb.base/dfp-test.exp: p !d128
+PASS: gdb.base/dfp-test.exp: p +d32
+PASS: gdb.base/dfp-test.exp: p +d64
+PASS: gdb.base/dfp-test.exp: p +d128
+PASS: gdb.base/dfp-test.exp: p d64 == d128
+PASS: gdb.base/dfp-test.exp: p d128 == ds.dec32
+PASS: gdb.base/dfp-test.exp: p d128 == d32
+PASS: gdb.base/dfp-test.exp: p ds.dec32 == ds.dec64
+PASS: gdb.base/dfp-test.exp: p d32 < ds.dec32
+PASS: gdb.base/dfp-test.exp: p d64 < ds.dec64
+PASS: gdb.base/dfp-test.exp: p d128 < ds.dec128
+PASS: gdb.base/dfp-test.exp: p ds.dec32 < d32
+PASS: gdb.base/dfp-test.exp: p d64 > ds.dec64
+PASS: gdb.base/dfp-test.exp: p ds.dec128 > d128
+PASS: gdb.base/dfp-test.exp: p d32 < ds.int4
+PASS: gdb.base/dfp-test.exp: p ds.int4 > d32
+PASS: gdb.base/dfp-test.exp: p ds.dec32 < ds.int4
+PASS: gdb.base/dfp-test.exp: p ds.int4 > ds.dec64
+PASS: gdb.base/dfp-test.exp: p ds.dec128 > ds.int4
+PASS: gdb.base/dfp-test.exp: p d64 + ds.float4
+PASS: gdb.base/dfp-test.exp: p ds.double8 + d128
+PASS: gdb.base/dfp-test.exp: print ds.dec32=d32
+PASS: gdb.base/dfp-test.exp: print ds.dec64=d64
+PASS: gdb.base/dfp-test.exp: print ds.dec128=d128
+PASS: gdb.base/dfp-test.exp: print ds.dec32 = -d32
+PASS: gdb.base/dfp-test.exp: print ds.dec64 = -d64
+PASS: gdb.base/dfp-test.exp: print ds.dec128 = -d128
+PASS: gdb.base/dfp-test.exp: print ds.double8 = ds.dec64
+PASS: gdb.base/dfp-test.exp: print ds.dec64 = ds.float4
+PASS: gdb.base/dfp-test.exp: print ds.dec128 = -ds.double8
+PASS: gdb.base/dfp-test.exp: print ds.dec128 = ds.dec32
+PASS: gdb.base/dfp-test.exp: print ds.dec32 = ds.int4
+PASS: gdb.base/dfp-test.exp: print ds.int4 = 7.3dl
+Running ./gdb.base/disabled-location.exp ...
+PASS: gdb.base/disabled-location.exp: setting breakpoint on function
+PASS: gdb.base/disabled-location.exp: disable location
+PASS: gdb.base/disabled-location.exp: step doesn't trip on disabled location
+Running ./gdb.base/disasm-end-cu.exp ...
+PASS: gdb.base/disasm-end-cu.exp: get hexadecimal valueof "&main"
+PASS: gdb.base/disasm-end-cu.exp: get hexadecimal valueof "&dummy_3"
+PASS: gdb.base/disasm-end-cu.exp: disassemble command returned some output
+Running ./gdb.base/display.exp ...
+PASS: gdb.base/display.exp: break  do_loops
+PASS: gdb.base/display.exp: get to do_loops
+PASS: gdb.base/display.exp: set watch
+PASS: gdb.base/display.exp: break loop end
+PASS: gdb.base/display.exp: inf disp
+PASS: gdb.base/display.exp: display i
+PASS: gdb.base/display.exp: display j
+PASS: gdb.base/display.exp: display &k
+PASS: gdb.base/display.exp: display/f f
+PASS: gdb.base/display.exp: display/s &sum
+PASS: gdb.base/display.exp: first disp
+PASS: gdb.base/display.exp: second disp
+PASS: gdb.base/display.exp: catch err
+PASS: gdb.base/display.exp: disab disp 1
+PASS: gdb.base/display.exp: disab disp 2
+PASS: gdb.base/display.exp: re-enab
+PASS: gdb.base/display.exp: re-enab of enab
+PASS: gdb.base/display.exp: undisp
+PASS: gdb.base/display.exp: info disp
+PASS: gdb.base/display.exp: next hit
+PASS: gdb.base/display.exp: undisp all
+PASS: gdb.base/display.exp: disp *p_i
+PASS: gdb.base/display.exp: p p_i = 0x0
+PASS: gdb.base/display.exp: display bad address
+PASS: gdb.base/display.exp: p p_i = &i
+PASS: gdb.base/display.exp: display good address
+PASS: gdb.base/display.exp: undisp all again
+PASS: gdb.base/display.exp: disab 3
+PASS: gdb.base/display.exp: watch off
+PASS: gdb.base/display.exp: finish
+PASS: gdb.base/display.exp: step
+PASS: gdb.base/display.exp: tbreak in do_vars
+PASS: gdb.base/display.exp: cont
+PASS: gdb.base/display.exp: printf
+PASS: gdb.base/display.exp: printf %d
+PASS: gdb.base/display.exp: printf "%d
+PASS: gdb.base/display.exp: printf "%d%d",i
+PASS: gdb.base/display.exp: printf "\\!\a\f\r\t\v\b\n"
+PASS: gdb.base/display.exp: re-set term
+PASS: gdb.base/display.exp: printf "\w"
+PASS: gdb.base/display.exp: printf "%d" j
+PASS: gdb.base/display.exp: printf "%p\n", 0
+PASS: gdb.base/display.exp: printf "%p\n", 1
+PASS: gdb.base/display.exp: print/z j
+PASS: gdb.base/display.exp: debug test output 1
+PASS: gdb.base/display.exp: debug test output 1a
+PASS: gdb.base/display.exp: debug test output 2
+PASS: gdb.base/display.exp: debug test output 2a
+PASS: gdb.base/display.exp: debug test output 3
+PASS: gdb.base/display.exp: x/0 j
+PASS: gdb.base/display.exp: print/0 j
+PASS: gdb.base/display.exp: ignored s
+PASS: gdb.base/display.exp: no i
+PASS: gdb.base/display.exp: print/a &sum
+PASS: gdb.base/display.exp: print/a main+4
+PASS: gdb.base/display.exp: print/a $pc
+PASS: gdb.base/display.exp: print/a &&j
+Running ./gdb.base/disp-step-syscall.exp ...
+PASS: gdb.base/disp-step-syscall.exp: fork: delete break 1
+PASS: gdb.base/disp-step-syscall.exp: fork: break marker
+PASS: gdb.base/disp-step-syscall.exp: fork: set displaced-stepping off
+PASS: gdb.base/disp-step-syscall.exp: fork: break fork
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to fork (1st time)
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to fork (2nd time)
+PASS: gdb.base/disp-step-syscall.exp: fork: display/i $pc
+PASS: gdb.base/disp-step-syscall.exp: fork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: fork: stepi fork insn
+PASS: gdb.base/disp-step-syscall.exp: fork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to fork (3rd time)
+PASS: gdb.base/disp-step-syscall.exp: fork: break on syscall insns
+PASS: gdb.base/disp-step-syscall.exp: fork: delete break fork
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to syscall insn fork
+PASS: gdb.base/disp-step-syscall.exp: fork: set displaced-stepping on
+PASS: gdb.base/disp-step-syscall.exp: fork: single step over fork
+PASS: gdb.base/disp-step-syscall.exp: fork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: fork: single step over fork final pc
+PASS: gdb.base/disp-step-syscall.exp: fork: delete break fork insn
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to marker (fork)
+PASS: gdb.base/disp-step-syscall.exp: vfork: delete break 1
+PASS: gdb.base/disp-step-syscall.exp: vfork: break marker
+PASS: gdb.base/disp-step-syscall.exp: vfork: set displaced-stepping off
+PASS: gdb.base/disp-step-syscall.exp: vfork: break vfork
+PASS: gdb.base/disp-step-syscall.exp: vfork: continue to vfork (1st time)
+PASS: gdb.base/disp-step-syscall.exp: vfork: continue to vfork (2nd time)
+PASS: gdb.base/disp-step-syscall.exp: vfork: display/i $pc
+PASS: gdb.base/disp-step-syscall.exp: vfork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: vfork: stepi vfork insn
+PASS: gdb.base/disp-step-syscall.exp: vfork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: vfork: continue to vfork (3rd time)
+PASS: gdb.base/disp-step-syscall.exp: vfork: break on syscall insns
+PASS: gdb.base/disp-step-syscall.exp: vfork: delete break vfork
+PASS: gdb.base/disp-step-syscall.exp: vfork: continue to syscall insn vfork
+PASS: gdb.base/disp-step-syscall.exp: vfork: set displaced-stepping on
+KPASS: gdb.base/disp-step-syscall.exp: vfork: single step over vfork (PRMS server/13796)
+FAIL: gdb.base/disp-step-syscall.exp: vfork: get hexadecimal valueof "$pc" (timeout)
+FAIL: gdb.base/disp-step-syscall.exp: vfork: single step over vfork final pc
+FAIL: gdb.base/disp-step-syscall.exp: vfork: delete break vfork insn
+FAIL: gdb.base/disp-step-syscall.exp: vfork: continue to marker (vfork) (the program is no longer running)
+Running ./gdb.base/dmsym.exp ...
+PASS: gdb.base/dmsym.exp: set lang ada
+PASS: gdb.base/dmsym.exp: break pck__foo__bar__minsym
+PASS: gdb.base/dmsym.exp: info line pck__foo__bar__minsym
+PASS: gdb.base/dmsym.exp: set lang auto
+PASS: gdb.base/dmsym.exp: Run until breakpoint at BREAK
+PASS: gdb.base/dmsym.exp: continue
+PASS: gdb.base/dmsym.exp: print val
+Running ./gdb.base/dprintf.exp ...
+PASS: gdb.base/dprintf.exp: dprintf
+PASS: gdb.base/dprintf.exp: dprintf foo
+PASS: gdb.base/dprintf.exp: dprintf 29
+PASS: gdb.base/dprintf.exp: dprintf foo,"At foo entry\n"
+PASS: gdb.base/dprintf.exp: ignore $bpnum 1
+PASS: gdb.base/dprintf.exp: dprintf 26,"arg=%d, g=%d\n", arg, g
+PASS: gdb.base/dprintf.exp: dprintf info 1
+PASS: gdb.base/dprintf.exp: break 27
+PASS: gdb.base/dprintf.exp: 1st dprintf, gdb
+PASS: gdb.base/dprintf.exp: 2nd dprintf, gdb
+PASS: gdb.base/dprintf.exp: Set dprintf style to agent - can do
+PASS: gdb.base/dprintf.exp: 1st dprintf, agent
+PASS: gdb.base/dprintf.exp: 2nd dprintf, agent
+PASS: gdb.base/dprintf.exp: dprintf info 2
+PASS: gdb.base/dprintf.exp: Set dprintf style to an unrecognized type
+Running ./gdb.base/dprintf-next.exp ...
+PASS: gdb.base/dprintf-next.exp: dprintf 24, "%d\n", x
+PASS: gdb.base/dprintf-next.exp: next 1
+PASS: gdb.base/dprintf-next.exp: next 2
+Running ./gdb.base/dprintf-non-stop.exp ...
+UNSUPPORTED: gdb.base/dprintf-non-stop.exp: Testing dprintf with remote/non-stop is not supported.
+Running ./gdb.base/dprintf-pending.exp ...
+PASS: gdb.base/dprintf-pending.exp: without format: set pending dprintf
+PASS: gdb.base/dprintf-pending.exp: without format: resolved dprintf fails to be re-set
+PASS: gdb.base/dprintf-pending.exp: without symbols: set pending dprintf
+PASS: gdb.base/dprintf-pending.exp: without symbols: single pending dprintf info
+PASS: gdb.base/dprintf-pending.exp: without symbols: run to resolved dprintf
+PASS: gdb.base/dprintf-pending.exp: set pending dprintf
+PASS: gdb.base/dprintf-pending.exp: single pending dprintf info
+PASS: gdb.base/dprintf-pending.exp: run to resolved dprintf
+Running ./gdb.base/dump.exp ...
+PASS: gdb.base/dump.exp: inaccessible memory is reported
+PASS: gdb.base/dump.exp: endianness: little
+PASS: gdb.base/dump.exp: dump array as value, default
+PASS: gdb.base/dump.exp: dump struct as value, default
+PASS: gdb.base/dump.exp: dump array as value, binary
+PASS: gdb.base/dump.exp: dump struct as value, binary
+PASS: gdb.base/dump.exp: dump array as value, srec
+PASS: gdb.base/dump.exp: dump struct as value, srec
+PASS: gdb.base/dump.exp: dump array as value, intel hex
+PASS: gdb.base/dump.exp: dump struct as value, intel hex
+PASS: gdb.base/dump.exp: dump array as value, tekhex
+PASS: gdb.base/dump.exp: dump struct as value, tekhex
+PASS: gdb.base/dump.exp: capture /x &intarray[0]
+PASS: gdb.base/dump.exp: capture /x &intarray[32]
+PASS: gdb.base/dump.exp: capture /x &intstruct
+PASS: gdb.base/dump.exp: capture /x &intstruct + 1
+PASS: gdb.base/dump.exp: capture intarray
+PASS: gdb.base/dump.exp: capture intstruct
+PASS: gdb.base/dump.exp: capture type of pointer &intarray
+PASS: gdb.base/dump.exp: capture type of pointer &intstruct
+PASS: gdb.base/dump.exp: dump array as memory, default
+PASS: gdb.base/dump.exp: dump struct as memory, default
+PASS: gdb.base/dump.exp: dump array as memory, binary
+PASS: gdb.base/dump.exp: dump struct as memory, binary
+PASS: gdb.base/dump.exp: dump array as memory, srec
+PASS: gdb.base/dump.exp: dump struct as memory, srec
+PASS: gdb.base/dump.exp: dump array as memory, ihex
+PASS: gdb.base/dump.exp: dump struct as memory, ihex
+PASS: gdb.base/dump.exp: dump array as memory, tekhex
+PASS: gdb.base/dump.exp: dump struct as memory, tekhex
+PASS: gdb.base/dump.exp: dump array as mem, srec, expressions
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, srec; file restored ok
+PASS: gdb.base/dump.exp: array as value, srec; capture intarray
+PASS: gdb.base/dump.exp: array as value, srec; value restored ok
+PASS: gdb.base/dump.exp: struct as value, srec; file restored ok
+PASS: gdb.base/dump.exp: struct as value, srec; capture intstruct
+PASS: gdb.base/dump.exp: struct as value, srec; value restored ok
+PASS: gdb.base/dump.exp: zero all
+PASS: gdb.base/dump.exp: array as memory, srec; file restored ok
+PASS: gdb.base/dump.exp: array as memory, srec; capture intarray
+PASS: gdb.base/dump.exp: array as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, srec; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, srec; capture intstruct
+PASS: gdb.base/dump.exp: struct as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, ihex; file restored ok
+PASS: gdb.base/dump.exp: array as value, ihex; capture intarray
+PASS: gdb.base/dump.exp: array as value, ihex; value restored ok
+PASS: gdb.base/dump.exp: struct as value, ihex; file restored ok
+PASS: gdb.base/dump.exp: struct as value, ihex; capture intstruct
+PASS: gdb.base/dump.exp: struct as value, ihex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as memory, ihex; file restored ok
+PASS: gdb.base/dump.exp: array as memory, ihex; capture intarray
+PASS: gdb.base/dump.exp: array as memory, ihex; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, ihex; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, ihex; capture intstruct
+PASS: gdb.base/dump.exp: struct as memory, ihex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array as value, tekhex; capture intarray
+PASS: gdb.base/dump.exp: array as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: struct as value, tekhex; file restored ok
+PASS: gdb.base/dump.exp: struct as value, tekhex; capture intstruct
+PASS: gdb.base/dump.exp: struct as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as memory, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array as memory, tekhex; capture intarray
+PASS: gdb.base/dump.exp: array as memory, tekhex; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, tekhex; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, tekhex; capture intstruct
+PASS: gdb.base/dump.exp: struct as memory, tekhex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, binary; file restored ok
+PASS: gdb.base/dump.exp: array as value, binary; capture intarray
+PASS: gdb.base/dump.exp: array as value, binary; value restored ok
+PASS: gdb.base/dump.exp: struct as value, binary; file restored ok
+PASS: gdb.base/dump.exp: struct as value, binary; capture intstruct
+PASS: gdb.base/dump.exp: struct as value, binary; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as memory, binary; file restored ok
+PASS: gdb.base/dump.exp: array as memory, binary; capture intarray
+PASS: gdb.base/dump.exp: array as memory, binary; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, binary; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, binary; capture intstruct
+PASS: gdb.base/dump.exp: struct as memory, binary; value restored ok
+PASS: gdb.base/dump.exp: capture /x &intarray2[0]
+PASS: gdb.base/dump.exp: capture /x &intstruct2
+PASS: gdb.base/dump.exp: capture (char *) &intarray2 - (char *) &intarray
+PASS: gdb.base/dump.exp: capture (char *) &intstruct2 - (char *) &intstruct
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, srec; file restored ok
+PASS: gdb.base/dump.exp: array copy, srec; capture intarray2
+PASS: gdb.base/dump.exp: array copy, srec; value restored ok
+PASS: gdb.base/dump.exp: struct copy, srec; file restored ok
+PASS: gdb.base/dump.exp: struct copy, srec; capture intstruct2
+PASS: gdb.base/dump.exp: struct copy, srec; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, ihex; file restored ok
+PASS: gdb.base/dump.exp: array copy, ihex; capture intarray2
+PASS: gdb.base/dump.exp: array copy, ihex; value restored ok
+PASS: gdb.base/dump.exp: struct copy, ihex; file restored ok
+PASS: gdb.base/dump.exp: struct copy, ihex; capture intstruct2
+PASS: gdb.base/dump.exp: struct copy, ihex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array copy, tekhex; capture intarray2
+PASS: gdb.base/dump.exp: array copy, tekhex; value restored ok
+PASS: gdb.base/dump.exp: struct copy, tekhex; file restored ok
+PASS: gdb.base/dump.exp: struct copy, tekhex; capture intstruct2
+PASS: gdb.base/dump.exp: struct copy, tekhex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, binary; file restored ok
+PASS: gdb.base/dump.exp: array copy, binary; capture intarray2
+PASS: gdb.base/dump.exp: array copy, binary; value restored ok
+PASS: gdb.base/dump.exp: struct copy, binary; file restored ok
+PASS: gdb.base/dump.exp: struct copy, binary; capture intstruct2
+PASS: gdb.base/dump.exp: struct copy, binary; value restored ok
+PASS: gdb.base/dump.exp: capture /x &intarray[3]
+PASS: gdb.base/dump.exp: capture /x &intarray[4]
+PASS: gdb.base/dump.exp: capture /x (char *) &intarray[3] - (char *) &intarray[0]
+PASS: gdb.base/dump.exp: capture /x (char *) &intarray[4] - (char *) &intarray[0]
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array partial, srec; file restored ok
+PASS: gdb.base/dump.exp: array partial, srec; capture intarray[3]
+PASS: gdb.base/dump.exp: array partial, srec; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 1
+PASS: gdb.base/dump.exp: element 4 not changed - 1
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array partial, ihex; file restored ok
+PASS: gdb.base/dump.exp: array partial, ihex; capture intarray[3]
+PASS: gdb.base/dump.exp: array partial, ihex; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 2
+PASS: gdb.base/dump.exp: element 4 not changed - 2
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array partial, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array partial, tekhex; capture intarray[3]
+PASS: gdb.base/dump.exp: array partial, tekhex; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 3
+PASS: gdb.base/dump.exp: element 4 not changed - 3
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array partial, binary; file restored ok
+PASS: gdb.base/dump.exp: array partial, binary; capture intarray[3]
+PASS: gdb.base/dump.exp: array partial, binary; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 4
+PASS: gdb.base/dump.exp: element 4 not changed - 4
+PASS: gdb.base/dump.exp: array partial with expressions; file restored ok
+PASS: gdb.base/dump.exp: array partial with expressions; capture intarray2[3]
+PASS: gdb.base/dump.exp: array partial with expressions; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed, == 4
+PASS: gdb.base/dump.exp: element 4 not changed, == 4
+PASS: gdb.base/dump.exp: setting little endianness
+PASS: gdb.base/dump.exp: file binfile; capture intarray
+PASS: gdb.base/dump.exp: start with intarray un-initialized
+PASS: gdb.base/dump.exp: file binfile; capture intstruct
+PASS: gdb.base/dump.exp: start with intstruct un-initialized
+PASS: gdb.base/dump.exp: reload array as value, srec; capture * (int (*)[32]) 0x55557040
+PASS: gdb.base/dump.exp: reload array as value, srec; value restored ok
+PASS: gdb.base/dump.exp: reload struct as value, srec; capture * (struct teststruct *) 0x55557140
+PASS: gdb.base/dump.exp: reload struct as value, srec; value restored ok
+PASS: gdb.base/dump.exp: reload array as memory, srec; capture * (int (*)[32]) 0x55557040
+PASS: gdb.base/dump.exp: reload array as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: reload struct as memory, srec; capture * (struct teststruct *) 0x55557140
+PASS: gdb.base/dump.exp: reload struct as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: reload array as value, intel hex; capture * (int (*)[32]) 0x55557040
+PASS: gdb.base/dump.exp: reload array as value, intel hex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as value, intel hex; capture * (struct teststruct *) 0x55557140
+PASS: gdb.base/dump.exp: reload struct as value, intel hex; value restored ok
+PASS: gdb.base/dump.exp: reload array as memory, intel hex; capture * (int (*)[32]) 0x55557040
+PASS: gdb.base/dump.exp: reload array as memory, intel hex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as memory, intel hex; capture * (struct teststruct *) 0x55557140
+PASS: gdb.base/dump.exp: reload struct as memory, intel hex; value restored ok
+PASS: gdb.base/dump.exp: reload array as value, tekhex; capture * (int (*)[32]) 0x55557040
+PASS: gdb.base/dump.exp: reload array as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as value, tekhex; capture * (struct teststruct *) 0x55557140
+PASS: gdb.base/dump.exp: reload struct as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: reload array as memory, tekhex; capture * (int (*)[32]) 0x55557040
+PASS: gdb.base/dump.exp: reload array as memory, tekhex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as memory, tekhex; capture * (struct teststruct *) 0x55557140
+PASS: gdb.base/dump.exp: reload struct as memory, tekhex; value restored ok
+Running ./gdb.base/duplicate-bp.exp ...
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: delete $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: delete #1, stop at #2
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: delete $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: delete #2, stop at #1
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: disable $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: step
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: delete $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: disable #1, delete #2, stop at #3
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: disable $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: step
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: delete $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: disable #2, delete #1, stop at #3
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: disable $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: step
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: delete $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: disable #1, delete #3, stop at #2
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: disable $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: step
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: delete $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: disable #3, delete #1, stop at #2
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: disable $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: step
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: delete $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: disable #2, delete #3, stop at #1
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: disable $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: step
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: delete $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: disable #3, delete #2, stop at #1
+Running ./gdb.base/dup-sect.exp ...
+PASS: gdb.base/dup-sect.exp: rename section
+PASS: gdb.base/dup-sect.exp: split
+PASS: gdb.base/dup-sect.exp: strip
+PASS: gdb.base/dup-sect.exp: var1 after strip
+PASS: gdb.base/dup-sect.exp: var2 after strip
+Running ./gdb.base/echo.exp ...
+PASS: gdb.base/echo.exp: Echo test
+Running ./gdb.base/empty_exe.exp ...
+PASS: gdb.base/empty_exe.exp: file ''
+PASS: gdb.base/empty_exe.exp: print 1
+Running ./gdb.base/ena-dis-br.exp ...
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: enable break marker1
+PASS: gdb.base/ena-dis-br.exp: info break marker1
+PASS: gdb.base/ena-dis-br.exp: continue to break marker1
+PASS: gdb.base/ena-dis-br.exp: delete break marker1
+PASS: gdb.base/ena-dis-br.exp: break marker2
+PASS: gdb.base/ena-dis-br.exp: enable once break marker2
+PASS: gdb.base/ena-dis-br.exp: info auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: continue to auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: info auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop at auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: break marker3
+PASS: gdb.base/ena-dis-br.exp: enable del break marker3
+PASS: gdb.base/ena-dis-br.exp: info auto-deleted break marker2
+PASS: gdb.base/ena-dis-br.exp: continue to auto-deleted break marker3
+PASS: gdb.base/ena-dis-br.exp: info auto-deleted break marker3
+PASS: gdb.base/ena-dis-br.exp: break marker4
+PASS: gdb.base/ena-dis-br.exp: disable break marker4
+PASS: gdb.base/ena-dis-br.exp: info break marker4
+PASS: gdb.base/ena-dis-br.exp: break 113
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: disable break with count
+PASS: gdb.base/ena-dis-br.exp: continue from enable count, first time
+PASS: gdb.base/ena-dis-br.exp: continue from enable count, second time
+PASS: gdb.base/ena-dis-br.exp: continue through enable count, now disabled
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: ignore non-existent break
+PASS: gdb.base/ena-dis-br.exp: ignore break with missing ignore count
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1 -1
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1 0
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1
+PASS: gdb.base/ena-dis-br.exp: info ignored break marker1
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored break marker1
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+PASS: gdb.base/ena-dis-br.exp: continue to break marker1, 2nd time
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1
+PASS: gdb.base/ena-dis-br.exp: enable del break marker1
+PASS: gdb.base/ena-dis-br.exp: info break marker1
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored & auto-deleted break marker1
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+PASS: gdb.base/ena-dis-br.exp: continue to ignored & auto-deleted break marker1
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1
+PASS: gdb.base/ena-dis-br.exp: disable break marker1
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored & disabled break marker1
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+PASS: gdb.base/ena-dis-br.exp: info ignored & disabled break marker1
+PASS: gdb.base/ena-dis-br.exp: prepare to continue with ignore count
+PASS: gdb.base/ena-dis-br.exp: continue with ignore count
+PASS: gdb.base/ena-dis-br.exp: step
+PASS: gdb.base/ena-dis-br.exp: continue with ignore count, not stopped at bpt
+Running ./gdb.base/ending-run.exp ...
+PASS: gdb.base/ending-run.exp: bpt at line before routine
+PASS: gdb.base/ending-run.exp: b ending-run.c:14, one
+PASS: gdb.base/ending-run.exp: b ending-run.c:31
+PASS: gdb.base/ending-run.exp: run
+PASS: gdb.base/ending-run.exp: clear worked
+PASS: gdb.base/ending-run.exp: cleared bp at line before routine
+PASS: gdb.base/ending-run.exp: b ending-run.c:1
+PASS: gdb.base/ending-run.exp: b ending-run.c:14, two
+PASS: gdb.base/ending-run.exp: Cleared 2 by line
+PASS: gdb.base/ending-run.exp: b ending-run.c:14
+PASS: gdb.base/ending-run.exp: Breakpoint 7 at *ending-run.c:14
+PASS: gdb.base/ending-run.exp: Clear 2 by default
+PASS: gdb.base/ending-run.exp: all set to continue
+PASS: gdb.base/ending-run.exp: cont
+PASS: gdb.base/ending-run.exp: step out of main
+Running ./gdb.base/enum_cond.exp ...
+PASS: gdb.base/enum_cond.exp: break call_me if param.e == 1
+PASS: gdb.base/enum_cond.exp: continue to conditional breakpoint in call_me
+Running ./gdb.base/enumval.exp ...
+PASS: gdb.base/enumval.exp: print e
+PASS: gdb.base/enumval.exp: print f
+PASS: gdb.base/enumval.exp: print J
+PASS: gdb.base/enumval.exp: print K
+Running ./gdb.base/environ.exp ...
+Running ./gdb.base/eu-strip-infcall.exp ...
+PASS: gdb.base/eu-strip-infcall.exp: infcall
+Running ./gdb.base/eval.exp ...
+PASS: gdb.base/eval.exp: Initialize $a.
+PASS: gdb.base/eval.exp: First eval.
+PASS: gdb.base/eval.exp: Second eval.
+Running ./gdb.base/eval-skip.exp ...
+PASS: gdb.base/eval-skip.exp: set variable x=14
+PASS: gdb.base/eval-skip.exp: set variable y=2
+PASS: gdb.base/eval-skip.exp: set variable z=2
+PASS: gdb.base/eval-skip.exp: set variable w=3
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x+y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x-y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x*y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x/y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x%y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x&&y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x||y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x&y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x|y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x^y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x < y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x <= y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x>y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x>=y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x==y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x!=y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x<<31))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x>>31))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (!x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (~x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (-x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x++))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (++x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x--))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (--x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x+=7))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x=y))
+Running ./gdb.base/exe-lock.exp ...
+PASS: gdb.base/exe-lock.exp: continue until exit
+Running ./gdb.base/expand-psymtabs.exp ...
+PASS: gdb.base/expand-psymtabs.exp: Expand psymtabs
+Running ./gdb.base/exprs.exp ...
+PASS: gdb.base/exprs.exp: print char == (setup)
+PASS: gdb.base/exprs.exp: print char == (print v_char == 0)
+PASS: gdb.base/exprs.exp: print char == (print v_char == 127)
+PASS: gdb.base/exprs.exp: print char != (setup)
+PASS: gdb.base/exprs.exp: print char != (print v_char != 0)
+PASS: gdb.base/exprs.exp: print char != (print v_char != 127)
+PASS: gdb.base/exprs.exp: print char < (setup)
+PASS: gdb.base/exprs.exp: print char < (print v_char < 0)
+PASS: gdb.base/exprs.exp: print char < (print v_char < 127)
+PASS: gdb.base/exprs.exp: print char > (setup)
+PASS: gdb.base/exprs.exp: print char > (print v_char > 0)
+PASS: gdb.base/exprs.exp: print char > (print v_char > 127)
+PASS: gdb.base/exprs.exp: print signed char == (setup)
+PASS: gdb.base/exprs.exp: print signed char == (print v_signed_char == 0)
+PASS: gdb.base/exprs.exp: print signed char == (print v_signed_char == 127)
+PASS: gdb.base/exprs.exp: print signed char != (setup)
+PASS: gdb.base/exprs.exp: print signed char != (print v_signed_char != 0)
+PASS: gdb.base/exprs.exp: print signed char != (print v_signed_char != 127)
+PASS: gdb.base/exprs.exp: print signed char < (setup)
+PASS: gdb.base/exprs.exp: print signed char < (print v_signed_char < 0)
+PASS: gdb.base/exprs.exp: print signed char < (print v_signed_char < 127)
+PASS: gdb.base/exprs.exp: print signed char > (setup)
+PASS: gdb.base/exprs.exp: print signed char > (print v_signed_char > 0)
+PASS: gdb.base/exprs.exp: print signed char > (print v_signed_char > 127)
+PASS: gdb.base/exprs.exp: print signed char == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char == (minus) (print v_signed_char == 0)
+PASS: gdb.base/exprs.exp: print signed char == (minus) (print v_signed_char == -1)
+PASS: gdb.base/exprs.exp: print signed char != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char != (minus) (print v_signed_char != 0)
+PASS: gdb.base/exprs.exp: print signed char != (minus) (print v_signed_char != -1)
+PASS: gdb.base/exprs.exp: print signed char < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char < (minus) (print v_signed_char < 0)
+PASS: gdb.base/exprs.exp: print signed char < (minus) (print v_signed_char < 127)
+PASS: gdb.base/exprs.exp: print signed char > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char > (minus) (print v_signed_char > 0)
+PASS: gdb.base/exprs.exp: print signed char > (minus) (print v_signed_char > 127)
+PASS: gdb.base/exprs.exp: print unsigned char == (setup)
+PASS: gdb.base/exprs.exp: print unsigned char == (print v_unsigned_char == 0)
+PASS: gdb.base/exprs.exp: print unsigned char == (print v_unsigned_char == 127)
+PASS: gdb.base/exprs.exp: print unsigned char != (setup)
+PASS: gdb.base/exprs.exp: print unsigned char != (print v_unsigned_char != 0)
+PASS: gdb.base/exprs.exp: print unsigned char != (print v_unsigned_char != 127)
+PASS: gdb.base/exprs.exp: print unsigned char < (setup)
+PASS: gdb.base/exprs.exp: print unsigned char < (print v_unsigned_char < 0)
+PASS: gdb.base/exprs.exp: print unsigned char < (print v_unsigned_char < 127)
+PASS: gdb.base/exprs.exp: print unsigned char > (setup)
+PASS: gdb.base/exprs.exp: print unsigned char > (print v_unsigned_char > 0)
+PASS: gdb.base/exprs.exp: print unsigned char > (print v_unsigned_char > 127)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (print v_unsigned_char == 0)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (print v_unsigned_char == ~0)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (print v_unsigned_char == (unsigned char)~0)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (print v_unsigned_char != 0)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (print v_unsigned_char != (unsigned char)~0)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (print v_unsigned_char != ~0)
+PASS: gdb.base/exprs.exp: print unsigned char < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char < (~0) (print v_unsigned_char < 0)
+PASS: gdb.base/exprs.exp: print unsigned char < (~0) (print v_unsigned_char < 127)
+PASS: gdb.base/exprs.exp: print unsigned char > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char > (~0) (print v_unsigned_char > 0)
+PASS: gdb.base/exprs.exp: print unsigned char > (~0) (print v_unsigned_char > 127)
+PASS: gdb.base/exprs.exp: print signed short == (setup)
+PASS: gdb.base/exprs.exp: print signed short == (print v_short == 0)
+PASS: gdb.base/exprs.exp: print signed short == (print v_short == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short != (setup)
+PASS: gdb.base/exprs.exp: print signed short != (print v_short != 0)
+PASS: gdb.base/exprs.exp: print signed short != (print v_short != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short < (setup)
+PASS: gdb.base/exprs.exp: print signed short < (print v_short < 0)
+PASS: gdb.base/exprs.exp: print signed short < (print v_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short > (setup)
+PASS: gdb.base/exprs.exp: print signed short > (print v_short > 0)
+PASS: gdb.base/exprs.exp: print signed short > (print v_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short == (minus) (print v_short == 0)
+PASS: gdb.base/exprs.exp: print signed short == (minus) (print v_short == -1)
+PASS: gdb.base/exprs.exp: print signed short != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short != (minus) (print v_short != 0)
+PASS: gdb.base/exprs.exp: print signed short != (minus) (print v_short != -1)
+PASS: gdb.base/exprs.exp: print signed short < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short < (minus) (print v_short < 0)
+PASS: gdb.base/exprs.exp: print signed short < (minus) (print v_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short > (minus) (print v_short > 0)
+PASS: gdb.base/exprs.exp: print signed short > (minus) (print v_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short == (setup)
+PASS: gdb.base/exprs.exp: print signed signed short == (print v_signed_short == 0)
+PASS: gdb.base/exprs.exp: print signed signed short == (print v_signed_short == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short != (setup)
+PASS: gdb.base/exprs.exp: print signed signed short != (print v_signed_short != 0)
+PASS: gdb.base/exprs.exp: print signed signed short != (print v_signed_short != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short < (setup)
+PASS: gdb.base/exprs.exp: print signed signed short < (print v_signed_short < 0)
+PASS: gdb.base/exprs.exp: print signed signed short < (print v_signed_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short > (setup)
+PASS: gdb.base/exprs.exp: print signed signed short > (print v_signed_short > 0)
+PASS: gdb.base/exprs.exp: print signed signed short > (print v_signed_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short == (minus) (print v_signed_short == 0)
+PASS: gdb.base/exprs.exp: print signed signed short == (minus) (print v_signed_short == -1)
+PASS: gdb.base/exprs.exp: print signed signed short != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short != (minus) (print v_signed_short != 0)
+PASS: gdb.base/exprs.exp: print signed signed short != (minus) (print v_signed_short != -1)
+PASS: gdb.base/exprs.exp: print signed signed short < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short < (minus) (print v_signed_short < 0)
+PASS: gdb.base/exprs.exp: print signed signed short < (minus) (print v_signed_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short > (minus) (print v_signed_short > 0)
+PASS: gdb.base/exprs.exp: print signed signed short > (minus) (print v_signed_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short == (setup)
+PASS: gdb.base/exprs.exp: print unsigned short == (print v_unsigned_short == 0)
+PASS: gdb.base/exprs.exp: print unsigned short == (print v_unsigned_short == 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short != (setup)
+PASS: gdb.base/exprs.exp: print unsigned short != (print v_unsigned_short != 0)
+PASS: gdb.base/exprs.exp: print unsigned short != (print v_unsigned_short != 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short < (setup)
+PASS: gdb.base/exprs.exp: print unsigned short < (print v_unsigned_short < 0)
+PASS: gdb.base/exprs.exp: print unsigned short < (print v_unsigned_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short > (setup)
+PASS: gdb.base/exprs.exp: print unsigned short > (print v_unsigned_short > 0)
+PASS: gdb.base/exprs.exp: print unsigned short > (print v_unsigned_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (print v_unsigned_short == 0)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (print sizeof (v_unsigned_short) < sizeof (~0) && v_unsigned_short == ~0)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (print v_unsigned_short == (unsigned short)~0)
+PASS: gdb.base/exprs.exp: print unsigned short != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short != (~0) (print v_unsigned_short != 0)
+PASS: gdb.base/exprs.exp: print unsigned short != (~0) (print v_unsigned_short != (unsigned short)~0)
+PASS: gdb.base/exprs.exp: print unsigned short < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short < (~0) (print v_unsigned_short < 0)
+PASS: gdb.base/exprs.exp: print unsigned short < (~0) (print v_unsigned_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short > (~0) (print v_unsigned_short > 0)
+PASS: gdb.base/exprs.exp: print unsigned short > (~0) (print v_unsigned_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int == (setup)
+PASS: gdb.base/exprs.exp: print signed int == (print v_int == 0)
+PASS: gdb.base/exprs.exp: print signed int == (print v_int == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int != (setup)
+PASS: gdb.base/exprs.exp: print signed int != (print v_int != 0)
+PASS: gdb.base/exprs.exp: print signed int != (print v_int != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int < (setup)
+PASS: gdb.base/exprs.exp: print signed int < (print v_int < 0)
+PASS: gdb.base/exprs.exp: print signed int < (print v_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int > (setup)
+PASS: gdb.base/exprs.exp: print signed int > (print v_int > 0)
+PASS: gdb.base/exprs.exp: print signed int > (print v_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int == (minus) (print v_int == 0)
+PASS: gdb.base/exprs.exp: print signed int == (minus) (print v_int == -1)
+PASS: gdb.base/exprs.exp: print signed int != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int != (minus) (print v_int != 0)
+PASS: gdb.base/exprs.exp: print signed int != (minus) (print v_int != -1)
+PASS: gdb.base/exprs.exp: print signed int < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int < (minus) (print v_int < 0)
+PASS: gdb.base/exprs.exp: print signed int < (minus) (print v_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int > (minus) (print v_int > 0)
+PASS: gdb.base/exprs.exp: print signed int > (minus) (print v_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int == (setup)
+PASS: gdb.base/exprs.exp: print signed signed int == (print v_signed_int == 0)
+PASS: gdb.base/exprs.exp: print signed signed int == (print v_signed_int == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int != (setup)
+PASS: gdb.base/exprs.exp: print signed signed int != (print v_signed_int != 0)
+PASS: gdb.base/exprs.exp: print signed signed int != (print v_signed_int != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int < (setup)
+PASS: gdb.base/exprs.exp: print signed signed int < (print v_signed_int < 0)
+PASS: gdb.base/exprs.exp: print signed signed int < (print v_signed_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int > (setup)
+PASS: gdb.base/exprs.exp: print signed signed int > (print v_signed_int > 0)
+PASS: gdb.base/exprs.exp: print signed signed int > (print v_signed_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int == (minus) (print v_signed_int == 0)
+PASS: gdb.base/exprs.exp: print signed signed int == (minus) (print v_signed_int == -1)
+PASS: gdb.base/exprs.exp: print signed signed int != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int != (minus) (print v_signed_int != 0)
+PASS: gdb.base/exprs.exp: print signed signed int != (minus) (print v_signed_int != -1)
+PASS: gdb.base/exprs.exp: print signed signed int < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int < (minus) (print v_signed_int < 0)
+PASS: gdb.base/exprs.exp: print signed signed int < (minus) (print v_signed_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int > (minus) (print v_signed_int > 0)
+PASS: gdb.base/exprs.exp: print signed signed int > (minus) (print v_signed_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int == (setup)
+PASS: gdb.base/exprs.exp: print unsigned int == (print v_unsigned_int == 0)
+PASS: gdb.base/exprs.exp: print unsigned int == (print v_unsigned_int == 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int != (setup)
+PASS: gdb.base/exprs.exp: print unsigned int != (print v_unsigned_int != 0)
+PASS: gdb.base/exprs.exp: print unsigned int != (print v_unsigned_int != 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int < (setup)
+PASS: gdb.base/exprs.exp: print unsigned int < (print v_unsigned_int < 0)
+PASS: gdb.base/exprs.exp: print unsigned int < (print v_unsigned_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int > (setup)
+PASS: gdb.base/exprs.exp: print unsigned int > (print v_unsigned_int > 0)
+PASS: gdb.base/exprs.exp: print unsigned int > (print v_unsigned_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (print v_unsigned_int == 0)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (print v_unsigned_int == ~0)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (print v_unsigned_int == (unsigned int)~0)
+PASS: gdb.base/exprs.exp: print unsigned int != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int != (~0) (print v_unsigned_int != 0)
+PASS: gdb.base/exprs.exp: print unsigned int != (~0) (print v_unsigned_int != (unsigned int)~0)
+PASS: gdb.base/exprs.exp: print unsigned int < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int < (~0) (print v_unsigned_int < 0)
+PASS: gdb.base/exprs.exp: print unsigned int < (~0) (print v_unsigned_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int > (~0) (print v_unsigned_int > 0)
+PASS: gdb.base/exprs.exp: print unsigned int > (~0) (print v_unsigned_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long == (setup)
+PASS: gdb.base/exprs.exp: print signed long == (print v_long == 0)
+PASS: gdb.base/exprs.exp: print signed long == (print v_long == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long != (setup)
+PASS: gdb.base/exprs.exp: print signed long != (print v_long != 0)
+PASS: gdb.base/exprs.exp: print signed long != (print v_long != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long < (setup)
+PASS: gdb.base/exprs.exp: print signed long < (print v_long < 0)
+PASS: gdb.base/exprs.exp: print signed long < (print v_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long > (setup)
+PASS: gdb.base/exprs.exp: print signed long > (print v_long > 0)
+PASS: gdb.base/exprs.exp: print signed long > (print v_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long == (minus) (print v_long == 0)
+PASS: gdb.base/exprs.exp: print signed long == (minus) (print v_long == -1)
+PASS: gdb.base/exprs.exp: print signed long != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long != (minus) (print v_long != 0)
+PASS: gdb.base/exprs.exp: print signed long != (minus) (print v_long != -1)
+PASS: gdb.base/exprs.exp: print signed long < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long < (minus) (print v_long < 0)
+PASS: gdb.base/exprs.exp: print signed long < (minus) (print v_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long > (minus) (print v_long > 0)
+PASS: gdb.base/exprs.exp: print signed long > (minus) (print v_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long == (setup)
+PASS: gdb.base/exprs.exp: print signed signed long == (print v_signed_long == 0)
+PASS: gdb.base/exprs.exp: print signed signed long == (print v_signed_long == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long != (setup)
+PASS: gdb.base/exprs.exp: print signed signed long != (print v_signed_long != 0)
+PASS: gdb.base/exprs.exp: print signed signed long != (print v_signed_long != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long < (setup)
+PASS: gdb.base/exprs.exp: print signed signed long < (print v_signed_long < 0)
+PASS: gdb.base/exprs.exp: print signed signed long < (print v_signed_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long > (setup)
+PASS: gdb.base/exprs.exp: print signed signed long > (print v_signed_long > 0)
+PASS: gdb.base/exprs.exp: print signed signed long > (print v_signed_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long == (minus) (print v_signed_long == 0)
+PASS: gdb.base/exprs.exp: print signed signed long == (minus) (print v_signed_long == -1)
+PASS: gdb.base/exprs.exp: print signed signed long != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long != (minus) (print v_signed_long != 0)
+PASS: gdb.base/exprs.exp: print signed signed long != (minus) (print v_signed_long != -1)
+PASS: gdb.base/exprs.exp: print signed signed long < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long < (minus) (print v_signed_long < 0)
+PASS: gdb.base/exprs.exp: print signed signed long < (minus) (print v_signed_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long > (minus) (print v_signed_long > 0)
+PASS: gdb.base/exprs.exp: print signed signed long > (minus) (print v_signed_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long == (setup)
+PASS: gdb.base/exprs.exp: print unsigned long == (print v_unsigned_long == 0)
+PASS: gdb.base/exprs.exp: print unsigned long == (print v_unsigned_long == 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long != (setup)
+PASS: gdb.base/exprs.exp: print unsigned long != (print v_unsigned_long != 0)
+PASS: gdb.base/exprs.exp: print unsigned long != (print v_unsigned_long != 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long < (setup)
+PASS: gdb.base/exprs.exp: print unsigned long < (print v_unsigned_long < 0)
+PASS: gdb.base/exprs.exp: print unsigned long < (print v_unsigned_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long > (setup)
+PASS: gdb.base/exprs.exp: print unsigned long > (print v_unsigned_long > 0)
+PASS: gdb.base/exprs.exp: print unsigned long > (print v_unsigned_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (print v_unsigned_long == 0)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (print v_unsigned_long == ~0)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (print v_unsigned_long == (unsigned long)~0)
+PASS: gdb.base/exprs.exp: print unsigned long != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long != (~0) (print v_unsigned_long != 0)
+PASS: gdb.base/exprs.exp: print unsigned long != (~0) (print v_unsigned_long != (unsigned long)~0)
+PASS: gdb.base/exprs.exp: print unsigned long < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long < (~0) (print v_unsigned_long < 0)
+PASS: gdb.base/exprs.exp: print unsigned long < (~0) (print v_unsigned_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long > (~0) (print v_unsigned_long > 0)
+PASS: gdb.base/exprs.exp: print unsigned long > (~0) (print v_unsigned_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_char (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_char (print (void*)v_signed_char)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_short (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_short (print (void*)v_signed_short)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_int (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_int (print (void*)v_signed_int)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_long (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_long (print (void*)v_signed_long)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_char (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_char (print (void*)v_unsigned_char)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_short (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_short (print (void*)v_unsigned_short)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_int (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_int (print (void*)v_unsigned_int)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_long (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_long (print (void*)v_unsigned_long)
+PASS: gdb.base/exprs.exp: sizeof (long long) > sizeof (long) (true)
+PASS: gdb.base/exprs.exp: truncate (void*) 0x00000000ffffffff + 1
+PASS: gdb.base/exprs.exp: truncate (void*) 0xffffffff00000000 - 1
+PASS: gdb.base/exprs.exp: \$[0-9]* = "xy" (setup)
+PASS: gdb.base/exprs.exp: \$[0-9]* = "xyz" (setup)
+PASS: gdb.base/exprs.exp: \$[0-9]* = red (setup)
+PASS: gdb.base/exprs.exp: set output-radix 8
+PASS: gdb.base/exprs.exp: \$[0-9]* = red (setup)
+PASS: gdb.base/exprs.exp: \$[0-9]* = 0 (setup)
+PASS: gdb.base/exprs.exp: set output-radix 10
+PASS: gdb.base/exprs.exp: set variable v_int = 1
+PASS: gdb.base/exprs.exp: print v_int++
+PASS: gdb.base/exprs.exp: print ++v_int
+PASS: gdb.base/exprs.exp: print v_int--
+PASS: gdb.base/exprs.exp: print --v_int
+PASS: gdb.base/exprs.exp: print v_int++ = 5
+PASS: gdb.base/exprs.exp: print v_int-- = 5
+PASS: gdb.base/exprs.exp: print v_int_array_init
+PASS: gdb.base/exprs.exp: print *v_int_array_init@1
+PASS: gdb.base/exprs.exp: print *v_int_array_init@2
+PASS: gdb.base/exprs.exp: print v_int_array_init[0]@1
+PASS: gdb.base/exprs.exp: print v_int_array_init[0]@2
+PASS: gdb.base/exprs.exp: print v_int_array_init[1]@1
+PASS: gdb.base/exprs.exp: set variable v_short_array[0] = 42
+PASS: gdb.base/exprs.exp: print {short} v_short_array
+PASS: gdb.base/exprs.exp: print (void) v_int_pointer
+PASS: gdb.base/exprs.exp: print & (void) v_char
+Running ./gdb.base/fileio.exp ...
+Running ./gdb.base/find.exp ...
+PASS: gdb.base/find.exp: breakpoint function in file
+PASS: gdb.base/find.exp: run until function breakpoint
+PASS: gdb.base/find.exp: find string pattern
+PASS: gdb.base/find.exp: pattern not found at end of range
+PASS: gdb.base/find.exp: pattern found at end of range
+PASS: gdb.base/find.exp: max-count
+PASS: gdb.base/find.exp: $_
+PASS: gdb.base/find.exp: $numfound
+PASS: gdb.base/find.exp: size,max-count, /1b
+PASS: gdb.base/find.exp: size,max-count, /b1
+PASS: gdb.base/find.exp: size,max-count, /b/1
+PASS: gdb.base/find.exp: size,max-count, /1/b
+PASS: gdb.base/find.exp: find byte pattern with end address
+PASS: gdb.base/find.exp: find 16-bit pattern
+PASS: gdb.base/find.exp: find 16-bit pattern
+PASS: gdb.base/find.exp: find 32-bit pattern
+PASS: gdb.base/find.exp: find 32-bit pattern
+PASS: gdb.base/find.exp: find 64-bit pattern
+PASS: gdb.base/find.exp: find 64-bit pattern
+PASS: gdb.base/find.exp: find mixed-sized pattern
+PASS: gdb.base/find.exp: search spanning large range
+PASS: gdb.base/find.exp: find int64_search_buf, +64/8*100, int64_search_buf
+Running ./gdb.base/find-unmapped.exp ...
+Running ./gdb.base/finish.exp ...
+PASS: gdb.base/finish.exp: set break on void_func
+PASS: gdb.base/finish.exp: continue to void_func
+PASS: gdb.base/finish.exp: finish from void_func
+PASS: gdb.base/finish.exp: set break on char_func
+PASS: gdb.base/finish.exp: continue to char_func
+PASS: gdb.base/finish.exp: finish from char_func
+PASS: gdb.base/finish.exp: set break on short_func
+PASS: gdb.base/finish.exp: continue to short_func
+PASS: gdb.base/finish.exp: finish from short_func
+PASS: gdb.base/finish.exp: set break on int_func
+PASS: gdb.base/finish.exp: continue to int_func
+PASS: gdb.base/finish.exp: finish from int_func
+PASS: gdb.base/finish.exp: set break on long_func
+PASS: gdb.base/finish.exp: continue to long_func
+PASS: gdb.base/finish.exp: finish from long_func
+PASS: gdb.base/finish.exp: set break on long_long_func
+PASS: gdb.base/finish.exp: continue to long_long_func
+PASS: gdb.base/finish.exp: finish from long_long_func
+PASS: gdb.base/finish.exp: set break on float_func
+PASS: gdb.base/finish.exp: continue to float_func
+PASS: gdb.base/finish.exp: finish from float_func
+PASS: gdb.base/finish.exp: set break on double_func
+PASS: gdb.base/finish.exp: continue to double_func
+PASS: gdb.base/finish.exp: finish from double_func
+PASS: gdb.base/finish.exp: Testing the "fin" abbreviation for "finish"
+Running ./gdb.base/fixsection.exp ...
+PASS: gdb.base/fixsection.exp: breakpoint at static_fun
+Running ./gdb.base/float.exp ...
+PASS: gdb.base/float.exp: info float
+PASS: gdb.base/float.exp: step
+PASS: gdb.base/float.exp: finish
+Running ./gdb.base/foll-exec.exp ...
+Running ./gdb.base/foll-fork.exp ...
+Running ./gdb.base/foll-vfork.exp ...
+Running ./gdb.base/fortran-sym-case.exp ...
+PASS: gdb.base/fortran-sym-case.exp: set language fortran
+PASS: gdb.base/fortran-sym-case.exp: frame
+Running ./gdb.base/frame-args.exp ...
+PASS: gdb.base/frame-args.exp: set print frame-arguments all
+PASS: gdb.base/frame-args.exp: frame 1 with print frame-arguments set to all
+PASS: gdb.base/frame-args.exp: set print frame-arguments scalars
+PASS: gdb.base/frame-args.exp: frame 1 with print frame-arguments set to scalars
+PASS: gdb.base/frame-args.exp: set print frame-arguments none
+PASS: gdb.base/frame-args.exp: frame 1 with print frame-arguments set to none
+Running ./gdb.base/freebpcmd.exp ...
+PASS: gdb.base/freebpcmd.exp: set breakpoint
+PASS: gdb.base/freebpcmd.exp: send breakpoint commands
+PASS: gdb.base/freebpcmd.exp: run program with breakpoint commands
+Running ./gdb.base/fullname.exp ...
+PASS: gdb.base/fullname.exp: set breakpoint by full path before loading symbols - built absolute
+PASS: gdb.base/fullname.exp: set breakpoint at main - built absolute
+PASS: gdb.base/fullname.exp: set breakpoint by full path after loading symbols - built absolute
+PASS: gdb.base/fullname.exp: set breakpoint by full path before loading symbols - built relative
+PASS: gdb.base/fullname.exp: set breakpoint at main - built relative
+PASS: gdb.base/fullname.exp: set breakpoint by full path after loading symbols - built relative
+PASS: gdb.base/fullname.exp: set breakpoint by full path before loading symbols - built other
+PASS: gdb.base/fullname.exp: set breakpoint at main - built other
+PASS: gdb.base/fullname.exp: set breakpoint by full path after loading symbols - built other
+Running ./gdb.base/fullpath-expand.exp ...
+PASS: gdb.base/fullpath-expand.exp: rbreak XXX/fullpath-expand-func.c:func
+PASS: gdb.base/fullpath-expand.exp: list func
+PASS: gdb.base/fullpath-expand.exp: info source
+Running ./gdb.base/funcargs.exp ...
+PASS: gdb.base/funcargs.exp: set print frame-arguments all
+PASS: gdb.base/funcargs.exp: run to call0a
+PASS: gdb.base/funcargs.exp: print c after run to call0a
+PASS: gdb.base/funcargs.exp: print s after run to call0a
+PASS: gdb.base/funcargs.exp: print i after run to call0a
+PASS: gdb.base/funcargs.exp: print l after run to call0a
+PASS: gdb.base/funcargs.exp: continue to call0b
+PASS: gdb.base/funcargs.exp: continue to call0c
+PASS: gdb.base/funcargs.exp: continue to call0d
+PASS: gdb.base/funcargs.exp: continue to call0e
+PASS: gdb.base/funcargs.exp: run to call1a
+PASS: gdb.base/funcargs.exp: print uc
+PASS: gdb.base/funcargs.exp: print us
+PASS: gdb.base/funcargs.exp: print ui
+PASS: gdb.base/funcargs.exp: print ul
+PASS: gdb.base/funcargs.exp: continue to call1b
+PASS: gdb.base/funcargs.exp: continue to call1c
+PASS: gdb.base/funcargs.exp: continue to call1d
+PASS: gdb.base/funcargs.exp: continue to call1e
+PASS: gdb.base/funcargs.exp: run to call2a
+PASS: gdb.base/funcargs.exp: print c after run to call2a
+PASS: gdb.base/funcargs.exp: print f1 after run to call2a
+PASS: gdb.base/funcargs.exp: print s after run to call2a
+PASS: gdb.base/funcargs.exp: print d1 after run to call2a
+PASS: gdb.base/funcargs.exp: print i after run to call2a
+PASS: gdb.base/funcargs.exp: print f2 after run to call2a
+PASS: gdb.base/funcargs.exp: print l after run to call2a
+PASS: gdb.base/funcargs.exp: print d2 after run to call2a
+PASS: gdb.base/funcargs.exp: continue to call2b
+PASS: gdb.base/funcargs.exp: continue to call2c
+PASS: gdb.base/funcargs.exp: continue to call2d
+PASS: gdb.base/funcargs.exp: continue to call2e
+PASS: gdb.base/funcargs.exp: continue to call2f
+PASS: gdb.base/funcargs.exp: continue to call2g
+PASS: gdb.base/funcargs.exp: continue to call2h
+PASS: gdb.base/funcargs.exp: continue to call2i
+PASS: gdb.base/funcargs.exp: run to call2a
+PASS: gdb.base/funcargs.exp: continue to callcb
+PASS: gdb.base/funcargs.exp: continue to callcc
+PASS: gdb.base/funcargs.exp: continue to callcd
+PASS: gdb.base/funcargs.exp: continue to callce
+PASS: gdb.base/funcargs.exp: continue to callcf
+PASS: gdb.base/funcargs.exp: run to callc1a
+PASS: gdb.base/funcargs.exp: continue to callc1b
+PASS: gdb.base/funcargs.exp: run to callc2a
+PASS: gdb.base/funcargs.exp: continue to callc2b
+PASS: gdb.base/funcargs.exp: run to call3a
+PASS: gdb.base/funcargs.exp: print *cp
+PASS: gdb.base/funcargs.exp: print *sp
+PASS: gdb.base/funcargs.exp: print *ip
+PASS: gdb.base/funcargs.exp: print *lp
+PASS: gdb.base/funcargs.exp: continue to call3b
+PASS: gdb.base/funcargs.exp: print *ucp
+PASS: gdb.base/funcargs.exp: print *usp
+PASS: gdb.base/funcargs.exp: print *uip
+PASS: gdb.base/funcargs.exp: print *ulp
+PASS: gdb.base/funcargs.exp: continue to call3c
+PASS: gdb.base/funcargs.exp: print *fp
+PASS: gdb.base/funcargs.exp: print *dp
+PASS: gdb.base/funcargs.exp: run to call4a
+PASS: gdb.base/funcargs.exp: print *stp
+PASS: gdb.base/funcargs.exp: continue to call4b
+PASS: gdb.base/funcargs.exp: print *unp (sizeof long == sizeof int)
+PASS: gdb.base/funcargs.exp: locate actual args, structs/unions passed by reference
+PASS: gdb.base/funcargs.exp: run to call5a
+PASS: gdb.base/funcargs.exp: print st
+PASS: gdb.base/funcargs.exp: continue to call5b (sizeof long == sizeof int)
+PASS: gdb.base/funcargs.exp: print un (sizeof long == sizeof int)
+PASS: gdb.base/funcargs.exp: run to call6a
+PASS: gdb.base/funcargs.exp: backtrace from call6a
+PASS: gdb.base/funcargs.exp: continue to call6b
+PASS: gdb.base/funcargs.exp: backtrace from call6b
+PASS: gdb.base/funcargs.exp: continue to call6c
+PASS: gdb.base/funcargs.exp: backtrace from call6c
+PASS: gdb.base/funcargs.exp: continue to call6d
+PASS: gdb.base/funcargs.exp: backtrace from call6d
+PASS: gdb.base/funcargs.exp: continue to call6e
+PASS: gdb.base/funcargs.exp: backtrace from call6e
+PASS: gdb.base/funcargs.exp: continue to call6f
+PASS: gdb.base/funcargs.exp: backtrace from call6f
+PASS: gdb.base/funcargs.exp: continue to call6g
+PASS: gdb.base/funcargs.exp: backtrace from call6g
+PASS: gdb.base/funcargs.exp: continue to call6h
+PASS: gdb.base/funcargs.exp: backtrace from call6h
+PASS: gdb.base/funcargs.exp: continue to call6i
+PASS: gdb.base/funcargs.exp: backtrace from call6i
+PASS: gdb.base/funcargs.exp: continue to call6j
+PASS: gdb.base/funcargs.exp: backtrace from call6j
+PASS: gdb.base/funcargs.exp: continue to call6k
+PASS: gdb.base/funcargs.exp: backtrace from call6k
+PASS: gdb.base/funcargs.exp: run to call7a
+PASS: gdb.base/funcargs.exp: backtrace from call7a
+PASS: gdb.base/funcargs.exp: continue to call7b
+PASS: gdb.base/funcargs.exp: backtrace from call7b
+PASS: gdb.base/funcargs.exp: continue to call7c
+PASS: gdb.base/funcargs.exp: backtrace from call7c
+PASS: gdb.base/funcargs.exp: continue to call7d
+PASS: gdb.base/funcargs.exp: backtrace from call7d
+PASS: gdb.base/funcargs.exp: continue to call7e
+PASS: gdb.base/funcargs.exp: backtrace from call7e
+PASS: gdb.base/funcargs.exp: continue to call7f
+PASS: gdb.base/funcargs.exp: backtrace from call7f
+PASS: gdb.base/funcargs.exp: continue to call7g
+PASS: gdb.base/funcargs.exp: backtrace from call7g
+PASS: gdb.base/funcargs.exp: continue to call7h
+PASS: gdb.base/funcargs.exp: backtrace from call7h
+PASS: gdb.base/funcargs.exp: continue to call7i
+PASS: gdb.base/funcargs.exp: backtrace from call7i
+PASS: gdb.base/funcargs.exp: continue to call7j
+PASS: gdb.base/funcargs.exp: backtrace from call7j
+PASS: gdb.base/funcargs.exp: continue to call7k
+PASS: gdb.base/funcargs.exp: backtrace from call7k
+PASS: gdb.base/funcargs.exp: run to hitbottom
+PASS: gdb.base/funcargs.exp: recursive passing of structs by value
+PASS: gdb.base/funcargs.exp: print c after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print s after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print i after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print l after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: next in localvars_after_alloca()
+PASS: gdb.base/funcargs.exp: print c in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print s in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print i in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print l in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: backtrace after alloca
+PASS: gdb.base/funcargs.exp: print c in call_after_alloca
+PASS: gdb.base/funcargs.exp: print s in call_after_alloca
+PASS: gdb.base/funcargs.exp: print i in call_after_alloca
+PASS: gdb.base/funcargs.exp: print l in call_after_alloca
+PASS: gdb.base/funcargs.exp: backtrace from call_after_alloca_subr
+PASS: gdb.base/funcargs.exp: continue to call0a
+PASS: gdb.base/funcargs.exp: print c in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: print s in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: print i in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: print l in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: backtrace in indirectly called function
+PASS: gdb.base/funcargs.exp: finish from indirectly called function
+PASS: gdb.base/funcargs.exp: stepping into indirectly called function
+PASS: gdb.base/funcargs.exp: finish from marker_call_with_trampolines
+PASS: gdb.base/funcargs.exp: stepping into function called with trampolines
+PASS: gdb.base/funcargs.exp: backtrace through call with trampolines
+PASS: gdb.base/funcargs.exp: stepping back to main from function called with trampolines
+Running ./gdb.base/gcore-buffer-overflow.exp ...
+PASS: gdb.base/gcore-buffer-overflow.exp: help gcore
+PASS: gdb.base/gcore-buffer-overflow.exp: Set buffer exceeding arguments
+PASS: gdb.base/gcore-buffer-overflow.exp: save a corefile
+Running ./gdb.base/gcore.exp ...
+PASS: gdb.base/gcore.exp: help gcore
+PASS: gdb.base/gcore.exp: set breakpoint at terminal_func
+PASS: gdb.base/gcore.exp: continue to terminal_func
+PASS: gdb.base/gcore.exp: save a corefile
+FAIL: gdb.base/gcore.exp: re-load generated corefile (bad file format)
+Running ./gdb.base/gcore-relro.exp ...
+PASS: gdb.base/gcore-relro.exp: help gcore
+PASS: gdb.base/gcore-relro.exp: save a corefile
+FAIL: gdb.base/gcore-relro.exp: re-load generated corefile
+FAIL: gdb.base/gcore-relro.exp: library got loaded
+Running ./gdb.base/gdb1056.exp ...
+PASS: gdb.base/gdb1056.exp: print 1/0
+PASS: gdb.base/gdb1056.exp: Test unsigned division by zero
+Running ./gdb.base/gdb1090.exp ...
+PASS: gdb.base/gdb1090.exp: continue to breakpoint: break-here
+PASS: gdb.base/gdb1090.exp: print s24
+Running ./gdb.base/gdb11530.exp ...
+PASS: gdb.base/gdb11530.exp: print a.i
+PASS: gdb.base/gdb11530.exp: print sizeof (a.i)
+PASS: gdb.base/gdb11530.exp: print sizeof (a.i) == sizeof (int)
+Running ./gdb.base/gdb11531.exp ...
+PASS: gdb.base/gdb11531.exp: Set watchpoint
+PASS: gdb.base/gdb11531.exp: watchpoint variable triggers at next
+PASS: gdb.base/gdb11531.exp: watchpoint variable triggers at continue
+Running ./gdb.base/gdb1250.exp ...
+PASS: gdb.base/gdb1250.exp: backtrace from abort
+Running ./gdb.base/gdb1555.exp ...
+PASS: gdb.base/gdb1555.exp: Step into shared lib function
+PASS: gdb.base/gdb1555.exp: Next while in a shared lib function
+Running ./gdb.base/gdb1821.exp ...
+PASS: gdb.base/gdb1821.exp: print /x bar
+Running ./gdb.base/gdbindex-stabs.exp ...
+PASS: gdb.base/gdbindex-stabs.exp: list stabs_function
+Running ./gdb.base/gdbvars.exp ...
+PASS: gdb.base/gdbvars.exp: set print sevenbit-strings
+PASS: gdb.base/gdbvars.exp: Set value-history[1] using $1
+PASS: gdb.base/gdbvars.exp: Set value-history[2] using $2
+PASS: gdb.base/gdbvars.exp: Set value-history[3] using $3
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX-1] using inplicit index $$
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX-1] again using implicit index $$
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX] using implicit index $
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX-2] using explicit index $$2
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX] using explicit index $0
+PASS: gdb.base/gdbvars.exp: print 108
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX] using explicit index $$0
+PASS: gdb.base/gdbvars.exp: Print value-history[1] using explicit index $1
+PASS: gdb.base/gdbvars.exp: Print value-history[2] using explicit index $2
+PASS: gdb.base/gdbvars.exp: Print value-history[3] using explicit index $3
+PASS: gdb.base/gdbvars.exp: Print (value-history[MAX] - 3) using implicit index $
+PASS: gdb.base/gdbvars.exp: Use value-history element in arithmetic expression
+PASS: gdb.base/gdbvars.exp: Set a new convenience variable
+PASS: gdb.base/gdbvars.exp: Print contents of new convenience variable
+PASS: gdb.base/gdbvars.exp: Set convenience variable to a new value
+PASS: gdb.base/gdbvars.exp: Print new contents of convenience variable
+PASS: gdb.base/gdbvars.exp: Set convenience variable $_
+PASS: gdb.base/gdbvars.exp: Print contents of convenience variable $_
+PASS: gdb.base/gdbvars.exp: Use convenience variable in arithmetic expression
+PASS: gdb.base/gdbvars.exp: Use convenience variable assignment in arithmetic expression
+PASS: gdb.base/gdbvars.exp: Print contents of uninitialized convenience variable
+PASS: gdb.base/gdbvars.exp: Set a new convenience variable to a program variable
+PASS: gdb.base/gdbvars.exp: Print contents of new convenience variable of program variable
+Running ./gdb.base/gnu-debugdata.exp ...
+PASS: gdb.base/gnu-debugdata.exp: nm -D - invoke i686-pc-linux-gnu-nm
+PASS: gdb.base/gnu-debugdata.exp: nm -D - invoke awk
+PASS: gdb.base/gnu-debugdata.exp: nm -D - invoke sort
+PASS: gdb.base/gnu-debugdata.exp: nm - invoke i686-pc-linux-gnu-nm
+PASS: gdb.base/gnu-debugdata.exp: nm - invoke awk
+PASS: gdb.base/gnu-debugdata.exp: nm - invoke sort
+PASS: gdb.base/gnu-debugdata.exp: comm
+PASS: gdb.base/gnu-debugdata.exp: objcopy 1
+PASS: gdb.base/gnu-debugdata.exp: strip
+PASS: gdb.base/gnu-debugdata.exp: copydebug
+PASS: gdb.base/gnu-debugdata.exp: addlink
+PASS: gdb.base/gnu-debugdata.exp: xz
+PASS: gdb.base/gnu-debugdata.exp: objcopy 2
+PASS: gdb.base/gnu-debugdata.exp: no symtab
+PASS: gdb.base/gnu-debugdata.exp: have symtab
+PASS: gdb.base/gnu-debugdata.exp: unload MiniDebugInfo
+Running ./gdb.base/gnu-ifunc.exp ...
+PASS: gdb.base/gnu-ifunc.exp: continue to breakpoint: break-at-call
+FAIL: gdb.base/gnu-ifunc.exp: p gnu_ifunc (3)
+FAIL: gdb.base/gnu-ifunc.exp: step
+FAIL: gdb.base/gnu-ifunc.exp: continue to break-at-nextcall
+FAIL: gdb.base/gnu-ifunc.exp: continue to breakpoint: nextcall gnu_ifunc
+FAIL: gdb.base/gnu-ifunc.exp: nextcall gnu_ifunc skipped
+PASS: gdb.base/gnu-ifunc.exp: p gnu_ifunc executing
+PASS: gdb.base/gnu-ifunc.exp: info sym gnu_ifunc executing
+PASS: gdb.base/gnu-ifunc.exp: info addr gnu_ifunc
+PASS: gdb.base/gnu-ifunc.exp: info sym <gnu_ifunc-address>
+PASS: gdb.base/gnu-ifunc.exp: static gnu_ifunc
+Running ./gdb.base/gnu_vector.exp ...
+PASS: gdb.base/gnu_vector.exp: print c4
+PASS: gdb.base/gnu_vector.exp: print c4[2]
+PASS: gdb.base/gnu_vector.exp: print i4a
+PASS: gdb.base/gnu_vector.exp: print i4b
+PASS: gdb.base/gnu_vector.exp: print i4a + i4b
+PASS: gdb.base/gnu_vector.exp: print i4a - i4b
+PASS: gdb.base/gnu_vector.exp: print i4a * i4b
+PASS: gdb.base/gnu_vector.exp: print i4a / i4b
+PASS: gdb.base/gnu_vector.exp: print i4a % i4b
+PASS: gdb.base/gnu_vector.exp: print i4a++
+PASS: gdb.base/gnu_vector.exp: print ++i4a
+PASS: gdb.base/gnu_vector.exp: print i4a--
+PASS: gdb.base/gnu_vector.exp: print --i4a
+PASS: gdb.base/gnu_vector.exp: print +i4a
+PASS: gdb.base/gnu_vector.exp: print -i4a
+PASS: gdb.base/gnu_vector.exp: print i4a & i4b
+PASS: gdb.base/gnu_vector.exp: print i4a | i4b
+PASS: gdb.base/gnu_vector.exp: print i4a ^ i4b
+PASS: gdb.base/gnu_vector.exp: print ~i4a
+PASS: gdb.base/gnu_vector.exp: print i4a << i4b
+PASS: gdb.base/gnu_vector.exp: print i4a >> i4b
+PASS: gdb.base/gnu_vector.exp: print f4a
+PASS: gdb.base/gnu_vector.exp: print f4b
+PASS: gdb.base/gnu_vector.exp: print f4a + f4b
+PASS: gdb.base/gnu_vector.exp: print f4a - f4b
+PASS: gdb.base/gnu_vector.exp: print f4a * f4b
+PASS: gdb.base/gnu_vector.exp: print f4a / f4b
+PASS: gdb.base/gnu_vector.exp: print +f4a
+PASS: gdb.base/gnu_vector.exp: print -f4a
+PASS: gdb.base/gnu_vector.exp: print (char4) 0x01010101
+PASS: gdb.base/gnu_vector.exp: print (char4) ia
+PASS: gdb.base/gnu_vector.exp: print (int2) lla
+PASS: gdb.base/gnu_vector.exp: print (int2) 1
+PASS: gdb.base/gnu_vector.exp: print (longlong2) 2
+PASS: gdb.base/gnu_vector.exp: print (float2) 3
+PASS: gdb.base/gnu_vector.exp: print (double2) 4
+PASS: gdb.base/gnu_vector.exp: print (uint4) ia
+PASS: gdb.base/gnu_vector.exp: print (int4) -3
+PASS: gdb.base/gnu_vector.exp: print (float4) 4
+PASS: gdb.base/gnu_vector.exp: print i4b = ia
+PASS: gdb.base/gnu_vector.exp: print i4a = 3
+PASS: gdb.base/gnu_vector.exp: print f4a = fb
+PASS: gdb.base/gnu_vector.exp: print f4b = 2
+PASS: gdb.base/gnu_vector.exp: print c4 + lla
+PASS: gdb.base/gnu_vector.exp: print i4a + lla
+PASS: gdb.base/gnu_vector.exp: print lla + c4
+PASS: gdb.base/gnu_vector.exp: print lla + i4a
+PASS: gdb.base/gnu_vector.exp: print c4 + ib
+PASS: gdb.base/gnu_vector.exp: print i4a + ib
+PASS: gdb.base/gnu_vector.exp: print i4a + 1
+PASS: gdb.base/gnu_vector.exp: print 1 + i4a
+PASS: gdb.base/gnu_vector.exp: print fa - f4b
+PASS: gdb.base/gnu_vector.exp: print 2 - f4b
+PASS: gdb.base/gnu_vector.exp: print f4a * fb
+PASS: gdb.base/gnu_vector.exp: print f4a * 1
+PASS: gdb.base/gnu_vector.exp: print ia / i4b
+PASS: gdb.base/gnu_vector.exp: print 2 / i4b
+PASS: gdb.base/gnu_vector.exp: print i4a % ib
+PASS: gdb.base/gnu_vector.exp: print i4a % 1
+PASS: gdb.base/gnu_vector.exp: print ia & i4b
+PASS: gdb.base/gnu_vector.exp: print 2 & i4b
+PASS: gdb.base/gnu_vector.exp: print i4a | ib
+PASS: gdb.base/gnu_vector.exp: print i4a | 1
+PASS: gdb.base/gnu_vector.exp: print ia ^ i4b
+PASS: gdb.base/gnu_vector.exp: print 2 ^ i4b
+PASS: gdb.base/gnu_vector.exp: print i4a << ib
+PASS: gdb.base/gnu_vector.exp: print i4a << 1
+PASS: gdb.base/gnu_vector.exp: print i4a >> ib
+PASS: gdb.base/gnu_vector.exp: print i4a >> 1
+PASS: gdb.base/gnu_vector.exp: print i4a = {2, 4, 8, 16}
+PASS: gdb.base/gnu_vector.exp: print i4a <<= ib
+PASS: gdb.base/gnu_vector.exp: print i4a + d2
+PASS: gdb.base/gnu_vector.exp: print d2 + i4a
+PASS: gdb.base/gnu_vector.exp: print f4a + ll2
+PASS: gdb.base/gnu_vector.exp: print ll2 + f4a
+PASS: gdb.base/gnu_vector.exp: print i2 + ll2
+PASS: gdb.base/gnu_vector.exp: print ll2 + i2
+PASS: gdb.base/gnu_vector.exp: print i4a + ll2
+PASS: gdb.base/gnu_vector.exp: print ll2 + i4a
+PASS: gdb.base/gnu_vector.exp: print f4a + d2
+PASS: gdb.base/gnu_vector.exp: print d2 + f4a
+PASS: gdb.base/gnu_vector.exp: print ui4 + i4a
+PASS: gdb.base/gnu_vector.exp: print i4a + ui4
+PASS: gdb.base/gnu_vector.exp: print i4a + i2
+PASS: gdb.base/gnu_vector.exp: print i2 + i4a
+PASS: gdb.base/gnu_vector.exp: print f4a + f2
+PASS: gdb.base/gnu_vector.exp: print f2 + f4a
+PASS: gdb.base/gnu_vector.exp: print (double2) f2
+PASS: gdb.base/gnu_vector.exp: print (int4) c4
+PASS: gdb.base/gnu_vector.exp: print (char4) i4a
+PASS: gdb.base/gnu_vector.exp: ptype c4
+PASS: gdb.base/gnu_vector.exp: ptype char4
+PASS: gdb.base/gnu_vector.exp: ptype i4a
+PASS: gdb.base/gnu_vector.exp: ptype int4
+PASS: gdb.base/gnu_vector.exp: ptype f4b
+PASS: gdb.base/gnu_vector.exp: ptype float4
+PASS: gdb.base/gnu_vector.exp: ptype union_with_vector_1
+PASS: gdb.base/gnu_vector.exp: ptype struct_with_vector_1
+Running ./gdb.base/hashline1.exp ...
+PASS: gdb.base/hashline1.exp: set breakpoint
+Running ./gdb.base/hashline2.exp ...
+PASS: gdb.base/hashline2.exp: set breakpoint
+Running ./gdb.base/hashline3.exp ...
+PASS: gdb.base/hashline3.exp: set breakpoint
+Running ./gdb.base/hbreak2.exp ...
+PASS: gdb.base/hbreak2.exp: hardware breakpoint support
+PASS: gdb.base/hbreak2.exp: hardware breakpoint insertion
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function
+PASS: gdb.base/hbreak2.exp: hardware breakpoint quoted function
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function in file
+PASS: gdb.base/hbreak2.exp: use `list' to establish default source file
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number in file
+PASS: gdb.base/hbreak2.exp: hardware breakpoint at start of multi line if conditional
+PASS: gdb.base/hbreak2.exp: hardware breakpoint at start of multi line while conditional
+PASS: gdb.base/hbreak2.exp: hardware breakpoint info
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function (2)
+PASS: gdb.base/hbreak2.exp: run until function breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number (2)
+PASS: gdb.base/hbreak2.exp: run until breakpoint set at a line number
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function in file (2)
+PASS: gdb.base/hbreak2.exp: run until file:function(6) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(5) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(4) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(3) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(2) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(1) breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint quoted function (2)
+PASS: gdb.base/hbreak2.exp: run until quoted breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number in file (2)
+PASS: gdb.base/hbreak2.exp: run until file:linenum breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint offset +1
+PASS: gdb.base/hbreak2.exp: step onto hardware breakpoint
+PASS: gdb.base/hbreak2.exp: setting hardware breakpoint at }
+PASS: gdb.base/hbreak2.exp: continue to hardware breakpoint at }
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint function
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint function in file
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number #1
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number #2
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number in file #1
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number in file #2
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint info
+PASS: gdb.base/hbreak2.exp: set breakpoint pending off
+PASS: gdb.base/hbreak2.exp: hardware break on non-existent source line
+PASS: gdb.base/hbreak2.exp: until bp_location1
+PASS: gdb.base/hbreak2.exp: hardware break on default location
+PASS: gdb.base/hbreak2.exp: set to-be-silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: set silent break bp_location1
+PASS: gdb.base/hbreak2.exp: info silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: hit silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: stopped for silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: thread-specific hardware breakpoint on non-existent thread disallowed
+PASS: gdb.base/hbreak2.exp: thread-specific hardware breakpoint on bogus thread ID disallowed
+PASS: gdb.base/hbreak2.exp: hardware breakpoint with trailing garbage disallowed
+PASS: gdb.base/hbreak2.exp: step over hardware breakpoint
+PASS: gdb.base/hbreak2.exp: clear line has no breakpoint disallowed
+PASS: gdb.base/hbreak2.exp: clear current line has no breakpoint disallowed
+PASS: gdb.base/hbreak2.exp: set convenience variable $foo to bp_location11
+PASS: gdb.base/hbreak2.exp: set hardware breakpoint via convenience variable
+PASS: gdb.base/hbreak2.exp: set convenience variable $foo to 81.5
+PASS: gdb.base/hbreak2.exp: set hardware breakpoint via non-integer convenience variable disallowed
+PASS: gdb.base/hbreak2.exp: set hardware breakpoint on to-be-called function
+PASS: gdb.base/hbreak2.exp: hit hardware breakpoint on called function
+PASS: gdb.base/hbreak2.exp: backtrace while in called function
+PASS: gdb.base/hbreak2.exp: finish from called function
+PASS: gdb.base/hbreak2.exp: hardware break at factorial
+PASS: gdb.base/hbreak2.exp: kill program
+PASS: gdb.base/hbreak2.exp: run to factorial(6)
+PASS: gdb.base/hbreak2.exp: continue to factorial(5)
+PASS: gdb.base/hbreak2.exp: backtrace from factorial(5)
+PASS: gdb.base/hbreak2.exp: next to recursive call
+PASS: gdb.base/hbreak2.exp: next over recursive call
+PASS: gdb.base/hbreak2.exp: backtrace from factorial(5.1)
+PASS: gdb.base/hbreak2.exp: continue until exit at recursive next test
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function, optimized file
+PASS: gdb.base/hbreak2.exp: run until hardware function breakpoint, optimized file (code motion)
+PASS: gdb.base/hbreak2.exp: hardware breakpoint small function, optimized file
+PASS: gdb.base/hbreak2.exp: run until hardware breakpoint set at small function, optimized file
+Running ./gdb.base/hbreak.exp ...
+Running ./gdb.base/help.exp ...
+PASS: gdb.base/help.exp: disable pagination
+PASS: gdb.base/help.exp: help aliases
+PASS: gdb.base/help.exp: help breakpoints
+PASS: gdb.base/help.exp: help data
+PASS: gdb.base/help.exp: help files
+PASS: gdb.base/help.exp: help internals
+PASS: gdb.base/help.exp: help obscure
+PASS: gdb.base/help.exp: help running
+PASS: gdb.base/help.exp: help stack
+PASS: gdb.base/help.exp: help status
+PASS: gdb.base/help.exp: help support
+PASS: gdb.base/help.exp: help tracepoints
+PASS: gdb.base/help.exp: help user-defined
+PASS: gdb.base/help.exp: help breakpoint "b" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "br" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "bre" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "brea" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "break" abbreviation
+PASS: gdb.base/help.exp: help backtrace "bt" abbreviation
+PASS: gdb.base/help.exp: help backtrace
+PASS: gdb.base/help.exp: help commands
+PASS: gdb.base/help.exp: help delete "d" abbreviation
+PASS: gdb.base/help.exp: help delete
+PASS: gdb.base/help.exp: help help "h" abbreviation
+PASS: gdb.base/help.exp: help help
+PASS: gdb.base/help.exp: help show copying
+PASS: gdb.base/help.exp: help show warranty
+PASS: gdb.base/help.exp: help show commands
+PASS: gdb.base/help.exp: help show confirm
+PASS: gdb.base/help.exp: help info bogus-gdb-command
+PASS: gdb.base/help.exp: help gotcha
+PASS: gdb.base/help.exp: apropos \(print[^ bsiedf\".-]\)
+PASS: gdb.base/help.exp: apropos handle signal
+PASS: gdb.base/help.exp: apropos apropos
+Running ./gdb.base/hook-stop-continue.exp ...
+PASS: gdb.base/hook-stop-continue.exp: breakpoint line number
+PASS: gdb.base/hook-stop-continue.exp: print $do_continue = 1
+PASS: gdb.base/hook-stop-continue.exp: define hook-stop command
+PASS: gdb.base/hook-stop-continue.exp: next triggering hook-stop
+PASS: gdb.base/hook-stop-continue.exp: next no hook-stop
+Running ./gdb.base/hook-stop-frame.exp ...
+PASS: gdb.base/hook-stop-frame.exp: breakpoint line number
+PASS: gdb.base/hook-stop-frame.exp: define hook-stop command
+PASS: gdb.base/hook-stop-frame.exp: hook-stop runs before frame print
+Running ./gdb.base/huge.exp ...
+PASS: gdb.base/huge.exp: print a very large data object
+Running ./gdb.base/ifelse.exp ...
+PASS: gdb.base/ifelse.exp: if 1 with empty body
+PASS: gdb.base/ifelse.exp: if 0 with empty body
+PASS: gdb.base/ifelse.exp: if true else false #1
+PASS: gdb.base/ifelse.exp: if 1 .. else with empty body
+PASS: gdb.base/ifelse.exp: if true else false #2
+PASS: gdb.base/ifelse.exp: if 0 .. else with empty body
+PASS: gdb.base/ifelse.exp: if true else false #3
+PASS: gdb.base/ifelse.exp: create define with empty else
+PASS: gdb.base/ifelse.exp: call original define
+PASS: gdb.base/ifelse.exp: replace define with if .. else with empty body
+PASS: gdb.base/ifelse.exp: call replacement define
+Running ./gdb.base/included.exp ...
+PASS: gdb.base/included.exp: set listsize 1
+PASS: gdb.base/included.exp: list main
+PASS: gdb.base/included.exp: list integer
+PASS: gdb.base/included.exp: ptype integer
+PASS: gdb.base/included.exp: info variables integer
+Running ./gdb.base/inferior-died.exp ...
+UNSUPPORTED: gdb.base/inferior-died.exp: inferior-died.exp
+Running ./gdb.base/infnan.exp ...
+PASS: gdb.base/infnan.exp: print a
+PASS: gdb.base/infnan.exp: print b
+Running ./gdb.base/info-fun.exp ...
+Running ./gdb.base/infoline.exp ...
+PASS: gdb.base/infoline.exp: info line infoline.c:18
+Running ./gdb.base/info-macros.exp ...
+FAIL: gdb.base/info-macros.exp: info macro -- -all
+FAIL: gdb.base/info-macros.exp: info macro  -- -all
+PASS: gdb.base/info-macros.exp: info macro -all --
+PASS: gdb.base/info-macros.exp: info macro -all  --
+PASS: gdb.base/info-macros.exp: info macro  -all  --
+PASS: gdb.base/info-macros.exp: info macro --
+PASS: gdb.base/info-macros.exp: 'info macro -- '
+PASS: gdb.base/info-macros.exp: 'info macro  -- '
+PASS: gdb.base/info-macros.exp: info macro -invalid-option 1
+PASS: gdb.base/info-macros.exp: info macro  -invalid-option
+PASS: gdb.base/info-macros.exp: info macro -invalid-option FOO
+PASS: gdb.base/info-macros.exp: info macro  -invalid-option FOO
+FAIL: gdb.base/info-macros.exp: info macro -- FOO
+FAIL: gdb.base/info-macros.exp: info macro  -- FOO
+FAIL: gdb.base/info-macros.exp: info macro --  FOO
+FAIL: gdb.base/info-macros.exp: info macro FOO
+FAIL: gdb.base/info-macros.exp: info macro  FOO
+FAIL: gdb.base/info-macros.exp: info macro -a FOO 1
+FAIL: gdb.base/info-macros.exp: info macro -a -- FOO 1
+FAIL: gdb.base/info-macros.exp: info macro -all -- FOO 1
+FAIL: gdb.base/info-macros.exp: info macro -a  --  FOO
+FAIL: gdb.base/info-macros.exp: info macro  -a  --  FOO
+FAIL: gdb.base/info-macros.exp: info macros 2
+FAIL: gdb.base/info-macros.exp: info macros 3
+FAIL: gdb.base/info-macros.exp: info macros 4
+FAIL: gdb.base/info-macros.exp: info macros *$pc
+FAIL: gdb.base/info-macros.exp: info macros
+FAIL: gdb.base/info-macros.exp: info macros 6
+FAIL: gdb.base/info-macros.exp: info macros 7
+KFAIL: gdb.base/info-macros.exp: info macros info-macros.c:42 (PRMS: gdb/NNNN)
+Running ./gdb.base/info-os.exp ...
+PASS: gdb.base/info-os.exp: get inferior process ID
+PASS: gdb.base/info-os.exp: continue to breakpoint: Set breakpoint here
+PASS: gdb.base/info-os.exp: get shared memory key
+PASS: gdb.base/info-os.exp: get shared memory ID
+PASS: gdb.base/info-os.exp: get semaphore key
+PASS: gdb.base/info-os.exp: get semaphore ID
+PASS: gdb.base/info-os.exp: get message queue key
+PASS: gdb.base/info-os.exp: get message queue ID
+PASS: gdb.base/info-os.exp: get socket port number
+PASS: gdb.base/info-os.exp: get process list
+PASS: gdb.base/info-os.exp: get process groups
+PASS: gdb.base/info-os.exp: get threads
+PASS: gdb.base/info-os.exp: get threads
+PASS: gdb.base/info-os.exp: get file descriptors
+PASS: gdb.base/info-os.exp: get internet-domain sockets
+PASS: gdb.base/info-os.exp: get shared-memory regions
+PASS: gdb.base/info-os.exp: get semaphores
+PASS: gdb.base/info-os.exp: get message queues
+PASS: gdb.base/info-os.exp: continue
+Running ./gdb.base/info-proc.exp ...
+PASS: gdb.base/info-proc.exp: help info proc
+PASS: gdb.base/info-proc.exp: info proc without a process
+PASS: gdb.base/info-proc.exp: info proc with process
+PASS: gdb.base/info-proc.exp: info proc mapping
+PASS: gdb.base/info-proc.exp: save a core file
+FAIL: gdb.base/info-proc.exp: core break.gcore
+FAIL: gdb.base/info-proc.exp: info proc mapping with core file
+Running ./gdb.base/info-target.exp ...
+PASS: gdb.base/info-target.exp: info target
+Running ./gdb.base/interact.exp ...
+PASS: gdb.base/interact.exp: set interactive-mode auto
+PASS: gdb.base/interact.exp: source script with interactive-mode auto
+PASS: gdb.base/interact.exp: sanity check with interactive-mode auto
+PASS: gdb.base/interact.exp: show interactive-mode (auto)
+PASS: gdb.base/interact.exp: set interactive-mode on
+PASS: gdb.base/interact.exp: source script with interactive-mode on
+PASS: gdb.base/interact.exp: sanity check with interactive-mode on
+PASS: gdb.base/interact.exp: show interactive-mode (on)
+PASS: gdb.base/interact.exp: set interactive-mode off
+PASS: gdb.base/interact.exp: source script with interactive-mode off
+PASS: gdb.base/interact.exp: sanity check with interactive-mode off
+PASS: gdb.base/interact.exp: show interactive-mode (off)
+Running ./gdb.base/interp.exp ...
+PASS: gdb.base/interp.exp: interpreter-exec mi "-var-update *"
+PASS: gdb.base/interp.exp: interpreter-exec console "show version"
+PASS: gdb.base/interp.exp: interpreter-exec mi "-var-update *"
+PASS: gdb.base/interp.exp: interpreter-exec mi "-stack-info-frame"
+PASS: gdb.base/interp.exp: interpreter-exec mi1 "-break-insert main"
+PASS: gdb.base/interp.exp: interpreter-exec mi2 "-break-insert main"
+PASS: gdb.base/interp.exp: interpreter-exec mi3 "-break-insert main"
+PASS: gdb.base/interp.exp: can list sources
+Running ./gdb.base/interrupt.exp ...
+Running ./gdb.base/jit.exp ...
+PASS: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 0
+PASS: gdb.base/jit.exp: one_jit_test-1: set var argc = 2
+PASS: gdb.base/jit.exp: one_jit_test-1: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit.exp: one_jit_test-1: set var count = 1
+PASS: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 1
+PASS: gdb.base/jit.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 2
+PASS: gdb.base/jit.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 0
+PASS: gdb.base/jit.exp: one_jit_test-2: set var argc = 2
+PASS: gdb.base/jit.exp: one_jit_test-2: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit.exp: one_jit_test-2: set var count = 2
+PASS: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 1
+PASS: gdb.base/jit.exp: one_jit_test-2: info function jit_function
+PASS: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 2
+PASS: gdb.base/jit.exp: one_jit_test-2: info function jit_function
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 0
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: set var argc = 2
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: set var count = 1
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 1
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 2
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: info function jit_function
+Running ./gdb.base/jit-simple.exp ...
+PASS: gdb.base/jit-simple.exp: blah 1
+PASS: gdb.base/jit-simple.exp: recompile jit-simple.c
+PASS: gdb.base/jit-simple.exp: blah 1
+Running ./gdb.base/jit-so.exp ...
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here before-dlopen
+PASS: gdb.base/jit-so.exp: one_jit_test-1: set var jit_libname = "jit-main.so"
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here after-dlopen
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 0
+PASS: gdb.base/jit-so.exp: one_jit_test-1: set var argc = 2
+PASS: gdb.base/jit-so.exp: one_jit_test-1: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit-so.exp: one_jit_test-1: set var count = 1
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 1
+PASS: gdb.base/jit-so.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 2
+PASS: gdb.base/jit-so.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here before-dlopen
+PASS: gdb.base/jit-so.exp: one_jit_test-2: set var jit_libname = "jit-main.so"
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here after-dlopen
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 0
+PASS: gdb.base/jit-so.exp: one_jit_test-2: set var argc = 2
+PASS: gdb.base/jit-so.exp: one_jit_test-2: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit-so.exp: one_jit_test-2: set var count = 2
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 1
+PASS: gdb.base/jit-so.exp: one_jit_test-2: info function jit_function
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 2
+PASS: gdb.base/jit-so.exp: one_jit_test-2: info function jit_function
+Running ./gdb.base/jump.exp ...
+PASS: gdb.base/jump.exp: break before jump to non-call
+PASS: gdb.base/jump.exp: jump to non-call
+PASS: gdb.base/jump.exp: break before jump to call
+PASS: gdb.base/jump.exp: jump to call
+PASS: gdb.base/jump.exp: disable breakpoint on call
+PASS: gdb.base/jump.exp: jump to call with disabled breakpoint
+PASS: gdb.base/jump.exp: jump without argument disallowed
+PASS: gdb.base/jump.exp: jump with trailing argument junk
+PASS: gdb.base/jump.exp: aborted jump out of current function
+PASS: gdb.base/jump.exp: jump out of current function
+Running ./gdb.base/kill-after-signal.exp ...
+PASS: gdb.base/kill-after-signal.exp: handle SIGUSR1 stop print pass
+PASS: gdb.base/kill-after-signal.exp: continue
+PASS: gdb.base/kill-after-signal.exp: stepi
+PASS: gdb.base/kill-after-signal.exp: kill
+Running ./gdb.base/label.exp ...
+Running ./gdb.base/langs.exp ...
+PASS: gdb.base/langs.exp: break on nonexistent function in langs.exp
+PASS: gdb.base/langs.exp: show language at csub in langs.exp
+PASS: gdb.base/langs.exp: backtrace in langs.exp
+PASS: gdb.base/langs.exp: up to foo in langs.exp
+PASS: gdb.base/langs.exp: show language at foo in langs.exp
+PASS: gdb.base/langs.exp: up to cppsub_ in langs.exp
+PASS: gdb.base/langs.exp: show language at cppsub_ in langs.exp
+PASS: gdb.base/langs.exp: up to fsub in langs.exp
+PASS: gdb.base/langs.exp: show language at fsub in langs.exp
+PASS: gdb.base/langs.exp: up to langs0__2do in langs.exp
+PASS: gdb.base/langs.exp: show language at langs0__2do in langs.exp
+PASS: gdb.base/langs.exp: up to main in langs.exp
+PASS: gdb.base/langs.exp: show language at main in langs.exp
+PASS: gdb.base/langs.exp: continue until exit at langs.exp
+PASS: gdb.base/langs.exp: set lang to minimal
+PASS: gdb.base/langs.exp: print parameter value
+Running ./gdb.base/ldbl_e308.exp ...
+PASS: gdb.base/ldbl_e308.exp: set variable ldbl_308 = 1.6e+308l
+PASS: gdb.base/ldbl_e308.exp: print ldbl_308
+Running ./gdb.base/lineinc.exp ...
+PASS: gdb.base/lineinc.exp: tolerate macro info with multiple #inclusions per line
+Running ./gdb.base/linespecs.exp ...
+PASS: gdb.base/linespecs.exp: list c:/foo/bar/baz.c:1
+PASS: gdb.base/linespecs.exp: list c:/foo/bar/baz.c
+PASS: gdb.base/linespecs.exp: list fooc:/foo/bar/baz.c:1
+PASS: gdb.base/linespecs.exp: list fooc:/foo/bar/baz.c
+Running ./gdb.base/list.exp ...
+PASS: gdb.base/list.exp: set width 0
+PASS: gdb.base/list.exp: show default list size
+PASS: gdb.base/list.exp: list default lines around main
+PASS: gdb.base/list.exp: setting listsize to 1 #1
+PASS: gdb.base/list.exp: show listsize 1 #1
+PASS: gdb.base/list.exp: list line 1 with listsize 1
+PASS: gdb.base/list.exp: list line 2 with listsize 1
+PASS: gdb.base/list.exp: setting listsize to 2 #2
+PASS: gdb.base/list.exp: show listsize 2 #2
+PASS: gdb.base/list.exp: list line 1 with listsize 2
+PASS: gdb.base/list.exp: list line 2 with listsize 2
+PASS: gdb.base/list.exp: list line 3 with listsize 2
+PASS: gdb.base/list.exp: setting listsize to 3 #3
+PASS: gdb.base/list.exp: show listsize 3 #3
+PASS: gdb.base/list.exp: list line 1 with listsize 3
+PASS: gdb.base/list.exp: list line 2 with listsize 3
+PASS: gdb.base/list.exp: list line 3 with listsize 3
+PASS: gdb.base/list.exp: setting listsize to 4 #4
+PASS: gdb.base/list.exp: show listsize 4 #4
+PASS: gdb.base/list.exp: list line 1 with listsize 4
+PASS: gdb.base/list.exp: list line 2 with listsize 4
+PASS: gdb.base/list.exp: list line 3 with listsize 4
+PASS: gdb.base/list.exp: list line 4 with listsize 4
+PASS: gdb.base/list.exp: setting listsize to 100 #5
+PASS: gdb.base/list.exp: show listsize 100 #5
+PASS: gdb.base/list.exp: list line 1 with listsize 100
+PASS: gdb.base/list.exp: list line 10 with listsize 100
+PASS: gdb.base/list.exp: setting listsize to 0 #6
+PASS: gdb.base/list.exp: show listsize unlimited #6
+PASS: gdb.base/list.exp: list line 1 with unlimited listsize
+PASS: gdb.base/list.exp: setting listsize to 10 #7
+PASS: gdb.base/list.exp: show listsize 10 #7
+PASS: gdb.base/list.exp: list line 1 in include file
+PASS: gdb.base/list.exp: list message for lines past EOF
+PASS: gdb.base/list.exp: list filename:number (4 tests)
+PASS: gdb.base/list.exp: list function in source file 1
+PASS: gdb.base/list.exp: list function in source file 2
+PASS: gdb.base/list.exp: list function in include file
+PASS: gdb.base/list.exp: successive list commands to page forward (4 tests)
+PASS: gdb.base/list.exp: 4 successive "list -" commands to page backwards
+PASS: gdb.base/list.exp: repeat list commands to page forward using 'return' (4 tests)
+PASS: gdb.base/list.exp: list range; filename:line1,filename:line2
+PASS: gdb.base/list.exp: list range; line1,line2
+PASS: gdb.base/list.exp: list range; upper bound past EOF
+PASS: gdb.base/list.exp: list range; both bounds past EOF
+PASS: gdb.base/list.exp: list range, must be same files
+PASS: gdb.base/list.exp: list filename:function (5 tests)
+PASS: gdb.base/list.exp: list 'list0.c:main'
+XFAIL: gdb.base/list.exp: list filename:function; wrong filename rejected
+PASS: gdb.base/list.exp: list filename:function; nonexistant file
+PASS: gdb.base/list.exp: list filename:function; nonexistant function
+PASS: gdb.base/list.exp: set listsize 4
+PASS: gdb.base/list.exp: list long_line
+PASS: gdb.base/list.exp: search 4321
+PASS: gdb.base/list.exp: search 6789
+PASS: gdb.base/list.exp: search extremely long line (> 5000 chars)
+PASS: gdb.base/list.exp: set listsize 2
+PASS: gdb.base/list.exp: list 1
+PASS: gdb.base/list.exp: list ,5
+Running ./gdb.base/logical.exp ...
+PASS: gdb.base/logical.exp: evaluate x; variables x = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x; variables x = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !!x; variables x = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x; variables x = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x; variables x = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !!x; variables x = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 1, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 1, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 1, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x > y || w == z; variables x = 1, y = 2, w = 3, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate x >= y && w != z; variables x = 1, y = 2, w = 3, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate ! x > y || w + z; variables x = 1, y = 2, w = 3, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y || w == z; variables x = 1, y = 2, w = 1, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y && w != z; variables x = 1, y = 2, w = 1, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate ! x > y || w + z; variables x = 1, y = 2, w = 1, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y || w == z; variables x = 2, y = 2, w = 2, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y && w != z; variables x = 2, y = 2, w = 2, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate ! x > y || w + z; variables x = 2, y = 2, w = 2, z = 3; expecting 1
+Running ./gdb.base/longest-types.exp ...
+UNTESTED: gdb.base/longest-types.exp: longest-types.exp
+Running ./gdb.base/longjmp.exp ...
+PASS: gdb.base/longjmp.exp: breakpoint at pattern 1 start
+PASS: gdb.base/longjmp.exp: continue to breakpoint at pattern 1 start
+PASS: gdb.base/longjmp.exp: breakpoint at miss_step_1
+PASS: gdb.base/longjmp.exp: next over setjmp (1)
+PASS: gdb.base/longjmp.exp: next to longjmp (1)
+FAIL: gdb.base/longjmp.exp: next over longjmp(1)
+PASS: gdb.base/longjmp.exp: breakpoint at pattern 2 start
+PASS: gdb.base/longjmp.exp: continue to breakpoint at pattern 2 start
+PASS: gdb.base/longjmp.exp: breakpoint at miss_step_2
+PASS: gdb.base/longjmp.exp: next over setjmp (2)
+FAIL: gdb.base/longjmp.exp: next over call_longjmp (2)
+PASS: gdb.base/longjmp.exp: breakpoint at pattern 3 start
+PASS: gdb.base/longjmp.exp: continue to breakpoint at pattern 3 start
+FAIL: gdb.base/longjmp.exp: next over patt3
+Running ./gdb.base/long_long.exp ...
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (char)" (1)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (short)" (2)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (int)" (4)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (long)" (4)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (long long)" (8)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (void *)" (4)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (double)" (8)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (long double)" (12)
+PASS: gdb.base/long_long.exp: continue to breakpoint: Stop here and look
+PASS: gdb.base/long_long.exp: hex print p/x
+PASS: gdb.base/long_long.exp: decimal print p/x
+PASS: gdb.base/long_long.exp: default print val.dec
+PASS: gdb.base/long_long.exp: default print val.bin
+PASS: gdb.base/long_long.exp: default print val.oct
+PASS: gdb.base/long_long.exp: default print hex
+PASS: gdb.base/long_long.exp: decimal print p/u
+PASS: gdb.base/long_long.exp: binary print
+PASS: gdb.base/long_long.exp: octal print
+PASS: gdb.base/long_long.exp: print +ve long long
+PASS: gdb.base/long_long.exp: decimal print p/d
+PASS: gdb.base/long_long.exp: p/d val.oct
+PASS: gdb.base/long_long.exp: p/u val.oct
+PASS: gdb.base/long_long.exp: p/o val.oct
+PASS: gdb.base/long_long.exp: p/t val.oct
+PASS: gdb.base/long_long.exp: p/a val.oct
+PASS: gdb.base/long_long.exp: p/c val.oct
+PASS: gdb.base/long_long.exp: p/f val.oct
+PASS: gdb.base/long_long.exp: p/x *(char *)c
+PASS: gdb.base/long_long.exp: p/d *(char *)c
+PASS: gdb.base/long_long.exp: p/u *(char *)c
+PASS: gdb.base/long_long.exp: p/o *(char *)c
+PASS: gdb.base/long_long.exp: p/t *(char *)c
+PASS: gdb.base/long_long.exp: p/a *(char *)c
+PASS: gdb.base/long_long.exp: p/f *(char *)c
+PASS: gdb.base/long_long.exp: p/c *(char *)c
+PASS: gdb.base/long_long.exp: p/x *(short *)s
+PASS: gdb.base/long_long.exp: p/d *(short *)s
+PASS: gdb.base/long_long.exp: p/u *(short *)s
+PASS: gdb.base/long_long.exp: p/o *(short *)s
+PASS: gdb.base/long_long.exp: p/t *(short *)s
+PASS: gdb.base/long_long.exp: p/a *(short *)s
+PASS: gdb.base/long_long.exp: p/f *(short *)s
+PASS: gdb.base/long_long.exp: p/c *(short *)s
+PASS: gdb.base/long_long.exp: p/x *(int *)i
+PASS: gdb.base/long_long.exp: p/d *(int *)i
+PASS: gdb.base/long_long.exp: p/u *(int *)i
+PASS: gdb.base/long_long.exp: p/o *(int *)i
+PASS: gdb.base/long_long.exp: p/t *(int *)i
+PASS: gdb.base/long_long.exp: p/a *(int *)i
+PASS: gdb.base/long_long.exp: p/f *(int *)i
+PASS: gdb.base/long_long.exp: p/c *(int *)i
+PASS: gdb.base/long_long.exp: p/x *(long *)l
+PASS: gdb.base/long_long.exp: p/d *(long *)l
+PASS: gdb.base/long_long.exp: p/u *(long *)l
+PASS: gdb.base/long_long.exp: p/o *(long *)l
+PASS: gdb.base/long_long.exp: p/t *(long *)l
+PASS: gdb.base/long_long.exp: p/a *(long *)l
+PASS: gdb.base/long_long.exp: p/f *(long *)l
+PASS: gdb.base/long_long.exp: p/c *(long *)l
+PASS: gdb.base/long_long.exp: p/x *(long long *)ll
+PASS: gdb.base/long_long.exp: p/d *(long long *)ll
+PASS: gdb.base/long_long.exp: p/u *(long long *)ll
+PASS: gdb.base/long_long.exp: p/o *(long long *)ll
+PASS: gdb.base/long_long.exp: p/t *(long long *)ll
+PASS: gdb.base/long_long.exp: p/a *(long long *)ll
+PASS: gdb.base/long_long.exp: p/f *(long long *)ll
+PASS: gdb.base/long_long.exp: p/c *(long long *)ll
+PASS: gdb.base/long_long.exp: set examine size to w
+PASS: gdb.base/long_long.exp: x/x w
+PASS: gdb.base/long_long.exp: x/d w
+PASS: gdb.base/long_long.exp: x/u w
+PASS: gdb.base/long_long.exp: x/o w
+PASS: gdb.base/long_long.exp: x/t w
+PASS: gdb.base/long_long.exp: x/a
+PASS: gdb.base/long_long.exp: x/c b
+PASS: gdb.base/long_long.exp: x/f &val.oct
+PASS: gdb.base/long_long.exp: set examine size to g
+PASS: gdb.base/long_long.exp: x/2x g
+PASS: gdb.base/long_long.exp: x/2d g
+PASS: gdb.base/long_long.exp: x/2u g
+PASS: gdb.base/long_long.exp: x/2o g
+PASS: gdb.base/long_long.exp: x/2t g
+PASS: gdb.base/long_long.exp: x/2a
+PASS: gdb.base/long_long.exp: x/2c b
+PASS: gdb.base/long_long.exp: x/2f &val.oct
+PASS: gdb.base/long_long.exp: x/2bx b
+PASS: gdb.base/long_long.exp: x/2bd b
+PASS: gdb.base/long_long.exp: x/2bu b
+PASS: gdb.base/long_long.exp: x/2bo b
+PASS: gdb.base/long_long.exp: x/2bt b
+PASS: gdb.base/long_long.exp: x/2ba b
+PASS: gdb.base/long_long.exp: x/2bc b
+PASS: gdb.base/long_long.exp: x/2bf b
+PASS: gdb.base/long_long.exp: x/2hx h
+PASS: gdb.base/long_long.exp: x/2hd h
+PASS: gdb.base/long_long.exp: x/2hu h
+PASS: gdb.base/long_long.exp: x/2ho h
+PASS: gdb.base/long_long.exp: x/2ht h
+PASS: gdb.base/long_long.exp: x/2ha h
+PASS: gdb.base/long_long.exp: x/2hc h
+PASS: gdb.base/long_long.exp: x/2hf h
+PASS: gdb.base/long_long.exp: x/2wx w
+PASS: gdb.base/long_long.exp: x/2wd w
+PASS: gdb.base/long_long.exp: x/2wu w
+PASS: gdb.base/long_long.exp: x/2wo w
+PASS: gdb.base/long_long.exp: x/2wt w
+PASS: gdb.base/long_long.exp: x/2wa w
+PASS: gdb.base/long_long.exp: x/2wc w
+PASS: gdb.base/long_long.exp: x/2wf w
+PASS: gdb.base/long_long.exp: x/2gx g
+PASS: gdb.base/long_long.exp: x/2gd g
+PASS: gdb.base/long_long.exp: x/2gu g
+PASS: gdb.base/long_long.exp: x/2go g
+PASS: gdb.base/long_long.exp: x/2gt g
+PASS: gdb.base/long_long.exp: x/2ga g
+PASS: gdb.base/long_long.exp: x/2gc g
+PASS: gdb.base/long_long.exp: x/2gf g
+Running ./gdb.base/macscp.exp ...
+PASS: gdb.base/macscp.exp: list main for support check
+UNSUPPORTED: gdb.base/macscp.exp: Skipping test because debug information does not include macro information.
+Running ./gdb.base/maint.exp ...
+PASS: gdb.base/maint.exp: set height 0
+PASS: gdb.base/maint.exp: maint print registers
+PASS: gdb.base/maint.exp: maint check-symtabs
+PASS: gdb.base/maint.exp: maint space
+PASS: gdb.base/maint.exp: maint space 1
+PASS: gdb.base/maint.exp: maint time
+PASS: gdb.base/maint.exp: maint time 1
+PASS: gdb.base/maint.exp: maint time 0
+PASS: gdb.base/maint.exp: maint space 0
+PASS: gdb.base/maint.exp: maint demangle
+PASS: gdb.base/maint.exp: maint demangle main
+PASS: gdb.base/maint.exp: maint print statistics
+PASS: gdb.base/maint.exp: maint print dummy-frames
+PASS: gdb.base/maint.exp: maint print objfiles: header
+PASS: gdb.base/maint.exp: maint print objfiles: psymtabs
+PASS: gdb.base/maint.exp: maint print objfiles: symtabs
+PASS: gdb.base/maint.exp: maint print psymbols w/o args
+PASS: gdb.base/maint.exp: maint print psymbols 1
+PASS: gdb.base/maint.exp: shell rm -f psymbols_output
+PASS: gdb.base/maint.exp: maint print msymbols w/o args
+PASS: gdb.base/maint.exp: maint print msymbols
+PASS: gdb.base/maint.exp: shell rm -f msymbols_output
+PASS: gdb.base/maint.exp: cd to objdir
+PASS: gdb.base/maint.exp: maint print msymbols
+PASS: gdb.base/maint.exp: shell rm -f msymbols_output2
+PASS: gdb.base/maint.exp: cd to mydir
+PASS: gdb.base/maint.exp: maint print symbols w/o args
+PASS: gdb.base/maint.exp: maint print symbols
+PASS: gdb.base/maint.exp: shell rm -f symbols_output
+PASS: gdb.base/maint.exp: maint print type
+PASS: gdb.base/maint.exp: maint info sections
+PASS: gdb.base/maint.exp: maint info sections .text
+PASS: gdb.base/maint.exp: maint info sections CODE
+PASS: gdb.base/maint.exp: maint info sections DATA
+PASS: gdb.base/maint.exp: maint info breakpoints
+PASS: gdb.base/maint.exp: maint print w/o args
+PASS: gdb.base/maint.exp: maint info w/o args
+PASS: gdb.base/maint.exp: maint w/o args
+PASS: gdb.base/maint.exp: help maint
+PASS: gdb.base/maint.exp: help maint check-symtabs
+PASS: gdb.base/maint.exp: help maint space
+PASS: gdb.base/maint.exp: help maint time
+PASS: gdb.base/maint.exp: help maint demangle
+PASS: gdb.base/maint.exp: help maint dump-me
+PASS: gdb.base/maint.exp: help maint internal-error
+PASS: gdb.base/maint.exp: help maint internal-warning
+PASS: gdb.base/maint.exp: help maint print statistics
+PASS: gdb.base/maint.exp: help maint print dummy-frames
+PASS: gdb.base/maint.exp: help maint print objfiles
+PASS: gdb.base/maint.exp: help maint print psymbols
+PASS: gdb.base/maint.exp: help maint print msymbols
+PASS: gdb.base/maint.exp: help maint print symbols
+PASS: gdb.base/maint.exp: help maint print type
+PASS: gdb.base/maint.exp: help maint info sections
+PASS: gdb.base/maint.exp: help maint info breakpoints
+PASS: gdb.base/maint.exp: help maint info
+PASS: gdb.base/maint.exp: help maint print
+PASS: gdb.base/maint.exp: help maint
+PASS: gdb.base/maint.exp: maint dump-me
+PASS: gdb.base/maint.exp: maint internal-error
+PASS: gdb.base/maint.exp: internal-error resync
+Running ./gdb.base/memattr.exp ...
+PASS: gdb.base/memattr.exp: create mem region 1
+PASS: gdb.base/memattr.exp: create mem region 2
+PASS: gdb.base/memattr.exp: create mem region 3
+PASS: gdb.base/memattr.exp: create mem region 4
+PASS: gdb.base/memattr.exp: create mem region 5
+PASS: gdb.base/memattr.exp: info mem (1)
+PASS: gdb.base/memattr.exp: mem1 cannot be read
+PASS: gdb.base/memattr.exp: mem1 can be written
+PASS: gdb.base/memattr.exp: mem2 cannot be written
+PASS: gdb.base/memattr.exp: mem2 can be read
+PASS: gdb.base/memattr.exp: disable mem 1
+PASS: gdb.base/memattr.exp: mem 1 was disabled
+PASS: gdb.base/memattr.exp: enable mem 1
+PASS: gdb.base/memattr.exp: mem 1 was enabled
+PASS: gdb.base/memattr.exp: disable mem 2 4
+PASS: gdb.base/memattr.exp: mem 2 and 4 were disabled
+PASS: gdb.base/memattr.exp: enable mem 2-4
+PASS: gdb.base/memattr.exp: mem 2-4 were enabled
+PASS: gdb.base/memattr.exp: disable mem
+PASS: gdb.base/memattr.exp: mem 1 to 5 were disabled
+PASS: gdb.base/memattr.exp: enable mem
+PASS: gdb.base/memattr.exp: mem 1 to 5 were enabled
+PASS: gdb.base/memattr.exp: disable non-existant regions
+PASS: gdb.base/memattr.exp: delete mem 1
+PASS: gdb.base/memattr.exp: mem 1 was deleted
+PASS: gdb.base/memattr.exp: delete mem 2 4
+PASS: gdb.base/memattr.exp: mem 2 and 4 were deleted
+PASS: gdb.base/memattr.exp: delete mem 2-4
+PASS: gdb.base/memattr.exp: mem 2-4 were deleted
+PASS: gdb.base/memattr.exp: delete non-existant region
+PASS: gdb.base/memattr.exp: mem 0x30 0x60 ro
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x40: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x30 0x40: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x40 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x50 0x60: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x50 0x70: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x30 0x60: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x70: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x30 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x40 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x30: no-overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x60 0x70: no-overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x80 0x0: no-overlap
+PASS: gdb.base/memattr.exp: mem 0x30 0x0 ro
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x20 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x30 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x40 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x20 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x30 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x40 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x20 0x30: no-overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x00 0x10: no-overlap
+Running ./gdb.base/mips_pro.exp ...
+PASS: gdb.base/mips_pro.exp: backtrace
+Running ./gdb.base/miscexprs.exp ...
+PASS: gdb.base/miscexprs.exp: continue to marker1
+PASS: gdb.base/miscexprs.exp: up from marker1
+PASS: gdb.base/miscexprs.exp: print value of &ibig.i[0]
+PASS: gdb.base/miscexprs.exp: print value of &cbig.c[0]
+PASS: gdb.base/miscexprs.exp: print value of &fbig.f[0]
+PASS: gdb.base/miscexprs.exp: print value of &dbig.d[0]
+PASS: gdb.base/miscexprs.exp: print value of &sbig.s[0]
+PASS: gdb.base/miscexprs.exp: print value of &lbig.l[0]
+PASS: gdb.base/miscexprs.exp: print value of ibig.i[100] | 1
+PASS: gdb.base/miscexprs.exp: print value of sbig.s[90] & 127
+PASS: gdb.base/miscexprs.exp: print value of !ibig.i[100]
+PASS: gdb.base/miscexprs.exp: print value of !sbig.s[90]
+PASS: gdb.base/miscexprs.exp: print value of !ibig.i[100]
+PASS: gdb.base/miscexprs.exp: print value of !ibig.i[100]
+PASS: gdb.base/miscexprs.exp: print value of !sbig.s[90] * 10
+PASS: gdb.base/miscexprs.exp: print value of ibig.i[100] * sbig.s[90]
+PASS: gdb.base/miscexprs.exp: print value of fbig.f[100] * dbig.d[202]
+PASS: gdb.base/miscexprs.exp: print value of !(sbig.s[90] * 2)
+PASS: gdb.base/miscexprs.exp: print value of sizeof sbig
+PASS: gdb.base/miscexprs.exp: print value of sizeof cbig
+PASS: gdb.base/miscexprs.exp: print value of sizeof lbig / sizeof long
+PASS: gdb.base/miscexprs.exp: print value of ibig.i[100] << 2
+PASS: gdb.base/miscexprs.exp: print value of sbig.s[90] >> 4
+PASS: gdb.base/miscexprs.exp: print value of lbig.l[333] >> 6
+Running ./gdb.base/morestack.exp ...
+PASS: gdb.base/morestack.exp: continue
+FAIL: gdb.base/morestack.exp: up 3000
+Running ./gdb.base/moribund-step.exp ...
+PASS: gdb.base/moribund-step.exp: set non-stop on
+Running ./gdb.base/multi-forks.exp ...
+Running ./gdb.base/nextoverexit.exp ...
+PASS: gdb.base/nextoverexit.exp: next over exit
+Running ./gdb.base/nodebug.exp ...
+PASS: gdb.base/nodebug.exp: p top
+PASS: gdb.base/nodebug.exp: whatis top
+PASS: gdb.base/nodebug.exp: ptype top
+PASS: gdb.base/nodebug.exp: p middle
+PASS: gdb.base/nodebug.exp: whatis middle
+PASS: gdb.base/nodebug.exp: ptype middle
+PASS: gdb.base/nodebug.exp: p dataglobal
+PASS: gdb.base/nodebug.exp: whatis dataglobal
+PASS: gdb.base/nodebug.exp: ptype dataglobal
+PASS: gdb.base/nodebug.exp: p datalocal
+PASS: gdb.base/nodebug.exp: whatis datalocal
+PASS: gdb.base/nodebug.exp: ptype datalocal
+PASS: gdb.base/nodebug.exp: p bssglobal
+PASS: gdb.base/nodebug.exp: whatis bssglobal
+PASS: gdb.base/nodebug.exp: ptype bssglobal
+PASS: gdb.base/nodebug.exp: p bsslocal
+PASS: gdb.base/nodebug.exp: whatis bsslocal
+PASS: gdb.base/nodebug.exp: ptype bsslocal
+PASS: gdb.base/nodebug.exp: backtrace from inner in nodebug.exp
+PASS: gdb.base/nodebug.exp: p/c array_index("abcdef",2)
+PASS: gdb.base/nodebug.exp: backtrace from middle in nodebug.exp
+Running ./gdb.base/nofield.exp ...
+PASS: gdb.base/nofield.exp: ptype struct not_empty
+PASS: gdb.base/nofield.exp: ptype struct empty
+PASS: gdb.base/nofield.exp: ptype union empty_union
+Running ./gdb.base/nostdlib.exp ...
+UNTESTED: gdb.base/nostdlib.exp: nostdlib.exp
+Running ./gdb.base/opaque.exp ...
+PASS: gdb.base/opaque.exp: whatis on opaque struct pointer (statically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct pointer (statically)
+PASS: gdb.base/opaque.exp: whatis on opaque struct instance (statically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct instance (statically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct tagname (statically)
+PASS: gdb.base/opaque.exp: whatis on opaque struct pointer (dynamically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct pointer (dynamically) 1
+PASS: gdb.base/opaque.exp: whatis on opaque struct instance (dynamically) 1
+PASS: gdb.base/opaque.exp: ptype on opaque struct instance (dynamically) 1
+PASS: gdb.base/opaque.exp: ptype on opaque struct tagname (dynamically) 1
+PASS: gdb.base/opaque.exp: whatis on opaque struct pointer (dynamically) 1
+PASS: gdb.base/opaque.exp: ptype on opaque struct pointer (dynamically) 2
+PASS: gdb.base/opaque.exp: whatis on opaque struct instance (dynamically) 2
+PASS: gdb.base/opaque.exp: ptype on opaque struct instance (dynamically) 2
+PASS: gdb.base/opaque.exp: ptype on opaque struct tagname (dynamically) 2
+Running ./gdb.base/overlays.exp ...
+Running ./gdb.base/page.exp ...
+PASS: gdb.base/page.exp: set pagination off
+PASS: gdb.base/page.exp: pagination is off
+PASS: gdb.base/page.exp: unpaged help
+PASS: gdb.base/page.exp: set pagination on
+PASS: gdb.base/page.exp: pagination is on
+PASS: gdb.base/page.exp: set height 10
+PASS: gdb.base/page.exp: paged help
+PASS: gdb.base/page.exp: q
+Running ./gdb.base/pc-fp.exp ...
+PASS: gdb.base/pc-fp.exp: get hexadecimal valueof "$pc"
+PASS: gdb.base/pc-fp.exp: get hexadecimal valueof "$fp"
+PASS: gdb.base/pc-fp.exp: display/i $pc
+PASS: gdb.base/pc-fp.exp: display/w $fp
+PASS: gdb.base/pc-fp.exp: info register $pc
+PASS: gdb.base/pc-fp.exp: info register $fp
+PASS: gdb.base/pc-fp.exp: info register pc fp
+Running ./gdb.base/pending.exp ...
+PASS: gdb.base/pending.exp: set pending breakpoint (without symbols)
+PASS: gdb.base/pending.exp: complete condition
+PASS: gdb.base/pending.exp: single pending breakpoint info (without symbols)
+PASS: gdb.base/pending.exp: run to resolved breakpoint 1 (without symbols)
+PASS: gdb.base/pending.exp: set pending breakpoint
+PASS: gdb.base/pending.exp: single pending breakpoint info
+PASS: gdb.base/pending.exp: breakpoint function
+PASS: gdb.base/pending.exp: pending plus real breakpoint info
+PASS: gdb.base/pending.exp: Don't set pending breakpoint
+PASS: gdb.base/pending.exp: condition 1 k == 1
+PASS: gdb.base/pending.exp: pending plus condition
+PASS: gdb.base/pending.exp: disable 1
+PASS: gdb.base/pending.exp: pending disabled
+PASS: gdb.base/pending.exp: Set commands for pending breakpoint
+PASS: gdb.base/pending.exp: pending disabled plus commands
+PASS: gdb.base/pending.exp: Set pending breakpoint 2
+PASS: gdb.base/pending.exp: multiple pending breakpoints
+PASS: gdb.base/pending.exp: Set pending breakpoint 3
+PASS: gdb.base/pending.exp: set ignore count on pending breakpoint 3
+PASS: gdb.base/pending.exp: multiple pending breakpoints 2
+PASS: gdb.base/pending.exp: running to main
+PASS: gdb.base/pending.exp: re-enabling pending breakpoint that can resolve instantly
+PASS: gdb.base/pending.exp: continue to resolved breakpoint 2
+PASS: gdb.base/pending.exp: continue to resolved breakpoint 1
+PASS: gdb.base/pending.exp: Disable other breakpoints
+PASS: gdb.base/pending.exp: Disable other breakpoints
+PASS: gdb.base/pending.exp: continue to resolved breakpoint 3
+PASS: gdb.base/pending.exp: set imaginary pending breakpoint
+PASS: gdb.base/pending.exp: rerun to main
+PASS: gdb.base/pending.exp: verify pending breakpoint after restart
+Running ./gdb.base/permissions.exp ...
+PASS: gdb.base/permissions.exp: show may-write-registers
+PASS: gdb.base/permissions.exp: show may-write-memory
+PASS: gdb.base/permissions.exp: show may-insert-breakpoints
+PASS: gdb.base/permissions.exp: show may-insert-tracepoints
+PASS: gdb.base/permissions.exp: show may-insert-fast-tracepoints
+PASS: gdb.base/permissions.exp: show may-interrupt
+PASS: gdb.base/permissions.exp: enable observer mode
+PASS: gdb.base/permissions.exp: show may-write-memory
+PASS: gdb.base/permissions.exp: show may-write-registers
+PASS: gdb.base/permissions.exp: show may-insert-breakpoints
+PASS: gdb.base/permissions.exp: show may-insert-tracepoints
+PASS: gdb.base/permissions.exp: show may-insert-fast-tracepoints
+PASS: gdb.base/permissions.exp: show may-interrupt
+PASS: gdb.base/permissions.exp: disable observer mode
+PASS: gdb.base/permissions.exp: set non-stop off
+PASS: gdb.base/permissions.exp: set a global
+PASS: gdb.base/permissions.exp: print x
+PASS: gdb.base/permissions.exp: set may-write-memory off
+PASS: gdb.base/permissions.exp: try to set a global
+PASS: gdb.base/permissions.exp: print x
+Running ./gdb.base/pie-execl.exp ...
+Running ./gdb.base/pointers.exp ...
+PASS: gdb.base/pointers.exp: continuing after dummy()
+PASS: gdb.base/pointers.exp: set pointer to beginning of array
+PASS: gdb.base/pointers.exp: set pointer to end of array
+PASS: gdb.base/pointers.exp: print object pointed to
+PASS: gdb.base/pointers.exp: print object pointed to #2
+PASS: gdb.base/pointers.exp: pointer1==pointer2
+PASS: gdb.base/pointers.exp: pointer1!=pointer2
+PASS: gdb.base/pointers.exp: pointer1<=pointer2
+PASS: gdb.base/pointers.exp: pointer1>=pointer2
+PASS: gdb.base/pointers.exp: pointer1<pointer2
+PASS: gdb.base/pointers.exp: pointer1>pointer2
+PASS: gdb.base/pointers.exp: set y = *v_int_pointer++
+PASS: gdb.base/pointers.exp: pointer assignment
+PASS: gdb.base/pointers.exp: and post-increment
+PASS: gdb.base/pointers.exp: set y = *--v_int_pointer2
+PASS: gdb.base/pointers.exp: pointer assignment
+PASS: gdb.base/pointers.exp: and pre-decrement
+PASS: gdb.base/pointers.exp: set y =v_int_pointer-v_int_pointer2
+PASS: gdb.base/pointers.exp: pointer1-pointer2
+PASS: gdb.base/pointers.exp: set v_int_pointer=v_int_array
+PASS: gdb.base/pointers.exp: print array element through pointer
+PASS: gdb.base/pointers.exp: print array element through pointer #2
+PASS: gdb.base/pointers.exp: print array element through pointer #3
+PASS: gdb.base/pointers.exp: print array element through pointer #4
+PASS: gdb.base/pointers.exp: print array element through pointer #5
+PASS: gdb.base/pointers.exp: increment rptr
+PASS: gdb.base/pointers.exp: print array element through pointer #6
+PASS: gdb.base/pointers.exp: print array element through pointer #7
+PASS: gdb.base/pointers.exp: print array element through pointer #8
+PASS: gdb.base/pointers.exp: print array element w/ pointer arithmetic
+PASS: gdb.base/pointers.exp: print through ptr to ptr
+PASS: gdb.base/pointers.exp: continue
+PASS: gdb.base/pointers.exp: up from marker1
+PASS: gdb.base/pointers.exp: print value of *pUC
+PASS: gdb.base/pointers.exp: ptype pUC
+PASS: gdb.base/pointers.exp: print value of *pS
+PASS: gdb.base/pointers.exp: ptype pS
+PASS: gdb.base/pointers.exp: print value of *pUS
+PASS: gdb.base/pointers.exp: ptype pUS
+PASS: gdb.base/pointers.exp: print value of *pI
+PASS: gdb.base/pointers.exp: ptype pI
+PASS: gdb.base/pointers.exp: print value of *pUI
+PASS: gdb.base/pointers.exp: ptype pUI
+PASS: gdb.base/pointers.exp: print value of *pL
+PASS: gdb.base/pointers.exp: ptype pL
+PASS: gdb.base/pointers.exp: print value of *pUL
+PASS: gdb.base/pointers.exp: ptype pUL
+PASS: gdb.base/pointers.exp: print value of *pF
+PASS: gdb.base/pointers.exp: ptype pF
+PASS: gdb.base/pointers.exp: print value of *pD
+PASS: gdb.base/pointers.exp: ptype pD
+PASS: gdb.base/pointers.exp: print value of ******ppppppC
+PASS: gdb.base/pointers.exp: ptype pC
+PASS: gdb.base/pointers.exp: ptype ppC
+PASS: gdb.base/pointers.exp: ptype pppC
+PASS: gdb.base/pointers.exp: ptype ppppC
+PASS: gdb.base/pointers.exp: ptype pppppC
+PASS: gdb.base/pointers.exp: ptype ppppppC
+PASS: gdb.base/pointers.exp: p instance.array_variable + 0
+Running ./gdb.base/pr10179.exp ...
+PASS: gdb.base/pr10179.exp: rbreak foo.*
+PASS: gdb.base/pr10179.exp: rbreak pr10179-a.c:foo.*
+PASS: gdb.base/pr10179.exp: rbreak pr10179-a.c : .*
+Running ./gdb.base/pr11022.exp ...
+Running ./gdb.base/prelink.exp ...
+Running ./gdb.base/printcmds.exp ...
+PASS: gdb.base/printcmds.exp: print $pc
+PASS: gdb.base/printcmds.exp: print "abc"
+PASS: gdb.base/printcmds.exp: print sizeof ("abc")
+PASS: gdb.base/printcmds.exp: ptype "abc"
+PASS: gdb.base/printcmds.exp: print $cvar = "abc"
+PASS: gdb.base/printcmds.exp: print sizeof ($cvar)
+PASS: gdb.base/printcmds.exp: print $pc (with file)
+PASS: gdb.base/printcmds.exp: set print sevenbit-strings
+PASS: gdb.base/printcmds.exp: set print address off
+PASS: gdb.base/printcmds.exp: set width 0
+PASS: gdb.base/printcmds.exp: p ctable1[120] #1
+PASS: gdb.base/printcmds.exp: p 123
+PASS: gdb.base/printcmds.exp: p -123
+PASS: gdb.base/printcmds.exp: p/d 123
+PASS: gdb.base/printcmds.exp: p 0123
+PASS: gdb.base/printcmds.exp: p 00123
+PASS: gdb.base/printcmds.exp: p -0123
+PASS: gdb.base/printcmds.exp: p/o 0123
+PASS: gdb.base/printcmds.exp: p 0x123
+PASS: gdb.base/printcmds.exp: p -0x123
+PASS: gdb.base/printcmds.exp: p 0x0123
+PASS: gdb.base/printcmds.exp: p -0x0123
+PASS: gdb.base/printcmds.exp: p 0xABCDEF
+PASS: gdb.base/printcmds.exp: p 0xabcdef
+PASS: gdb.base/printcmds.exp: p 0xAbCdEf
+PASS: gdb.base/printcmds.exp: p/x 0x123
+PASS: gdb.base/printcmds.exp: p 0b0
+PASS: gdb.base/printcmds.exp: p 0b1111
+PASS: gdb.base/printcmds.exp: p 0B1111
+PASS: gdb.base/printcmds.exp: p -0b1111
+PASS: gdb.base/printcmds.exp: reject p 0x
+PASS: gdb.base/printcmds.exp: reject p 0b
+PASS: gdb.base/printcmds.exp: p ''
+PASS: gdb.base/printcmds.exp: p '''
+PASS: gdb.base/printcmds.exp: reject p '\'
+PASS: gdb.base/printcmds.exp: reject p '\\\'
+PASS: gdb.base/printcmds.exp: reject p DEADBEEF
+PASS: gdb.base/printcmds.exp: reject p 09
+PASS: gdb.base/printcmds.exp: reject p 079
+PASS: gdb.base/printcmds.exp: reject p 0xG
+PASS: gdb.base/printcmds.exp: reject p 0xAG
+PASS: gdb.base/printcmds.exp: reject p 0b2
+PASS: gdb.base/printcmds.exp: reject p 0b12
+PASS: gdb.base/printcmds.exp: check for floating addition
+PASS: gdb.base/printcmds.exp: p 1.
+PASS: gdb.base/printcmds.exp: p 1.5
+PASS: gdb.base/printcmds.exp: p 1.f
+PASS: gdb.base/printcmds.exp: p 1.5f
+PASS: gdb.base/printcmds.exp: p 1.l
+PASS: gdb.base/printcmds.exp: p 1.5l
+PASS: gdb.base/printcmds.exp: p 0x1.1
+PASS: gdb.base/printcmds.exp: reject p 123DEADBEEF
+PASS: gdb.base/printcmds.exp: reject p 123foobar.bazfoo3
+PASS: gdb.base/printcmds.exp: reject p 123EEEEEEEEEEEEEEEEE33333k333
+PASS: gdb.base/printcmds.exp: reject p 1.1x
+PASS: gdb.base/printcmds.exp: reject p 1.1ff
+PASS: gdb.base/printcmds.exp: reject p 1.1ll
+PASS: gdb.base/printcmds.exp: p 'a'
+PASS: gdb.base/printcmds.exp: p/c 'a'
+PASS: gdb.base/printcmds.exp: p/x 'a'
+PASS: gdb.base/printcmds.exp: p/d 'a'
+PASS: gdb.base/printcmds.exp: p/t 'a'
+PASS: gdb.base/printcmds.exp: p '\141'
+PASS: gdb.base/printcmds.exp: p/x '\377'
+PASS: gdb.base/printcmds.exp: p '\''
+PASS: gdb.base/printcmds.exp: p '\\'
+PASS: gdb.base/printcmds.exp: p ctable1[0]
+PASS: gdb.base/printcmds.exp: p ctable1[1]
+PASS: gdb.base/printcmds.exp: p ctable1[2]
+PASS: gdb.base/printcmds.exp: p ctable1[3]
+PASS: gdb.base/printcmds.exp: p ctable1[4]
+PASS: gdb.base/printcmds.exp: p ctable1[5]
+PASS: gdb.base/printcmds.exp: p ctable1[6]
+PASS: gdb.base/printcmds.exp: p ctable1[7]
+PASS: gdb.base/printcmds.exp: p ctable1[8]
+PASS: gdb.base/printcmds.exp: p ctable1[9]
+PASS: gdb.base/printcmds.exp: p ctable1[10]
+PASS: gdb.base/printcmds.exp: p ctable1[11]
+PASS: gdb.base/printcmds.exp: p ctable1[12]
+PASS: gdb.base/printcmds.exp: p ctable1[13]
+PASS: gdb.base/printcmds.exp: p ctable1[14]
+PASS: gdb.base/printcmds.exp: p ctable1[15]
+PASS: gdb.base/printcmds.exp: p ctable1[16]
+PASS: gdb.base/printcmds.exp: p ctable1[17]
+PASS: gdb.base/printcmds.exp: p ctable1[18]
+PASS: gdb.base/printcmds.exp: p ctable1[19]
+PASS: gdb.base/printcmds.exp: p ctable1[20]
+PASS: gdb.base/printcmds.exp: p ctable1[21]
+PASS: gdb.base/printcmds.exp: p ctable1[22]
+PASS: gdb.base/printcmds.exp: p ctable1[23]
+PASS: gdb.base/printcmds.exp: p ctable1[24]
+PASS: gdb.base/printcmds.exp: p ctable1[25]
+PASS: gdb.base/printcmds.exp: p ctable1[26]
+PASS: gdb.base/printcmds.exp: p ctable1[27]
+PASS: gdb.base/printcmds.exp: p ctable1[28]
+PASS: gdb.base/printcmds.exp: p ctable1[29]
+PASS: gdb.base/printcmds.exp: p ctable1[30]
+PASS: gdb.base/printcmds.exp: p ctable1[31]
+PASS: gdb.base/printcmds.exp: p ctable1[32]
+PASS: gdb.base/printcmds.exp: p ctable1[33]
+PASS: gdb.base/printcmds.exp: p ctable1[34]
+PASS: gdb.base/printcmds.exp: p ctable1[35]
+PASS: gdb.base/printcmds.exp: p ctable1[36]
+PASS: gdb.base/printcmds.exp: p ctable1[37]
+PASS: gdb.base/printcmds.exp: p ctable1[38]
+PASS: gdb.base/printcmds.exp: p ctable1[39]
+PASS: gdb.base/printcmds.exp: p ctable1[40]
+PASS: gdb.base/printcmds.exp: p ctable1[41]
+PASS: gdb.base/printcmds.exp: p ctable1[42]
+PASS: gdb.base/printcmds.exp: p ctable1[43]
+PASS: gdb.base/printcmds.exp: p ctable1[44]
+PASS: gdb.base/printcmds.exp: p ctable1[45]
+PASS: gdb.base/printcmds.exp: p ctable1[46]
+PASS: gdb.base/printcmds.exp: p ctable1[47]
+PASS: gdb.base/printcmds.exp: p ctable1[48]
+PASS: gdb.base/printcmds.exp: p ctable1[49]
+PASS: gdb.base/printcmds.exp: p ctable1[50]
+PASS: gdb.base/printcmds.exp: p ctable1[51]
+PASS: gdb.base/printcmds.exp: p ctable1[52]
+PASS: gdb.base/printcmds.exp: p ctable1[53]
+PASS: gdb.base/printcmds.exp: p ctable1[54]
+PASS: gdb.base/printcmds.exp: p ctable1[55]
+PASS: gdb.base/printcmds.exp: p ctable1[56]
+PASS: gdb.base/printcmds.exp: p ctable1[57]
+PASS: gdb.base/printcmds.exp: p ctable1[58]
+PASS: gdb.base/printcmds.exp: p ctable1[59]
+PASS: gdb.base/printcmds.exp: p ctable1[60]
+PASS: gdb.base/printcmds.exp: p ctable1[61]
+PASS: gdb.base/printcmds.exp: p ctable1[62]
+PASS: gdb.base/printcmds.exp: p ctable1[63]
+PASS: gdb.base/printcmds.exp: p ctable1[64]
+PASS: gdb.base/printcmds.exp: p ctable1[65]
+PASS: gdb.base/printcmds.exp: p ctable1[66]
+PASS: gdb.base/printcmds.exp: p ctable1[67]
+PASS: gdb.base/printcmds.exp: p ctable1[68]
+PASS: gdb.base/printcmds.exp: p ctable1[69]
+PASS: gdb.base/printcmds.exp: p ctable1[70]
+PASS: gdb.base/printcmds.exp: p ctable1[71]
+PASS: gdb.base/printcmds.exp: p ctable1[72]
+PASS: gdb.base/printcmds.exp: p ctable1[73]
+PASS: gdb.base/printcmds.exp: p ctable1[74]
+PASS: gdb.base/printcmds.exp: p ctable1[75]
+PASS: gdb.base/printcmds.exp: p ctable1[76]
+PASS: gdb.base/printcmds.exp: p ctable1[77]
+PASS: gdb.base/printcmds.exp: p ctable1[78]
+PASS: gdb.base/printcmds.exp: p ctable1[79]
+PASS: gdb.base/printcmds.exp: p ctable1[80]
+PASS: gdb.base/printcmds.exp: p ctable1[81]
+PASS: gdb.base/printcmds.exp: p ctable1[82]
+PASS: gdb.base/printcmds.exp: p ctable1[83]
+PASS: gdb.base/printcmds.exp: p ctable1[84]
+PASS: gdb.base/printcmds.exp: p ctable1[85]
+PASS: gdb.base/printcmds.exp: p ctable1[86]
+PASS: gdb.base/printcmds.exp: p ctable1[87]
+PASS: gdb.base/printcmds.exp: p ctable1[88]
+PASS: gdb.base/printcmds.exp: p ctable1[89]
+PASS: gdb.base/printcmds.exp: p ctable1[90]
+PASS: gdb.base/printcmds.exp: p ctable1[91]
+PASS: gdb.base/printcmds.exp: p ctable1[92]
+PASS: gdb.base/printcmds.exp: p ctable1[93]
+PASS: gdb.base/printcmds.exp: p ctable1[94]
+PASS: gdb.base/printcmds.exp: p ctable1[95]
+PASS: gdb.base/printcmds.exp: p ctable1[96]
+PASS: gdb.base/printcmds.exp: p ctable1[97]
+PASS: gdb.base/printcmds.exp: p ctable1[98]
+PASS: gdb.base/printcmds.exp: p ctable1[99]
+PASS: gdb.base/printcmds.exp: p ctable1[100]
+PASS: gdb.base/printcmds.exp: p ctable1[101]
+PASS: gdb.base/printcmds.exp: p ctable1[102]
+PASS: gdb.base/printcmds.exp: p ctable1[103]
+PASS: gdb.base/printcmds.exp: p ctable1[104]
+PASS: gdb.base/printcmds.exp: p ctable1[105]
+PASS: gdb.base/printcmds.exp: p ctable1[106]
+PASS: gdb.base/printcmds.exp: p ctable1[107]
+PASS: gdb.base/printcmds.exp: p ctable1[108]
+PASS: gdb.base/printcmds.exp: p ctable1[109]
+PASS: gdb.base/printcmds.exp: p ctable1[110]
+PASS: gdb.base/printcmds.exp: p ctable1[111]
+PASS: gdb.base/printcmds.exp: p ctable1[112]
+PASS: gdb.base/printcmds.exp: p ctable1[113]
+PASS: gdb.base/printcmds.exp: p ctable1[114]
+PASS: gdb.base/printcmds.exp: p ctable1[115]
+PASS: gdb.base/printcmds.exp: p ctable1[116]
+PASS: gdb.base/printcmds.exp: p ctable1[117]
+PASS: gdb.base/printcmds.exp: p ctable1[118]
+PASS: gdb.base/printcmds.exp: p ctable1[119]
+PASS: gdb.base/printcmds.exp: p ctable1[120]
+PASS: gdb.base/printcmds.exp: p ctable1[121]
+PASS: gdb.base/printcmds.exp: p ctable1[122]
+PASS: gdb.base/printcmds.exp: p ctable1[123]
+PASS: gdb.base/printcmds.exp: p ctable1[124]
+PASS: gdb.base/printcmds.exp: p ctable1[125]
+PASS: gdb.base/printcmds.exp: p ctable1[126]
+PASS: gdb.base/printcmds.exp: p ctable1[127]
+PASS: gdb.base/printcmds.exp: p ctable1[128]
+PASS: gdb.base/printcmds.exp: p ctable1[129]
+PASS: gdb.base/printcmds.exp: p ctable1[130]
+PASS: gdb.base/printcmds.exp: p ctable1[131]
+PASS: gdb.base/printcmds.exp: p ctable1[132]
+PASS: gdb.base/printcmds.exp: p ctable1[133]
+PASS: gdb.base/printcmds.exp: p ctable1[134]
+PASS: gdb.base/printcmds.exp: p ctable1[135]
+PASS: gdb.base/printcmds.exp: p ctable1[136]
+PASS: gdb.base/printcmds.exp: p ctable1[137]
+PASS: gdb.base/printcmds.exp: p ctable1[138]
+PASS: gdb.base/printcmds.exp: p ctable1[139]
+PASS: gdb.base/printcmds.exp: p ctable1[140]
+PASS: gdb.base/printcmds.exp: p ctable1[141]
+PASS: gdb.base/printcmds.exp: p ctable1[142]
+PASS: gdb.base/printcmds.exp: p ctable1[143]
+PASS: gdb.base/printcmds.exp: p ctable1[144]
+PASS: gdb.base/printcmds.exp: p ctable1[145]
+PASS: gdb.base/printcmds.exp: p ctable1[146]
+PASS: gdb.base/printcmds.exp: p ctable1[147]
+PASS: gdb.base/printcmds.exp: p ctable1[148]
+PASS: gdb.base/printcmds.exp: p ctable1[149]
+PASS: gdb.base/printcmds.exp: p ctable1[150]
+PASS: gdb.base/printcmds.exp: p ctable1[151]
+PASS: gdb.base/printcmds.exp: p ctable1[152]
+PASS: gdb.base/printcmds.exp: p ctable1[153]
+PASS: gdb.base/printcmds.exp: p ctable1[154]
+PASS: gdb.base/printcmds.exp: p ctable1[155]
+PASS: gdb.base/printcmds.exp: p ctable1[156]
+PASS: gdb.base/printcmds.exp: p ctable1[157]
+PASS: gdb.base/printcmds.exp: p ctable1[158]
+PASS: gdb.base/printcmds.exp: p ctable1[159]
+PASS: gdb.base/printcmds.exp: p ctable1[160]
+PASS: gdb.base/printcmds.exp: p ctable1[161]
+PASS: gdb.base/printcmds.exp: p ctable1[162]
+PASS: gdb.base/printcmds.exp: p ctable1[163]
+PASS: gdb.base/printcmds.exp: p ctable1[164]
+PASS: gdb.base/printcmds.exp: p ctable1[165]
+PASS: gdb.base/printcmds.exp: p ctable1[166]
+PASS: gdb.base/printcmds.exp: p ctable1[167]
+PASS: gdb.base/printcmds.exp: p ctable1[168]
+PASS: gdb.base/printcmds.exp: p ctable1[169]
+PASS: gdb.base/printcmds.exp: p ctable1[170]
+PASS: gdb.base/printcmds.exp: p ctable1[171]
+PASS: gdb.base/printcmds.exp: p ctable1[172]
+PASS: gdb.base/printcmds.exp: p ctable1[173]
+PASS: gdb.base/printcmds.exp: p ctable1[174]
+PASS: gdb.base/printcmds.exp: p ctable1[175]
+PASS: gdb.base/printcmds.exp: p ctable1[176]
+PASS: gdb.base/printcmds.exp: p ctable1[177]
+PASS: gdb.base/printcmds.exp: p ctable1[178]
+PASS: gdb.base/printcmds.exp: p ctable1[179]
+PASS: gdb.base/printcmds.exp: p ctable1[180]
+PASS: gdb.base/printcmds.exp: p ctable1[181]
+PASS: gdb.base/printcmds.exp: p ctable1[182]
+PASS: gdb.base/printcmds.exp: p ctable1[183]
+PASS: gdb.base/printcmds.exp: p ctable1[184]
+PASS: gdb.base/printcmds.exp: p ctable1[185]
+PASS: gdb.base/printcmds.exp: p ctable1[186]
+PASS: gdb.base/printcmds.exp: p ctable1[187]
+PASS: gdb.base/printcmds.exp: p ctable1[188]
+PASS: gdb.base/printcmds.exp: p ctable1[189]
+PASS: gdb.base/printcmds.exp: p ctable1[190]
+PASS: gdb.base/printcmds.exp: p ctable1[191]
+PASS: gdb.base/printcmds.exp: p ctable1[192]
+PASS: gdb.base/printcmds.exp: p ctable1[193]
+PASS: gdb.base/printcmds.exp: p ctable1[194]
+PASS: gdb.base/printcmds.exp: p ctable1[195]
+PASS: gdb.base/printcmds.exp: p ctable1[196]
+PASS: gdb.base/printcmds.exp: p ctable1[197]
+PASS: gdb.base/printcmds.exp: p ctable1[198]
+PASS: gdb.base/printcmds.exp: p ctable1[199]
+PASS: gdb.base/printcmds.exp: p ctable1[200]
+PASS: gdb.base/printcmds.exp: p ctable1[201]
+PASS: gdb.base/printcmds.exp: p ctable1[202]
+PASS: gdb.base/printcmds.exp: p ctable1[203]
+PASS: gdb.base/printcmds.exp: p ctable1[204]
+PASS: gdb.base/printcmds.exp: p ctable1[205]
+PASS: gdb.base/printcmds.exp: p ctable1[206]
+PASS: gdb.base/printcmds.exp: p ctable1[207]
+PASS: gdb.base/printcmds.exp: p ctable1[208]
+PASS: gdb.base/printcmds.exp: p ctable1[209]
+PASS: gdb.base/printcmds.exp: p ctable1[210]
+PASS: gdb.base/printcmds.exp: p ctable1[211]
+PASS: gdb.base/printcmds.exp: p ctable1[212]
+PASS: gdb.base/printcmds.exp: p ctable1[213]
+PASS: gdb.base/printcmds.exp: p ctable1[214]
+PASS: gdb.base/printcmds.exp: p ctable1[215]
+PASS: gdb.base/printcmds.exp: p ctable1[216]
+PASS: gdb.base/printcmds.exp: p ctable1[217]
+PASS: gdb.base/printcmds.exp: p ctable1[218]
+PASS: gdb.base/printcmds.exp: p ctable1[219]
+PASS: gdb.base/printcmds.exp: p ctable1[220]
+PASS: gdb.base/printcmds.exp: p ctable1[221]
+PASS: gdb.base/printcmds.exp: p ctable1[222]
+PASS: gdb.base/printcmds.exp: p ctable1[223]
+PASS: gdb.base/printcmds.exp: p ctable1[224]
+PASS: gdb.base/printcmds.exp: p ctable1[225]
+PASS: gdb.base/printcmds.exp: p ctable1[226]
+PASS: gdb.base/printcmds.exp: p ctable1[227]
+PASS: gdb.base/printcmds.exp: p ctable1[228]
+PASS: gdb.base/printcmds.exp: p ctable1[229]
+PASS: gdb.base/printcmds.exp: p ctable1[230]
+PASS: gdb.base/printcmds.exp: p ctable1[231]
+PASS: gdb.base/printcmds.exp: p ctable1[232]
+PASS: gdb.base/printcmds.exp: p ctable1[233]
+PASS: gdb.base/printcmds.exp: p ctable1[234]
+PASS: gdb.base/printcmds.exp: p ctable1[235]
+PASS: gdb.base/printcmds.exp: p ctable1[236]
+PASS: gdb.base/printcmds.exp: p ctable1[237]
+PASS: gdb.base/printcmds.exp: p ctable1[238]
+PASS: gdb.base/printcmds.exp: p ctable1[239]
+PASS: gdb.base/printcmds.exp: p ctable1[240]
+PASS: gdb.base/printcmds.exp: p ctable1[241]
+PASS: gdb.base/printcmds.exp: p ctable1[242]
+PASS: gdb.base/printcmds.exp: p ctable1[243]
+PASS: gdb.base/printcmds.exp: p ctable1[244]
+PASS: gdb.base/printcmds.exp: p ctable1[245]
+PASS: gdb.base/printcmds.exp: p ctable1[246]
+PASS: gdb.base/printcmds.exp: p ctable1[247]
+PASS: gdb.base/printcmds.exp: p ctable1[248]
+PASS: gdb.base/printcmds.exp: p ctable1[249]
+PASS: gdb.base/printcmds.exp: p ctable1[250]
+PASS: gdb.base/printcmds.exp: p ctable1[251]
+PASS: gdb.base/printcmds.exp: p ctable1[252]
+PASS: gdb.base/printcmds.exp: p ctable1[253]
+PASS: gdb.base/printcmds.exp: p ctable1[254]
+PASS: gdb.base/printcmds.exp: p ctable1[255]
+PASS: gdb.base/printcmds.exp: set print elements 1
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: set print elements 2
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: set print elements 3
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: set print elements 4
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: set print elements 5
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: set print elements 6
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: set print elements 7
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: set print elements 8
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: set print elements 9
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: set print elements 10
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: set print elements 11
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: set print elements 12
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: set print elements 13
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: set print elements 14
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: set print elements 15
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: set print elements 16
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: correct element repeats in array embedded at offset > 0
+PASS: gdb.base/printcmds.exp: set print elements 0
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 0
+PASS: gdb.base/printcmds.exp: set print elements 1
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 1
+PASS: gdb.base/printcmds.exp: set print elements 5
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 5
+PASS: gdb.base/printcmds.exp: set print elements 19
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 19
+PASS: gdb.base/printcmds.exp: set print elements 20
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 20
+PASS: gdb.base/printcmds.exp: set print elements 8
+PASS: gdb.base/printcmds.exp: p &ctable1[0]
+PASS: gdb.base/printcmds.exp: p &ctable1[1]
+PASS: gdb.base/printcmds.exp: p &ctable1[1*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[2*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[3*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[4*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[5*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[6*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[7*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[8*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[9*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[10*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[11*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[12*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[13*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[14*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[15*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[16*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[17*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[18*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[19*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[20*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[21*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[22*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[23*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[24*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[25*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[26*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[27*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[28*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[29*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[30*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[31*8]
+PASS: gdb.base/printcmds.exp: set print elements 24
+PASS: gdb.base/printcmds.exp: set print elements 24
+PASS: gdb.base/printcmds.exp: p a1[0]
+PASS: gdb.base/printcmds.exp: p a1[9]
+PASS: gdb.base/printcmds.exp: p a2
+PASS: gdb.base/printcmds.exp: p a2[0]
+PASS: gdb.base/printcmds.exp: p a2[3]
+PASS: gdb.base/printcmds.exp: set print null-stop on
+PASS: gdb.base/printcmds.exp: print a2 with null-stop on
+PASS: gdb.base/printcmds.exp: set print null-stop off
+PASS: gdb.base/printcmds.exp: p int1dim[0]@2
+PASS: gdb.base/printcmds.exp: p int1dim[0]@2@3
+PASS: gdb.base/printcmds.exp: set print elements 24
+PASS: gdb.base/printcmds.exp: set print address on
+PASS: gdb.base/printcmds.exp: p arrays
+PASS: gdb.base/printcmds.exp: p parrays
+PASS: gdb.base/printcmds.exp: p parrays->array1
+PASS: gdb.base/printcmds.exp: p &parrays->array1
+PASS: gdb.base/printcmds.exp: p parrays->array2
+PASS: gdb.base/printcmds.exp: p &parrays->array2
+PASS: gdb.base/printcmds.exp: p parrays->array3
+PASS: gdb.base/printcmds.exp: p &parrays->array3
+PASS: gdb.base/printcmds.exp: p parrays->array4
+PASS: gdb.base/printcmds.exp: p &parrays->array4
+PASS: gdb.base/printcmds.exp: p parrays->array5
+PASS: gdb.base/printcmds.exp: p &parrays->array5
+PASS: gdb.base/printcmds.exp: set print address off
+PASS: gdb.base/printcmds.exp: set print elements 50
+PASS: gdb.base/printcmds.exp: p "a string"
+PASS: gdb.base/printcmds.exp: p "embedded \000 null"
+PASS: gdb.base/printcmds.exp: p "abcd"[2]
+PASS: gdb.base/printcmds.exp: p sizeof ("abcdef")
+PASS: gdb.base/printcmds.exp: ptype "foo"
+PASS: gdb.base/printcmds.exp: p *"foo"
+PASS: gdb.base/printcmds.exp: ptype *"foo"
+PASS: gdb.base/printcmds.exp: p &*"foo"
+PASS: gdb.base/printcmds.exp: ptype &*"foo"
+PASS: gdb.base/printcmds.exp: p (char *)"foo"
+PASS: gdb.base/printcmds.exp: print {'a','b','c'}
+PASS: gdb.base/printcmds.exp: print {4,5,6}[2]
+PASS: gdb.base/printcmds.exp: print *&{4,5,6}[1]
+PASS: gdb.base/printcmds.exp: print some_volatile_enum
+PASS: gdb.base/printcmds.exp: print three
+PASS: gdb.base/printcmds.exp: printf "x=%d,y=%d,z=%d\n", 5, 6, 7
+PASS: gdb.base/printcmds.exp: printf "string=%.4sxx\n", teststring
+PASS: gdb.base/printcmds.exp: printf "string=%sxx\n", teststring
+PASS: gdb.base/printcmds.exp: printf "%f is fun\n", 1.0
+PASS: gdb.base/printcmds.exp: printf "x=%d,y=%f,z=%d\n", 5, 6.0, 7
+PASS: gdb.base/printcmds.exp: printf "%x %f, %c %x, %x, %f\n", 0xbad, -99.541, 'z', 0xfeedface, 0xdeadbeef, 5.0
+PASS: gdb.base/printcmds.exp: printf "%c\n", "x"[1,0]
+PASS: gdb.base/printcmds.exp: printf "%%%d%%\n", 5
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",-1.2df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.234567df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",-1.234567df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1234567.df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",-1234567.df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E1df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E10df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E-10df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E96df
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",-1.2dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.234567890123456dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",-1.234567890123456dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1234567890123456.dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",-1234567890123456.dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E1dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E10dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E-10dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E384dd
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",-1.2dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.234567890123456789012345678901234dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",-1.234567890123456789012345678901234dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1234567890123456789012345678901234.dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",-1234567890123456789012345678901234.dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E1dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E10dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E-10dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E6144dl
+PASS: gdb.base/printcmds.exp: printf "%Hf %Hf\n",1.2df,1.3df
+PASS: gdb.base/printcmds.exp: set print symbol on
+PASS: gdb.base/printcmds.exp: print &three
+PASS: gdb.base/printcmds.exp: print parrays
+PASS: gdb.base/printcmds.exp: set print symbol off
+PASS: gdb.base/printcmds.exp: print invalid_LLL
+PASS: gdb.base/printcmds.exp: print invalid_LLE
+PASS: gdb.base/printcmds.exp: print invalid_LLR
+PASS: gdb.base/printcmds.exp: print invalid_LLS
+PASS: gdb.base/printcmds.exp: print invalid_ELL
+PASS: gdb.base/printcmds.exp: print invalid_ELR
+PASS: gdb.base/printcmds.exp: print invalid_ELS
+PASS: gdb.base/printcmds.exp: print invalid_RLL
+PASS: gdb.base/printcmds.exp: print invalid_RLE
+PASS: gdb.base/printcmds.exp: print invalid_RLR
+PASS: gdb.base/printcmds.exp: print invalid_RLS
+PASS: gdb.base/printcmds.exp: print invalid_SLL
+PASS: gdb.base/printcmds.exp: print invalid_SLE
+PASS: gdb.base/printcmds.exp: print invalid_SLR
+PASS: gdb.base/printcmds.exp: print invalid_SLS
+PASS: gdb.base/printcmds.exp: print invalid_LRL
+PASS: gdb.base/printcmds.exp: print invalid_LRE
+PASS: gdb.base/printcmds.exp: print invalid_LRR
+PASS: gdb.base/printcmds.exp: print invalid_LRS
+PASS: gdb.base/printcmds.exp: print invalid_ERL
+PASS: gdb.base/printcmds.exp: print invalid_ERR
+PASS: gdb.base/printcmds.exp: print invalid_ERS
+PASS: gdb.base/printcmds.exp: print invalid_RRL
+PASS: gdb.base/printcmds.exp: print invalid_RRE
+PASS: gdb.base/printcmds.exp: print invalid_RRR
+PASS: gdb.base/printcmds.exp: print invalid_RRS
+PASS: gdb.base/printcmds.exp: print invalid_SRL
+PASS: gdb.base/printcmds.exp: print invalid_SRE
+PASS: gdb.base/printcmds.exp: print invalid_SRR
+PASS: gdb.base/printcmds.exp: print invalid_SRS
+PASS: gdb.base/printcmds.exp: print invalid_LSL
+PASS: gdb.base/printcmds.exp: print invalid_LSE
+PASS: gdb.base/printcmds.exp: print invalid_LSR
+PASS: gdb.base/printcmds.exp: print invalid_LSS
+PASS: gdb.base/printcmds.exp: print invalid_ESL
+PASS: gdb.base/printcmds.exp: print invalid_ESR
+PASS: gdb.base/printcmds.exp: print invalid_ESS
+PASS: gdb.base/printcmds.exp: print invalid_RSL
+PASS: gdb.base/printcmds.exp: print invalid_RSE
+PASS: gdb.base/printcmds.exp: print invalid_RSR
+PASS: gdb.base/printcmds.exp: print invalid_RSS
+PASS: gdb.base/printcmds.exp: print invalid_SSL
+PASS: gdb.base/printcmds.exp: print invalid_SSE
+PASS: gdb.base/printcmds.exp: print invalid_SSR
+PASS: gdb.base/printcmds.exp: print invalid_SSS
+Running ./gdb.base/print-file-var.exp ...
+PASS: gdb.base/print-file-var.exp: breapoint past v1 & v2 initialization
+PASS: gdb.base/print-file-var.exp: continue to STOP marker
+PASS: gdb.base/print-file-var.exp: print 'print-file-var-lib1.c'::this_version_id == v1
+PASS: gdb.base/print-file-var.exp: print 'print-file-var-lib2.c'::this_version_id == v2
+Running ./gdb.base/prologue.exp ...
+PASS: gdb.base/prologue.exp: setting breakpoint at marker
+PASS: gdb.base/prologue.exp: continue to marker
+PASS: gdb.base/prologue.exp: reading $pc: marker
+PASS: gdb.base/prologue.exp: setting breakpoint at other
+PASS: gdb.base/prologue.exp: continue to other
+PASS: gdb.base/prologue.exp: reading $pc: other
+PASS: gdb.base/prologue.exp: same pc from minimal symbol
+Running ./gdb.base/prologue-include.exp ...
+PASS: gdb.base/prologue-include.exp: breakpoint main
+Running ./gdb.base/psymtab.exp ...
+PASS: gdb.base/psymtab.exp: psymtab pending setup
+PASS: gdb.base/psymtab.exp: Don't search past end of psymtab.
+Running ./gdb.base/ptr-typedef.exp ...
+PASS: gdb.base/ptr-typedef.exp: print foo_ptr
+PASS: gdb.base/ptr-typedef.exp: print foz_ptr
+Running ./gdb.base/ptype.exp ...
+PASS: gdb.base/ptype.exp: ptype unnamed enumeration member
+PASS: gdb.base/ptype.exp: ptype structure
+PASS: gdb.base/ptype.exp: ptype v_struct1.v_float_member
+PASS: gdb.base/ptype.exp: ptype v_struct1->v_float_member
+PASS: gdb.base/ptype.exp: ptype v_t_struct_p.v_float_member
+PASS: gdb.base/ptype.exp: ptype v_t_struct_p->v_float_member
+PASS: gdb.base/ptype.exp: ptype linked list structure
+PASS: gdb.base/ptype.exp: ptype union
+PASS: gdb.base/ptype.exp: ptype linked list union
+PASS: gdb.base/ptype.exp: ptype unnamed enumeration
+PASS: gdb.base/ptype.exp: ptype named enumeration
+PASS: gdb.base/ptype.exp: ptype unnamed typedef'd enumeration
+PASS: gdb.base/ptype.exp: list main
+PASS: gdb.base/ptype.exp: whatis unnamed typedef'd enum (compiler bug in IBM's xlc)
+PASS: gdb.base/ptype.exp: printing typedef'd struct
+PASS: gdb.base/ptype.exp: printing typedef'd union
+PASS: gdb.base/ptype.exp: ptype named typedef'd enumf'd enum
+PASS: gdb.base/ptype.exp: ptype misordered enumeration
+PASS: gdb.base/ptype.exp: ptype named enumeration member
+PASS: gdb.base/ptype.exp: ptype unnamed enumeration member #2
+PASS: gdb.base/ptype.exp: ptype short
+PASS: gdb.base/ptype.exp: ptype int
+PASS: gdb.base/ptype.exp: ptype t_char_array
+PASS: gdb.base/ptype.exp: ptype pv_char_array
+PASS: gdb.base/ptype.exp: ptype outer structure
+PASS: gdb.base/ptype.exp: ptype inner structure
+PASS: gdb.base/ptype.exp: ptype inner union
+PASS: gdb.base/ptype.exp: ptype nested structure
+PASS: gdb.base/ptype.exp: ptype outer int
+PASS: gdb.base/ptype.exp: ptype nested structure #2
+PASS: gdb.base/ptype.exp: ptype inner int
+PASS: gdb.base/ptype.exp: ptype nested union
+PASS: gdb.base/ptype.exp: ptype the_highest
+PASS: gdb.base/ptype.exp: ptype the_highest
+PASS: gdb.base/ptype.exp: ptype func_type
+PASS: gdb.base/ptype.exp: ptype old_fptr
+PASS: gdb.base/ptype.exp: ptype new_fptr
+PASS: gdb.base/ptype.exp: ptype fptr
+PASS: gdb.base/ptype.exp: ptype fptr2
+PASS: gdb.base/ptype.exp: ptype xptr
+PASS: gdb.base/ptype.exp: ptype ffptr
+PASS: gdb.base/ptype.exp: ptype fffptr
+PASS: gdb.base/ptype.exp: list intfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after first list of intfoo
+PASS: gdb.base/ptype.exp: list charfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after first list of charfoo
+PASS: gdb.base/ptype.exp: list intfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after second list of intfoo
+PASS: gdb.base/ptype.exp: list charfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after second list of charfoo
+PASS: gdb.base/ptype.exp: ptype "abc"
+PASS: gdb.base/ptype.exp: ptype {'a','b','c'}
+PASS: gdb.base/ptype.exp: ptype {0,1,2}
+PASS: gdb.base/ptype.exp: ptype {(long)0,(long)1,(long)2}
+PASS: gdb.base/ptype.exp: ptype {(float)0,(float)1,(float)2}
+PASS: gdb.base/ptype.exp: ptype {{0,1,2},{3,4,5}}
+PASS: gdb.base/ptype.exp: ptype {4,5,6}[2]
+PASS: gdb.base/ptype.exp: ptype *&{4,5,6}[1]
+PASS: gdb.base/ptype.exp: ptype $pc
+Running ./gdb.base/radix.exp ...
+PASS: gdb.base/radix.exp: initialize radix, input radix 2
+PASS: gdb.base/radix.exp: set input-radix 2
+PASS: gdb.base/radix.exp: show radix, input radix 2
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 2
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 2
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 2
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 2
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 2
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 2
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 2
+PASS: gdb.base/radix.exp: print 10; expect 2; input radix 2
+PASS: gdb.base/radix.exp: print 11; expect 3; input radix 2
+PASS: gdb.base/radix.exp: print -10; expect -2; input radix 2
+PASS: gdb.base/radix.exp: print -11; expect -3; input radix 2
+PASS: gdb.base/radix.exp: print 100; expect 4; input radix 2
+PASS: gdb.base/radix.exp: print 101; expect 5; input radix 2
+PASS: gdb.base/radix.exp: print -100; expect -4; input radix 2
+PASS: gdb.base/radix.exp: print -101; expect -5; input radix 2
+PASS: gdb.base/radix.exp: print 10101; expect 21; input radix 2
+PASS: gdb.base/radix.exp: print 4; expect Invalid number "4"\.; input radix 2
+PASS: gdb.base/radix.exp: print -2; expect Invalid number "2"\.; input radix 2
+PASS: gdb.base/radix.exp: initialize radix, input radix 3
+PASS: gdb.base/radix.exp: set input-radix 3
+PASS: gdb.base/radix.exp: show radix, input radix 3
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 3
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 3
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 3
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 3
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 3
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 3
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 3
+PASS: gdb.base/radix.exp: print 10; expect 3; input radix 3
+PASS: gdb.base/radix.exp: print 11; expect 4; input radix 3
+PASS: gdb.base/radix.exp: print -10; expect -3; input radix 3
+PASS: gdb.base/radix.exp: print -11; expect -4; input radix 3
+PASS: gdb.base/radix.exp: print 100; expect 9; input radix 3
+PASS: gdb.base/radix.exp: print 101; expect 10; input radix 3
+PASS: gdb.base/radix.exp: print -100; expect -9; input radix 3
+PASS: gdb.base/radix.exp: print -101; expect -10; input radix 3
+PASS: gdb.base/radix.exp: print 10101; expect 91; input radix 3
+PASS: gdb.base/radix.exp: print 2; expect 2; input radix 3
+PASS: gdb.base/radix.exp: print 20; expect 6; input radix 3
+PASS: gdb.base/radix.exp: print 3; expect Invalid number "3"\.; input radix 3
+PASS: gdb.base/radix.exp: print 30; expect Invalid number "30"\.; input radix 2
+PASS: gdb.base/radix.exp: initialize radix, input radix 8
+PASS: gdb.base/radix.exp: set input-radix 8
+PASS: gdb.base/radix.exp: show radix, input radix 8
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 8
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 8
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 8
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 8
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 8
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 8
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 8
+PASS: gdb.base/radix.exp: print 10; expect 8; input radix 8
+PASS: gdb.base/radix.exp: print 11; expect 9; input radix 8
+PASS: gdb.base/radix.exp: print -10; expect -8; input radix 8
+PASS: gdb.base/radix.exp: print -11; expect -9; input radix 8
+PASS: gdb.base/radix.exp: print 100; expect 64; input radix 8
+PASS: gdb.base/radix.exp: print 101; expect 65; input radix 8
+PASS: gdb.base/radix.exp: print -100; expect -64; input radix 8
+PASS: gdb.base/radix.exp: print -101; expect -65; input radix 8
+PASS: gdb.base/radix.exp: print 10101; expect 4161; input radix 8
+PASS: gdb.base/radix.exp: print 20; expect 16; input radix 8
+PASS: gdb.base/radix.exp: print -20; expect -16; input radix 8
+PASS: gdb.base/radix.exp: print 8; expect Invalid number "8".; input radix 8
+PASS: gdb.base/radix.exp: print -9; expect Invalid number "9".; input radix 8
+PASS: gdb.base/radix.exp: initialize radix, input radix 10
+PASS: gdb.base/radix.exp: set input-radix 10
+PASS: gdb.base/radix.exp: show radix, input radix 10
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 10
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 10
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 10
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 10
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 10
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 10
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 10
+PASS: gdb.base/radix.exp: print 10; expect 10; input radix 10
+PASS: gdb.base/radix.exp: print 11; expect 11; input radix 10
+PASS: gdb.base/radix.exp: print -10; expect -10; input radix 10
+PASS: gdb.base/radix.exp: print -11; expect -11; input radix 10
+PASS: gdb.base/radix.exp: print 100; expect 100; input radix 10
+PASS: gdb.base/radix.exp: print 101; expect 101; input radix 10
+PASS: gdb.base/radix.exp: print -100; expect -100; input radix 10
+PASS: gdb.base/radix.exp: print -101; expect -101; input radix 10
+PASS: gdb.base/radix.exp: print 10101; expect 10101; input radix 10
+PASS: gdb.base/radix.exp: print -12; expect -12; input radix 10
+PASS: gdb.base/radix.exp: initialize radix, input radix 16
+PASS: gdb.base/radix.exp: set input-radix 16
+PASS: gdb.base/radix.exp: show radix, input radix 16
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 16
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 16
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 16
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 16
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 16
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 16
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 16
+PASS: gdb.base/radix.exp: print 10; expect 16; input radix 16
+PASS: gdb.base/radix.exp: print 11; expect 17; input radix 16
+PASS: gdb.base/radix.exp: print -10; expect -16; input radix 16
+PASS: gdb.base/radix.exp: print -11; expect -17; input radix 16
+PASS: gdb.base/radix.exp: print 100; expect 256; input radix 16
+PASS: gdb.base/radix.exp: print 101; expect 257; input radix 16
+PASS: gdb.base/radix.exp: print -100; expect -256; input radix 16
+PASS: gdb.base/radix.exp: print -101; expect -257; input radix 16
+PASS: gdb.base/radix.exp: print 10101; expect 65793; input radix 16
+PASS: gdb.base/radix.exp: initialize radix, output radix 8
+PASS: gdb.base/radix.exp: set output-radix 8
+PASS: gdb.base/radix.exp: show radix, output radix 8
+PASS: gdb.base/radix.exp: print 010; expect 010; output radix 8
+PASS: gdb.base/radix.exp: print 0xf; expect 17; output radix 8
+PASS: gdb.base/radix.exp: print 10; expect 12; output radix 8
+PASS: gdb.base/radix.exp: print 100; expect 144; output radix 8
+KFAIL: gdb.base/radix.exp: print 20.; expect 24; output radix 8 (PRMS: gdb/1715)
+PASS: gdb.base/radix.exp: print (int) 20.; expect 24; output radix 8
+PASS: gdb.base/radix.exp: initialize radix, output radix 10
+PASS: gdb.base/radix.exp: set output-radix 10
+PASS: gdb.base/radix.exp: show radix, output radix 10
+PASS: gdb.base/radix.exp: print 010; expect 8; output radix 10
+PASS: gdb.base/radix.exp: print 0xf; expect 15; output radix 10
+PASS: gdb.base/radix.exp: print 10; expect 10; output radix 10
+PASS: gdb.base/radix.exp: print 100; expect 100; output radix 10
+PASS: gdb.base/radix.exp: print 20.; expect 20; output radix 10
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; output radix 10
+PASS: gdb.base/radix.exp: initialize radix, output radix 16
+PASS: gdb.base/radix.exp: set output-radix 16
+PASS: gdb.base/radix.exp: show radix, output radix 16
+PASS: gdb.base/radix.exp: print 010; expect 8; output radix 16
+PASS: gdb.base/radix.exp: print 0xf; expect f; output radix 16
+PASS: gdb.base/radix.exp: print 10; expect a; output radix 16
+PASS: gdb.base/radix.exp: print 100; expect 64; output radix 16
+KFAIL: gdb.base/radix.exp: print 20.; expect 14; output radix 16 (PRMS: gdb/1715)
+PASS: gdb.base/radix.exp: print (int) 20.; expect 14; output radix 16
+PASS: gdb.base/radix.exp: Reset radices
+PASS: gdb.base/radix.exp: Reject input-radix 0
+PASS: gdb.base/radix.exp: Input radix unchanged after rejecting 0
+PASS: gdb.base/radix.exp: Reject input-radix 1
+PASS: gdb.base/radix.exp: Input radix unchanged after rejecting 1
+PASS: gdb.base/radix.exp: Reject output-radix 0
+PASS: gdb.base/radix.exp: Output radix unchanged after rejecting 0
+PASS: gdb.base/radix.exp: Reject output-radix 1
+PASS: gdb.base/radix.exp: Output radix unchanged after rejecting 1
+PASS: gdb.base/radix.exp: set radix 7 rejected
+PASS: gdb.base/radix.exp: Output radix unchanged after rejection through set radix command
+Running ./gdb.base/randomize.exp ...
+UNTESTED: gdb.base/randomize.exp: Disabling randomization is not supported on this Linux GDB
+Running ./gdb.base/random-signal.exp ...
+PASS: gdb.base/random-signal.exp: set can-use-hw-watchpoints 0
+PASS: gdb.base/random-signal.exp: watch v
+PASS: gdb.base/random-signal.exp: continue
+FAIL: gdb.base/random-signal.exp: stop with control-c
+Running ./gdb.base/readline-ask.exp ...
+PASS: gdb.base/readline-ask.exp: set width 50
+PASS: gdb.base/readline-ask.exp: set height 3
+PASS: gdb.base/readline-ask.exp: bell for more message
+FAIL: gdb.base/readline-ask.exp: more message for 01 and 02
+FAIL: gdb.base/readline-ask.exp: more message for 03
+FAIL: gdb.base/readline-ask.exp: more finish for 04
+ERROR: Undefined command "foo".
+UNRESOLVED: gdb.base/readline-ask.exp: abort more message
+PASS: gdb.base/readline-ask.exp: bell for ask message
+FAIL: gdb.base/readline-ask.exp: ask message
+Running ./gdb.base/readline.exp ...
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 1
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 2
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 3
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 3
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 2
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 1
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 1
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 2
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 3
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - final prompt
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send if 1 > 0
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send p 5
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send end
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-p to end
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-p to p 5
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-p to if 1 > 0
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-o for if 1 > 0
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-o for p 5
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-o for end
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - final prompt
+PASS: gdb.base/readline.exp: print 42
+PASS: gdb.base/readline.exp: arrow keys with secondary prompt
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 7
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 8
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 9
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 9
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 8
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 7
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 7
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 8
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 9
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - final prompt
+Running ./gdb.base/realname-expand.exp ...
+PASS: gdb.base/realname-expand.exp: set basenames-may-differ on
+PASS: gdb.base/realname-expand.exp: rbreak realname-expand-real.c:func
+PASS: gdb.base/realname-expand.exp: set basenames-may-differ on
+PASS: gdb.base/realname-expand.exp: break realname-expand-real.c:func
+Running ./gdb.base/recpar.exp ...
+PASS: gdb.base/recpar.exp: break recpar.c:26 if n == 3
+PASS: gdb.base/recpar.exp: continue
+PASS: gdb.base/recpar.exp: backtrace
+PASS: gdb.base/recpar.exp: frame 2
+PASS: gdb.base/recpar.exp: print foo::val
+Running ./gdb.base/recurse.exp ...
+PASS: gdb.base/recurse.exp: next over b = 0 in first instance
+PASS: gdb.base/recurse.exp: set first instance watchpoint
+PASS: gdb.base/recurse.exp: continue to first instance watchpoint, first time
+PASS: gdb.base/recurse.exp: continue to recurse (a = 9)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 8)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 7)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 6)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 5)
+PASS: gdb.base/recurse.exp: next over b = 0 in second instance
+PASS: gdb.base/recurse.exp: set second instance watchpoint
+PASS: gdb.base/recurse.exp: continue to second instance watchpoint, first time
+PASS: gdb.base/recurse.exp: continue to recurse (a = 4)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 3)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 2)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 1)
+PASS: gdb.base/recurse.exp: continue to second instance watchpoint, second time
+PASS: gdb.base/recurse.exp: second instance watchpoint deleted when leaving scope
+PASS: gdb.base/recurse.exp: continue to first instance watchpoint, second time
+PASS: gdb.base/recurse.exp: first instance watchpoint deleted when leaving scope
+Running ./gdb.base/relational.exp ...
+PASS: gdb.base/relational.exp: set variable x=14
+PASS: gdb.base/relational.exp: set variable y=2
+PASS: gdb.base/relational.exp: set variable z=2
+PASS: gdb.base/relational.exp: set variable w=3
+PASS: gdb.base/relational.exp: print value of x
+PASS: gdb.base/relational.exp: print value of y
+PASS: gdb.base/relational.exp: print value of z
+PASS: gdb.base/relational.exp: print value of w
+PASS: gdb.base/relational.exp: print value of x<y
+PASS: gdb.base/relational.exp: print value of x<=y
+PASS: gdb.base/relational.exp: print value of x>y
+PASS: gdb.base/relational.exp: print value of x>=y
+PASS: gdb.base/relational.exp: print value of x==y
+PASS: gdb.base/relational.exp: print value of x!=y
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y<z
+PASS: gdb.base/relational.exp: print value of x<=y<=z
+PASS: gdb.base/relational.exp: print value of x>y>z
+PASS: gdb.base/relational.exp: print value of x>=y>=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x==y==z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x!=y!=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y==z
+PASS: gdb.base/relational.exp: print value of x<y!=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y<=z
+PASS: gdb.base/relational.exp: print value of x<y>=z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y>z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: print value of x>y>=z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>y==z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>y!=z
+PASS: gdb.base/relational.exp: set x to 4
+PASS: gdb.base/relational.exp: print value of x>y<=z
+PASS: gdb.base/relational.exp: print value of x>=y==z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: print value of x>=y!=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>=y<=z
+PASS: gdb.base/relational.exp: print value of x<=y==z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: print value of x<=y!=z
+PASS: gdb.base/relational.exp: print value of x==y!=z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>=(y<z)
+PASS: gdb.base/relational.exp: print value of x>=(y!=z)
+PASS: gdb.base/relational.exp: print value of x==(y==z)
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of (x==y)<z
+Running ./gdb.base/relativedebug.exp ...
+PASS: gdb.base/relativedebug.exp: continue
+PASS: gdb.base/relativedebug.exp: pause found in backtrace
+Running ./gdb.base/relocate.exp ...
+PASS: gdb.base/relocate.exp: add-symbol-file relocate.o 0
+PASS: gdb.base/relocate.exp: get address of static_foo
+PASS: gdb.base/relocate.exp: get address of static_bar
+PASS: gdb.base/relocate.exp: static variables have different addresses
+PASS: gdb.base/relocate.exp: get address of global_foo
+PASS: gdb.base/relocate.exp: get address of global_bar
+PASS: gdb.base/relocate.exp: global variables have different addresses
+PASS: gdb.base/relocate.exp: get address of function_foo
+PASS: gdb.base/relocate.exp: get address of function_bar
+PASS: gdb.base/relocate.exp: functions have different addresses
+PASS: gdb.base/relocate.exp: set $offset = 0x10000
+PASS: gdb.base/relocate.exp: add-symbol-file relocate.o $offset
+PASS: gdb.base/relocate.exp: get address of function_foo
+PASS: gdb.base/relocate.exp: function foo has a different address
+PASS: gdb.base/relocate.exp: print static_foo
+PASS: gdb.base/relocate.exp: print static_bar
+PASS: gdb.base/relocate.exp: print global_foo
+PASS: gdb.base/relocate.exp: print global_bar
+Running ./gdb.base/remote.exp ...
+PASS: gdb.base/remote.exp: write-packet default
+PASS: gdb.base/remote.exp: set write-packet - NULL
+PASS: gdb.base/remote.exp: set remote memory-write-packet-size 20
+PASS: gdb.base/remote.exp: set write-packet - small
+PASS: gdb.base/remote.exp: set remote memory-write-packet-size 1
+PASS: gdb.base/remote.exp: set write-packet - very-small
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 398 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 398
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 400 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 400
+PASS: gdb.base/remote.exp: timed download `remote' - fixed, 0 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - fixed, 0 - set write size class
+PASS: gdb.base/remote.exp: timed download `remote' - fixed, 16385 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 0 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 0
+PASS: gdb.base/remote.exp: get integer valueof "sizeof (random_data)" (49152)
+PASS: gdb.base/remote.exp: x/8ub random_data
+PASS: gdb.base/remote.exp: x/8ub random_data + 400 - 4
+PASS: gdb.base/remote.exp: x/8ub random_data + 16384 - 4
+PASS: gdb.base/remote.exp: set remote memory-read-packet-size 16
+PASS: gdb.base/remote.exp: show remote memory-read-packet-size
+PASS: gdb.base/remote.exp: x/17ub random_data
+PASS: gdb.base/remote.exp: set remote hardware-watchpoint-limit -1
+PASS: gdb.base/remote.exp: set remote hardware-breakpoint-limit -1
+PASS: gdb.base/remote.exp: set remote hardware-watchpoint-limit 2147483647
+PASS: gdb.base/remote.exp: set remote hardware-breakpoint-limit 2147483647
+Running ./gdb.base/remotetimeout.exp ...
+Running ./gdb.base/reread.exp ...
+PASS: gdb.base/reread.exp: breakpoint foo in first file
+PASS: gdb.base/reread.exp: run to foo()
+UNSUPPORTED: gdb.base/reread.exp: run to foo() second time
+UNSUPPORTED: gdb.base/reread.exp: second pass: GDB should check for changes before running
+Running ./gdb.base/restore.exp ...
+PASS: gdb.base/restore.exp: tbreak caller1
+PASS: gdb.base/restore.exp: run to caller1
+PASS: gdb.base/restore.exp: caller1 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: tbreak caller2
+PASS: gdb.base/restore.exp: run to caller2
+PASS: gdb.base/restore.exp: caller2 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee1; return callee now
+FAIL: gdb.base/restore.exp: caller2 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee2; return callee now
+FAIL: gdb.base/restore.exp: caller2 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee3; return callee now
+FAIL: gdb.base/restore.exp: caller2 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee4; return callee now
+FAIL: gdb.base/restore.exp: caller2 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee5; return callee now
+FAIL: gdb.base/restore.exp: caller2 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: tbreak caller3
+PASS: gdb.base/restore.exp: run to caller3
+PASS: gdb.base/restore.exp: caller3 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee1; return callee now
+FAIL: gdb.base/restore.exp: caller3 calls callee1; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller3 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee1; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee2; return callee now
+FAIL: gdb.base/restore.exp: caller3 calls callee2; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller3 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee2; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee3; return callee now
+FAIL: gdb.base/restore.exp: caller3 calls callee3; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller3 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee3; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee4; return callee now
+FAIL: gdb.base/restore.exp: caller3 calls callee4; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller3 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee4; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee5; return callee now
+FAIL: gdb.base/restore.exp: caller3 calls callee5; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller3 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee5; return restored l3 to 32494
+PASS: gdb.base/restore.exp: tbreak caller4
+PASS: gdb.base/restore.exp: run to caller4
+PASS: gdb.base/restore.exp: caller4 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee1; return callee now
+FAIL: gdb.base/restore.exp: caller4 calls callee1; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller4 calls callee1; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller4 calls callee1; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee1; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee2; return callee now
+FAIL: gdb.base/restore.exp: caller4 calls callee2; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller4 calls callee2; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller4 calls callee2; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee2; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee3; return callee now
+FAIL: gdb.base/restore.exp: caller4 calls callee3; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller4 calls callee3; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller4 calls callee3; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee3; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee4; return callee now
+FAIL: gdb.base/restore.exp: caller4 calls callee4; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller4 calls callee4; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller4 calls callee4; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee4; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee5; return callee now
+FAIL: gdb.base/restore.exp: caller4 calls callee5; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller4 calls callee5; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller4 calls callee5; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee5; return restored l4 to 32495
+PASS: gdb.base/restore.exp: tbreak caller5
+PASS: gdb.base/restore.exp: run to caller5
+PASS: gdb.base/restore.exp: caller5 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee1; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l3 to 32494
+FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee2; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee2; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller5 calls callee2; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller5 calls callee2; return restored l3 to 32494
+FAIL: gdb.base/restore.exp: caller5 calls callee2; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee3; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee3; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller5 calls callee3; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller5 calls callee3; return restored l3 to 32494
+FAIL: gdb.base/restore.exp: caller5 calls callee3; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee4; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee4; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller5 calls callee4; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller5 calls callee4; return restored l3 to 32494
+FAIL: gdb.base/restore.exp: caller5 calls callee4; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee5; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee5; return restored l1 to 32492
+FAIL: gdb.base/restore.exp: caller5 calls callee5; return restored l2 to 32493
+FAIL: gdb.base/restore.exp: caller5 calls callee5; return restored l3 to 32494
+FAIL: gdb.base/restore.exp: caller5 calls callee5; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l5 to 32496
+Running ./gdb.base/return2.exp ...
+PASS: gdb.base/return2.exp: set break on void_func
+PASS: gdb.base/return2.exp: continue to void_func
+PASS: gdb.base/return2.exp: return from void_func
+PASS: gdb.base/return2.exp: void function returned successfully
+PASS: gdb.base/return2.exp: set break on char_func
+PASS: gdb.base/return2.exp: continue to char_func
+PASS: gdb.base/return2.exp: return from char_func
+PASS: gdb.base/return2.exp: char value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on short_func
+PASS: gdb.base/return2.exp: continue to short_func
+PASS: gdb.base/return2.exp: return from short_func
+PASS: gdb.base/return2.exp: short value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on int_func
+PASS: gdb.base/return2.exp: continue to int_func
+PASS: gdb.base/return2.exp: return from int_func
+PASS: gdb.base/return2.exp: int value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on long_func
+PASS: gdb.base/return2.exp: continue to long_func
+PASS: gdb.base/return2.exp: return from long_func
+PASS: gdb.base/return2.exp: long value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on long_long_func
+PASS: gdb.base/return2.exp: continue to long_long_func
+PASS: gdb.base/return2.exp: return from long_long_func
+PASS: gdb.base/return2.exp: long_long value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on float_func
+PASS: gdb.base/return2.exp: continue to float_func
+PASS: gdb.base/return2.exp: return from float_func
+PASS: gdb.base/return2.exp: float value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on double_func
+PASS: gdb.base/return2.exp: continue to double_func
+PASS: gdb.base/return2.exp: return from double_func
+PASS: gdb.base/return2.exp: double value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+Running ./gdb.base/return.exp ...
+PASS: gdb.base/return.exp: simple return
+PASS: gdb.base/return.exp: break func2
+PASS: gdb.base/return.exp: break func3
+PASS: gdb.base/return.exp: continue to return of -5
+PASS: gdb.base/return.exp: next over call to func2
+PASS: gdb.base/return.exp: correct value returned (integer test)
+PASS: gdb.base/return.exp: continue to return of -5.0
+PASS: gdb.base/return.exp: next over call to func3
+PASS: gdb.base/return.exp: correct value returned double test (known problem with sparc solaris)
+Running ./gdb.base/return-nodebug.exp ...
+PASS: gdb.base/return-nodebug.exp: signed-char: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: signed-char: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: signed-char: advance to marker
+PASS: gdb.base/return-nodebug.exp: signed-char: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: short: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: short: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: short: advance to marker
+PASS: gdb.base/return-nodebug.exp: short: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: int: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: int: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: int: advance to marker
+PASS: gdb.base/return-nodebug.exp: int: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: long: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: long: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: long: advance to marker
+PASS: gdb.base/return-nodebug.exp: long: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: long-long: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: long-long: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: long-long: advance to marker
+PASS: gdb.base/return-nodebug.exp: long-long: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: float: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: float: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: float: advance to marker
+PASS: gdb.base/return-nodebug.exp: float: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: double: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: double: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: double: advance to marker
+PASS: gdb.base/return-nodebug.exp: double: full width of the returned result
+Running ./gdb.base/save-bp.exp ...
+PASS: gdb.base/save-bp.exp: add breakpoint commands
+PASS: gdb.base/save-bp.exp: dprintf save-bp.c:33,"At foo entry\n"
+PASS: gdb.base/save-bp.exp: save breakpoint bps
+PASS: gdb.base/save-bp.exp: source bps
+PASS: gdb.base/save-bp.exp: info break
+Running ./gdb.base/savedregs.exp ...
+PASS: gdb.base/savedregs.exp: advance thrower
+PASS: gdb.base/savedregs.exp: Get main info frame
+PASS: gdb.base/savedregs.exp: handle SIGSEGV pass print nostop
+PASS: gdb.base/savedregs.exp: handle SIGILL pass print nostop
+PASS: gdb.base/savedregs.exp: advance catcher
+PASS: gdb.base/savedregs.exp: Get sigtramp info frame
+PASS: gdb.base/savedregs.exp: Get thrower info frame
+PASS: gdb.base/savedregs.exp: Check main info frame; stack contains catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: break caller
+PASS: gdb.base/savedregs.exp: call caller (1,2,3,4,5,6,7,8)
+PASS: gdb.base/savedregs.exp: Get dummy info frame
+PASS: gdb.base/savedregs.exp: Get catcher info frame
+PASS: gdb.base/savedregs.exp: Check sigtramp info frame; stack contains caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check thrower info frame; stack contains caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check main info frame; stack contains caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: advance callee
+PASS: gdb.base/savedregs.exp: Get caller info frame
+PASS: gdb.base/savedregs.exp: Check dummy info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check catcher info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check sigtramp info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check thrower info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check main info frame; stack contains callee caller dummy catcher sigtramp thrower main
+Running ./gdb.base/scope.exp ...
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
+UNSUPPORTED: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss before run
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal before run
+PASS: gdb.base/scope.exp: next over init0() in main
+PASS: gdb.base/scope.exp: print filelocal
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at main
+PASS: gdb.base/scope.exp: print filelocal_bss
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_main
+PASS: gdb.base/scope.exp: print filelocal_ro in test_at_main
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro
+PASS: gdb.base/scope.exp: print foo::funclocal
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal
+PASS: gdb.base/scope.exp: print foo::funclocal_ro
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_ro
+PASS: gdb.base/scope.exp: print bar::funclocal
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at foo
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_foo
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
+PASS: gdb.base/scope.exp: print filelocal at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal at foo
+PASS: gdb.base/scope.exp: print filelocal_bss at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss at foo
+PASS: gdb.base/scope.exp: print filelocal_ro at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro at foo
+PASS: gdb.base/scope.exp: print funclocal at foo
+PASS: gdb.base/scope.exp: print foo::funclocal at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal at foo
+PASS: gdb.base/scope.exp: print funclocal_bss at foo
+PASS: gdb.base/scope.exp: print foo::funclocal_bss at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_bss at foo
+PASS: gdb.base/scope.exp: print funclocal_ro at foo
+PASS: gdb.base/scope.exp: print foo::funclocal_ro at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_ro at foo
+PASS: gdb.base/scope.exp: print bar::funclocal at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal at foo
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at bar
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_bar
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro at bar
+PASS: gdb.base/scope.exp: print filelocal at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal at bar
+PASS: gdb.base/scope.exp: print filelocal_bss at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss at bar
+PASS: gdb.base/scope.exp: print filelocal_ro in test_at_bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro at bar
+PASS: gdb.base/scope.exp: print foo::funclocal at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal at bar
+PASS: gdb.base/scope.exp: print foo::funclocal_bss at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_bss at bar
+PASS: gdb.base/scope.exp: print foo::funclocal_ro at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_ro at bar
+PASS: gdb.base/scope.exp: print funclocal at bar
+PASS: gdb.base/scope.exp: print bar::funclocal at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal at bar
+PASS: gdb.base/scope.exp: print funclocal_bss at bar
+PASS: gdb.base/scope.exp: print bar::funclocal_bss at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal_bss at bar
+PASS: gdb.base/scope.exp: continue to marker2
+PASS: gdb.base/scope.exp: up from marker2 in scopes.exp
+PASS: gdb.base/scope.exp: print localval, outer scope
+PASS: gdb.base/scope.exp: print localval1, outer scope
+PASS: gdb.base/scope.exp: print localval2, outer scope
+PASS: gdb.base/scope.exp: print localval3, outer scope
+PASS: gdb.base/scope.exp: continue to marker3 in scope.exp
+PASS: gdb.base/scope.exp: up from marker3 in scope.exp
+PASS: gdb.base/scope.exp: print localval, first nested scope
+PASS: gdb.base/scope.exp: print localval1, first nested scope
+PASS: gdb.base/scope.exp: print localval2, first nested scope
+PASS: gdb.base/scope.exp: print localval3, first nested scope
+PASS: gdb.base/scope.exp: continue to marker4 in scope.exp
+PASS: gdb.base/scope.exp: up from marker4 in scope.exp
+PASS: gdb.base/scope.exp: print localval, innermost scope
+PASS: gdb.base/scope.exp: print localval1, innermost scope
+PASS: gdb.base/scope.exp: print localval2, innermost scope
+PASS: gdb.base/scope.exp: print localval3, innermost scope
+PASS: gdb.base/scope.exp: continue to marker1
+PASS: gdb.base/scope.exp: up from marker1 in scope.exp
+PASS: gdb.base/scope.exp: 100 auto variables correctly initialized
+PASS: gdb.base/scope.exp: args in correct order
+Running ./gdb.base/sect-cmd.exp ...
+Running ./gdb.base/sepdebug.exp ...
+PASS: gdb.base/sepdebug.exp: breakpoint function
+PASS: gdb.base/sepdebug.exp: breakpoint quoted function
+PASS: gdb.base/sepdebug.exp: breakpoint function in file
+PASS: gdb.base/sepdebug.exp: use `list' to establish default source file
+PASS: gdb.base/sepdebug.exp: breakpoint line number
+PASS: gdb.base/sepdebug.exp: breakpoint duplicate
+PASS: gdb.base/sepdebug.exp: breakpoint line number in file
+PASS: gdb.base/sepdebug.exp: breakpoint at start of multi line if conditional
+PASS: gdb.base/sepdebug.exp: breakpoint at start of multi line while conditional
+PASS: gdb.base/sepdebug.exp: breakpoint info
+PASS: gdb.base/sepdebug.exp: run until function breakpoint
+PASS: gdb.base/sepdebug.exp: run until breakpoint set at a line number
+PASS: gdb.base/sepdebug.exp: run until file:function(6) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(5) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(4) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(3) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(2) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(1) breakpoint
+PASS: gdb.base/sepdebug.exp: run until quoted breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:linenum breakpoint
+PASS: gdb.base/sepdebug.exp: breakpoint offset +1
+PASS: gdb.base/sepdebug.exp: step onto breakpoint
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint function
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint function in file
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number #1
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number #2
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number in file #1
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number in file #2
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint info
+PASS: gdb.base/sepdebug.exp: catch requires an event name
+PASS: gdb.base/sepdebug.exp: set catch fork, never expected to trigger
+PASS: gdb.base/sepdebug.exp: set catch vfork, never expected to trigger
+PASS: gdb.base/sepdebug.exp: set catch exec, never expected to trigger
+PASS: gdb.base/sepdebug.exp: set breakpoint pending off
+PASS: gdb.base/sepdebug.exp: break on non-existent source line
+PASS: gdb.base/sepdebug.exp: until bp_location1
+PASS: gdb.base/sepdebug.exp: break on default location, 1st time
+PASS: gdb.base/sepdebug.exp: break on default location, 2nd time
+PASS: gdb.base/sepdebug.exp: break on default location, 3rd time
+PASS: gdb.base/sepdebug.exp: break on default location, 4th time
+PASS: gdb.base/sepdebug.exp: set to-be-silent break bp_location1
+PASS: gdb.base/sepdebug.exp: set silent break bp_location1
+PASS: gdb.base/sepdebug.exp: info silent break bp_location1
+PASS: gdb.base/sepdebug.exp: hit silent break bp_location1
+PASS: gdb.base/sepdebug.exp: stopped for silent break bp_location1
+PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on non-existent thread disallowed
+PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on bogus thread ID disallowed
+PASS: gdb.base/sepdebug.exp: breakpoint with trailing garbage disallowed
+PASS: gdb.base/sepdebug.exp: step over breakpoint
+PASS: gdb.base/sepdebug.exp: clear line has no breakpoint disallowed
+PASS: gdb.base/sepdebug.exp: clear current line has no breakpoint disallowed
+PASS: gdb.base/sepdebug.exp: break marker3 #1
+PASS: gdb.base/sepdebug.exp: break marker3 #2
+PASS: gdb.base/sepdebug.exp: clear marker3
+PASS: gdb.base/sepdebug.exp: set convenience variable $foo to bp_location11
+PASS: gdb.base/sepdebug.exp: set breakpoint via convenience variable
+PASS: gdb.base/sepdebug.exp: set convenience variable $foo to 81.5
+PASS: gdb.base/sepdebug.exp: set breakpoint via non-integer convenience variable disallowed
+PASS: gdb.base/sepdebug.exp: set breakpoint on to-be-called function
+PASS: gdb.base/sepdebug.exp: hit breakpoint on called function
+PASS: gdb.base/sepdebug.exp: backtrace while in called function
+PASS: gdb.base/sepdebug.exp: finish from called function
+PASS: gdb.base/sepdebug.exp: finish with arguments disallowed
+PASS: gdb.base/sepdebug.exp: finish from outermost frame disallowed
+PASS: gdb.base/sepdebug.exp: kill program
+PASS: gdb.base/sepdebug.exp: break at factorial
+PASS: gdb.base/sepdebug.exp: continue to factorial(5)
+PASS: gdb.base/sepdebug.exp: backtrace from factorial(5)
+PASS: gdb.base/sepdebug.exp: next to recursive call
+PASS: gdb.base/sepdebug.exp: next over recursive call
+PASS: gdb.base/sepdebug.exp: backtrace from factorial(5.1)
+PASS: gdb.base/sepdebug.exp: continue until exit at recursive next test
+PASS: gdb.base/sepdebug.exp: debuglink: set separate debug location
+PASS: gdb.base/sepdebug.exp: debuglink: breakpoint function, optimized file
+PASS: gdb.base/sepdebug.exp: debuglink: breakpoint small function, optimized file
+PASS: gdb.base/sepdebug.exp: debuglink: run until function breakpoint, optimized file
+PASS: gdb.base/sepdebug.exp: debuglink: run until breakpoint set at small function, optimized file
+PASS: gdb.base/sepdebug.exp: CRC mismatch is reported
+PASS: gdb.base/sepdebug.exp: build-id support by binutils
+PASS: gdb.base/sepdebug.exp: build-id: set separate debug location
+PASS: gdb.base/sepdebug.exp: build-id: breakpoint function, optimized file
+PASS: gdb.base/sepdebug.exp: build-id: breakpoint small function, optimized file
+PASS: gdb.base/sepdebug.exp: build-id: run until function breakpoint, optimized file
+PASS: gdb.base/sepdebug.exp: build-id: run until breakpoint set at small function, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: set separate debug location
+PASS: gdb.base/sepdebug.exp: multiple-dirs: breakpoint function, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: breakpoint small function, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: run until function breakpoint, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: run until breakpoint set at small function, optimized file
+Running ./gdb.base/sep.exp ...
+PASS: gdb.base/sep.exp: list using location inside included file
+PASS: gdb.base/sep.exp: breakpoint inside included file
+Running ./gdb.base/sepsymtab.exp ...
+PASS: gdb.base/sepsymtab.exp: info sym main
+Running ./gdb.base/set-lang-auto.exp ...
+PASS: gdb.base/set-lang-auto.exp: show lang after loading binary
+PASS: gdb.base/set-lang-auto.exp: forcing the language to ada
+PASS: gdb.base/set-lang-auto.exp: show lang after switching language to ada
+PASS: gdb.base/set-lang-auto.exp: switching the language back to auto
+PASS: gdb.base/set-lang-auto.exp: show lang after having switched back to auto
+Running ./gdb.base/set-noassign.exp ...
+PASS: gdb.base/set-noassign.exp: set language ada
+PASS: gdb.base/set-noassign.exp: warning for set without assignment
+Running ./gdb.base/setshow.exp ...
+PASS: gdb.base/setshow.exp: default annotation_level is zero
+PASS: gdb.base/setshow.exp: set annotate 2
+PASS: gdb.base/setshow.exp: show annotate 2
+PASS: gdb.base/setshow.exp: annotation_level 2
+PASS: gdb.base/setshow.exp: set annotate 1
+PASS: gdb.base/setshow.exp: show annotate (1)
+PASS: gdb.base/setshow.exp: annotation_level 1
+PASS: gdb.base/setshow.exp: set annotate 0
+PASS: gdb.base/setshow.exp: show annotate (0)
+PASS: gdb.base/setshow.exp: annotation_level 0
+PASS: gdb.base/setshow.exp: set args ~
+PASS: gdb.base/setshow.exp: show args ~
+PASS: gdb.base/setshow.exp: set args
+PASS: gdb.base/setshow.exp: show args
+PASS: gdb.base/setshow.exp: set check range on
+PASS: gdb.base/setshow.exp: show check range (on)
+PASS: gdb.base/setshow.exp: set check range off
+PASS: gdb.base/setshow.exp: show check range (off)
+PASS: gdb.base/setshow.exp: set check range auto
+PASS: gdb.base/setshow.exp: show check range (auto)
+PASS: gdb.base/setshow.exp: set check type on
+PASS: gdb.base/setshow.exp: show check type (on)
+PASS: gdb.base/setshow.exp: set check type off
+PASS: gdb.base/setshow.exp: show check type (off)
+PASS: gdb.base/setshow.exp: set complaints 100
+PASS: gdb.base/setshow.exp: show complaints (100)
+PASS: gdb.base/setshow.exp: set complaints 0
+PASS: gdb.base/setshow.exp: show complaints (0)
+PASS: gdb.base/setshow.exp: set confirm off
+PASS: gdb.base/setshow.exp: show confirm (off)
+PASS: gdb.base/setshow.exp: set confirm on
+PASS: gdb.base/setshow.exp: show confirm (on)
+PASS: gdb.base/setshow.exp: set editing off
+PASS: gdb.base/setshow.exp: show editing (off)
+PASS: gdb.base/setshow.exp: set environment FOOBARBAZ
+PASS: gdb.base/setshow.exp: show environment FOOBARBAZ
+PASS: gdb.base/setshow.exp: set height 100
+PASS: gdb.base/setshow.exp: show height
+PASS: gdb.base/setshow.exp: set history expansion on
+PASS: gdb.base/setshow.exp: show history expansion
+PASS: gdb.base/setshow.exp: set history filename foobar.baz
+PASS: gdb.base/setshow.exp: show history filename (foobar.baz)
+PASS: gdb.base/setshow.exp: set history save on
+PASS: gdb.base/setshow.exp: show history save (on)
+PASS: gdb.base/setshow.exp: set history size 100
+PASS: gdb.base/setshow.exp: show history size (100)
+PASS: gdb.base/setshow.exp: set language asm
+PASS: gdb.base/setshow.exp: show language (asm)
+PASS: gdb.base/setshow.exp: set language java
+PASS: gdb.base/setshow.exp: show language (java)
+PASS: gdb.base/setshow.exp: complete set language minimal
+PASS: gdb.base/setshow.exp: set language auto
+PASS: gdb.base/setshow.exp: show language (auto)
+PASS: gdb.base/setshow.exp: set listsize 100
+PASS: gdb.base/setshow.exp: show listsize (100)
+PASS: gdb.base/setshow.exp: set prompt FooBarBaz
+PASS: gdb.base/setshow.exp: show prompt FooBarBaz
+PASS: gdb.base/setshow.exp: set prompt gdb
+PASS: gdb.base/setshow.exp: set radix 11
+PASS: gdb.base/setshow.exp: set radix 16
+PASS: gdb.base/setshow.exp: show radix (16)
+PASS: gdb.base/setshow.exp: set radix 10
+PASS: gdb.base/setshow.exp: show radix (10)
+PASS: gdb.base/setshow.exp: set width 90
+PASS: gdb.base/setshow.exp: show width (90)
+PASS: gdb.base/setshow.exp: set write on
+PASS: gdb.base/setshow.exp: show write (on)
+PASS: gdb.base/setshow.exp: show user
+PASS: gdb.base/setshow.exp: set verbose on
+PASS: gdb.base/setshow.exp: show verbose (on)
+PASS: gdb.base/setshow.exp: set verbose off
+PASS: gdb.base/setshow.exp: show verbose (off)
+Running ./gdb.base/setvar.exp ...
+PASS: gdb.base/setvar.exp: set print sevenbit-strings
+PASS: gdb.base/setvar.exp: set variable char=0
+PASS: gdb.base/setvar.exp: set variable char=1
+PASS: gdb.base/setvar.exp: set variable char=7 (Bel)
+PASS: gdb.base/setvar.exp: set variable char=32 (SPC)
+PASS: gdb.base/setvar.exp: set variable char=65 ('A')
+PASS: gdb.base/setvar.exp: set variable char=97 ('a')
+PASS: gdb.base/setvar.exp: set variable char=126 ('~')
+PASS: gdb.base/setvar.exp: set variable char=127 (8-bit)
+PASS: gdb.base/setvar.exp: set variable signed char=0
+PASS: gdb.base/setvar.exp: set variable signed char=1
+PASS: gdb.base/setvar.exp: set variable signed char=7 (Bel)
+PASS: gdb.base/setvar.exp: set variable signed char=32 (SPC)
+PASS: gdb.base/setvar.exp: set variable signed char=65 ('A')
+PASS: gdb.base/setvar.exp: set variable signed char=97 ('a')
+PASS: gdb.base/setvar.exp: set variable signed char=126 ('~')
+PASS: gdb.base/setvar.exp: set variable signed char=127 (8-bit)
+PASS: gdb.base/setvar.exp: set variable v_signed_char=-1
+PASS: gdb.base/setvar.exp: set variable signed char=-1 (-1)
+PASS: gdb.base/setvar.exp: set variable v_signed_char=0xFF
+PASS: gdb.base/setvar.exp: set variable signed char=0xFF (0xFF)
+PASS: gdb.base/setvar.exp: set variable unsigned char=0
+PASS: gdb.base/setvar.exp: set variable unsigned char=1
+PASS: gdb.base/setvar.exp: set variable unsigned char=7 (Bel)
+PASS: gdb.base/setvar.exp: set variable unsigned char=32 (SPC)
+PASS: gdb.base/setvar.exp: set variable unsigned char=65 ('A')
+PASS: gdb.base/setvar.exp: set variable unsigned char=97 ('a')
+PASS: gdb.base/setvar.exp: set variable unsigned char=126 ('~')
+PASS: gdb.base/setvar.exp: set variable unsigned char=255 (8-bit)
+PASS: gdb.base/setvar.exp: set variable short=0
+PASS: gdb.base/setvar.exp: set variable short=1
+PASS: gdb.base/setvar.exp: set variable short=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable signed short=0
+PASS: gdb.base/setvar.exp: set variable signed short=1
+PASS: gdb.base/setvar.exp: set variable signed short=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable unsigned short=0
+PASS: gdb.base/setvar.exp: set variable unsigned short=1
+PASS: gdb.base/setvar.exp: set variable unsigned short=~0 (minus)
+PASS: gdb.base/setvar.exp: set variable int=0
+PASS: gdb.base/setvar.exp: set variable int=1
+PASS: gdb.base/setvar.exp: set variable int=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable signed int=0
+PASS: gdb.base/setvar.exp: set variable signed int=1
+PASS: gdb.base/setvar.exp: set variable signed int=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable unsigned int=0
+PASS: gdb.base/setvar.exp: set variable unsigned int=1
+PASS: gdb.base/setvar.exp: set variable unsigned int=~0 (minus)
+PASS: gdb.base/setvar.exp: set variable long=0
+PASS: gdb.base/setvar.exp: set variable long=1
+PASS: gdb.base/setvar.exp: set variable long=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable signed long=0
+PASS: gdb.base/setvar.exp: set variable signed long=1
+PASS: gdb.base/setvar.exp: set variable signed long=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable unsigned long=0
+PASS: gdb.base/setvar.exp: set variable unsigned long=1
+PASS: gdb.base/setvar.exp: set variable unsigned long=~0 (minus)
+PASS: gdb.base/setvar.exp: set variable float=0
+PASS: gdb.base/setvar.exp: set variable float=1
+PASS: gdb.base/setvar.exp: set variable float=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable double=0
+PASS: gdb.base/setvar.exp: set variable double=1
+PASS: gdb.base/setvar.exp: set variable double=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable char array="hi" (string)
+PASS: gdb.base/setvar.exp: set variable signed char array="hi" (string)
+PASS: gdb.base/setvar.exp: set variable unsigned char array="hi" (string)
+PASS: gdb.base/setvar.exp: set variable short array
+PASS: gdb.base/setvar.exp: set variable signed short array
+PASS: gdb.base/setvar.exp: set variable unsigned short array
+PASS: gdb.base/setvar.exp: set variable int array
+PASS: gdb.base/setvar.exp: set variable signed int array
+PASS: gdb.base/setvar.exp: set variable unsigned int array
+PASS: gdb.base/setvar.exp: set variable long array
+PASS: gdb.base/setvar.exp: set variable signed long array
+PASS: gdb.base/setvar.exp: set variable unsigned long array
+PASS: gdb.base/setvar.exp: set variable float array
+PASS: gdb.base/setvar.exp: set variable double array
+PASS: gdb.base/setvar.exp: set variable char pointer="hi" (string)
+PASS: gdb.base/setvar.exp: set variable char pointer="hi" (string) (#2)
+PASS: gdb.base/setvar.exp: set variable signed char pointer="hi" (string)
+PASS: gdb.base/setvar.exp: set variable signed char pointer="hi" (string) (#2)
+PASS: gdb.base/setvar.exp: set variable unsigned char pointer="hi" (string)
+PASS: gdb.base/setvar.exp: set variable unsigned char pointer="hi" (string) (#2)
+PASS: gdb.base/setvar.exp: set variable short pointer
+PASS: gdb.base/setvar.exp: set variable short pointer (#2)
+PASS: gdb.base/setvar.exp: set v_signed_short_pointer=v_signed_short_array
+PASS: gdb.base/setvar.exp: set variable *(v_signed_short_pointer)=123
+PASS: gdb.base/setvar.exp: set variable *(v_signed_short_pointer+1)=-456
+PASS: gdb.base/setvar.exp: set variable signed short pointer
+PASS: gdb.base/setvar.exp: print *(v_signed_short_pointer+1)
+PASS: gdb.base/setvar.exp: set v_unsigned_short_pointer=v_unsigned_short_array
+PASS: gdb.base/setvar.exp: set variable *(v_unsigned_short_pointer)=123
+PASS: gdb.base/setvar.exp: set variable *(v_unsigned_short_pointer+1)=-456
+PASS: gdb.base/setvar.exp: set variable unsigned short pointer
+PASS: gdb.base/setvar.exp: print *(v_unsigned_short_pointer+1)
+PASS: gdb.base/setvar.exp: set variable int pointer
+PASS: gdb.base/setvar.exp: set variable int pointer (#2)
+PASS: gdb.base/setvar.exp: set variable signed int pointer
+PASS: gdb.base/setvar.exp: set variable signed int pointer (#2)
+PASS: gdb.base/setvar.exp: set variable unsigned int pointer
+PASS: gdb.base/setvar.exp: print variable unsigned int pointer+1
+PASS: gdb.base/setvar.exp: set variable long pointer
+PASS: gdb.base/setvar.exp: set variable long pointer (#2)
+PASS: gdb.base/setvar.exp: set variable signed long pointer
+PASS: gdb.base/setvar.exp: set variable signed long pointer (#2)
+PASS: gdb.base/setvar.exp: set variable unsigned long pointer
+PASS: gdb.base/setvar.exp: set variable unsigned long pointer (#2)
+PASS: gdb.base/setvar.exp: set variable float pointer
+PASS: gdb.base/setvar.exp: set variable float pointer (#2)
+PASS: gdb.base/setvar.exp: set variable double pointer
+PASS: gdb.base/setvar.exp: set variable double pointer (#2)
+PASS: gdb.base/setvar.exp: set variable structure char member
+PASS: gdb.base/setvar.exp: set variable structure short member
+PASS: gdb.base/setvar.exp: set variable structure int member
+PASS: gdb.base/setvar.exp: set variable structure long member
+PASS: gdb.base/setvar.exp: set variable structure float member
+PASS: gdb.base/setvar.exp: set variable structure double member
+PASS: gdb.base/setvar.exp: set print structure #1
+PASS: gdb.base/setvar.exp: set print structure #2
+PASS: gdb.base/setvar.exp: set print structure #3
+PASS: gdb.base/setvar.exp: set print structure #4
+PASS: gdb.base/setvar.exp: print sef.field=sm1
+PASS: gdb.base/setvar.exp: print sef.field (sm1)
+PASS: gdb.base/setvar.exp: print sef.field=s1
+PASS: gdb.base/setvar.exp: print sef.field (s1)
+PASS: gdb.base/setvar.exp: print uef.field=u2
+PASS: gdb.base/setvar.exp: print uef.field (u2)
+PASS: gdb.base/setvar.exp: print uef.field=u1
+PASS: gdb.base/setvar.exp: print uef.field (u1)
+PASS: gdb.base/setvar.exp: print sef.field=7
+PASS: gdb.base/setvar.exp: print uef.field=6
+Running ./gdb.base/shell.exp ...
+PASS: gdb.base/shell.exp: shell echo foo
+PASS: gdb.base/shell.exp: ! echo foo
+PASS: gdb.base/shell.exp: !echo foo
+Running ./gdb.base/shlib-call.exp ...
+PASS: gdb.base/shlib-call.exp: set print sevenbit-strings
+PASS: gdb.base/shlib-call.exp: set print address off
+PASS: gdb.base/shlib-call.exp: set width 0
+PASS: gdb.base/shlib-call.exp: next to shr1
+PASS: gdb.base/shlib-call.exp: print g
+PASS: gdb.base/shlib-call.exp: print g
+PASS: gdb.base/shlib-call.exp: breakpoint function shr2
+PASS: gdb.base/shlib-call.exp: run until breakpoint set at a function
+PASS: gdb.base/shlib-call.exp: print mainshr1(1) from shlib func
+PASS: gdb.base/shlib-call.exp: step out of shr2 to main (stopped in shr2 epilogue)
+PASS: gdb.base/shlib-call.exp: step out of shr2 epilogue to main
+PASS: gdb.base/shlib-call.exp: print mainshr1(1)
+PASS: gdb.base/shlib-call.exp: step into mainshr1
+PASS: gdb.base/shlib-call.exp: set print sevenbit-strings
+PASS: gdb.base/shlib-call.exp: set print address off
+PASS: gdb.base/shlib-call.exp: set width 0
+Running ./gdb.base/shreloc.exp ...
+PASS: gdb.base/shreloc.exp: get address of fn_1
+PASS: gdb.base/shreloc.exp: get address of fn_2
+PASS: gdb.base/shreloc.exp: relocated extern functions have different addresses
+PASS: gdb.base/shreloc.exp: get address of extern_var_1
+PASS: gdb.base/shreloc.exp: get address of extern_var_2
+PASS: gdb.base/shreloc.exp: relocated extern variables have different addresses
+PASS: gdb.base/shreloc.exp: get address of static_var_1
+PASS: gdb.base/shreloc.exp: get address of static_var_2
+PASS: gdb.base/shreloc.exp: relocated static variables have different addresses
+PASS: gdb.base/shreloc.exp: get_msym_addrs static_var_[12]
+PASS: gdb.base/shreloc.exp: (msymbol) relocated static vars have different addresses
+PASS: gdb.base/shreloc.exp: get_msym_addrs extern_var_[12]
+PASS: gdb.base/shreloc.exp: (msymbol) relocated extern vars have different addresses
+PASS: gdb.base/shreloc.exp: get_msym_addrs fn_[12]
+PASS: gdb.base/shreloc.exp: (msymbol) relocated functions have different addresses
+Running ./gdb.base/sigall.exp ...
+PASS: gdb.base/sigall.exp: handle SIGABRT stop print
+PASS: gdb.base/sigall.exp: b handle_ABRT
+PASS: gdb.base/sigall.exp: b gen_HUP
+PASS: gdb.base/sigall.exp: get signal ABRT
+PASS: gdb.base/sigall.exp: send signal ABRT
+PASS: gdb.base/sigall.exp: advance to HUP
+PASS: gdb.base/sigall.exp: handle SIGHUP stop print
+PASS: gdb.base/sigall.exp: b handle_HUP
+PASS: gdb.base/sigall.exp: b gen_QUIT
+PASS: gdb.base/sigall.exp: get signal HUP
+PASS: gdb.base/sigall.exp: send signal HUP
+PASS: gdb.base/sigall.exp: advance to QUIT
+PASS: gdb.base/sigall.exp: handle SIGQUIT stop print
+PASS: gdb.base/sigall.exp: b handle_QUIT
+PASS: gdb.base/sigall.exp: b gen_ILL
+PASS: gdb.base/sigall.exp: get signal QUIT
+PASS: gdb.base/sigall.exp: send signal QUIT
+PASS: gdb.base/sigall.exp: advance to ILL
+PASS: gdb.base/sigall.exp: handle SIGILL stop print
+PASS: gdb.base/sigall.exp: b handle_ILL
+PASS: gdb.base/sigall.exp: b gen_EMT
+PASS: gdb.base/sigall.exp: get signal ILL
+PASS: gdb.base/sigall.exp: send signal ILL
+PASS: gdb.base/sigall.exp: advance to EMT
+PASS: gdb.base/sigall.exp: handle SIGEMT stop print
+PASS: gdb.base/sigall.exp: b handle_EMT
+PASS: gdb.base/sigall.exp: b gen_FPE
+PASS: gdb.base/sigall.exp: send signal EMT
+PASS: gdb.base/sigall.exp: advance to FPE
+PASS: gdb.base/sigall.exp: handle SIGFPE stop print
+PASS: gdb.base/sigall.exp: b handle_FPE
+PASS: gdb.base/sigall.exp: b gen_BUS
+PASS: gdb.base/sigall.exp: get signal FPE
+PASS: gdb.base/sigall.exp: send signal FPE
+PASS: gdb.base/sigall.exp: advance to BUS
+PASS: gdb.base/sigall.exp: handle SIGBUS stop print
+PASS: gdb.base/sigall.exp: b handle_BUS
+PASS: gdb.base/sigall.exp: b gen_SEGV
+PASS: gdb.base/sigall.exp: get signal BUS
+PASS: gdb.base/sigall.exp: send signal BUS
+PASS: gdb.base/sigall.exp: advance to SEGV
+PASS: gdb.base/sigall.exp: handle SIGSEGV stop print
+PASS: gdb.base/sigall.exp: b handle_SEGV
+PASS: gdb.base/sigall.exp: b gen_SYS
+PASS: gdb.base/sigall.exp: get signal SEGV
+PASS: gdb.base/sigall.exp: send signal SEGV
+PASS: gdb.base/sigall.exp: advance to SYS
+PASS: gdb.base/sigall.exp: handle SIGSYS stop print
+PASS: gdb.base/sigall.exp: b handle_SYS
+PASS: gdb.base/sigall.exp: b gen_PIPE
+PASS: gdb.base/sigall.exp: get signal SYS
+PASS: gdb.base/sigall.exp: send signal SYS
+PASS: gdb.base/sigall.exp: advance to PIPE
+PASS: gdb.base/sigall.exp: handle SIGPIPE stop print
+PASS: gdb.base/sigall.exp: b handle_PIPE
+PASS: gdb.base/sigall.exp: b gen_ALRM
+PASS: gdb.base/sigall.exp: get signal PIPE
+PASS: gdb.base/sigall.exp: send signal PIPE
+PASS: gdb.base/sigall.exp: advance to ALRM
+PASS: gdb.base/sigall.exp: handle SIGALRM stop print
+PASS: gdb.base/sigall.exp: b handle_ALRM
+PASS: gdb.base/sigall.exp: b gen_URG
+PASS: gdb.base/sigall.exp: get signal ALRM
+PASS: gdb.base/sigall.exp: send signal ALRM
+PASS: gdb.base/sigall.exp: advance to URG
+PASS: gdb.base/sigall.exp: handle SIGURG stop print
+PASS: gdb.base/sigall.exp: b handle_URG
+PASS: gdb.base/sigall.exp: b gen_TSTP
+PASS: gdb.base/sigall.exp: get signal URG
+PASS: gdb.base/sigall.exp: send signal URG
+PASS: gdb.base/sigall.exp: advance to TSTP
+PASS: gdb.base/sigall.exp: handle SIGTSTP stop print
+PASS: gdb.base/sigall.exp: b handle_TSTP
+PASS: gdb.base/sigall.exp: b gen_CONT
+PASS: gdb.base/sigall.exp: get signal TSTP
+PASS: gdb.base/sigall.exp: send signal TSTP
+PASS: gdb.base/sigall.exp: advance to CONT
+PASS: gdb.base/sigall.exp: handle SIGCONT stop print
+PASS: gdb.base/sigall.exp: b handle_CONT
+PASS: gdb.base/sigall.exp: b gen_CHLD
+PASS: gdb.base/sigall.exp: get signal CONT
+PASS: gdb.base/sigall.exp: send signal CONT
+PASS: gdb.base/sigall.exp: advance to CHLD
+PASS: gdb.base/sigall.exp: handle SIGCHLD stop print
+PASS: gdb.base/sigall.exp: b handle_CHLD
+PASS: gdb.base/sigall.exp: b gen_TTIN
+PASS: gdb.base/sigall.exp: get signal CHLD
+PASS: gdb.base/sigall.exp: send signal CHLD
+PASS: gdb.base/sigall.exp: advance to TTIN
+PASS: gdb.base/sigall.exp: handle SIGTTIN stop print
+PASS: gdb.base/sigall.exp: b handle_TTIN
+PASS: gdb.base/sigall.exp: b gen_TTOU
+PASS: gdb.base/sigall.exp: get signal TTIN
+PASS: gdb.base/sigall.exp: send signal TTIN
+PASS: gdb.base/sigall.exp: advance to TTOU
+PASS: gdb.base/sigall.exp: handle SIGTTOU stop print
+PASS: gdb.base/sigall.exp: b handle_TTOU
+PASS: gdb.base/sigall.exp: b gen_IO
+PASS: gdb.base/sigall.exp: get signal TTOU
+PASS: gdb.base/sigall.exp: send signal TTOU
+PASS: gdb.base/sigall.exp: advance to IO
+PASS: gdb.base/sigall.exp: handle SIGIO stop print
+PASS: gdb.base/sigall.exp: b handle_IO
+PASS: gdb.base/sigall.exp: b gen_XCPU
+PASS: gdb.base/sigall.exp: get signal IO
+PASS: gdb.base/sigall.exp: send signal IO
+PASS: gdb.base/sigall.exp: advance to XCPU
+PASS: gdb.base/sigall.exp: handle SIGXCPU stop print
+PASS: gdb.base/sigall.exp: b handle_XCPU
+PASS: gdb.base/sigall.exp: b gen_XFSZ
+PASS: gdb.base/sigall.exp: get signal XCPU
+PASS: gdb.base/sigall.exp: send signal XCPU
+PASS: gdb.base/sigall.exp: advance to XFSZ
+PASS: gdb.base/sigall.exp: handle SIGXFSZ stop print
+PASS: gdb.base/sigall.exp: b handle_XFSZ
+PASS: gdb.base/sigall.exp: b gen_VTALRM
+PASS: gdb.base/sigall.exp: get signal XFSZ
+PASS: gdb.base/sigall.exp: send signal XFSZ
+PASS: gdb.base/sigall.exp: advance to VTALRM
+PASS: gdb.base/sigall.exp: handle SIGVTALRM stop print
+PASS: gdb.base/sigall.exp: b handle_VTALRM
+PASS: gdb.base/sigall.exp: b gen_PROF
+PASS: gdb.base/sigall.exp: get signal VTALRM
+PASS: gdb.base/sigall.exp: send signal VTALRM
+PASS: gdb.base/sigall.exp: advance to PROF
+PASS: gdb.base/sigall.exp: handle SIGPROF stop print
+PASS: gdb.base/sigall.exp: b handle_PROF
+PASS: gdb.base/sigall.exp: b gen_WINCH
+PASS: gdb.base/sigall.exp: get signal PROF
+PASS: gdb.base/sigall.exp: send signal PROF
+PASS: gdb.base/sigall.exp: advance to WINCH
+PASS: gdb.base/sigall.exp: handle SIGWINCH stop print
+PASS: gdb.base/sigall.exp: b handle_WINCH
+PASS: gdb.base/sigall.exp: b gen_LOST
+PASS: gdb.base/sigall.exp: get signal WINCH
+PASS: gdb.base/sigall.exp: send signal WINCH
+PASS: gdb.base/sigall.exp: advance to LOST
+PASS: gdb.base/sigall.exp: handle SIGLOST stop print
+PASS: gdb.base/sigall.exp: b handle_LOST
+PASS: gdb.base/sigall.exp: b gen_USR1
+PASS: gdb.base/sigall.exp: send signal LOST
+PASS: gdb.base/sigall.exp: advance to USR1
+PASS: gdb.base/sigall.exp: handle SIGUSR1 stop print
+PASS: gdb.base/sigall.exp: b handle_USR1
+PASS: gdb.base/sigall.exp: b gen_USR2
+PASS: gdb.base/sigall.exp: get signal USR1
+PASS: gdb.base/sigall.exp: send signal USR1
+PASS: gdb.base/sigall.exp: advance to USR2
+PASS: gdb.base/sigall.exp: handle SIGUSR2 stop print
+PASS: gdb.base/sigall.exp: b handle_USR2
+PASS: gdb.base/sigall.exp: b gen_PWR
+PASS: gdb.base/sigall.exp: get signal USR2
+PASS: gdb.base/sigall.exp: send signal USR2
+PASS: gdb.base/sigall.exp: advance to PWR
+PASS: gdb.base/sigall.exp: handle SIGPWR stop print
+PASS: gdb.base/sigall.exp: b handle_PWR
+PASS: gdb.base/sigall.exp: b gen_POLL
+PASS: gdb.base/sigall.exp: get signal PWR
+PASS: gdb.base/sigall.exp: send signal PWR
+PASS: gdb.base/sigall.exp: advance to POLL
+PASS: gdb.base/sigall.exp: handle SIGPOLL stop print
+PASS: gdb.base/sigall.exp: b handle_POLL
+PASS: gdb.base/sigall.exp: b gen_WIND
+PASS: gdb.base/sigall.exp: send signal POLL
+PASS: gdb.base/sigall.exp: advance to WIND
+PASS: gdb.base/sigall.exp: handle SIGWIND stop print
+PASS: gdb.base/sigall.exp: b handle_WIND
+PASS: gdb.base/sigall.exp: b gen_PHONE
+PASS: gdb.base/sigall.exp: send signal WIND
+PASS: gdb.base/sigall.exp: advance to PHONE
+PASS: gdb.base/sigall.exp: handle SIGPHONE stop print
+PASS: gdb.base/sigall.exp: b handle_PHONE
+PASS: gdb.base/sigall.exp: b gen_WAITING
+PASS: gdb.base/sigall.exp: send signal PHONE
+PASS: gdb.base/sigall.exp: advance to WAITING
+PASS: gdb.base/sigall.exp: handle SIGWAITING stop print
+PASS: gdb.base/sigall.exp: b handle_WAITING
+PASS: gdb.base/sigall.exp: b gen_LWP
+PASS: gdb.base/sigall.exp: send signal WAITING
+PASS: gdb.base/sigall.exp: advance to LWP
+PASS: gdb.base/sigall.exp: handle SIGLWP stop print
+PASS: gdb.base/sigall.exp: b handle_LWP
+PASS: gdb.base/sigall.exp: b gen_DANGER
+PASS: gdb.base/sigall.exp: send signal LWP
+PASS: gdb.base/sigall.exp: advance to DANGER
+PASS: gdb.base/sigall.exp: handle SIGDANGER stop print
+PASS: gdb.base/sigall.exp: b handle_DANGER
+PASS: gdb.base/sigall.exp: b gen_GRANT
+PASS: gdb.base/sigall.exp: send signal DANGER
+PASS: gdb.base/sigall.exp: advance to GRANT
+PASS: gdb.base/sigall.exp: handle SIGGRANT stop print
+PASS: gdb.base/sigall.exp: b handle_GRANT
+PASS: gdb.base/sigall.exp: b gen_RETRACT
+PASS: gdb.base/sigall.exp: send signal GRANT
+PASS: gdb.base/sigall.exp: advance to RETRACT
+PASS: gdb.base/sigall.exp: handle SIGRETRACT stop print
+PASS: gdb.base/sigall.exp: b handle_RETRACT
+PASS: gdb.base/sigall.exp: b gen_MSG
+PASS: gdb.base/sigall.exp: send signal RETRACT
+PASS: gdb.base/sigall.exp: advance to MSG
+PASS: gdb.base/sigall.exp: handle SIGMSG stop print
+PASS: gdb.base/sigall.exp: b handle_MSG
+PASS: gdb.base/sigall.exp: b gen_SOUND
+PASS: gdb.base/sigall.exp: send signal MSG
+PASS: gdb.base/sigall.exp: advance to SOUND
+PASS: gdb.base/sigall.exp: handle SIGSOUND stop print
+PASS: gdb.base/sigall.exp: b handle_SOUND
+PASS: gdb.base/sigall.exp: b gen_SAK
+PASS: gdb.base/sigall.exp: send signal SOUND
+PASS: gdb.base/sigall.exp: advance to SAK
+PASS: gdb.base/sigall.exp: handle SIGSAK stop print
+PASS: gdb.base/sigall.exp: b handle_SAK
+PASS: gdb.base/sigall.exp: b gen_PRIO
+PASS: gdb.base/sigall.exp: send signal SAK
+PASS: gdb.base/sigall.exp: advance to PRIO
+PASS: gdb.base/sigall.exp: handle SIGPRIO stop print
+PASS: gdb.base/sigall.exp: b handle_PRIO
+PASS: gdb.base/sigall.exp: b gen_33
+PASS: gdb.base/sigall.exp: send signal PRIO
+PASS: gdb.base/sigall.exp: advance to 33
+PASS: gdb.base/sigall.exp: handle SIG33 stop print
+PASS: gdb.base/sigall.exp: b handle_33
+PASS: gdb.base/sigall.exp: b gen_34
+PASS: gdb.base/sigall.exp: send signal 33
+PASS: gdb.base/sigall.exp: advance to 34
+PASS: gdb.base/sigall.exp: handle SIG34 stop print
+PASS: gdb.base/sigall.exp: b handle_34
+PASS: gdb.base/sigall.exp: b gen_35
+PASS: gdb.base/sigall.exp: send signal 34
+PASS: gdb.base/sigall.exp: advance to 35
+PASS: gdb.base/sigall.exp: handle SIG35 stop print
+PASS: gdb.base/sigall.exp: b handle_35
+PASS: gdb.base/sigall.exp: b gen_36
+PASS: gdb.base/sigall.exp: send signal 35
+PASS: gdb.base/sigall.exp: advance to 36
+PASS: gdb.base/sigall.exp: handle SIG36 stop print
+PASS: gdb.base/sigall.exp: b handle_36
+PASS: gdb.base/sigall.exp: b gen_37
+PASS: gdb.base/sigall.exp: send signal 36
+PASS: gdb.base/sigall.exp: advance to 37
+PASS: gdb.base/sigall.exp: handle SIG37 stop print
+PASS: gdb.base/sigall.exp: b handle_37
+PASS: gdb.base/sigall.exp: b gen_38
+PASS: gdb.base/sigall.exp: send signal 37
+PASS: gdb.base/sigall.exp: advance to 38
+PASS: gdb.base/sigall.exp: handle SIG38 stop print
+PASS: gdb.base/sigall.exp: b handle_38
+PASS: gdb.base/sigall.exp: b gen_39
+PASS: gdb.base/sigall.exp: send signal 38
+PASS: gdb.base/sigall.exp: advance to 39
+PASS: gdb.base/sigall.exp: handle SIG39 stop print
+PASS: gdb.base/sigall.exp: b handle_39
+PASS: gdb.base/sigall.exp: b gen_40
+PASS: gdb.base/sigall.exp: send signal 39
+PASS: gdb.base/sigall.exp: advance to 40
+PASS: gdb.base/sigall.exp: handle SIG40 stop print
+PASS: gdb.base/sigall.exp: b handle_40
+PASS: gdb.base/sigall.exp: b gen_41
+PASS: gdb.base/sigall.exp: send signal 40
+PASS: gdb.base/sigall.exp: advance to 41
+PASS: gdb.base/sigall.exp: handle SIG41 stop print
+PASS: gdb.base/sigall.exp: b handle_41
+PASS: gdb.base/sigall.exp: b gen_42
+PASS: gdb.base/sigall.exp: send signal 41
+PASS: gdb.base/sigall.exp: advance to 42
+PASS: gdb.base/sigall.exp: handle SIG42 stop print
+PASS: gdb.base/sigall.exp: b handle_42
+PASS: gdb.base/sigall.exp: b gen_43
+PASS: gdb.base/sigall.exp: send signal 42
+PASS: gdb.base/sigall.exp: advance to 43
+PASS: gdb.base/sigall.exp: handle SIG43 stop print
+PASS: gdb.base/sigall.exp: b handle_43
+PASS: gdb.base/sigall.exp: b gen_44
+PASS: gdb.base/sigall.exp: send signal 43
+PASS: gdb.base/sigall.exp: advance to 44
+PASS: gdb.base/sigall.exp: handle SIG44 stop print
+PASS: gdb.base/sigall.exp: b handle_44
+PASS: gdb.base/sigall.exp: b gen_45
+PASS: gdb.base/sigall.exp: send signal 44
+PASS: gdb.base/sigall.exp: advance to 45
+PASS: gdb.base/sigall.exp: handle SIG45 stop print
+PASS: gdb.base/sigall.exp: b handle_45
+PASS: gdb.base/sigall.exp: b gen_46
+PASS: gdb.base/sigall.exp: send signal 45
+PASS: gdb.base/sigall.exp: advance to 46
+PASS: gdb.base/sigall.exp: handle SIG46 stop print
+PASS: gdb.base/sigall.exp: b handle_46
+PASS: gdb.base/sigall.exp: b gen_47
+PASS: gdb.base/sigall.exp: send signal 46
+PASS: gdb.base/sigall.exp: advance to 47
+PASS: gdb.base/sigall.exp: handle SIG47 stop print
+PASS: gdb.base/sigall.exp: b handle_47
+PASS: gdb.base/sigall.exp: b gen_48
+PASS: gdb.base/sigall.exp: send signal 47
+PASS: gdb.base/sigall.exp: advance to 48
+PASS: gdb.base/sigall.exp: handle SIG48 stop print
+PASS: gdb.base/sigall.exp: b handle_48
+PASS: gdb.base/sigall.exp: b gen_49
+PASS: gdb.base/sigall.exp: send signal 48
+PASS: gdb.base/sigall.exp: advance to 49
+PASS: gdb.base/sigall.exp: handle SIG49 stop print
+PASS: gdb.base/sigall.exp: b handle_49
+PASS: gdb.base/sigall.exp: b gen_50
+PASS: gdb.base/sigall.exp: send signal 49
+PASS: gdb.base/sigall.exp: advance to 50
+PASS: gdb.base/sigall.exp: handle SIG50 stop print
+PASS: gdb.base/sigall.exp: b handle_50
+PASS: gdb.base/sigall.exp: b gen_51
+PASS: gdb.base/sigall.exp: send signal 50
+PASS: gdb.base/sigall.exp: advance to 51
+PASS: gdb.base/sigall.exp: handle SIG51 stop print
+PASS: gdb.base/sigall.exp: b handle_51
+PASS: gdb.base/sigall.exp: b gen_52
+PASS: gdb.base/sigall.exp: send signal 51
+PASS: gdb.base/sigall.exp: advance to 52
+PASS: gdb.base/sigall.exp: handle SIG52 stop print
+PASS: gdb.base/sigall.exp: b handle_52
+PASS: gdb.base/sigall.exp: b gen_53
+PASS: gdb.base/sigall.exp: send signal 52
+PASS: gdb.base/sigall.exp: advance to 53
+PASS: gdb.base/sigall.exp: handle SIG53 stop print
+PASS: gdb.base/sigall.exp: b handle_53
+PASS: gdb.base/sigall.exp: b gen_54
+PASS: gdb.base/sigall.exp: send signal 53
+PASS: gdb.base/sigall.exp: advance to 54
+PASS: gdb.base/sigall.exp: handle SIG54 stop print
+PASS: gdb.base/sigall.exp: b handle_54
+PASS: gdb.base/sigall.exp: b gen_55
+PASS: gdb.base/sigall.exp: send signal 54
+PASS: gdb.base/sigall.exp: advance to 55
+PASS: gdb.base/sigall.exp: handle SIG55 stop print
+PASS: gdb.base/sigall.exp: b handle_55
+PASS: gdb.base/sigall.exp: b gen_56
+PASS: gdb.base/sigall.exp: send signal 55
+PASS: gdb.base/sigall.exp: advance to 56
+PASS: gdb.base/sigall.exp: handle SIG56 stop print
+PASS: gdb.base/sigall.exp: b handle_56
+PASS: gdb.base/sigall.exp: b gen_57
+PASS: gdb.base/sigall.exp: send signal 56
+PASS: gdb.base/sigall.exp: advance to 57
+PASS: gdb.base/sigall.exp: handle SIG57 stop print
+PASS: gdb.base/sigall.exp: b handle_57
+PASS: gdb.base/sigall.exp: b gen_58
+PASS: gdb.base/sigall.exp: send signal 57
+PASS: gdb.base/sigall.exp: advance to 58
+PASS: gdb.base/sigall.exp: handle SIG58 stop print
+PASS: gdb.base/sigall.exp: b handle_58
+PASS: gdb.base/sigall.exp: b gen_59
+PASS: gdb.base/sigall.exp: send signal 58
+PASS: gdb.base/sigall.exp: advance to 59
+PASS: gdb.base/sigall.exp: handle SIG59 stop print
+PASS: gdb.base/sigall.exp: b handle_59
+PASS: gdb.base/sigall.exp: b gen_60
+PASS: gdb.base/sigall.exp: send signal 59
+PASS: gdb.base/sigall.exp: advance to 60
+PASS: gdb.base/sigall.exp: handle SIG60 stop print
+PASS: gdb.base/sigall.exp: b handle_60
+PASS: gdb.base/sigall.exp: b gen_61
+PASS: gdb.base/sigall.exp: send signal 60
+PASS: gdb.base/sigall.exp: advance to 61
+PASS: gdb.base/sigall.exp: handle SIG61 stop print
+PASS: gdb.base/sigall.exp: b handle_61
+PASS: gdb.base/sigall.exp: b gen_62
+PASS: gdb.base/sigall.exp: send signal 61
+PASS: gdb.base/sigall.exp: advance to 62
+PASS: gdb.base/sigall.exp: handle SIG62 stop print
+PASS: gdb.base/sigall.exp: b handle_62
+PASS: gdb.base/sigall.exp: b gen_63
+PASS: gdb.base/sigall.exp: send signal 62
+PASS: gdb.base/sigall.exp: advance to 63
+PASS: gdb.base/sigall.exp: handle SIG63 stop print
+PASS: gdb.base/sigall.exp: b handle_63
+PASS: gdb.base/sigall.exp: b gen_TERM
+PASS: gdb.base/sigall.exp: send signal 63
+PASS: gdb.base/sigall.exp: advance to TERM
+PASS: gdb.base/sigall.exp: handle SIGTERM stop print
+PASS: gdb.base/sigall.exp: b handle_TERM
+PASS: gdb.base/sigall.exp: get signal TERM
+PASS: gdb.base/sigall.exp: send signal TERM
+PASS: gdb.base/sigall.exp: continue until exit at continue to sigall exit
+Running ./gdb.base/sigaltstack.exp ...
+PASS: gdb.base/sigaltstack.exp: handle SIGALRM print pass nostop
+PASS: gdb.base/sigaltstack.exp: handle SIGVTALRM print pass nostop
+PASS: gdb.base/sigaltstack.exp: handle SIGPROF print pass nostop
+PASS: gdb.base/sigaltstack.exp: break catcher if level == INNER
+PASS: gdb.base/sigaltstack.exp: continue to catch
+PASS: gdb.base/sigaltstack.exp: next
+PASS: gdb.base/sigaltstack.exp: backtrace
+PASS: gdb.base/sigaltstack.exp: finish from catch LEAF
+PASS: gdb.base/sigaltstack.exp: finish to throw INNER
+PASS: gdb.base/sigaltstack.exp: finish to catch INNER
+PASS: gdb.base/sigaltstack.exp: finish from catch INNER
+PASS: gdb.base/sigaltstack.exp: finish to OUTER
+PASS: gdb.base/sigaltstack.exp: finish to catch MAIN
+PASS: gdb.base/sigaltstack.exp: finish to MAIN
+Running ./gdb.base/sigbpt.exp ...
+PASS: gdb.base/sigbpt.exp: break keeper
+PASS: gdb.base/sigbpt.exp: display/i $pc
+PASS: gdb.base/sigbpt.exp: advance to the bowler
+FAIL: gdb.base/sigbpt.exp: stepping to fault
+FAIL: gdb.base/sigbpt.exp: get insn after fault
+FAIL: gdb.base/sigbpt.exp: Verify that SIGSEGV occurs at the last STEPI insn (none 0x55555626)
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi; nopass SIGSEGV
+KFAIL: gdb.base/sigbpt.exp: stepi; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; set breakpoint 0 of 1
+KFAIL: gdb.base/sigbpt.exp: stepi bp before segv; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; clear breakpoint 0 of 1
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; set breakpoint 0 of 1
+KFAIL: gdb.base/sigbpt.exp: stepi bp at segv; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; clear breakpoint 0 of 1
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; set breakpoint 0 of 2
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; set breakpoint 1 of 2
+KFAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; clear breakpoint 0 of 2
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; clear breakpoint 1 of 2
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: cont; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont; continue to keeper
+PASS: gdb.base/sigbpt.exp: cont; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont; set breakpoint 0  of 1
+FAIL: gdb.base/sigbpt.exp: cont; continue to breakpoint at fault
+FAIL: gdb.base/sigbpt.exp: cont; stepi fault
+PASS: gdb.base/sigbpt.exp: cont; clear breakpoint 0 of 1
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: cont bp after segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp after segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: cont bp after segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp after segv; set breakpoint 0  of 2
+PASS: gdb.base/sigbpt.exp: cont bp after segv; set breakpoint 1  of 2
+FAIL: gdb.base/sigbpt.exp: cont bp after segv; continue to breakpoint at fault
+FAIL: gdb.base/sigbpt.exp: cont bp after segv; stepi fault
+PASS: gdb.base/sigbpt.exp: cont bp after segv; clear breakpoint 0 of 2
+PASS: gdb.base/sigbpt.exp: cont bp after segv; clear breakpoint 1 of 2
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 0  of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 1  of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 2  of 3
+FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; continue to breakpoint at fault
+FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; stepi fault
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 0 of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 1 of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 2 of 3
+Running ./gdb.base/sigchld.exp ...
+PASS: gdb.base/sigchld.exp: set breakpoint at success exit
+PASS: gdb.base/sigchld.exp: set breakpoint at failure exit
+PASS: gdb.base/sigchld.exp: SIGCHLD blocked in inferior
+Running ./gdb.base/siginfo-addr.exp ...
+Running ./gdb.base/siginfo.exp ...
+PASS: gdb.base/siginfo.exp: display/i $pc
+PASS: gdb.base/siginfo.exp: break handler
+PASS: gdb.base/siginfo.exp: continue to stepi handler
+PASS: gdb.base/siginfo.exp: backtrace for nexti
+PASS: gdb.base/siginfo.exp: step out of handler
+Running ./gdb.base/siginfo-infcall.exp ...
+PASS: gdb.base/siginfo-infcall.exp: continue to SIGUSR1
+PASS: gdb.base/siginfo-infcall.exp: p callme ()
+PASS: gdb.base/siginfo-infcall.exp: continue to the handler
+Running ./gdb.base/siginfo-obj.exp ...
+PASS: gdb.base/siginfo-obj.exp: continue to signal
+PASS: gdb.base/siginfo-obj.exp: save a core file
+PASS: gdb.base/siginfo-obj.exp: Extract si_addr
+PASS: gdb.base/siginfo-obj.exp: Extract si_errno
+PASS: gdb.base/siginfo-obj.exp: Extract si_code
+PASS: gdb.base/siginfo-obj.exp: Extract si_signo
+PASS: gdb.base/siginfo-obj.exp: break 38
+PASS: gdb.base/siginfo-obj.exp: continue to handler
+PASS: gdb.base/siginfo-obj.exp: p ssi_addr
+PASS: gdb.base/siginfo-obj.exp: p ssi_errno
+PASS: gdb.base/siginfo-obj.exp: p ssi_code
+PASS: gdb.base/siginfo-obj.exp: p ssi_signo
+PASS: gdb.base/siginfo-obj.exp: continue to signal
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo._sifields._sigfault.si_addr = 0x666
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_errno = 666
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_code = 999
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_signo = 11
+PASS: gdb.base/siginfo-obj.exp: break 38
+PASS: gdb.base/siginfo-obj.exp: continue to handler
+PASS: gdb.base/siginfo-obj.exp: p ssi_addr
+PASS: gdb.base/siginfo-obj.exp: p ssi_errno
+PASS: gdb.base/siginfo-obj.exp: p ssi_code
+PASS: gdb.base/siginfo-obj.exp: p ssi_signo
+FAIL: gdb.base/siginfo-obj.exp: core siginfo-obj.gcore
+FAIL: gdb.base/siginfo-obj.exp: p $_siginfo.si_signo from core file
+FAIL: gdb.base/siginfo-obj.exp: p $_siginfo.si_errno from core file
+FAIL: gdb.base/siginfo-obj.exp: p $_siginfo.si_code from core file
+FAIL: gdb.base/siginfo-obj.exp: p $_siginfo._sifields._sigfault.si_addr from core file
+Running ./gdb.base/siginfo-thread.exp ...
+PASS: gdb.base/siginfo-thread.exp: successfully compiled posix threads test case
+PASS: gdb.base/siginfo-thread.exp: continue to signal
+PASS: gdb.base/siginfo-thread.exp: save a core file
+PASS: gdb.base/siginfo-thread.exp: Extract si_addr
+PASS: gdb.base/siginfo-thread.exp: Extract si_errno
+PASS: gdb.base/siginfo-thread.exp: Extract si_code
+PASS: gdb.base/siginfo-thread.exp: Extract si_signo
+PASS: gdb.base/siginfo-thread.exp: break 39
+PASS: gdb.base/siginfo-thread.exp: continue to handler
+PASS: gdb.base/siginfo-thread.exp: p ssi_addr
+PASS: gdb.base/siginfo-thread.exp: p ssi_errno
+PASS: gdb.base/siginfo-thread.exp: p ssi_code
+PASS: gdb.base/siginfo-thread.exp: p ssi_signo
+PASS: gdb.base/siginfo-thread.exp: thread 1
+PASS: gdb.base/siginfo-thread.exp: test signal in main thread
+FAIL: gdb.base/siginfo-thread.exp: core siginfo-thread.gcore
+FAIL: gdb.base/siginfo-thread.exp: p $_siginfo.si_signo from core file
+FAIL: gdb.base/siginfo-thread.exp: p $_siginfo.si_errno from core file
+FAIL: gdb.base/siginfo-thread.exp: p $_siginfo.si_code from core file
+FAIL: gdb.base/siginfo-thread.exp: p $_siginfo._sifields._sigfault.si_addr from core file
+PASS: gdb.base/siginfo-thread.exp: set variable $count = 0
+PASS: gdb.base/siginfo-thread.exp: select thread 1 with core file
+FAIL: gdb.base/siginfo-thread.exp: update counter in thread 1
+PASS: gdb.base/siginfo-thread.exp: select thread 2 with core file
+FAIL: gdb.base/siginfo-thread.exp: update counter in thread 2
+FAIL: gdb.base/siginfo-thread.exp: print $count
+Running ./gdb.base/signals.exp ...
+PASS: gdb.base/signals.exp: handle all print
+PASS: gdb.base/signals.exp: set variable count = 0
+PASS: gdb.base/signals.exp: break handler if 0
+PASS: gdb.base/signals.exp: set $handler_breakpoint_number = $bpnum
+PASS: gdb.base/signals.exp: next to signal
+PASS: gdb.base/signals.exp: next to alarm #1
+PASS: gdb.base/signals.exp: next to ++count #1
+PASS: gdb.base/signals.exp: p func1 () #1
+PASS: gdb.base/signals.exp: p count #1
+PASS: gdb.base/signals.exp: condition $handler_breakpoint_number
+PASS: gdb.base/signals.exp: next to alarm #2
+PASS: gdb.base/signals.exp: next to ++count #2
+PASS: gdb.base/signals.exp: p func1 () #2
+PASS: gdb.base/signals.exp: backtrace from handler when calling func1
+PASS: gdb.base/signals.exp: continue
+PASS: gdb.base/signals.exp: p count #2
+PASS: gdb.base/signals.exp: info signals
+PASS: gdb.base/signals.exp: info signal SIGTRAP
+PASS: gdb.base/signals.exp: info signal 5
+PASS: gdb.base/signals.exp: handle without arguments
+PASS: gdb.base/signals.exp: handle with bogus SIG
+PASS: gdb.base/signals.exp: handle SIG with bogus action
+PASS: gdb.base/signals.exp: handle SIG with multiple conflicting actions
+PASS: gdb.base/signals.exp: handle SIG parses all legal actions
+PASS: gdb.base/signals.exp: handle multiple SIGs
+PASS: gdb.base/signals.exp: override SIGTRAP
+PASS: gdb.base/signals.exp: invalid signal number rejected
+PASS: gdb.base/signals.exp: handle multiple SIGs via integer range
+PASS: gdb.base/signals.exp: handle multiple SIGs via reverse integer range
+PASS: gdb.base/signals.exp: override SIGINT
+PASS: gdb.base/signals.exp: signal without arguments disallowed
+PASS: gdb.base/signals.exp: signal SIGUSR1
+PASS: gdb.base/signals.exp: backtrace for SIGUSR1
+Running ./gdb.base/signest.exp ...
+PASS: gdb.base/signest.exp: continue to fault
+PASS: gdb.base/signest.exp: set conditional breakpoint
+PASS: gdb.base/signest.exp: pass SIGSEGV
+PASS: gdb.base/signest.exp: pass SIGBUS
+PASS: gdb.base/signest.exp: run through nested faults
+Running ./gdb.base/signull.exp ...
+PASS: gdb.base/signull.exp: set for function pointer probe
+PASS: gdb.base/signull.exp: probe function pointer (function entry-point)
+PASS: gdb.base/signull.exp: rerun to main
+PASS: gdb.base/signull.exp: break bowler
+PASS: gdb.base/signull.exp: break keeper
+PASS: gdb.base/signull.exp: handle SIGSEGV
+PASS: gdb.base/signull.exp: handle SIGBUS
+PASS: gdb.base/signull.exp: data read; start with the bowler
+PASS: gdb.base/signull.exp: data read; select the pointer type
+PASS: gdb.base/signull.exp: data read; take the SIGSEGV
+PASS: gdb.base/signull.exp: data read; backtrace from SIGSEGV
+PASS: gdb.base/signull.exp: data read; continue to the keeper
+PASS: gdb.base/signull.exp: data read; backtrace from keeper through SIGSEGV
+PASS: gdb.base/signull.exp: data write; start with the bowler
+PASS: gdb.base/signull.exp: data write; select the pointer type
+PASS: gdb.base/signull.exp: data write; take the SIGSEGV
+PASS: gdb.base/signull.exp: data write; backtrace from SIGSEGV
+PASS: gdb.base/signull.exp: data write; continue to the keeper
+PASS: gdb.base/signull.exp: data write; backtrace from keeper through SIGSEGV
+PASS: gdb.base/signull.exp: code; start with the bowler
+PASS: gdb.base/signull.exp: code; select the pointer type
+PASS: gdb.base/signull.exp: code; take the SIGSEGV
+PASS: gdb.base/signull.exp: code; backtrace from SIGSEGV
+PASS: gdb.base/signull.exp: code; continue to the keeper
+PASS: gdb.base/signull.exp: code; backtrace from keeper through SIGSEGV
+Running ./gdb.base/sigrepeat.exp ...
+PASS: gdb.base/sigrepeat.exp: advance to infinite loop
+PASS: gdb.base/sigrepeat.exp: next
+Running ./gdb.base/sigstep.exp ...
+PASS: gdb.base/sigstep.exp: display/i $pc
+PASS: gdb.base/sigstep.exp: break handler
+PASS: gdb.base/sigstep.exp: continue to stepi handler
+PASS: gdb.base/sigstep.exp: backtrace for nexti
+PASS: gdb.base/sigstep.exp: step from handler; continue to handler
+PASS: gdb.base/sigstep.exp: step from handler; leave handler
+PASS: gdb.base/sigstep.exp: stepi from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: stepi from handleri; leave handler
+PASS: gdb.base/sigstep.exp: stepi from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: next from handler; continue to handler
+PASS: gdb.base/sigstep.exp: next from handler; leave handler
+PASS: gdb.base/sigstep.exp: nexti from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: nexti from handleri; leave handler
+PASS: gdb.base/sigstep.exp: nexti from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: finish from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: finish from handleri; leave handler
+PASS: gdb.base/sigstep.exp: finish from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: return from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: return from handleri; leave handler
+PASS: gdb.base/sigstep.exp: return from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: Set done as return will have skipped it
+PASS: gdb.base/sigstep.exp: set itimer = itimer_real
+PASS: gdb.base/sigstep.exp: break 79
+PASS: gdb.base/sigstep.exp: step to handler; resync
+PASS: gdb.base/sigstep.exp: step to handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: step to handler; break handler
+PASS: gdb.base/sigstep.exp: step to handler; performing step
+PASS: gdb.base/sigstep.exp: step to handler; clear handler
+PASS: gdb.base/sigstep.exp: next to handler; resync
+PASS: gdb.base/sigstep.exp: next to handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: next to handler; break handler
+PASS: gdb.base/sigstep.exp: next to handler; performing next
+PASS: gdb.base/sigstep.exp: next to handler; clear handler
+PASS: gdb.base/sigstep.exp: continue to handler; resync
+PASS: gdb.base/sigstep.exp: continue to handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: continue to handler; break handler
+PASS: gdb.base/sigstep.exp: continue to handler; performing continue
+PASS: gdb.base/sigstep.exp: continue to handler; clear handler
+PASS: gdb.base/sigstep.exp: step to handler entry; resync
+PASS: gdb.base/sigstep.exp: step to handler entry; advance to infinite loop
+PASS: gdb.base/sigstep.exp: step to handler entry; break handler
+PASS: gdb.base/sigstep.exp: step to handler entry; performing step
+PASS: gdb.base/sigstep.exp: step to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: next to handler entry; resync
+PASS: gdb.base/sigstep.exp: next to handler entry; advance to infinite loop
+PASS: gdb.base/sigstep.exp: next to handler entry; break handler
+PASS: gdb.base/sigstep.exp: next to handler entry; performing next
+PASS: gdb.base/sigstep.exp: next to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: continue to handler entry; resync
+PASS: gdb.base/sigstep.exp: continue to handler entry; advance to infinite loop
+PASS: gdb.base/sigstep.exp: continue to handler entry; break handler
+PASS: gdb.base/sigstep.exp: continue to handler entry; performing continue
+PASS: gdb.base/sigstep.exp: continue to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: step over handler; resync
+PASS: gdb.base/sigstep.exp: step over handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: step over handler; performing step
+PASS: gdb.base/sigstep.exp: next over handler; resync
+PASS: gdb.base/sigstep.exp: next over handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: next over handler; performing next
+PASS: gdb.base/sigstep.exp: continue over handler; resync
+PASS: gdb.base/sigstep.exp: continue over handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: continue over handler; performing continue
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; resync
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; break infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; break handler
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; performing step
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; clear handler
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; resync
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; break infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; break handler
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; performing next
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; clear handler
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; resync
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; break infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; break handler
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; performing continue
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; clear handler
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; resync
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; break infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; break handler
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; continue to infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; performing step
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; clear infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; resync
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; break infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; break handler
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; continue to infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; performing next
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; clear infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; resync
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; break infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; break handler
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; continue to infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; performing continue
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; clear infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; resync
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; break infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; performing step
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; resync
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; break infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; performing next
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; resync
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; break infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; performing continue
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; clear infinite loop
+Running ./gdb.base/sizeof.exp ...
+Running ./gdb.base/skip.exp ...
+PASS: gdb.base/skip.exp: skip file (no default file)
+PASS: gdb.base/skip.exp: skip function
+PASS: gdb.base/skip.exp: skip (no default function)
+PASS: gdb.base/skip.exp: info skip empty
+PASS: gdb.base/skip.exp: skip file (skip.c)
+PASS: gdb.base/skip.exp: skip (main)
+PASS: gdb.base/skip.exp: skip file skip1.c
+PASS: gdb.base/skip.exp: skip function baz
+PASS: gdb.base/skip.exp: skip enable 999
+PASS: gdb.base/skip.exp: skip disable 999
+PASS: gdb.base/skip.exp: skip delete 999
+PASS: gdb.base/skip.exp: skip enable a
+PASS: gdb.base/skip.exp: skip disable a
+PASS: gdb.base/skip.exp: skip delete a
+PASS: gdb.base/skip.exp: info skip 999
+PASS: gdb.base/skip.exp: info skip
+PASS: gdb.base/skip.exp: step in the main
+PASS: gdb.base/skip.exp: step after all ignored
+PASS: gdb.base/skip.exp: skip delete 1
+PASS: gdb.base/skip.exp: info skip (delete 1)
+PASS: gdb.base/skip.exp: step after deleting 1 (1)
+PASS: gdb.base/skip.exp: step after deleting 1 (2)
+PASS: gdb.base/skip.exp: step after deleting 1 (3)
+PASS: gdb.base/skip.exp: skip disable 3
+PASS: gdb.base/skip.exp: info skip shows entry as disabled
+PASS: gdb.base/skip.exp: step after disabling 3 (1)
+PASS: gdb.base/skip.exp: step after disabling 3 (2)
+PASS: gdb.base/skip.exp: step after disabling 3 (3)
+PASS: gdb.base/skip.exp: step after disabling 3 (4)
+PASS: gdb.base/skip.exp: step after disabling 3 (5)
+PASS: gdb.base/skip.exp: skip enable 3
+PASS: gdb.base/skip.exp: info skip shows entry as enabled
+PASS: gdb.base/skip.exp: step after enable 3 (1)
+PASS: gdb.base/skip.exp: step after enable 3 (2)
+PASS: gdb.base/skip.exp: step after enable 3 (3)
+PASS: gdb.base/skip.exp: skip disable
+PASS: gdb.base/skip.exp: info skip after disabling all
+PASS: gdb.base/skip.exp: skip enable
+PASS: gdb.base/skip.exp: info skip after enabling all
+PASS: gdb.base/skip.exp: skip disable 4 2-3
+PASS: gdb.base/skip.exp: info skip after disabling 4 2-3
+PASS: gdb.base/skip.exp: skip enable 2-3
+PASS: gdb.base/skip.exp: info skip after enabling 2-3
+PASS: gdb.base/skip.exp: info skip 2-3
+PASS: gdb.base/skip.exp: skip delete 2 3
+PASS: gdb.base/skip.exp: info skip after deleting 2 3
+PASS: gdb.base/skip.exp: skip delete
+PASS: gdb.base/skip.exp: info skip after deleting all
+Running ./gdb.base/skip-solib.exp ...
+Running ./gdb.base/so-impl-ld.exp ...
+PASS: gdb.base/so-impl-ld.exp: step over solib call
+PASS: gdb.base/so-impl-ld.exp: step into solib call
+PASS: gdb.base/so-impl-ld.exp: step in solib call
+PASS: gdb.base/so-impl-ld.exp: step out of solib call
+Running ./gdb.base/so-indr-cl.exp ...
+Running ./gdb.base/solib-corrupted.exp ...
+Running ./gdb.base/solib-disc.exp ...
+PASS: gdb.base/solib-disc.exp: set stop-on-solib-events 1
+PASS: gdb.base/solib-disc.exp: continue to load
+PASS: gdb.base/solib-disc.exp: save $pc after load
+PASS: gdb.base/solib-disc.exp: disconnect after load
+PASS: gdb.base/solib-disc.exp: reconnect after load
+PASS: gdb.base/solib-disc.exp: check $pc after load
+PASS: gdb.base/solib-disc.exp: continue to unload
+PASS: gdb.base/solib-disc.exp: save $pc after unload
+PASS: gdb.base/solib-disc.exp: disconnect after unload
+PASS: gdb.base/solib-disc.exp: reconnect after unload
+PASS: gdb.base/solib-disc.exp: check $pc after unload
+Running ./gdb.base/solib-display.exp ...
+Running ./gdb.base/solib.exp ...
+Running ./gdb.base/solib-nodir.exp ...
+Running ./gdb.base/solib-overlap.exp ...
+Running ./gdb.base/solib-symbol.exp ...
+PASS: gdb.base/solib-symbol.exp: foo2 in main
+PASS: gdb.base/solib-symbol.exp: foo in libmd
+PASS: gdb.base/solib-symbol.exp: continue
+PASS: gdb.base/solib-symbol.exp: foo2 in mdlib
+Running ./gdb.base/solib-weak.exp ...
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 nodebug, lib1 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 nodebug, lib2 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 debug, lib1 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 debug, lib2 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 nodebug, lib1 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 nodebug, lib2 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 debug, lib1 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 debug, lib2 first
+Running ./gdb.base/source.exp ...
+PASS: gdb.base/source.exp: script contains error
+PASS: gdb.base/source.exp: source -v
+PASS: gdb.base/source.exp: source after -v
+PASS: gdb.base/source.exp: set search directories
+PASS: gdb.base/source.exp: source -s
+PASS: gdb.base/source.exp: source -s -v
+PASS: gdb.base/source.exp: source -v -s
+Running ./gdb.base/stack-checking.exp ...
+PASS: gdb.base/stack-checking.exp: continue to breakpoint: breakpoint for small frame
+PASS: gdb.base/stack-checking.exp: bt
+PASS: gdb.base/stack-checking.exp: continue to breakpoint: breakpoint for medium frame
+PASS: gdb.base/stack-checking.exp: bt
+PASS: gdb.base/stack-checking.exp: continue to breakpoint: breakpoint for big frame
+PASS: gdb.base/stack-checking.exp: bt
+Running ./gdb.base/stale-infcall.exp ...
+PASS: gdb.base/stale-infcall.exp: continue to breakpoint: test-next
+PASS: gdb.base/stale-infcall.exp: set $test_fail_bpnum=$bpnum
+XFAIL: gdb.base/stale-infcall.exp: test system longjmp tracking support
+UNTESTED: gdb.base/stale-infcall.exp: System lacks support for tracking longjmps
+Running ./gdb.base/stap-probe.exp ...
+gdb compile failed, ./gdb.base/stap-probe.c:39:21: fatal error: sys/sdt.h: No such file or directory
+ #include <sys/sdt.h>
+                     ^
+compilation terminated.
+UNTESTED: gdb.base/stap-probe.exp: without semaphore, not optimized: stap-probe.exp
+UNTESTED: gdb.base/stap-probe.exp: without semaphore, not optimized: stap-probe.exp
+Running ./gdb.base/start.exp ...
+UNTESTED: gdb.base/start.exp: start
+Running ./gdb.base/step-break.exp ...
+PASS: gdb.base/step-break.exp: breakpoint line number
+PASS: gdb.base/step-break.exp: run until breakpoint set at a line number
+PASS: gdb.base/step-break.exp: next 2 (1)
+PASS: gdb.base/step-break.exp: next 2 (2)
+PASS: gdb.base/step-break.exp: next 2 (3)
+PASS: gdb.base/step-break.exp: next 2 (4)
+PASS: gdb.base/step-break.exp: next 2 (5)
+PASS: gdb.base/step-break.exp: next 2 (6)
+Running ./gdb.base/step-bt.exp ...
+PASS: gdb.base/step-bt.exp: breakpoint at first instruction of hello()
+PASS: gdb.base/step-bt.exp: run to hello()
+PASS: gdb.base/step-bt.exp: step first instruction
+PASS: gdb.base/step-bt.exp: backtrace after first instruction step
+PASS: gdb.base/step-bt.exp: step second instruction
+PASS: gdb.base/step-bt.exp: backtrace after second instruction step
+Running ./gdb.base/step-line.exp ...
+PASS: gdb.base/step-line.exp: break f1
+PASS: gdb.base/step-line.exp: continue to f1
+PASS: gdb.base/step-line.exp: next over dummy 1
+PASS: gdb.base/step-line.exp: next to dummy 2
+PASS: gdb.base/step-line.exp: next over dummy 2
+PASS: gdb.base/step-line.exp: step into f2
+PASS: gdb.base/step-line.exp: next over dummy 4
+PASS: gdb.base/step-line.exp: next to dummy 5
+PASS: gdb.base/step-line.exp: next to dummy 6
+PASS: gdb.base/step-line.exp: next over dummy 6
+PASS: gdb.base/step-line.exp: next to dummy 7
+PASS: gdb.base/step-line.exp: next to dummy 8
+PASS: gdb.base/step-line.exp: next over dummy 8
+PASS: gdb.base/step-line.exp: next to dummy 9
+PASS: gdb.base/step-line.exp: next to dummy 10
+PASS: gdb.base/step-line.exp: next over dummy 10
+Running ./gdb.base/step-resume-infcall.exp ...
+PASS: gdb.base/step-resume-infcall.exp: step
+PASS: gdb.base/step-resume-infcall.exp: up
+PASS: gdb.base/step-resume-infcall.exp: set $b=$pc
+PASS: gdb.base/step-resume-infcall.exp: print $bpnum
+PASS: gdb.base/step-resume-infcall.exp: disass/m
+PASS: gdb.base/step-resume-infcall.exp: info breakpoints
+PASS: gdb.base/step-resume-infcall.exp: next
+PASS: gdb.base/step-resume-infcall.exp: p cond_hit
+Running ./gdb.base/step-symless.exp ...
+PASS: gdb.base/step-symless.exp: strip stub symbols
+PASS: gdb.base/step-symless.exp: step
+Running ./gdb.base/step-test.exp ...
+PASS: gdb.base/step-test.exp: next 1
+PASS: gdb.base/step-test.exp: step 1
+PASS: gdb.base/step-test.exp: next 2
+PASS: gdb.base/step-test.exp: step 3
+PASS: gdb.base/step-test.exp: next 3
+PASS: gdb.base/step-test.exp: next over
+PASS: gdb.base/step-test.exp: step into
+PASS: gdb.base/step-test.exp: step out
+PASS: gdb.base/step-test.exp: stepi to next line
+PASS: gdb.base/step-test.exp: stepi into function
+FAIL: gdb.base/step-test.exp: stepi into function's first source line
+FAIL: gdb.base/step-test.exp: stepi: finish call
+FAIL: gdb.base/step-test.exp: nexti over function
+PASS: gdb.base/step-test.exp: set breakpoint at call to large_struct_by_value
+PASS: gdb.base/step-test.exp: run to pass large struct
+PASS: gdb.base/step-test.exp: large struct by value
+PASS: gdb.base/step-test.exp: continue until exit at step-test.exp
+Running ./gdb.base/store.exp ...
+PASS: gdb.base/store.exp: tbreak wack_charest
+PASS: gdb.base/store.exp: continue to wack_charest
+PASS: gdb.base/store.exp: var charest l; print old l, expecting -1 .*
+PASS: gdb.base/store.exp: var charest l; print old r, expecting -2 .*
+PASS: gdb.base/store.exp: var charest l; setting l to 4
+PASS: gdb.base/store.exp: var charest l; print new l, expecting 4 ..004.
+PASS: gdb.base/store.exp: var charest l; next over add call
+PASS: gdb.base/store.exp: var charest l; print incremented l, expecting 2 ..002.
+PASS: gdb.base/store.exp: tbreak wack_short
+PASS: gdb.base/store.exp: continue to wack_short
+PASS: gdb.base/store.exp: var short l; print old l, expecting -1
+PASS: gdb.base/store.exp: var short l; print old r, expecting -2
+PASS: gdb.base/store.exp: var short l; setting l to 4
+PASS: gdb.base/store.exp: var short l; print new l, expecting 4
+PASS: gdb.base/store.exp: var short l; next over add call
+PASS: gdb.base/store.exp: var short l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_int
+PASS: gdb.base/store.exp: continue to wack_int
+PASS: gdb.base/store.exp: var int l; print old l, expecting -1
+PASS: gdb.base/store.exp: var int l; print old r, expecting -2
+PASS: gdb.base/store.exp: var int l; setting l to 4
+PASS: gdb.base/store.exp: var int l; print new l, expecting 4
+PASS: gdb.base/store.exp: var int l; next over add call
+PASS: gdb.base/store.exp: var int l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_long
+PASS: gdb.base/store.exp: continue to wack_long
+PASS: gdb.base/store.exp: var long l; print old l, expecting -1
+PASS: gdb.base/store.exp: var long l; print old r, expecting -2
+PASS: gdb.base/store.exp: var long l; setting l to 4
+PASS: gdb.base/store.exp: var long l; print new l, expecting 4
+PASS: gdb.base/store.exp: var long l; next over add call
+PASS: gdb.base/store.exp: var long l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_longest
+PASS: gdb.base/store.exp: continue to wack_longest
+PASS: gdb.base/store.exp: var longest l; print old l, expecting -1
+FAIL: gdb.base/store.exp: var longest l; print old r, expecting -2
+PASS: gdb.base/store.exp: var longest l; setting l to 4
+PASS: gdb.base/store.exp: var longest l; print new l, expecting 4
+PASS: gdb.base/store.exp: var longest l; next over add call
+PASS: gdb.base/store.exp: var longest l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_float
+PASS: gdb.base/store.exp: continue to wack_float
+FAIL: gdb.base/store.exp: var float l; print old l, expecting -1
+PASS: gdb.base/store.exp: var float l; print old r, expecting -2
+PASS: gdb.base/store.exp: var float l; setting l to 4
+FAIL: gdb.base/store.exp: var float l; print new l, expecting 4
+PASS: gdb.base/store.exp: var float l; next over add call
+FAIL: gdb.base/store.exp: var float l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_double
+PASS: gdb.base/store.exp: continue to wack_double
+FAIL: gdb.base/store.exp: var double l; print old l, expecting -1
+FAIL: gdb.base/store.exp: var double l; print old r, expecting -2
+PASS: gdb.base/store.exp: var double l; setting l to 4
+FAIL: gdb.base/store.exp: var double l; print new l, expecting 4
+PASS: gdb.base/store.exp: var double l; next over add call
+FAIL: gdb.base/store.exp: var double l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_doublest
+PASS: gdb.base/store.exp: continue to wack_doublest
+FAIL: gdb.base/store.exp: var doublest l; print old l, expecting -1
+FAIL: gdb.base/store.exp: var doublest l; print old r, expecting -2
+FAIL: gdb.base/store.exp: var doublest l; setting l to 4
+FAIL: gdb.base/store.exp: var doublest l; print new l, expecting 4
+PASS: gdb.base/store.exp: var doublest l; next over add call
+FAIL: gdb.base/store.exp: var doublest l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak add_charest
+PASS: gdb.base/store.exp: continue to add_charest
+PASS: gdb.base/store.exp: upvar charest l; up
+PASS: gdb.base/store.exp: upvar charest l; print old l, expecting -1 .*
+PASS: gdb.base/store.exp: upvar charest l; print old r, expecting -2 .*
+PASS: gdb.base/store.exp: upvar charest l; set l to 4
+PASS: gdb.base/store.exp: upvar charest l; print new l, expecting 4 ..004.
+PASS: gdb.base/store.exp: tbreak add_short
+PASS: gdb.base/store.exp: continue to add_short
+PASS: gdb.base/store.exp: upvar short l; up
+PASS: gdb.base/store.exp: upvar short l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar short l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar short l; set l to 4
+PASS: gdb.base/store.exp: upvar short l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_int
+PASS: gdb.base/store.exp: continue to add_int
+PASS: gdb.base/store.exp: upvar int l; up
+PASS: gdb.base/store.exp: upvar int l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar int l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar int l; set l to 4
+PASS: gdb.base/store.exp: upvar int l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_long
+PASS: gdb.base/store.exp: continue to add_long
+PASS: gdb.base/store.exp: upvar long l; up
+PASS: gdb.base/store.exp: upvar long l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar long l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar long l; set l to 4
+PASS: gdb.base/store.exp: upvar long l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_longest
+PASS: gdb.base/store.exp: continue to add_longest
+PASS: gdb.base/store.exp: upvar longest l; up
+PASS: gdb.base/store.exp: upvar longest l; print old l, expecting -1
+FAIL: gdb.base/store.exp: upvar longest l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar longest l; set l to 4
+PASS: gdb.base/store.exp: upvar longest l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_float
+PASS: gdb.base/store.exp: continue to add_float
+PASS: gdb.base/store.exp: upvar float l; up
+FAIL: gdb.base/store.exp: upvar float l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar float l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar float l; set l to 4
+FAIL: gdb.base/store.exp: upvar float l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_double
+PASS: gdb.base/store.exp: continue to add_double
+PASS: gdb.base/store.exp: upvar double l; up
+FAIL: gdb.base/store.exp: upvar double l; print old l, expecting -1
+FAIL: gdb.base/store.exp: upvar double l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar double l; set l to 4
+FAIL: gdb.base/store.exp: upvar double l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_doublest
+PASS: gdb.base/store.exp: continue to add_doublest
+PASS: gdb.base/store.exp: upvar doublest l; up
+FAIL: gdb.base/store.exp: upvar doublest l; print old l, expecting -1
+FAIL: gdb.base/store.exp: upvar doublest l; print old r, expecting -2
+FAIL: gdb.base/store.exp: upvar doublest l; set l to 4
+FAIL: gdb.base/store.exp: upvar doublest l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak wack_struct_1
+PASS: gdb.base/store.exp: continue to wack_struct_1
+PASS: gdb.base/store.exp: var struct 1 u; next to add_struct_1 call
+PASS: gdb.base/store.exp: var struct 1 u; print old u, expecting {s = \{0}}
+PASS: gdb.base/store.exp: var struct 1 u; set u to s_1
+PASS: gdb.base/store.exp: var struct 1 u; print new u, expecting {s = \{1}}
+PASS: gdb.base/store.exp: tbreak wack_struct_2
+PASS: gdb.base/store.exp: continue to wack_struct_2
+PASS: gdb.base/store.exp: var struct 2 u; next to add_struct_2 call
+PASS: gdb.base/store.exp: var struct 2 u; print old u, expecting {s = \{0, 0}}
+PASS: gdb.base/store.exp: var struct 2 u; set u to s_2
+PASS: gdb.base/store.exp: var struct 2 u; print new u, expecting {s = \{1, 2}}
+PASS: gdb.base/store.exp: tbreak wack_struct_3
+PASS: gdb.base/store.exp: continue to wack_struct_3
+PASS: gdb.base/store.exp: var struct 3 u; next to add_struct_3 call
+PASS: gdb.base/store.exp: var struct 3 u; print old u, expecting {s = \{0, 0, 0}}
+PASS: gdb.base/store.exp: var struct 3 u; set u to s_3
+PASS: gdb.base/store.exp: var struct 3 u; print new u, expecting {s = \{1, 2, 3}}
+PASS: gdb.base/store.exp: tbreak wack_struct_4
+PASS: gdb.base/store.exp: continue to wack_struct_4
+PASS: gdb.base/store.exp: var struct 4 u; next to add_struct_4 call
+PASS: gdb.base/store.exp: var struct 4 u; print old u, expecting {s = \{0, 0, 0, 0}}
+PASS: gdb.base/store.exp: var struct 4 u; set u to s_4
+PASS: gdb.base/store.exp: var struct 4 u; print new u, expecting {s = \{1, 2, 3, 4}}
+PASS: gdb.base/store.exp: tbreak add_struct_1
+PASS: gdb.base/store.exp: continue to add_struct_1
+PASS: gdb.base/store.exp: up struct 1 u; up
+PASS: gdb.base/store.exp: up struct 1 u; print old u, expecting {s = \{0}}
+PASS: gdb.base/store.exp: up struct 1 u; set u to s_1
+PASS: gdb.base/store.exp: up struct 1 u; print new u, expecting {s = \{1}}
+PASS: gdb.base/store.exp: tbreak add_struct_2
+PASS: gdb.base/store.exp: continue to add_struct_2
+PASS: gdb.base/store.exp: up struct 2 u; up
+PASS: gdb.base/store.exp: up struct 2 u; print old u, expecting {s = \{0, 0}}
+PASS: gdb.base/store.exp: up struct 2 u; set u to s_2
+PASS: gdb.base/store.exp: up struct 2 u; print new u, expecting {s = \{1, 2}}
+PASS: gdb.base/store.exp: tbreak add_struct_3
+PASS: gdb.base/store.exp: continue to add_struct_3
+PASS: gdb.base/store.exp: up struct 3 u; up
+PASS: gdb.base/store.exp: up struct 3 u; print old u, expecting {s = \{0, 0, 0}}
+PASS: gdb.base/store.exp: up struct 3 u; set u to s_3
+PASS: gdb.base/store.exp: up struct 3 u; print new u, expecting {s = \{1, 2, 3}}
+PASS: gdb.base/store.exp: tbreak add_struct_4
+PASS: gdb.base/store.exp: continue to add_struct_4
+PASS: gdb.base/store.exp: up struct 4 u; up
+PASS: gdb.base/store.exp: up struct 4 u; print old u, expecting {s = \{0, 0, 0, 0}}
+PASS: gdb.base/store.exp: up struct 4 u; set u to s_4
+PASS: gdb.base/store.exp: up struct 4 u; print new u, expecting {s = \{1, 2, 3, 4}}
+PASS: gdb.base/store.exp: tbreak wack_field_1
+PASS: gdb.base/store.exp: continue field 1
+PASS: gdb.base/store.exp: next field 1
+PASS: gdb.base/store.exp: old field 1
+PASS: gdb.base/store.exp: set variable u = F_1
+PASS: gdb.base/store.exp: new field 1
+PASS: gdb.base/store.exp: set variable u = F_1, u.i = f_1.i
+PASS: gdb.base/store.exp: f_1.i
+PASS: gdb.base/store.exp: set variable u = F_1, u.j = f_1.j
+PASS: gdb.base/store.exp: f_1.j
+PASS: gdb.base/store.exp: set variable u = F_1, u.k = f_1.k
+PASS: gdb.base/store.exp: f_1.k
+PASS: gdb.base/store.exp: set variable u = f_1, u.i = F_1.i
+PASS: gdb.base/store.exp: F_1.i
+PASS: gdb.base/store.exp: set variable u = f_1, u.j = F_1.j
+PASS: gdb.base/store.exp: F_1.j
+PASS: gdb.base/store.exp: set variable u = f_1, u.k = F_1.k
+PASS: gdb.base/store.exp: F_1.k
+PASS: gdb.base/store.exp: tbreak wack_field_2
+PASS: gdb.base/store.exp: continue field 2
+PASS: gdb.base/store.exp: next field 2
+PASS: gdb.base/store.exp: old field 2
+PASS: gdb.base/store.exp: set variable u = F_2
+PASS: gdb.base/store.exp: new field 2
+PASS: gdb.base/store.exp: set variable u = F_2, u.i = f_2.i
+PASS: gdb.base/store.exp: f_2.i
+PASS: gdb.base/store.exp: set variable u = F_2, u.j = f_2.j
+PASS: gdb.base/store.exp: f_2.j
+PASS: gdb.base/store.exp: set variable u = F_2, u.k = f_2.k
+PASS: gdb.base/store.exp: f_2.k
+PASS: gdb.base/store.exp: set variable u = f_2, u.i = F_2.i
+PASS: gdb.base/store.exp: F_2.i
+PASS: gdb.base/store.exp: set variable u = f_2, u.j = F_2.j
+PASS: gdb.base/store.exp: F_2.j
+PASS: gdb.base/store.exp: set variable u = f_2, u.k = F_2.k
+PASS: gdb.base/store.exp: F_2.k
+PASS: gdb.base/store.exp: tbreak wack_field_3
+PASS: gdb.base/store.exp: continue field 3
+PASS: gdb.base/store.exp: next field 3
+PASS: gdb.base/store.exp: old field 3
+PASS: gdb.base/store.exp: set variable u = F_3
+PASS: gdb.base/store.exp: new field 3
+PASS: gdb.base/store.exp: set variable u = F_3, u.i = f_3.i
+PASS: gdb.base/store.exp: f_3.i
+PASS: gdb.base/store.exp: set variable u = F_3, u.j = f_3.j
+PASS: gdb.base/store.exp: f_3.j
+PASS: gdb.base/store.exp: set variable u = F_3, u.k = f_3.k
+PASS: gdb.base/store.exp: f_3.k
+PASS: gdb.base/store.exp: set variable u = f_3, u.i = F_3.i
+PASS: gdb.base/store.exp: F_3.i
+PASS: gdb.base/store.exp: set variable u = f_3, u.j = F_3.j
+PASS: gdb.base/store.exp: F_3.j
+PASS: gdb.base/store.exp: set variable u = f_3, u.k = F_3.k
+PASS: gdb.base/store.exp: F_3.k
+PASS: gdb.base/store.exp: tbreak wack_field_4
+PASS: gdb.base/store.exp: continue field 4
+PASS: gdb.base/store.exp: next field 4
+PASS: gdb.base/store.exp: old field 4
+PASS: gdb.base/store.exp: set variable u = F_4
+PASS: gdb.base/store.exp: new field 4
+PASS: gdb.base/store.exp: set variable u = F_4, u.i = f_4.i
+PASS: gdb.base/store.exp: f_4.i
+PASS: gdb.base/store.exp: set variable u = F_4, u.j = f_4.j
+PASS: gdb.base/store.exp: f_4.j
+PASS: gdb.base/store.exp: set variable u = F_4, u.k = f_4.k
+PASS: gdb.base/store.exp: f_4.k
+PASS: gdb.base/store.exp: set variable u = f_4, u.i = F_4.i
+PASS: gdb.base/store.exp: F_4.i
+PASS: gdb.base/store.exp: set variable u = f_4, u.j = F_4.j
+PASS: gdb.base/store.exp: F_4.j
+PASS: gdb.base/store.exp: set variable u = f_4, u.k = F_4.k
+PASS: gdb.base/store.exp: F_4.k
+Running ./gdb.base/structs2.exp ...
+PASS: gdb.base/structs2.exp: set width 0
+PASS: gdb.base/structs2.exp: structs2 sanity check
+PASS: gdb.base/structs2.exp: structs2 breakpoint set
+PASS: gdb.base/structs2.exp: structs2 continue1
+PASS: gdb.base/structs2.exp: structs2 continue2
+Running ./gdb.base/structs3.exp ...
+PASS: gdb.base/structs3.exp: print two
+PASS: gdb.base/structs3.exp: print *twop
+PASS: gdb.base/structs3.exp: print *(struct Two *)onep
+PASS: gdb.base/structs3.exp: print *(tTwo *)onep
+Running ./gdb.base/structs.exp ...
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: continue to breakpoint: chartest-done
+PASS: gdb.base/structs.exp: p chartest
+PASS: gdb.base/structs.exp: ptype foo1; structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 7 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 7 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 7 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 8 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 8 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 8 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 9 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 9 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 9 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 10 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 10 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 10 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 11 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 11 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 11 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 12 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 12 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 12 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 13 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 13 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 13 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 14 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 14 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 14 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 15 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 15 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 15 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 16 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 16 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 16 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 17 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 17 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 17 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 3 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 3 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 3 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 3 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 3 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 3 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 4 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 4 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 4 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 4 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 4 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 4 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 5 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 5 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 5 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 5 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 5 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 5 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 5 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 5 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 5 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 6 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 6 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 6 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 6 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 6 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 6 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 6 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 6 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 6 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 7 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 7 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 7 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 7 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 7 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 7 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 7 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 7 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 7 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 8 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 8 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 8 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 8 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 8 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 8 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 8 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 8 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 8 structs-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 3 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 3 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 3 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 3 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 3 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 3 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 4 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 4 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 4 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 4 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 4 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 4 structs-ts
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ti
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ti
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ti
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ti
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tl
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tl
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tl
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tl
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tll
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tll
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tll
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tll
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tll
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tll
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tll
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tll
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tll
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tll
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tll
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tll
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tll
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tll
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tll
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tf
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tf
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tf
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-td
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-td
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-td
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-td
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-td
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-td
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-td
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-td
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-td
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tld
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tld
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tld
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tld
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tld
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tld
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tld
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tld
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tld
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tld
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tld
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tld
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tld
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tld
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tld
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 7 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 7 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 7 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 8 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 8 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 8 structs-ts-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-ti-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tl-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tll-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tll-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tll-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tf-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-td-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tld-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tld-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tld-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tll
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tll
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tll
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tll
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tf
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-td
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tld
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tld
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tld
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tld
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-td-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tf-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-td
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf-td
+Running ./gdb.base/subst.exp ...
+PASS: gdb.base/subst.exp: deactivate GDB's confirmation interface
+PASS: gdb.base/subst.exp: show substitute-path, no rule entered yet
+PASS: gdb.base/subst.exp: show substitute-path from, no rule entered yet
+PASS: gdb.base/subst.exp: show substitute-path, too many arguments
+PASS: gdb.base/subst.exp: unset substitute-path from, no rule entered yet
+PASS: gdb.base/subst.exp: unset substitute-path, no rule entered yet
+PASS: gdb.base/subst.exp: unset substitute-path from, no rule entered yet
+PASS: gdb.base/subst.exp: unset substitute-path, too many arguments
+PASS: gdb.base/subst.exp: set substitute-path, too many arguments
+PASS: gdb.base/subst.exp: set substitute-path, too few arguments
+PASS: gdb.base/subst.exp: set substitute-path, first argument is empty string
+PASS: gdb.base/subst.exp: add from -> to substitution rule
+PASS: gdb.base/subst.exp: add from1 -> to1 substitution rule
+PASS: gdb.base/subst.exp: add source -> destination substitution rule
+PASS: gdb.base/subst.exp: add depuis -> vers substitution rule
+PASS: gdb.base/subst.exp: add substitution rule to empty string
+PASS: gdb.base/subst.exp: show substitute-path after all paths added
+PASS: gdb.base/subst.exp: show substitute-path from, after all paths added
+PASS: gdb.base/subst.exp: show substitute-path depuis, after all paths added
+PASS: gdb.base/subst.exp: show substitute-path garbage, after all paths added
+PASS: gdb.base/subst.exp: unset substitute-path from
+PASS: gdb.base/subst.exp: show substitute-path from, after unsetting it
+PASS: gdb.base/subst.exp: show substitute-path after from rule removed
+PASS: gdb.base/subst.exp: unset substitute-path from after the rule was removed
+PASS: gdb.base/subst.exp: unset substitute-path depuis (middle of list)
+PASS: gdb.base/subst.exp: show substitute-path after depuis rule removed
+PASS: gdb.base/subst.exp: unset substitute-path empty (end of list)
+PASS: gdb.base/subst.exp: show substitute-path after empty rule removed
+PASS: gdb.base/subst.exp: remove all remaining substitution rules
+PASS: gdb.base/subst.exp: show substitute-path after all remaining rules removed
+Running ./gdb.base/symbol-without-target_section.exp ...
+PASS: gdb.base/symbol-without-target_section.exp: add-symbol-file
+PASS: gdb.base/symbol-without-target_section.exp: list main
+PASS: gdb.base/symbol-without-target_section.exp: print symbol_without_target_section
+Running ./gdb.base/term.exp ...
+Running ./gdb.base/testenv.exp ...
+Running ./gdb.base/trace-commands.exp ...
+PASS: gdb.base/trace-commands.exp: show trace-commands says off
+PASS: gdb.base/trace-commands.exp: source -v
+PASS: gdb.base/trace-commands.exp: set trace-commands
+PASS: gdb.base/trace-commands.exp: show trace-commands says on
+PASS: gdb.base/trace-commands.exp: simple trace-commands test
+PASS: gdb.base/trace-commands.exp: nested trace-commands test
+PASS: gdb.base/trace-commands.exp: define user command
+PASS: gdb.base/trace-commands.exp: nested trace-commands test with source
+PASS: gdb.base/trace-commands.exp: depth resets on error part 1
+PASS: gdb.base/trace-commands.exp: depth resets on error part 2
+Running ./gdb.base/tui-layout.exp ...
+PASS: gdb.base/tui-layout.exp: layout asm
+Running ./gdb.base/twice.exp ...
+PASS: gdb.base/twice.exp: step
+Running ./gdb.base/type-opaque.exp ...
+PASS: gdb.base/type-opaque.exp: opaque struct type resolving
+PASS: gdb.base/type-opaque.exp: empty struct type resolving
+PASS: gdb.base/type-opaque.exp: filled struct type resolving
+PASS: gdb.base/type-opaque.exp: opaque union type resolving
+PASS: gdb.base/type-opaque.exp: empty union type resolving
+PASS: gdb.base/type-opaque.exp: filled union type resolving
+Running ./gdb.base/ui-redirect.exp ...
+PASS: gdb.base/ui-redirect.exp: commands
+PASS: gdb.base/ui-redirect.exp: print 1
+PASS: gdb.base/ui-redirect.exp: end
+PASS: gdb.base/ui-redirect.exp: set logging file /dev/null
+PASS: gdb.base/ui-redirect.exp: set logging on
+PASS: gdb.base/ui-redirect.exp: save breakpoints /dev/null
+PASS: gdb.base/ui-redirect.exp: set logging off
+PASS: gdb.base/ui-redirect.exp: help
+Running ./gdb.base/unload.exp ...
+PASS: gdb.base/unload.exp: pending breakpoint info before run
+PASS: gdb.base/unload.exp: running program
+PASS: gdb.base/unload.exp: pending breakpoint info on first run at shrfunc1
+PASS: gdb.base/unload.exp: continuing to unloaded libfile
+PASS: gdb.base/unload.exp: print y from libfile
+PASS: gdb.base/unload.exp: rerun to shared library breakpoint
+PASS: gdb.base/unload.exp: pending breakpoint info on second run at shrfunc1
+PASS: gdb.base/unload.exp: continuing to unloaded libfile
+PASS: gdb.base/unload.exp: continue to shrfunc2
+PASS: gdb.base/unload.exp: pending breakpoint info on second run at shrfunc2
+PASS: gdb.base/unload.exp: continuing to unloaded libfile2
+PASS: gdb.base/unload.exp: print y from libfile2
+Running ./gdb.base/until.exp ...
+PASS: gdb.base/until.exp: until line number
+PASS: gdb.base/until.exp: malformed until
+PASS: gdb.base/until.exp: until factorial, recursive function
+PASS: gdb.base/until.exp: until func, not called by current frame
+Running ./gdb.base/unwindonsignal.exp ...
+Running ./gdb.base/valgrind-db-attach.exp ...
+Running ./gdb.base/valgrind-infcall.exp ...
+Running ./gdb.base/value-double-free.exp ...
+PASS: gdb.base/value-double-free.exp: watch var
+PASS: gdb.base/value-double-free.exp: continue
+PASS: gdb.base/value-double-free.exp: print empty()
+PASS: gdb.base/value-double-free.exp: help help
+Running ./gdb.base/varargs.exp ...
+PASS: gdb.base/varargs.exp: set print sevenbit-strings
+PASS: gdb.base/varargs.exp: set print address off
+PASS: gdb.base/varargs.exp: set width 0
+Running ./gdb.base/volatile.exp ...
+PASS: gdb.base/volatile.exp: continue to marker1
+PASS: gdb.base/volatile.exp: up from marker1
+PASS: gdb.base/volatile.exp: ptype vox
+PASS: gdb.base/volatile.exp: ptype victuals
+PASS: gdb.base/volatile.exp: ptype vixen
+PASS: gdb.base/volatile.exp: ptype vitriol
+PASS: gdb.base/volatile.exp: ptype vellum
+PASS: gdb.base/volatile.exp: ptype valve
+PASS: gdb.base/volatile.exp: ptype vacuity
+PASS: gdb.base/volatile.exp: ptype vertigo
+PASS: gdb.base/volatile.exp: ptype vampire
+PASS: gdb.base/volatile.exp: ptype viper
+PASS: gdb.base/volatile.exp: ptype vigour
+PASS: gdb.base/volatile.exp: ptype vapour
+PASS: gdb.base/volatile.exp: ptype ventricle
+PASS: gdb.base/volatile.exp: ptype vigintillion
+PASS: gdb.base/volatile.exp: ptype vocation
+PASS: gdb.base/volatile.exp: ptype veracity
+PASS: gdb.base/volatile.exp: ptype vapidity
+PASS: gdb.base/volatile.exp: ptype velocity
+PASS: gdb.base/volatile.exp: ptype veneer
+PASS: gdb.base/volatile.exp: ptype video
+PASS: gdb.base/volatile.exp: ptype vacuum
+PASS: gdb.base/volatile.exp: ptype veniality
+PASS: gdb.base/volatile.exp: ptype vitality
+PASS: gdb.base/volatile.exp: ptype voracity
+PASS: gdb.base/volatile.exp: ptype victor
+PASS: gdb.base/volatile.exp: ptype vicar
+PASS: gdb.base/volatile.exp: ptype victory
+PASS: gdb.base/volatile.exp: ptype vicarage
+PASS: gdb.base/volatile.exp: ptype vein
+PASS: gdb.base/volatile.exp: ptype vogue
+PASS: gdb.base/volatile.exp: ptype cavern
+PASS: gdb.base/volatile.exp: ptype coverlet
+PASS: gdb.base/volatile.exp: ptype caveat
+PASS: gdb.base/volatile.exp: ptype covenant
+PASS: gdb.base/volatile.exp: ptype vizier
+PASS: gdb.base/volatile.exp: ptype vanadium
+PASS: gdb.base/volatile.exp: ptype vane
+PASS: gdb.base/volatile.exp: ptype veldt
+PASS: gdb.base/volatile.exp: ptype cove
+PASS: gdb.base/volatile.exp: ptype cavity
+PASS: gdb.base/volatile.exp: ptype vagus
+PASS: gdb.base/volatile.exp: ptype vagrancy
+PASS: gdb.base/volatile.exp: ptype vagary
+PASS: gdb.base/volatile.exp: ptype vendor
+PASS: gdb.base/volatile.exp: ptype qux2
+Running ./gdb.base/watch-cond.exp ...
+PASS: gdb.base/watch-cond.exp: set write watchpoint on global variable, local condition
+PASS: gdb.base/watch-cond.exp: watchpoint with global expression, local condition evaluates in correct frame
+PASS: gdb.base/watch-cond.exp: set write watchpoint on local variable, local condition
+PASS: gdb.base/watch-cond.exp: watchpoint with local expression, local condition evaluates in correct frame
+PASS: gdb.base/watch-cond.exp: set write watchpoint on global2 variable
+PASS: gdb.base/watch-cond.exp: watchpoint on global2 variable triggers
+PASS: gdb.base/watch-cond.exp: condition of watchpoint 2 changes
+PASS: gdb.base/watch-cond.exp: watchpoint stops with untestable local expression
+Running ./gdb.base/watch-cond-infcall.exp ...
+PASS: gdb.base/watch-cond-infcall.exp: sw: watch var if return_1 ()
+PASS: gdb.base/watch-cond-infcall.exp: sw: continue
+Running ./gdb.base/watch-non-mem.exp ...
+PASS: gdb.base/watch-non-mem.exp: set write watchpoint on $pc
+PASS: gdb.base/watch-non-mem.exp: watchpoint on $pc works
+Running ./gdb.base/watchpoint-cond-gone.exp ...
+PASS: gdb.base/watchpoint-cond-gone.exp: set can-use-hw-watchpoints 0
+PASS: gdb.base/watchpoint-cond-gone.exp: continue to breakpoint: Place to set the watchpoint
+PASS: gdb.base/watchpoint-cond-gone.exp: Place the watchpoint
+PASS: gdb.base/watchpoint-cond-gone.exp: Catch the no longer valid watchpoint
+Running ./gdb.base/watchpoint-delete.exp ...
+PASS: gdb.base/watchpoint-delete.exp: set can-use-hw-watchpoints 0
+PASS: gdb.base/watchpoint-delete.exp: continue to breakpoint: break-here
+PASS: gdb.base/watchpoint-delete.exp: watch x
+PASS: gdb.base/watchpoint-delete.exp: delete $bpnum
+Running ./gdb.base/watchpoint.exp ...
+PASS: gdb.base/watchpoint.exp: disable fast watches
+PASS: gdb.base/watchpoint.exp: show disable fast watches
+PASS: gdb.base/watchpoint.exp: set slow conditional watch
+PASS: gdb.base/watchpoint.exp: trigger slow conditional watch
+PASS: gdb.base/watchpoint.exp: delete watch ival3
+PASS: gdb.base/watchpoint.exp: set slow condition watch w/thread
+PASS: gdb.base/watchpoint.exp: delete watch w/condition and thread
+PASS: gdb.base/watchpoint.exp: rwatch disallowed when can-set-hw-watchpoints cleared
+PASS: gdb.base/watchpoint.exp: set breakpoint at marker1
+PASS: gdb.base/watchpoint.exp: set breakpoint at marker2
+PASS: gdb.base/watchpoint.exp: info break in watchpoint.exp
+PASS: gdb.base/watchpoint.exp: set watchpoint on ival3
+PASS: gdb.base/watchpoint.exp: watchpoint found in watchpoint/breakpoint table
+PASS: gdb.base/watchpoint.exp: disable watchpoint
+PASS: gdb.base/watchpoint.exp: disable watchpoint in test_simple_watchpoint
+PASS: gdb.base/watchpoint.exp: run to marker1 in test_simple_watchpoint
+PASS: gdb.base/watchpoint.exp: enable watchpoint
+PASS: gdb.base/watchpoint.exp: break func1
+PASS: gdb.base/watchpoint.exp: set $func1_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: continue to breakpoint at func1
+PASS: gdb.base/watchpoint.exp: watchpoint hit, first time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 1
+PASS: gdb.base/watchpoint.exp: delete $func1_breakpoint_number
+PASS: gdb.base/watchpoint.exp: watchpoint hit, second time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 2
+PASS: gdb.base/watchpoint.exp: watchpoint hit, third time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 3
+PASS: gdb.base/watchpoint.exp: watchpoint hit, fourth time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 4
+PASS: gdb.base/watchpoint.exp: watchpoint hit, fifth time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 5
+PASS: gdb.base/watchpoint.exp: continue to marker2
+PASS: gdb.base/watchpoint.exp: watchpoint disabled
+PASS: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_simple_watchpoint
+PASS: gdb.base/watchpoint.exp: watchpoints found in watchpoint/breakpoint table
+PASS: gdb.base/watchpoint.exp: disable watchpoint in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: run to marker1 in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: watchpoint enabled
+PASS: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, first time
+PASS: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, second time
+PASS: gdb.base/watchpoint.exp: disable watchpoint #2 in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: watchpoint disabled in table
+PASS: gdb.base/watchpoint.exp: disabled watchpoint skipped
+PASS: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: watch ival2
+PASS: gdb.base/watchpoint.exp: break func2 if 0
+PASS: gdb.base/watchpoint.exp: p $func2_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: calling function with watchpoint enabled
+PASS: gdb.base/watchpoint.exp: finish from marker1
+PASS: gdb.base/watchpoint.exp: back at main from marker1
+PASS: gdb.base/watchpoint.exp: next to `for' in watchpoint.exp
+PASS: gdb.base/watchpoint.exp: until to ival1 assignment
+PASS: gdb.base/watchpoint.exp: until to ival3 assignment
+PASS: gdb.base/watchpoint.exp: until out of loop
+PASS: gdb.base/watchpoint.exp: step to ival2 assignment
+PASS: gdb.base/watchpoint.exp: watch ptr1->val
+PASS: gdb.base/watchpoint.exp: break marker5
+PASS: gdb.base/watchpoint.exp: Test complex watchpoint
+PASS: gdb.base/watchpoint.exp: did not trigger wrong watchpoint
+PASS: gdb.base/watchpoint.exp: disable in test_complex_watchpoint
+PASS: gdb.base/watchpoint.exp: break marker6
+PASS: gdb.base/watchpoint.exp: continue to marker6
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here
+PASS: gdb.base/watchpoint.exp: set local watch
+PASS: gdb.base/watchpoint.exp: trigger local watch
+PASS: gdb.base/watchpoint.exp: self-delete local watch
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here
+PASS: gdb.base/watchpoint.exp: set partially local watch
+PASS: gdb.base/watchpoint.exp: trigger1 partially local watch
+PASS: gdb.base/watchpoint.exp: trigger2 partially local watch
+PASS: gdb.base/watchpoint.exp: self-delete partially local watch
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here
+PASS: gdb.base/watchpoint.exp: set static local watch
+PASS: gdb.base/watchpoint.exp: trigger static local watch
+PASS: gdb.base/watchpoint.exp: continue after trigger static local watch
+PASS: gdb.base/watchpoint.exp: static local watch did not self-delete
+PASS: gdb.base/watchpoint.exp: tbreak recurser
+PASS: gdb.base/watchpoint.exp: cont
+PASS: gdb.base/watchpoint.exp: next past local_x initialization
+PASS: gdb.base/watchpoint.exp: set local watch in recursive call
+PASS: gdb.base/watchpoint.exp: trigger local watch in recursive call
+PASS: gdb.base/watchpoint.exp: self-delete local watch in recursive call
+PASS: gdb.base/watchpoint.exp: cont
+PASS: gdb.base/watchpoint.exp: tbreak recurser
+PASS: gdb.base/watchpoint.exp: cont
+PASS: gdb.base/watchpoint.exp: next past local_x initialization
+PASS: gdb.base/watchpoint.exp: set local watch in recursive call with explicit scope
+PASS: gdb.base/watchpoint.exp: trigger local watch with explicit scope in recursive call
+PASS: gdb.base/watchpoint.exp: self-delete local watch with explicit scope in recursive call (2)
+PASS: gdb.base/watchpoint.exp: disable in test_complex_watchpoint
+PASS: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_complex_watchpoint
+PASS: gdb.base/watchpoint.exp: watchpoint refused to insert on nonexistent struct member
+PASS: gdb.base/watchpoint.exp: watch global_ptr
+PASS: gdb.base/watchpoint.exp: watch *(int *) 0
+PASS: gdb.base/watchpoint.exp: watch -location *global_ptr
+PASS: gdb.base/watchpoint.exp: watch *global_ptr
+PASS: gdb.base/watchpoint.exp: set $global_ptr_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: global_ptr next
+PASS: gdb.base/watchpoint.exp: next over ptr init
+PASS: gdb.base/watchpoint.exp: next over buffer set
+PASS: gdb.base/watchpoint.exp: delete $global_ptr_breakpoint_number
+PASS: gdb.base/watchpoint.exp: watch **global_ptr_ptr
+PASS: gdb.base/watchpoint.exp: set $global_ptr_ptr_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: global_ptr_ptr next
+PASS: gdb.base/watchpoint.exp: next over global_ptr_ptr init
+PASS: gdb.base/watchpoint.exp: next over global_ptr_ptr buffer set
+PASS: gdb.base/watchpoint.exp: next over global_ptr_ptr pointer advance
+PASS: gdb.base/watchpoint.exp: delete $global_ptr_ptr_breakpoint_number
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: second x assignment
+PASS: gdb.base/watchpoint.exp: watch x
+PASS: gdb.base/watchpoint.exp: next after watch x
+PASS: gdb.base/watchpoint.exp: delete watch x
+PASS: gdb.base/watchpoint.exp: watch buf
+PASS: gdb.base/watchpoint.exp: watchpoint on buf hit
+PASS: gdb.base/watchpoint.exp: delete watch buf
+PASS: gdb.base/watchpoint.exp: number is constant
+PASS: gdb.base/watchpoint.exp: number with cast is constant
+PASS: gdb.base/watchpoint.exp: marker1 is constant
+PASS: gdb.base/watchpoint.exp: watch count + 6
+PASS: gdb.base/watchpoint.exp: delete watchpoint `count + 6'
+PASS: gdb.base/watchpoint.exp: watch 7 + count
+PASS: gdb.base/watchpoint.exp: delete watchpoint `7 + count'
+PASS: gdb.base/watchpoint.exp: watch $pc
+PASS: gdb.base/watchpoint.exp: disable watchpoint `$pc'
+PASS: gdb.base/watchpoint.exp: reenable watchpoint `$pc'
+PASS: gdb.base/watchpoint.exp: watchpoint `$pc' is enabled
+PASS: gdb.base/watchpoint.exp: delete watchpoint `$pc'
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func5 breakpoint here
+PASS: gdb.base/watchpoint.exp: watch -location .x
+PASS: gdb.base/watchpoint.exp: continue with watch -location
+PASS: gdb.base/watchpoint.exp: delete watch -location
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func6 breakpoint here
+PASS: gdb.base/watchpoint.exp: watch foo2
+PASS: gdb.base/watchpoint.exp: continue with watch foo2
+PASS: gdb.base/watchpoint.exp: delete watch foo2
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func7 breakpoint here
+PASS: gdb.base/watchpoint.exp: watch foo4
+PASS: gdb.base/watchpoint.exp: continue with watch foo4
+PASS: gdb.base/watchpoint.exp: delete watch foo4
+Running ./gdb.base/watchpoint-hw.exp ...
+Running ./gdb.base/watchpoint-hw-hit-once.exp ...
+Running ./gdb.base/watchpoints.exp ...
+PASS: gdb.base/watchpoints.exp: watchpoint hit, first time
+PASS: gdb.base/watchpoints.exp: watchpoint hit, first time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 1
+PASS: gdb.base/watchpoints.exp: watchpoint ival1 hit, second time
+PASS: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 2
+PASS: gdb.base/watchpoints.exp: watchpoint hit, second time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 2
+PASS: gdb.base/watchpoints.exp: watchpoint ival1 hit, third time
+PASS: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 3
+PASS: gdb.base/watchpoints.exp: watchpoint hit, third time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 3
+PASS: gdb.base/watchpoints.exp: watchpoint hit, fourth time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 4
+PASS: gdb.base/watchpoints.exp: watchpoint hit, fifth time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 5
+Running ./gdb.base/watchpoint-solib.exp ...
+PASS: gdb.base/watchpoint-solib.exp: set pending breakpoint
+PASS: gdb.base/watchpoint-solib.exp: continue to foo
+PASS: gdb.base/watchpoint-solib.exp: set watchpoint on g
+PASS: gdb.base/watchpoint-solib.exp: continue to watchpoint hit
+PASS: gdb.base/watchpoint-solib.exp: rerun to main
+PASS: gdb.base/watchpoint-solib.exp: continue to foo again
+PASS: gdb.base/watchpoint-solib.exp: continue to watchpoint hit again
+Running ./gdb.base/watch-read.exp ...
+Running ./gdb.base/watch_thread_num.exp ...
+Running ./gdb.base/watch-vfork.exp ...
+Running ./gdb.base/wchar.exp ...
+PASS: gdb.base/wchar.exp: print narrow
+PASS: gdb.base/wchar.exp: print single
+PASS: gdb.base/wchar.exp: print simple
+PASS: gdb.base/wchar.exp: print difficile
+PASS: gdb.base/wchar.exp: print simple[2]
+PASS: gdb.base/wchar.exp: print difficile[2]
+PASS: gdb.base/wchar.exp: print repeat
+PASS: gdb.base/wchar.exp: print repeat_p
+PASS: gdb.base/wchar.exp: set print null on
+PASS: gdb.base/wchar.exp: print repeat (print null on)
+PASS: gdb.base/wchar.exp: set print elements 3
+PASS: gdb.base/wchar.exp: print repeat (print elements 3)
+PASS: gdb.base/wchar.exp: print repeat_p (print elements 3)
+Running ./gdb.base/whatis.exp ...
+PASS: gdb.base/whatis.exp: whatis char
+PASS: gdb.base/whatis.exp: whatis signed char
+PASS: gdb.base/whatis.exp: whatis unsigned char
+PASS: gdb.base/whatis.exp: whatis short
+PASS: gdb.base/whatis.exp: whatis signed short
+PASS: gdb.base/whatis.exp: whatis unsigned short
+PASS: gdb.base/whatis.exp: whatis int
+PASS: gdb.base/whatis.exp: whatis signed int
+PASS: gdb.base/whatis.exp: whatis unsigned int
+PASS: gdb.base/whatis.exp: whatis long
+PASS: gdb.base/whatis.exp: whatis signed long
+PASS: gdb.base/whatis.exp: whatis unsigned long
+PASS: gdb.base/whatis.exp: whatis unsigned long long
+PASS: gdb.base/whatis.exp: whatis float
+PASS: gdb.base/whatis.exp: whatis double
+PASS: gdb.base/whatis.exp: whatis char array
+PASS: gdb.base/whatis.exp: whatis signed char array
+PASS: gdb.base/whatis.exp: whatis unsigned char array
+PASS: gdb.base/whatis.exp: whatis short array
+PASS: gdb.base/whatis.exp: whatis signed short array
+PASS: gdb.base/whatis.exp: whatis unsigned short array
+PASS: gdb.base/whatis.exp: whatis int array
+PASS: gdb.base/whatis.exp: whatis signed int array
+PASS: gdb.base/whatis.exp: whatis unsigned int array
+PASS: gdb.base/whatis.exp: whatis long array
+PASS: gdb.base/whatis.exp: whatis signed long array
+PASS: gdb.base/whatis.exp: whatis unsigned long array
+PASS: gdb.base/whatis.exp: whatis unsigned long array
+PASS: gdb.base/whatis.exp: whatis float array
+PASS: gdb.base/whatis.exp: whatis double array
+PASS: gdb.base/whatis.exp: whatis char pointer
+PASS: gdb.base/whatis.exp: whatis signed char pointer
+PASS: gdb.base/whatis.exp: whatis unsigned char pointer
+PASS: gdb.base/whatis.exp: whatis short pointer
+PASS: gdb.base/whatis.exp: whatis signed short pointer
+PASS: gdb.base/whatis.exp: whatis unsigned short pointer
+PASS: gdb.base/whatis.exp: whatis int pointer
+PASS: gdb.base/whatis.exp: whatis signed int pointer
+PASS: gdb.base/whatis.exp: whatis unsigned int pointer
+PASS: gdb.base/whatis.exp: whatis long pointer
+PASS: gdb.base/whatis.exp: whatis signed long pointer
+PASS: gdb.base/whatis.exp: whatis unsigned long pointer
+PASS: gdb.base/whatis.exp: whatis long long pointer
+PASS: gdb.base/whatis.exp: whatis signed long long pointer
+PASS: gdb.base/whatis.exp: whatis unsigned long long pointer
+PASS: gdb.base/whatis.exp: whatis float pointer
+PASS: gdb.base/whatis.exp: whatis double pointer
+PASS: gdb.base/whatis.exp: whatis named structure
+PASS: gdb.base/whatis.exp: whatis named structure using type name
+PASS: gdb.base/whatis.exp: whatis unnamed structure
+PASS: gdb.base/whatis.exp: whatis named union
+PASS: gdb.base/whatis.exp: whatis named union using type name
+PASS: gdb.base/whatis.exp: whatis unnamed union
+PASS: gdb.base/whatis.exp: whatis char function
+PASS: gdb.base/whatis.exp: whatis signed char function
+PASS: gdb.base/whatis.exp: whatis unsigned char function
+PASS: gdb.base/whatis.exp: whatis short function
+PASS: gdb.base/whatis.exp: whatis signed short function
+PASS: gdb.base/whatis.exp: whatis unsigned short function
+PASS: gdb.base/whatis.exp: whatis int function
+PASS: gdb.base/whatis.exp: whatis signed int function
+PASS: gdb.base/whatis.exp: whatis unsigned int function
+PASS: gdb.base/whatis.exp: whatis long function
+PASS: gdb.base/whatis.exp: whatis signed long function
+PASS: gdb.base/whatis.exp: whatis unsigned long function
+PASS: gdb.base/whatis.exp: whatis long long function
+PASS: gdb.base/whatis.exp: whatis signed long long function
+PASS: gdb.base/whatis.exp: whatis unsigned long long function
+PASS: gdb.base/whatis.exp: whatis float function
+PASS: gdb.base/whatis.exp: whatis double function
+PASS: gdb.base/whatis.exp: whatis complicated structure
+PASS: gdb.base/whatis.exp: whatis complicated union
+PASS: gdb.base/whatis.exp: whatis enumeration
+PASS: gdb.base/whatis.exp: whatis enumeration using type name
+PASS: gdb.base/whatis.exp: whatis outer structure
+PASS: gdb.base/whatis.exp: whatis outer structure member
+PASS: gdb.base/whatis.exp: whatis inner structure
+PASS: gdb.base/whatis.exp: whatis inner structure member
+PASS: gdb.base/whatis.exp: whatis inner union
+PASS: gdb.base/whatis.exp: whatis inner union member
+PASS: gdb.base/whatis.exp: whatis using typedef type name
+PASS: gdb.base/whatis.exp: whatis applied to variable defined by typedef
+PASS: gdb.base/whatis.exp: whatis applied to pointer to pointer to function
+PASS: gdb.base/whatis.exp: whatis applied to const pointer to pointer to function
+PASS: gdb.base/whatis.exp: whatis applied to pointer to const pointer to function
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function returning pointer to int
+PASS: gdb.base/whatis.exp: whatis applied to pointer to pointer to function returning pointer to int
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function returning pointer to array
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function taking int,int and returning int
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function taking const int ptr and varargs and returning int
+PASS: gdb.base/whatis.exp: whatis applied to function with types trailing 'void'
+PASS: gdb.base/whatis.exp: whatis applied to function with 'void' parameter type
+Running ./gdb.base/whatis-exp.exp ...
+PASS: gdb.base/whatis-exp.exp: set variable x=14
+PASS: gdb.base/whatis-exp.exp: set variable y=2
+PASS: gdb.base/whatis-exp.exp: set variable z=2
+PASS: gdb.base/whatis-exp.exp: set variable w=3
+PASS: gdb.base/whatis-exp.exp: print value of x
+PASS: gdb.base/whatis-exp.exp: print value of y
+PASS: gdb.base/whatis-exp.exp: print value of z
+PASS: gdb.base/whatis-exp.exp: print value of w
+PASS: gdb.base/whatis-exp.exp: whatis value of x+y
+PASS: gdb.base/whatis-exp.exp: whatis value of x-y
+PASS: gdb.base/whatis-exp.exp: whatis value of x*y
+PASS: gdb.base/whatis-exp.exp: whatis value of x/y
+PASS: gdb.base/whatis-exp.exp: whatis value of x%y
+PASS: gdb.base/whatis-exp.exp: whatis value of x=y
+PASS: gdb.base/whatis-exp.exp: whatis value of x+=2
+PASS: gdb.base/whatis-exp.exp: whatis value of  ++x
+PASS: gdb.base/whatis-exp.exp: whatis value of  --x
+PASS: gdb.base/whatis-exp.exp: whatis value of  x++
+PASS: gdb.base/whatis-exp.exp: whatis value of  x--
+Running ./gdb.btrace/enable.exp ...
+Running ./gdb.btrace/function_call_history.exp ...
+Running ./gdb.btrace/instruction_history.exp ...
+Running ./gdb.cell/arch.exp ...
+Running ./gdb.cell/break.exp ...
+Running ./gdb.cell/bt.exp ...
+Running ./gdb.cell/core.exp ...
+Running ./gdb.cell/data.exp ...
+Running ./gdb.cell/dwarfaddr.exp ...
+Running ./gdb.cell/ea-cache.exp ...
+Running ./gdb.cell/ea-standalone.exp ...
+Running ./gdb.cell/ea-test.exp ...
+Running ./gdb.cell/fork.exp ...
+Running ./gdb.cell/f-regs.exp ...
+Running ./gdb.cell/gcore.exp ...
+Running ./gdb.cell/mem-access.exp ...
+Running ./gdb.cell/ptype.exp ...
+Running ./gdb.cell/registers.exp ...
+Running ./gdb.cell/sizeof.exp ...
+Running ./gdb.cell/solib.exp ...
+Running ./gdb.cell/solib-symbol.exp ...
+Running ./gdb.cp/abstract-origin.exp ...
+PASS: gdb.cp/abstract-origin.exp: continue to breakpoint: break-here
+PASS: gdb.cp/abstract-origin.exp: p problem
+Running ./gdb.cp/ambiguous.exp ...
+Running ./gdb.cp/annota2.exp ...
+Running ./gdb.cp/annota3.exp ...
+Running ./gdb.cp/anon-ns.exp ...
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::doit1(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::doit1(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::doit1(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::doit1(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::one(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::one(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::one(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::one(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::doit2(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::doit2(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::doit2(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::doit2(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::two(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::two(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::two(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::two(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::doit1(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::doit1(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::doit1(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::doit1(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::one(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::one(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::one(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::one(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::doit2(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::doit2(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::doit2(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::doit2(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::two(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::two(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::two(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::two(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::doit1(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::doit1(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::doit1(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::doit1(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::one(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::one(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::one(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::one(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::doit2(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::doit2(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::doit2(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::doit2(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::two(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::two(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::two(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::two(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::doit(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::doit(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::doit(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::doit(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::doit(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::doit(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::doit(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::doit(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)'
+Running ./gdb.cp/anon-struct.exp ...
+FAIL: gdb.cp/anon-struct.exp: print type of t::t
+PASS: gdb.cp/anon-struct.exp: print type of X::t2
+FAIL: gdb.cp/anon-struct.exp: print type of X::t2::t2
+FAIL: gdb.cp/anon-struct.exp: print type of t3::~t3
+Running ./gdb.cp/anon-union.exp ...
+PASS: gdb.cp/anon-union.exp: set width 0
+PASS: gdb.cp/anon-union.exp: next 1
+PASS: gdb.cp/anon-union.exp: print foo 1
+PASS: gdb.cp/anon-union.exp: next 2
+PASS: gdb.cp/anon-union.exp: print foo 2
+PASS: gdb.cp/anon-union.exp: set var foo.cloth
+PASS: gdb.cp/anon-union.exp: print foo 3
+PASS: gdb.cp/anon-union.exp: next 3
+PASS: gdb.cp/anon-union.exp: print foo 4
+PASS: gdb.cp/anon-union.exp: set var foo.pebble
+PASS: gdb.cp/anon-union.exp: print foo 5
+PASS: gdb.cp/anon-union.exp: set var foo.qux
+PASS: gdb.cp/anon-union.exp: print foo 6
+PASS: gdb.cp/anon-union.exp: set var foo.mux
+PASS: gdb.cp/anon-union.exp: print foo 7
+PASS: gdb.cp/anon-union.exp: set var foo.x.rock
+PASS: gdb.cp/anon-union.exp: print foo 8
+PASS: gdb.cp/anon-union.exp: set var foo.x.rock2
+PASS: gdb.cp/anon-union.exp: print foo 9
+PASS: gdb.cp/anon-union.exp: next 4
+PASS: gdb.cp/anon-union.exp: print w 1
+PASS: gdb.cp/anon-union.exp: print z 1
+PASS: gdb.cp/anon-union.exp: next 5
+PASS: gdb.cp/anon-union.exp: print w 2
+PASS: gdb.cp/anon-union.exp: print z 2
+PASS: gdb.cp/anon-union.exp: set var z
+PASS: gdb.cp/anon-union.exp: print w 3
+PASS: gdb.cp/anon-union.exp: print z 3
+Running ./gdb.cp/arg-reference.exp ...
+PASS: gdb.cp/arg-reference.exp: No false reference
+Running ./gdb.cp/baseenum.exp ...
+PASS: gdb.cp/baseenum.exp: continue to breakpoint: breakpoint 1
+PASS: gdb.cp/baseenum.exp: Print enum constant X of class A
+PASS: gdb.cp/baseenum.exp: continue to breakpoint: breakpoint 2
+PASS: gdb.cp/baseenum.exp: Print enum constant X of class A in namespace N
+Running ./gdb.cp/bool.exp ...
+PASS: gdb.cp/bool.exp: print return_true()
+PASS: gdb.cp/bool.exp: print return_false()
+Running ./gdb.cp/breakpoint.exp ...
+PASS: gdb.cp/breakpoint.exp: continue to C1::Nested::foo
+PASS: gdb.cp/breakpoint.exp: conditional breakpoint in method
+PASS: gdb.cp/breakpoint.exp: conditional breakpoint in method 2
+PASS: gdb.cp/breakpoint.exp: continue to breakpoint
+PASS: gdb.cp/breakpoint.exp: check the member variable
+PASS: gdb.cp/breakpoint.exp: continue to breakpoint
+PASS: gdb.cp/breakpoint.exp: check the member variable
+Running ./gdb.cp/bs15503.exp ...
+PASS: gdb.cp/bs15503.exp: break StringTest<wchar_t>::testFunction
+PASS: gdb.cp/bs15503.exp: continue to StringTest<wchar_t>
+PASS: gdb.cp/bs15503.exp: continue to breakpoint: find position where blank needs to be inserted
+FAIL: gdb.cp/bs15503.exp: print s.length()
+FAIL: gdb.cp/bs15503.exp: print s[0]
+FAIL: gdb.cp/bs15503.exp: print s[s.length()-1]
+PASS: gdb.cp/bs15503.exp: print (const char *) s
+FAIL: gdb.cp/bs15503.exp: print (const char *) s.substr(0,4)
+FAIL: gdb.cp/bs15503.exp: print (const char *) (s=s.substr(0,4))
+Running ./gdb.cp/call-c.exp ...
+PASS: gdb.cp/call-c.exp: b 43
+PASS: gdb.cp/call-c.exp: print foo(1)
+PASS: gdb.cp/call-c.exp: continue to bp
+PASS: gdb.cp/call-c.exp: print rf->func()
+PASS: gdb.cp/call-c.exp: print handle->func()
+Running ./gdb.cp/casts.exp ...
+PASS: gdb.cp/casts.exp: cast base class pointer to derived class pointer
+PASS: gdb.cp/casts.exp: let compiler cast base class pointer to derived class pointer
+PASS: gdb.cp/casts.exp: cast derived class pointer to base class pointer
+PASS: gdb.cp/casts.exp: cast derived class reference to base class reference
+PASS: gdb.cp/casts.exp: cast base class reference to derived class reference
+PASS: gdb.cp/casts.exp: let compiler cast base class reference to derived class reference
+PASS: gdb.cp/casts.exp: basic test of const_cast
+PASS: gdb.cp/casts.exp: const_cast of 0
+PASS: gdb.cp/casts.exp: basic test of static_cast
+PASS: gdb.cp/casts.exp: static_cast to reference type
+PASS: gdb.cp/casts.exp: basic test of reinterpret_cast
+PASS: gdb.cp/casts.exp: test invalid reinterpret_cast
+PASS: gdb.cp/casts.exp: reinterpret_cast to reference type
+PASS: gdb.cp/casts.exp: whatis decltype(5)
+PASS: gdb.cp/casts.exp: old-style cast using __typeof__
+PASS: gdb.cp/casts.exp: static_cast using __typeof__
+PASS: gdb.cp/casts.exp: reinterpret_cast using __typeof__
+PASS: gdb.cp/casts.exp: old-style cast using __typeof
+PASS: gdb.cp/casts.exp: static_cast using __typeof
+PASS: gdb.cp/casts.exp: reinterpret_cast using __typeof
+PASS: gdb.cp/casts.exp: old-style cast using __decltype
+PASS: gdb.cp/casts.exp: static_cast using __decltype
+PASS: gdb.cp/casts.exp: reinterpret_cast using __decltype
+PASS: gdb.cp/casts.exp: whatis __decltype(*a)
+PASS: gdb.cp/casts.exp: invalid dynamic_cast
+PASS: gdb.cp/casts.exp: dynamic_cast of 0 to void*
+PASS: gdb.cp/casts.exp: dynamic_cast simple upcast
+PASS: gdb.cp/casts.exp: dynamic_cast upcast to unique base
+PASS: gdb.cp/casts.exp: dynamic_cast simple upcast to reference
+PASS: gdb.cp/casts.exp: dynamic_cast simple downcast
+PASS: gdb.cp/casts.exp: dynamic_cast simple downcast to intermediate class
+PASS: gdb.cp/casts.exp: dynamic_cast to non-existing base
+PASS: gdb.cp/casts.exp: dynamic_cast to reference to non-existing base
+PASS: gdb.cp/casts.exp: dynamic_cast unique downcast
+PASS: gdb.cp/casts.exp: dynamic_cast to sibling
+Running ./gdb.cp/class2.exp ...
+PASS: gdb.cp/class2.exp: set print object off
+PASS: gdb.cp/class2.exp: print alpha at marker return 0
+PASS: gdb.cp/class2.exp: print beta at marker return 0
+PASS: gdb.cp/class2.exp: print * aap at marker return 0
+PASS: gdb.cp/class2.exp: print * bbp at marker return 0
+PASS: gdb.cp/class2.exp: print * abp at marker return 0, s-p-o off
+PASS: gdb.cp/class2.exp: print * (B *) abp at marker return 0
+PASS: gdb.cp/class2.exp: print object with no data fields
+PASS: gdb.cp/class2.exp: set print object on
+PASS: gdb.cp/class2.exp: p acp
+PASS: gdb.cp/class2.exp: p acp->c1
+PASS: gdb.cp/class2.exp: p acp->c2
+Running ./gdb.cp/classes.exp ...
+PASS: gdb.cp/classes.exp: ptype struct default_public_struct
+PASS: gdb.cp/classes.exp: ptype struct explicit_public_struct
+PASS: gdb.cp/classes.exp: ptype struct protected_struct
+PASS: gdb.cp/classes.exp: ptype struct private_struct
+PASS: gdb.cp/classes.exp: ptype struct mixed_protection_struct
+PASS: gdb.cp/classes.exp: ptype class public_class
+PASS: gdb.cp/classes.exp: ptype class protected_class
+PASS: gdb.cp/classes.exp: ptype class default_private_class
+PASS: gdb.cp/classes.exp: ptype class explicit_private_class
+PASS: gdb.cp/classes.exp: ptype class mixed_protection_class
+PASS: gdb.cp/classes.exp: ptype class A
+PASS: gdb.cp/classes.exp: ptype class B
+PASS: gdb.cp/classes.exp: ptype class C
+PASS: gdb.cp/classes.exp: ptype class D
+PASS: gdb.cp/classes.exp: ptype class E
+PASS: gdb.cp/classes.exp: ptype class Static
+PASS: gdb.cp/classes.exp: ptype class vA
+PASS: gdb.cp/classes.exp: ptype class vB
+PASS: gdb.cp/classes.exp: ptype class vC
+PASS: gdb.cp/classes.exp: ptype class vD
+PASS: gdb.cp/classes.exp: ptype class vE
+PASS: gdb.cp/classes.exp: ptype class Base1
+PASS: gdb.cp/classes.exp: ptype class Foo
+PASS: gdb.cp/classes.exp: ptype class Bar
+PASS: gdb.cp/classes.exp: print g_A.a
+PASS: gdb.cp/classes.exp: print g_A.x
+PASS: gdb.cp/classes.exp: print g_B.b
+PASS: gdb.cp/classes.exp: print g_B.x
+PASS: gdb.cp/classes.exp: print g_C.c
+PASS: gdb.cp/classes.exp: print g_C.x
+PASS: gdb.cp/classes.exp: print g_D.d
+PASS: gdb.cp/classes.exp: print g_D.x
+PASS: gdb.cp/classes.exp: print g_E.e
+PASS: gdb.cp/classes.exp: print g_E.x
+PASS: gdb.cp/classes.exp: print g_A.b
+PASS: gdb.cp/classes.exp: print g_B.c
+PASS: gdb.cp/classes.exp: print g_B.d
+PASS: gdb.cp/classes.exp: print g_C.b
+PASS: gdb.cp/classes.exp: print g_C.d
+PASS: gdb.cp/classes.exp: print g_D.e
+PASS: gdb.cp/classes.exp: print g_A.y
+PASS: gdb.cp/classes.exp: print g_B.z
+PASS: gdb.cp/classes.exp: print g_C.q
+PASS: gdb.cp/classes.exp: print g_D.p
+PASS: gdb.cp/classes.exp: call class_param.Aptr_a (&g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aptr_x (&g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aptr_a (&g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aptr_x (&g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aref_a (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aref_x (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aref_a (g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aref_x (g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aval_a (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aval_x (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aval_a (g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aval_x (g_B)
+PASS: gdb.cp/classes.exp: unrelated class *param
+PASS: gdb.cp/classes.exp: unrelated class &param
+PASS: gdb.cp/classes.exp: unrelated class param
+PASS: gdb.cp/classes.exp: continue to enums2(\(\)|)
+PASS: gdb.cp/classes.exp: print obj_with_enum (1)
+PASS: gdb.cp/classes.exp: next
+PASS: gdb.cp/classes.exp: print obj_with_enum (2)
+PASS: gdb.cp/classes.exp: print obj_with_enum.priv_enum
+PASS: gdb.cp/classes.exp: ptype obj_with_enum.priv_enum
+PASS: gdb.cp/classes.exp: ptype obj_with_enum
+PASS: gdb.cp/classes.exp: print (ClassWithEnum::PrivEnum) 42
+PASS: gdb.cp/classes.exp: print ('ClassWithEnum::PrivEnum') 42
+PASS: gdb.cp/classes.exp: print Bar::z
+PASS: gdb.cp/classes.exp: print &Foo::x
+PASS: gdb.cp/classes.exp: print (int)&Foo::x
+PASS: gdb.cp/classes.exp: print (int)&Bar::y == 2*sizeof(int)
+PASS: gdb.cp/classes.exp: ptype Bar::z
+PASS: gdb.cp/classes.exp: ptype &Bar::z
+PASS: gdb.cp/classes.exp: print (int)pmi == sizeof(int)
+PASS: gdb.cp/classes.exp: print Foo::st
+PASS: gdb.cp/classes.exp: print bar.st
+PASS: gdb.cp/classes.exp: print &foo.st
+PASS: gdb.cp/classes.exp: print &Bar::st
+PASS: gdb.cp/classes.exp: print *$
+PASS: gdb.cp/classes.exp: set print static-members off
+PASS: gdb.cp/classes.exp: print csi without static members
+PASS: gdb.cp/classes.exp: print cnsi without static members
+PASS: gdb.cp/classes.exp: set print static-members on
+PASS: gdb.cp/classes.exp: print csi with static members
+PASS: gdb.cp/classes.exp: print cnsi with static members
+PASS: gdb.cp/classes.exp: finish from marker_reg1
+PASS: gdb.cp/classes.exp: calling method for small class
+FAIL: gdb.cp/classes.exp: print ctor of typedef class
+FAIL: gdb.cp/classes.exp: print dtor of typedef class
+PASS: gdb.cp/classes.exp: list ByAnyOtherName::times
+Running ./gdb.cp/cmpd-minsyms.exp ...
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at 'GDB<int>::a() const'
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at 'GDB<int>::b() volatile'
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at 'GDB<int>::c() const volatile'
+PASS: gdb.cp/cmpd-minsyms.exp: set language c++
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::operator ==
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::operator==(GDB<int> const&)
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<char>::harder(char)
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::harder(int)
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at "int GDB<char>::even_harder<int>(char)"
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::simple()
+Running ./gdb.cp/converts.exp ...
+PASS: gdb.cp/converts.exp: continue to breakpoint: end of main
+PASS: gdb.cp/converts.exp: typedef to another typedef
+PASS: gdb.cp/converts.exp: typedef to typedef of a typedef
+PASS: gdb.cp/converts.exp: Pointer-to-pointer-to-pointer derived to Pointer-to-pointer-to-pointer base.
+PASS: gdb.cp/converts.exp: pointer to pointer
+PASS: gdb.cp/converts.exp: pointer to array
+PASS: gdb.cp/converts.exp: pointer to pointer of wrong type
+PASS: gdb.cp/converts.exp: pointer to pointer of wrong type
+PASS: gdb.cp/converts.exp: pointer to ancestor pointer
+PASS: gdb.cp/converts.exp: pointer to void pointer
+PASS: gdb.cp/converts.exp: pointer to void pointer pointer
+PASS: gdb.cp/converts.exp: pointer to boolean
+PASS: gdb.cp/converts.exp: pointer to long int
+PASS: gdb.cp/converts.exp: pointer pointer to void pointer
+PASS: gdb.cp/converts.exp: pointer pointer to pointer pointer
+PASS: gdb.cp/converts.exp: pointer pointer to array of arrays
+PASS: gdb.cp/converts.exp: pointer pointer to array of pointers
+PASS: gdb.cp/converts.exp: pointer pointer to array of wrong pointers
+PASS: gdb.cp/converts.exp: check all parameters for badness
+PASS: gdb.cp/converts.exp: null pointer conversion
+PASS: gdb.cp/converts.exp: p foo3_1 (0, 1)
+PASS: gdb.cp/converts.exp: p foo3_1 (0, (const char**) 1)
+PASS: gdb.cp/converts.exp: p foo3_2 (0, 0)
+PASS: gdb.cp/converts.exp: p foo3_2 (0, (char const**) 0)
+PASS: gdb.cp/converts.exp: p foo1_7(0)
+PASS: gdb.cp/converts.exp: p foo1_7(integer)
+PASS: gdb.cp/converts.exp: p foo1_7(long_int)
+PASS: gdb.cp/converts.exp: p foo1_7(*a)
+PASS: gdb.cp/converts.exp: p foo1_7(MY_A)
+PASS: gdb.cp/converts.exp: p foo1_7(&foo1_7)
+PASS: gdb.cp/converts.exp: p foo1_7(&A::member_)
+PASS: gdb.cp/converts.exp: p foo1_7(a)
+PASS: gdb.cp/converts.exp: p foo1_7(fp)
+PASS: gdb.cp/converts.exp: p foo1_7(dp)
+PASS: gdb.cp/converts.exp: p foo1_7(-1.23)
+PASS: gdb.cp/converts.exp: p foo1_7(ta)
+PASS: gdb.cp/converts.exp: show check type
+PASS: gdb.cp/converts.exp: p foo1_type_check (123)
+PASS: gdb.cp/converts.exp: p foo2_type_check (0, 1)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 0)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 0, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 0, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 1)
+PASS: gdb.cp/converts.exp: set check type off
+PASS: gdb.cp/converts.exp: show check type
+PASS: gdb.cp/converts.exp: p foo1_type_check (123)
+PASS: gdb.cp/converts.exp: p foo2_type_check (0, 1)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 0)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 0, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 0, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 1)
+PASS: gdb.cp/converts.exp: p foo3_2 (1,1)
+Running ./gdb.cp/cpcompletion.exp ...
+PASS: gdb.cp/cpcompletion.exp: complete class methods
+PASS: gdb.cp/cpcompletion.exp: complete class methods beginning with F
+PASS: gdb.cp/cpcompletion.exp: complete p foo1.g
+PASS: gdb.cp/cpcompletion.exp: complete p foo1.base
+PASS: gdb.cp/cpcompletion.exp: complete p foo1.Fo
+PASS: gdb.cp/cpcompletion.exp: complete p a.g
+Running ./gdb.cp/cpexprs.exp ...
+PASS: gdb.cp/cpexprs.exp: set listsize 1
+PASS: gdb.cp/cpexprs.exp: print base1::a_function
+FAIL: gdb.cp/cpexprs.exp: print base1::base1(int)
+FAIL: gdb.cp/cpexprs.exp: print base1::base1(void)
+PASS: gdb.cp/cpexprs.exp: print base2::a_function
+FAIL: gdb.cp/cpexprs.exp: print base2::base2
+FAIL: gdb.cp/cpexprs.exp: print base::base(int)
+FAIL: gdb.cp/cpexprs.exp: print base::base(void)
+PASS: gdb.cp/cpexprs.exp: print base::operator char*
+PASS: gdb.cp/cpexprs.exp: print base::operator delete
+PASS: gdb.cp/cpexprs.exp: print base::operator delete[]
+PASS: gdb.cp/cpexprs.exp: print base::operator fluff*
+PASS: gdb.cp/cpexprs.exp: print base::operator fluff**
+PASS: gdb.cp/cpexprs.exp: print base::operator int
+PASS: gdb.cp/cpexprs.exp: print base::operator new
+PASS: gdb.cp/cpexprs.exp: print base::operator new[]
+PASS: gdb.cp/cpexprs.exp: print base::operator!
+PASS: gdb.cp/cpexprs.exp: print base::operator!=
+PASS: gdb.cp/cpexprs.exp: print base::operator%
+PASS: gdb.cp/cpexprs.exp: print base::operator%=
+PASS: gdb.cp/cpexprs.exp: print base::operator&
+PASS: gdb.cp/cpexprs.exp: print base::operator&&
+PASS: gdb.cp/cpexprs.exp: print base::operator&=
+PASS: gdb.cp/cpexprs.exp: print base::operator()
+PASS: gdb.cp/cpexprs.exp: print base::operator*
+PASS: gdb.cp/cpexprs.exp: print base::operator*=
+PASS: gdb.cp/cpexprs.exp: print base::operator+
+PASS: gdb.cp/cpexprs.exp: print base::operator++
+PASS: gdb.cp/cpexprs.exp: print base::operator+=
+PASS: gdb.cp/cpexprs.exp: print base::operator-
+PASS: gdb.cp/cpexprs.exp: print base::operator--
+PASS: gdb.cp/cpexprs.exp: print base::operator-=
+PASS: gdb.cp/cpexprs.exp: print base::operator/
+PASS: gdb.cp/cpexprs.exp: print base::operator/=
+PASS: gdb.cp/cpexprs.exp: print base::operator<
+PASS: gdb.cp/cpexprs.exp: print base::operator<<
+PASS: gdb.cp/cpexprs.exp: print base::operator<<=
+PASS: gdb.cp/cpexprs.exp: print base::operator<=
+PASS: gdb.cp/cpexprs.exp: print base::operator=
+PASS: gdb.cp/cpexprs.exp: print base::operator==
+PASS: gdb.cp/cpexprs.exp: print base::operator>
+PASS: gdb.cp/cpexprs.exp: print base::operator>=
+PASS: gdb.cp/cpexprs.exp: print base::operator>>
+PASS: gdb.cp/cpexprs.exp: print base::operator>>=
+PASS: gdb.cp/cpexprs.exp: print base::operator[]
+PASS: gdb.cp/cpexprs.exp: print base::operator^
+PASS: gdb.cp/cpexprs.exp: print base::operator^=
+PASS: gdb.cp/cpexprs.exp: print base::operator|
+PASS: gdb.cp/cpexprs.exp: print base::operator|=
+PASS: gdb.cp/cpexprs.exp: print base::operator||
+PASS: gdb.cp/cpexprs.exp: print base::operator~
+PASS: gdb.cp/cpexprs.exp: print base::overload(base&) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(char*) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(int) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(long) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(short) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(void) const
+FAIL: gdb.cp/cpexprs.exp: print base::~base
+PASS: gdb.cp/cpexprs.exp: print derived::a_function
+FAIL: gdb.cp/cpexprs.exp: print derived::derived
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, short, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<long, short, long, short, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<short, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: print policy1::function
+FAIL: gdb.cp/cpexprs.exp: print policy1::policy
+PASS: gdb.cp/cpexprs.exp: print policy2::function
+FAIL: gdb.cp/cpexprs.exp: print policy2::policy
+PASS: gdb.cp/cpexprs.exp: print policy3::function
+FAIL: gdb.cp/cpexprs.exp: print policy3::policy
+PASS: gdb.cp/cpexprs.exp: print policy4::function
+FAIL: gdb.cp/cpexprs.exp: print policy4::policy
+PASS: gdb.cp/cpexprs.exp: print policyd1::function
+FAIL: gdb.cp/cpexprs.exp: print policyd1::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd1::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd2::function
+FAIL: gdb.cp/cpexprs.exp: print policyd2::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd2::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd3::function
+FAIL: gdb.cp/cpexprs.exp: print policyd3::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd3::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd4::function
+FAIL: gdb.cp/cpexprs.exp: print policyd4::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd4::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd5::function
+FAIL: gdb.cp/cpexprs.exp: print policyd5::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd5::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<base, operation_1<base> >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<base, operation_1<base> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<base, operation_1<base> >::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<char, operation_1<char> >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<char, operation_1<char> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<char, operation_1<char> >::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<int, operation_1<int> >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<int, operation_1<int> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<int, operation_1<int> >::~policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<long, operation_1<long> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<long, operation_1<long> >::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<tclass<int>, operation_1<tclass<int> > >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<tclass<int>, operation_1<tclass<int> > >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
+PASS: gdb.cp/cpexprs.exp: print tclass<base>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<char>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<int>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<long>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<short>::do_something
+PASS: gdb.cp/cpexprs.exp: print test_function
+PASS: gdb.cp/cpexprs.exp: list base1::a_function
+PASS: gdb.cp/cpexprs.exp: list base1::base1(int)
+PASS: gdb.cp/cpexprs.exp: list base1::base1(void)
+PASS: gdb.cp/cpexprs.exp: list base2::a_function
+PASS: gdb.cp/cpexprs.exp: list base2::base2
+PASS: gdb.cp/cpexprs.exp: list base::base(int)
+PASS: gdb.cp/cpexprs.exp: list base::base(void)
+PASS: gdb.cp/cpexprs.exp: list base::operator char*
+PASS: gdb.cp/cpexprs.exp: list base::operator delete
+PASS: gdb.cp/cpexprs.exp: list base::operator delete[]
+PASS: gdb.cp/cpexprs.exp: list base::operator fluff*
+PASS: gdb.cp/cpexprs.exp: list base::operator fluff**
+PASS: gdb.cp/cpexprs.exp: list base::operator int
+PASS: gdb.cp/cpexprs.exp: list base::operator new
+PASS: gdb.cp/cpexprs.exp: list base::operator new[]
+PASS: gdb.cp/cpexprs.exp: list base::operator!
+PASS: gdb.cp/cpexprs.exp: list base::operator!=
+PASS: gdb.cp/cpexprs.exp: list base::operator%
+PASS: gdb.cp/cpexprs.exp: list base::operator%=
+PASS: gdb.cp/cpexprs.exp: list base::operator&
+PASS: gdb.cp/cpexprs.exp: list base::operator&&
+PASS: gdb.cp/cpexprs.exp: list base::operator&=
+PASS: gdb.cp/cpexprs.exp: list base::operator()
+PASS: gdb.cp/cpexprs.exp: list base::operator*
+PASS: gdb.cp/cpexprs.exp: list base::operator*=
+PASS: gdb.cp/cpexprs.exp: list base::operator+
+PASS: gdb.cp/cpexprs.exp: list base::operator++
+PASS: gdb.cp/cpexprs.exp: list base::operator+=
+PASS: gdb.cp/cpexprs.exp: list base::operator-
+PASS: gdb.cp/cpexprs.exp: list base::operator--
+PASS: gdb.cp/cpexprs.exp: list base::operator-=
+PASS: gdb.cp/cpexprs.exp: list base::operator/
+PASS: gdb.cp/cpexprs.exp: list base::operator/=
+PASS: gdb.cp/cpexprs.exp: list base::operator<
+PASS: gdb.cp/cpexprs.exp: list base::operator<<
+PASS: gdb.cp/cpexprs.exp: list base::operator<<=
+PASS: gdb.cp/cpexprs.exp: list base::operator<=
+PASS: gdb.cp/cpexprs.exp: list base::operator=
+PASS: gdb.cp/cpexprs.exp: list base::operator==
+PASS: gdb.cp/cpexprs.exp: list base::operator>
+PASS: gdb.cp/cpexprs.exp: list base::operator>=
+PASS: gdb.cp/cpexprs.exp: list base::operator>>
+PASS: gdb.cp/cpexprs.exp: list base::operator>>=
+PASS: gdb.cp/cpexprs.exp: list base::operator[]
+PASS: gdb.cp/cpexprs.exp: list base::operator^
+PASS: gdb.cp/cpexprs.exp: list base::operator^=
+PASS: gdb.cp/cpexprs.exp: list base::operator|
+PASS: gdb.cp/cpexprs.exp: list base::operator|=
+PASS: gdb.cp/cpexprs.exp: list base::operator||
+PASS: gdb.cp/cpexprs.exp: list base::operator~
+PASS: gdb.cp/cpexprs.exp: list base::overload(base&) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(char*) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(int) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(long) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(short) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(void) const
+PASS: gdb.cp/cpexprs.exp: list base::~base
+PASS: gdb.cp/cpexprs.exp: list derived::a_function
+PASS: gdb.cp/cpexprs.exp: list derived::derived
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, short, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<long, short, long, short, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<short, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: list policy1::function
+PASS: gdb.cp/cpexprs.exp: list policy1::policy
+PASS: gdb.cp/cpexprs.exp: list policy2::function
+PASS: gdb.cp/cpexprs.exp: list policy2::policy
+PASS: gdb.cp/cpexprs.exp: list policy3::function
+PASS: gdb.cp/cpexprs.exp: list policy3::policy
+PASS: gdb.cp/cpexprs.exp: list policy4::function
+PASS: gdb.cp/cpexprs.exp: list policy4::policy
+PASS: gdb.cp/cpexprs.exp: list policyd1::function
+PASS: gdb.cp/cpexprs.exp: list policyd1::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd1::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd2::function
+PASS: gdb.cp/cpexprs.exp: list policyd2::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd2::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd3::function
+PASS: gdb.cp/cpexprs.exp: list policyd3::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd3::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd4::function
+PASS: gdb.cp/cpexprs.exp: list policyd4::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd4::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd5::function
+PASS: gdb.cp/cpexprs.exp: list policyd5::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd5::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<base, operation_1<base> >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<base, operation_1<base> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<base, operation_1<base> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<char, operation_1<char> >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<char, operation_1<char> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<char, operation_1<char> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<int, operation_1<int> >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<int, operation_1<int> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<int, operation_1<int> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<long, operation_1<long> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<long, operation_1<long> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<tclass<int>, operation_1<tclass<int> > >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<tclass<int>, operation_1<tclass<int> > >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
+PASS: gdb.cp/cpexprs.exp: list tclass<base>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<char>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<int>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<long>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<short>::do_something
+PASS: gdb.cp/cpexprs.exp: list test_function
+PASS: gdb.cp/cpexprs.exp: continue to base1::a_function
+PASS: gdb.cp/cpexprs.exp: continue to base1::base1(int)
+PASS: gdb.cp/cpexprs.exp: continue to base1::base1(void)
+PASS: gdb.cp/cpexprs.exp: continue to base2::a_function
+PASS: gdb.cp/cpexprs.exp: continue to base2::base2
+PASS: gdb.cp/cpexprs.exp: continue to base::base(int)
+PASS: gdb.cp/cpexprs.exp: continue to base::base(void)
+PASS: gdb.cp/cpexprs.exp: continue to base::operator char*
+PASS: gdb.cp/cpexprs.exp: continue to base::operator delete
+PASS: gdb.cp/cpexprs.exp: continue to base::operator delete[]
+PASS: gdb.cp/cpexprs.exp: continue to base::operator fluff*
+PASS: gdb.cp/cpexprs.exp: continue to base::operator fluff**
+PASS: gdb.cp/cpexprs.exp: continue to base::operator int
+PASS: gdb.cp/cpexprs.exp: continue to base::operator new
+PASS: gdb.cp/cpexprs.exp: continue to base::operator new[]
+PASS: gdb.cp/cpexprs.exp: continue to base::operator!
+PASS: gdb.cp/cpexprs.exp: continue to base::operator!=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator%
+PASS: gdb.cp/cpexprs.exp: continue to base::operator%=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator&
+PASS: gdb.cp/cpexprs.exp: continue to base::operator&&
+PASS: gdb.cp/cpexprs.exp: continue to base::operator&=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator()
+PASS: gdb.cp/cpexprs.exp: continue to base::operator*
+PASS: gdb.cp/cpexprs.exp: continue to base::operator*=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator+
+PASS: gdb.cp/cpexprs.exp: continue to base::operator++
+PASS: gdb.cp/cpexprs.exp: continue to base::operator+=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator-
+PASS: gdb.cp/cpexprs.exp: continue to base::operator--
+PASS: gdb.cp/cpexprs.exp: continue to base::operator-=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator/
+PASS: gdb.cp/cpexprs.exp: continue to base::operator/=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<<
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<<=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator==
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>>
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>>=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator[]
+PASS: gdb.cp/cpexprs.exp: continue to base::operator^
+PASS: gdb.cp/cpexprs.exp: continue to base::operator^=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator|
+PASS: gdb.cp/cpexprs.exp: continue to base::operator|=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator||
+PASS: gdb.cp/cpexprs.exp: continue to base::operator~
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(base&) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(char*) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(int) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(long) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(short) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(void) const
+PASS: gdb.cp/cpexprs.exp: continue to base::~base
+PASS: gdb.cp/cpexprs.exp: continue to derived::a_function
+PASS: gdb.cp/cpexprs.exp: continue to derived::derived
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, short, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<long, short, long, short, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<short, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: continue to policy1::function
+PASS: gdb.cp/cpexprs.exp: continue to policy1::policy
+PASS: gdb.cp/cpexprs.exp: continue to policy2::function
+PASS: gdb.cp/cpexprs.exp: continue to policy2::policy
+PASS: gdb.cp/cpexprs.exp: continue to policy3::function
+PASS: gdb.cp/cpexprs.exp: continue to policy3::policy
+PASS: gdb.cp/cpexprs.exp: continue to policy4::function
+PASS: gdb.cp/cpexprs.exp: continue to policy4::policy
+PASS: gdb.cp/cpexprs.exp: continue to policyd1::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd1::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd1::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd1::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd2::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd2::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd2::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd2::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd3::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd3::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd3::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd3::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd4::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd4::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd4::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd4::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd5::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd5::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd5::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd5::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<base, operation_1<base> >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<base, operation_1<base> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<base, operation_1<base> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<char, operation_1<char> >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<char, operation_1<char> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<char, operation_1<char> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<int, operation_1<int> >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<int, operation_1<int> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<int, operation_1<int> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<long, operation_1<long> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<long, operation_1<long> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<tclass<int>, operation_1<tclass<int> > >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<tclass<int>, operation_1<tclass<int> > >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to tclass<base>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<char>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<int>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<long>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<short>::do_something
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int)'
+PASS: gdb.cp/cpexprs.exp: p CV::m(int)
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int) const'
+KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) const (PRMS: c++/14186)
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int) volatile'
+KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) volatile (PRMS: c++/14186)
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int) const volatile'
+KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) const volatile (PRMS: c++/14186)
+PASS: gdb.cp/cpexprs.exp: p CV_f(int)
+PASS: gdb.cp/cpexprs.exp: p CV_f(CV::t)
+PASS: gdb.cp/cpexprs.exp: p CV_f(CV::i)
+Running ./gdb.cp/cplabel.exp ...
+PASS: gdb.cp/cplabel.exp: break foo::bar:to_the_top
+PASS: gdb.cp/cplabel.exp: break foo::bar:get_out_of_here
+PASS: gdb.cp/cplabel.exp: break foo::baz:to_the_top
+PASS: gdb.cp/cplabel.exp: break foo::baz:get_out_of_here
+Running ./gdb.cp/cplusfuncs.exp ...
+PASS: gdb.cp/cplusfuncs.exp: set width 0
+PASS: gdb.cp/cplusfuncs.exp: set language c++
+PASS: gdb.cp/cplusfuncs.exp: detect dm_operator_comma
+PASS: gdb.cp/cplusfuncs.exp: detect dm_operator_char_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_char_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_foo_ref
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_int_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_long_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_unsigned_int
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_void
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_void_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_short
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_unsigned_short
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_long
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_unsigned_long
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_typedef
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(void)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(char)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(signed char)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned char)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(short)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned short)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(long)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned long)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(float)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(double)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator*(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator%(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator-(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>>(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator!=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator|(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator&&(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator!(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator++(int)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator+=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator*=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator%=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>>=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator|=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator,(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator/(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator+(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<<(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator==(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator&(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator^(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator||(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator~(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator--(int)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator->(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator-=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator/=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<<=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator&=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator^=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator->*(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator[](foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator()(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator new
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator new[]
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator delete(void*)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator delete(void*)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator int(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator char*(void)
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc1
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc2
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc3
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc4
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc5
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc6
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc7
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator\*("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator%("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator-("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>>("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator!=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator|("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator&&("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator!("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator++("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator+=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator\*=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator%=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>>=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator|=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator,("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator/("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator+("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<<("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator==("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator&("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator^("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator||("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator~("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator--("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator->("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator-=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator/=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<<=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator&=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator^=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator->\*("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator\[\]("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator new("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator delete("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator int("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator()("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator char\*("
+PASS: gdb.cp/cplusfuncs.exp: list foo::operator int*
+Running ./gdb.cp/cp-relocate.exp ...
+PASS: gdb.cp/cp-relocate.exp: info functions
+PASS: gdb.cp/cp-relocate.exp: get address of func<1>(int)
+PASS: gdb.cp/cp-relocate.exp: get address of func<2>(int)
+PASS: gdb.cp/cp-relocate.exp: get address of caller
+PASS: gdb.cp/cp-relocate.exp: C++ functions have different addresses
+PASS: gdb.cp/cp-relocate.exp: info file
+PASS: gdb.cp/cp-relocate.exp: add-symbol-file cp-relocate.o
+PASS: gdb.cp/cp-relocate.exp: break *func<1>(int)
+PASS: gdb.cp/cp-relocate.exp: break *func<2>(int)
+Running ./gdb.cp/ctti.exp ...
+PASS: gdb.cp/ctti.exp: continue to breakpoint: marker add1
+PASS: gdb.cp/ctti.exp: print c
+PASS: gdb.cp/ctti.exp: print f
+PASS: gdb.cp/ctti.exp: print i
+Running ./gdb.cp/debug-expr.exp ...
+PASS: gdb.cp/debug-expr.exp: set language c++
+PASS: gdb.cp/debug-expr.exp: set debug expression 1
+PASS: gdb.cp/debug-expr.exp: print static_cast<void*>(0)
+PASS: gdb.cp/debug-expr.exp: print reinterpret_cast<void*>(0)
+PASS: gdb.cp/debug-expr.exp: print dynamic_cast<void*>(0)
+Running ./gdb.cp/demangle.exp ...
+PASS: gdb.cp/demangle.exp: set language c++
+PASS: gdb.cp/demangle.exp: set width 0
+PASS: gdb.cp/demangle.exp: lucid: set demangle-style
+PASS: gdb.cp/demangle.exp: lucid: check demangling style
+PASS: gdb.cp/demangle.exp: lucid: WS__FR7istream
+PASS: gdb.cp/demangle.exp: lucid: __aa__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __aad__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ad__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __adv__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __adv__7complexF7complex
+PASS: gdb.cp/demangle.exp: lucid: __aer__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __als__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __amd__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ami__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __amu__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __amu__7complexF7complex
+PASS: gdb.cp/demangle.exp: lucid: __aor__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __apl__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ars__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __as__18istream_withassignFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __as__18istream_withassignFR7istream
+PASS: gdb.cp/demangle.exp: lucid: __as__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __as__3iosFR3ios
+PASS: gdb.cp/demangle.exp: lucid: __cl__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __cm__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __co__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__10istrstreamFPc
+PASS: gdb.cp/demangle.exp: lucid: __ct__10istrstreamFPci
+PASS: gdb.cp/demangle.exp: lucid: __ct__10ostrstreamFPciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__10ostrstreamFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__10smanip_intFPFR3iosi_R3iosi
+PASS: gdb.cp/demangle.exp: lucid: __ct__11c_exceptionFPcRC7complexT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFi
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__11smanip_longFPFR3iosl_R3iosl
+PASS: gdb.cp/demangle.exp: lucid: __ct__11stdiostreamFP4FILE
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFPFl_PvPFPv_v
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFPUciT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFPciT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFi
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__13strstreambaseFPciT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFi
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFiN31
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFiPCc
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFiR3fooT1T2T1T2
+PASS: gdb.cp/demangle.exp: lucid: __ct__3iosFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ct__7filebufFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__7fstreamFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__7fstreamFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFP9streambufiP7ostream
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFiT1P7ostream
+PASS: gdb.cp/demangle.exp: lucid: __ct__7ostreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ct__7ostreamFiPc
+PASS: gdb.cp/demangle.exp: lucid: __ct__8ifstreamFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__8ifstreamFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__Q23foo3barFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__Q33foo3bar4bellFv
+PASS: gdb.cp/demangle.exp: lucid: __dl__3fooSFPv
+PASS: gdb.cp/demangle.exp: lucid: __dl__FPv
+PASS: gdb.cp/demangle.exp: lucid: __dt__10istrstreamFv
+PASS: gdb.cp/demangle.exp: lucid: __dt__Q23foo3barFv
+PASS: gdb.cp/demangle.exp: lucid: __dt__Q33foo3bar4bellFv
+PASS: gdb.cp/demangle.exp: lucid: __dv__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __dv__F7complexT1
+PASS: gdb.cp/demangle.exp: lucid: __eq__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __er__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ge__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __gt__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __le__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ls__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFPCc
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFPFR3ios_R3ios
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFPv
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFUi
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFUl
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFd
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFf
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFi
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFl
+PASS: gdb.cp/demangle.exp: lucid: __ls__FR7ostream7complex
+PASS: gdb.cp/demangle.exp: lucid: __lt__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __md__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __mi__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ml__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ml__F7complexT1
+PASS: gdb.cp/demangle.exp: lucid: __mm__3fooFi
+PASS: gdb.cp/demangle.exp: lucid: __ne__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __nt__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __nw__3fooSFi
+PASS: gdb.cp/demangle.exp: lucid: __nw__FUi
+PASS: gdb.cp/demangle.exp: lucid: __nw__FUiPv
+PASS: gdb.cp/demangle.exp: lucid: __oo__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __opPc__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __opi__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __or__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __pl__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __pp__3fooFi
+PASS: gdb.cp/demangle.exp: lucid: __pt__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __rm__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __rs__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPFR3ios_R3ios
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPFR7istream_R7istream
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPUc
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPc
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRUi
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRUl
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRUs
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRd
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRf
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRi
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRl
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRs
+PASS: gdb.cp/demangle.exp: lucid: __rs__FR7istreamR7complex
+PASS: gdb.cp/demangle.exp: lucid: __vc__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__10istrstream
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__17ostream__iostream__19iostream_withassign
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__3ios
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__3ios__13strstreambase
+KFAIL: gdb.cp/demangle.exp: lucid: __vtbl__3foo__vt_cc_main_ (PRMS: gdb/945)
+PASS: gdb.cp/demangle.exp: lucid: abs__F7complex
+PASS: gdb.cp/demangle.exp: lucid: allocate__9streambufFv
+PASS: gdb.cp/demangle.exp: lucid: attach__11fstreambaseFi
+PASS: gdb.cp/demangle.exp: lucid: bitalloc__3iosSFv
+PASS: gdb.cp/demangle.exp: lucid: chr__FiT1
+PASS: gdb.cp/demangle.exp: lucid: complex_error__FR11c_exception
+PASS: gdb.cp/demangle.exp: lucid: complexfunc2__FPFPc_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc3__FPFPFPl_s_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc4__FPFPFPc_s_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc5__FPFPc_PFl_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc6__FPFPi_PFl_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc7__FPFPFPc_i_PFl_i
+PASS: gdb.cp/demangle.exp: lucid: complicated_put__7ostreamFc
+PASS: gdb.cp/demangle.exp: lucid: conv10__FlPc
+PASS: gdb.cp/demangle.exp: lucid: conv16__FUlPc
+PASS: gdb.cp/demangle.exp: lucid: dec__FR3ios
+PASS: gdb.cp/demangle.exp: lucid: dec__Fli
+PASS: gdb.cp/demangle.exp: lucid: dofield__FP7ostreamPciT2T3
+PASS: gdb.cp/demangle.exp: lucid: flags__3iosFl
+PASS: gdb.cp/demangle.exp: lucid: flags__3iosFv
+PASS: gdb.cp/demangle.exp: lucid: foo__FiN31
+PASS: gdb.cp/demangle.exp: lucid: foo__FiR3fooT1T2T1T2
+PASS: gdb.cp/demangle.exp: lucid: foo___3barFl
+PASS: gdb.cp/demangle.exp: lucid: form__FPCce
+PASS: gdb.cp/demangle.exp: lucid: get__7istreamFPcic
+PASS: gdb.cp/demangle.exp: lucid: get__7istreamFR9streambufc
+PASS: gdb.cp/demangle.exp: lucid: get_complicated__7istreamFRUc
+PASS: gdb.cp/demangle.exp: lucid: get_complicated__7istreamFRc
+PASS: gdb.cp/demangle.exp: lucid: getline__7istreamFPUcic
+PASS: gdb.cp/demangle.exp: lucid: getline__7istreamFPcic
+PASS: gdb.cp/demangle.exp: lucid: ignore__7istreamFiT1
+PASS: gdb.cp/demangle.exp: lucid: init__12strstreambufFPciT1
+PASS: gdb.cp/demangle.exp: lucid: init__3iosFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: initcount__13Iostream_init
+PASS: gdb.cp/demangle.exp: lucid: ipfx__7istreamFi
+PASS: gdb.cp/demangle.exp: lucid: ls_complicated__7ostreamFUc
+PASS: gdb.cp/demangle.exp: lucid: ls_complicated__7ostreamFc
+PASS: gdb.cp/demangle.exp: lucid: open__11fstreambaseFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: open__7filebufFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FSc
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUc
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUi
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUl
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUs
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fc
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fd
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Ff
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fi
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fl
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fs
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fv
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN21
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN31
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN41
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN51
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN61
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN71
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN81
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN91
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN91N11
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiT1
+PASS: gdb.cp/demangle.exp: lucid: polar__FdT1
+PASS: gdb.cp/demangle.exp: lucid: pow__F7complexT1
+PASS: gdb.cp/demangle.exp: lucid: pow__F7complexd
+PASS: gdb.cp/demangle.exp: lucid: pow__F7complexi
+PASS: gdb.cp/demangle.exp: lucid: pow__Fd7complex
+PASS: gdb.cp/demangle.exp: lucid: pstart__FPciT2
+PASS: gdb.cp/demangle.exp: lucid: put__7ostreamFc
+PASS: gdb.cp/demangle.exp: lucid: read__7istreamFPci
+PASS: gdb.cp/demangle.exp: lucid: resetiosflags__FR3iosl
+PASS: gdb.cp/demangle.exp: lucid: restore_errno__FRi
+PASS: gdb.cp/demangle.exp: lucid: rs_complicated__7istreamFRUc
+PASS: gdb.cp/demangle.exp: lucid: rs_complicated__7istreamFRc
+PASS: gdb.cp/demangle.exp: lucid: seekg__7istreamFl8seek_dir
+PASS: gdb.cp/demangle.exp: lucid: seekoff__12strstreambufFl8seek_diri
+PASS: gdb.cp/demangle.exp: lucid: seekoff__9streambufFlQ2_3ios12ios_seek_diri
+PASS: gdb.cp/demangle.exp: lucid: seekpos__9streambufFli
+PASS: gdb.cp/demangle.exp: lucid: set_new_handler__FPFv_v
+PASS: gdb.cp/demangle.exp: lucid: setb__9streambufFPcT1i
+PASS: gdb.cp/demangle.exp: lucid: setb__FR3iosi
+PASS: gdb.cp/demangle.exp: lucid: setbuf__11fstreambaseFPci
+PASS: gdb.cp/demangle.exp: lucid: setbuf__9streambufFPUci
+PASS: gdb.cp/demangle.exp: lucid: setbuf__9streambufFPciT2
+PASS: gdb.cp/demangle.exp: lucid: setf__3iosFlT1
+PASS: gdb.cp/demangle.exp: lucid: setfill__FR3iosi
+PASS: gdb.cp/demangle.exp: lucid: setg__9streambufFPcN21
+PASS: gdb.cp/demangle.exp: lucid: setp__9streambufFPcT1
+PASS: gdb.cp/demangle.exp: lucid: sputn__9streambufFPCci
+PASS: gdb.cp/demangle.exp: lucid: str__FPCci
+PASS: gdb.cp/demangle.exp: lucid: tie__3iosFP7ostream
+PASS: gdb.cp/demangle.exp: lucid: uconv10__FUlPc
+PASS: gdb.cp/demangle.exp: lucid: write__7ostreamFPCci
+PASS: gdb.cp/demangle.exp: lucid: xget__7istreamFPc
+PASS: gdb.cp/demangle.exp: lucid: xsgetn__9streambufFPci
+PASS: gdb.cp/demangle.exp: lucid: xsputn__9streambufFPCci
+PASS: gdb.cp/demangle.exp: lucid: _Utf390_1__1_9223372036854775807__9223372036854775
+PASS: gdb.cp/demangle.exp: gnu: set demangle-style
+PASS: gdb.cp/demangle.exp: gnu: check demangling style
+PASS: gdb.cp/demangle.exp: gnu: Abort__FP6EditoriPCc
+PASS: gdb.cp/demangle.exp: gnu: AddAlignment__9ivTSolverUiP12ivInteractorP7ivTGlue
+PASS: gdb.cp/demangle.exp: gnu: Append__15NameChooserViewPCc
+PASS: gdb.cp/demangle.exp: gnu: ArrowheadIntersects__9ArrowLineP9ArrowheadR6BoxObjP7Graphic
+PASS: gdb.cp/demangle.exp: gnu: AtEnd__13ivRubberGroup
+PASS: gdb.cp/demangle.exp: gnu: BgFilter__9ivTSolverP12ivInteractor
+PASS: gdb.cp/demangle.exp: gnu: BitPatterntoa__FRC10BitPatternccc
+PASS: gdb.cp/demangle.exp: gnu: Check__6UArrayi
+PASS: gdb.cp/demangle.exp: gnu: CoreConstDecls__8TextCodeR7ostream
+PASS: gdb.cp/demangle.exp: gnu: Detach__8StateVarP12StateVarView
+PASS: gdb.cp/demangle.exp: gnu: Done__9ComponentG8Iterator
+PASS: gdb.cp/demangle.exp: gnu: DrawDestinationTransformedImage__FP7_XImageiiT0iiUlUiiiUiUlUlP4_XGCRC13ivTransformeriiii
+PASS: gdb.cp/demangle.exp: gnu: Edit__12StringEditorPCcii
+PASS: gdb.cp/demangle.exp: gnu: Effect__11RelateManipR7ivEvent
+PASS: gdb.cp/demangle.exp: gnu: FilterName__FPCc
+PASS: gdb.cp/demangle.exp: gnu: Filter__6PSTextPCci
+PASS: gdb.cp/demangle.exp: gnu: FindColor__7CatalogPCciii
+PASS: gdb.cp/demangle.exp: gnu: FindFixed__FRP4CNetP4CNet
+PASS: gdb.cp/demangle.exp: gnu: FindFont__7CatalogPCcN21
+PASS: gdb.cp/demangle.exp: gnu: Fix48_abort__FR8twolongs
+PASS: gdb.cp/demangle.exp: gnu: GetBarInfo__15iv2_6_VScrollerP13ivPerspectiveRiT2
+PASS: gdb.cp/demangle.exp: gnu: GetBgColor__C9ivPainter
+PASS: gdb.cp/demangle.exp: gnu: Iisdouble__FPC6IntRep
+PASS: gdb.cp/demangle.exp: gnu: InsertBody__15H_PullrightMenuii
+PASS: gdb.cp/demangle.exp: gnu: InsertCharacter__9TextManipc
+PASS: gdb.cp/demangle.exp: gnu: InsertToplevel__7ivWorldP12ivInteractorT1
+PASS: gdb.cp/demangle.exp: gnu: InsertToplevel__7ivWorldP12ivInteractorT1iiUi
+PASS: gdb.cp/demangle.exp: gnu: IsADirectory__FPCcR4stat
+PASS: gdb.cp/demangle.exp: gnu: IsAGroup__FP11GraphicViewP11GraphicComp
+PASS: gdb.cp/demangle.exp: gnu: IsA__10ButtonCodeUl
+PASS: gdb.cp/demangle.exp: gnu: ReadName__FR7istreamPc
+PASS: gdb.cp/demangle.exp: gnu: Redraw__13StringBrowseriiii
+PASS: gdb.cp/demangle.exp: gnu: Rotate__13ivTransformerf
+PASS: gdb.cp/demangle.exp: gnu: Rotated__C13ivTransformerf
+PASS: gdb.cp/demangle.exp: gnu: Round__Ff
+PASS: gdb.cp/demangle.exp: gnu: SetExport__16MemberSharedNameUi
+PASS: gdb.cp/demangle.exp: gnu: Set__14ivControlState13ControlStatusUi
+PASS: gdb.cp/demangle.exp: gnu: Set__5DFacePcii
+PASS: gdb.cp/demangle.exp: gnu: VConvert__9ivTSolverP12ivInteractorRP8TElementT2
+PASS: gdb.cp/demangle.exp: gnu: VConvert__9ivTSolverP7ivTGlueRP8TElement
+PASS: gdb.cp/demangle.exp: gnu: VOrder__9ivTSolverUiRP12ivInteractorT2
+PASS: gdb.cp/demangle.exp: gnu: Valid__7CatalogPCcRP4Tool
+PASS: gdb.cp/demangle.exp: gnu: _10PageButton$__both
+PASS: gdb.cp/demangle.exp: gnu: _3RNG$singleMantissa
+PASS: gdb.cp/demangle.exp: gnu: _5IComp$_release
+PASS: gdb.cp/demangle.exp: gnu: _$_10BitmapComp
+PASS: gdb.cp/demangle.exp: gnu: _$_9__io_defs
+PASS: gdb.cp/demangle.exp: gnu: _$_Q23foo3bar
+PASS: gdb.cp/demangle.exp: gnu: _$_Q33foo3bar4bell
+PASS: gdb.cp/demangle.exp: gnu: __10ivTelltaleiP7ivGlyph
+PASS: gdb.cp/demangle.exp: gnu: __10ivViewportiP12ivInteractorUi
+PASS: gdb.cp/demangle.exp: gnu: __10ostrstream
+PASS: gdb.cp/demangle.exp: gnu: __10ostrstreamPcii
+PASS: gdb.cp/demangle.exp: gnu: __11BasicDialogiPCcP13ivButtonStateN22Ui
+PASS: gdb.cp/demangle.exp: gnu: __11BitmapTablei
+PASS: gdb.cp/demangle.exp: gnu: __12ViewportCodeP12ViewportComp
+PASS: gdb.cp/demangle.exp: gnu: __12iv2_6_BorderiPCci
+PASS: gdb.cp/demangle.exp: gnu: __12iv2_6_Borderii
+PASS: gdb.cp/demangle.exp: gnu: __12ivBackgroundiP7ivGlyphPC7ivColor
+PASS: gdb.cp/demangle.exp: gnu: __12ivBreak_Listl
+PASS: gdb.cp/demangle.exp: gnu: __14TextInteractoriPCcUi
+PASS: gdb.cp/demangle.exp: gnu: __14iv2_6_MenuItemiP12ivInteractor
+PASS: gdb.cp/demangle.exp: gnu: __14iv2_6_MenuItemiPCcP12ivInteractor
+PASS: gdb.cp/demangle.exp: gnu: __20DisplayList_IteratorR11DisplayList
+PASS: gdb.cp/demangle.exp: gnu: __3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __3fooiN31
+PASS: gdb.cp/demangle.exp: gnu: __3fooiPCc
+PASS: gdb.cp/demangle.exp: gnu: __3fooiRT0iT2iT2
+PASS: gdb.cp/demangle.exp: gnu: __6GetOptiPPcPCc
+PASS: gdb.cp/demangle.exp: gnu: __6KeyMapPT0
+PASS: gdb.cp/demangle.exp: gnu: __7ivWorldPCcRiPPcPC12ivOptionDescPC14ivPropertyData
+PASS: gdb.cp/demangle.exp: gnu: __7procbufPCci
+PASS: gdb.cp/demangle.exp: gnu: __8ArrowCmdP6EditorUiUi
+PASS: gdb.cp/demangle.exp: gnu: __9F_EllipseiiiiP7Graphic
+PASS: gdb.cp/demangle.exp: gnu: __9FrameDataP9FrameCompi
+PASS: gdb.cp/demangle.exp: gnu: __9HVGraphicP9CanvasVarP7Graphic
+PASS: gdb.cp/demangle.exp: gnu: __Q23foo3bar
+PASS: gdb.cp/demangle.exp: gnu: __Q33foo3bar4bell
+PASS: gdb.cp/demangle.exp: gnu: __aa__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __aad__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ad__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __adv__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __aer__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __als__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __amd__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ami__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __aml__3FixRT0
+PASS: gdb.cp/demangle.exp: gnu: __aml__5Fix16i
+PASS: gdb.cp/demangle.exp: gnu: __aml__5Fix32RT0
+PASS: gdb.cp/demangle.exp: gnu: __aor__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __apl__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ars__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __as__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __cl__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __cl__6Normal
+PASS: gdb.cp/demangle.exp: gnu: __cl__6Stringii
+PASS: gdb.cp/demangle.exp: gnu: __cm__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __co__3foo
+PASS: gdb.cp/demangle.exp: gnu: __dl__3fooPv
+PASS: gdb.cp/demangle.exp: gnu: __dv__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __eq__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __er__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ge__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __gt__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __le__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ls__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ls__FR7ostreamPFR3ios_R3ios
+PASS: gdb.cp/demangle.exp: gnu: __ls__FR7ostreamR3Fix
+PASS: gdb.cp/demangle.exp: gnu: __lt__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __md__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __mi__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ml__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __mm__3fooi
+PASS: gdb.cp/demangle.exp: gnu: __ne__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ne__FRC7ComplexT0
+PASS: gdb.cp/demangle.exp: gnu: __ne__FRC7Complexd
+PASS: gdb.cp/demangle.exp: gnu: __ne__FRC9SubStringRC6String
+PASS: gdb.cp/demangle.exp: gnu: __nt__3foo
+PASS: gdb.cp/demangle.exp: gnu: __nw__3fooi
+PASS: gdb.cp/demangle.exp: gnu: __oo__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __opPc__3foo
+PASS: gdb.cp/demangle.exp: gnu: __opi__3foo
+PASS: gdb.cp/demangle.exp: gnu: __or__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __pl__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __pp__3fooi
+PASS: gdb.cp/demangle.exp: gnu: __rf__3foo
+PASS: gdb.cp/demangle.exp: gnu: __rm__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __rs__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __vc__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: _gsub__6StringRC5RegexPCci
+PASS: gdb.cp/demangle.exp: gnu: _new_Fix__FUs
+PASS: gdb.cp/demangle.exp: gnu: _vt.foo
+PASS: gdb.cp/demangle.exp: gnu: _vt.foo.bar
+PASS: gdb.cp/demangle.exp: gnu: _vt$foo
+PASS: gdb.cp/demangle.exp: gnu: _vt$foo$bar
+PASS: gdb.cp/demangle.exp: gnu: append__7ivGlyphPT0
+PASS: gdb.cp/demangle.exp: gnu: arg__FRC7Complex
+PASS: gdb.cp/demangle.exp: gnu: clearok__FP7_win_sti
+PASS: gdb.cp/demangle.exp: gnu: complexfunc2__FPFPc_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc3__FPFPFPl_s_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc4__FPFPFPc_s_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc5__FPFPc_PFl_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc6__FPFPi_PFl_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc7__FPFPFPc_i_PFl_i
+PASS: gdb.cp/demangle.exp: gnu: contains__C9BitStringRC10BitPattern
+PASS: gdb.cp/demangle.exp: gnu: contains__C9BitStringRC12BitSubStringi
+PASS: gdb.cp/demangle.exp: gnu: contains__C9BitStringRT0
+PASS: gdb.cp/demangle.exp: gnu: div__FPC6IntRepT0P6IntRep
+PASS: gdb.cp/demangle.exp: gnu: div__FPC6IntReplP6IntRep
+PASS: gdb.cp/demangle.exp: gnu: div__FRC8RationalT0R8Rational
+PASS: gdb.cp/demangle.exp: gnu: divide__FRC7IntegerT0R7IntegerT2
+PASS: gdb.cp/demangle.exp: gnu: divide__FRC7IntegerlR7IntegerRl
+PASS: gdb.cp/demangle.exp: gnu: enable__14DocumentViewerPCcUi
+PASS: gdb.cp/demangle.exp: gnu: foo__FiN30
+PASS: gdb.cp/demangle.exp: gnu: foo__FiR3fooiT1iT1
+PASS: gdb.cp/demangle.exp: gnu: foo___3barl
+PASS: gdb.cp/demangle.exp: gnu: insert__15ivClippingStacklRP8_XRegion
+PASS: gdb.cp/demangle.exp: gnu: insert__16ChooserInfo_ListlR11ChooserInfo
+PASS: gdb.cp/demangle.exp: gnu: insert__17FontFamilyRepListlRP15ivFontFamilyRep
+PASS: gdb.cp/demangle.exp: gnu: leaveok__FP7_win_stc
+PASS: gdb.cp/demangle.exp: gnu: left_mover__C7ivMFKitP12ivAdjustableP7ivStyle
+PASS: gdb.cp/demangle.exp: gnu: matches__C9BitStringRC10BitPatterni
+PASS: gdb.cp/demangle.exp: gnu: matches__C9SubStringRC5Regex
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FSc
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUc
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUi
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUl
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUs
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fc
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fd
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Ff
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fi
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fl
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fs
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fv
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fi
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: pick__13ivCompositionP8ivCanvasRC12ivAllocationiR5ivHit
+PASS: gdb.cp/demangle.exp: gnu: pointer__C11ivHScrollerRC7ivEventRC12ivAllocation
+PASS: gdb.cp/demangle.exp: gnu: poke__8ivRasterUlUlffff
+PASS: gdb.cp/demangle.exp: gnu: polar__Fdd
+PASS: gdb.cp/demangle.exp: gnu: read__10osStdInputRPCc
+PASS: gdb.cp/demangle.exp: gnu: scale__13ivTransformerff
+PASS: gdb.cp/demangle.exp: gnu: scanw__12CursesWindowPCce
+PASS: gdb.cp/demangle.exp: gnu: scmp__FPCcT0
+PASS: gdb.cp/demangle.exp: gnu: sgetn__7filebufPci
+PASS: gdb.cp/demangle.exp: gnu: shift__FP5_FrepiT0
+PASS: gdb.cp/demangle.exp: gnu: test__C6BitSeti
+PASS: gdb.cp/demangle.exp: gnu: test__C6BitSetii
+PASS: gdb.cp/demangle.exp: gnu: testbit__FRC7Integerl
+PASS: gdb.cp/demangle.exp: gnu: text_source__8Documentl
+PASS: gdb.cp/demangle.exp: gnu: variance__6Erlangd
+PASS: gdb.cp/demangle.exp: gnu: vform__8iostreamPCcPc
+PASS: gdb.cp/demangle.exp: gnu: view__14DocumentViewerP8ItemViewP11TabularItem
+PASS: gdb.cp/demangle.exp: gnu: xy_extents__11ivExtensionffff
+PASS: gdb.cp/demangle.exp: gnu: zero__8osMemoryPvUi
+PASS: gdb.cp/demangle.exp: gnu: _2T4$N
+PASS: gdb.cp/demangle.exp: gnu: _Q22T42t1$N
+PASS: gdb.cp/demangle.exp: gnu: get__2T1
+PASS: gdb.cp/demangle.exp: gnu: get__Q22T11a
+PASS: gdb.cp/demangle.exp: gnu: get__Q32T11a1b
+PASS: gdb.cp/demangle.exp: gnu: get__Q42T11a1b1c
+PASS: gdb.cp/demangle.exp: gnu: get__Q52T11a1b1c1d
+PASS: gdb.cp/demangle.exp: gnu: put__2T1i
+PASS: gdb.cp/demangle.exp: gnu: put__Q22T11ai
+PASS: gdb.cp/demangle.exp: gnu: put__Q32T11a1bi
+PASS: gdb.cp/demangle.exp: gnu: put__Q42T11a1b1ci
+PASS: gdb.cp/demangle.exp: gnu: put__Q52T11a1b1c1di
+PASS: gdb.cp/demangle.exp: gnu: bar__3fooPv
+PASS: gdb.cp/demangle.exp: gnu: bar__3fooPCv
+PASS: gdb.cp/demangle.exp: gnu: bar__C3fooPv
+PASS: gdb.cp/demangle.exp: gnu: bar__C3fooPCv
+PASS: gdb.cp/demangle.exp: gnu: __eq__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __eq__3fooRC3foo
+PASS: gdb.cp/demangle.exp: gnu: __eq__C3fooR3foo
+PASS: gdb.cp/demangle.exp: gnu: __eq__C3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: elem__t6vector1Zdi
+PASS: gdb.cp/demangle.exp: gnu: elem__t6vector1Zii
+PASS: gdb.cp/demangle.exp: gnu: __t6vector1Zdi
+PASS: gdb.cp/demangle.exp: gnu: __t6vector1Zii
+PASS: gdb.cp/demangle.exp: gnu: _$_t6vector1Zdi
+PASS: gdb.cp/demangle.exp: gnu: _$_t6vector1Zii
+PASS: gdb.cp/demangle.exp: gnu: __nw__t2T11ZcUi
+PASS: gdb.cp/demangle.exp: gnu: __nw__t2T11Z1tUi
+PASS: gdb.cp/demangle.exp: gnu: __dl__t2T11ZcPv
+PASS: gdb.cp/demangle.exp: gnu: __dl__t2T11Z1tPv
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Zci
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Zc
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Z1ti
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Z1t
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity3PixPQ2t4List1Z10VHDLEntity7element
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity3PixRCQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity7elementRC10VHDLEntityPT0
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity7elementRCQ2t4List1Z10VHDLEntity7element
+PASS: gdb.cp/demangle.exp: gnu: __cl__C11VHDLLibraryGt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __cl__Ct4List1Z10VHDLEntityRCQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __t4List1Z10VHDLEntityRCt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityP14VHDLLibraryRepGQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: nextE__C11VHDLLibraryRt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: next__Ct4List1Z10VHDLEntityRQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: _GLOBAL_$D$set
+PASS: gdb.cp/demangle.exp: gnu: _GLOBAL_$I$set
+PASS: gdb.cp/demangle.exp: gnu: __as__t5ListS1ZUiRCt5ListS1ZUi
+PASS: gdb.cp/demangle.exp: gnu: __cl__Ct5ListS1ZUiRCQ2t5ListS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __cl__Ct5SetLS1ZUiRCQ2t5SetLS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __t10ListS_link1ZUiRCUiPT0
+PASS: gdb.cp/demangle.exp: gnu: __t10ListS_link1ZUiRCt10ListS_link1ZUi
+PASS: gdb.cp/demangle.exp: gnu: __t5ListS1ZUiRCt5ListS1ZUi
+PASS: gdb.cp/demangle.exp: gnu: next__Ct5ListS1ZUiRQ2t5ListS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCQ2t5SetLS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __t8ListElem1Z5LabelRt4List1Z5Label
+PASS: gdb.cp/demangle.exp: gnu: __t8BDDHookV1ZPcRCPc
+PASS: gdb.cp/demangle.exp: gnu: _vt$t8BDDHookV1ZPc
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCQ211BDDFunction4VixB
+PASS: gdb.cp/demangle.exp: gnu: __eq__FPvRCQ211BDDFunction4VixB
+PASS: gdb.cp/demangle.exp: gnu: relativeId__CQ36T_phi210T_preserve8FPC_nextRCQ26T_phi210T_preserveRC10Parameters
+PASS: gdb.cp/demangle.exp: gnu: _Utf390_1__1_9223372036854775807__9223372036854775
+PASS: gdb.cp/demangle.exp: gnu: foo__I40
+PASS: gdb.cp/demangle.exp: gnu: foo__I_200_
+PASS: gdb.cp/demangle.exp: gnu: foo__I_200
+PASS: gdb.cp/demangle.exp: gnu: foo__I_4000000000000000000000000000000000000000000000000000000000000000000000000
+PASS: gdb.cp/demangle.exp: gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator
+PASS: gdb.cp/demangle.exp: arm: set demangle-style
+PASS: gdb.cp/demangle.exp: arm: check demangling style
+PASS: gdb.cp/demangle.exp: arm: __dt__21T5__pt__11_PFiPPdPv_iFv
+PASS: gdb.cp/demangle.exp: arm: __ct__1cFi
+PASS: gdb.cp/demangle.exp: arm: __dt__11T5__pt__2_iFv
+PASS: gdb.cp/demangle.exp: arm: __dt__11T5__pt__2_cFv
+PASS: gdb.cp/demangle.exp: arm: __ct__2T2Fi
+PASS: gdb.cp/demangle.exp: arm: __dt__2T1Fv
+PASS: gdb.cp/demangle.exp: arm: __dt__12T5__pt__3_1xFv
+PASS: gdb.cp/demangle.exp: arm: __dt__17T5__pt__8_PFcPv_iFv
+PASS: gdb.cp/demangle.exp: arm: g__FP1cPC1cT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUlPCUlT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUiPCUiT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUsPCUsT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUcPCUcT1
+PASS: gdb.cp/demangle.exp: arm: g__F1TPlPClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRlRClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TPiPCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRiRCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TPsPCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRsRCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TPcPCcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRcRCcT2
+PASS: gdb.cp/demangle.exp: arm: __ct__21T5__pt__11_PFiPPdPv_iFi
+PASS: gdb.cp/demangle.exp: arm: __gt__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __ge__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __lt__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __le__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __ne__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __eq__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __amd__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __adv__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __amu__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __ami__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __apl__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __nw__2T1SFUi
+PASS: gdb.cp/demangle.exp: arm: __dl__2T1SFPv
+PASS: gdb.cp/demangle.exp: arm: put__2T7SFi
+PASS: gdb.cp/demangle.exp: arm: __dl__12T5__pt__3_1xSFPv
+PASS: gdb.cp/demangle.exp: arm: h__FUc
+PASS: gdb.cp/demangle.exp: arm: f__Fic
+PASS: gdb.cp/demangle.exp: arm: h__FUi
+PASS: gdb.cp/demangle.exp: arm: h__Fci
+PASS: gdb.cp/demangle.exp: arm: h__FUl
+PASS: gdb.cp/demangle.exp: arm: h__Fcl
+PASS: gdb.cp/demangle.exp: arm: h__FUs
+PASS: gdb.cp/demangle.exp: arm: h__Fcs
+PASS: gdb.cp/demangle.exp: arm: __amd__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __adv__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __amu__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __ami__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __apl__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUlRPCUlT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUiRPCUiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUsRPCUsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUcRPCUcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SRPlRPClT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SRPiRPCiT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SRPcRPCcT3
+PASS: gdb.cp/demangle.exp: arm: X__12T5__pt__3_1x
+PASS: gdb.cp/demangle.exp: arm: __ct__11T5__pt__2_iFi
+PASS: gdb.cp/demangle.exp: arm: __ct__11T5__pt__2_cFi
+PASS: gdb.cp/demangle.exp: arm: __gt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __ge__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __lt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __le__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __ne__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __eq__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: g__FcR1cRC1cT2
+PASS: gdb.cp/demangle.exp: arm: g__FcRPdRPCdT2
+PASS: gdb.cp/demangle.exp: arm: g__FcRPfRPCfT2
+PASS: gdb.cp/demangle.exp: arm: h__FcT1
+PASS: gdb.cp/demangle.exp: arm: f__Ficd
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SdRPsRPCsT4
+PASS: gdb.cp/demangle.exp: arm: g__F1cC1cT1
+PASS: gdb.cp/demangle.exp: arm: g__FPdPCdT1
+PASS: gdb.cp/demangle.exp: arm: g__FPfPCfT1
+PASS: gdb.cp/demangle.exp: arm: g__FUlCUlT1
+PASS: gdb.cp/demangle.exp: arm: g__FPlPClT1
+PASS: gdb.cp/demangle.exp: arm: g__FUiCUiT1
+PASS: gdb.cp/demangle.exp: arm: g__FPiPCiT1
+PASS: gdb.cp/demangle.exp: arm: g__FUsCUsT1
+PASS: gdb.cp/demangle.exp: arm: g__FPsPCsT1
+PASS: gdb.cp/demangle.exp: arm: g__FUcCUcT1
+PASS: gdb.cp/demangle.exp: arm: g__FPcPCcT1
+PASS: gdb.cp/demangle.exp: arm: g__F1TlClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TiCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TsCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TcCcT2
+PASS: gdb.cp/demangle.exp: arm: __dl__17T5__pt__8_PFcPv_iSFPv
+PASS: gdb.cp/demangle.exp: arm: printf__FPCce
+PASS: gdb.cp/demangle.exp: arm: X__17T5__pt__8_PFcPv_i
+PASS: gdb.cp/demangle.exp: arm: __ct__12T5__pt__3_1xFi
+PASS: gdb.cp/demangle.exp: arm: g__F1SRUlRCUlT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPlRPClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRUiRCUiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPiRPCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRUsRCUsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPsRPCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRUcRCUcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPcRPCcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRlRClT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRiRCiT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRsRCsT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRcRCcT3
+PASS: gdb.cp/demangle.exp: arm: __dl__21T5__pt__11_PFiPPdPv_iSFPv
+PASS: gdb.cp/demangle.exp: arm: __std__foo
+PASS: gdb.cp/demangle.exp: arm: __sti__bar
+PASS: gdb.cp/demangle.exp: arm: f__FicdPcPFci_v
+PASS: gdb.cp/demangle.exp: arm: f__FicdPcPFic_v
+PASS: gdb.cp/demangle.exp: arm: get__2T7SFv
+PASS: gdb.cp/demangle.exp: arm: X__21T5__pt__11_PFiPPdPv_i
+PASS: gdb.cp/demangle.exp: arm: g__FcRdRCdT2
+PASS: gdb.cp/demangle.exp: arm: g__FcRfRCfT2
+PASS: gdb.cp/demangle.exp: arm: __md__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __dv__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __ml__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __mi__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __pl__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __dl__11T5__pt__2_iSFPv
+PASS: gdb.cp/demangle.exp: arm: __dl__11T5__pt__2_cSFPv
+PASS: gdb.cp/demangle.exp: arm: h__Fc
+PASS: gdb.cp/demangle.exp: arm: h__Fd
+PASS: gdb.cp/demangle.exp: arm: h__Ff
+PASS: gdb.cp/demangle.exp: arm: h__Fi
+PASS: gdb.cp/demangle.exp: arm: f__Fi
+PASS: gdb.cp/demangle.exp: arm: h__Fl
+PASS: gdb.cp/demangle.exp: arm: h__Fs
+PASS: gdb.cp/demangle.exp: arm: __md__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __dv__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __ml__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __mi__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __pl__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: g__FcRP1cRPC1cT2
+PASS: gdb.cp/demangle.exp: arm: X__11T5__pt__2_c
+PASS: gdb.cp/demangle.exp: arm: X__11T5__pt__2_i
+PASS: gdb.cp/demangle.exp: arm: g__FdCdT1
+PASS: gdb.cp/demangle.exp: arm: g__FfCfT1
+PASS: gdb.cp/demangle.exp: arm: g__FlClT1
+PASS: gdb.cp/demangle.exp: arm: g__FiCiT1
+PASS: gdb.cp/demangle.exp: arm: g__FsCsT1
+PASS: gdb.cp/demangle.exp: arm: g__FcCcT1
+PASS: gdb.cp/demangle.exp: arm: __ct__17T5__pt__8_PFcPv_iFi
+PASS: gdb.cp/demangle.exp: arm: f__FicdPc
+PASS: gdb.cp/demangle.exp: arm: __nw__FUi
+PASS: gdb.cp/demangle.exp: arm: __ct__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: arm: __dt__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: arm: put__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: arm: get__Q2_2T11aSFv
+PASS: gdb.cp/demangle.exp: arm: put__2T1SFi
+PASS: gdb.cp/demangle.exp: arm: put__Q5_2T11a1b1c1dSFi
+PASS: gdb.cp/demangle.exp: arm: get__Q4_2T11a1b1cSFv
+PASS: gdb.cp/demangle.exp: arm: put__Q2_2T11aSFi
+PASS: gdb.cp/demangle.exp: arm: put__Q4_2T11a1b1cSFi
+PASS: gdb.cp/demangle.exp: arm: get__Q3_2T11a1bSFv
+PASS: gdb.cp/demangle.exp: arm: get__2T1SFv
+PASS: gdb.cp/demangle.exp: arm: get__Q5_2T11a1b1c1dSFv
+PASS: gdb.cp/demangle.exp: arm: __dt__11T1__pt__2_cFv
+PASS: gdb.cp/demangle.exp: arm: __dt__12T1__pt__3_1tFv
+PASS: gdb.cp/demangle.exp: arm: __dl__12T1__pt__3_1tSFPv
+PASS: gdb.cp/demangle.exp: arm: __ct__11T1__pt__2_cFi
+PASS: gdb.cp/demangle.exp: arm: __ct__11T1__pt__2_cFv
+PASS: gdb.cp/demangle.exp: arm: __ct__12T1__pt__3_1tFi
+PASS: gdb.cp/demangle.exp: arm: __ct__12T1__pt__3_1tFv
+PASS: gdb.cp/demangle.exp: arm: __dl__11T1__pt__2_cSFPv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFPv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFPCv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooCFPv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooCFPCv
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooFR3foo
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooFRC3foo
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooCFR3foo
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooCFRC3foo
+PASS: gdb.cp/demangle.exp: arm: elem__15vector__pt__2_dFi
+PASS: gdb.cp/demangle.exp: arm: elem__15vector__pt__2_iFi
+PASS: gdb.cp/demangle.exp: arm: __ct__15vector__pt__2_dFi
+PASS: gdb.cp/demangle.exp: arm: __ct__15vector__pt__2_iFi
+PASS: gdb.cp/demangle.exp: arm: __ct__25DListNode__pt__9_R6RLabelFR6RLabelP25DListNode__pt__9_R6RLabelT2
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFiT16FooBar
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFPiN51PdN37PcN211T1iN215
+PASS: gdb.cp/demangle.exp: arm: _Utf390_1__1_9223372036854775807__9223372036854775
+PASS: gdb.cp/demangle.exp: hp: set demangle-style
+PASS: gdb.cp/demangle.exp: hp: check demangling style
+PASS: gdb.cp/demangle.exp: hp: g__FP1cPC1cT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUlPCUlT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUiPCUiT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUsPCUsT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUcPCUcT1
+PASS: gdb.cp/demangle.exp: hp: g__F1TPlPClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRlRClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TPiPCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRiRCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TPsPCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRsRCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TPcPCcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRcRCcT2
+PASS: gdb.cp/demangle.exp: hp: __gt__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __ge__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __lt__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __le__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __ne__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __eq__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __amd__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __adv__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __amu__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __ami__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __apl__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __nw__2T1SFUi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T1SFPv
+PASS: gdb.cp/demangle.exp: hp: put__2T7SFi
+PASS: gdb.cp/demangle.exp: hp: h__FUc
+PASS: gdb.cp/demangle.exp: hp: f__Fic
+PASS: gdb.cp/demangle.exp: hp: h__FUi
+PASS: gdb.cp/demangle.exp: hp: h__Fci
+PASS: gdb.cp/demangle.exp: hp: h__FUl
+PASS: gdb.cp/demangle.exp: hp: h__Fcl
+PASS: gdb.cp/demangle.exp: hp: h__FUs
+PASS: gdb.cp/demangle.exp: hp: h__Fcs
+PASS: gdb.cp/demangle.exp: hp: __amd__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __adv__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __amu__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __ami__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __apl__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUlRPCUlT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUiRPCUiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUsRPCUsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUcRPCUcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SRPlRPClT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SRPiRPCiT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SRPcRPCcT3
+PASS: gdb.cp/demangle.exp: hp: __gt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __ge__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __lt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __le__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __ne__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __eq__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: g__FcR1cRC1cT2
+PASS: gdb.cp/demangle.exp: hp: g__FcRPdRPCdT2
+PASS: gdb.cp/demangle.exp: hp: g__FcRPfRPCfT2
+PASS: gdb.cp/demangle.exp: hp: h__FcT1
+PASS: gdb.cp/demangle.exp: hp: f__Ficd
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SdRPsRPCsT4
+PASS: gdb.cp/demangle.exp: hp: g__F1cC1cT1
+PASS: gdb.cp/demangle.exp: hp: g__FPdPCdT1
+PASS: gdb.cp/demangle.exp: hp: g__FPfPCfT1
+PASS: gdb.cp/demangle.exp: hp: g__FUlCUlT1
+PASS: gdb.cp/demangle.exp: hp: g__FPlPClT1
+PASS: gdb.cp/demangle.exp: hp: g__FUiCUiT1
+PASS: gdb.cp/demangle.exp: hp: g__FPiPCiT1
+PASS: gdb.cp/demangle.exp: hp: g__FUsCUsT1
+PASS: gdb.cp/demangle.exp: hp: g__FPsPCsT1
+PASS: gdb.cp/demangle.exp: hp: g__FUcCUcT1
+PASS: gdb.cp/demangle.exp: hp: g__FPcPCcT1
+PASS: gdb.cp/demangle.exp: hp: g__F1TlClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TiCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TsCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TcCcT2
+PASS: gdb.cp/demangle.exp: hp: printf__FPCce
+PASS: gdb.cp/demangle.exp: hp: g__F1SRUlRCUlT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPlRPClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRUiRCUiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPiRPCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRUsRCUsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPsRPCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRUcRCUcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPcRPCcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRlRClT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRiRCiT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRsRCsT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRcRCcT3
+PASS: gdb.cp/demangle.exp: hp: f__FicdPcPFci_v
+PASS: gdb.cp/demangle.exp: hp: f__FicdPcPFic_v
+PASS: gdb.cp/demangle.exp: hp: get__2T7SFv
+PASS: gdb.cp/demangle.exp: hp: g__FcRdRCdT2
+PASS: gdb.cp/demangle.exp: hp: g__FcRfRCfT2
+PASS: gdb.cp/demangle.exp: hp: __md__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __dv__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __ml__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __mi__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __pl__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: h__Fc
+PASS: gdb.cp/demangle.exp: hp: h__Fd
+PASS: gdb.cp/demangle.exp: hp: h__Ff
+PASS: gdb.cp/demangle.exp: hp: h__Fi
+PASS: gdb.cp/demangle.exp: hp: f__Fi
+PASS: gdb.cp/demangle.exp: hp: h__Fl
+PASS: gdb.cp/demangle.exp: hp: h__Fs
+PASS: gdb.cp/demangle.exp: hp: __md__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __dv__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __ml__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __mi__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __pl__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: g__FcRP1cRPC1cT2
+PASS: gdb.cp/demangle.exp: hp: g__FdCdT1
+PASS: gdb.cp/demangle.exp: hp: g__FfCfT1
+PASS: gdb.cp/demangle.exp: hp: g__FlClT1
+PASS: gdb.cp/demangle.exp: hp: g__FiCiT1
+PASS: gdb.cp/demangle.exp: hp: g__FsCsT1
+PASS: gdb.cp/demangle.exp: hp: g__FcCcT1
+PASS: gdb.cp/demangle.exp: hp: f__FicdPc
+PASS: gdb.cp/demangle.exp: hp: __nw__FUi
+PASS: gdb.cp/demangle.exp: hp: __ct__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: hp: __dt__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: hp: put__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: hp: get__Q2_2T11aSFv
+PASS: gdb.cp/demangle.exp: hp: put__2T1SFi
+PASS: gdb.cp/demangle.exp: hp: put__Q5_2T11a1b1c1dSFi
+PASS: gdb.cp/demangle.exp: hp: get__Q4_2T11a1b1cSFv
+PASS: gdb.cp/demangle.exp: hp: put__Q2_2T11aSFi
+PASS: gdb.cp/demangle.exp: hp: put__Q4_2T11a1b1cSFi
+PASS: gdb.cp/demangle.exp: hp: get__Q3_2T11a1bSFv
+PASS: gdb.cp/demangle.exp: hp: get__2T1SFv
+PASS: gdb.cp/demangle.exp: hp: get__Q5_2T11a1b1c1dSFv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFPv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFPCv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooCFPv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooCFPCv
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooFR3foo
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooFRC3foo
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooCFR3foo
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooCFRC3foo
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFiT16FooBar
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFPiN51PdN37PcN211T1iN215
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTPFiPPdPv_i__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__1cFi
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTi__Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTc__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T2Fi
+PASS: gdb.cp/demangle.exp: hp: __dt__2T1Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XT1x__Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTPFcPv_i__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFiPPdPv_i__Fi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XT1x__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XT1x
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTi__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTc__Fi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTPFcPv_i__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTPFcPv_i
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XT1x__Fi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTPFiPPdPv_i__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTPFiPPdPv_i
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTi__SFPv
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTc__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTc
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFcPv_i__Fi
+PASS: gdb.cp/demangle.exp: hp: __dt__2T1XTc__Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T1XT1t__Fv
+PASS: gdb.cp/demangle.exp: hp: __dl__2T1XT1t__SFPv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XTc__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XTc__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XT1t__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XT1t__Fv
+PASS: gdb.cp/demangle.exp: hp: __dl__2T1XTc__SFPv
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTd__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTi__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__6vectorXTd__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__6vectorXTi__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__9DListNodeXTR6RLabel__FR6RLabelP9DListNodeXTR6RLabel_T2
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiUP34__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXUP2701Td__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSP334__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN67__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSM__SCFPPd
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN67UP4000TRs__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN67TRdTFPv_i__Fi
+PASS: gdb.cp/demangle.exp: hp: X__6vectorXTiSN67TdTPvUP5TRs
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiA3foo__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiA3fooTPvA5Label__FiPPvT2
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN42A3foo__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFcPv_i__Fi_2
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFcPv_i__Fi_19
+PASS: gdb.cp/demangle.exp: hp: f__FicdPcPFci_v_34
+PASS: gdb.cp/demangle.exp: hp: spec__13Spec<%1,%1.*>XTiTPi_FPi
+PASS: gdb.cp/demangle.exp: hp: spec__16Spec<%1,%1.&,%1>XTiTRiTi_FPi
+PASS: gdb.cp/demangle.exp: hp: add__XTc_FcT1
+PASS: gdb.cp/demangle.exp: hp: add__XTcSP9A5label_FcPPlT1
+PASS: gdb.cp/demangle.exp: hp: add__XTPfTFPd_f_FcT1
+PASS: gdb.cp/demangle.exp: hp: unLink__12basic_stringXTcT18string_char_traitsXTc_T9allocator_Fv
+PASS: gdb.cp/demangle.exp: hp: _Utf390_1__1_9223372036854775807__9223372036854775
+Running ./gdb.cp/derivation.exp ...
+PASS: gdb.cp/derivation.exp: before run: ptype A::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis A::value_type
+PASS: gdb.cp/derivation.exp: before run: p (A::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype D::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis D::value_type
+PASS: gdb.cp/derivation.exp: before run: p (D::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype E::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis E::value_type
+PASS: gdb.cp/derivation.exp: before run: p (E::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype F::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis F::value_type
+PASS: gdb.cp/derivation.exp: before run: p (F::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype A2::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis A2::value_type
+PASS: gdb.cp/derivation.exp: before run: p (A2::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype D2::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis D2::value_type
+PASS: gdb.cp/derivation.exp: before run: p (D2::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype Z::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis Z::value_type
+PASS: gdb.cp/derivation.exp: before run: p (Z::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype ZZ::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis ZZ::value_type
+PASS: gdb.cp/derivation.exp: before run: p (ZZ::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype A::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis A::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (A::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype D::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis D::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (D::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype A2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis A2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (A2::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype D2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis D2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (D2::value_type) 0
+PASS: gdb.cp/derivation.exp: up from marker1
+PASS: gdb.cp/derivation.exp: print value of a_instance
+PASS: gdb.cp/derivation.exp: ptype a_instance
+PASS: gdb.cp/derivation.exp: print value of d_instance
+PASS: gdb.cp/derivation.exp: ptype d_instance
+PASS: gdb.cp/derivation.exp: print value of e_instance
+PASS: gdb.cp/derivation.exp: ptype e_instance
+PASS: gdb.cp/derivation.exp: print value of f_instance
+PASS: gdb.cp/derivation.exp: ptype f_instance
+PASS: gdb.cp/derivation.exp: ptype g_instance
+PASS: gdb.cp/derivation.exp: print value of d_instance.a
+PASS: gdb.cp/derivation.exp: print value of d_instance.aa
+PASS: gdb.cp/derivation.exp: print value of d_instance.b
+PASS: gdb.cp/derivation.exp: print value of d_instance.bb
+PASS: gdb.cp/derivation.exp: print value of d_instance.c
+PASS: gdb.cp/derivation.exp: print value of d_instance.cc
+PASS: gdb.cp/derivation.exp: print value of d_instance.d
+PASS: gdb.cp/derivation.exp: print value of d_instance.dd
+PASS: gdb.cp/derivation.exp: print value of g_instance.a
+PASS: gdb.cp/derivation.exp: print value of g_instance.b
+PASS: gdb.cp/derivation.exp: print value of g_instance.c
+PASS: gdb.cp/derivation.exp: print value of g_instance.afoo()
+PASS: gdb.cp/derivation.exp: re-selected 'main' frame after inferior call
+PASS: gdb.cp/derivation.exp: print value of g_instance.bfoo()
+PASS: gdb.cp/derivation.exp: print value of g_instance.cfoo()
+PASS: gdb.cp/derivation.exp: whatis c_instance.c
+PASS: gdb.cp/derivation.exp: ptype c_instance.c
+PASS: gdb.cp/derivation.exp: whatis g_instance.g
+PASS: gdb.cp/derivation.exp: ptype g_instance.g
+PASS: gdb.cp/derivation.exp: whatis a_instance.a
+PASS: gdb.cp/derivation.exp: ptype a_instance.a
+PASS: gdb.cp/derivation.exp: p (A::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis b_instance.b
+PASS: gdb.cp/derivation.exp: ptype b_instance.b
+PASS: gdb.cp/derivation.exp: whatis d_instance.d
+PASS: gdb.cp/derivation.exp: ptype d_instance.d
+PASS: gdb.cp/derivation.exp: p (D::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis e_instance.e
+PASS: gdb.cp/derivation.exp: ptype e_instance.e
+PASS: gdb.cp/derivation.exp: p (E::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis f_instance.f
+PASS: gdb.cp/derivation.exp: ptype f_instance.f
+PASS: gdb.cp/derivation.exp: p (F::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis z_instance.z
+PASS: gdb.cp/derivation.exp: ptype z_instance.z
+PASS: gdb.cp/derivation.exp: p (Z::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis zz_instance.zz
+PASS: gdb.cp/derivation.exp: ptype zz_instance.zz
+PASS: gdb.cp/derivation.exp: p (ZZ::value_type) 0
+PASS: gdb.cp/derivation.exp: ptype vderived
+PASS: gdb.cp/derivation.exp: print vderived
+PASS: gdb.cp/derivation.exp: ptype N::value_type
+PASS: gdb.cp/derivation.exp: ptype N::Derived::value_type
+PASS: gdb.cp/derivation.exp: ptype value_type
+Running ./gdb.cp/destrprint.exp ...
+PASS: gdb.cp/destrprint.exp: continue to breakpoint: Break here
+PASS: gdb.cp/destrprint.exp: go up to ~Derived
+PASS: gdb.cp/destrprint.exp: set print object on
+PASS: gdb.cp/destrprint.exp: print *this with print object = on
+PASS: gdb.cp/destrprint.exp: set print object off
+PASS: gdb.cp/destrprint.exp: print *this with print object = off
+Running ./gdb.cp/dispcxx.exp ...
+PASS: gdb.cp/dispcxx.exp: continue to breakpoint: here
+PASS: gdb.cp/dispcxx.exp: display k
+Running ./gdb.cp/exception.exp ...
+PASS: gdb.cp/exception.exp: catch catch (before inferior run)
+PASS: gdb.cp/exception.exp: catch throw (before inferior run)
+PASS: gdb.cp/exception.exp: info breakpoints (before inferior run)
+PASS: gdb.cp/exception.exp: Set temporary breakpoint at main
+PASS: gdb.cp/exception.exp: Run to main
+PASS: gdb.cp/exception.exp: info breakpoints (after inferior run)
+PASS: gdb.cp/exception.exp: break catcher
+PASS: gdb.cp/exception.exp: continue to first throw
+PASS: gdb.cp/exception.exp: backtrace after first throw
+PASS: gdb.cp/exception.exp: continue to first catch
+PASS: gdb.cp/exception.exp: backtrace after first catch
+PASS: gdb.cp/exception.exp: continue to catcher for the first time
+PASS: gdb.cp/exception.exp: continue to second throw
+PASS: gdb.cp/exception.exp: backtrace after second throw
+PASS: gdb.cp/exception.exp: continue to second catch
+PASS: gdb.cp/exception.exp: backtrace after second catch
+PASS: gdb.cp/exception.exp: continue to catcher for the second time
+Running ./gdb.cp/expand-psymtabs-cxx.exp ...
+PASS: gdb.cp/expand-psymtabs-cxx.exp: set language c++
+PASS: gdb.cp/expand-psymtabs-cxx.exp: before expand
+PASS: gdb.cp/expand-psymtabs-cxx.exp: force expand
+PASS: gdb.cp/expand-psymtabs-cxx.exp: after expand
+Running ./gdb.cp/expand-sals.exp ...
+PASS: gdb.cp/expand-sals.exp: continue to breakpoint: func
+PASS: gdb.cp/expand-sals.exp: up
+PASS: gdb.cp/expand-sals.exp: break
+PASS: gdb.cp/expand-sals.exp: continue to breakpoint: caller
+PASS: gdb.cp/expand-sals.exp: bt from A
+PASS: gdb.cp/expand-sals.exp: continue to breakpoint: next caller func
+Running ./gdb.cp/extern-c.exp ...
+PASS: gdb.cp/extern-c.exp: setting breakpoint at c_func
+PASS: gdb.cp/extern-c.exp: continue to breakpoint: c_func
+PASS: gdb.cp/extern-c.exp: initialize counter
+PASS: gdb.cp/extern-c.exp: rbreak c_funcs
+PASS: gdb.cp/extern-c.exp: command details for multiple breakpoints
+PASS: gdb.cp/extern-c.exp: set commands on multiple breakpoints
+PASS: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_1
+PASS: gdb.cp/extern-c.exp: verify counter at first breakpoint
+PASS: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_2
+PASS: gdb.cp/extern-c.exp: verify counter at second breakpoint
+Running ./gdb.cp/formatted-ref.exp ...
+PASS: gdb.cp/formatted-ref.exp: print/x s
+PASS: gdb.cp/formatted-ref.exp: print/x e
+PASS: gdb.cp/formatted-ref.exp: print/x i
+PASS: gdb.cp/formatted-ref.exp: print/x &s
+PASS: gdb.cp/formatted-ref.exp: print/x &e
+PASS: gdb.cp/formatted-ref.exp: print/x &i
+PASS: gdb.cp/formatted-ref.exp: print/x *(&(&s))
+PASS: gdb.cp/formatted-ref.exp: print/x *(&(&i))
+PASS: gdb.cp/formatted-ref.exp: print/x *(&(&e))
+PASS: gdb.cp/formatted-ref.exp: print s.x == 13
+Running ./gdb.cp/fpointer.exp ...
+PASS: gdb.cp/fpointer.exp: p p1()
+PASS: gdb.cp/fpointer.exp: p p2()
+PASS: gdb.cp/fpointer.exp: p p[0]()
+PASS: gdb.cp/fpointer.exp: p p[1]()
+PASS: gdb.cp/fpointer.exp: p p3('a')
+PASS: gdb.cp/fpointer.exp: p p4(1)
+Running ./gdb.cp/gdb1355.exp ...
+PASS: gdb.cp/gdb1355.exp: ptype s1
+PASS: gdb.cp/gdb1355.exp: print s1
+Running ./gdb.cp/gdb2384.exp ...
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/gdb2384.exp: print d1.meth ()
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/gdb2384.exp: gdb2384
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here (second)
+PASS: gdb.cp/gdb2384.exp: print d2.meth()
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here (second)
+PASS: gdb.cp/gdb2384.exp: gdb2384 (second)
+Running ./gdb.cp/gdb2495.exp ...
+PASS: gdb.cp/gdb2495.exp: p exceptions.no_throw_function()
+PASS: gdb.cp/gdb2495.exp: p exceptions.throw_function_with_handler()
+FAIL: gdb.cp/gdb2495.exp: Call a function that raises an exception without a handler.
+FAIL: gdb.cp/gdb2495.exp: bt after returning from a popped frame
+PASS: gdb.cp/gdb2495.exp: info breakpoints
+PASS: gdb.cp/gdb2495.exp: set unwinn-on-terminating-exception off
+PASS: gdb.cp/gdb2495.exp: Turn off unwind on terminating exception flag
+PASS: gdb.cp/gdb2495.exp: Call a function that raises an exception with unwinding off..
+PASS: gdb.cp/gdb2495.exp: set unwindonsignal on
+PASS: gdb.cp/gdb2495.exp: Turn on unwind on signal
+PASS: gdb.cp/gdb2495.exp: p exceptions.raise_signal(1)
+PASS: gdb.cp/gdb2495.exp: set unwindonsignal off
+PASS: gdb.cp/gdb2495.exp: Turn off unwind on signal
+PASS: gdb.cp/gdb2495.exp: p exceptions.raise_signal(1)
+Running ./gdb.cp/hang.exp ...
+PASS: gdb.cp/hang.exp: doesn't overwrite struct type
+PASS: gdb.cp/hang.exp: doesn't corrupt cv_type chain
+Running ./gdb.cp/infcall-dlopen.exp ...
+PASS: gdb.cp/infcall-dlopen.exp: test 0
+PASS: gdb.cp/infcall-dlopen.exp: test 0 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 0 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 1
+PASS: gdb.cp/infcall-dlopen.exp: test 1 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 1 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 2
+PASS: gdb.cp/infcall-dlopen.exp: test 2 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 2 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 3
+PASS: gdb.cp/infcall-dlopen.exp: test 3 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 3 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 4
+PASS: gdb.cp/infcall-dlopen.exp: test 4 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 4 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 5
+PASS: gdb.cp/infcall-dlopen.exp: test 5 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 5 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 6
+PASS: gdb.cp/infcall-dlopen.exp: test 6 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 6 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 7
+PASS: gdb.cp/infcall-dlopen.exp: test 7 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 7 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 8
+PASS: gdb.cp/infcall-dlopen.exp: test 8 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 8 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 9
+PASS: gdb.cp/infcall-dlopen.exp: test 9 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 9 stub 2
+Running ./gdb.cp/inherit.exp ...
+PASS: gdb.cp/inherit.exp: set width 0
+PASS: gdb.cp/inherit.exp: set language c++
+PASS: gdb.cp/inherit.exp: ptype A (FIXME)
+PASS: gdb.cp/inherit.exp: ptype class A (FIXME)
+PASS: gdb.cp/inherit.exp: ptype g_A (FIXME)
+PASS: gdb.cp/inherit.exp: ptype B
+PASS: gdb.cp/inherit.exp: ptype class B
+PASS: gdb.cp/inherit.exp: ptype g_B
+PASS: gdb.cp/inherit.exp: ptype C
+PASS: gdb.cp/inherit.exp: ptype class C
+PASS: gdb.cp/inherit.exp: ptype g_C
+PASS: gdb.cp/inherit.exp: ptype tagless struct
+PASS: gdb.cp/inherit.exp: ptype variable of type tagless struct
+PASS: gdb.cp/inherit.exp: ptype D
+PASS: gdb.cp/inherit.exp: ptype class D
+PASS: gdb.cp/inherit.exp: ptype g_D
+PASS: gdb.cp/inherit.exp: ptype E
+PASS: gdb.cp/inherit.exp: ptype class E
+PASS: gdb.cp/inherit.exp: ptype g_E
+PASS: gdb.cp/inherit.exp: ptype vA
+PASS: gdb.cp/inherit.exp: ptype class vA
+PASS: gdb.cp/inherit.exp: ptype g_vA
+PASS: gdb.cp/inherit.exp: ptype vB
+PASS: gdb.cp/inherit.exp: ptype class vB
+PASS: gdb.cp/inherit.exp: ptype g_vB
+PASS: gdb.cp/inherit.exp: ptype vC
+PASS: gdb.cp/inherit.exp: ptype class vC
+PASS: gdb.cp/inherit.exp: ptype g_vC
+PASS: gdb.cp/inherit.exp: ptype vD
+PASS: gdb.cp/inherit.exp: ptype class vD
+PASS: gdb.cp/inherit.exp: ptype g_vD
+PASS: gdb.cp/inherit.exp: ptype vE
+PASS: gdb.cp/inherit.exp: ptype class vE
+PASS: gdb.cp/inherit.exp: ptype g_vE
+PASS: gdb.cp/inherit.exp: print g_A.A::a
+PASS: gdb.cp/inherit.exp: print g_A.A::x
+PASS: gdb.cp/inherit.exp: print g_A.a
+PASS: gdb.cp/inherit.exp: print g_A.x
+PASS: gdb.cp/inherit.exp: print g_B.A::a
+PASS: gdb.cp/inherit.exp: print g_B.A::x
+PASS: gdb.cp/inherit.exp: print g_B.B::b
+PASS: gdb.cp/inherit.exp: print g_B.B::x
+PASS: gdb.cp/inherit.exp: print g_B.a
+PASS: gdb.cp/inherit.exp: print g_B.b
+PASS: gdb.cp/inherit.exp: print g_B.x
+PASS: gdb.cp/inherit.exp: print g_C.A::a
+PASS: gdb.cp/inherit.exp: print g_C.A::x
+PASS: gdb.cp/inherit.exp: print g_C.C::c
+PASS: gdb.cp/inherit.exp: print g_C.C::x
+PASS: gdb.cp/inherit.exp: print g_C.a
+PASS: gdb.cp/inherit.exp: print g_C.c
+PASS: gdb.cp/inherit.exp: print g_C.x
+PASS: gdb.cp/inherit.exp: print g_A
+PASS: gdb.cp/inherit.exp: print g_B
+PASS: gdb.cp/inherit.exp: print g_C
+PASS: gdb.cp/inherit.exp: print g_A.A::a
+PASS: gdb.cp/inherit.exp: print g_A.A::x
+PASS: gdb.cp/inherit.exp: print g_B.A::a
+PASS: gdb.cp/inherit.exp: print g_B.A::x
+PASS: gdb.cp/inherit.exp: print g_B.B::b
+PASS: gdb.cp/inherit.exp: print g_B.B::x
+PASS: gdb.cp/inherit.exp: print g_C.A::a
+PASS: gdb.cp/inherit.exp: print g_C.A::x
+PASS: gdb.cp/inherit.exp: print g_C.C::c
+PASS: gdb.cp/inherit.exp: print g_C.C::x
+PASS: gdb.cp/inherit.exp: print g_D.A::a
+PASS: gdb.cp/inherit.exp: print g_D.C::a
+PASS: gdb.cp/inherit.exp: print g_D.B::a
+PASS: gdb.cp/inherit.exp: print g_D.A::x
+PASS: gdb.cp/inherit.exp: print g_D.B::b
+PASS: gdb.cp/inherit.exp: print g_D.B::x
+PASS: gdb.cp/inherit.exp: print g_D.C::c
+PASS: gdb.cp/inherit.exp: print g_D.C::x
+PASS: gdb.cp/inherit.exp: print g_D.D::d
+PASS: gdb.cp/inherit.exp: print g_D.D::x
+PASS: gdb.cp/inherit.exp: print g_E.A::a
+PASS: gdb.cp/inherit.exp: print g_E.A::x
+PASS: gdb.cp/inherit.exp: print g_E.B::b
+PASS: gdb.cp/inherit.exp: print g_E.B::x
+PASS: gdb.cp/inherit.exp: print g_E.C::c
+PASS: gdb.cp/inherit.exp: print g_E.C::x
+PASS: gdb.cp/inherit.exp: print g_E.D::d
+PASS: gdb.cp/inherit.exp: print g_E.D::x
+PASS: gdb.cp/inherit.exp: print g_E.E::e
+PASS: gdb.cp/inherit.exp: print g_E.E::x
+PASS: gdb.cp/inherit.exp: ptype g_D.b
+PASS: gdb.cp/inherit.exp: ptype g_D.c
+PASS: gdb.cp/inherit.exp: ptype g_D.d
+PASS: gdb.cp/inherit.exp: ptype g_A.A::a
+PASS: gdb.cp/inherit.exp: ptype g_A.A::x
+PASS: gdb.cp/inherit.exp: ptype g_B.A::a
+PASS: gdb.cp/inherit.exp: ptype g_B.A::x
+PASS: gdb.cp/inherit.exp: ptype g_B.B::b
+PASS: gdb.cp/inherit.exp: ptype g_B.B::x
+PASS: gdb.cp/inherit.exp: ptype g_C.A::a
+PASS: gdb.cp/inherit.exp: ptype g_C.A::x
+PASS: gdb.cp/inherit.exp: ptype g_C.C::c
+PASS: gdb.cp/inherit.exp: ptype g_C.C::x
+PASS: gdb.cp/inherit.exp: ptype g_D.A::a
+PASS: gdb.cp/inherit.exp: ptype g_D.A::x
+PASS: gdb.cp/inherit.exp: ptype g_D.B::b
+PASS: gdb.cp/inherit.exp: ptype g_D.B::x
+PASS: gdb.cp/inherit.exp: ptype g_D.C::c
+PASS: gdb.cp/inherit.exp: ptype g_D.C::x
+PASS: gdb.cp/inherit.exp: ptype g_D.D::d
+PASS: gdb.cp/inherit.exp: ptype g_D.D::x
+PASS: gdb.cp/inherit.exp: ptype g_E.A::a
+PASS: gdb.cp/inherit.exp: ptype g_E.A::x
+PASS: gdb.cp/inherit.exp: ptype g_E.B::b
+PASS: gdb.cp/inherit.exp: ptype g_E.B::x
+PASS: gdb.cp/inherit.exp: ptype g_E.C::c
+PASS: gdb.cp/inherit.exp: ptype g_E.C::x
+PASS: gdb.cp/inherit.exp: ptype g_E.D::d
+PASS: gdb.cp/inherit.exp: ptype g_E.D::x
+PASS: gdb.cp/inherit.exp: ptype g_E.E::e
+PASS: gdb.cp/inherit.exp: ptype g_E.E::x
+PASS: gdb.cp/inherit.exp: print g_D
+PASS: gdb.cp/inherit.exp: print g_E
+PASS: gdb.cp/inherit.exp: print anonymous union member
+PASS: gdb.cp/inherit.exp: print variable of type anonymous union
+PASS: gdb.cp/inherit.exp: print type of anonymous union
+PASS: gdb.cp/inherit.exp: print g_vA.vA::va
+PASS: gdb.cp/inherit.exp: print g_vA.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vA.va
+PASS: gdb.cp/inherit.exp: print g_vA.vx
+PASS: gdb.cp/inherit.exp: print g_vB.vA::va
+PASS: gdb.cp/inherit.exp: print g_vB.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vB.vB::vb
+PASS: gdb.cp/inherit.exp: print g_vB.vB::vx
+PASS: gdb.cp/inherit.exp: print g_vB.va
+PASS: gdb.cp/inherit.exp: print g_vB.vb
+PASS: gdb.cp/inherit.exp: print g_vB.vx
+PASS: gdb.cp/inherit.exp: print g_vC.vA::va
+PASS: gdb.cp/inherit.exp: print g_vC.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vC.vC::vc
+PASS: gdb.cp/inherit.exp: print g_vC.vC::vx
+PASS: gdb.cp/inherit.exp: print g_vC.va
+PASS: gdb.cp/inherit.exp: print g_vC.vc
+PASS: gdb.cp/inherit.exp: print g_vC.vx
+PASS: gdb.cp/inherit.exp: print g_vA
+PASS: gdb.cp/inherit.exp: print g_vB (FIXME v3 vtbl ptr)
+PASS: gdb.cp/inherit.exp: print g_vC (FIXME v3 vtbl ptr)
+PASS: gdb.cp/inherit.exp: print g_vD.vA::va
+PASS: gdb.cp/inherit.exp: print g_vD.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vD.vB::vb
+PASS: gdb.cp/inherit.exp: print g_vD.vB::vx
+PASS: gdb.cp/inherit.exp: print g_vD.vC::vc
+PASS: gdb.cp/inherit.exp: print g_vD.vC::vx
+PASS: gdb.cp/inherit.exp: print g_vD.vD::vd
+PASS: gdb.cp/inherit.exp: print g_vD.vD::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vA::va
+PASS: gdb.cp/inherit.exp: print g_vE.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vB::vb
+PASS: gdb.cp/inherit.exp: print g_vE.vB::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vC::vc
+PASS: gdb.cp/inherit.exp: print g_vE.vC::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vD::vd
+PASS: gdb.cp/inherit.exp: print g_vE.vD::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vE::ve
+PASS: gdb.cp/inherit.exp: print g_vE.vE::vx
+PASS: gdb.cp/inherit.exp: print g_vD (FIXME v3 vtbl ptr)
+PASS: gdb.cp/inherit.exp: print g_vE (FIXME v3 vtbl ptr)
+Running ./gdb.cp/koenig.exp ...
+PASS: gdb.cp/koenig.exp: p first(c)
+PASS: gdb.cp/koenig.exp: p second(0,0,c,0,0)
+PASS: gdb.cp/koenig.exp: p entry (c)
+PASS: gdb.cp/koenig.exp: p first(0,c)
+PASS: gdb.cp/koenig.exp: p first(b.c)
+PASS: gdb.cp/koenig.exp: p foo(eo)
+PASS: gdb.cp/koenig.exp: p foo(eo, eo)
+PASS: gdb.cp/koenig.exp: p foo(eo, eo, 1)
+PASS: gdb.cp/koenig.exp: p foo(fo, eo)
+PASS: gdb.cp/koenig.exp: p foo(1 ,fo, eo)
+PASS: gdb.cp/koenig.exp: p foo(go, fo, eo)
+PASS: gdb.cp/koenig.exp: p fake(eo)
+PASS: gdb.cp/koenig.exp: p foo (fake)
+PASS: gdb.cp/koenig.exp: p foo(io)
+PASS: gdb.cp/koenig.exp: p foo(ix)
+PASS: gdb.cp/koenig.exp: p foo(ju)
+PASS: gdb.cp/koenig.exp: p foo(js)
+PASS: gdb.cp/koenig.exp: p foo(je)
+XFAIL: gdb.cp/koenig.exp: p foo(jab)
+PASS: gdb.cp/koenig.exp: p foo(jap)
+PASS: gdb.cp/koenig.exp: p foo(japp)
+PASS: gdb.cp/koenig.exp: p foo(jca)
+PASS: gdb.cp/koenig.exp: p foo(ko,1)
+PASS: gdb.cp/koenig.exp: p foo(ko,1.0f)
+XFAIL: gdb.cp/koenig.exp: p bar(ko,1)
+PASS: gdb.cp/koenig.exp: p foo(labo)
+PASS: gdb.cp/koenig.exp: p ma.foo('a')
+PASS: gdb.cp/koenig.exp: p foo(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::N::foo(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::FAKE::foo(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::N::fake(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::bar('a')
+PASS: gdb.cp/koenig.exp: p M::N::bar('a')
+PASS: gdb.cp/koenig.exp: p foo(ttoa, 'a')
+PASS: gdb.cp/koenig.exp: p foo (p_union)
+PASS: gdb.cp/koenig.exp: p q == 5
+PASS: gdb.cp/koenig.exp: p q == 5.0f
+PASS: gdb.cp/koenig.exp: p q != 5
+PASS: gdb.cp/koenig.exp: p q != 5.0f
+PASS: gdb.cp/koenig.exp: p q + 5.0f
+PASS: gdb.cp/koenig.exp: p q + 5
+PASS: gdb.cp/koenig.exp: p ++q
+PASS: gdb.cp/koenig.exp: p r.rfoo()
+PASS: gdb.cp/koenig.exp: continue to breakpoint: marker1
+PASS: gdb.cp/koenig.exp: p rfoo()
+PASS: gdb.cp/koenig.exp: p this->rfoo()
+Running ./gdb.cp/local.exp ...
+PASS: gdb.cp/local.exp: up from marker1
+PASS: gdb.cp/local.exp: ptype l
+PASS: gdb.cp/local.exp: ptype Local
+PASS: gdb.cp/local.exp: break marker2
+PASS: gdb.cp/local.exp: continuing to marker2
+PASS: gdb.cp/local.exp: up from marker2
+PASS: gdb.cp/local.exp: Local out of scope
+PASS: gdb.cp/local.exp: ptype InnerLocal (pattern 1)
+PASS: gdb.cp/local.exp: ptype NestedInnerLocal
+KFAIL: gdb.cp/local.exp: ptype InnerLocal::NestedInnerLocal (PRMS: gdb/482)
+Running ./gdb.cp/maint.exp ...
+PASS: gdb.cp/maint.exp: help maintenance cplus
+PASS: gdb.cp/maint.exp: help maint cp
+PASS: gdb.cp/maint.exp: maint cp
+PASS: gdb.cp/maint.exp: help maint cp first_component
+PASS: gdb.cp/maint.exp: help maint cp namespace
+PASS: gdb.cp/maint.exp: set complaints 1000
+PASS: gdb.cp/maint.exp: maint cp first_component foo
+PASS: gdb.cp/maint.exp: maint cp first_component operator<<
+PASS: gdb.cp/maint.exp: maint cp first_component operator>>
+PASS: gdb.cp/maint.exp: maint cp first_component operator ->
+PASS: gdb.cp/maint.exp: maint cp first_component operator()
+PASS: gdb.cp/maint.exp: maint cp first_component operator>
+PASS: gdb.cp/maint.exp: maint cp first_component operator<
+PASS: gdb.cp/maint.exp: maint cp first_component operator ->
+PASS: gdb.cp/maint.exp: maint cp first_component operator  ->
+PASS: gdb.cp/maint.exp: maint cp first_component foo()
+PASS: gdb.cp/maint.exp: maint cp first_component foo(int)
+PASS: gdb.cp/maint.exp: maint cp first_component foo(X::Y)
+PASS: gdb.cp/maint.exp: maint cp first_component foo(X::Y, A::B)
+PASS: gdb.cp/maint.exp: maint cp first_component foo(std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >)
+PASS: gdb.cp/maint.exp: maint cp first_component operator>(X::Y)
+PASS: gdb.cp/maint.exp: maint cp first_component int operator<< <char>()
+PASS: gdb.cp/maint.exp: maint cp first_component T<Cooperator>
+PASS: gdb.cp/maint.exp: maint cp first_component int foo<&(operator<<(C, C))>()
+PASS: gdb.cp/maint.exp: maint cp first_component int foo<&operator<<(C, C)>()
+PASS: gdb.cp/maint.exp: maint cp first_component int foo<operator<<(C, C)>()
+PASS: gdb.cp/maint.exp: maint cp first_component foo::bar
+PASS: gdb.cp/maint.exp: maint cp first_component foo::bar::baz
+PASS: gdb.cp/maint.exp: maint cp first_component C<A>::bar
+PASS: gdb.cp/maint.exp: maint cp first_component C<std::basic_streambuf<wchar_t,std::char_traits<wchar_t> > >::bar
+PASS: gdb.cp/maint.exp: maint cp first_component foo<
+PASS: gdb.cp/maint.exp: maint cp first_component foo(
+PASS: gdb.cp/maint.exp: maint cp first_component bool operator<<char>
+PASS: gdb.cp/maint.exp: maint cp namespace
+Running ./gdb.cp/mb-ctor.exp ...
+PASS: gdb.cp/mb-ctor.exp: set-breakpoint at ctor
+PASS: gdb.cp/mb-ctor.exp: set-breakpoint at dtor
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 1 v1
+PASS: gdb.cp/mb-ctor.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 1 v2
+PASS: gdb.cp/mb-ctor.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 3 v1
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 3 v2
+PASS: gdb.cp/mb-ctor.exp: run to exit
+Running ./gdb.cp/mb-inline.exp ...
+PASS: gdb.cp/mb-inline.exp: set breakpoint
+PASS: gdb.cp/mb-inline.exp: info break
+PASS: gdb.cp/mb-inline.exp: run to breakpoint
+PASS: gdb.cp/mb-inline.exp: run to breakpoint 2
+PASS: gdb.cp/mb-inline.exp: disabling location: disable
+PASS: gdb.cp/mb-inline.exp: disabling location: run to breakpoint
+PASS: gdb.cp/mb-inline.exp: disabled breakpoint 1.2
+PASS: gdb.cp/mb-inline.exp: set multi_line_foo breakpoint
+PASS: gdb.cp/mb-inline.exp: run to multi_line_foo breakpoint 4 afn
+PASS: gdb.cp/mb-inline.exp: run to multi_line_foo breakpoint 4 bfn
+Running ./gdb.cp/mb-templates.exp ...
+PASS: gdb.cp/mb-templates.exp: initial condition: set breakpoint
+PASS: gdb.cp/mb-templates.exp: initial condition: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: initial condition: run to breakpoint 2
+PASS: gdb.cp/mb-templates.exp: kill
+PASS: gdb.cp/mb-templates.exp: separate condition: set breakpoint
+PASS: gdb.cp/mb-templates.exp: separate condition: set condition
+PASS: gdb.cp/mb-templates.exp: separate condition: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: separate condition: run to breakpoint 2
+PASS: gdb.cp/mb-templates.exp: disabling location: disable
+PASS: gdb.cp/mb-templates.exp: disabling location: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: disabling location: enable
+PASS: gdb.cp/mb-templates.exp: disable breakpoint: disable
+PASS: gdb.cp/mb-templates.exp: disable breakpoint: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: instantiation: set breakpoint
+PASS: gdb.cp/mb-templates.exp: instantiation: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: instantiation: run to breakpoint 2
+PASS: gdb.cp/mb-templates.exp: set multi_line_foo breakpoint
+PASS: gdb.cp/mb-templates.exp: run to multi_line_foo breakpoint 2 <int>
+PASS: gdb.cp/mb-templates.exp: run to multi_line_foo breakpoint 2 <double>
+Running ./gdb.cp/m-data.exp ...
+PASS: gdb.cp/m-data.exp: continue to breakpoint: end of first constructors
+PASS: gdb.cp/m-data.exp: simple object, const bool
+PASS: gdb.cp/m-data.exp: simple object, const int
+PASS: gdb.cp/m-data.exp: simple object, long
+PASS: gdb.cp/m-data.exp: simple object, enum
+PASS: gdb.cp/m-data.exp: derived template object, base const bool
+PASS: gdb.cp/m-data.exp: derived template object, base const int
+PASS: gdb.cp/m-data.exp: derived template object, base long
+PASS: gdb.cp/m-data.exp: derived template object, base enum
+PASS: gdb.cp/m-data.exp: derived template object, derived enum
+PASS: gdb.cp/m-data.exp: template object, const bool
+PASS: gdb.cp/m-data.exp: template object, const int
+PASS: gdb.cp/m-data.exp: template object, long
+PASS: gdb.cp/m-data.exp: template object, base enum
+PASS: gdb.cp/m-data.exp: template object, derived enum
+PASS: gdb.cp/m-data.exp: continue to breakpoint: continue to shadow breakpoint
+PASS: gdb.cp/m-data.exp: shadowing member
+PASS: gdb.cp/m-data.exp: shadowed global variable
+Running ./gdb.cp/member-name.exp ...
+PASS: gdb.cp/member-name.exp: continue to breakpoint: continue to first breakpoint
+PASS: gdb.cp/member-name.exp: print C::x from first breakpoint
+PASS: gdb.cp/member-name.exp: print B::b from first breakpoint
+PASS: gdb.cp/member-name.exp: print inner::z from first breakpoint
+PASS: gdb.cp/member-name.exp: continue to breakpoint: continue to second breakpoint
+PASS: gdb.cp/member-name.exp: print C::x from second breakpoint
+PASS: gdb.cp/member-name.exp: print B::b from second breakpoint
+PASS: gdb.cp/member-name.exp: print inner::z from second breakpoint
+PASS: gdb.cp/member-name.exp: continue to breakpoint: continue to third breakpoint
+PASS: gdb.cp/member-name.exp: print Templ::y from third breakpoint
+Running ./gdb.cp/member-ptr.exp ...
+PASS: gdb.cp/member-ptr.exp: continue to breakpoint: continue to pmi = NULL
+PASS: gdb.cp/member-ptr.exp: ptype pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: print pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: set var pmi = &A::jj
+PASS: gdb.cp/member-ptr.exp: print pmi (A::jj)
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::jj)
+PASS: gdb.cp/member-ptr.exp: set var pmi = &A::j
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::j) (again)
+PASS: gdb.cp/member-ptr.exp: print a.*pmi = 33
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::j) (33)
+PASS: gdb.cp/member-ptr.exp: print a (j = 33)
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmi = 44
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmi (44)
+PASS: gdb.cp/member-ptr.exp: print a (j = 44)
+PASS: gdb.cp/member-ptr.exp: ptype a.*pmi
+PASS: gdb.cp/member-ptr.exp: print *pmi
+PASS: gdb.cp/member-ptr.exp: ptype *pmi
+PASS: gdb.cp/member-ptr.exp: print (int) pmi
+PASS: gdb.cp/member-ptr.exp: print ((int) pmi) == ((char *) &a.j - (char *) &a)
+PASS: gdb.cp/member-ptr.exp: ptype diamond_pfunc_ptr
+PASS: gdb.cp/member-ptr.exp: ptype diamond.*diamond_pfunc_ptr
+PASS: gdb.cp/member-ptr.exp: print diamond.*diamond_pfunc_ptr (20)
+PASS: gdb.cp/member-ptr.exp: print (diamond.*diamond_pfunc_ptr) (20)
+PASS: gdb.cp/member-ptr.exp: print diamond.func_ptr (20)
+PASS: gdb.cp/member-ptr.exp: ptype pmf
+PASS: gdb.cp/member-ptr.exp: print pmf
+PASS: gdb.cp/member-ptr.exp: ptype pmf_p
+PASS: gdb.cp/member-ptr.exp: gdb/NNNN
+PASS: gdb.cp/member-ptr.exp: print a.*pmf
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmf
+PASS: gdb.cp/member-ptr.exp: set var pmf = &A::foo
+PASS: gdb.cp/member-ptr.exp: print *pmf
+PASS: gdb.cp/member-ptr.exp: ptype *pmf
+PASS: gdb.cp/member-ptr.exp: print (a.*pmf)(3)
+PASS: gdb.cp/member-ptr.exp: ptype a.*pmf
+PASS: gdb.cp/member-ptr.exp: ptype (a.*pmf)(3)
+PASS: gdb.cp/member-ptr.exp: print diamond_pmi
+PASS: gdb.cp/member-ptr.exp: print diamond.*diamond_pmi
+PASS: gdb.cp/member-ptr.exp: print diamond.*left_pmf
+PASS: gdb.cp/member-ptr.exp: print diamond.*right_pmf
+PASS: gdb.cp/member-ptr.exp: print (diamond.*left_pmf) ()
+PASS: gdb.cp/member-ptr.exp: print (diamond.*right_pmf) ()
+PASS: gdb.cp/member-ptr.exp: print diamond.*left_vpmf
+PASS: gdb.cp/member-ptr.exp: print diamond.*right_vpmf
+PASS: gdb.cp/member-ptr.exp: print (diamond.*left_vpmf) ()
+PASS: gdb.cp/member-ptr.exp: print (diamond.*left_base_vpmf) ()
+PASS: gdb.cp/member-ptr.exp: print (diamond.*right_vpmf) ()
+PASS: gdb.cp/member-ptr.exp: print left_vpmf
+PASS: gdb.cp/member-ptr.exp: print right_vpmf
+PASS: gdb.cp/member-ptr.exp: print base_vpmf
+PASS: gdb.cp/member-ptr.exp: print diamond.*left_vpmf ()
+PASS: gdb.cp/member-ptr.exp: print null_pmi
+PASS: gdb.cp/member-ptr.exp: print null_pmi = &A::j
+PASS: gdb.cp/member-ptr.exp: print null_pmi = 0
+PASS: gdb.cp/member-ptr.exp: print null_pmf
+PASS: gdb.cp/member-ptr.exp: print null_pmf = &A::foo
+PASS: gdb.cp/member-ptr.exp: print null_pmf = 0
+Running ./gdb.cp/method2.exp ...
+PASS: gdb.cp/method2.exp: set multiple-symbols ask
+PASS: gdb.cp/method2.exp: setting language c
+PASS: gdb.cp/method2.exp: breaking in method (c)
+PASS: gdb.cp/method2.exp: setting language c++
+PASS: gdb.cp/method2.exp: breaking in method (c++)
+PASS: gdb.cp/method2.exp: continue until exit at continue to end
+Running ./gdb.cp/method.exp ...
+PASS: gdb.cp/method.exp: break A::foo
+PASS: gdb.cp/method.exp: continue to A::foo
+PASS: gdb.cp/method.exp: print x in A::foo
+PASS: gdb.cp/method.exp: print this in A::foo
+PASS: gdb.cp/method.exp: break A::bar
+PASS: gdb.cp/method.exp: continue to A::bar
+PASS: gdb.cp/method.exp: print x in A::bar
+PASS: gdb.cp/method.exp: print this in A::bar
+PASS: gdb.cp/method.exp: break 21
+PASS: gdb.cp/method.exp: continue to 21
+PASS: gdb.cp/method.exp: print data_ in funk::getFunky
+PASS: gdb.cp/method.exp: print this in funk::getFunky
+PASS: gdb.cp/method.exp: print res in funk::getFunky
+PASS: gdb.cp/method.exp: ptype A
+PASS: gdb.cp/method.exp: finish program
+Running ./gdb.cp/meth-typedefs.exp ...
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list test(_BAR_&)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(_BAR_&)'
+PASS: gdb.cp/meth-typedefs.exp: break test(_BAR_&)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(_BAR_&)'
+PASS: gdb.cp/meth-typedefs.exp: list test(a::b::BAR&)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(a::b::BAR&)'
+PASS: gdb.cp/meth-typedefs.exp: break test(a::b::BAR&)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(a::b::BAR&)'
+PASS: gdb.cp/meth-typedefs.exp: list test(a::b::c::d::bar&)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(a::b::c::d::bar&)'
+PASS: gdb.cp/meth-typedefs.exp: break test(a::b::c::d::bar&)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(a::b::c::d::bar&)'
+Running ./gdb.cp/minsym-fallback.exp ...
+PASS: gdb.cp/minsym-fallback.exp: set breakpoint pending off
+PASS: gdb.cp/minsym-fallback.exp: break C::f()
+PASS: gdb.cp/minsym-fallback.exp: break C::operator()()
+Running ./gdb.cp/misc.exp ...
+PASS: gdb.cp/misc.exp: deduced language is C++, before full symbols
+PASS: gdb.cp/misc.exp: deduced language is C++, after full symbols
+PASS: gdb.cp/misc.exp: print s.a for foo struct (known gcc 2.7.2 and earlier bug)
+PASS: gdb.cp/misc.exp: print as bool (setup)
+PASS: gdb.cp/misc.exp: print as bool (print 1 == 1)
+PASS: gdb.cp/misc.exp: print as bool (print 1 == 2)
+PASS: gdb.cp/misc.exp: print a bool var
+PASS: gdb.cp/misc.exp: set a bool var (setup)
+PASS: gdb.cp/misc.exp: set a bool var (print v_bool)
+PASS: gdb.cp/misc.exp: print a bool array
+PASS: gdb.cp/misc.exp: set a bool array elem (setup)
+PASS: gdb.cp/misc.exp: set a bool array elem (print v_bool_array)
+PASS: gdb.cp/misc.exp: print true
+PASS: gdb.cp/misc.exp: print false
+PASS: gdb.cp/misc.exp: 1 + true
+PASS: gdb.cp/misc.exp: 3 + false
+PASS: gdb.cp/misc.exp: 1 < 2 < 3
+PASS: gdb.cp/misc.exp: 2 < 1 > 4
+PASS: gdb.cp/misc.exp: (bool)43
+PASS: gdb.cp/misc.exp: (bool)0
+PASS: gdb.cp/misc.exp: (bool)17.93
+PASS: gdb.cp/misc.exp: (bool)0.0
+PASS: gdb.cp/misc.exp: (int)true
+PASS: gdb.cp/misc.exp: (int)false
+Running ./gdb.cp/m-static.exp ...
+PASS: gdb.cp/m-static.exp: continue to breakpoint: end of constructors
+PASS: gdb.cp/m-static.exp: simple object, static const int, accessing via 'class::method::variable
+PASS: gdb.cp/m-static.exp: simple object, static const bool
+PASS: gdb.cp/m-static.exp: simple object, static const int
+PASS: gdb.cp/m-static.exp: simple object, static long
+PASS: gdb.cp/m-static.exp: simple object, static enum
+FAIL: gdb.cp/m-static.exp: simple object instance, print quoted destructor
+FAIL: gdb.cp/m-static.exp: simple object class, ptype quoted destructor
+PASS: gdb.cp/m-static.exp: derived template object, base static const bool
+PASS: gdb.cp/m-static.exp: derived template object, base static const int
+PASS: gdb.cp/m-static.exp: derived template object, base static long
+PASS: gdb.cp/m-static.exp: derived template object, base static enum
+PASS: gdb.cp/m-static.exp: derived template object, static enum
+PASS: gdb.cp/m-static.exp: template object, static const bool
+PASS: gdb.cp/m-static.exp: template object, static const int
+PASS: gdb.cp/m-static.exp: template object, static long
+PASS: gdb.cp/m-static.exp: template object, static enum
+PASS: gdb.cp/m-static.exp: template object, static derived enum
+PASS: gdb.cp/m-static.exp: static const int initialized elsewhere
+PASS: gdb.cp/m-static.exp: static const int initialized nowhere
+PASS: gdb.cp/m-static.exp: static const int initialized in class definition
+PASS: gdb.cp/m-static.exp: static const float initialized in class definition
+PASS: gdb.cp/m-static.exp: info variable everywhere
+PASS: gdb.cp/m-static.exp: step
+PASS: gdb.cp/m-static.exp: print svar
+Running ./gdb.cp/namespace-enum.exp ...
+PASS: gdb.cp/namespace-enum.exp: print foo::B::B_B
+PASS: gdb.cp/namespace-enum.exp: print foo::B_B
+PASS: gdb.cp/namespace-enum.exp: print A_A
+Running ./gdb.cp/namespace.exp ...
+PASS: gdb.cp/namespace.exp: show lang
+PASS: gdb.cp/namespace.exp: up from marker1
+PASS: gdb.cp/namespace.exp: print 'AAA::c'
+PASS: gdb.cp/namespace.exp: print AAA::c
+PASS: gdb.cp/namespace.exp: print ina
+PASS: gdb.cp/namespace.exp: ptype ina
+PASS: gdb.cp/namespace.exp: info func xyzq
+PASS: gdb.cp/namespace.exp: print 'AAA::xyzq'('x')
+PASS: gdb.cp/namespace.exp: print AAA::xyzq('x')
+PASS: gdb.cp/namespace.exp: break AAA::xyzq
+PASS: gdb.cp/namespace.exp: break ::ensureOtherRefs
+PASS: gdb.cp/namespace.exp: print 'BBB::CCC::xyzq'('x')
+PASS: gdb.cp/namespace.exp: print BBB::CCC::xyzq('x')
+PASS: gdb.cp/namespace.exp: break BBB::CCC::xyzq
+PASS: gdb.cp/namespace.exp: break ::BBB::CCC::xyzq
+PASS: gdb.cp/namespace.exp: print 'BBB::Class::xyzq'
+PASS: gdb.cp/namespace.exp: print BBB::Class::xyzq
+PASS: gdb.cp/namespace.exp: break BBB::Class::xyzq
+PASS: gdb.cp/namespace.exp: whatis C::cOtherFileType
+PASS: gdb.cp/namespace.exp: whatis ::C::cOtherFileType
+PASS: gdb.cp/namespace.exp: whatis C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: whatis ::C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: print C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: print ::C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: whatis C::OtherFileClass::cOtherFileClassType
+PASS: gdb.cp/namespace.exp: whatis ::C::OtherFileClass::cOtherFileClassType
+PASS: gdb.cp/namespace.exp: print C::OtherFileClass::cOtherFileClassVar
+PASS: gdb.cp/namespace.exp: print ::cOtherFileClassVar
+PASS: gdb.cp/namespace.exp: print ::C::OtherFileClass::cOtherFileClassVar
+PASS: gdb.cp/namespace.exp: print c
+PASS: gdb.cp/namespace.exp: print cc
+PASS: gdb.cp/namespace.exp: print 'C::cc'
+PASS: gdb.cp/namespace.exp: print C::cc
+PASS: gdb.cp/namespace.exp: print cd
+PASS: gdb.cp/namespace.exp: print C::D::cd
+PASS: gdb.cp/namespace.exp: print 'E::cde'
+PASS: gdb.cp/namespace.exp: print E::cde
+PASS: gdb.cp/namespace.exp: print shadow
+PASS: gdb.cp/namespace.exp: print E::ce
+PASS: gdb.cp/namespace.exp: ptype C
+PASS: gdb.cp/namespace.exp: ptype E
+PASS: gdb.cp/namespace.exp: ptype CClass
+PASS: gdb.cp/namespace.exp: ptype CClass::NestedClass
+PASS: gdb.cp/namespace.exp: ptype NestedClass
+PASS: gdb.cp/namespace.exp: ptype ::C::CClass
+PASS: gdb.cp/namespace.exp: ptype ::C::CClass::NestedClass
+PASS: gdb.cp/namespace.exp: ptype ::C::NestedClass
+PASS: gdb.cp/namespace.exp: ptype C::CClass
+PASS: gdb.cp/namespace.exp: ptype C::CClass::NestedClass
+PASS: gdb.cp/namespace.exp: ptype C::NestedClass
+PASS: gdb.cp/namespace.exp: print cOtherFile
+PASS: gdb.cp/namespace.exp: ptype OtherFileClass
+PASS: gdb.cp/namespace.exp: ptype ::C::OtherFileClass
+PASS: gdb.cp/namespace.exp: ptype C::OtherFileClass
+PASS: gdb.cp/namespace.exp: ptype OtherFileClass typedefs
+PASS: gdb.cp/namespace.exp: ptype ::C::OtherFileClass typedefs
+PASS: gdb.cp/namespace.exp: print cX
+PASS: gdb.cp/namespace.exp: print 'F::cXf'
+PASS: gdb.cp/namespace.exp: print F::cXf
+PASS: gdb.cp/namespace.exp: print F::cXfX
+PASS: gdb.cp/namespace.exp: print X
+PASS: gdb.cp/namespace.exp: print 'G::Xg'
+PASS: gdb.cp/namespace.exp: print G::Xg
+PASS: gdb.cp/namespace.exp: print G::XgX
+PASS: gdb.cp/namespace.exp: print cXOtherFile
+PASS: gdb.cp/namespace.exp: print XOtherFile
+PASS: gdb.cp/namespace.exp: print AAA::ALPHA
+PASS: gdb.cp/namespace.exp: whatis ::C::CClass::NestedClass
+PASS: gdb.cp/namespace.exp: whatis ::C::CClass::NestedClass *
+Running ./gdb.cp/namespace-nested-import.exp ...
+PASS: gdb.cp/namespace-nested-import.exp: print C::x
+Running ./gdb.cp/nextoverthrow.exp ...
+UNSUPPORTED: gdb.cp/nextoverthrow.exp: nextoverthrow.exp could not find _Unwind_DebugHook
+Running ./gdb.cp/no-dmgl-verbose.exp ...
+PASS: gdb.cp/no-dmgl-verbose.exp: set breakpoint pending off
+PASS: gdb.cp/no-dmgl-verbose.exp: DMGL_VERBOSE-demangled f(std::string) is not defined
+Running ./gdb.cp/noparam.exp ...
+PASS: gdb.cp/noparam.exp: p C::m (int)
+Running ./gdb.cp/nsdecl.exp ...
+PASS: gdb.cp/nsdecl.exp: print fakex
+Running ./gdb.cp/nsimport.exp ...
+PASS: gdb.cp/nsimport.exp: print x
+PASS: gdb.cp/nsimport.exp: print xx
+PASS: gdb.cp/nsimport.exp: print xxx
+Running ./gdb.cp/nsnested.exp ...
+PASS: gdb.cp/nsnested.exp: print ab
+PASS: gdb.cp/nsnested.exp: continue to breakpoint: C::first
+PASS: gdb.cp/nsnested.exp: print ab
+PASS: gdb.cp/nsnested.exp: print C::D::ab
+PASS: gdb.cp/nsnested.exp: continue to breakpoint: C::D::second
+PASS: gdb.cp/nsnested.exp: print ab
+Running ./gdb.cp/nsnoimports.exp ...
+PASS: gdb.cp/nsnoimports.exp: print A::_a
+PASS: gdb.cp/nsnoimports.exp: print A::B::ab
+PASS: gdb.cp/nsnoimports.exp: print A::B::C::abc
+PASS: gdb.cp/nsnoimports.exp: print _a
+PASS: gdb.cp/nsnoimports.exp: print ab
+PASS: gdb.cp/nsnoimports.exp: print abc
+PASS: gdb.cp/nsnoimports.exp: continue to breakpoint: A::B::first
+PASS: gdb.cp/nsnoimports.exp: print A::_a
+PASS: gdb.cp/nsnoimports.exp: print A::B::ab
+PASS: gdb.cp/nsnoimports.exp: print A::B::C::abc
+PASS: gdb.cp/nsnoimports.exp: print _a
+PASS: gdb.cp/nsnoimports.exp: print ab
+PASS: gdb.cp/nsnoimports.exp: print C::abc
+PASS: gdb.cp/nsnoimports.exp: print abc
+PASS: gdb.cp/nsnoimports.exp: continue to breakpoint: A::B::C::second
+PASS: gdb.cp/nsnoimports.exp: print A::_a
+PASS: gdb.cp/nsnoimports.exp: print A::B::ab
+PASS: gdb.cp/nsnoimports.exp: print A::B::C::abc
+PASS: gdb.cp/nsnoimports.exp: print _a
+PASS: gdb.cp/nsnoimports.exp: print ab
+PASS: gdb.cp/nsnoimports.exp: print abc
+Running ./gdb.cp/nsrecurs.exp ...
+PASS: gdb.cp/nsrecurs.exp: print ax
+PASS: gdb.cp/nsrecurs.exp: print dx
+PASS: gdb.cp/nsrecurs.exp: print xx
+KFAIL: gdb.cp/nsrecurs.exp: ptype G::GF (PRMS: gdb/10541)
+KFAIL: gdb.cp/nsrecurs.exp: print G::GF::FE::ex (PRMS: gdb/10541)
+Running ./gdb.cp/nsstress.exp ...
+PASS: gdb.cp/nsstress.exp: print y
+Running ./gdb.cp/nsusing.exp ...
+PASS: gdb.cp/nsusing.exp: print _a
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker3
+PASS: gdb.cp/nsusing.exp: Print _a without import
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker1 stop
+PASS: gdb.cp/nsusing.exp: print _a in a nested scope
+PASS: gdb.cp/nsusing.exp: print cc
+PASS: gdb.cp/nsusing.exp: print B::_a
+PASS: gdb.cp/nsusing.exp: print _a in namespace alias scope
+PASS: gdb.cp/nsusing.exp: print x in namespace alias scope
+PASS: gdb.cp/nsusing.exp: Print _a without import
+PASS: gdb.cp/nsusing.exp: print dx
+PASS: gdb.cp/nsusing.exp: print efx
+PASS: gdb.cp/nsusing.exp: print ghx
+PASS: gdb.cp/nsusing.exp: print jx
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: K::marker9
+PASS: gdb.cp/nsusing.exp: print jx
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker10 stop
+PASS: gdb.cp/nsusing.exp: print x (from M::x)
+Running ./gdb.cp/operator.exp ...
+PASS: gdb.cp/operator.exp: global operator
+PASS: gdb.cp/operator.exp: global operator overload
+PASS: gdb.cp/operator.exp: ADL operator
+PASS: gdb.cp/operator.exp: ADL operator overload
+PASS: gdb.cp/operator.exp: Fully qualified explicit operator call
+PASS: gdb.cp/operator.exp: anonymous namespace operator
+PASS: gdb.cp/operator.exp: anonymous namespace operator overload
+PASS: gdb.cp/operator.exp: anonymous namespace operator overload float
+PASS: gdb.cp/operator.exp: imported operator
+PASS: gdb.cp/operator.exp: imported operator overload
+PASS: gdb.cp/operator.exp: imported operator overload float
+PASS: gdb.cp/operator.exp: member operator
+PASS: gdb.cp/operator.exp: member operator overload
+PASS: gdb.cp/operator.exp: namespace alias
+PASS: gdb.cp/operator.exp: imported declaration
+PASS: gdb.cp/operator.exp: p l == 1
+PASS: gdb.cp/operator.exp: p x[0]
+Running ./gdb.cp/oranking.exp ...
+PASS: gdb.cp/oranking.exp: continue to breakpoint: end of main
+KFAIL: gdb.cp/oranking.exp: p foo0(b) (PRMS: gdb/12096)
+PASS: gdb.cp/oranking.exp: p test1()
+PASS: gdb.cp/oranking.exp: p foo1(b)
+PASS: gdb.cp/oranking.exp: p test2()
+KFAIL: gdb.cp/oranking.exp: p foo2(b) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test3()
+PASS: gdb.cp/oranking.exp: p foo3(1.0f)
+PASS: gdb.cp/oranking.exp: p test4()
+KFAIL: gdb.cp/oranking.exp: p foo4(&a) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test5()
+PASS: gdb.cp/oranking.exp: p foo5(c)
+PASS: gdb.cp/oranking.exp: p test6()
+PASS: gdb.cp/oranking.exp: p foo6(bp)
+PASS: gdb.cp/oranking.exp: p test7()
+PASS: gdb.cp/oranking.exp: p foo7(cp)
+PASS: gdb.cp/oranking.exp: p test8()
+PASS: gdb.cp/oranking.exp: p foo8(co)
+PASS: gdb.cp/oranking.exp: p test9()
+PASS: gdb.cp/oranking.exp: p foo9(co)
+PASS: gdb.cp/oranking.exp: p test10()
+KFAIL: gdb.cp/oranking.exp: p foo10(amp) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test101()
+KFAIL: gdb.cp/oranking.exp: p foo101("abc") (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test11()
+KFAIL: gdb.cp/oranking.exp: p foo11(d) (PRMS: gdb/12096)
+PASS: gdb.cp/oranking.exp: p test12()
+PASS: gdb.cp/oranking.exp: p foo12(1)
+PASS: gdb.cp/oranking.exp: p test13()
+KFAIL: gdb.cp/oranking.exp: p foo13(c) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test14()
+KFAIL: gdb.cp/oranking.exp: p foo14(e) (PRMS: gdb/12096)
+Running ./gdb.cp/overload-const.exp ...
+PASS: gdb.cp/overload-const.exp: set language c++
+PASS: gdb.cp/overload-const.exp: setting breakpoint at myclass::func
+Running ./gdb.cp/overload.exp ...
+PASS: gdb.cp/overload.exp: up from marker1
+PASS: gdb.cp/overload.exp: print foo_instance1
+PASS: gdb.cp/overload.exp: ptype foo_instance1 (shorter match)
+PASS: gdb.cp/overload.exp: print foo_instance2
+PASS: gdb.cp/overload.exp: print foo_instance3
+PASS: gdb.cp/overload.exp: print call overloaded func 1 arg
+PASS: gdb.cp/overload.exp: re-selected 'main' frame after inferior call
+PASS: gdb.cp/overload.exp: print call overloaded func 2 args
+PASS: gdb.cp/overload.exp: print call overloaded func 3 args
+PASS: gdb.cp/overload.exp: print call overloaded func 4 args
+PASS: gdb.cp/overload.exp: print call overloaded func 5 args
+PASS: gdb.cp/overload.exp: print call overloaded func 6 args
+PASS: gdb.cp/overload.exp: print call overloaded func 7 args
+PASS: gdb.cp/overload.exp: print call overloaded func 8 args
+PASS: gdb.cp/overload.exp: print call overloaded func 9 args
+PASS: gdb.cp/overload.exp: print call overloaded func 10 args
+PASS: gdb.cp/overload.exp: print call overloaded func 11 args
+PASS: gdb.cp/overload.exp: print call overloaded func void arg
+PASS: gdb.cp/overload.exp: print call overloaded func char arg
+PASS: gdb.cp/overload.exp: print call overloaded func signed char arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned char arg
+PASS: gdb.cp/overload.exp: print call overloaded func short arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned short arg
+PASS: gdb.cp/overload.exp: print call overloaded func int arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned int arg
+PASS: gdb.cp/overload.exp: print call overloaded func long arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned long arg
+PASS: gdb.cp/overload.exp: print call overloaded func float arg
+PASS: gdb.cp/overload.exp: print call overloaded func double arg
+PASS: gdb.cp/overload.exp: print call overloaded func int\* arg
+PASS: gdb.cp/overload.exp: print call overloaded func char\* arg
+PASS: gdb.cp/overload.exp: print bar(a)
+PASS: gdb.cp/overload.exp: print bar(b)
+PASS: gdb.cp/overload.exp: print bar(c)
+PASS: gdb.cp/overload.exp: print bar(d)
+PASS: gdb.cp/overload.exp: list overloaded function with no args
+PASS: gdb.cp/overload.exp: list overloaded function with int arg
+PASS: gdb.cp/overload.exp: list overloaded function with function ptr args
+PASS: gdb.cp/overload.exp: list overloaded function with function ptr args - quotes around argument
+PASS: gdb.cp/overload.exp: list overload.cc:intToChar
+PASS: gdb.cp/overload.exp: list overload.cc:intToChar(char)
+PASS: gdb.cp/overload.exp: list overload.cc:'intToChar(char)'
+PASS: gdb.cp/overload.exp: list 'overload.cc:intToChar(char)'
+PASS: gdb.cp/overload.exp: list 'overload.cc':intToChar(char)
+PASS: gdb.cp/overload.exp: list 'overload.cc':'intToChar(char)'
+PASS: gdb.cp/overload.exp: list overload.cc:foo::overloadfnarg(int)
+PASS: gdb.cp/overload.exp: list overload.cc:'foo::overloadfnarg(int)'
+PASS: gdb.cp/overload.exp: print overloadNamespace(1)
+PASS: gdb.cp/overload.exp: print overloadNamespace('a')
+PASS: gdb.cp/overload.exp: print overloadNamespace(dummyInstance)
+PASS: gdb.cp/overload.exp: print K::staticoverload ()
+PASS: gdb.cp/overload.exp: print K::staticoverload (2)
+PASS: gdb.cp/overload.exp: print K::staticoverload (2, 3)
+PASS: gdb.cp/overload.exp: print N::nsoverload ()
+PASS: gdb.cp/overload.exp: print N::nsoverload (2)
+PASS: gdb.cp/overload.exp: print N::nsoverload (2, 3)
+PASS: gdb.cp/overload.exp: print overloadNamespace(1) in XXX
+PASS: gdb.cp/overload.exp: print overloadNamespace('a') in XXX
+PASS: gdb.cp/overload.exp: print overloadNamespace(dummyInstance) in XXX
+PASS: gdb.cp/overload.exp: print intToChar(1)
+PASS: gdb.cp/overload.exp: print foo::overload1arg
+PASS: gdb.cp/overload.exp: print foo::overload1arg(char***)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(void)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(char)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(signed char)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned char)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(short)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned short)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(int)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned int)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(long)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned long)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(float)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(double)
+Running ./gdb.cp/ovldbreak.exp ...
+PASS: gdb.cp/ovldbreak.exp: detect void
+PASS: gdb.cp/ovldbreak.exp: detect char
+PASS: gdb.cp/ovldbreak.exp: detect signed_char
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_char
+PASS: gdb.cp/ovldbreak.exp: detect short_int
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_short_int
+PASS: gdb.cp/ovldbreak.exp: detect int
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_int
+PASS: gdb.cp/ovldbreak.exp: detect long_int
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_long_int
+PASS: gdb.cp/ovldbreak.exp: detect float
+PASS: gdb.cp/ovldbreak.exp: detect double
+PASS: gdb.cp/ovldbreak.exp: set multiple-symbols ask
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 2
+PASS: gdb.cp/ovldbreak.exp: set bp 2 on foo::overload1arg 2 line 107
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 3
+PASS: gdb.cp/ovldbreak.exp: set bp 3 on foo::overload1arg 3 line 110
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 4
+PASS: gdb.cp/ovldbreak.exp: set bp 4 on foo::overload1arg 4 line 140
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 5
+PASS: gdb.cp/ovldbreak.exp: set bp 5 on foo::overload1arg 5 line 137
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 6
+PASS: gdb.cp/ovldbreak.exp: set bp 6 on foo::overload1arg 6 line 125
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 7
+PASS: gdb.cp/ovldbreak.exp: set bp 7 on foo::overload1arg 7 line 131
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 8
+PASS: gdb.cp/ovldbreak.exp: set bp 8 on foo::overload1arg 8 line 119
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 9
+PASS: gdb.cp/ovldbreak.exp: set bp 9 on foo::overload1arg 9 line 113
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 10
+PASS: gdb.cp/ovldbreak.exp: set bp 10 on foo::overload1arg 10 line 116
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 11
+PASS: gdb.cp/ovldbreak.exp: set bp 11 on foo::overload1arg 11 line 128
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 12
+PASS: gdb.cp/ovldbreak.exp: set bp 12 on foo::overload1arg 12 line 134
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 13
+PASS: gdb.cp/ovldbreak.exp: set bp 13 on foo::overload1arg 13 line 122
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after setting one-by-one)
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice cancel
+PASS: gdb.cp/ovldbreak.exp: set bp on overload1arg canceled
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after cancel)
+PASS: gdb.cp/ovldbreak.exp: delete all breakpoints
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after delete)
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice all
+PASS: gdb.cp/ovldbreak.exp: set bp on overload1arg all
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after setting on all)
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : void
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : char
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : signed_char
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_char
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : short_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_short_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : long_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_long_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : float
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : double
+PASS: gdb.cp/ovldbreak.exp: set multiple-symbols cancel
+PASS: gdb.cp/ovldbreak.exp: break foo::foofunc
+PASS: gdb.cp/ovldbreak.exp: set multiple-symbols all
+PASS: gdb.cp/ovldbreak.exp: break foo::foofunc
+PASS: gdb.cp/ovldbreak.exp: continue until exit at finish program
+Running ./gdb.cp/ovsrch.exp ...
+PASS: gdb.cp/ovsrch.exp: break A::stop_here
+PASS: gdb.cp/ovsrch.exp: break 'A::stop_here'
+PASS: gdb.cp/ovsrch.exp: continue to breakpoint: stop_here
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (char*)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (char*)  const'
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (char*)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (char*)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (char*)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (char*)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (void)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (void)  const'
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (int)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (int)  const'
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (int)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (int)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (int)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (int)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::outer::hibob if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::B::stop_here_too
+PASS: gdb.cp/ovsrch.exp: break 'A::B::stop_here_too'
+PASS: gdb.cp/ovsrch.exp: continue to breakpoint: stop_here_too
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (char*)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (char*)  const'
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (char*)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (char*)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (char*)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (char*)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (void)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (void)  const'
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (int)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (int)  const'
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (int)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (int)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (int)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (int)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::hibob if (a_param == 3)
+Running ./gdb.cp/paren-type.exp ...
+PASS: gdb.cp/paren-type.exp: set breakpoint pending off
+PASS: gdb.cp/paren-type.exp: break C::f(long)
+PASS: gdb.cp/paren-type.exp: break C::f(short)
+Running ./gdb.cp/parse-lang.exp ...
+PASS: gdb.cp/parse-lang.exp: breakpoint hit
+Running ./gdb.cp/pass-by-ref.exp ...
+PASS: gdb.cp/pass-by-ref.exp: call function in obj
+PASS: gdb.cp/pass-by-ref.exp: call function in derived
+PASS: gdb.cp/pass-by-ref.exp: call function in container
+Running ./gdb.cp/pr-1023.exp ...
+PASS: gdb.cp/pr-1023.exp: break myClass::performBlocking
+PASS: gdb.cp/pr-1023.exp: break myClass::performUnblocking
+Running ./gdb.cp/pr10687.exp ...
+PASS: gdb.cp/pr10687.exp: continue to breakpoint: marker
+PASS: gdb.cp/pr10687.exp: p a
+Running ./gdb.cp/pr10728.exp ...
+PASS: gdb.cp/pr10728.exp: continue to breakpoint: marker 1
+PASS: gdb.cp/pr10728.exp: print x->y2 - x->y1
+Running ./gdb.cp/pr12028.exp ...
+PASS: gdb.cp/pr12028.exp: p D::foo(b)
+Running ./gdb.cp/pr-1210.exp ...
+PASS: gdb.cp/pr-1210.exp: step past initialization
+PASS: gdb.cp/pr-1210.exp: print *obj
+PASS: gdb.cp/pr-1210.exp: print obj->myB
+Running ./gdb.cp/pr-574.exp ...
+PASS: gdb.cp/pr-574.exp: continue to breakpoint: end of constructors
+PASS: gdb.cp/pr-574.exp: PR gdb/574
+Running ./gdb.cp/pr9067.exp ...
+PASS: gdb.cp/pr9067.exp: print b
+Running ./gdb.cp/pr9167.exp ...
+PASS: gdb.cp/pr9167.exp: continue to breakpoint: marker
+PASS: gdb.cp/pr9167.exp: p b
+Running ./gdb.cp/pr9631.exp ...
+PASS: gdb.cp/pr9631.exp: continue to breakpoint: after bar tender is initialized
+PASS: gdb.cp/pr9631.exp: print tender
+Running ./gdb.cp/printmethod.exp ...
+PASS: gdb.cp/printmethod.exp: continue to breakpoint: end of constructors
+PASS: gdb.cp/printmethod.exp: print virtual method.
+PASS: gdb.cp/printmethod.exp: print nonvirtual method.
+Running ./gdb.cp/psmang.exp ...
+PASS: gdb.cp/psmang.exp: break s::method1
+PASS: gdb.cp/psmang.exp: break s::method2
+Running ./gdb.cp/psymtab-parameter.exp ...
+PASS: gdb.cp/psymtab-parameter.exp: set language c++
+PASS: gdb.cp/psymtab-parameter.exp: maintenance info symtabs
+PASS: gdb.cp/psymtab-parameter.exp: complete p 'func<short>(
+Running ./gdb.cp/ptype-cv-cp.exp ...
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_const_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_const_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_const_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_const_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_volatile_const_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_volatile_const_my_int
+Running ./gdb.cp/ptype-flags.exp ...
+PASS: gdb.cp/ptype-flags.exp: basic test
+PASS: gdb.cp/ptype-flags.exp: no methods
+PASS: gdb.cp/ptype-flags.exp: no typedefs
+PASS: gdb.cp/ptype-flags.exp: no methods or typedefs
+PASS: gdb.cp/ptype-flags.exp: raw
+PASS: gdb.cp/ptype-flags.exp: raw no methods
+PASS: gdb.cp/ptype-flags.exp: raw no typedefs
+PASS: gdb.cp/ptype-flags.exp: raw no methods or typedefs
+PASS: gdb.cp/ptype-flags.exp: set print type methods off
+PASS: gdb.cp/ptype-flags.exp: basic test, default methods off
+PASS: gdb.cp/ptype-flags.exp: methods, default methods off
+PASS: gdb.cp/ptype-flags.exp: no typedefs, default methods off
+PASS: gdb.cp/ptype-flags.exp: methods, no typedefs, default methods off
+PASS: gdb.cp/ptype-flags.exp: set print type typedefs off
+PASS: gdb.cp/ptype-flags.exp: basic test, default methods+typedefs off
+PASS: gdb.cp/ptype-flags.exp: methods, default methods+typedefs off
+PASS: gdb.cp/ptype-flags.exp: typedefs, default methods+typedefs off
+PASS: gdb.cp/ptype-flags.exp: methods typedefs, default methods+typedefs off
+Running ./gdb.cp/punctuator.exp ...
+PASS: gdb.cp/punctuator.exp: set lang c++
+PASS: gdb.cp/punctuator.exp: print (0x5a5a bitand 0xaaaa) == (0x5a5a & 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a bitor 0xaaaa) == (0x5a5a | 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a xor 0xaaaa) == (0x5a5a ^ 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a and 0xaaaa) == (0x5a5a && 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a or 0xaaaa) == (0x5a5a || 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (not not 0xaaaa) == (!!0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (compl 0xaaaa) == (~0xaaaa)
+PASS: gdb.cp/punctuator.exp: set $u 1
+PASS: gdb.cp/punctuator.exp: set $v 1
+PASS: gdb.cp/punctuator.exp: print ($u not_eq 0xaaaa) == ($v != 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print ($u and_eq 0xaaaa) == ($v &= 0xaaaa)
+PASS: gdb.cp/punctuator.exp: set $u 2
+PASS: gdb.cp/punctuator.exp: set $v 2
+PASS: gdb.cp/punctuator.exp: print ($u or_eq 0xaaaa) == ($v |= 0xaaaa)
+PASS: gdb.cp/punctuator.exp: set $u 3
+PASS: gdb.cp/punctuator.exp: set $v 3
+PASS: gdb.cp/punctuator.exp: print ($u xor_eq 0xaaaa) == ($v ^= 0xaaaa)
+Running ./gdb.cp/readnow-language.exp ...
+PASS: gdb.cp/readnow-language.exp: show language
+Running ./gdb.cp/ref-params.exp ...
+PASS: gdb.cp/ref-params.exp: print value of a Child in main
+PASS: gdb.cp/ref-params.exp: print value of f1 on Child in main
+PASS: gdb.cp/ref-params.exp: print value of f2 on Child in main
+PASS: gdb.cp/ref-params.exp: print value of f1 on (Child&) in main
+PASS: gdb.cp/ref-params.exp: print value of f2 on (Child&) in main
+PASS: gdb.cp/ref-params.exp: print value of Child& in f2
+PASS: gdb.cp/ref-params.exp: print value of f1 on Child& in f2
+PASS: gdb.cp/ref-params.exp: print value of Parent& in f1
+PASS: gdb.cp/ref-params.exp: print f1(MQ)
+PASS: gdb.cp/ref-params.exp: print mf1(MQ)
+PASS: gdb.cp/ref-params.exp: print mf2(MQ)
+PASS: gdb.cp/ref-params.exp: print f1(MQR)
+PASS: gdb.cp/ref-params.exp: print mf1(MQR)
+PASS: gdb.cp/ref-params.exp: print mf2(MQR)
+Running ./gdb.cp/ref-types.exp ...
+PASS: gdb.cp/ref-types.exp: up from marker1 1
+PASS: gdb.cp/ref-types.exp: print value of s
+PASS: gdb.cp/ref-types.exp: ptype s
+PASS: gdb.cp/ref-types.exp: print value of ps
+PASS: gdb.cp/ref-types.exp: ptype ps
+PASS: gdb.cp/ref-types.exp: print value of as[0]
+PASS: gdb.cp/ref-types.exp: ptype as
+PASS: gdb.cp/ref-types.exp: print value of as[1]
+PASS: gdb.cp/ref-types.exp: print value of as[2]
+PASS: gdb.cp/ref-types.exp: print value of as[3]
+PASS: gdb.cp/ref-types.exp: print value of rs
+PASS: gdb.cp/ref-types.exp: ptype rs
+PASS: gdb.cp/ref-types.exp: print value of *rps
+PASS: gdb.cp/ref-types.exp: examine value at rps
+PASS: gdb.cp/ref-types.exp: ptype rps
+PASS: gdb.cp/ref-types.exp: print value of ras[0]
+PASS: gdb.cp/ref-types.exp: ptype ras
+PASS: gdb.cp/ref-types.exp: print value of ras[1]
+PASS: gdb.cp/ref-types.exp: print value of ras[2]
+PASS: gdb.cp/ref-types.exp: print value of ras[3]
+PASS: gdb.cp/ref-types.exp: up from f
+PASS: gdb.cp/ref-types.exp: print value of C
+PASS: gdb.cp/ref-types.exp: ptype C
+PASS: gdb.cp/ref-types.exp: print value of UC
+PASS: gdb.cp/ref-types.exp: ptype UC
+PASS: gdb.cp/ref-types.exp: print value of S
+PASS: gdb.cp/ref-types.exp: ptype S
+PASS: gdb.cp/ref-types.exp: print value of US
+PASS: gdb.cp/ref-types.exp: ptype US
+PASS: gdb.cp/ref-types.exp: print value of I
+PASS: gdb.cp/ref-types.exp: ptype I
+PASS: gdb.cp/ref-types.exp: print value of UI
+PASS: gdb.cp/ref-types.exp: ptype UI
+PASS: gdb.cp/ref-types.exp: print value of L
+PASS: gdb.cp/ref-types.exp: ptype L
+PASS: gdb.cp/ref-types.exp: print value of UL
+PASS: gdb.cp/ref-types.exp: ptype UL
+PASS: gdb.cp/ref-types.exp: print value of F
+PASS: gdb.cp/ref-types.exp: ptype F
+PASS: gdb.cp/ref-types.exp: print value of D
+PASS: gdb.cp/ref-types.exp: ptype D
+PASS: gdb.cp/ref-types.exp: ptype rC
+PASS: gdb.cp/ref-types.exp: ptype rUC
+PASS: gdb.cp/ref-types.exp: ptype rS
+PASS: gdb.cp/ref-types.exp: ptype rUS
+PASS: gdb.cp/ref-types.exp: ptype rI
+PASS: gdb.cp/ref-types.exp: ptype rUI
+PASS: gdb.cp/ref-types.exp: ptype rL
+PASS: gdb.cp/ref-types.exp: ptype rUL
+PASS: gdb.cp/ref-types.exp: ptype rF
+PASS: gdb.cp/ref-types.exp: ptype rD
+PASS: gdb.cp/ref-types.exp: print value of rC
+PASS: gdb.cp/ref-types.exp: print value of rUC
+PASS: gdb.cp/ref-types.exp: print value of rS
+PASS: gdb.cp/ref-types.exp: print value of rUS
+PASS: gdb.cp/ref-types.exp: print value of rI
+PASS: gdb.cp/ref-types.exp: print value of UI
+PASS: gdb.cp/ref-types.exp: print value of rL
+PASS: gdb.cp/ref-types.exp: print value of rUL
+PASS: gdb.cp/ref-types.exp: print value of rF
+PASS: gdb.cp/ref-types.exp: print value of rD
+Running ./gdb.cp/re-set-overloaded.exp ...
+PASS: gdb.cp/re-set-overloaded.exp: set breakpoint pending yes
+PASS: gdb.cp/re-set-overloaded.exp: break C::C
+PASS: gdb.cp/re-set-overloaded.exp: set variable $brk = $bpnum
+PASS: gdb.cp/re-set-overloaded.exp: start
+PASS: gdb.cp/re-set-overloaded.exp: breakpoint resolved
+Running ./gdb.cp/rtti.exp ...
+PASS: gdb.cp/rtti.exp: continue to breakpoint: end of constructors in main
+PASS: gdb.cp/rtti.exp: print *e1
+PASS: gdb.cp/rtti.exp: print *e2
+PASS: gdb.cp/rtti.exp: continue to breakpoint: end of constructors in func
+PASS: gdb.cp/rtti.exp: print *obj
+PASS: gdb.cp/rtti.exp: continue to breakpoint: end of constructors in func3
+PASS: gdb.cp/rtti.exp: print *obj3
+Running ./gdb.cp/shadow.exp ...
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker1
+PASS: gdb.cp/shadow.exp: Print class x shadowing global x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker2
+PASS: gdb.cp/shadow.exp: Print local x shadowing class x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker3
+PASS: gdb.cp/shadow.exp: Print inner scope x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker4
+PASS: gdb.cp/shadow.exp: Print local x not namespace x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker5
+PASS: gdb.cp/shadow.exp: Print imported namespace x
+Running ./gdb.cp/smartp.exp ...
+PASS: gdb.cp/smartp.exp: continue to breakpoint: end of main
+PASS: gdb.cp/smartp.exp: p mp->foo()
+PASS: gdb.cp/smartp.exp: p mtp->foo()
+PASS: gdb.cp/smartp.exp: p mt1.foo()
+PASS: gdb.cp/smartp.exp: p mt4p.a
+PASS: gdb.cp/smartp.exp: p mt4->a
+PASS: gdb.cp/smartp.exp: p sp1->foo()
+PASS: gdb.cp/smartp.exp: p sp2->foo()
+PASS: gdb.cp/smartp.exp: p sp3->foo(1)
+PASS: gdb.cp/smartp.exp: p sp3->foo('a')
+PASS: gdb.cp/smartp.exp: p sp4->a
+PASS: gdb.cp/smartp.exp: p sp4->b
+PASS: gdb.cp/smartp.exp: p mt4p->a
+PASS: gdb.cp/smartp.exp: p mt4p->b
+PASS: gdb.cp/smartp.exp: p mt4->fake
+PASS: gdb.cp/smartp.exp: p mt4->fake()
+PASS: gdb.cp/smartp.exp: p b->foo()
+PASS: gdb.cp/smartp.exp: p c->foo()
+PASS: gdb.cp/smartp.exp: p c->inta
+KFAIL: gdb.cp/smartp.exp: p c2->inta (PRMS: gdb/11606)
+Running ./gdb.cp/static-method.exp ...
+PASS: gdb.cp/static-method.exp: info addr A::func()
+PASS: gdb.cp/static-method.exp: list static-method.cc:xxx::(anonymous namespace)::func
+PASS: gdb.cp/static-method.exp: list 'static-method.cc:xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: list 'static-method.cc':'xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: list static-method.cc:'xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: continue to xxx::(anonymous namespace)::func
+PASS: gdb.cp/static-method.exp: continue to 'xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: list static-method.cc:xxx::(anonymous namespace)::A::func
+PASS: gdb.cp/static-method.exp: list 'static-method.cc:xxx::(anonymous namespace)::A::func'
+PASS: gdb.cp/static-method.exp: list 'static-method.cc':'xxx::(anonymous namespace)::A::func'
+PASS: gdb.cp/static-method.exp: list static-method.cc:'xxx::(anonymous namespace)::A::func'
+PASS: gdb.cp/static-method.exp: continue to xxx::(anonymous namespace)::A::func
+PASS: gdb.cp/static-method.exp: continue to 'xxx::(anonymous namespace)::A::func'
+Running ./gdb.cp/static-print-quit.exp ...
+PASS: gdb.cp/static-print-quit.exp: set width 80
+PASS: gdb.cp/static-print-quit.exp: set height 2
+PASS: gdb.cp/static-print-quit.exp: print c - <return>
+PASS: gdb.cp/static-print-quit.exp: print c - q <return>
+PASS: gdb.cp/static-print-quit.exp: print c - to quit
+PASS: gdb.cp/static-print-quit.exp: q
+PASS: gdb.cp/static-print-quit.exp: set pagination off
+PASS: gdb.cp/static-print-quit.exp: first print
+PASS: gdb.cp/static-print-quit.exp: second print
+Running ./gdb.cp/temargs.exp ...
+PASS: gdb.cp/temargs.exp: set first breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set second breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set third breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set fourth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set fifth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set sixth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to first breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in base_m
+PASS: gdb.cp/temargs.exp: test value of I in base_m
+PASS: gdb.cp/temargs.exp: test value of P in base_m
+PASS: gdb.cp/temargs.exp: test value of MP in base_m
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to second breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in inner_m
+PASS: gdb.cp/temargs.exp: test value of I in inner_m
+PASS: gdb.cp/temargs.exp: test value of P in inner_m
+PASS: gdb.cp/temargs.exp: test value of MP in inner_m
+PASS: gdb.cp/temargs.exp: test type of Z in inner_m
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to third breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in func
+PASS: gdb.cp/temargs.exp: test value of I in func
+PASS: gdb.cp/temargs.exp: test value of P in func
+PASS: gdb.cp/temargs.exp: test value of MP in func
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to fourth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in templ_m
+PASS: gdb.cp/temargs.exp: test value of I in templ_m
+PASS: gdb.cp/temargs.exp: test value of P in templ_m
+PASS: gdb.cp/temargs.exp: test value of MP in templ_m
+PASS: gdb.cp/temargs.exp: test type of Q in templ_m
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to fifth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of F in k2_m
+XFAIL: gdb.cp/temargs.exp: test value of F in k2_m (PRMS gcc/49366)
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to sixth breakpoint for temargs
+XFAIL: gdb.cp/temargs.exp: test type of F in k3_m (PRMS gcc/49546)
+XFAIL: gdb.cp/temargs.exp: test value of F in k3_m (PRMS gcc/49546)
+Running ./gdb.cp/templates.exp ...
+PASS: gdb.cp/templates.exp: set multiple-symbols ask
+KFAIL: gdb.cp/templates.exp: ptype T5<int> (PRMS: gdb/8218)
+KFAIL: gdb.cp/templates.exp: ptype T5<int> (PRMS: gdb/8218)
+PASS: gdb.cp/templates.exp: constructor breakpoint
+PASS: gdb.cp/templates.exp: destructor breakpoint
+PASS: gdb.cp/templates.exp: value method breakpoint
+PASS: gdb.cp/templates.exp: breakpoint on a line with no real code
+PASS: gdb.cp/templates.exp: print method of template typedef
+XFAIL: gdb.cp/templates.exp: print destructor of template typedef (PRMS gcc/51668)
+PASS: gdb.cp/templates.exp: verify GCC PR debug/51668
+PASS: gdb.cp/templates.exp: ptype empty
+PASS: gdb.cp/templates.exp: ptype arg
+PASS: gdb.cp/templates.exp: print t5i.value()
+PASS: gdb.cp/templates.exp: b 770
+PASS: gdb.cp/templates.exp: continue to line 770
+PASS: gdb.cp/templates.exp: print fint
+PASS: gdb.cp/templates.exp: print fvpchar
+PASS: gdb.cp/templates.exp: ptype Foo
+PASS: gdb.cp/templates.exp: ptype fint
+PASS: gdb.cp/templates.exp: ptype fchar
+KFAIL: gdb.cp/templates.exp: ptype fvpchar (PRMS: gdb/1512)
+PASS: gdb.cp/templates.exp: print Foo<volatile char *>::foo
+PASS: gdb.cp/templates.exp: print Foo<volatile char*>::foo
+PASS: gdb.cp/templates.exp: ptype Bar
+PASS: gdb.cp/templates.exp: ptype bint
+PASS: gdb.cp/templates.exp: ptype bint2
+PASS: gdb.cp/templates.exp: ptype Baz
+PASS: gdb.cp/templates.exp: ptype bazint
+PASS: gdb.cp/templates.exp: ptype bazint2
+PASS: gdb.cp/templates.exp: ptype Qux
+PASS: gdb.cp/templates.exp: ptype quxint
+PASS: gdb.cp/templates.exp: ptype Spec
+PASS: gdb.cp/templates.exp: ptype siip
+PASS: gdb.cp/templates.exp: ptype Garply<int>
+PASS: gdb.cp/templates.exp: ptype Garply<Garply<char> >
+PASS: gdb.cp/templates.exp: print Garply<Garply<char> >::garply
+PASS: gdb.cp/templates.exp: break Garply<Garply<char> >::garply
+Running ./gdb.cp/try_catch.exp ...
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 1-throw
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 1-catch
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-start
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-next
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-throw
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-catch
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 3-throw
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 3-catch
+Running ./gdb.cp/typedef-operator.exp ...
+PASS: gdb.cp/typedef-operator.exp: set language c++
+PASS: gdb.cp/typedef-operator.exp: test crash
+PASS: gdb.cp/typedef-operator.exp: test typedef
+Running ./gdb.cp/userdef.exp ...
+PASS: gdb.cp/userdef.exp: break marker1
+PASS: gdb.cp/userdef.exp: continue to marker1
+PASS: gdb.cp/userdef.exp: up from marker1
+PASS: gdb.cp/userdef.exp: print one + two
+PASS: gdb.cp/userdef.exp: re-selected 'main' frame after inferior call
+PASS: gdb.cp/userdef.exp: print one - two
+PASS: gdb.cp/userdef.exp: print one * two
+PASS: gdb.cp/userdef.exp: print one / two
+PASS: gdb.cp/userdef.exp: print one % two
+PASS: gdb.cp/userdef.exp: print one && two
+PASS: gdb.cp/userdef.exp: print one || two
+PASS: gdb.cp/userdef.exp: print one & two
+PASS: gdb.cp/userdef.exp: print one | two
+PASS: gdb.cp/userdef.exp: print one ^ two
+PASS: gdb.cp/userdef.exp: print one < two
+PASS: gdb.cp/userdef.exp: print one <= two
+PASS: gdb.cp/userdef.exp: print one > two
+PASS: gdb.cp/userdef.exp: print one >= two
+PASS: gdb.cp/userdef.exp: print one == two
+PASS: gdb.cp/userdef.exp: print one.operator== (two)
+PASS: gdb.cp/userdef.exp: print one != two
+PASS: gdb.cp/userdef.exp: print one << 31
+PASS: gdb.cp/userdef.exp: print one >> 31
+PASS: gdb.cp/userdef.exp: print !one
+PASS: gdb.cp/userdef.exp: print +one
+PASS: gdb.cp/userdef.exp: print ~one
+PASS: gdb.cp/userdef.exp: print -one
+PASS: gdb.cp/userdef.exp: print one++
+PASS: gdb.cp/userdef.exp: print ++one
+PASS: gdb.cp/userdef.exp: print one--
+PASS: gdb.cp/userdef.exp: print --one
+PASS: gdb.cp/userdef.exp: print one += 7
+PASS: gdb.cp/userdef.exp: print two = one
+PASS: gdb.cp/userdef.exp: break A2::operator+
+PASS: gdb.cp/userdef.exp: break A2::operator +
+PASS: gdb.cp/userdef.exp: print c
+PASS: gdb.cp/userdef.exp: print *c
+PASS: gdb.cp/userdef.exp: print &*c
+PASS: gdb.cp/userdef.exp: ptype &*c
+PASS: gdb.cp/userdef.exp: print operator== (mem1, mem2)
+PASS: gdb.cp/userdef.exp: print operator== (mem1, mem1)
+Running ./gdb.cp/using-crash.exp ...
+PASS: gdb.cp/using-crash.exp: reload file
+Running ./gdb.cp/virtbase.exp ...
+PASS: gdb.cp/virtbase.exp: continue to breakpoint: first breakpoint
+PASS: gdb.cp/virtbase.exp: print *this
+PASS: gdb.cp/virtbase.exp: print x in get_y
+PASS: gdb.cp/virtbase.exp: continue to breakpoint: second breakpoint
+PASS: gdb.cp/virtbase.exp: print x in get_z
+PASS: gdb.cp/virtbase.exp: continue to breakpoint: third breakpoint
+PASS: gdb.cp/virtbase.exp: print *(D *) e
+PASS: gdb.cp/virtbase.exp: set print object on
+PASS: gdb.cp/virtbase.exp: print/x b->mA
+PASS: gdb.cp/virtbase.exp: print rtti_data
+PASS: gdb.cp/virtbase.exp: print pointer to virtual base at non-zero offset of larger object
+PASS: gdb.cp/virtbase.exp: print same pointer from history value
+PASS: gdb.cp/virtbase.exp: print whole pointed-to object, starting from the virtual base pointer
+Running ./gdb.cp/virtfunc2.exp ...
+PASS: gdb.cp/virtfunc2.exp: continue to breakpoint: marker 1
+PASS: gdb.cp/virtfunc2.exp: print o.do_print()
+PASS: gdb.cp/virtfunc2.exp: print o.do_print3()
+PASS: gdb.cp/virtfunc2.exp: print o2.do_print()
+PASS: gdb.cp/virtfunc2.exp: print o2.do_print2()
+PASS: gdb.cp/virtfunc2.exp: print o2.do_print3()
+PASS: gdb.cp/virtfunc2.exp: print o
+Running ./gdb.cp/virtfunc.exp ...
+PASS: gdb.cp/virtfunc.exp: ptype VA
+PASS: gdb.cp/virtfunc.exp: ptype VB
+PASS: gdb.cp/virtfunc.exp: ptype V
+PASS: gdb.cp/virtfunc.exp: ptype A
+PASS: gdb.cp/virtfunc.exp: ptype B
+PASS: gdb.cp/virtfunc.exp: ptype C
+PASS: gdb.cp/virtfunc.exp: ptype AD
+PASS: gdb.cp/virtfunc.exp: ptype D
+PASS: gdb.cp/virtfunc.exp: ptype E
+PASS: gdb.cp/virtfunc.exp: ptype dd
+PASS: gdb.cp/virtfunc.exp: ptype ppd
+PASS: gdb.cp/virtfunc.exp: ptype pAd
+PASS: gdb.cp/virtfunc.exp: ptype a
+PASS: gdb.cp/virtfunc.exp: ptype b
+PASS: gdb.cp/virtfunc.exp: ptype c
+PASS: gdb.cp/virtfunc.exp: ptype d
+PASS: gdb.cp/virtfunc.exp: ptype e
+PASS: gdb.cp/virtfunc.exp: ptype v
+PASS: gdb.cp/virtfunc.exp: ptype vb
+PASS: gdb.cp/virtfunc.exp: ptype pAa
+PASS: gdb.cp/virtfunc.exp: ptype pAe
+PASS: gdb.cp/virtfunc.exp: ptype pBe
+PASS: gdb.cp/virtfunc.exp: ptype pDd
+PASS: gdb.cp/virtfunc.exp: ptype pDe
+PASS: gdb.cp/virtfunc.exp: ptype pVa
+PASS: gdb.cp/virtfunc.exp: ptype pVv
+PASS: gdb.cp/virtfunc.exp: ptype pVe
+PASS: gdb.cp/virtfunc.exp: ptype pVd
+PASS: gdb.cp/virtfunc.exp: ptype pADe
+PASS: gdb.cp/virtfunc.exp: ptype pEe
+PASS: gdb.cp/virtfunc.exp: ptype pVB
+PASS: gdb.cp/virtfunc.exp: info vtbl a
+PASS: gdb.cp/virtfunc.exp: info vtbl b
+PASS: gdb.cp/virtfunc.exp: info vtbl c
+PASS: gdb.cp/virtfunc.exp: info vtbl d
+PASS: gdb.cp/virtfunc.exp: info vtbl e
+PASS: gdb.cp/virtfunc.exp: info vtbl pEe
+PASS: gdb.cp/virtfunc.exp: info vtbl
+PASS: gdb.cp/virtfunc.exp: info vtbl va
+PASS: gdb.cp/virtfunc.exp: info vtbl all_count
+PASS: gdb.cp/virtfunc.exp: print pAe->f()
+PASS: gdb.cp/virtfunc.exp: print pAa->f()
+PASS: gdb.cp/virtfunc.exp: print pDe->vg()
+PASS: gdb.cp/virtfunc.exp: print pADe->vg()
+PASS: gdb.cp/virtfunc.exp: print pDd->vg()
+PASS: gdb.cp/virtfunc.exp: print pEe->vvb()
+PASS: gdb.cp/virtfunc.exp: print pVB->vvb()
+PASS: gdb.cp/virtfunc.exp: print pBe->vvb()
+PASS: gdb.cp/virtfunc.exp: print pDe->vvb()
+PASS: gdb.cp/virtfunc.exp: print pEe->vd()
+PASS: gdb.cp/virtfunc.exp: print pEe->fvb()
+KFAIL: gdb.cp/virtfunc.exp: print pEe->D::vg() (PRMS: gdb/1064)
+PASS: gdb.cp/virtfunc.exp: next to pAa->f call
+PASS: gdb.cp/virtfunc.exp: next to pDe->vg call
+PASS: gdb.cp/virtfunc.exp: step through thunk into E::vg
+Running ./gdb.disasm/am33.exp ...
+Running ./gdb.disasm/h8300s.exp ...
+Running ./gdb.disasm/hppa.exp ...
+Running ./gdb.disasm/mn10300.exp ...
+Running ./gdb.disasm/sh3.exp ...
+Running ./gdb.disasm/t01_mov.exp ...
+Running ./gdb.disasm/t02_mova.exp ...
+Running ./gdb.disasm/t03_add.exp ...
+Running ./gdb.disasm/t04_sub.exp ...
+Running ./gdb.disasm/t05_cmp.exp ...
+Running ./gdb.disasm/t06_ari2.exp ...
+Running ./gdb.disasm/t07_ari3.exp ...
+Running ./gdb.disasm/t08_or.exp ...
+Running ./gdb.disasm/t09_xor.exp ...
+Running ./gdb.disasm/t10_and.exp ...
+Running ./gdb.disasm/t11_logs.exp ...
+Running ./gdb.disasm/t12_bit.exp ...
+Running ./gdb.disasm/t13_otr.exp ...
+Running ./gdb.dwarf2/callframecfa.exp ...
+PASS: gdb.dwarf2/callframecfa.exp: set breakpoint for call-frame-cfa
+PASS: gdb.dwarf2/callframecfa.exp: continue to breakpoint: continue to breakpoint for call-frame-cfa
+PASS: gdb.dwarf2/callframecfa.exp: set display for call-frame-cfa
+PASS: gdb.dwarf2/callframecfa.exp: step 1 for call-frame-cfa
+PASS: gdb.dwarf2/callframecfa.exp: step 2 for call-frame-cfa
+PASS: gdb.dwarf2/callframecfa.exp: step 3 for call-frame-cfa
+PASS: gdb.dwarf2/callframecfa.exp: step 4 for call-frame-cfa
+Running ./gdb.dwarf2/clztest.exp ...
+Running ./gdb.dwarf2/dup-psym.exp ...
+PASS: gdb.dwarf2/dup-psym.exp: info sources should contain only one reference to file1.txt
+Running ./gdb.dwarf2/dw2-ada-ffffffff.exp ...
+PASS: gdb.dwarf2/dw2-ada-ffffffff.exp: p sizeof (t)
+PASS: gdb.dwarf2/dw2-ada-ffffffff.exp: ptype t
+Running ./gdb.dwarf2/dw2-anon-mptr.exp ...
+PASS: gdb.dwarf2/dw2-anon-mptr.exp: set cp-abi gnu-v3
+PASS: gdb.dwarf2/dw2-anon-mptr.exp: show cp-abi
+PASS: gdb.dwarf2/dw2-anon-mptr.exp: ptype crash
+Running ./gdb.dwarf2/dw2-anonymous-func.exp ...
+PASS: gdb.dwarf2/dw2-anonymous-func.exp: list file1.txt
+Running ./gdb.dwarf2/dw2-bad-parameter-type.exp ...
+PASS: gdb.dwarf2/dw2-bad-parameter-type.exp: ptype f
+PASS: gdb.dwarf2/dw2-bad-parameter-type.exp: ptype f
+PASS: gdb.dwarf2/dw2-bad-parameter-type.exp: is alive
+Running ./gdb.dwarf2/dw2-basic.exp ...
+PASS: gdb.dwarf2/dw2-basic.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-basic.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-basic.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-canonicalize-type.exp ...
+PASS: gdb.dwarf2/dw2-canonicalize-type.exp: ptype f
+Running ./gdb.dwarf2/dw2-case-insensitive.exp ...
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: show case-sensitive
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive on
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: set case-sensitive off
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive off
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: p fuNC_lang
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: p fuNC_symtab
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: setting breakpoint at fuNC_lang
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: setting breakpoint at fuNC_symtab
+Running ./gdb.dwarf2/dw2-common-block.exp ...
+Running ./gdb.dwarf2/dw2-compdir-oldgcc.exp ...
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: list gcc42
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc42
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: list gcc43
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc43
+Running ./gdb.dwarf2/dw2-compressed.exp ...
+PASS: gdb.dwarf2/dw2-compressed.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-compressed.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-compressed.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-const.exp ...
+PASS: gdb.dwarf2/dw2-const.exp: print twelve
+PASS: gdb.dwarf2/dw2-const.exp: print/x val8
+Running ./gdb.dwarf2/dw2-cp-infcall-ref-static.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-i686-pc-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-cp-infcall-ref-static.exp: dw2-cp-infcall-ref-static.exp
+Running ./gdb.dwarf2/dw2-cu-size.exp ...
+PASS: gdb.dwarf2/dw2-cu-size.exp: ptype noloc
+Running ./gdb.dwarf2/dw2-dir-file-name.exp ...
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: cd .../rdir
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: continue to breakpoint: compdir_missing__ldir_missing__file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: continue to breakpoint: compdir_missing__ldir_missing__file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: continue to breakpoint: compdir_missing__ldir_missing__file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: continue to breakpoint: compdir_missing__ldir_relative_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: continue to breakpoint: compdir_missing__ldir_relative_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: continue to breakpoint: compdir_missing__ldir_relative_file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: continue to breakpoint: compdir_missing__ldir_absolute_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: continue to breakpoint: compdir_missing__ldir_absolute_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: continue to breakpoint: compdir_missing__ldir_absolute_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: continue to breakpoint: compdir_missing__ldir_absolute_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: continue to breakpoint: compdir_relative_ldir_missing__file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: continue to breakpoint: compdir_relative_ldir_missing__file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: continue to breakpoint: compdir_relative_ldir_missing__file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: continue to breakpoint: compdir_relative_ldir_relative_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: continue to breakpoint: compdir_relative_ldir_relative_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: continue to breakpoint: compdir_relative_ldir_relative_file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: continue to breakpoint: compdir_relative_ldir_absolute_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: continue to breakpoint: compdir_relative_ldir_absolute_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: continue to breakpoint: compdir_relative_ldir_absolute_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: continue to breakpoint: compdir_relative_ldir_absolute_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: continue to breakpoint: compdir_absolute_ldir_missing__file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: continue to breakpoint: compdir_absolute_ldir_missing__file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: continue to breakpoint: compdir_absolute_ldir_missing__file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: continue to breakpoint: compdir_absolute_ldir_missing__file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: continue to breakpoint: compdir_absolute_ldir_relative_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: continue to breakpoint: compdir_absolute_ldir_relative_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: continue to breakpoint: compdir_absolute_ldir_relative_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: continue to breakpoint: compdir_absolute_ldir_relative_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: continue to breakpoint: compdir_absolute_ldir_absolute_file_basename_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: continue to breakpoint: compdir_absolute_ldir_absolute_file_relative_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: continue to breakpoint: compdir_absolute_ldir_absolute_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: continue to breakpoint: compdir_absolute_ldir_absolute_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: relative
+Running ./gdb.dwarf2/dw2-dos-drive.exp ...
+PASS: gdb.dwarf2/dw2-dos-drive.exp: set breakpoint pending off
+PASS: gdb.dwarf2/dw2-dos-drive.exp: break 'z:file.c':func
+UNSUPPORTED: gdb.dwarf2/dw2-dos-drive.exp: break file.c:func
+Running ./gdb.dwarf2/dw2-double-set-die-type.exp ...
+PASS: gdb.dwarf2/dw2-double-set-die-type.exp: ptype a
+Running ./gdb.dwarf2/dw2-empty-namespace.exp ...
+PASS: gdb.dwarf2/dw2-empty-namespace.exp: ptype var
+PASS: gdb.dwarf2/dw2-empty-namespace.exp: p var
+Running ./gdb.dwarf2/dw2-empty-pc-range.exp ...
+PASS: gdb.dwarf2/dw2-empty-pc-range.exp: empty range before CU load
+PASS: gdb.dwarf2/dw2-empty-pc-range.exp: valid range after CU load
+PASS: gdb.dwarf2/dw2-empty-pc-range.exp: empty range after CU load
+Running ./gdb.dwarf2/dw2-entry-value.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-i686-pc-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-entry-value.exp: dw2-entry-value.exp
+Running ./gdb.dwarf2/dw2-error.exp ...
+gdb compile failed, dw2-error.c: Assembler messages:
+dw2-error.c:33: Error: bad register name `%rbp'
+dw2-error.c:36: Error: bad register name `%rsp'
+dw2-error.c:43: Error: bad register name `%rbp'
+UNTESTED: gdb.dwarf2/dw2-error.exp: dw2-error.exp
+Running ./gdb.dwarf2/dw2-filename.exp ...
+PASS: gdb.dwarf2/dw2-filename.exp: interpreter-exec mi -file-list-exec-source-files
+PASS: gdb.dwarf2/dw2-filename.exp: info sources
+Running ./gdb.dwarf2/dw2-icc-opaque.exp ...
+PASS: gdb.dwarf2/dw2-icc-opaque.exp: ptype p_struct
+Running ./gdb.dwarf2/dw2-ifort-parameter.exp ...
+PASS: gdb.dwarf2/dw2-ifort-parameter.exp: p/x param
+Running ./gdb.dwarf2/dw2-inheritance.exp ...
+PASS: gdb.dwarf2/dw2-inheritance.exp: ptype inherited
+Running ./gdb.dwarf2/dw2-inline-break.exp ...
+Running ./gdb.dwarf2/dw2-inline-param.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-i686-pc-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-inline-param.exp: dw2-inline-param.exp
+Running ./gdb.dwarf2/dw2-intercu.exp ...
+PASS: gdb.dwarf2/dw2-intercu.exp: ptype int2
+PASS: gdb.dwarf2/dw2-intercu.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-intercu.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-intercu.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-intermix.exp ...
+PASS: gdb.dwarf2/dw2-intermix.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-intermix.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-intermix.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-linkage-name-trust.exp ...
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: set language c++
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: set cp-abi gnu-v3
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: p c.membername
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: p c.membername ()
+Running ./gdb.dwarf2/dw2-minsym-in-cu.exp ...
+PASS: gdb.dwarf2/dw2-minsym-in-cu.exp: info fun func2
+Running ./gdb.dwarf2/dw2-modula2-self-type.exp ...
+PASS: gdb.dwarf2/dw2-modula2-self-type.exp: set language modula-2
+PASS: gdb.dwarf2/dw2-modula2-self-type.exp: ptype v
+PASS: gdb.dwarf2/dw2-modula2-self-type.exp: alive
+Running ./gdb.dwarf2/dw2-namespaceless-anonymous.exp ...
+PASS: gdb.dwarf2/dw2-namespaceless-anonymous.exp: ptype '(anonymous namespace)::v'
+PASS: gdb.dwarf2/dw2-namespaceless-anonymous.exp: p '(anonymous namespace)::v'
+Running ./gdb.dwarf2/dw2-noloc.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-i686-pc-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-noloc.exp: dw2-noloc.exp
+Running ./gdb.dwarf2/dw2-objfile-overlap.exp ...
+PASS: gdb.dwarf2/dw2-objfile-overlap.exp: add-symbol-file
+PASS: gdb.dwarf2/dw2-objfile-overlap.exp: info line inner
+Running ./gdb.dwarf2/dw2-op-call.exp ...
+PASS: gdb.dwarf2/dw2-op-call.exp: maintenance set dwarf2 max-cache-age 0
+PASS: gdb.dwarf2/dw2-op-call.exp: p array1
+PASS: gdb.dwarf2/dw2-op-call.exp: array2 using DW_OP_call2
+PASS: gdb.dwarf2/dw2-op-call.exp: array3 using DW_OP_call4
+PASS: gdb.dwarf2/dw2-op-call.exp: p arraynoloc
+PASS: gdb.dwarf2/dw2-op-call.exp: p arraycallnoloc
+Running ./gdb.dwarf2/dw2-op-out-param.exp ...
+Running ./gdb.dwarf2/dw2-op-stack-value.exp ...
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x stack2
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x stack8
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: x/wx &aa551234
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x implicit4to2
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x implicit4to4
+Running ./gdb.dwarf2/dw2-param-error.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-i686-pc-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-param-error.exp: dw2-param-error.exp
+Running ./gdb.dwarf2/dw2-producer.exp ...
+PASS: gdb.dwarf2/dw2-producer.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-producer.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-producer.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-ranges.exp ...
+PASS: gdb.dwarf2/dw2-ranges.exp: info line main
+PASS: gdb.dwarf2/dw2-ranges.exp: info line func
+PASS: gdb.dwarf2/dw2-ranges.exp: info line main2
+PASS: gdb.dwarf2/dw2-ranges.exp: info line func2
+KFAIL: gdb.dwarf2/dw2-ranges.exp: info line main3 (PRMS: symtab/12497)
+Running ./gdb.dwarf2/dw2-ref-missing-frame.exp ...
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_nofb print
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_nofb backtrace
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_loopfb print
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_loopfb backtrace
+Running ./gdb.dwarf2/dw2-restore.exp ...
+Running ./gdb.dwarf2/dw2-restrict.exp ...
+Running ./gdb.dwarf2/dw2-simple-locdesc.exp ...
+KFAIL: gdb.dwarf2/dw2-simple-locdesc.exp: p &s.shl (PRMS: symtab/13307)
+PASS: gdb.dwarf2/dw2-simple-locdesc.exp: p &s.data4
+Running ./gdb.dwarf2/dw2-skip-prologue.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-i686-pc-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-skip-prologue.exp: dw2-skip-prologue.exp
+Running ./gdb.dwarf2/dw2-stack-boundary.exp ...
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: set complaints 100
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: check partial symtab errors
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: p underflow
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: p overflow
+Running ./gdb.dwarf2/dw2-strp.exp ...
+PASS: gdb.dwarf2/dw2-strp.exp: p a_string
+PASS: gdb.dwarf2/dw2-strp.exp: ptype a_string
+PASS: gdb.dwarf2/dw2-strp.exp: p a_string2
+PASS: gdb.dwarf2/dw2-strp.exp: ptype a_string2
+Running ./gdb.dwarf2/dw2-unresolved.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-i686-pc-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-unresolved.exp: dw2-unresolved.exp
+Running ./gdb.dwarf2/dw2-var-zero-addr.exp ...
+PASS: gdb.dwarf2/dw2-var-zero-addr.exp: print &var
+Running ./gdb.dwarf2/dw4-sig-types.exp ...
+PASS: gdb.dwarf2/dw4-sig-types.exp: maint set dwarf2 max-cache-age 0
+PASS: gdb.dwarf2/dw4-sig-types.exp: p myset
+PASS: gdb.dwarf2/dw4-sig-types.exp: continue to foo
+Running ./gdb.dwarf2/dw4-sig-type-unused.exp ...
+PASS: gdb.dwarf2/dw4-sig-type-unused.exp: alive
+Running ./gdb.dwarf2/fission-base.exp ...
+Running ./gdb.dwarf2/fission-loclists.exp ...
+Running ./gdb.dwarf2/fission-reread.exp ...
+PASS: gdb.dwarf2/fission-reread.exp: break main
+PASS: gdb.dwarf2/fission-reread.exp: fission-reread
+PASS: gdb.dwarf2/fission-reread.exp: fission-reread - unload
+Running ./gdb.dwarf2/implptr-64bit.exp ...
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+UNTESTED: gdb.dwarf2/implptr-64bit.exp: implptr-64bit.exp
+Running ./gdb.dwarf2/implptr.exp ...
+PASS: gdb.dwarf2/implptr.exp: maintenance set dwarf2 max-cache-age 0
+PASS: gdb.dwarf2/implptr.exp: set bar breakpoint for implptr
+PASS: gdb.dwarf2/implptr.exp: continue to breakpoint: continue to bar breakpoint for implptr
+PASS: gdb.dwarf2/implptr.exp: print j in implptr:bar
+PASS: gdb.dwarf2/implptr.exp: print sizeof (j[0]) in implptr:bar
+PASS: gdb.dwarf2/implptr.exp: print *j in implptr:bar
+PASS: gdb.dwarf2/implptr.exp: print **k in implptr:bar
+PASS: gdb.dwarf2/implptr.exp: print ***l in implptr:bar
+PASS: gdb.dwarf2/implptr.exp: set baz breakpoint for implptr
+PASS: gdb.dwarf2/implptr.exp: continue to breakpoint: continue to baz breakpoint for implptr
+PASS: gdb.dwarf2/implptr.exp: sanity check element 0
+PASS: gdb.dwarf2/implptr.exp: sanity check element 1
+PASS: gdb.dwarf2/implptr.exp: enter the inlined function
+PASS: gdb.dwarf2/implptr.exp: check element 0 for the offset
+PASS: gdb.dwarf2/implptr.exp: check element 1 for the offset
+PASS: gdb.dwarf2/implptr.exp: continue to breakpoint: ignore the second baz breakpoint
+PASS: gdb.dwarf2/implptr.exp: set foo breakpoint for implptr
+PASS: gdb.dwarf2/implptr.exp: continue to breakpoint: continue to foo breakpoint for implptr
+PASS: gdb.dwarf2/implptr.exp: print p[0].x in implptr:foo
+PASS: gdb.dwarf2/implptr.exp: print *p[0].x in implptr:foo
+PASS: gdb.dwarf2/implptr.exp: print byte inside *p[0].x in implptr:foo
+PASS: gdb.dwarf2/implptr.exp: print invalid offset from *p[0].x in implptr:foo
+PASS: gdb.dwarf2/implptr.exp: print j in implptr:foo
+Running ./gdb.dwarf2/implptr-optimized-out.exp ...
+PASS: gdb.dwarf2/implptr-optimized-out.exp: p p->f
+Running ./gdb.dwarf2/mac-fileno.exp ...
+PASS: gdb.dwarf2/mac-fileno.exp: set listsize 1
+PASS: gdb.dwarf2/mac-fileno.exp: list func_cu1
+PASS: gdb.dwarf2/mac-fileno.exp: ptype func_cu1
+Running ./gdb.dwarf2/member-ptr-forwardref.exp ...
+PASS: gdb.dwarf2/member-ptr-forwardref.exp: set cp-abi gnu-v3
+PASS: gdb.dwarf2/member-ptr-forwardref.exp: show cp-abi
+PASS: gdb.dwarf2/member-ptr-forwardref.exp: ptype c
+Running ./gdb.dwarf2/method-ptr.exp ...
+PASS: gdb.dwarf2/method-ptr.exp: ptype the_typedef
+Running ./gdb.dwarf2/pieces.exp ...
+PASS: gdb.dwarf2/pieces.exp: set f1 breakpoint for pieces
+PASS: gdb.dwarf2/pieces.exp: continue to breakpoint: continue to f1 breakpoint for pieces
+PASS: gdb.dwarf2/pieces.exp: print a in pieces:f1
+PASS: gdb.dwarf2/pieces.exp: print a.j in pieces:f1
+PASS: gdb.dwarf2/pieces.exp: set f2 breakpoint for pieces
+PASS: gdb.dwarf2/pieces.exp: continue to breakpoint: continue to f2 breakpoint for pieces
+PASS: gdb.dwarf2/pieces.exp: print a in pieces:f2
+PASS: gdb.dwarf2/pieces.exp: print a[0] in pieces:f2
+PASS: gdb.dwarf2/pieces.exp: print a[1] in pieces:f2
+PASS: gdb.dwarf2/pieces.exp: set f3 breakpoint for pieces
+PASS: gdb.dwarf2/pieces.exp: continue to breakpoint: continue to f3 breakpoint for pieces
+PASS: gdb.dwarf2/pieces.exp: print a.i in pieces:f3
+PASS: gdb.dwarf2/pieces.exp: print a.j in pieces:f3
+PASS: gdb.dwarf2/pieces.exp: set a.i in pieces:f3
+PASS: gdb.dwarf2/pieces.exp: print new a.i in pieces:f3
+PASS: gdb.dwarf2/pieces.exp: set f6 breakpoint for pieces
+PASS: gdb.dwarf2/pieces.exp: continue to breakpoint: continue to f6 breakpoint for pieces
+PASS: gdb.dwarf2/pieces.exp: print a with optimized out piece
+PASS: gdb.dwarf2/pieces.exp: print a.i with optimized out piece
+Running ./gdb.dwarf2/pr10770.exp ...
+PASS: gdb.dwarf2/pr10770.exp: set breakpoint for pr10770
+PASS: gdb.dwarf2/pr10770.exp: cont
+PASS: gdb.dwarf2/pr10770.exp: frame 2
+Running ./gdb.dwarf2/pr11465.exp ...
+PASS: gdb.dwarf2/pr11465.exp: p N::c.C
+Running ./gdb.dwarf2/pr13961.exp ...
+PASS: gdb.dwarf2/pr13961.exp: break main
+PASS: gdb.dwarf2/pr13961.exp: pr13961
+Running ./gdb.dwarf2/subrange.exp ...
+PASS: gdb.dwarf2/subrange.exp: set language pascal
+PASS: gdb.dwarf2/subrange.exp: ptype TByteArray
+Running ./gdb.dwarf2/trace-crash.exp ...
+Running ./gdb.dwarf2/typeddwarf.exp ...
+PASS: gdb.dwarf2/typeddwarf.exp: set breakpoint at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of j at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of l at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of m at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of n at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of o at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of p at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of q at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of r at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of s at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of t at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of u at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of v at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of w at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: set breakpoint at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of j at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of l at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of m at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of p at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of q at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of r at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of s at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of t at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of u at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of v at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of w at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of z at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: set breakpoint at typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: check value of w at typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: check value of z at typeddwarf.c:73
+Running ./gdb.dwarf2/valop.exp ...
+PASS: gdb.dwarf2/valop.exp: set breakpoint for valop
+PASS: gdb.dwarf2/valop.exp: continue to breakpoint: continue to breakpoint for valop
+PASS: gdb.dwarf2/valop.exp: print uses_stack_op
+PASS: gdb.dwarf2/valop.exp: print uses_lit_op
+Running ./gdb.dwarf2/watch-notconst.exp ...
+PASS: gdb.dwarf2/watch-notconst.exp: watch x
+Running ./gdb.fortran/array-element.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/array-element.exp: array-element.exp
+Running ./gdb.fortran/charset.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/charset.exp: charset.exp
+Running ./gdb.fortran/common-block.exp ...
+UNTESTED: gdb.fortran/common-block.exp: common-block.exp
+Running ./gdb.fortran/complex.exp ...
+UNTESTED: gdb.fortran/complex.exp: complex.exp
+UNTESTED: gdb.fortran/complex.exp: Couldn't compile complex.f
+Running ./gdb.fortran/derived-type.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/derived-type.exp: derived-type.exp
+Running ./gdb.fortran/exprs.exp ...
+PASS: gdb.fortran/exprs.exp: set print sevenbit-strings
+PASS: gdb.fortran/exprs.exp: set language fortran
+PASS: gdb.fortran/exprs.exp: set language to "fortran"
+PASS: gdb.fortran/exprs.exp: Set value-history[1] using $1
+PASS: gdb.fortran/exprs.exp: Set value-history[2] using $2
+PASS: gdb.fortran/exprs.exp: Set value-history[3] using $3
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX-1] using inplicit index $$
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX-1] again using implicit index $$
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX] using implicit index $
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX-2] using explicit index $$2
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX] using explicit index $0
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX] using explicit index $$0
+PASS: gdb.fortran/exprs.exp: Print value-history[1] using explicit index $1
+PASS: gdb.fortran/exprs.exp: Print value-history[2] using explicit index $2
+PASS: gdb.fortran/exprs.exp: Print value-history[3] using explicit index $3
+PASS: gdb.fortran/exprs.exp: Print (value-history[MAX] - 3) using implicit index $
+PASS: gdb.fortran/exprs.exp: Use value-history element in arithmetic expression
+PASS: gdb.fortran/exprs.exp: Set a new convenience variable
+PASS: gdb.fortran/exprs.exp: Print contents of new convenience variable
+PASS: gdb.fortran/exprs.exp: Set convenience variable to a new value
+PASS: gdb.fortran/exprs.exp: Print new contents of convenience variable
+PASS: gdb.fortran/exprs.exp: Set convenience variable $_
+PASS: gdb.fortran/exprs.exp: Print contents of convenience variable $_
+PASS: gdb.fortran/exprs.exp: Use convenience variable in arithmetic expression
+PASS: gdb.fortran/exprs.exp: Use convenience variable assignment in arithmetic expression
+PASS: gdb.fortran/exprs.exp: Print contents of uninitialized convenience variable
+PASS: gdb.fortran/exprs.exp: p 123
+PASS: gdb.fortran/exprs.exp: p -123
+PASS: gdb.fortran/exprs.exp: reject p _
+PASS: gdb.fortran/exprs.exp: p .TRUE.
+PASS: gdb.fortran/exprs.exp: p .FALSE.
+PASS: gdb.fortran/exprs.exp: p 'a'
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(2:4)
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(:3)
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(5:)
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(:)
+PASS: gdb.fortran/exprs.exp: p .44 .LT. .45
+PASS: gdb.fortran/exprs.exp: p .44 .GT. .45
+PASS: gdb.fortran/exprs.exp: p 0.44 .LT. 0.45
+PASS: gdb.fortran/exprs.exp: p 0.44 .GT. 0.45
+PASS: gdb.fortran/exprs.exp: p 44. .LT. 45.
+PASS: gdb.fortran/exprs.exp: p 44. .GT. 45.
+PASS: gdb.fortran/exprs.exp: p 44.0 .LT. 45.0
+PASS: gdb.fortran/exprs.exp: p 44.0 .GT. 45.0
+PASS: gdb.fortran/exprs.exp: p 10D20 .LT. 10D21
+PASS: gdb.fortran/exprs.exp: p 10D20 .GT. 10D21
+PASS: gdb.fortran/exprs.exp: p 10d20 .LT. 10d21
+PASS: gdb.fortran/exprs.exp: p 10d20 .GT. 10d21
+PASS: gdb.fortran/exprs.exp: p 10E20 .LT. 10E21
+PASS: gdb.fortran/exprs.exp: p 10E20 .GT. 10E21
+PASS: gdb.fortran/exprs.exp: p 10e20 .LT. 10e21
+PASS: gdb.fortran/exprs.exp: p 10e20 .GT. 10e21
+PASS: gdb.fortran/exprs.exp: p 10.D20 .LT. 10.D21
+PASS: gdb.fortran/exprs.exp: p 10.D20 .GT. 10.D21
+PASS: gdb.fortran/exprs.exp: p 10.d20 .LT. 10.d21
+PASS: gdb.fortran/exprs.exp: p 10.d20 .GT. 10.d21
+PASS: gdb.fortran/exprs.exp: p 10.E20 .LT. 10.E21
+PASS: gdb.fortran/exprs.exp: p 10.E20 .GT. 10.E21
+PASS: gdb.fortran/exprs.exp: p 10.e20 .LT. 10.e21
+PASS: gdb.fortran/exprs.exp: p 10.e20 .GT. 10.e21
+PASS: gdb.fortran/exprs.exp: p 10.0D20 .LT. 10.0D21
+PASS: gdb.fortran/exprs.exp: p 10.0D20 .GT. 10.0D21
+PASS: gdb.fortran/exprs.exp: p 10.0d20 .LT. 10.0d21
+PASS: gdb.fortran/exprs.exp: p 10.0d20 .GT. 10.0d21
+PASS: gdb.fortran/exprs.exp: p 10.0E20 .LT. 10.0E21
+PASS: gdb.fortran/exprs.exp: p 10.0E20 .GT. 10.0E21
+PASS: gdb.fortran/exprs.exp: p 10.0e20 .LT. 10.0e21
+PASS: gdb.fortran/exprs.exp: p 10.0e20 .GT. 10.0e21
+PASS: gdb.fortran/exprs.exp: p 10.0D+20 .LT. 10.0D+21
+PASS: gdb.fortran/exprs.exp: p 10.0D+20 .GT. 10.0D+21
+PASS: gdb.fortran/exprs.exp: p 10.0d+20 .LT. 10.0d+21
+PASS: gdb.fortran/exprs.exp: p 10.0d+20 .GT. 10.0d+21
+PASS: gdb.fortran/exprs.exp: p 10.0E+20 .LT. 10.0E+21
+PASS: gdb.fortran/exprs.exp: p 10.0E+20 .GT. 10.0E+21
+PASS: gdb.fortran/exprs.exp: p 10.0e+20 .LT. 10.0e+21
+PASS: gdb.fortran/exprs.exp: p 10.0e+20 .GT. 10.0e+21
+PASS: gdb.fortran/exprs.exp: p 10.0D-11 .LT. 10.0D-10
+PASS: gdb.fortran/exprs.exp: p 10.0D-11 .GT. 10.0D-10
+PASS: gdb.fortran/exprs.exp: p 10.0d-11 .LT. 10.0d-10
+PASS: gdb.fortran/exprs.exp: p 10.0d-11 .GT. 10.0d-10
+PASS: gdb.fortran/exprs.exp: p 10.0E-11 .LT. 10.0E-10
+PASS: gdb.fortran/exprs.exp: p 10.0E-11 .GT. 10.0E-10
+PASS: gdb.fortran/exprs.exp: p 10.0e-11 .LT. 10.0e-10
+PASS: gdb.fortran/exprs.exp: p 10.0e-11 .GT. 10.0e-10
+PASS: gdb.fortran/exprs.exp: unary minus applied to int
+PASS: gdb.fortran/exprs.exp: unary minus applied to real
+PASS: gdb.fortran/exprs.exp: bool plus int
+PASS: gdb.fortran/exprs.exp: int plus int
+PASS: gdb.fortran/exprs.exp: real plus int
+PASS: gdb.fortran/exprs.exp: real plus real
+PASS: gdb.fortran/exprs.exp: bool minus int
+PASS: gdb.fortran/exprs.exp: int minus int
+PASS: gdb.fortran/exprs.exp: real minus int
+PASS: gdb.fortran/exprs.exp: real minus real
+PASS: gdb.fortran/exprs.exp: bool times int
+PASS: gdb.fortran/exprs.exp: int times int
+PASS: gdb.fortran/exprs.exp: real times int
+PASS: gdb.fortran/exprs.exp: real times real
+PASS: gdb.fortran/exprs.exp: bool divided by int
+PASS: gdb.fortran/exprs.exp: int divided by int
+PASS: gdb.fortran/exprs.exp: real divided by int
+PASS: gdb.fortran/exprs.exp: real divided by real
+PASS: gdb.fortran/exprs.exp: int powered by int
+PASS: gdb.fortran/exprs.exp: combined exponentiation expression
+PASS: gdb.fortran/exprs.exp: combined exponentiation expression in specified order
+PASS: gdb.fortran/exprs.exp: int powered by real
+PASS: gdb.fortran/exprs.exp: real powered by real
+Running ./gdb.fortran/library-module.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/library-module.exp: Couldn't compile library-module-lib.f90
+Running ./gdb.fortran/logical.exp ...
+UNTESTED: gdb.fortran/logical.exp: logical.exp
+Running ./gdb.fortran/module.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/module.exp: module.exp
+Running ./gdb.fortran/multi-dim.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/multi-dim.exp: multi-dim.exp
+Running ./gdb.fortran/subarray.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/subarray.exp: subarray.exp
+Running ./gdb.fortran/types.exp ...
+PASS: gdb.fortran/types.exp: set print sevenbit-strings
+PASS: gdb.fortran/types.exp: set language fortran
+PASS: gdb.fortran/types.exp: set language to "fortran"
+PASS: gdb.fortran/types.exp: pt 123
+PASS: gdb.fortran/types.exp: reject pt _
+PASS: gdb.fortran/types.exp: pt .TRUE.
+PASS: gdb.fortran/types.exp: pt .FALSE.
+PASS: gdb.fortran/types.exp: pt 'a'
+PASS: gdb.fortran/types.exp: pt .44
+PASS: gdb.fortran/types.exp: pt 44.0
+PASS: gdb.fortran/types.exp: pt 10D20
+PASS: gdb.fortran/types.exp: pt 10D20
+PASS: gdb.fortran/types.exp: pt 10d20
+PASS: gdb.fortran/types.exp: pt 10d20
+PASS: gdb.fortran/types.exp: pt 10E20
+PASS: gdb.fortran/types.exp: pt 10E20
+PASS: gdb.fortran/types.exp: pt 10e20
+PASS: gdb.fortran/types.exp: pt 10e20
+Running ./gdb.gdb/complaints.exp ...
+Running ./gdb.gdb/observer.exp ...
+Running ./gdb.gdb/selftest.exp ...
+Running ./gdb.gdb/xfullpath.exp ...
+Running ./gdb.go/basic-types.exp ...
+PASS: gdb.go/basic-types.exp: set language go
+PASS: gdb.go/basic-types.exp: set language to "go"
+PASS: gdb.go/basic-types.exp: pt 123
+PASS: gdb.go/basic-types.exp: pt void(42)
+PASS: gdb.go/basic-types.exp: pt byte(42)
+PASS: gdb.go/basic-types.exp: pt int(42)
+PASS: gdb.go/basic-types.exp: pt uint(42)
+PASS: gdb.go/basic-types.exp: pt uintptr(42)
+PASS: gdb.go/basic-types.exp: pt int8(42)
+PASS: gdb.go/basic-types.exp: pt int16(42)
+PASS: gdb.go/basic-types.exp: pt int32(42)
+PASS: gdb.go/basic-types.exp: pt int64(42)
+PASS: gdb.go/basic-types.exp: pt uint8(42)
+PASS: gdb.go/basic-types.exp: pt uint16(42)
+PASS: gdb.go/basic-types.exp: pt uint32(42)
+PASS: gdb.go/basic-types.exp: pt uint64(42)
+PASS: gdb.go/basic-types.exp: pt true
+PASS: gdb.go/basic-types.exp: pt false
+PASS: gdb.go/basic-types.exp: pt bool(0)
+PASS: gdb.go/basic-types.exp: pt bool(1)
+PASS: gdb.go/basic-types.exp: pt 'a'
+PASS: gdb.go/basic-types.exp: pt "a simple string"
+PASS: gdb.go/basic-types.exp: pt `a simple raw string`
+PASS: gdb.go/basic-types.exp: pt .44
+PASS: gdb.go/basic-types.exp: pt 44.0
+PASS: gdb.go/basic-types.exp: pt 10e20
+PASS: gdb.go/basic-types.exp: pt 10E20
+PASS: gdb.go/basic-types.exp: pt float32(.42)
+PASS: gdb.go/basic-types.exp: pt float64(.42)
+PASS: gdb.go/basic-types.exp: pt complex64(.42)
+XFAIL: gdb.go/basic-types.exp: pt complex64(.42i1.0)
+XFAIL: gdb.go/basic-types.exp: pt complex64(i1.0)
+PASS: gdb.go/basic-types.exp: pt complex128(.42)
+XFAIL: gdb.go/basic-types.exp: pt complex128(.42i1.0)
+XFAIL: gdb.go/basic-types.exp: pt complex128(i1.0)
+Running ./gdb.go/chan.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gccgo.
+UNTESTED: gdb.go/chan.exp: chan.exp
+Running ./gdb.go/handcall.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gccgo.
+UNTESTED: gdb.go/handcall.exp: handcall.exp
+Running ./gdb.go/hello.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gccgo.
+UNTESTED: gdb.go/hello.exp: hello.exp
+Running ./gdb.go/integers.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gccgo.
+UNTESTED: gdb.go/integers.exp: integers.exp
+Running ./gdb.go/methods.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gccgo.
+UNTESTED: gdb.go/methods.exp: methods.exp
+Running ./gdb.go/package.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gccgo.
+UNTESTED: gdb.go/package.exp: package
+Running ./gdb.go/print.exp ...
+PASS: gdb.go/print.exp: set language go
+PASS: gdb.go/print.exp: set language to "go"
+PASS: gdb.go/print.exp: check fp + text
+PASS: gdb.go/print.exp: p 1.
+PASS: gdb.go/print.exp: p 1.5
+PASS: gdb.go/print.exp: p 1.f
+PASS: gdb.go/print.exp: p 1.5f
+PASS: gdb.go/print.exp: p 1.l
+PASS: gdb.go/print.exp: p 1.5l
+PASS: gdb.go/print.exp: p 0x1.1
+PASS: gdb.go/print.exp: reject p 1.1x
+PASS: gdb.go/print.exp: reject p 1.1ff
+PASS: gdb.go/print.exp: reject p 1.1ll
+Running ./gdb.go/strings.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gccgo.
+UNTESTED: gdb.go/strings.exp: strings.exp
+Running ./gdb.go/types.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gccgo.
+UNTESTED: gdb.go/types.exp: types.exp
+Running ./gdb.go/unsafe.exp ...
+gdb compile failed, default_target_compile: Can't find i686-pc-linux-gnu-gccgo.
+UNTESTED: gdb.go/unsafe.exp: unsafe.exp
+Running ./gdb.java/jmain.exp ...
+UNSUPPORTED: gdb.java/jmain.exp: compilation jmain.java
+Running ./gdb.java/jmisc.exp ...
+UNSUPPORTED: gdb.java/jmisc.exp: compilation jmisc.java
+Running ./gdb.java/jnpe.exp ...
+UNSUPPORTED: gdb.java/jnpe.exp: compilation jnpe.java
+UNTESTED: gdb.java/jnpe.exp: Couldn't compile ./gdb.java/jnpe.java
+Running ./gdb.java/jprint.exp ...
+UNSUPPORTED: gdb.java/jprint.exp: compilation jprint.java
+Running ./gdb.java/jv-exp.exp ...
+PASS: gdb.java/jv-exp.exp: set print sevenbit-strings
+PASS: gdb.java/jv-exp.exp: set width 0
+PASS: gdb.java/jv-exp.exp: set language java
+PASS: gdb.java/jv-exp.exp: set language to "java"
+PASS: gdb.java/jv-exp.exp: p 1 > 2
+PASS: gdb.java/jv-exp.exp: p 1 < 2
+Running ./gdb.java/jv-print.exp ...
+PASS: gdb.java/jv-print.exp: print $pc
+PASS: gdb.java/jv-print.exp: set print sevenbit-strings
+PASS: gdb.java/jv-print.exp: set width 0
+PASS: gdb.java/jv-print.exp: set language java
+PASS: gdb.java/jv-print.exp: set language to "java"
+PASS: gdb.java/jv-print.exp: p 123
+PASS: gdb.java/jv-print.exp: p -123
+PASS: gdb.java/jv-print.exp: p/d 123
+PASS: gdb.java/jv-print.exp: p 0123
+PASS: gdb.java/jv-print.exp: p 00123
+PASS: gdb.java/jv-print.exp: p -0123
+PASS: gdb.java/jv-print.exp: p/o 0123
+PASS: gdb.java/jv-print.exp: p 0x123
+PASS: gdb.java/jv-print.exp: p -0x123
+PASS: gdb.java/jv-print.exp: p 0x0123
+PASS: gdb.java/jv-print.exp: p -0x0123
+PASS: gdb.java/jv-print.exp: p 0xABCDEF
+PASS: gdb.java/jv-print.exp: p 0xabcdef
+PASS: gdb.java/jv-print.exp: p 0xAbCdEf
+PASS: gdb.java/jv-print.exp: p/x 0x123
+PASS: gdb.java/jv-print.exp: p 'a'
+PASS: gdb.java/jv-print.exp: p/c 'a'
+PASS: gdb.java/jv-print.exp: p/c 70
+PASS: gdb.java/jv-print.exp: p/x 'a'
+PASS: gdb.java/jv-print.exp: p/d 'a'
+PASS: gdb.java/jv-print.exp: p/t 'a'
+PASS: gdb.java/jv-print.exp: p/x '\377'
+PASS: gdb.java/jv-print.exp: p '\''
+PASS: gdb.java/jv-print.exp: p '\\'
+PASS: gdb.java/jv-print.exp: reject p 0x
+PASS: gdb.java/jv-print.exp: p ''
+PASS: gdb.java/jv-print.exp: p '''
+PASS: gdb.java/jv-print.exp: reject p '\'
+PASS: gdb.java/jv-print.exp: reject p '\\\'
+PASS: gdb.java/jv-print.exp: reject p DEADBEEF
+PASS: gdb.java/jv-print.exp: reject p 123DEADBEEF
+PASS: gdb.java/jv-print.exp: reject p 123foobar.bazfoo3
+PASS: gdb.java/jv-print.exp: reject p 123EEEEEEEEEEEEEEEEE33333k333
+PASS: gdb.java/jv-print.exp: check for floating addition
+PASS: gdb.java/jv-print.exp: reject p 09
+PASS: gdb.java/jv-print.exp: reject p 079
+PASS: gdb.java/jv-print.exp: reject p 0xG
+PASS: gdb.java/jv-print.exp: reject p 0xAG
+PASS: gdb.java/jv-print.exp: check fp + text
+PASS: gdb.java/jv-print.exp: p 1.
+PASS: gdb.java/jv-print.exp: p 1.5
+PASS: gdb.java/jv-print.exp: p 1.f
+PASS: gdb.java/jv-print.exp: p 1.5f
+PASS: gdb.java/jv-print.exp: p 1.d
+PASS: gdb.java/jv-print.exp: p 1.5d
+PASS: gdb.java/jv-print.exp: p 0x1.1
+PASS: gdb.java/jv-print.exp: reject p 1.1x
+PASS: gdb.java/jv-print.exp: reject p 1.1ff
+PASS: gdb.java/jv-print.exp: reject p 1.1dd
+Running ./gdb.linespec/break-ask.exp ...
+PASS: gdb.linespec/break-ask.exp: set multiple-symbols ask
+PASS: gdb.linespec/break-ask.exp: set filename-display absolute
+PASS: gdb.linespec/break-ask.exp: break twodup absolute
+PASS: gdb.linespec/break-ask.exp: 0
+PASS: gdb.linespec/break-ask.exp: set filename-display relative
+PASS: gdb.linespec/break-ask.exp: break twodup relative
+PASS: gdb.linespec/break-ask.exp: 2
+PASS: gdb.linespec/break-ask.exp: expect breakpoint
+PASS: gdb.linespec/break-ask.exp: info source
+PASS: gdb.linespec/break-ask.exp: continue to breakpoint: body_elsewhere
+PASS: gdb.linespec/break-ask.exp: break twodup relative other
+PASS: gdb.linespec/break-ask.exp: 3
+PASS: gdb.linespec/break-ask.exp: expect breakpoint other
+PASS: gdb.linespec/break-ask.exp: info source other
+PASS: gdb.linespec/break-ask.exp: continue to breakpoint: body_elsewhere other
+Running ./gdb.linespec/linespec.exp ...
+PASS: gdb.linespec/linespec.exp: set multiple-symbols to all for linespec tests
+PASS: gdb.linespec/linespec.exp: single-location break using dir/file:line
+PASS: gdb.linespec/linespec.exp: clear breakpoint using dir/file:line
+PASS: gdb.linespec/linespec.exp: multi-location break using file:line
+PASS: gdb.linespec/linespec.exp: multi-location break using duplicate function name
+PASS: gdb.linespec/linespec.exp: multi-location break using duplicate function name and label
+PASS: gdb.linespec/linespec.exp: complete condition
+PASS: gdb.linespec/linespec.exp: disable pending breakpoints for linespec tests
+PASS: gdb.linespec/linespec.exp: set breakpoint on non-existent function
+PASS: gdb.linespec/linespec.exp: set breakpoint at all instances of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint at lspec.cc instance of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint at non-existent lspec.cc instance of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint at specific instance of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint in body.h
+PASS: gdb.linespec/linespec.exp: set breakpoint in f1
+PASS: gdb.linespec/linespec.exp: add inferior for linespec tests
+PASS: gdb.linespec/linespec.exp: switch to inferior 2 for linespec tests
+PASS: gdb.linespec/linespec.exp: set the new inferior file for linespec tests
+PASS: gdb.linespec/linespec.exp: set breakpoint at main in both inferiors
+Running ./gdb.linespec/ls-dollar.exp ...
+PASS: gdb.linespec/ls-dollar.exp: set listsize 1
+PASS: gdb.linespec/ls-dollar.exp: list $dollar_var
+PASS: gdb.linespec/ls-dollar.exp: break $dollar_func
+Running ./gdb.linespec/ls-errs.exp ...
+PASS: gdb.linespec/ls-errs.exp: set breakpoint pending off
+PASS: gdb.linespec/ls-errs.exp: break :
+PASS: gdb.linespec/ls-errs.exp: break :
+PASS: gdb.linespec/ls-errs.exp: break  :
+PASS: gdb.linespec/ls-errs.exp: break  :
+PASS: gdb.linespec/ls-errs.exp: break 	:
+PASS: gdb.linespec/ls-errs.exp: break   :
+PASS: gdb.linespec/ls-errs.exp: break 	:
+PASS: gdb.linespec/ls-errs.exp: break  	:
+PASS: gdb.linespec/ls-errs.exp: break 	  	:
+PASS: gdb.linespec/ls-errs.exp: break -100
+PASS: gdb.linespec/ls-errs.exp: break +500
+PASS: gdb.linespec/ls-errs.exp: break 1000
+PASS: gdb.linespec/ls-errs.exp: break 3:
+PASS: gdb.linespec/ls-errs.exp: break +10:
+PASS: gdb.linespec/ls-errs.exp: break -10:
+PASS: gdb.linespec/ls-errs.exp: break 3:
+PASS: gdb.linespec/ls-errs.exp: break +10:
+PASS: gdb.linespec/ls-errs.exp: break -10:
+PASS: gdb.linespec/ls-errs.exp: break 3 :
+PASS: gdb.linespec/ls-errs.exp: break +10 :
+PASS: gdb.linespec/ls-errs.exp: break -10 :
+PASS: gdb.linespec/ls-errs.exp: break 3 :
+PASS: gdb.linespec/ls-errs.exp: break +10 :
+PASS: gdb.linespec/ls-errs.exp: break -10 :
+PASS: gdb.linespec/ls-errs.exp: break 3	:
+PASS: gdb.linespec/ls-errs.exp: break +10	:
+PASS: gdb.linespec/ls-errs.exp: break -10	:
+PASS: gdb.linespec/ls-errs.exp: break 3  :
+PASS: gdb.linespec/ls-errs.exp: break +10  :
+PASS: gdb.linespec/ls-errs.exp: break -10  :
+PASS: gdb.linespec/ls-errs.exp: break 3	:
+PASS: gdb.linespec/ls-errs.exp: break +10	:
+PASS: gdb.linespec/ls-errs.exp: break -10	:
+PASS: gdb.linespec/ls-errs.exp: break 3 	:
+PASS: gdb.linespec/ls-errs.exp: break +10 	:
+PASS: gdb.linespec/ls-errs.exp: break -10 	:
+PASS: gdb.linespec/ls-errs.exp: break 3	  	:
+PASS: gdb.linespec/ls-errs.exp: break +10	  	:
+PASS: gdb.linespec/ls-errs.exp: break -10	  	:
+PASS: gdb.linespec/ls-errs.exp: break 3 1
+PASS: gdb.linespec/ls-errs.exp: break +10 1
+PASS: gdb.linespec/ls-errs.exp: break -10 1
+PASS: gdb.linespec/ls-errs.exp: break 3 +1
+PASS: gdb.linespec/ls-errs.exp: break +10 +1
+PASS: gdb.linespec/ls-errs.exp: break -10 +1
+PASS: gdb.linespec/ls-errs.exp: break 3 +100
+PASS: gdb.linespec/ls-errs.exp: break +10 +100
+PASS: gdb.linespec/ls-errs.exp: break -10 +100
+PASS: gdb.linespec/ls-errs.exp: break 3 -10
+PASS: gdb.linespec/ls-errs.exp: break +10 -10
+PASS: gdb.linespec/ls-errs.exp: break -10 -10
+PASS: gdb.linespec/ls-errs.exp: break 3 foo
+PASS: gdb.linespec/ls-errs.exp: break +10 foo
+PASS: gdb.linespec/ls-errs.exp: break -10 foo
+PASS: gdb.linespec/ls-errs.exp: break this_file_doesn't_exist.c:3
+PASS: gdb.linespec/ls-errs.exp: break this file has spaces.c:3
+PASS: gdb.linespec/ls-errs.exp: break "file::colons.c":3
+PASS: gdb.linespec/ls-errs.exp: break 'file::colons.c':3
+PASS: gdb.linespec/ls-errs.exp: break "this "file" has quotes.c":3
+PASS: gdb.linespec/ls-errs.exp: break 'this "file" has quotes.c':3
+PASS: gdb.linespec/ls-errs.exp: break 'this 'file' has quotes.c':3
+PASS: gdb.linespec/ls-errs.exp: break "this 'file' has quotes.c":3
+PASS: gdb.linespec/ls-errs.exp: break "spaces: and :colons.c":3
+PASS: gdb.linespec/ls-errs.exp: break 'more: :spaces: :and  colons::.c':3
+PASS: gdb.linespec/ls-errs.exp: break "src-file.c':3
+PASS: gdb.linespec/ls-errs.exp: break 'src-file.c:3
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main:foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c  :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main  :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c 	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main 	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c	  	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main	  	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c::
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 1
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 +100
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 -100
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:-100
+PASS: gdb.linespec/ls-errs.exp: break "ls-errs.c:-100"
+PASS: gdb.linespec/ls-errs.exp: break 'ls-errs.c:-100'
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:+500
+PASS: gdb.linespec/ls-errs.exp: break "ls-errs.c:+500"
+PASS: gdb.linespec/ls-errs.exp: break 'ls-errs.c:+500'
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:1000
+PASS: gdb.linespec/ls-errs.exp: break "ls-errs.c:1000"
+PASS: gdb.linespec/ls-errs.exp: break 'ls-errs.c:1000'
+PASS: gdb.linespec/ls-errs.exp: break foobar
+PASS: gdb.linespec/ls-errs.exp: break foo::bar
+PASS: gdb.linespec/ls-errs.exp: break foo.bar
+PASS: gdb.linespec/ls-errs.exp: break foo .
+PASS: gdb.linespec/ls-errs.exp: break foo bar
+PASS: gdb.linespec/ls-errs.exp: break foo 1
+PASS: gdb.linespec/ls-errs.exp: break foo 0
+PASS: gdb.linespec/ls-errs.exp: break foo +10
+PASS: gdb.linespec/ls-errs.exp: break foo -10
+PASS: gdb.linespec/ls-errs.exp: break foo +100
+PASS: gdb.linespec/ls-errs.exp: break foo -100
+PASS: gdb.linespec/ls-errs.exp: break main:there
+PASS: gdb.linespec/ls-errs.exp: break main:here:
+PASS: gdb.linespec/ls-errs.exp: break main: there
+PASS: gdb.linespec/ls-errs.exp: break main:here:
+PASS: gdb.linespec/ls-errs.exp: break main :there
+PASS: gdb.linespec/ls-errs.exp: break main:here :
+PASS: gdb.linespec/ls-errs.exp: break main : there
+PASS: gdb.linespec/ls-errs.exp: break main:here :
+PASS: gdb.linespec/ls-errs.exp: break main	:  there
+PASS: gdb.linespec/ls-errs.exp: break main:here	:
+PASS: gdb.linespec/ls-errs.exp: break main  :	there
+PASS: gdb.linespec/ls-errs.exp: break main:here  :
+PASS: gdb.linespec/ls-errs.exp: break main	:	there
+PASS: gdb.linespec/ls-errs.exp: break main:here	:
+PASS: gdb.linespec/ls-errs.exp: break main 	:	 there
+PASS: gdb.linespec/ls-errs.exp: break main:here 	:
+PASS: gdb.linespec/ls-errs.exp: break main	  	:	  	  	there
+PASS: gdb.linespec/ls-errs.exp: break main:here	  	:
+PASS: gdb.linespec/ls-errs.exp: break main 3
+PASS: gdb.linespec/ls-errs.exp: break main +100
+PASS: gdb.linespec/ls-errs.exp: break main -100
+PASS: gdb.linespec/ls-errs.exp: break main foo
+PASS: gdb.linespec/ls-errs.exp: break main:here 3
+PASS: gdb.linespec/ls-errs.exp: break main:here +100
+PASS: gdb.linespec/ls-errs.exp: break main:here -100
+PASS: gdb.linespec/ls-errs.exp: break main:here foo
+PASS: gdb.linespec/ls-errs.exp: break if
+PASS: gdb.linespec/ls-errs.exp: break task
+PASS: gdb.linespec/ls-errs.exp: break thread
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'flubber
+PASS: gdb.linespec/ls-errs.exp: break 'main.c',21
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'3
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'+3
+PASS: gdb.linespec/ls-errs.exp: break $zippo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:$zippo
+Running ./gdb.linespec/macro-relative.exp ...
+FAIL: gdb.linespec/macro-relative.exp: info macro HEADER
+Running ./gdb.linespec/skip-two.exp ...
+PASS: gdb.linespec/skip-two.exp: skip function dupname
+PASS: gdb.linespec/skip-two.exp: dupname ignored from main
+PASS: gdb.linespec/skip-two.exp: continue to breakpoint: n
+PASS: gdb.linespec/skip-two.exp: dupname ignored from n
+PASS: gdb.linespec/skip-two.exp: skip delete 1
+PASS: gdb.linespec/skip-two.exp: skip file thefile.cc
+PASS: gdb.linespec/skip-two.exp: step into dupname
+PASS: gdb.linespec/skip-two.exp: finish from dupname
+PASS: gdb.linespec/skip-two.exp: dupname ignored for thefile.cc
+Running ./gdb.linespec/thread.exp ...
+PASS: gdb.linespec/thread.exp: breakpoint line number in file
+PASS: gdb.linespec/thread.exp: continue to breakpoint: 29
+PASS: gdb.linespec/thread.exp: setting breakpoint at thread
+PASS: gdb.linespec/thread.exp: continue to breakpoint: thread function
+Running ./gdb.mi/dw2-ref-missing-frame.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-i686-pc-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+Running ./gdb.mi/gdb2549.exp ...
+PASS: gdb.mi/gdb2549.exp: wrong arguments
+PASS: gdb.mi/gdb2549.exp: no executable
+PASS: gdb.mi/gdb2549.exp: breakpoint at main
+PASS: gdb.mi/gdb2549.exp: mi runto main
+PASS: gdb.mi/gdb2549.exp: register values x
+PASS: gdb.mi/gdb2549.exp: register values f
+PASS: gdb.mi/gdb2549.exp: register values d
+PASS: gdb.mi/gdb2549.exp: register values o
+PASS: gdb.mi/gdb2549.exp: register values t
+Running ./gdb.mi/gdb669.exp ...
+PASS: gdb.mi/gdb669.exp: successfully compiled posix threads test case
+PASS: gdb.mi/gdb669.exp: breakpoint at main
+PASS: gdb.mi/gdb669.exp: mi runto main
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (at main)
+PASS: gdb.mi/gdb669.exp: info threads (at main)
+PASS: gdb.mi/gdb669.exp: finding MI result string (at main)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (at main)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (at main)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (at main)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (at main)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (at main)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (at main)
+PASS: gdb.mi/gdb669.exp: next, try 0
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 0)
+PASS: gdb.mi/gdb669.exp: info threads (try 0)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 0)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 0)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 0)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 0)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 0)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 0)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 0)
+PASS: gdb.mi/gdb669.exp: next, try 1
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 1)
+PASS: gdb.mi/gdb669.exp: info threads (try 1)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 1)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 1)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 1)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 1)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 1)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 1)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 1)
+PASS: gdb.mi/gdb669.exp: next, try 2
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 2)
+PASS: gdb.mi/gdb669.exp: info threads (try 2)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 2)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 2)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 2)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 2)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 2)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 2)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 2)
+PASS: gdb.mi/gdb669.exp: next, try 3
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 3)
+PASS: gdb.mi/gdb669.exp: info threads (try 3)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 3)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 3)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 3)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 3)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 3)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 3)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 3)
+Running ./gdb.mi/gdb680.exp ...
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 0
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 1
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 2
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 3
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 4
+Running ./gdb.mi/gdb701.exp ...
+PASS: gdb.mi/gdb701.exp: breakpoint at main
+PASS: gdb.mi/gdb701.exp: mi runto main
+PASS: gdb.mi/gdb701.exp: step over "foo = 0"
+PASS: gdb.mi/gdb701.exp: create fooPtr
+PASS: gdb.mi/gdb701.exp: list children of fooPtr
+PASS: gdb.mi/gdb701.exp: list children of fooPtr.x
+PASS: gdb.mi/gdb701.exp: list children of fooPtr.y
+PASS: gdb.mi/gdb701.exp: list children of fooPtr.z
+Running ./gdb.mi/gdb792.exp ...
+PASS: gdb.mi/gdb792.exp: breakpoint at main
+PASS: gdb.mi/gdb792.exp: mi runto main
+PASS: gdb.mi/gdb792.exp: create var for class A
+PASS: gdb.mi/gdb792.exp: list children of class A
+PASS: gdb.mi/gdb792.exp: list children of A.public
+PASS: gdb.mi/gdb792.exp: list children of A.private
+PASS: gdb.mi/gdb792.exp: list children of A.protected
+PASS: gdb.mi/gdb792.exp: list children of A.protected.b
+PASS: gdb.mi/gdb792.exp: list children of A.protected.b.public
+PASS: gdb.mi/gdb792.exp: list children of A.protected.b.private
+PASS: gdb.mi/gdb792.exp: create var for class C which has baseclass A
+PASS: gdb.mi/gdb792.exp: list children of class C
+Running ./gdb.mi/mi2-amd64-entry-value.exp ...
+Running ./gdb.mi/mi2-prompt.exp ...
+PASS: gdb.mi/mi2-prompt.exp: console set prompt
+PASS: gdb.mi/mi2-prompt.exp: -break-list
+PASS: gdb.mi/mi2-prompt.exp: set prompt (banana)
+PASS: gdb.mi/mi2-prompt.exp: interpreter-exec mi -break-list
+Running ./gdb.mi/mi2-var-child.exp ...
+PASS: gdb.mi/mi2-var-child.exp: breakpoint at do_children_tests
+PASS: gdb.mi/mi2-var-child.exp: mi runto do_children_tests
+PASS: gdb.mi/mi2-var-child.exp: run to 237 (set breakpoint)
+PASS: gdb.mi/mi2-var-child.exp: create local variable struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.integer
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.integer
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.character
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.character
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_int
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_int
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.1
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.1
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.3
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.3
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.4
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.4
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.5
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.5
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.6
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.6
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.7
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.7
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.8
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.8
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.9
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.9
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.a
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.a
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.b
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.b
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.c
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.c
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.d
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.d
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.g
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.g
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.h
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.h
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.i
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.i
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: step to line $line_dct_123
+PASS: gdb.mi/mi2-var-child.exp: create local variable weird
+PASS: gdb.mi/mi2-var-child.exp: get children of weird
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird
+PASS: gdb.mi/mi2-var-child.exp: get children of weird.long_array
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird.long_array
+PASS: gdb.mi/mi2-var-child.exp: get children of weird.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: create local variable weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: is weird editable
+PASS: gdb.mi/mi2-var-child.exp: is weird->int_ptr_ptr editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.u1 editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.s2 editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.a editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.b editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.c editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.long_array editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.long_array.0 editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations editable
+PASS: gdb.mi/mi2-var-child.exp: delete var weird
+PASS: gdb.mi/mi2-var-child.exp: update all vars. None changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 1
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.integer
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 4
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 5
+PASS: gdb.mi/mi2-var-child.exp: update all vars int_ptr_ptr and children changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 6
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.0 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 7
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.1 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 8
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.2 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_nothing
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.3-9 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_a0_0
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.func_ptr changed
+PASS: gdb.mi/mi2-var-child.exp: delete var struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: delete var weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 1
+PASS: gdb.mi/mi2-var-child.exp: create local variable  psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: create local variable  psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: create local variable  psnp->ptrs
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.next
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.next.ptrs
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 2
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->char_ptr (and 0.char_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 3
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->next->char_ptr (and 1.char_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 4
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->next->next->char_ptr (and 2.char_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 5
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->long_ptr (and 0.long_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 6
+XFAIL: gdb.mi/mi2-var-child.exp: update all vars psnp->next->long_ptr (and 1.long_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 7
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->next->next->long_ptr (and 2.long_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: break in do_anonymous_type_tests
+PASS: gdb.mi/mi2-var-child.exp: continue to do_anonymous_type_tests breakpoint
+PASS: gdb.mi/mi2-var-child.exp: VT: create root varobj for ptr
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.a
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.a
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.b
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.b
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.c
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.c
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.c
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.c.*c
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.c.*c
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.d
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.d
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.e
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.e
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.f
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.f
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.g
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.g
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h.**h
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h.**h
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.integer
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.integer
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.unsigned_integer
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.unsigned_integer
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.character
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.character
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.signed_character
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.signed_character
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.0
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.0
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.1
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.1
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.2
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.2
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.3
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.3
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.4
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.4
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.5
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.5
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.6
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.6
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.7
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.7
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.8
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.8
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.9
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.9
+PASS: gdb.mi/mi2-var-child.exp: VT: create root varobj for v
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of v3
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3
+PASS: gdb.mi/mi2-var-child.exp: expression for v3
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.x
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.x
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of v3.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of v3.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.1_anonymous.a
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.1_anonymous.a
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.2_anonymous.b
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.2_anonymous.b
+Running ./gdb.mi/mi-async.exp ...
+Running ./gdb.mi/mi-basics.exp ...
+PASS: gdb.mi/mi-basics.exp: acceptance of MI operations
+PASS: gdb.mi/mi-basics.exp: file-exec-and-symbols operation
+PASS: gdb.mi/mi-basics.exp: file-exec-file operation
+PASS: gdb.mi/mi-basics.exp: file-symbol-file operation
+PASS: gdb.mi/mi-basics.exp: break-delete (all) operation
+PASS: gdb.mi/mi-basics.exp: all breakpoints removed
+PASS: gdb.mi/mi-basics.exp: environment-directory arg operation
+PASS: gdb.mi/mi-basics.exp: environment-directory empty-string operation
+PASS: gdb.mi/mi-basics.exp: environment-directory operation
+PASS: gdb.mi/mi-basics.exp: environment-cd arg operation
+PASS: gdb.mi/mi-basics.exp: environment-pwd operation
+PASS: gdb.mi/mi-basics.exp: environment-path
+PASS: gdb.mi/mi-basics.exp: environment-path no-args operation
+PASS: gdb.mi/mi-basics.exp: environment-path dir1 dir2 operation
+PASS: gdb.mi/mi-basics.exp: environment-path -r dir operation
+PASS: gdb.mi/mi-basics.exp: environment-path -r operation
+PASS: gdb.mi/mi-basics.exp: initial tty is mi_inferior_tty_name
+PASS: gdb.mi/mi-basics.exp: set tty to /dev/pts/1
+PASS: gdb.mi/mi-basics.exp: tty was set correctly
+PASS: gdb.mi/mi-basics.exp: set tty to the empty string
+PASS: gdb.mi/mi-basics.exp: make sure tty is empty
+PASS: gdb.mi/mi-basics.exp: set tty to mi_inferior_tty_name (the way it was)
+PASS: gdb.mi/mi-basics.exp: verify tty is correct
+Running ./gdb.mi/mi-break.exp ...
+PASS: gdb.mi/mi-break.exp: break-insert -t operation
+PASS: gdb.mi/mi-break.exp: insert temp breakpoint at basics.c:callee2
+PASS: gdb.mi/mi-break.exp: insert temp breakpoint at basics.c:$line_callee3_head
+PASS: gdb.mi/mi-break.exp: insert temp breakpoint at "<fullfilename>":$line_callee4_head
+PASS: gdb.mi/mi-break.exp: list of breakpoints
+PASS: gdb.mi/mi-break.exp: delete temp breakpoints
+KFAIL: gdb.mi/mi-break.exp: break-insert -r operation (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp callee2 (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp callee (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp .*llee (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: list of breakpoints (PRMS: mi/14270)
+PASS: gdb.mi/mi-break.exp: delete temp breakpoints
+PASS: gdb.mi/mi-break.exp: insert breakpoint with ignore count at callme
+PASS: gdb.mi/mi-break.exp: run to breakpoint with ignore count
+PASS: gdb.mi/mi-break.exp: breakpoint at nonexistent function
+PASS: gdb.mi/mi-break.exp: create varobj for function call
+PASS: gdb.mi/mi-break.exp: update varobj for function call
+PASS: gdb.mi/mi-break.exp: test disabled creation
+PASS: gdb.mi/mi-break.exp: test disabled creation: cleanup
+PASS: gdb.mi/mi-break.exp: breakpoint commands: insert breakpoint at basics.c:callee2
+PASS: gdb.mi/mi-break.exp: breakpoint commands: set commands
+PASS: gdb.mi/mi-break.exp: breakpoint commands: check that commands are set
+PASS: gdb.mi/mi-break.exp: breakpoint commands: clear commands
+PASS: gdb.mi/mi-break.exp: breakpoint commands: check that commands are cleared
+ERROR: couldn't load /var/tmp/portage/cross-i686-pc-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/gdb.mi/mi-break into /var/tmp/portage/cross-i686-pc-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../../gdb/gdb (timed out).
+UNRESOLVED: gdb.mi/mi-break.exp: breakpoint at main
+PASS: gdb.mi/mi-break.exp: mi runto main
+PASS: gdb.mi/mi-break.exp: breakpoint commands: insert breakpoint at basics.c:callee2, again
+PASS: gdb.mi/mi-break.exp: breakpoint commands: set commands
+PASS: gdb.mi/mi-break.exp: intermediate stop and continue
+PASS: gdb.mi/mi-break.exp: test hitting breakpoint with commands
+PASS: gdb.mi/mi-break.exp: create local variable tpnum
+PASS: gdb.mi/mi-break.exp: eval tpnum before tracepoint
+PASS: gdb.mi/mi-break.exp: break-insert -a operation
+PASS: gdb.mi/mi-break.exp: update tpnum
+PASS: gdb.mi/mi-break.exp: eval tpnum after tracepoint
+Running ./gdb.mi/mi-breakpoint-changed.exp ...
+PASS: gdb.mi/mi-breakpoint-changed.exp: breakpoint at main
+FAIL: gdb.mi/mi-breakpoint-changed.exp: mi runto main (unknown output after running)
+PASS: gdb.mi/mi-breakpoint-changed.exp: change command
+PASS: gdb.mi/mi-breakpoint-changed.exp: watch watch
+PASS: gdb.mi/mi-breakpoint-changed.exp: trace marker
+PASS: gdb.mi/mi-breakpoint-changed.exp: catch syscall
+PASS: gdb.mi/mi-breakpoint-changed.exp: dprintf marker, "arg" "
+PASS: gdb.mi/mi-breakpoint-changed.exp: condition 2 main > 0x0
+PASS: gdb.mi/mi-breakpoint-changed.exp: disable 3
+PASS: gdb.mi/mi-breakpoint-changed.exp: enable 3
+PASS: gdb.mi/mi-breakpoint-changed.exp: ignore 5 1
+PASS: gdb.mi/mi-breakpoint-changed.exp: passcount 1 4
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 3
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 4
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 5
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 6
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: insert breakpoint on pendfunc1
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc1 resolved
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc1 resolved: hit_count is updated
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to pendfunc1 breakpoint
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: delete breakpoint on pendfunc1
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: insert breakpoint on marker
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: insert breakpoint on pendfunc3
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to marker 1
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc3 resolved
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to marker 2
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc3 pending again
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved:
+Running ./gdb.mi/mi-catch-load.exp ...
+PASS: gdb.mi/mi-catch-load.exp: breakpoint at main
+PASS: gdb.mi/mi-catch-load.exp: mi runto main
+PASS: gdb.mi/mi-catch-load.exp: catch-load: auto-solib-add on
+PASS: gdb.mi/mi-catch-load.exp: catch-load: catch load
+FAIL: gdb.mi/mi-catch-load.exp: catch-load: solib-event stop
+PASS: gdb.mi/mi-catch-load.exp: breakpoint at main
+PASS: gdb.mi/mi-catch-load.exp: mi runto main
+PASS: gdb.mi/mi-catch-load.exp: catch-unload: auto-solib-add on
+PASS: gdb.mi/mi-catch-load.exp: catch-unload: catch unload
+FAIL: gdb.mi/mi-catch-load.exp: catch-unload: solib-event stop
+Running ./gdb.mi/mi-cli.exp ...
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec with no arguments
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec with one argument
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec with bogus interpreter
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console bogus
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "file $binfile"
+PASS: gdb.mi/mi-cli.exp: breakpoint at main
+PASS: gdb.mi/mi-cli.exp: mi runto main
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set args foobar"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "show args"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "break callee4"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "info break"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set listsize 1"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "list"
+PASS: gdb.mi/mi-cli.exp: continue to callee4
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "delete 2"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "up"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "down"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "frame 2"
+PASS: gdb.mi/mi-cli.exp: -stack-select-frame 0
+PASS: gdb.mi/mi-cli.exp: check *stopped from CLI command
+PASS: gdb.mi/mi-cli.exp: -break-insert -t basics.c:$line_main_hello
+PASS: gdb.mi/mi-cli.exp: -exec-continue to line $line_main_hello
+PASS: gdb.mi/mi-cli.exp: 34 next: run
+PASS: gdb.mi/mi-cli.exp: 34 next: stop
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "list" at basics.c:$line_main_return
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "help set args"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set $pc=0x0"
+Running ./gdb.mi/mi-cmd-param-changed.exp ...
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: breakpoint at main
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: mi runto main
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking step"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: interpreter-exec "set scheduler-locking on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: interpreter-exec "set scheduler-locking off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: interpreter-exec "set scheduler-locking step"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking on" no event (requested by MI)
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking step" no event (requested by MI interp)
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking stepr" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache" warmup
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type" warmup
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set trace-notes foo"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set trace-notes bar"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set trace-notes bar" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remote exec-file foo"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remote exec-file bar"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remote exec-file bar" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "maint set profile on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "maint set profile off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set ch type on"
+Running ./gdb.mi/mi-console.exp ...
+PASS: gdb.mi/mi-console.exp: breakpoint at main
+PASS: gdb.mi/mi-console.exp: mi runto main
+PASS: gdb.mi/mi-console.exp: Testing console output
+UNSUPPORTED: gdb.mi/mi-console.exp: Testing console output inferior output
+PASS: gdb.mi/mi-console.exp: finished step over hello
+Running ./gdb.mi/mi-disassemble.exp ...
+PASS: gdb.mi/mi-disassemble.exp: breakpoint at main
+PASS: gdb.mi/mi-disassemble.exp: mi runto main
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble from pc to pc+12 assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file & line, assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble from pc to pc+12 assembly with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file & line, assembly with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line assembly mixed with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble bogus filename
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble bogus address
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble mix different args
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble wrong mode arg
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (zero lines) assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (more than main lines) assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (zero lines) assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (more than main lines) assembly mixed
+Running ./gdb.mi/mi-eval.exp ...
+PASS: gdb.mi/mi-eval.exp: breakpoint at callee4
+PASS: gdb.mi/mi-eval.exp: mi runto callee4
+PASS: gdb.mi/mi-eval.exp: next at callee4
+PASS: gdb.mi/mi-eval.exp: eval A
+PASS: gdb.mi/mi-eval.exp: eval &A
+PASS: gdb.mi/mi-eval.exp: eval A+3
+PASS: gdb.mi/mi-eval.exp: eval A + 3
+Running ./gdb.mi/mi-file.exp ...
+PASS: gdb.mi/mi-file.exp: request path info of current source file (basics.c)
+PASS: gdb.mi/mi-file.exp: Getting a list of source files.
+Running ./gdb.mi/mi-file-transfer.exp ...
+FAIL: gdb.mi/mi-file-transfer.exp: put binary file
+FAIL: gdb.mi/mi-file-transfer.exp: get binary file
+FAIL: gdb.mi/mi-file-transfer.exp: compare binary file
+FAIL: gdb.mi/mi-file-transfer.exp: deleted binary file
+Running ./gdb.mi/mi-fill-memory.exp ...
+PASS: gdb.mi/mi-fill-memory.exp: breakpoint at main
+PASS: gdb.mi/mi-fill-memory.exp: mi runto main
+PASS: gdb.mi/mi-fill-memory.exp: next at main
+PASS: gdb.mi/mi-fill-memory.exp: no arguments
+PASS: gdb.mi/mi-fill-memory.exp: one argument missing
+PASS: gdb.mi/mi-fill-memory.exp: memory successfully written
+PASS: gdb.mi/mi-fill-memory.exp: memory successfully filled (8 bytes)
+PASS: gdb.mi/mi-fill-memory.exp: pattern correctly read from memory
+Running ./gdb.mi/mi-fullname-deleted.exp ...
+PASS: gdb.mi/mi-fullname-deleted.exp: set substitute-path
+PASS: gdb.mi/mi-fullname-deleted.exp: fullname present
+PASS: gdb.mi/mi-fullname-deleted.exp: substituted fullname
+PASS: gdb.mi/mi-fullname-deleted.exp: compare_filenames_for_search does not match
+PASS: gdb.mi/mi-fullname-deleted.exp: compare_filenames_for_search does match
+Running ./gdb.mi/mi-hack-cli.exp ...
+PASS: gdb.mi/mi-hack-cli.exp: show architecture
+PASS: gdb.mi/mi-hack-cli.exp: 47show architecture
+Running ./gdb.mi/mi-info-os.exp ...
+FAIL: gdb.mi/mi-info-os.exp: -info-os
+Running ./gdb.mi/mi-inheritance-syntax-error.exp ...
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: breakpoint at C::testLocation
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: mi runto C::testLocation
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: create var for THIS
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: list children of THIS
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: -var-info-path-expression var1.A
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: -data-evaluate-expression (*(class A*) this)
+Running ./gdb.mi/mi-logging.exp ...
+PASS: gdb.mi/mi-logging.exp: breakpoint at main
+PASS: gdb.mi/mi-logging.exp: mi runto main
+PASS: gdb.mi/mi-logging.exp: logging on
+PASS: gdb.mi/mi-logging.exp: logged step
+PASS: gdb.mi/mi-logging.exp: logged next
+PASS: gdb.mi/mi-logging.exp: logging off
+PASS: gdb.mi/mi-logging.exp: Log file contents
+PASS: gdb.mi/mi-logging.exp: redirect logging on
+PASS: gdb.mi/mi-logging.exp: redirect logging off
+PASS: gdb.mi/mi-logging.exp: Redirect log file contents
+Running ./gdb.mi/mi-memory-changed.exp ...
+PASS: gdb.mi/mi-memory-changed.exp: insert breakpoint
+PASS: gdb.mi/mi-memory-changed.exp: continue to callee4
+PASS: gdb.mi/mi-memory-changed.exp: set var C = 4
+PASS: gdb.mi/mi-memory-changed.exp: create objvar for C
+PASS: gdb.mi/mi-memory-changed.exp: change C thru. varobj
+PASS: gdb.mi/mi-memory-changed.exp: change C thru. -data-write-memory-bytes
+PASS: gdb.mi/mi-memory-changed.exp: get address of main
+Running ./gdb.mi/mi-nonstop-exit.exp ...
+PASS: gdb.mi/mi-nonstop-exit.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nonstop-exit.exp: breakpoint at main
+PASS: gdb.mi/mi-nonstop-exit.exp: mi runto main
+PASS: gdb.mi/mi-nonstop-exit.exp: finished exec continue
+PASS: gdb.mi/mi-nonstop-exit.exp: breakpoint at main
+PASS: gdb.mi/mi-nonstop-exit.exp: mi runto main
+PASS: gdb.mi/mi-nonstop-exit.exp: finished exec continue (2)
+Running ./gdb.mi/mi-nonstop.exp ...
+PASS: gdb.mi/mi-nonstop.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nonstop.exp: breakpoint at main
+PASS: gdb.mi/mi-nonstop.exp: mi runto main
+PASS: gdb.mi/mi-nonstop.exp: breakpoint at marker
+PASS: gdb.mi/mi-nonstop.exp: w0,i0 stop
+PASS: gdb.mi/mi-nonstop.exp: w1,i0 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 1
+PASS: gdb.mi/mi-nonstop.exp: select thread 2
+PASS: gdb.mi/mi-nonstop.exp: create varobj in first thread
+PASS: gdb.mi/mi-nonstop.exp: select thread 3
+PASS: gdb.mi/mi-nonstop.exp: create varobj in second thread
+PASS: gdb.mi/mi-nonstop.exp: thread state, resume 1
+PASS: gdb.mi/mi-nonstop.exp: w0,i1 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 2
+PASS: gdb.mi/mi-nonstop.exp: thread state, resume 2
+PASS: gdb.mi/mi-nonstop.exp: w1,i1 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 3
+PASS: gdb.mi/mi-nonstop.exp: update varobj, 1
+PASS: gdb.mi/mi-nonstop.exp: check varobj, w0, 1
+PASS: gdb.mi/mi-nonstop.exp: check varobj, w1, 1
+PASS: gdb.mi/mi-nonstop.exp: interrupted
+PASS: gdb.mi/mi-nonstop.exp: got interrupt
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 4
+PASS: gdb.mi/mi-nonstop.exp: resume all
+PASS: gdb.mi/mi-nonstop.exp: w0,i2 stop
+PASS: gdb.mi/mi-nonstop.exp: w1,i2 stop
+PASS: gdb.mi/mi-nonstop.exp: set condition, 1
+PASS: gdb.mi/mi-nonstop.exp: w0,i3 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop on cond breakpoint
+PASS: gdb.mi/mi-nonstop.exp: update varobj, 2
+PASS: gdb.mi/mi-nonstop.exp: check varobj, w1, 1
+PASS: gdb.mi/mi-nonstop.exp: stacktrace of running thread
+PASS: gdb.mi/mi-nonstop.exp: stacktrace of stopped thread
+PASS: gdb.mi/mi-nonstop.exp: select first worker thread
+PASS: gdb.mi/mi-nonstop.exp: ask the second thread to exit
+UNSUPPORTED: gdb.mi/mi-nonstop.exp: wait for thread exit
+PASS: gdb.mi/mi-nonstop.exp: stacktrace of stopped thread
+Running ./gdb.mi/mi-nsintrall.exp ...
+PASS: gdb.mi/mi-nsintrall.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nsintrall.exp: breakpoint at main
+PASS: gdb.mi/mi-nsintrall.exp: mi runto main
+PASS: gdb.mi/mi-nsintrall.exp: breakpoint at thread_function
+PASS: gdb.mi/mi-nsintrall.exp: stop 0
+PASS: gdb.mi/mi-nsintrall.exp: stop 1
+PASS: gdb.mi/mi-nsintrall.exp: stop 2
+PASS: gdb.mi/mi-nsintrall.exp: stop 3
+PASS: gdb.mi/mi-nsintrall.exp: stop 4
+PASS: gdb.mi/mi-nsintrall.exp: stop 5
+PASS: gdb.mi/mi-nsintrall.exp: thread state, all stopped
+PASS: gdb.mi/mi-nsintrall.exp: resume all, no breakpoint
+PASS: gdb.mi/mi-nsintrall.exp: thread state, resume all
+PASS: gdb.mi/mi-nsintrall.exp: interrupt all threads
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 0
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 1
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 2
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 3
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 4
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 5
+PASS: gdb.mi/mi-nsintrall.exp: thread state, all interrupted
+PASS: gdb.mi/mi-nsintrall.exp: resume all after interrupting
+PASS: gdb.mi/mi-nsintrall.exp: thread state, resume all after interrupting
+Running ./gdb.mi/mi-nsmoribund.exp ...
+PASS: gdb.mi/mi-nsmoribund.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nsmoribund.exp: breakpoint at main
+PASS: gdb.mi/mi-nsmoribund.exp: mi runto main
+PASS: gdb.mi/mi-nsmoribund.exp: breakpoint at thread_function
+PASS: gdb.mi/mi-nsmoribund.exp: stop 0
+PASS: gdb.mi/mi-nsmoribund.exp: stop 1
+PASS: gdb.mi/mi-nsmoribund.exp: stop 2
+PASS: gdb.mi/mi-nsmoribund.exp: stop 3
+PASS: gdb.mi/mi-nsmoribund.exp: stop 4
+PASS: gdb.mi/mi-nsmoribund.exp: stop 5
+PASS: gdb.mi/mi-nsmoribund.exp: stop 6
+PASS: gdb.mi/mi-nsmoribund.exp: stop 7
+PASS: gdb.mi/mi-nsmoribund.exp: stop 8
+PASS: gdb.mi/mi-nsmoribund.exp: stop 9
+PASS: gdb.mi/mi-nsmoribund.exp: thread state: all stopped except the main thread
+PASS: gdb.mi/mi-nsmoribund.exp: select thread 5
+PASS: gdb.mi/mi-nsmoribund.exp: thread specific breakpoint at thread_function
+PASS: gdb.mi/mi-nsmoribund.exp: resume all, thread specific breakpoint
+PASS: gdb.mi/mi-nsmoribund.exp: hit thread specific breakpoint
+PASS: gdb.mi/mi-nsmoribund.exp: thread state: all running except the breakpoint thread
+PASS: gdb.mi/mi-nsmoribund.exp: resume all, program exited normally
+Running ./gdb.mi/mi-ns-stale-regcache.exp ...
+PASS: gdb.mi/mi-ns-stale-regcache.exp: breakpoint at main
+PASS: gdb.mi/mi-ns-stale-regcache.exp: mi runto main
+PASS: gdb.mi/mi-ns-stale-regcache.exp: no stale register cache of resumed thread
+PASS: gdb.mi/mi-ns-stale-regcache.exp: no stale frame info of resumed thread
+PASS: gdb.mi/mi-ns-stale-regcache.exp: main thread still running
+Running ./gdb.mi/mi-nsthrexec.exp ...
+Running ./gdb.mi/mi-pending.exp ...
+PASS: gdb.mi/mi-pending.exp: MI pending breakpoint on pendfunc1
+PASS: gdb.mi/mi-pending.exp: MI pending breakpoint on mi-pendshr.c:pendfunc2 if x==4
+PASS: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc1
+PASS: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc1 a second time
+PASS: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc2 with x==4
+Running ./gdb.mi/mi-pthreads.exp ...
+PASS: gdb.mi/mi-pthreads.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-pthreads.exp: breakpoint at done_making_threads
+PASS: gdb.mi/mi-pthreads.exp: mi runto done_making_threads
+PASS: gdb.mi/mi-pthreads.exp: -thread_list_ids (in check_mi_thread_command_set)
+PASS: gdb.mi/mi-pthreads.exp: finding threads in MI output (in check_mi_thread_command_set)
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 123456789
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 6
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 5
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 4
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 3
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 2
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 1
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 6
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 5
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 4
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 3
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 2
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 1
+Running ./gdb.mi/mi-read-memory.exp ...
+PASS: gdb.mi/mi-read-memory.exp: breakpoint at main
+PASS: gdb.mi/mi-read-memory.exp: mi runto main
+PASS: gdb.mi/mi-read-memory.exp: next at main
+PASS: gdb.mi/mi-read-memory.exp: no arguments
+PASS: gdb.mi/mi-read-memory.exp: 3x2, one byte
+PASS: gdb.mi/mi-read-memory.exp: 3x2, one byte offset by -6
+PASS: gdb.mi/mi-read-memory.exp: expression in quotes
+PASS: gdb.mi/mi-read-memory.exp: ascii and data
+PASS: gdb.mi/mi-read-memory.exp: decimal
+PASS: gdb.mi/mi-read-memory.exp: octal
+Running ./gdb.mi/mi-record-changed.exp ...
+Running ./gdb.mi/mi-regs.exp ...
+Running ./gdb.mi/mi-return.exp ...
+PASS: gdb.mi/mi-return.exp: breakpoint at callee4
+PASS: gdb.mi/mi-return.exp: mi runto callee4
+PASS: gdb.mi/mi-return.exp: delete all breakpoints
+PASS: gdb.mi/mi-return.exp: return from callee4 now
+Running ./gdb.mi/mi-reverse.exp ...
+Running ./gdb.mi/mi-simplerun.exp ...
+PASS: gdb.mi/mi-simplerun.exp: break-insert operation
+PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at basics.c:callee2
+PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at basics.c:$line_callee3_head
+PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at "<fullfilename>":$line_callee4_head
+PASS: gdb.mi/mi-simplerun.exp: list of breakpoints
+PASS: gdb.mi/mi-simplerun.exp: disabling of breakpoints
+PASS: gdb.mi/mi-simplerun.exp: list of breakpoints, 16 disabled
+PASS: gdb.mi/mi-simplerun.exp: run to main
+PASS: gdb.mi/mi-simplerun.exp: next at main
+PASS: gdb.mi/mi-simplerun.exp: step at main
+PASS: gdb.mi/mi-simplerun.exp: step to callee4
+PASS: gdb.mi/mi-simplerun.exp: exec-finish
+PASS: gdb.mi/mi-simplerun.exp: continue to end
+Running ./gdb.mi/mi-solib.exp ...
+PASS: gdb.mi/mi-solib.exp: set stop-on-solib-events
+PASS: gdb.mi/mi-solib.exp: check for solib event
+Running ./gdb.mi/mi-stack.exp ...
+PASS: gdb.mi/mi-stack.exp: breakpoint at callee4
+PASS: gdb.mi/mi-stack.exp: mi runto callee4
+PASS: gdb.mi/mi-stack.exp: stack frame listing
+PASS: gdb.mi/mi-stack.exp: stack frame listing 1 1
+PASS: gdb.mi/mi-stack.exp: stack frame listing 1 3
+PASS: gdb.mi/mi-stack.exp: stack frame listing wrong
+PASS: gdb.mi/mi-stack.exp: selected frame listing
+PASS: gdb.mi/mi-stack.exp: stack frame listing 1 300
+PASS: gdb.mi/mi-stack.exp: stack args listing 0
+PASS: gdb.mi/mi-stack.exp: stack args listing 0 1 1
+PASS: gdb.mi/mi-stack.exp: stack args listing 0 1 3
+PASS: gdb.mi/mi-stack.exp: stack args listing 1
+PASS: gdb.mi/mi-stack.exp: stack args listing 1 1 1
+PASS: gdb.mi/mi-stack.exp: stack args listing 1 1 3
+PASS: gdb.mi/mi-stack.exp: stack args listing wrong
+PASS: gdb.mi/mi-stack.exp: stack args listing 1 1 300
+PASS: gdb.mi/mi-stack.exp: stack locals listing of names
+PASS: gdb.mi/mi-stack.exp: next's in callee4
+PASS: gdb.mi/mi-stack.exp: stack locals listing of names and values
+PASS: gdb.mi/mi-stack.exp: stack locals listing, simple types: names and values, complex type: names and types
+PASS: gdb.mi/mi-stack.exp: stack locals listing wrong
+PASS: gdb.mi/mi-stack.exp: stack select frame 1
+PASS: gdb.mi/mi-stack.exp: stack locals listing for new frame
+PASS: gdb.mi/mi-stack.exp: stack locals for same frame (level 1)
+PASS: gdb.mi/mi-stack.exp: stack info-depth
+PASS: gdb.mi/mi-stack.exp: stack info-depth 3
+PASS: gdb.mi/mi-stack.exp: stack info-depth 99
+PASS: gdb.mi/mi-stack.exp: stack info-depth wrong usage
+Running ./gdb.mi/mi-stepi.exp ...
+PASS: gdb.mi/mi-stepi.exp: breakpoint at main
+PASS: gdb.mi/mi-stepi.exp: mi runto main
+PASS: gdb.mi/mi-stepi.exp: step-instruction at main
+PASS: gdb.mi/mi-stepi.exp: step-instruction at main (line check)
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main (line check)
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main 2
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main 2 (line check)
+Running ./gdb.mi/mi-stepn.exp ...
+PASS: gdb.mi/mi-stepn.exp: breakpoint at main
+PASS: gdb.mi/mi-stepn.exp: mi runto main
+PASS: gdb.mi/mi-stepn.exp: breakpoint at do_nothing
+PASS: gdb.mi/mi-stepn.exp: breakpoint-hit reported
+Running ./gdb.mi/mi-syn-frame.exp ...
+PASS: gdb.mi/mi-syn-frame.exp: breakpoint at main
+PASS: gdb.mi/mi-syn-frame.exp: mi runto main
+PASS: gdb.mi/mi-syn-frame.exp: insert breakpoint foo
+PASS: gdb.mi/mi-syn-frame.exp: call inferior's function with a breakpoint set in it
+PASS: gdb.mi/mi-syn-frame.exp: backtrace from inferior function stopped at bp, showing gdb dummy frame
+PASS: gdb.mi/mi-syn-frame.exp: finished exec continue
+PASS: gdb.mi/mi-syn-frame.exp: list stack frames
+PASS: gdb.mi/mi-syn-frame.exp: insert breakpoint subroutine
+PASS: gdb.mi/mi-syn-frame.exp: data evaluate expression
+PASS: gdb.mi/mi-syn-frame.exp: list stack frames
+PASS: gdb.mi/mi-syn-frame.exp: finished exec continue
+PASS: gdb.mi/mi-syn-frame.exp: list stack frames
+PASS: gdb.mi/mi-syn-frame.exp: call inferior function which raises exception
+PASS: gdb.mi/mi-syn-frame.exp: backtrace from inferior function at exception
+Running ./gdb.mi/mi-until.exp ...
+PASS: gdb.mi/mi-until.exp: break-insert operation
+PASS: gdb.mi/mi-until.exp: run to main
+PASS: gdb.mi/mi-until.exp: break-delete 1
+KFAIL: gdb.mi/mi-until.exp: until after while loop (stopped at wrong place) (PRMS: gdb/2104)
+PASS: gdb.mi/mi-until.exp: until line number
+PASS: gdb.mi/mi-until.exp: until line number:file
+PASS: gdb.mi/mi-until.exp: until after current function
+Running ./gdb.mi/mi-var-block.exp ...
+PASS: gdb.mi/mi-var-block.exp: breakpoint at do_block_tests
+PASS: gdb.mi/mi-var-block.exp: mi runto do_block_tests
+PASS: gdb.mi/mi-var-block.exp: create local variable cb
+PASS: gdb.mi/mi-var-block.exp: try to create local variable foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 1
+PASS: gdb.mi/mi-var-block.exp: delete var foo 1
+PASS: gdb.mi/mi-var-block.exp: create local variable foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 2
+PASS: gdb.mi/mi-var-block.exp: update all vars: cb foo changed
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 3
+PASS: gdb.mi/mi-var-block.exp: create local variable inner_foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 4
+PASS: gdb.mi/mi-var-block.exp: create local variable foo2
+XFAIL: gdb.mi/mi-var-block.exp: update inner_foo: should be out of scope: KNOWN PROBLEM
+XFAIL: gdb.mi/mi-var-block.exp: evaluate inner_foo: should be out of scope: KNOWN PROBLEM
+PASS: gdb.mi/mi-var-block.exp: update foo: did not change
+PASS: gdb.mi/mi-var-block.exp: delete var inner_foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 5
+XFAIL: gdb.mi/mi-var-block.exp: update foo2: should be out of scope: KNOWN PROBLEM
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 6
+XFAIL: gdb.mi/mi-var-block.exp: update foo2 should be out of scope: KNOWN PROBLEM
+XFAIL: gdb.mi/mi-var-block.exp: update foo should be out of scope: KNOWN PROBLEM
+PASS: gdb.mi/mi-var-block.exp: update cb
+PASS: gdb.mi/mi-var-block.exp: delete var foo 2
+PASS: gdb.mi/mi-var-block.exp: delete var foo2
+PASS: gdb.mi/mi-var-block.exp: delete var cb
+Running ./gdb.mi/mi-var-child.exp ...
+PASS: gdb.mi/mi-var-child.exp: breakpoint at do_children_tests
+PASS: gdb.mi/mi-var-child.exp: mi runto do_children_tests
+PASS: gdb.mi/mi-var-child.exp: run to 215 (set breakpoint)
+PASS: gdb.mi/mi-var-child.exp: create local variable struct_declarations
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.integer
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.integer
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.character
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.character
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_int
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_int
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.1
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.1
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.3
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.3
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.4
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.4
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.5
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.5
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.6
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.6
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.7
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.7
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.8
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.8
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.9
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.9
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.a
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.a
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.b
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.b
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.c
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.c
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.d
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.d
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.g
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.g
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.h
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.h
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.i
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.i
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: step to line $line_dct_123
+PASS: gdb.mi/mi-var-child.exp: create local variable weird
+PASS: gdb.mi/mi-var-child.exp: get children of weird
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird
+PASS: gdb.mi/mi-var-child.exp: get children of weird.long_array
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird.long_array
+PASS: gdb.mi/mi-var-child.exp: get children of weird.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: create local variable weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: is weird editable
+PASS: gdb.mi/mi-var-child.exp: is weird->int_ptr_ptr editable
+PASS: gdb.mi/mi-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr editable
+PASS: gdb.mi/mi-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable
+PASS: gdb.mi/mi-var-child.exp: is weird.u1 editable
+PASS: gdb.mi/mi-var-child.exp: is weird.s2 editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.u1.a editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.u1.b editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.u1.c editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.long_array editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.long_array.0 editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations editable
+PASS: gdb.mi/mi-var-child.exp: delete var weird
+PASS: gdb.mi/mi-var-child.exp: update all vars. None changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 1
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.integer
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 4
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.char_ptr
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 5
+PASS: gdb.mi/mi-var-child.exp: update all vars int_ptr_ptr and children changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 6
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.0 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 7
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.1 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 8
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.2 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_nothing
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.3-9 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 1
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.func_ptr changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 2
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.10 changed, don't print values.
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_a0_0
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.11 changed, print values.
+PASS: gdb.mi/mi-var-child.exp: listing of names and values of children
+PASS: gdb.mi/mi-var-child.exp: listing of children, simple types: names, type and values, complex types: names and types
+PASS: gdb.mi/mi-var-child.exp: delete var struct_declarations
+PASS: gdb.mi/mi-var-child.exp: delete var weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 1
+PASS: gdb.mi/mi-var-child.exp: create local variable  psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: create local variable  psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: create local variable  psnp->ptrs
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.next
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.next.ptrs
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 2
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->char_ptr (and 0.char_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 3
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->next->char_ptr (and 1.char_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 4
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->next->next->char_ptr (and 2.char_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 5
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->long_ptr (and 0.long_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 6
+XFAIL: gdb.mi/mi-var-child.exp: update all vars psnp->next->long_ptr (and 1.long_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 7
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->next->next->long_ptr (and 2.long_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: run to mi-var-child.c:323 (set breakpoint)
+PASS: gdb.mi/mi-var-child.exp: create varobj for s
+PASS: gdb.mi/mi-var-child.exp: list children of S
+PASS: gdb.mi/mi-var-child.exp: delete S.a
+PASS: gdb.mi/mi-var-child.exp: delete S.b
+PASS: gdb.mi/mi-var-child.exp: delete S
+Running ./gdb.mi/mi-var-child-f.exp ...
+UNSUPPORTED: gdb.mi/mi-var-child-f.exp: compilation array.f
+Running ./gdb.mi/mi-var-cmd.exp ...
+PASS: gdb.mi/mi-var-cmd.exp: create global variable
+PASS: gdb.mi/mi-var-cmd.exp: create non-existent variable
+PASS: gdb.mi/mi-var-cmd.exp: create out of scope variable
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: run to 148 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create local variable linteger
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpcharacter
+PASS: gdb.mi/mi-var-cmd.exp: create local variable llong
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lplong
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lfloat
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpfloat
+PASS: gdb.mi/mi-var-cmd.exp: create local variable ldouble
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpdouble
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lsimple
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpsimple
+PASS: gdb.mi/mi-var-cmd.exp: create local variable func
+PASS: gdb.mi/mi-var-cmd.exp: create lsimple.character
+PASS: gdb.mi/mi-var-cmd.exp: create lsimple->integer
+PASS: gdb.mi/mi-var-cmd.exp: create lsimple.integer
+PASS: gdb.mi/mi-var-cmd.exp: create int
+PASS: gdb.mi/mi-var-cmd.exp: update all vars
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_test
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: linteger changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (2)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lpinteger changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (3)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lcharacter changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (4)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lpcharacter changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (5)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: many changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (6)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: func and lpsimple changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (7)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lsimple and others changed
+PASS: gdb.mi/mi-var-cmd.exp: assign to global_simple
+PASS: gdb.mi/mi-var-cmd.exp: assign to linteger
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: linteger changed after assign
+PASS: gdb.mi/mi-var-cmd.exp: assign to linteger again, same value
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: linteger not changed after same assign
+PASS: gdb.mi/mi-var-cmd.exp: eval linteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lpinteger changed after assign
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: no changes on second update
+PASS: gdb.mi/mi-var-cmd.exp: eval lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to linteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: eval lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: assign to llong
+PASS: gdb.mi/mi-var-cmd.exp: eval llong
+PASS: gdb.mi/mi-var-cmd.exp: assign to llong
+PASS: gdb.mi/mi-var-cmd.exp: assign to lplong
+PASS: gdb.mi/mi-var-cmd.exp: eval lplong
+PASS: gdb.mi/mi-var-cmd.exp: assign to lplong
+PASS: gdb.mi/mi-var-cmd.exp: assign to lfloat
+PASS: gdb.mi/mi-var-cmd.exp: eval lfloat
+PASS: gdb.mi/mi-var-cmd.exp: assign to lfloat
+PASS: gdb.mi/mi-var-cmd.exp: assign to lpfloat
+PASS: gdb.mi/mi-var-cmd.exp: assign to ldouble
+PASS: gdb.mi/mi-var-cmd.exp: assign to func
+PASS: gdb.mi/mi-var-cmd.exp: assign to lsimple.character
+PASS: gdb.mi/mi-var-cmd.exp: assign to lsimple->integer
+PASS: gdb.mi/mi-var-cmd.exp: assign to lsimple.integer
+PASS: gdb.mi/mi-var-cmd.exp: var update
+PASS: gdb.mi/mi-var-cmd.exp: assign same value to func
+PASS: gdb.mi/mi-var-cmd.exp: assign same value to func (update)
+PASS: gdb.mi/mi-var-cmd.exp: create global variable array_ptr
+PASS: gdb.mi/mi-var-cmd.exp: assign array to pointer
+PASS: gdb.mi/mi-var-cmd.exp: assign array to pointer (update)
+PASS: gdb.mi/mi-var-cmd.exp: assign same array to pointer
+PASS: gdb.mi/mi-var-cmd.exp: assign same array to pointer (update)
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at subroutine1
+PASS: gdb.mi/mi-var-cmd.exp: mi runto subroutine1
+PASS: gdb.mi/mi-var-cmd.exp: create i
+PASS: gdb.mi/mi-var-cmd.exp: create l
+PASS: gdb.mi/mi-var-cmd.exp: create linteger
+PASS: gdb.mi/mi-var-cmd.exp: step at subroutine1
+XFAIL: gdb.mi/mi-var-cmd.exp: update all vars: changed FIXME
+PASS: gdb.mi/mi-var-cmd.exp: step at subroutine1 (2)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: i changed
+PASS: gdb.mi/mi-var-cmd.exp: step at subroutine1 (3)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: llong changed
+PASS: gdb.mi/mi-var-cmd.exp: next out of subroutine1
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: all now out of scope
+PASS: gdb.mi/mi-var-cmd.exp: delete var
+PASS: gdb.mi/mi-var-cmd.exp: delete var linteger
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: delete var lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpcharacter
+PASS: gdb.mi/mi-var-cmd.exp: delete var llong
+PASS: gdb.mi/mi-var-cmd.exp: delete var lplong
+PASS: gdb.mi/mi-var-cmd.exp: delete var lfloat
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpfloat
+PASS: gdb.mi/mi-var-cmd.exp: delete var ldouble
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpdouble
+PASS: gdb.mi/mi-var-cmd.exp: delete var lsimple
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpsimple
+PASS: gdb.mi/mi-var-cmd.exp: delete var func
+PASS: gdb.mi/mi-var-cmd.exp: delete var lsimple.character
+PASS: gdb.mi/mi-var-cmd.exp: delete var  lsimple->integer
+PASS: gdb.mi/mi-var-cmd.exp: delete var lsimple.integer
+PASS: gdb.mi/mi-var-cmd.exp: delete var i
+PASS: gdb.mi/mi-var-cmd.exp: delete var l
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: create selected_a
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at incr_a
+PASS: gdb.mi/mi-var-cmd.exp: mi runto incr_a
+PASS: gdb.mi/mi-var-cmd.exp: update selected_a in incr_a
+PASS: gdb.mi/mi-var-cmd.exp: step a line in incr_a
+PASS: gdb.mi/mi-var-cmd.exp: return from incr_a to do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: update selected_a in do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: floating varobj invalidation
+PASS: gdb.mi/mi-var-cmd.exp: delete selected_a
+PASS: gdb.mi/mi-var-cmd.exp: delete array_ptr
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:351 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create varobj for v1
+PASS: gdb.mi/mi-var-cmd.exp: create varobj for v2
+PASS: gdb.mi/mi-var-cmd.exp: list children of v1
+PASS: gdb.mi/mi-var-cmd.exp: list children of v1.nested
+PASS: gdb.mi/mi-var-cmd.exp: check V1.i: 1
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.j: 2
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.k: 3
+PASS: gdb.mi/mi-var-cmd.exp: check V2: 4
+PASS: gdb.mi/mi-var-cmd.exp: update varobjs: V2 changed
+PASS: gdb.mi/mi-var-cmd.exp: -var-set-frozen V2 1
+PASS: gdb.mi/mi-var-cmd.exp: update varobjs: nothing changed
+PASS: gdb.mi/mi-var-cmd.exp: check V2: 5
+PASS: gdb.mi/mi-var-cmd.exp: update V2 explicitly
+PASS: gdb.mi/mi-var-cmd.exp: check V2: 6
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:385 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: -var-set-frozen V1 1
+PASS: gdb.mi/mi-var-cmd.exp: update varobjs: nothing changed
+PASS: gdb.mi/mi-var-cmd.exp: check V1.i: 1
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.j: 2
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.k: 3
+PASS: gdb.mi/mi-var-cmd.exp: update V1.nested.j
+PASS: gdb.mi/mi-var-cmd.exp: check V1.i: 1
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.j: 8
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.k: 3
+PASS: gdb.mi/mi-var-cmd.exp: update V1.nested
+PASS: gdb.mi/mi-var-cmd.exp: check V1.i: 1
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.j: 8
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.k: 9
+PASS: gdb.mi/mi-var-cmd.exp: update V1.i
+PASS: gdb.mi/mi-var-cmd.exp: check V1.i: 7
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:410 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: -var-set-frozen V1 0
+PASS: gdb.mi/mi-var-cmd.exp: check V1.i: 7
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.j: 8
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.k: 9
+PASS: gdb.mi/mi-var-cmd.exp: update V1
+PASS: gdb.mi/mi-var-cmd.exp: check V1.i: 10
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.j: 11
+PASS: gdb.mi/mi-var-cmd.exp: check V1.nested.k: 12
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:510 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create varobj for Data
+PASS: gdb.mi/mi-var-cmd.exp: list children of Data
+PASS: gdb.mi/mi-var-cmd.exp: access bitfield
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:453 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create floating varobj
+PASS: gdb.mi/mi-var-cmd.exp: update F (1)
+PASS: gdb.mi/mi-var-cmd.exp: check F (1)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:464 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: update F (2)
+PASS: gdb.mi/mi-var-cmd.exp: check F (2)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:472 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: update F (--all-values)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:478 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: update F (3)
+PASS: gdb.mi/mi-var-cmd.exp: check F (3)
+PASS: gdb.mi/mi-var-cmd.exp: inside breakpoint inside callee
+PASS: gdb.mi/mi-var-cmd.exp: continue to where i is initialized
+PASS: gdb.mi/mi-var-cmd.exp: update F inside callee
+PASS: gdb.mi/mi-var-cmd.exp: check F inside callee
+PASS: gdb.mi/mi-var-cmd.exp: create null_ptr
+PASS: gdb.mi/mi-var-cmd.exp: update null_ptr
+PASS: gdb.mi/mi-var-cmd.exp: delete null_ptr
+PASS: gdb.mi/mi-var-cmd.exp: kill program before endvar
+PASS: gdb.mi/mi-var-cmd.exp: create endvar
+PASS: gdb.mi/mi-var-cmd.exp: update endvar
+PASS: gdb.mi/mi-var-cmd.exp: delete endvar
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: create varobj
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: check initial value
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at main
+PASS: gdb.mi/mi-var-cmd.exp: mi runto main
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now, not changed
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now, not changed
+Running ./gdb.mi/mi-var-cp.exp ...
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:20 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for rx
+PASS: gdb.mi/mi-var-cp.exp: update RX (1)
+PASS: gdb.mi/mi-var-cp.exp: check RX: expect 167
+PASS: gdb.mi/mi-var-cp.exp: update RX (2)
+PASS: gdb.mi/mi-var-cp.exp: check RX: expect 567
+PASS: gdb.mi/mi-var-cp.exp: update RX (3)
+PASS: gdb.mi/mi-var-cp.exp: delete RX
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:46 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for s2
+PASS: gdb.mi/mi-var-cp.exp: list children of s2
+PASS: gdb.mi/mi-var-cp.exp: list children of s2.s
+PASS: gdb.mi/mi-var-cp.exp: list children of s2.s.public
+PASS: gdb.mi/mi-var-cp.exp: check S2.S.public.i
+PASS: gdb.mi/mi-var-cp.exp: check S2.S.public.j
+PASS: gdb.mi/mi-var-cp.exp: delete S2
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:82 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for rptr_s
+PASS: gdb.mi/mi-var-cp.exp: list public child of RPTR
+PASS: gdb.mi/mi-var-cp.exp: list children of reference to pointer
+PASS: gdb.mi/mi-var-cp.exp: check i member
+PASS: gdb.mi/mi-var-cp.exp: check j member
+PASS: gdb.mi/mi-var-cp.exp: delete RPTR
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:105 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for s
+PASS: gdb.mi/mi-var-cp.exp: create varobj for s
+PASS: gdb.mi/mi-var-cp.exp: check attributes of S
+PASS: gdb.mi/mi-var-cp.exp: check attributes of R
+PASS: gdb.mi/mi-var-cp.exp: -var-update should not list structure varobjs
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:145 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for ip
+PASS: gdb.mi/mi-var-cp.exp: list children of IP
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression IP.*ip
+PASS: gdb.mi/mi-var-cp.exp: create varobj for dp
+PASS: gdb.mi/mi-var-cp.exp: list children of DP
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.Base1
+PASS: gdb.mi/mi-var-cp.exp: list children of DP.public
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.public.i
+PASS: gdb.mi/mi-var-cp.exp: list children of DP.Base1
+PASS: gdb.mi/mi-var-cp.exp: list children of DP.Base1.public
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.Base1.public.i
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.public
+PASS: gdb.mi/mi-var-cp.exp: create varobj for d
+PASS: gdb.mi/mi-var-cp.exp: list children of D
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression D.Base1
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:192 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for array
+PASS: gdb.mi/mi-var-cp.exp: list children of A
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression A.2
+PASS: gdb.mi/mi-var-cp.exp: break in anonymous_structs_and_unions
+PASS: gdb.mi/mi-var-cp.exp: continue to anonymous_structs breakpoint
+PASS: gdb.mi/mi-var-cp.exp: VT: create root varobj for a
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1
+PASS: gdb.mi/mi-var-cp.exp: expression for a1
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.0_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.0_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous.public.b
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous.public.b
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous.public.c
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous.public.c
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.d
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.d
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.e
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.e
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.f
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.f
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.i
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.i
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.j
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.j
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.g
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.g
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.h
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.h
+Running ./gdb.mi/mi-var-create-rtti.exp ...
+PASS: gdb.mi/mi-var-create-rtti.exp: breakpoint at main
+PASS: gdb.mi/mi-var-create-rtti.exp: mi runto main
+PASS: gdb.mi/mi-var-create-rtti.exp: -var-create sp1 * $sp
+Running ./gdb.mi/mi-var-display.exp ...
+PASS: gdb.mi/mi-var-display.exp: break-insert operation
+PASS: gdb.mi/mi-var-display.exp: run to main
+PASS: gdb.mi/mi-var-display.exp: create local variable bar
+PASS: gdb.mi/mi-var-display.exp: info type variable bar
+PASS: gdb.mi/mi-var-display.exp: show format variable bar
+PASS: gdb.mi/mi-var-display.exp: eval variable bar
+PASS: gdb.mi/mi-var-display.exp: set format variable bar
+PASS: gdb.mi/mi-var-display.exp: eval variable bar with new format
+PASS: gdb.mi/mi-var-display.exp: assing to variable bar
+PASS: gdb.mi/mi-var-display.exp: set format variable bar
+PASS: gdb.mi/mi-var-display.exp: eval variable bar with new value
+PASS: gdb.mi/mi-var-display.exp: delete var bar
+PASS: gdb.mi/mi-var-display.exp: create local variable foo
+PASS: gdb.mi/mi-var-display.exp: info type variable foo
+PASS: gdb.mi/mi-var-display.exp: show format variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo
+PASS: gdb.mi/mi-var-display.exp: set format variable foo
+PASS: gdb.mi/mi-var-display.exp: show format variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo
+PASS: gdb.mi/mi-var-display.exp: assing to variable foo
+PASS: gdb.mi/mi-var-display.exp: set format variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in hex
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in hex
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in octal
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in octal
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in decimal
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in decimal
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in natural
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in natural
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in binary
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in binary
+PASS: gdb.mi/mi-var-display.exp: delete var foo
+PASS: gdb.mi/mi-var-display.exp: create local variable weird
+PASS: gdb.mi/mi-var-display.exp: get children local variable weird
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr
+PASS: gdb.mi/mi-var-display.exp: show format variable weird.func_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: show format variable weird.func_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.integer
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.character
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.char_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.long_int
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.int_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.long_array
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_struct
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.u1
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.s2
+PASS: gdb.mi/mi-var-display.exp: delete var weird
+PASS: gdb.mi/mi-var-display.exp: break-insert operation 2
+PASS: gdb.mi/mi-var-display.exp: continue to do_special_tests
+PASS: gdb.mi/mi-var-display.exp: create local variable u
+PASS: gdb.mi/mi-var-display.exp: eval variable u
+PASS: gdb.mi/mi-var-display.exp: info type variable u
+PASS: gdb.mi/mi-var-display.exp: is u editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of u
+PASS: gdb.mi/mi-var-display.exp: get children of u
+PASS: gdb.mi/mi-var-display.exp: create local variable anonu
+PASS: gdb.mi/mi-var-display.exp: eval variable anonu
+PASS: gdb.mi/mi-var-display.exp: info type variable anonu
+PASS: gdb.mi/mi-var-display.exp: is anonu editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of anonu
+PASS: gdb.mi/mi-var-display.exp: get children of anonu
+PASS: gdb.mi/mi-var-display.exp: create local variable s
+PASS: gdb.mi/mi-var-display.exp: eval variable s
+PASS: gdb.mi/mi-var-display.exp: info type variable s
+PASS: gdb.mi/mi-var-display.exp: is s editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of s
+PASS: gdb.mi/mi-var-display.exp: get children of s
+PASS: gdb.mi/mi-var-display.exp: create local variable anons
+PASS: gdb.mi/mi-var-display.exp: eval variable anons
+PASS: gdb.mi/mi-var-display.exp: info type variable anons
+PASS: gdb.mi/mi-var-display.exp: is anons editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of anons
+PASS: gdb.mi/mi-var-display.exp: get children of anons
+PASS: gdb.mi/mi-var-display.exp: create local variable e
+PASS: gdb.mi/mi-var-display.exp: eval variable e
+PASS: gdb.mi/mi-var-display.exp: info type variable e
+PASS: gdb.mi/mi-var-display.exp: is e editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of e
+PASS: gdb.mi/mi-var-display.exp: get children of e
+PASS: gdb.mi/mi-var-display.exp: create local variable anone
+PASS: gdb.mi/mi-var-display.exp: eval variable anone
+PASS: gdb.mi/mi-var-display.exp: create duplicate local variable anone
+PASS: gdb.mi/mi-var-display.exp: info type variable anone
+PASS: gdb.mi/mi-var-display.exp: is anone editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of anone
+PASS: gdb.mi/mi-var-display.exp: get children of anone
+PASS: gdb.mi/mi-var-display.exp: print FP register
+PASS: gdb.mi/mi-var-display.exp: breakpoint at incr_a
+PASS: gdb.mi/mi-var-display.exp: mi runto incr_a
+PASS: gdb.mi/mi-var-display.exp: create local variable a1
+PASS: gdb.mi/mi-var-display.exp: create variable a2 in different scope
+Running ./gdb.mi/mi-var-invalidate.exp ...
+PASS: gdb.mi/mi-var-invalidate.exp: create global variable
+PASS: gdb.mi/mi-var-invalidate.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-invalidate.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-invalidate.exp: create local variable linteger
+PASS: gdb.mi/mi-var-invalidate.exp: create floating variable
+PASS: gdb.mi/mi-var-invalidate.exp: breakpoint at main
+PASS: gdb.mi/mi-var-invalidate.exp: mi runto main
+PASS: gdb.mi/mi-var-invalidate.exp: set format variable float_simple
+PASS: gdb.mi/mi-var-invalidate.exp: linteger not anymore in scope due to binary changes
+PASS: gdb.mi/mi-var-invalidate.exp: no type for invalid variable linteger (1)
+PASS: gdb.mi/mi-var-invalidate.exp: global_simple still alive
+PASS: gdb.mi/mi-var-invalidate.exp: type simpleton for valid variable global_simple
+PASS: gdb.mi/mi-var-invalidate.exp: linteger not valid anymore due to binary changes
+PASS: gdb.mi/mi-var-invalidate.exp: no type for invalid variable linteger (2)
+PASS: gdb.mi/mi-var-invalidate.exp: global_simple not anymore in scope due to binary changes
+PASS: gdb.mi/mi-var-invalidate.exp: no type for invalid variable global_simple
+Running ./gdb.mi/mi-var-rtti.exp ...
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:37 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:64 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ref (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.public (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->A (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ref (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constRef (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.public (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->A (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constRef (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ref (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.Base (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.Base.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->A (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->B (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->C (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ref (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constRef (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.Base (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.Base.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->A (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->B (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->C (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constRef (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:94 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:149 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.public (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->A (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.public (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->A (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.Base (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.Base.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->A (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->B (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->C (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.Base (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.Base.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->A (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->B (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->C (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:202 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ref (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.public (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: check ref->A (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ref (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.First (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:245 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for S in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:269 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr to derived in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->B (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->C (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s.ptr to derived in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->B (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->C (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:281 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr back to base type in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s.ptr back to base type in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:299 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for S in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:323 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr to derived type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s to derived type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:335 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr back to base type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s back to base type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s in skip_type_update_when_not_use_rtti
+Running ./gdb.mi/mi-watch.exp ...
+PASS: gdb.mi/mi-watch.exp: hw watchpoints toggle (1)
+PASS: gdb.mi/mi-watch.exp: sw: breakpoint at callee4
+PASS: gdb.mi/mi-watch.exp: sw: mi runto callee4
+PASS: gdb.mi/mi-watch.exp: sw: break-watch operation
+PASS: gdb.mi/mi-watch.exp: sw: list of watchpoints
+PASS: gdb.mi/mi-watch.exp: sw: watchpoint trigger
+XPASS: gdb.mi/mi-watch.exp: sw: watchpoint trigger
+Running ./gdb.mi/mi-watch-nonstop.exp ...
+Running ./gdb.mi/pr11022.exp ...
+Running ./gdb.modula2/unbounded-array.exp ...
+PASS: gdb.modula2/unbounded-array.exp: switch to modula-2
+PASS: gdb.modula2/unbounded-array.exp: print the last legal element of array a
+PASS: gdb.modula2/unbounded-array.exp: print unbounded array contents
+PASS: gdb.modula2/unbounded-array.exp: print the 1st element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 2nd element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 3rd element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 4th element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 5th element of array a
+Running ./gdb.multi/base.exp ...
+PASS: gdb.multi/base.exp: add empty inferior 2
+PASS: gdb.multi/base.exp: switch to inferior 2
+PASS: gdb.multi/base.exp: load hangout file in inferior 2
+PASS: gdb.multi/base.exp: add inferior 3 with -exec goodbye
+PASS: gdb.multi/base.exp: info inferiors
+PASS: gdb.multi/base.exp: info inferior 2 3
+PASS: gdb.multi/base.exp: info inferior 1-2
+PASS: gdb.multi/base.exp: switch to inferior 1
+PASS: gdb.multi/base.exp: 'info functions commonfun' in inferior 1
+PASS: gdb.multi/base.exp: switch to inferior 3
+PASS: gdb.multi/base.exp: 'info functions commonfun' in inferior 3
+PASS: gdb.multi/base.exp: switch back to inferior 1
+PASS: gdb.multi/base.exp: set listsize 1
+PASS: gdb.multi/base.exp: list commonfun in hello
+PASS: gdb.multi/base.exp: print hglob
+PASS: gdb.multi/base.exp: print glob (hello)
+PASS: gdb.multi/base.exp: switch to inferior 3 to print globals
+PASS: gdb.multi/base.exp: print gglob
+PASS: gdb.multi/base.exp: print glob (goodbye)
+PASS: gdb.multi/base.exp: list commonfun in goodbye
+PASS: gdb.multi/base.exp: switch to inferior 1 to run it
+PASS: gdb.multi/base.exp: break hello
+PASS: gdb.multi/base.exp: continue
+PASS: gdb.multi/base.exp: remove-inferiors 2-3
+PASS: gdb.multi/base.exp: check remove-inferiors
+Running ./gdb.multi/bkpt-multi-exec.exp ...
+Running ./gdb.multi/multi-arch-exec.exp ...
+Running ./gdb.multi/multi-arch.exp ...
+Running ./gdb.multi/watchpoint-multi.exp ...
+UNTESTED: gdb.multi/watchpoint-multi.exp: watchpoint-multi.exp
+Running ./gdb.objc/basicclass.exp ...
+UNSUPPORTED: gdb.objc/basicclass.exp: Couldn't compile ./gdb.objc/basicclass.m: unrecognized error
+Running ./gdb.objc/nondebug.exp ...
+UNSUPPORTED: gdb.objc/nondebug.exp: Couldn't compile ./gdb.objc/nondebug.m: unrecognized error
+Running ./gdb.objc/objcdecode.exp ...
+UNSUPPORTED: gdb.objc/objcdecode.exp: Couldn't compile ./gdb.objc/objcdecode.m: unrecognized error
+Running ./gdb.objc/print.exp ...
+PASS: gdb.objc/print.exp: set language objective-c
+PASS: gdb.objc/print.exp: set language to "objective-c"
+PASS: gdb.objc/print.exp: check fp + text
+PASS: gdb.objc/print.exp: p 1.
+PASS: gdb.objc/print.exp: p 1.5
+PASS: gdb.objc/print.exp: p 1.f
+PASS: gdb.objc/print.exp: p 1.5f
+PASS: gdb.objc/print.exp: p 1.l
+PASS: gdb.objc/print.exp: p 1.5l
+PASS: gdb.objc/print.exp: p 0x1.1
+PASS: gdb.objc/print.exp: reject p 1.1x
+PASS: gdb.objc/print.exp: reject p 1.1ff
+PASS: gdb.objc/print.exp: reject p 1.1ll
+Running ./gdb.opencl/callfuncs.exp ...
+Running ./gdb.opencl/convs_casts.exp ...
+Running ./gdb.opencl/datatypes.exp ...
+Running ./gdb.opencl/operators.exp ...
+Running ./gdb.opencl/vec_comps.exp ...
+Running ./gdb.opt/clobbered-registers-O2.exp ...
+PASS: gdb.opt/clobbered-registers-O2.exp: Backtracing
+PASS: gdb.opt/clobbered-registers-O2.exp: print operand0
+PASS: gdb.opt/clobbered-registers-O2.exp: print operand1
+Running ./gdb.opt/inline-break.exp ...
+PASS: gdb.opt/inline-break.exp: break func1
+PASS: gdb.opt/inline-break.exp: break func2
+PASS: gdb.opt/inline-break.exp: break func3b
+PASS: gdb.opt/inline-break.exp: break func4b
+PASS: gdb.opt/inline-break.exp: break func5b
+PASS: gdb.opt/inline-break.exp: break func6b
+PASS: gdb.opt/inline-break.exp: break func7b
+PASS: gdb.opt/inline-break.exp: break func8b
+PASS: gdb.opt/inline-break.exp: print func1
+PASS: gdb.opt/inline-break.exp: print func2
+Running ./gdb.opt/inline-bt.exp ...
+PASS: gdb.opt/inline-bt.exp: continue to bar (1)
+PASS: gdb.opt/inline-bt.exp: backtrace from bar (1)
+PASS: gdb.opt/inline-bt.exp: bar not inlined
+PASS: gdb.opt/inline-bt.exp: continue to bar (2)
+PASS: gdb.opt/inline-bt.exp: backtrace from bar (2)
+PASS: gdb.opt/inline-bt.exp: up from bar (2)
+PASS: gdb.opt/inline-bt.exp: func1 inlined (2)
+PASS: gdb.opt/inline-bt.exp: continue to bar (3)
+PASS: gdb.opt/inline-bt.exp: backtrace from bar (3)
+PASS: gdb.opt/inline-bt.exp: up from bar (3)
+PASS: gdb.opt/inline-bt.exp: func1 inlined (3)
+PASS: gdb.opt/inline-bt.exp: up from func1 (3)
+PASS: gdb.opt/inline-bt.exp: func2 inlined (3)
+Running ./gdb.opt/inline-cmds.exp ...
+PASS: gdb.opt/inline-cmds.exp: set listsize 1
+PASS: gdb.opt/inline-cmds.exp: continue to bar (1)
+PASS: gdb.opt/inline-cmds.exp: backtrace from bar (1)
+PASS: gdb.opt/inline-cmds.exp: up from bar (1)
+PASS: gdb.opt/inline-cmds.exp: func1 inlined (1)
+PASS: gdb.opt/inline-cmds.exp: continue to bar (2)
+PASS: gdb.opt/inline-cmds.exp: backtrace from bar (2)
+PASS: gdb.opt/inline-cmds.exp: up from bar (2)
+PASS: gdb.opt/inline-cmds.exp: func1 inlined (2)
+PASS: gdb.opt/inline-cmds.exp: up from func1 (2)
+PASS: gdb.opt/inline-cmds.exp: func2 inlined (2)
+PASS: gdb.opt/inline-cmds.exp: continue to marker
+PASS: gdb.opt/inline-cmds.exp: backtrace from marker
+PASS: gdb.opt/inline-cmds.exp: marker not inlined
+PASS: gdb.opt/inline-cmds.exp: next over inlined functions
+PASS: gdb.opt/inline-cmds.exp: next past inlined func1
+PASS: gdb.opt/inline-cmds.exp: print x before func1
+PASS: gdb.opt/inline-cmds.exp: backtrace does not include func1
+PASS: gdb.opt/inline-cmds.exp: stepped over call to func1
+PASS: gdb.opt/inline-cmds.exp: step into func1
+PASS: gdb.opt/inline-cmds.exp: finish from func1
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: consecutive func1
+PASS: gdb.opt/inline-cmds.exp: next to first func1
+KFAIL: gdb.opt/inline-cmds.exp: next to second func1 (PRMS: gdb/NNNN)
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: func1 then func3
+PASS: gdb.opt/inline-cmds.exp: next to func1 before func3
+PASS: gdb.opt/inline-cmds.exp: next to func3
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: finish into func1
+PASS: gdb.opt/inline-cmds.exp: next to finish marker
+PASS: gdb.opt/inline-cmds.exp: step into finish marker
+PASS: gdb.opt/inline-cmds.exp: finish from marker to func1
+PASS: gdb.opt/inline-cmds.exp: step into func1 for finish
+PASS: gdb.opt/inline-cmds.exp: finish from func1 to func3
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: before the outer_inline call
+PASS: gdb.opt/inline-cmds.exp: reach 1 the outer_inline call
+PASS: gdb.opt/inline-cmds.exp: reach outer_inline2
+PASS: gdb.opt/inline-cmds.exp: backtrace at main of outer_inline
+PASS: gdb.opt/inline-cmds.exp: enter outer_inline2
+PASS: gdb.opt/inline-cmds.exp: backtrace at outer_inline2
+PASS: gdb.opt/inline-cmds.exp: enter outer_inline1 from outer_inline2
+PASS: gdb.opt/inline-cmds.exp: backtrace at outer_inline1
+PASS: gdb.opt/inline-cmds.exp: enter noinline from outer_inline1
+PASS: gdb.opt/inline-cmds.exp: backtrace at noinline from outer_inline1
+PASS: gdb.opt/inline-cmds.exp: enter inlined_fn from noinline
+PASS: gdb.opt/inline-cmds.exp: backtrace at inlined_fn from noinline
+PASS: gdb.opt/inline-cmds.exp: inlined_fn from noinline inlined
+PASS: gdb.opt/inline-cmds.exp: up to noinline
+PASS: gdb.opt/inline-cmds.exp: noinline from outer_inline1 not inlined
+PASS: gdb.opt/inline-cmds.exp: up to outer_inline1
+PASS: gdb.opt/inline-cmds.exp: outer_inline1 inlined
+PASS: gdb.opt/inline-cmds.exp: up to outer_inline2
+PASS: gdb.opt/inline-cmds.exp: outer_inline2 inlined
+PASS: gdb.opt/inline-cmds.exp: up from outer_inline2
+PASS: gdb.opt/inline-cmds.exp: main not inlined
+Running ./gdb.opt/inline-locals.exp ...
+PASS: gdb.opt/inline-locals.exp: continue to bar (1)
+PASS: gdb.opt/inline-locals.exp: continue to bar (2)
+PASS: gdb.opt/inline-locals.exp: backtrace from bar (2)
+PASS: gdb.opt/inline-locals.exp: up from bar (2)
+PASS: gdb.opt/inline-locals.exp: func1 inlined (2)
+PASS: gdb.opt/inline-locals.exp: info locals above bar (2)
+PASS: gdb.opt/inline-locals.exp: info args above bar (2)
+PASS: gdb.opt/inline-locals.exp: print local (2)
+PASS: gdb.opt/inline-locals.exp: print out of scope local
+PASS: gdb.opt/inline-locals.exp: continue to bar (3)
+PASS: gdb.opt/inline-locals.exp: backtrace from bar (3)
+PASS: gdb.opt/inline-locals.exp: up from bar (3)
+PASS: gdb.opt/inline-locals.exp: func1 inlined (3)
+PASS: gdb.opt/inline-locals.exp: info locals above bar (3)
+PASS: gdb.opt/inline-locals.exp: info args above bar (3)
+PASS: gdb.opt/inline-locals.exp: print local (3)
+Running ./gdb.pascal/floats.exp ...
+UNSUPPORTED: gdb.pascal/floats.exp: No pascal compiler found
+UNTESTED: gdb.pascal/floats.exp: floats.exp
+Running ./gdb.pascal/gdb11492.exp ...
+UNSUPPORTED: gdb.pascal/gdb11492.exp: No pascal compiler found
+UNTESTED: gdb.pascal/gdb11492.exp: gdb11492.exp
+Running ./gdb.pascal/hello.exp ...
+UNSUPPORTED: gdb.pascal/hello.exp: No pascal compiler found
+Running ./gdb.pascal/integers.exp ...
+UNSUPPORTED: gdb.pascal/integers.exp: No pascal compiler found
+Running ./gdb.pascal/print.exp ...
+PASS: gdb.pascal/print.exp: set language pascal
+PASS: gdb.pascal/print.exp: set language to "pascal"
+PASS: gdb.pascal/print.exp: check fp + text
+PASS: gdb.pascal/print.exp: p 1.
+PASS: gdb.pascal/print.exp: p 1.5
+PASS: gdb.pascal/print.exp: p 1.f
+PASS: gdb.pascal/print.exp: p 1.5f
+PASS: gdb.pascal/print.exp: p 1.l
+PASS: gdb.pascal/print.exp: p 1.5l
+PASS: gdb.pascal/print.exp: p 0x1.1
+PASS: gdb.pascal/print.exp: reject p 1.1x
+PASS: gdb.pascal/print.exp: reject p 1.1ff
+PASS: gdb.pascal/print.exp: reject p 1.1ll
+Running ./gdb.pascal/types.exp ...
+PASS: gdb.pascal/types.exp: set language pascal
+PASS: gdb.pascal/types.exp: set language to "pascal"
+PASS: gdb.pascal/types.exp: pt 123
+PASS: gdb.pascal/types.exp: pt TRUE
+PASS: gdb.pascal/types.exp: pt FALSE
+PASS: gdb.pascal/types.exp: pt 'a'
+KFAIL: gdb.pascal/types.exp: pt 'a simple string' (PRMS: gdb/2326)
+PASS: gdb.pascal/types.exp: pt .44
+PASS: gdb.pascal/types.exp: pt 44.0
+PASS: gdb.pascal/types.exp: pt 10e20
+PASS: gdb.pascal/types.exp: pt 10E20
+Running ./gdb.python/lib-types.exp ...
+PASS: gdb.python/lib-types.exp: python import gdb.types
+PASS: gdb.python/lib-types.exp: python const_class1_obj = gdb.parse_and_eval ('const_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_const_class1_obj = gdb.types.get_basic_type (const_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (const_class1_obj.type))
+PASS: gdb.python/lib-types.exp: const stripping
+PASS: gdb.python/lib-types.exp: python volatile_class1_obj = gdb.parse_and_eval ('volatile_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_volatile_class1_obj = gdb.types.get_basic_type (volatile_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (volatile_class1_obj.type))
+PASS: gdb.python/lib-types.exp: volatile stripping
+PASS: gdb.python/lib-types.exp: python const_volatile_class1_obj = gdb.parse_and_eval ('const_volatile_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_const_volatile_class1_obj = gdb.types.get_basic_type (const_volatile_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (const_volatile_class1_obj.type))
+PASS: gdb.python/lib-types.exp: volatile+const stripping
+PASS: gdb.python/lib-types.exp: python typedef_class1_obj = gdb.parse_and_eval ('typedef_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_typedef_class1_obj = gdb.types.get_basic_type (typedef_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (typedef_class1_obj.type))
+PASS: gdb.python/lib-types.exp: typedef stripping
+PASS: gdb.python/lib-types.exp: python class1_ref_obj = gdb.parse_and_eval ('class1_ref_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_class1_ref_obj = gdb.types.get_basic_type (class1_ref_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (class1_ref_obj.type))
+PASS: gdb.python/lib-types.exp: reference stripping
+PASS: gdb.python/lib-types.exp: python typedef_const_typedef_class1_obj = gdb.parse_and_eval ('typedef_const_typedef_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_typedef_const_typedef_class1_obj = gdb.types.get_basic_type (typedef_const_typedef_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (typedef_class1_obj.type))
+PASS: gdb.python/lib-types.exp: nested typedef stripping
+PASS: gdb.python/lib-types.exp: python typedef_const_typedef_class1_ref_obj = gdb.parse_and_eval ('typedef_const_typedef_class1_ref_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_typedef_const_typedef_class1_ref_obj = gdb.types.get_basic_type (typedef_const_typedef_class1_ref_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (typedef_const_typedef_class1_ref_obj.type))
+PASS: gdb.python/lib-types.exp: nested typedef/ref stripping
+PASS: gdb.python/lib-types.exp: python class1_obj = gdb.parse_and_eval ('class1_obj')
+PASS: gdb.python/lib-types.exp: python print (gdb.types.has_field (class1_obj.type, 'x'))
+PASS: gdb.python/lib-types.exp: python print (gdb.types.has_field (class1_obj.type, 'nope'))
+PASS: gdb.python/lib-types.exp: python subclass1_obj = gdb.parse_and_eval ('subclass1_obj')
+PASS: gdb.python/lib-types.exp: python print (gdb.types.has_field (subclass1_obj.type, 'x'))
+PASS: gdb.python/lib-types.exp: python enum1_obj = gdb.parse_and_eval ('enum1_obj')
+PASS: gdb.python/lib-types.exp: python enum1_dict = gdb.types.make_enum_dict (enum1_obj.type)
+PASS: gdb.python/lib-types.exp: python enum1_list = sorted (enum1_dict.items ())
+PASS: gdb.python/lib-types.exp: python print (enum1_list)
+PASS: gdb.python/lib-types.exp: python struct_a = gdb.lookup_type ('struct A')
+PASS: gdb.python/lib-types.exp: python print (struct_a.keys ())
+PASS: gdb.python/lib-types.exp: python print ([k for k,v in gdb.types.deep_items(struct_a)])
+Running ./gdb.python/py-arch.exp ...
+PASS: gdb.python/py-arch.exp: test number of instructions 1
+PASS: gdb.python/py-arch.exp: test number of instructions 2
+PASS: gdb.python/py-arch.exp: test number of instructions 3
+PASS: gdb.python/py-arch.exp: test number of instructions 4
+PASS: gdb.python/py-arch.exp: test key addr
+PASS: gdb.python/py-arch.exp: test key asm
+PASS: gdb.python/py-arch.exp: test key length
+PASS: gdb.python/py-arch.exp: test exception
+Running ./gdb.python/py-block.exp ...
+PASS: gdb.python/py-block.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-block.exp: Check block not None
+PASS: gdb.python/py-block.exp: First anonymous block
+PASS: gdb.python/py-block.exp: Check start not None
+PASS: gdb.python/py-block.exp: Check end not None
+PASS: gdb.python/py-block.exp: Not a global block
+PASS: gdb.python/py-block.exp: Not a static block
+PASS: gdb.python/py-block.exp: Get block
+PASS: gdb.python/py-block.exp: Get block
+PASS: gdb.python/py-block.exp: Is the global block
+PASS: gdb.python/py-block.exp: Is the static block
+PASS: gdb.python/py-block.exp: Get superblock
+PASS: gdb.python/py-block.exp: Second anonymous block
+PASS: gdb.python/py-block.exp: Get superblock 2
+PASS: gdb.python/py-block.exp: Print superblock 2 function
+PASS: gdb.python/py-block.exp: up
+PASS: gdb.python/py-block.exp: Check Frame 2's block not None
+PASS: gdb.python/py-block.exp: main block
+PASS: gdb.python/py-block.exp: Check block validity
+PASS: gdb.python/py-block.exp: Check block validity
+PASS: gdb.python/py-block.exp: Check block validity
+PASS: gdb.python/py-block.exp: Check block validity
+Running ./gdb.python/py-breakpoint.exp ...
+PASS: gdb.python/py-breakpoint.exp: Check obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check for two breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint hit count
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint hit count
+PASS: gdb.python/py-breakpoint.exp: Check expected variable result after 6 iterations
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at add.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint enabled.
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at add.
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint thread
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint type
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint number
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint number
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint number
+PASS: gdb.python/py-breakpoint.exp: Number of breakpoints before delete
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint invalidated
+PASS: gdb.python/py-breakpoint.exp: Number of breakpoints after delete
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at end.
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test conditional has been set
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test conditional breakpoint stopped after five iterations
+PASS: gdb.python/py-breakpoint.exp: Test conditional read
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test breakpoint stopped after six iterations
+PASS: gdb.python/py-breakpoint.exp: commands $bpnum
+PASS: gdb.python/py-breakpoint.exp: print "Command for breakpoint has been executed."
+PASS: gdb.python/py-breakpoint.exp: print result
+PASS: gdb.python/py-breakpoint.exp: end
+PASS: gdb.python/py-breakpoint.exp: python print (blist[len(blist)-1].commands)
+PASS: gdb.python/py-breakpoint.exp: Check invisible bp obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint visibility
+PASS: gdb.python/py-breakpoint.exp: Check info breakpoints shows visible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check invisible bp obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint visibility
+PASS: gdb.python/py-breakpoint.exp: Check info breakpoints does not show invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check maint info breakpoints shows invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Test watchpoint write
+PASS: gdb.python/py-breakpoint.exp: Check info breakpoints does not show invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check maint info breakpoints shows invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Test watchpoint write
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint - class bp_eval (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -    inf_i = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -    count = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -    def stop (self):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       self.count = self.count + 1
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       self.inf_i = gdb.parse_and_eval("i")
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       if self.inf_i == 3:
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -         return True
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       return False
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint - end
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint - class bp_also_eval (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -    count = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -    def stop (self):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -       self.count = self.count + 1
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -       if self.count == 9:
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -         return True
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -       return False
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint - end
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint - class basic (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint -    count = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint - end
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check inferior value matches python accounting
+PASS: gdb.python/py-breakpoint.exp: Check python accounting matches inferior
+PASS: gdb.python/py-breakpoint.exp: Check non firing same-location breakpoint eval function was also called at each stop.
+PASS: gdb.python/py-breakpoint.exp: Check non firing same-location breakpoint eval function was also called at each stop.
+PASS: gdb.python/py-breakpoint.exp: Check you cannot add a CLI condition to a Python breakpoint that
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function - python
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function - def stop_func ():
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function -    return True
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function - end
+PASS: gdb.python/py-breakpoint.exp: Assign stop function to a breakpoint that has a condition
+PASS: gdb.python/py-breakpoint.exp: Test that evaluate function has not been yet executed (ie count = 0)
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test that evaluate function is run when location also has normal bp
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint - class wp_eval (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -    def stop (self):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -       self.result = gdb.parse_and_eval("result")
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -       if self.result == 788:
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -         return True
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -       return False
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint - end
+PASS: gdb.python/py-breakpoint.exp: Test watchpoint write
+PASS: gdb.python/py-breakpoint.exp: Check that this unrelated breakpoints eval function was never called.
+Running ./gdb.python/py-cmd.exp ...
+PASS: gdb.python/py-cmd.exp: input simple command - python
+PASS: gdb.python/py-cmd.exp: input simple command - class test_cmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input simple command -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input simple command -     super (test_cmd, self).__init__ ("test_cmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input simple command -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input simple command -     print ("test_cmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input simple command - test_cmd ()
+PASS: gdb.python/py-cmd.exp: input simple command - end
+PASS: gdb.python/py-cmd.exp: call simple command
+PASS: gdb.python/py-cmd.exp: input prefix command - python
+PASS: gdb.python/py-cmd.exp: input prefix command - class prefix_cmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input prefix command -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input prefix command -     super (prefix_cmd, self).__init__ ("prefix_cmd", gdb.COMMAND_OBSCURE, gdb.COMPLETE_NONE, True)
+PASS: gdb.python/py-cmd.exp: input prefix command -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input prefix command -     print ("prefix_cmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input prefix command - prefix_cmd ()
+PASS: gdb.python/py-cmd.exp: input prefix command - end
+PASS: gdb.python/py-cmd.exp: call prefix command
+PASS: gdb.python/py-cmd.exp: input subcommand - python
+PASS: gdb.python/py-cmd.exp: input subcommand - class subcmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input subcommand -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input subcommand -     super (subcmd, self).__init__ ("prefix_cmd subcmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input subcommand -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input subcommand -     print ("subcmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input subcommand - subcmd ()
+PASS: gdb.python/py-cmd.exp: input subcommand - end
+PASS: gdb.python/py-cmd.exp: call subcmd
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - python
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - class prefix_cmd2 (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -     super (prefix_cmd2, self).__init__ ("prefix_cmd2", gdb.COMMAND_OBSCURE, prefix = True, completer_class = gdb.COMPLETE_FILENAME)
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -     print ("prefix_cmd2 output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - prefix_cmd2 ()
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - end
+PASS: gdb.python/py-cmd.exp: call prefix command, keyword arguments
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - python
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - class subcmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -     super (subcmd, self).__init__ ("prefix_cmd2 subcmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -     print ("subcmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - subcmd ()
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - end
+PASS: gdb.python/py-cmd.exp: call subcmd under prefix_cmd2
+PASS: gdb.python/py-cmd.exp: input new subcommand - python
+PASS: gdb.python/py-cmd.exp: input new subcommand - class newsubcmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input new subcommand -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input new subcommand -     super (newsubcmd, self).__init__ ("info newsubcmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input new subcommand -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input new subcommand -     print ("newsubcmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input new subcommand - newsubcmd ()
+PASS: gdb.python/py-cmd.exp: input new subcommand - end
+PASS: gdb.python/py-cmd.exp: call newsubcmd
+PASS: gdb.python/py-cmd.exp: input command to throw error - python
+PASS: gdb.python/py-cmd.exp: input command to throw error - class test_error_cmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input command to throw error -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input command to throw error -     super (test_error_cmd, self).__init__ ("test_error_cmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input command to throw error -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input command to throw error -     raise gdb.GdbError ('you lose!')
+PASS: gdb.python/py-cmd.exp: input command to throw error - test_error_cmd ()
+PASS: gdb.python/py-cmd.exp: input command to throw error - end
+PASS: gdb.python/py-cmd.exp: call error command
+PASS: gdb.python/py-cmd.exp: string_to_argv ("1 2 3")
+PASS: gdb.python/py-cmd.exp: string_to_argv ("'1 2' 3")
+PASS: gdb.python/py-cmd.exp: string_to_argv ('"1 2" 3')
+PASS: gdb.python/py-cmd.exp: string_to_argv ('1\ 2 3')
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - python
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - class test_help (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -   """Docstring"""
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -     super (test_help, self).__init__ ("test_help", gdb.COMMAND_USER)
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -     print ("test_cmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - test_help ()
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - end
+PASS: gdb.python/py-cmd.exp: call simple user-defined command
+PASS: gdb.python/py-cmd.exp: see user-defined command in `help user-defined`
+Running ./gdb.python/py-error.exp ...
+PASS: gdb.python/py-error.exp: set host-charset IBM1047
+PASS: gdb.python/py-error.exp: main reached
+PASS: gdb.python/py-error.exp: no delayed error
+Running ./gdb.python/py-events.exp ...
+Running ./gdb.python/py-evsignal.exp ...
+KFAIL: gdb.python/py-evsignal.exp: Signal Thread 3 (PRMS: python/12966)
+Running ./gdb.python/py-evthreads.exp ...
+KFAIL: gdb.python/py-evthreads.exp: Run to breakpoint 1 (PRMS: python/12966)
+Running ./gdb.python/py-explore-cc.exp ...
+PASS: gdb.python/py-explore-cc.exp: continue to breakpoint: Break here
+PASS: gdb.python/py-explore-cc.exp: explore A
+PASS: gdb.python/py-explore-cc.exp: explore a
+PASS: gdb.python/py-explore-cc.exp: explore int_ref
+PASS: gdb.python/py-explore-cc.exp: explore int_ptr_ref
+PASS: gdb.python/py-explore-cc.exp: explore_int_ptr_ref_as_single_value_pointer
+PASS: gdb.python/py-explore-cc.exp: explore b
+PASS: gdb.python/py-explore-cc.exp: explore_base_class_A
+PASS: gdb.python/py-explore-cc.exp: return_to_b_from_A
+PASS: gdb.python/py-explore-cc.exp: explore_field_i_of_b
+PASS: gdb.python/py-explore-cc.exp: return_to_b_from_i
+PASS: gdb.python/py-explore-cc.exp: explore_field_c_of_b
+PASS: gdb.python/py-explore-cc.exp: return_to_b_from_i
+PASS: gdb.python/py-explore-cc.exp: return_to_gdb_prompt_from_b
+PASS: gdb.python/py-explore-cc.exp: explore B
+PASS: gdb.python/py-explore-cc.exp: explore_base_class_A
+PASS: gdb.python/py-explore-cc.exp: return_to_B
+PASS: gdb.python/py-explore-cc.exp: explore_field_i_of_B
+PASS: gdb.python/py-explore-cc.exp: return_to_B_from_i
+PASS: gdb.python/py-explore-cc.exp: explore_field_c_of_B
+PASS: gdb.python/py-explore-cc.exp: return_to_B_from_c
+PASS: gdb.python/py-explore-cc.exp: return_to_gdb_prompt_from_B
+Running ./gdb.python/py-explore.exp ...
+PASS: gdb.python/py-explore.exp: continue to breakpoint: Break here
+PASS: gdb.python/py-explore.exp: explore i
+PASS: gdb.python/py-explore.exp: explore ss
+PASS: gdb.python/py-explore.exp: explore *ss_ptr
+PASS: gdb.python/py-explore.exp: explore ss_t
+PASS: gdb.python/py-explore.exp: explore ss_ptr
+PASS: gdb.python/py-explore.exp: explore ss_ptr as single value pointer
+PASS: gdb.python/py-explore.exp: explore darray_ref
+PASS: gdb.python/py-explore.exp: no_to_explore_as_pointer
+PASS: gdb.python/py-explore.exp: explore_as_array
+PASS: gdb.python/py-explore.exp: explore_as_array_index_2
+PASS: gdb.python/py-explore.exp: end explore_as_array_index_2
+PASS: gdb.python/py-explore.exp: end explore_as_array
+PASS: gdb.python/py-explore.exp: explore su
+PASS: gdb.python/py-explore.exp: explore su.d
+PASS: gdb.python/py-explore.exp: end su.d exploration
+PASS: gdb.python/py-explore.exp: end su exploration
+PASS: gdb.python/py-explore.exp: explore cs
+PASS: gdb.python/py-explore.exp: explore cs.s
+PASS: gdb.python/py-explore.exp: end cs.s exploration
+PASS: gdb.python/py-explore.exp: explore cs.u
+PASS: gdb.python/py-explore.exp: end cs.u exploration
+PASS: gdb.python/py-explore.exp: end cs exploration
+PASS: gdb.python/py-explore.exp: explore cu
+PASS: gdb.python/py-explore.exp: explore cu.sa
+PASS: gdb.python/py-explore.exp: explore cu.sa[0]
+PASS: gdb.python/py-explore.exp: end cu.sa[0] exploration
+PASS: gdb.python/py-explore.exp: end cu.sa exploration
+PASS: gdb.python/py-explore.exp: end cu exploration
+PASS: gdb.python/py-explore.exp: explore int
+PASS: gdb.python/py-explore.exp: explore struct SimpleStruct
+PASS: gdb.python/py-explore.exp: explore type struct SimpleStruct feild 0
+PASS: gdb.python/py-explore.exp: return to struct SimpleStruct from field 0
+PASS: gdb.python/py-explore.exp: explore type struct SimpleStruct feild 1
+PASS: gdb.python/py-explore.exp: return to struct SimpleStruct from field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from struct SimpleStruct
+PASS: gdb.python/py-explore.exp: explore union SimpleUnion
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 0
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 0
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 1
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 1
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 2
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 2
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 3
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 3
+PASS: gdb.python/py-explore.exp: return to GDB prompt from union SimpleUnion
+PASS: gdb.python/py-explore.exp: explore SS
+PASS: gdb.python/py-explore.exp: explore type SS feild 0
+PASS: gdb.python/py-explore.exp: return to SS from field 0
+PASS: gdb.python/py-explore.exp: explore type SS feild 1
+PASS: gdb.python/py-explore.exp: return to SS field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from SS
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct field 0
+PASS: gdb.python/py-explore.exp: return to ComplexStruct from field 0
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct field 1
+PASS: gdb.python/py-explore.exp: return to ComplexStruct from field 1
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct field 2
+PASS: gdb.python/py-explore.exp: return to ComplexStruct from field 2
+PASS: gdb.python/py-explore.exp: return to GDB prompt from ComplexStruct type exploration
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 0
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 0
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 1
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from ComplexUnion type exploration
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 0
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 0
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 1
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from ComplexUnion type exploration
+Running ./gdb.python/py-finish-breakpoint2.exp ...
+PASS: gdb.python/py-finish-breakpoint2.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint2.exp: run to exception 1
+PASS: gdb.python/py-finish-breakpoint2.exp: check BP count
+PASS: gdb.python/py-finish-breakpoint2.exp: set FinishBP after the exception
+PASS: gdb.python/py-finish-breakpoint2.exp: check FinishBreakpoint in catch()
+PASS: gdb.python/py-finish-breakpoint2.exp: check finish BP removal
+PASS: gdb.python/py-finish-breakpoint2.exp: continue to second exception
+PASS: gdb.python/py-finish-breakpoint2.exp: set FinishBP after the exception
+PASS: gdb.python/py-finish-breakpoint2.exp: FinishBreakpoint with exception thrown not caught
+Running ./gdb.python/py-finish-breakpoint.exp ...
+PASS: gdb.python/py-finish-breakpoint.exp: disable confirmation
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: continue to the function to finish
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBreakpoint with default frame value
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBreakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: check return_value at init
+PASS: gdb.python/py-finish-breakpoint.exp: check MyFinishBreakpoint hit
+PASS: gdb.python/py-finish-breakpoint.exp: check return_value
+PASS: gdb.python/py-finish-breakpoint.exp: check finishBP on default frame has been hit
+PASS: gdb.python/py-finish-breakpoint.exp: ensure that finish bp is invalid afer normal hit
+PASS: gdb.python/py-finish-breakpoint.exp: return to main()
+PASS: gdb.python/py-finish-breakpoint.exp: check FinishBP not allowed in main
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: ensure that shared lib has no debug info
+PASS: gdb.python/py-finish-breakpoint.exp: continue to do_nothing
+PASS: gdb.python/py-finish-breakpoint.exp: set finish breakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: check FinishBreakpoint hit
+PASS: gdb.python/py-finish-breakpoint.exp: check return value without debug symbol
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: set finish breakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: set BP after the jump
+PASS: gdb.python/py-finish-breakpoint.exp: check FinishBP out of scope notification
+PASS: gdb.python/py-finish-breakpoint.exp: ensure that finish bp is invalid afer out of scope notification
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: set a conditional BP
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBP in a breakpoint condition
+PASS: gdb.python/py-finish-breakpoint.exp: don't allow FinishBreakpoint on dummy frames
+PASS: gdb.python/py-finish-breakpoint.exp: check stopped location
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: set conditional BP
+PASS: gdb.python/py-finish-breakpoint.exp: set BP in condition
+PASS: gdb.python/py-finish-breakpoint.exp: stop in condition function
+PASS: gdb.python/py-finish-breakpoint.exp: finish condition evaluation
+PASS: gdb.python/py-finish-breakpoint.exp: stop at conditional breakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: check stopped location
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: prepare TestExplicitBreakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: don't allow FinishBreakpoint on dummy frames
+PASS: gdb.python/py-finish-breakpoint.exp: prepare TestExplicitBreakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: FinishBP stop at during explicit function call
+PASS: gdb.python/py-finish-breakpoint.exp: switch to exit() test
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBP after the exit()
+PASS: gdb.python/py-finish-breakpoint.exp: catch out of scope after exit
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBP after the exec
+PASS: gdb.python/py-finish-breakpoint.exp: catch exec
+PASS: gdb.python/py-finish-breakpoint.exp: catch out of scope after exec
+Running ./gdb.python/py-frame.exp ...
+PASS: gdb.python/py-frame.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-frame.exp: test Frame.architecture()
+PASS: gdb.python/py-frame.exp: test i
+PASS: gdb.python/py-frame.exp: test f
+PASS: gdb.python/py-frame.exp: test b
+PASS: gdb.python/py-frame.exp: test i = 1.1
+PASS: gdb.python/py-frame.exp: test double i
+PASS: gdb.python/py-frame.exp: test f = 2.2
+PASS: gdb.python/py-frame.exp: test double f
+PASS: gdb.python/py-frame.exp: test i = 99
+PASS: gdb.python/py-frame.exp: test int i
+PASS: gdb.python/py-frame.exp: continue to breakpoint: breakpoint at f2
+PASS: gdb.python/py-frame.exp: selected frame -vs- newest frame
+PASS: gdb.python/py-frame.exp: newest frame -vs- newest frame
+PASS: gdb.python/py-frame.exp: test equality comparison (false)
+PASS: gdb.python/py-frame.exp: test equality comparison (true)
+PASS: gdb.python/py-frame.exp: test inequality comparison (true)
+PASS: gdb.python/py-frame.exp: test inequality comparison (false)
+PASS: gdb.python/py-frame.exp: test Frame.is_valid
+PASS: gdb.python/py-frame.exp: test Frame.name
+PASS: gdb.python/py-frame.exp: test Frame.type
+PASS: gdb.python/py-frame.exp: test Frame.type
+PASS: gdb.python/py-frame.exp: test gdb.frame_stop_reason_string
+PASS: gdb.python/py-frame.exp: test Frame.pc
+PASS: gdb.python/py-frame.exp: test Frame.older
+PASS: gdb.python/py-frame.exp: test Frame.newer
+PASS: gdb.python/py-frame.exp: test Frame.read_var - error
+PASS: gdb.python/py-frame.exp: test Frame.read_var - success
+PASS: gdb.python/py-frame.exp: test gdb.selected_frame
+Running ./gdb.python/py-frame-inline.exp ...
+PASS: gdb.python/py-frame-inline.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-frame-inline.exp: info frame
+PASS: gdb.python/py-frame-inline.exp: up
+PASS: gdb.python/py-frame-inline.exp: python print (gdb.selected_frame().read_var('l'))
+Running ./gdb.python/py-function.exp ...
+PASS: gdb.python/py-function.exp: input convenience function - python
+PASS: gdb.python/py-function.exp: input convenience function - class test_func (gdb.Function):
+PASS: gdb.python/py-function.exp: input convenience function -   def __init__ (self):
+PASS: gdb.python/py-function.exp: input convenience function -     super (test_func, self).__init__ ("test_func")
+PASS: gdb.python/py-function.exp: input convenience function -   def invoke (self, arg):
+PASS: gdb.python/py-function.exp: input convenience function -     return "test_func output, arg = %s" % arg.string ()
+PASS: gdb.python/py-function.exp: input convenience function - test_func ()
+PASS: gdb.python/py-function.exp: input convenience function - end
+PASS: gdb.python/py-function.exp: call function
+PASS: gdb.python/py-function.exp: input value-returning convenience function - python
+PASS: gdb.python/py-function.exp: input value-returning convenience function - class Double (gdb.Function):
+PASS: gdb.python/py-function.exp: input value-returning convenience function -   def __init__ (self):
+PASS: gdb.python/py-function.exp: input value-returning convenience function -     super (Double, self).__init__ ("double")
+PASS: gdb.python/py-function.exp: input value-returning convenience function -   def invoke (self, n):
+PASS: gdb.python/py-function.exp: input value-returning convenience function -     return n*2
+PASS: gdb.python/py-function.exp: input value-returning convenience function - Double ()
+PASS: gdb.python/py-function.exp: input value-returning convenience function - end
+PASS: gdb.python/py-function.exp: call value-returning function
+PASS: gdb.python/py-function.exp: input int-returning function - python
+PASS: gdb.python/py-function.exp: input int-returning function - class Yes(gdb.Function):
+PASS: gdb.python/py-function.exp: input int-returning function -     def __init__(self):
+PASS: gdb.python/py-function.exp: input int-returning function -         gdb.Function.__init__(self, 'yes')
+PASS: gdb.python/py-function.exp: input int-returning function -     def invoke(self):
+PASS: gdb.python/py-function.exp: input int-returning function -         return 1
+PASS: gdb.python/py-function.exp: input int-returning function - Yes ()
+PASS: gdb.python/py-function.exp: input int-returning function - end
+PASS: gdb.python/py-function.exp: call yes with &&
+PASS: gdb.python/py-function.exp: call yes with ||
+PASS: gdb.python/py-function.exp: Test GDBError - python
+PASS: gdb.python/py-function.exp: Test GDBError - class GDBError(gdb.Function):
+PASS: gdb.python/py-function.exp: Test GDBError -     def __init__(self):
+PASS: gdb.python/py-function.exp: Test GDBError -         gdb.Function.__init__(self, 'gdberror')
+PASS: gdb.python/py-function.exp: Test GDBError -     def invoke(self):
+PASS: gdb.python/py-function.exp: Test GDBError -         raise gdb.GdbError("This is a GdbError")
+PASS: gdb.python/py-function.exp: Test GDBError - GDBError ()
+PASS: gdb.python/py-function.exp: Test GDBError - end
+PASS: gdb.python/py-function.exp: Test GdbError.  There should not be a stack trace
+PASS: gdb.python/py-function.exp: Test Normal Error - python
+PASS: gdb.python/py-function.exp: Test Normal Error - class NormalError(gdb.Function):
+PASS: gdb.python/py-function.exp: Test Normal Error -     def __init__(self):
+PASS: gdb.python/py-function.exp: Test Normal Error -         gdb.Function.__init__(self, 'normalerror')
+PASS: gdb.python/py-function.exp: Test Normal Error -     def invoke(self):
+PASS: gdb.python/py-function.exp: Test Normal Error -         raise RuntimeError("This is a Normal Error")
+PASS: gdb.python/py-function.exp: Test Normal Error - NormalError ()
+PASS: gdb.python/py-function.exp: Test Normal Error - end
+PASS: gdb.python/py-function.exp: set python print-stack full
+PASS: gdb.python/py-function.exp: Test a Runtime error.  There should be a stack trace.
+PASS: gdb.python/py-function.exp: input command-calling function - python
+PASS: gdb.python/py-function.exp: input command-calling function - class CallCommand(gdb.Function):
+PASS: gdb.python/py-function.exp: input command-calling function -     def __init__(self):
+PASS: gdb.python/py-function.exp: input command-calling function -         gdb.Function.__init__(self, 'call_command')
+PASS: gdb.python/py-function.exp: input command-calling function -     def invoke(self):
+PASS: gdb.python/py-function.exp: input command-calling function -         return gdb.execute('print 1', to_string=True)
+PASS: gdb.python/py-function.exp: input command-calling function - CallCommand ()
+PASS: gdb.python/py-function.exp: input command-calling function - end
+PASS: gdb.python/py-function.exp: Setting a value from a function which executes a command.
+PASS: gdb.python/py-function.exp: Setting a value from a function which executes a command, again.
+Running ./gdb.python/py-inferior.exp ...
+PASS: gdb.python/py-inferior.exp: successfully compiled posix threads test case
+PASS: gdb.python/py-inferior.exp: get inferiors list
+PASS: gdb.python/py-inferior.exp: verify inferiors list
+PASS: gdb.python/py-inferior.exp: test equality comparison (true)
+PASS: gdb.python/py-inferior.exp: test Inferior.num
+PASS: gdb.python/py-inferior.exp: test Inferior.pid
+PASS: gdb.python/py-inferior.exp: test Inferior.was_attached
+PASS: gdb.python/py-inferior.exp: test Inferior.threads
+PASS: gdb.python/py-inferior.exp: continue to breakpoint: cont to check_threads
+PASS: gdb.python/py-inferior.exp: test Inferior.threads 2
+PASS: gdb.python/py-inferior.exp: continue to breakpoint: cont to Break here.
+PASS: gdb.python/py-inferior.exp: read str contents
+PASS: gdb.python/py-inferior.exp: write str
+PASS: gdb.python/py-inferior.exp: ensure str was changed in the inferior
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: find string pattern
+PASS: gdb.python/py-inferior.exp: pattern not found at end of range
+PASS: gdb.python/py-inferior.exp: pattern found at end of range
+PASS: gdb.python/py-inferior.exp: py from struct import *
+PASS: gdb.python/py-inferior.exp: set int16_search_buf[10] = 0x1234
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('int16_search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<H',0x1234)
+PASS: gdb.python/py-inferior.exp: find 16-bit pattern, with value pattern
+PASS: gdb.python/py-inferior.exp: set int32_search_buf[10] = 0x12345678
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('int32_search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<I',0x12345678)
+PASS: gdb.python/py-inferior.exp: find 32-bit pattern, with python pattern
+PASS: gdb.python/py-inferior.exp: set int64_search_buf[10] = 0xfedcba9876543210LL
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('int64_search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<Q', 0xfedcba9876543210)
+PASS: gdb.python/py-inferior.exp: find 64-bit pattern, with value pattern
+PASS: gdb.python/py-inferior.exp: set *(int8_t*) &search_buf[10] = 0x62
+PASS: gdb.python/py-inferior.exp: set *(int16_t*) &search_buf[11] = 0x6363
+PASS: gdb.python/py-inferior.exp: set *(int32_t*) &search_buf[13] = 0x64646464
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf[0].address
+PASS: gdb.python/py-inferior.exp: py pattern1 = pack('B', 0x62)
+PASS: gdb.python/py-inferior.exp: py pattern2 = pack('<H', 0x6363)
+PASS: gdb.python/py-inferior.exp: py pattern3 = pack('<I', 0x64646464)
+PASS: gdb.python/py-inferior.exp: find mixed-sized pattern
+PASS: gdb.python/py-inferior.exp: find mixed-sized pattern
+PASS: gdb.python/py-inferior.exp: find mixed-sized pattern
+PASS: gdb.python/py-inferior.exp: set *(int32_t*) &search_buf[0*16000+100] = 0x12345678
+PASS: gdb.python/py-inferior.exp: set *(int32_t*) &search_buf[1*16000+100] = 0x12345678
+PASS: gdb.python/py-inferior.exp: py start_addr = gdb.selected_frame ().read_var ('search_buf')
+PASS: gdb.python/py-inferior.exp: py end_addr = start_addr + gdb.selected_frame ().read_var ('search_buf_size')
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<I', 0x12345678)
+PASS: gdb.python/py-inferior.exp: py first = gdb.inferiors()[0].search_memory (start_addr,end_addr - start_addr, pattern)
+PASS: gdb.python/py-inferior.exp: search spanning large range 1st result
+PASS: gdb.python/py-inferior.exp: py start_addr = first + 1
+PASS: gdb.python/py-inferior.exp: py second = gdb.inferiors()[0].search_memory (start_addr, end_addr - start_addr, pattern)
+PASS: gdb.python/py-inferior.exp: search spanning large range 2nd result
+PASS: gdb.python/py-inferior.exp: py start_addr = second + 1
+PASS: gdb.python/py-inferior.exp: py third = gdb.inferiors()[0].search_memory (start_addr, end_addr - start_addr, pattern)
+PASS: gdb.python/py-inferior.exp: search spanning large range 3rd result
+PASS: gdb.python/py-inferior.exp: get initial list
+PASS: gdb.python/py-inferior.exp: Get inferior list length
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: add empty inferior 2
+PASS: gdb.python/py-inferior.exp: get new list
+PASS: gdb.python/py-inferior.exp: Get inferior list length
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: remove-inferiors 3
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: Switch to first inferior
+PASS: gdb.python/py-inferior.exp: First inferior selected
+PASS: gdb.python/py-inferior.exp: Create new inferior
+PASS: gdb.python/py-inferior.exp: Switch to third inferior
+PASS: gdb.python/py-inferior.exp: Third inferior selected
+PASS: gdb.python/py-inferior.exp: Switch to first inferior
+PASS: gdb.python/py-inferior.exp: Remove second inferior
+Running ./gdb.python/py-infthread.exp ...
+PASS: gdb.python/py-infthread.exp: test gdb.selected_thread
+PASS: gdb.python/py-infthread.exp: verify InferiorThread object
+PASS: gdb.python/py-infthread.exp: test Inferior.num
+PASS: gdb.python/py-infthread.exp: test InferiorThread.ptid
+PASS: gdb.python/py-infthread.exp: get supplied name of current thread
+PASS: gdb.python/py-infthread.exp: set name of current thread
+PASS: gdb.python/py-infthread.exp: check name of current thread
+PASS: gdb.python/py-infthread.exp: reset name of current thread
+PASS: gdb.python/py-infthread.exp: check name of current thread again
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_stopped
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_running
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_exited
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_valid
+PASS: gdb.python/py-infthread.exp: kill inferior 1
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_valid
+Running ./gdb.python/py-mi.exp ...
+PASS: gdb.python/py-mi.exp: breakpoint at main
+PASS: gdb.python/py-mi.exp: mi runto main
+PASS: gdb.python/py-mi.exp: run to 328 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create container varobj, no pretty-printing
+PASS: gdb.python/py-mi.exp: examine container children=0, no pretty-printing
+PASS: gdb.python/py-mi.exp: delete varobj
+PASS: gdb.python/py-mi.exp: create nscont varobj, no pretty-printing
+PASS: gdb.python/py-mi.exp: examine nscont children=0, no pretty-printing
+PASS: gdb.python/py-mi.exp: delete varobj
+PASS: gdb.python/py-mi.exp: create string_1 varobj
+PASS: gdb.python/py-mi.exp: create estring varobj
+PASS: gdb.python/py-mi.exp: assign string_1 from string_2
+PASS: gdb.python/py-mi.exp: update string varobj after assignment
+PASS: gdb.python/py-mi.exp: create container varobj
+PASS: gdb.python/py-mi.exp: examine container children=0
+PASS: gdb.python/py-mi.exp: next over update 1
+PASS: gdb.python/py-mi.exp: varobj update 1
+PASS: gdb.python/py-mi.exp: next over update 2
+PASS: gdb.python/py-mi.exp: varobj update 2
+PASS: gdb.python/py-mi.exp: clear visualizer
+PASS: gdb.python/py-mi.exp: varobj update after clearing
+PASS: gdb.python/py-mi.exp: choose default visualizer
+PASS: gdb.python/py-mi.exp: varobj update after choosing default
+PASS: gdb.python/py-mi.exp: choose visualizer using expression
+PASS: gdb.python/py-mi.exp: varobj update after choosing via expression
+PASS: gdb.python/py-mi.exp: list varobj children after selecting child range
+PASS: gdb.python/py-mi.exp: list varobj children after resetting child range
+PASS: gdb.python/py-mi.exp: next over update 3
+PASS: gdb.python/py-mi.exp: set update range
+PASS: gdb.python/py-mi.exp: list children after setting update range
+PASS: gdb.python/py-mi.exp: list selected children after setting range
+PASS: gdb.python/py-mi.exp: list children after listing selected range
+PASS: gdb.python/py-mi.exp: next over update 4
+PASS: gdb.python/py-mi.exp: update after next with restricted range
+PASS: gdb.python/py-mi.exp: set update range with non-zero start
+PASS: gdb.python/py-mi.exp: update varobj with change outside selected range
+PASS: gdb.python/py-mi.exp: next over update 5
+PASS: gdb.python/py-mi.exp: create second container varobj
+PASS: gdb.python/py-mi.exp: update varobj, no children requested
+PASS: gdb.python/py-mi.exp: next over update 6
+PASS: gdb.python/py-mi.exp: update varobj 2, no children requested
+PASS: gdb.python/py-mi.exp: run to 131 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create outer varobj
+PASS: gdb.python/py-mi.exp: list children of outer
+PASS: gdb.python/py-mi.exp: list children of outer.s
+PASS: gdb.python/py-mi.exp: next over outer update
+PASS: gdb.python/py-mi.exp: update after updating element of outer
+PASS: gdb.python/py-mi.exp: run to 222 (set breakpoint)
+PASS: gdb.python/py-mi.exp: update after type change
+PASS: gdb.python/py-mi.exp: run to 351 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create nstype varobj
+PASS: gdb.python/py-mi.exp: list children after setting update range
+PASS: gdb.python/py-mi.exp: clear visualizer
+PASS: gdb.python/py-mi.exp: varobj update after clearing
+PASS: gdb.python/py-mi.exp: choose default visualizer
+PASS: gdb.python/py-mi.exp: create nstype2 varobj
+PASS: gdb.python/py-mi.exp: list children after setting exception flag
+PASS: gdb.python/py-mi.exp: create me varobj
+PASS: gdb.python/py-mi.exp: evaluate me varobj
+PASS: gdb.python/py-mi.exp: printer whose children are returned as a list
+PASS: gdb.python/py-mi.exp: run to 254 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create varobj for c
+PASS: gdb.python/py-mi.exp: choose array visualizer for c
+PASS: gdb.python/py-mi.exp: list children of c
+PASS: gdb.python/py-mi.exp: next over change of array element
+PASS: gdb.python/py-mi.exp: update varobj after element change
+PASS: gdb.python/py-mi.exp: breakpoint at main
+PASS: gdb.python/py-mi.exp: mi runto main
+PASS: gdb.python/py-mi.exp: run to 351 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create fake varobj
+PASS: gdb.python/py-mi.exp: list children of fake
+PASS: gdb.python/py-mi.exp: list children fake.private
+PASS: gdb.python/py-mi.exp: Install visualizer on a cplus_fake_child
+Running ./gdb.python/py-objfile.exp ...
+PASS: gdb.python/py-objfile.exp: Find a symbol in objfile
+PASS: gdb.python/py-objfile.exp: Get backing object file
+PASS: gdb.python/py-objfile.exp: Get objfile validity
+PASS: gdb.python/py-objfile.exp: Get objfile validity
+PASS: gdb.python/py-objfile.exp: Get objfile validity after unload
+Running ./gdb.python/py-objfile-script.exp ...
+PASS: gdb.python/py-objfile-script.exp: set auto-load safe-path
+PASS: gdb.python/py-objfile-script.exp: info auto-load python-scripts
+PASS: gdb.python/py-objfile-script.exp: b 38
+PASS: gdb.python/py-objfile-script.exp: continue
+PASS: gdb.python/py-objfile-script.exp: print ss
+Running ./gdb.python/py-parameter.exp ...
+PASS: gdb.python/py-parameter.exp: python print (gdb.parameter ('directories'))
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    """When enabled, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    show_doc = "Show the state of the boolean test-param"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    set_doc = "Set the state of the boolean test-param"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "The state of the Test Parameter is " + pvalue
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       val = "on"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       if (self.value == False):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -          val = "off"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "Test Parameter has been set to " + val
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_param = TestParam ('print test-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - python
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - class TestEnumParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    """When set, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    show_doc = "Show the state of the enum"
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    set_doc = "Set the state of the enum"
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       return "The state of the enum is " + pvalue
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       return "The state of the enum has been set to " + self.value
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       super (TestEnumParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_ENUM, ["one", "two"])
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       self.value = "one"
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - test_enum_param = TestEnumParam ('print test-enum-param')
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - end
+PASS: gdb.python/py-parameter.exp: Test enum parameter value
+PASS: gdb.python/py-parameter.exp: Show parameter is initial value
+PASS: gdb.python/py-parameter.exp: Set enum to two
+PASS: gdb.python/py-parameter.exp: Show parameter is new value
+PASS: gdb.python/py-parameter.exp: Test enum parameter value
+PASS: gdb.python/py-parameter.exp: Set invalid enum parameter
+PASS: gdb.python/py-parameter.exp: file gdb parameter - python
+PASS: gdb.python/py-parameter.exp: file gdb parameter - class TestFileParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    """When set, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    show_doc = "Show the name of the file"
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    set_doc = "Set the name of the file"
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       return "The name of the file is " + pvalue
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       return "The name of the file has been changed to " + self.value
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       super (TestFileParam, self).__init__ (name, gdb.COMMAND_FILES, gdb.PARAM_FILENAME)
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       self.value = "foo.txt"
+PASS: gdb.python/py-parameter.exp: file gdb parameter - test_file_param = TestFileParam ('test-file-param')
+PASS: gdb.python/py-parameter.exp: file gdb parameter - end
+PASS: gdb.python/py-parameter.exp: Test file parameter value
+PASS: gdb.python/py-parameter.exp: Show initial file value
+PASS: gdb.python/py-parameter.exp: Set new file parameter
+PASS: gdb.python/py-parameter.exp: Show new file value
+PASS: gdb.python/py-parameter.exp: Test new file parameter value
+PASS: gdb.python/py-parameter.exp: set test-file-param
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestUndocParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "The state of the Test Parameter is " + pvalue
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       val = "on"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       if (self.value == False):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -          val = "off"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "Test Parameter has been set to " + val
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestUndocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_undoc_param = TestUndocParam ('print test-undoc-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestNodocParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestNodocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_nodoc_param = TestNodocParam ('print test-nodoc-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    """When enabled, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    show_doc = "State of the Test Parameter"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    set_doc = "Set the state of the Test Parameter"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_param = TestParam ('print test-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+Running ./gdb.python/py-pp-maint.exp ...
+PASS: gdb.python/py-pp-maint.exp: b 77
+PASS: gdb.python/py-pp-maint.exp: continue
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer global .*function
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer .* pp-test
+PASS: gdb.python/py-pp-maint.exp: print flt enabled #1
+PASS: gdb.python/py-pp-maint.exp: print ss enabled #1
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer global
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer global lookup_function_lookup_test
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer global pp-test;.*
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer global .*function
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer .* pp-test
+PASS: gdb.python/py-pp-maint.exp: print flt disabled
+PASS: gdb.python/py-pp-maint.exp: print ss disabled
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global lookup_function_lookup_test
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test;.*ss.*
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test;.*s.*
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test;.*
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer
+PASS: gdb.python/py-pp-maint.exp: print flt re-enabled
+PASS: gdb.python/py-pp-maint.exp: print ss re-enabled
+PASS: gdb.python/py-pp-maint.exp: print FLAG_1
+PASS: gdb.python/py-pp-maint.exp: print FLAG_1 | FLAG_3
+PASS: gdb.python/py-pp-maint.exp: print FLAG_1 | 8
+Running ./gdb.python/py-prettyprint.exp ...
+PASS: gdb.python/py-prettyprint.exp: set print pretty on
+PASS: gdb.python/py-prettyprint.exp: b 351
+PASS: gdb.python/py-prettyprint.exp: continue
+PASS: gdb.python/py-prettyprint.exp: python exec (open ('py-prettyprint.py').read ())
+PASS: gdb.python/py-prettyprint.exp: print ss
+PASS: gdb.python/py-prettyprint.exp: print ssa[1]
+PASS: gdb.python/py-prettyprint.exp: print ssa
+PASS: gdb.python/py-prettyprint.exp: print arraystruct
+PASS: gdb.python/py-prettyprint.exp: print ns2
+PASS: gdb.python/py-prettyprint.exp: print x
+PASS: gdb.python/py-prettyprint.exp: print cstring
+PASS: gdb.python/py-prettyprint.exp: print estring
+PASS: gdb.python/py-prettyprint.exp: python pp_ls_encoding = 'UTF-8'
+PASS: gdb.python/py-prettyprint.exp: print estring2
+PASS: gdb.python/py-prettyprint.exp: set python print-stack full
+PASS: gdb.python/py-prettyprint.exp: print hint_error
+PASS: gdb.python/py-prettyprint.exp: print c
+PASS: gdb.python/py-prettyprint.exp: print nstype
+PASS: gdb.python/py-prettyprint.exp: set print pretty off
+PASS: gdb.python/py-prettyprint.exp: print nstype on one line
+PASS: gdb.python/py-prettyprint.exp: continue until exit
+PASS: gdb.python/py-prettyprint.exp: set print pretty on
+PASS: gdb.python/py-prettyprint.exp: b 351
+PASS: gdb.python/py-prettyprint.exp: continue
+PASS: gdb.python/py-prettyprint.exp: python exec (open ('py-prettyprint.py').read ())
+PASS: gdb.python/py-prettyprint.exp: print ss
+PASS: gdb.python/py-prettyprint.exp: print ssa[1]
+PASS: gdb.python/py-prettyprint.exp: print ssa
+PASS: gdb.python/py-prettyprint.exp: print arraystruct
+PASS: gdb.python/py-prettyprint.exp: print cps
+PASS: gdb.python/py-prettyprint.exp: print cpss
+PASS: gdb.python/py-prettyprint.exp: print cpssa[0]
+PASS: gdb.python/py-prettyprint.exp: print cpssa[1]
+PASS: gdb.python/py-prettyprint.exp: print cpssa
+PASS: gdb.python/py-prettyprint.exp: print sss
+PASS: gdb.python/py-prettyprint.exp: print ref
+PASS: gdb.python/py-prettyprint.exp: print derived
+PASS: gdb.python/py-prettyprint.exp: print ns
+PASS: gdb.python/py-prettyprint.exp:
+PASS: gdb.python/py-prettyprint.exp: print ns
+PASS: gdb.python/py-prettyprint.exp:
+PASS: gdb.python/py-prettyprint.exp: print ns
+PASS: gdb.python/py-prettyprint.exp:
+PASS: gdb.python/py-prettyprint.exp: print ns2
+PASS: gdb.python/py-prettyprint.exp: print x
+PASS: gdb.python/py-prettyprint.exp: print cstring
+PASS: gdb.python/py-prettyprint.exp: print estring
+PASS: gdb.python/py-prettyprint.exp: python pp_ls_encoding = 'UTF-8'
+PASS: gdb.python/py-prettyprint.exp: print estring2
+PASS: gdb.python/py-prettyprint.exp: set python print-stack full
+PASS: gdb.python/py-prettyprint.exp: print hint_error
+PASS: gdb.python/py-prettyprint.exp: print c
+PASS: gdb.python/py-prettyprint.exp: print nstype
+PASS: gdb.python/py-prettyprint.exp: set print pretty off
+PASS: gdb.python/py-prettyprint.exp: print nstype on one line
+PASS: gdb.python/py-prettyprint.exp: continue until exit
+PASS: gdb.python/py-prettyprint.exp: python exec (open ('py-prettyprint.py').read ())
+PASS: gdb.python/py-prettyprint.exp: continue to breakpoint: eval-break
+PASS: gdb.python/py-prettyprint.exp: info locals
+PASS: gdb.python/py-prettyprint.exp: b 351
+PASS: gdb.python/py-prettyprint.exp: continue
+PASS: gdb.python/py-prettyprint.exp: print ss enabled #1
+PASS: gdb.python/py-prettyprint.exp: python disable_lookup_function ()
+PASS: gdb.python/py-prettyprint.exp: print ss disabled
+PASS: gdb.python/py-prettyprint.exp: python enable_lookup_function ()
+PASS: gdb.python/py-prettyprint.exp: print ss enabled #2
+Running ./gdb.python/py-progspace.exp ...
+PASS: gdb.python/py-progspace.exp: current progspace filename (None)
+PASS: gdb.python/py-progspace.exp: python print (gdb.progspaces())
+PASS: gdb.python/py-progspace.exp: current progspace filename (py-progspace)
+Running ./gdb.python/py-prompt.exp ...
+Running ./gdb.python/py-section-script.exp ...
+PASS: gdb.python/py-section-script.exp: set auto-load safe-path
+PASS: gdb.python/py-section-script.exp: info auto-load python-scripts
+PASS: gdb.python/py-section-script.exp: info auto-load python-scripts py-section-script
+PASS: gdb.python/py-section-script.exp: info auto-load python-scripts no-script-matches-this
+PASS: gdb.python/py-section-script.exp: b 51
+PASS: gdb.python/py-section-script.exp: continue
+PASS: gdb.python/py-section-script.exp: print ss
+Running ./gdb.python/py-shared.exp ...
+PASS: gdb.python/py-shared.exp: func1 address
+PASS: gdb.python/py-shared.exp: Aquire func1 address
+PASS: gdb.python/py-shared.exp: test func1 solib location
+PASS: gdb.python/py-shared.exp: main address
+PASS: gdb.python/py-shared.exp: Aquire main address
+PASS: gdb.python/py-shared.exp: test main solib location
+Running ./gdb.python/py-strfns.exp ...
+PASS: gdb.python/py-strfns.exp: p $_streq (str1, str2)
+PASS: gdb.python/py-strfns.exp: p $_streq (str1, str3)
+PASS: gdb.python/py-strfns.exp: p $_strlen (str1)
+PASS: gdb.python/py-strfns.exp: p $_strlen (buf1)
+PASS: gdb.python/py-strfns.exp: p $_memeq (buf1, buf2, 4)
+PASS: gdb.python/py-strfns.exp: p $_memeq (buf1, buf3, 4)
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "Hello")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "Help")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "^Hello")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "^Hello.$")
+PASS: gdb.python/py-strfns.exp: condition $bpnum $_streq (arg, "Goodbye.")
+PASS: gdb.python/py-strfns.exp: continue to breakpoint: Break func here.
+PASS: gdb.python/py-strfns.exp: p arg
+PASS: gdb.python/py-strfns.exp: condition $bpnum $_memeq (arg, buf3, 4)
+PASS: gdb.python/py-strfns.exp: continue to breakpoint: Break bfunc here.
+PASS: gdb.python/py-strfns.exp: p /d {char[4]} arg
+PASS: gdb.python/py-strfns.exp: save a corefile
+FAIL: gdb.python/py-strfns.exp: re-load generated corefile
+Running ./gdb.python/py-symbol.exp ...
+PASS: gdb.python/py-symbol.exp: Lookup main
+PASS: gdb.python/py-symbol.exp: Test main_func.is_function
+PASS: gdb.python/py-symbol.exp: Test lookup_global_symbol("junk")
+PASS: gdb.python/py-symbol.exp: print value of main
+PASS: gdb.python/py-symbol.exp: print line number of qq
+PASS: gdb.python/py-symbol.exp: print value of qq
+PASS: gdb.python/py-symbol.exp: print whether qq needs a frame
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-symbol.exp: Test arg.is_variable
+PASS: gdb.python/py-symbol.exp: Test arg.is_constant
+PASS: gdb.python/py-symbol.exp: Test arg.is_argument
+PASS: gdb.python/py-symbol.exp: Test arg.is_function
+PASS: gdb.python/py-symbol.exp: Test func.is_variable
+PASS: gdb.python/py-symbol.exp: Test func.is_constant
+PASS: gdb.python/py-symbol.exp: Test func.is_argument
+PASS: gdb.python/py-symbol.exp: Test func.is_function
+PASS: gdb.python/py-symbol.exp: Test func.name
+PASS: gdb.python/py-symbol.exp: Test func.print_name
+PASS: gdb.python/py-symbol.exp: Test func.linkage_name
+PASS: gdb.python/py-symbol.exp: Test func.addr_class
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Break at end.
+PASS: gdb.python/py-symbol.exp: Test a.is_variable
+PASS: gdb.python/py-symbol.exp: Test a.is_constant
+PASS: gdb.python/py-symbol.exp: Test a.is_argument
+PASS: gdb.python/py-symbol.exp: Test a.is_function
+PASS: gdb.python/py-symbol.exp: Test a.addr_class
+PASS: gdb.python/py-symbol.exp: try to print value of a without a frame
+PASS: gdb.python/py-symbol.exp: print value of a
+PASS: gdb.python/py-symbol.exp: print whether a needs a frame
+PASS: gdb.python/py-symbol.exp: Test t.is_variable
+PASS: gdb.python/py-symbol.exp: Test t.is_constant
+PASS: gdb.python/py-symbol.exp: Test t.is_argument
+PASS: gdb.python/py-symbol.exp: Test t.is_function
+PASS: gdb.python/py-symbol.exp: Test t.addr_class
+PASS: gdb.python/py-symbol.exp: Get type
+PASS: gdb.python/py-symbol.exp: Get symtab
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Break in class.
+PASS: gdb.python/py-symbol.exp: Test func.is_variable
+PASS: gdb.python/py-symbol.exp: Test func.is_constant
+PASS: gdb.python/py-symbol.exp: Test func.is_argument
+PASS: gdb.python/py-symbol.exp: Test func.is_function
+PASS: gdb.python/py-symbol.exp: Test func.name
+PASS: gdb.python/py-symbol.exp: Test func.print_name
+PASS: gdb.python/py-symbol.exp: Test func.linkage_name
+PASS: gdb.python/py-symbol.exp: Test func.addr_class
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Break at end.
+PASS: gdb.python/py-symbol.exp: Test symbol validity
+PASS: gdb.python/py-symbol.exp: Test symbol validity
+PASS: gdb.python/py-symbol.exp: Test symbol destructor
+Running ./gdb.python/py-symtab.exp ...
+PASS: gdb.python/py-symtab.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-symtab.exp: Test symtab
+PASS: gdb.python/py-symtab.exp: Test sal.pc
+PASS: gdb.python/py-symtab.exp: Test sal.last
+PASS: gdb.python/py-symtab.exp: Test sal.line
+PASS: gdb.python/py-symtab.exp: Test sal.is_valid
+PASS: gdb.python/py-symtab.exp: Test symtab.filename
+PASS: gdb.python/py-symtab.exp: Test symtab.objfile
+PASS: gdb.python/py-symtab.exp: Test symtab.fullname
+PASS: gdb.python/py-symtab.exp: Test symtab.is_valid()
+PASS: gdb.python/py-symtab.exp: Test qq in global symbols
+PASS: gdb.python/py-symtab.exp: Test func in global symbols
+PASS: gdb.python/py-symtab.exp: Test main in global symbols
+PASS: gdb.python/py-symtab.exp: Test int in static symbols
+PASS: gdb.python/py-symtab.exp: Test char in static symbols
+PASS: gdb.python/py-symtab.exp: Test simple_struct in static symbols
+PASS: gdb.python/py-symtab.exp: Test sal.is_valid
+PASS: gdb.python/py-symtab.exp: Test symtab.is_valid()
+PASS: gdb.python/py-symtab.exp: Test sal destructor
+PASS: gdb.python/py-symtab.exp: Test symtab destructor
+Running ./gdb.python/py-template.exp ...
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int &
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int &
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int * const
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int * const *
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int * volatile
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int * volatile * const * volatile *
+Running ./gdb.python/python.exp ...
+PASS: gdb.python/python.exp: multi-line python command - python
+PASS: gdb.python/python.exp: multi-line python command - print (23)
+PASS: gdb.python/python.exp: multi-line python command - end
+PASS: gdb.python/python.exp: show python command - define zzq
+PASS: gdb.python/python.exp: show python command - python
+PASS: gdb.python/python.exp: show python command - print (23)
+PASS: gdb.python/python.exp: show python command - end
+PASS: gdb.python/python.exp: show python command - end
+PASS: gdb.python/python.exp: show python command - show user zzq
+PASS: gdb.python/python.exp: indented multi-line python command - python
+PASS: gdb.python/python.exp: indented multi-line python command - def foo ():
+PASS: gdb.python/python.exp: indented multi-line python command -   print ('hello, world!')
+PASS: gdb.python/python.exp: indented multi-line python command - foo ()
+PASS: gdb.python/python.exp: indented multi-line python command - end
+PASS: gdb.python/python.exp: source source2.py
+PASS: gdb.python/python.exp: source -s source2.py
+PASS: gdb.python/python.exp: python print (gdb.current_objfile())
+PASS: gdb.python/python.exp: python print (gdb.objfiles())
+PASS: gdb.python/python.exp: pythonX.Y/lib-dynload/*.so
+PASS: gdb.python/python.exp: python x = gdb.execute('printf "%d", 23', to_string = True)
+PASS: gdb.python/python.exp: python print (x)
+PASS: gdb.python/python.exp: post event insertion - python
+PASS: gdb.python/python.exp: post event insertion - someVal = 0
+PASS: gdb.python/python.exp: post event insertion - class Foo(object):
+PASS: gdb.python/python.exp: post event insertion -   def __call__(self):
+PASS: gdb.python/python.exp: post event insertion -     global someVal
+PASS: gdb.python/python.exp: post event insertion -     someVal += 1
+PASS: gdb.python/python.exp: post event insertion - gdb.post_event(Foo())
+PASS: gdb.python/python.exp: post event insertion - end
+PASS: gdb.python/python.exp: test post event execution
+PASS: gdb.python/python.exp: Test non callable class
+PASS: gdb.python/python.exp: show height
+PASS: gdb.python/python.exp: set height 10
+PASS: gdb.python/python.exp: verify pagination beforehand
+PASS: gdb.python/python.exp: verify pagination beforehand: q
+PASS: gdb.python/python.exp: gdb.execute does not page
+PASS: gdb.python/python.exp: verify pagination afterwards
+PASS: gdb.python/python.exp: verify pagination afterwards: q
+PASS: gdb.python/python.exp: set height 0
+PASS: gdb.python/python.exp: collect help from uiout
+PASS: gdb.python/python.exp: verify help to uiout
+PASS: gdb.python/python.exp: Attempt to aquire thread with no inferior
+PASS: gdb.python/python.exp: Ensure that no threads are returned
+PASS: gdb.python/python.exp: register atexit function - python
+PASS: gdb.python/python.exp: register atexit function - import atexit
+PASS: gdb.python/python.exp: register atexit function - def printit(arg):
+PASS: gdb.python/python.exp: register atexit function -   print (arg)
+PASS: gdb.python/python.exp: register atexit function - atexit.register(printit, 'good bye world')
+PASS: gdb.python/python.exp: register atexit function - end
+PASS: gdb.python/python.exp: atexit handling
+PASS: gdb.python/python.exp: test decode_line no source named main
+PASS: gdb.python/python.exp: test decode_line current location
+PASS: gdb.python/python.exp: Test decode_line current location
+PASS: gdb.python/python.exp: Test decode_line expression parse
+PASS: gdb.python/python.exp: Test decode_line current location
+PASS: gdb.python/python.exp: Test decode_line current locationn filename
+PASS: gdb.python/python.exp: Test decode_line current location line number
+PASS: gdb.python/python.exp: test decode_line python.c:26
+PASS: gdb.python/python.exp: Test decode_line python.c:26 length
+PASS: gdb.python/python.exp: Test decode_line expression parse
+PASS: gdb.python/python.exp: Test decode_line python.c:26 length
+PASS: gdb.python/python.exp: Test decode_line python.c:26 filename
+PASS: gdb.python/python.exp: Test decode_line python.c:26 line number
+PASS: gdb.python/python.exp: test decode_line randomfunc
+PASS: gdb.python/python.exp: test decode_line func1()
+PASS: gdb.python/python.exp: Test decode_line func1 length
+PASS: gdb.python/python.exp: Test decode_line func1 length
+PASS: gdb.python/python.exp: Test decode_line func1 filename
+PASS: gdb.python/python.exp: Test decode_line func1 line number
+PASS: gdb.python/python.exp: test decode_line func1,func2
+PASS: gdb.python/python.exp: stop at comma in linespec
+PASS: gdb.python/python.exp: Test stderr location
+PASS: gdb.python/python.exp: Test stdout location
+PASS: gdb.python/python.exp: Test default write
+PASS: gdb.python/python.exp: Test stderr write
+PASS: gdb.python/python.exp: Test stdout write
+PASS: gdb.python/python.exp: Test stdlog write
+PASS: gdb.python/python.exp: Test print-backtrace show setting. Default is message.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: Test print-backtrace show setting to full.
+PASS: gdb.python/python.exp: prompt substitution - python
+PASS: gdb.python/python.exp: prompt substitution - someCounter = 0
+PASS: gdb.python/python.exp: prompt substitution - def prompt(current):
+PASS: gdb.python/python.exp: prompt substitution -    global someCounter
+PASS: gdb.python/python.exp: prompt substitution -    if (current == "testfake "):
+PASS: gdb.python/python.exp: prompt substitution -       return None
+PASS: gdb.python/python.exp: prompt substitution -    someCounter = someCounter + 1
+PASS: gdb.python/python.exp: prompt substitution -    return "py prompt " + str (someCounter) + " "
+PASS: gdb.python/python.exp: prompt substitution - end
+PASS: gdb.python/python.exp: prompt substitution readline - python
+PASS: gdb.python/python.exp: prompt substitution readline - pCounter = 0
+PASS: gdb.python/python.exp: prompt substitution readline - def program_prompt(current):
+PASS: gdb.python/python.exp: prompt substitution readline -    global pCounter
+PASS: gdb.python/python.exp: prompt substitution readline -    if (current == ">"):
+PASS: gdb.python/python.exp: prompt substitution readline -       pCounter = pCounter + 1
+PASS: gdb.python/python.exp: prompt substitution readline -       return "python line " + str (pCounter) + ": "
+PASS: gdb.python/python.exp: prompt substitution readline -    return None
+PASS: gdb.python/python.exp: prompt substitution readline - end
+PASS: gdb.python/python.exp: set hook
+PASS: gdb.python/python.exp: set prompt testfake
+PASS: gdb.python/python.exp: show prompt shows guarded prompt
+PASS: gdb.python/python.exp: set prompt blah overriden
+PASS: gdb.python/python.exp: Delete old hook
+PASS: gdb.python/python.exp: set default prompt
+PASS: gdb.python/python.exp: set programming hook
+PASS: gdb.python/python.exp: readline secondary are not substituted
+PASS: gdb.python/python.exp: end programming
+PASS: gdb.python/python.exp: prompt substitution readline - python
+PASS: gdb.python/python.exp: prompt substitution readline - import gdb.command.prompt
+PASS: gdb.python/python.exp: prompt substitution readline - end
+PASS: gdb.python/python.exp: set basic extended prompt
+PASS: gdb.python/python.exp: set extended prompt working directory
+PASS: gdb.python/python.exp: set extended prompt parameter
+PASS: gdb.python/python.exp: Test print-backtrace show setting. Default is message.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: Test print-backtrace show setting to full.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: Test print-backtrace show setting to none.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: prompt substitution readline - python
+PASS: gdb.python/python.exp: prompt substitution readline - pCounter = 0
+PASS: gdb.python/python.exp: prompt substitution readline - def error_prompt(current):
+PASS: gdb.python/python.exp: prompt substitution readline -    raise RuntimeError("Python exception called")
+PASS: gdb.python/python.exp: prompt substitution readline - end
+PASS: gdb.python/python.exp: set hook
+PASS: gdb.python/python.exp: set the hook to default
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: set hook
+PASS: gdb.python/python.exp: set the hook to default
+PASS: gdb.python/python.exp: Get line number of func2 call site
+PASS: gdb.python/python.exp: Test find_pc_line at func2 call site
+PASS: gdb.python/python.exp: Step into func2
+PASS: gdb.python/python.exp: Step out of func2
+PASS: gdb.python/python.exp: Test find_pc_line with resume address
+Running ./gdb.python/py-type.exp ...
+PASS: gdb.python/py-type.exp: lang_c: continue to breakpoint: break to inspect struct and array.
+PASS: gdb.python/py-type.exp: lang_c: test_fields: c typedef field list
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (st)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (st) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get fields from st.type
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check number of fields (st)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check structure field a name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check structure field b name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check that dir includes name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check number of fields (st.type)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check fields lookup by name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check fields iteration over values
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check fields items list
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check field name exists test
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check field name nonexists test
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check conversion to bool
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (len (st.type['a'].type))
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (st.type['a'].type.has_key ('x'))
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (st.type['a'].type.keys ())
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (st.type['a'].type['x'])
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (not not st.type['a'].type)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (ar)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python fields = ar.type.fields()
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check the number of fields
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check array field type
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to array with one argument
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to array with two arguments
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (ar[0].type == ar[0].type)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (vec_data_1)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (vec_data_1) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (vec_data_2)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (vec_data_2) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: set vec1
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to vector with one argument
+PASS: gdb.python/py-type.exp: lang_c: test_fields: set vec2
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to vector with two arguments
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print vec1 == vec2
+PASS: gdb.python/py-type.exp: lang_c: test_fields: set vec3
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print vec1 == vec3
+PASS: gdb.python/py-type.exp: lang_c: test_enum: print value (e)
+PASS: gdb.python/py-type.exp: lang_c: test_enum: get value (e) from history
+PASS: gdb.python/py-type.exp: lang_c: test_enum: extract type fields from e
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check the number of enum fields
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field[0] name
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field[1]name
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check the number of type fields
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field lookup by name (v1)
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field lookup by name (v2)
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check num fields iteration over values
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum fields items list
+PASS: gdb.python/py-type.exp: lang_cpp: continue to breakpoint: break to inspect struct and array.
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: c++ typedef field list
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (c)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (c) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get fields from c.type
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check number of fields (c)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check class field c name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check class field d name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (c.type == gdb.parse_and_eval('d').type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (c.type == gdb.parse_and_eval('d').type.fields()[0].type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (st)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (st) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get fields from st.type
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check number of fields (st)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check structure field a name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check structure field b name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check that dir includes name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check number of fields (st.type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields lookup by name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields iteration over values
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields items list
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check field name exists test
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check field name nonexists test
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check conversion to bool
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (len (st.type['a'].type))
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (st.type['a'].type.has_key ('x'))
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (st.type['a'].type.keys ())
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (st.type['a'].type['x'])
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (not not st.type['a'].type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (ar)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python fields = ar.type.fields()
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check the number of fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check array field type
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to array with one argument
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to array with two arguments
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (ar[0].type == ar[0].type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (vec_data_1)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (vec_data_1) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (vec_data_2)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (vec_data_2) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: set vec1
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to vector with one argument
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: set vec2
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to vector with two arguments
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print vec1 == vec2
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: set vec3
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print vec1 == vec3
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: print value (d)
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: get value (d) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: extract type fields from d
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: Check the number of fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: Check base class (fields[0])
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: Check base class (fields[1])
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: print value (ar)
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: Check correct tuple length
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: Check range low bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: Check range high bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: print value (ar)
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: get fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: Check range low bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: Check range high bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on unranged value: print value (st)
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on unranged value: get value (st) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on unranged value: Check range for non ranged type.
+PASS: gdb.python/py-type.exp: lang_cpp: get type of temvar
+PASS: gdb.python/py-type.exp: lang_cpp: python print (ttype.template_argument(0))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (isinstance(ttype.template_argument(0), gdb.Type))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (ttype.template_argument(1))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (isinstance(ttype.template_argument(1), gdb.Value))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (ttype.template_argument(2))
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: print value (e)
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: get value (e) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: extract type fields from e
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check the number of enum fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field[0] name
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field[1]name
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check the number of type fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field lookup by name (v1)
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field lookup by name (v2)
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check num fields iteration over values
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum fields items list
+Running ./gdb.python/py-typeprint.exp ...
+PASS: gdb.python/py-typeprint.exp: python exec (open ('py-typeprint.py').read ())
+PASS: gdb.python/py-typeprint.exp: basic test
+PASS: gdb.python/py-typeprint.exp: raw test
+PASS: gdb.python/py-typeprint.exp: disable type-printer string
+PASS: gdb.python/py-typeprint.exp: whatis with disabled printer
+PASS: gdb.python/py-typeprint.exp: info type-printers
+PASS: gdb.python/py-typeprint.exp: enable type-printer string
+PASS: gdb.python/py-typeprint.exp: whatis with enabled printer
+PASS: gdb.python/py-typeprint.exp: whatis s
+Running ./gdb.python/py-value-cc.exp ...
+PASS: gdb.python/py-value-cc.exp: continue to breakpoint: Break here
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("a").type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("a").referenced_value().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ref").type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ref").referenced_value().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ref").referenced_value()))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").dereference().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").referenced_value().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").referenced_value().dereference()))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").referenced_value().referenced_value()))
+Running ./gdb.python/py-value.exp ...
+PASS: gdb.python/py-value.exp: create boolean value
+PASS: gdb.python/py-value.exp: create integer value
+PASS: gdb.python/py-value.exp: create long value
+PASS: gdb.python/py-value.exp: create double value
+PASS: gdb.python/py-value.exp: create 8-bit string value
+PASS: gdb.python/py-value.exp: print 8-bit string
+PASS: gdb.python/py-value.exp: verify type of 8-bit string
+PASS: gdb.python/py-value.exp: create unicode value
+PASS: gdb.python/py-value.exp: print Unicode string
+PASS: gdb.python/py-value.exp: verify type of unicode string
+PASS: gdb.python/py-value.exp: Test address attribute in non-addressable value
+PASS: gdb.python/py-value.exp: add two integer values
+PASS: gdb.python/py-value.exp: verify type of integer add result
+PASS: gdb.python/py-value.exp: add two double values
+PASS: gdb.python/py-value.exp: subtract two integer values
+PASS: gdb.python/py-value.exp: subtract two double values
+PASS: gdb.python/py-value.exp: multiply two integer values
+PASS: gdb.python/py-value.exp: multiply two double values
+PASS: gdb.python/py-value.exp: divide two integer values
+PASS: gdb.python/py-value.exp: divide two double values
+PASS: gdb.python/py-value.exp: take remainder of two integer values
+PASS: gdb.python/py-value.exp: integer value raised to the power of another integer value
+PASS: gdb.python/py-value.exp: double value raised to the power of integer value
+PASS: gdb.python/py-value.exp: negated integer value
+PASS: gdb.python/py-value.exp: positive integer value
+PASS: gdb.python/py-value.exp: negated double value
+PASS: gdb.python/py-value.exp: positive double value
+PASS: gdb.python/py-value.exp: absolute of integer value
+PASS: gdb.python/py-value.exp: absolute of double value
+PASS: gdb.python/py-value.exp: subtract integer value from python integer
+PASS: gdb.python/py-value.exp: verify type of mixed integer subtraction result
+PASS: gdb.python/py-value.exp: add double value with python float
+PASS: gdb.python/py-value.exp: subtract python integer from integer value
+PASS: gdb.python/py-value.exp: add python float with double value
+PASS: gdb.python/py-value.exp: print evalue
+PASS: gdb.python/py-value.exp: python evalue = gdb.history (0)
+PASS: gdb.python/py-value.exp: python print (int (evalue))
+PASS: gdb.python/py-value.exp: add pointer value with python integer
+PASS: gdb.python/py-value.exp: subtract python integer from pointer value
+PASS: gdb.python/py-value.exp: subtract two pointer values
+PASS: gdb.python/py-value.exp: catch error in python type conversion
+PASS: gdb.python/py-value.exp: catch throw of GDB error
+PASS: gdb.python/py-value.exp: define function to test booleans - python
+PASS: gdb.python/py-value.exp: define function to test booleans - def test_bool (val):
+PASS: gdb.python/py-value.exp: define function to test booleans -   if val:
+PASS: gdb.python/py-value.exp: define function to test booleans -     print ('yay')
+PASS: gdb.python/py-value.exp: define function to test booleans -   else:
+PASS: gdb.python/py-value.exp: define function to test booleans -     print ('nay')
+PASS: gdb.python/py-value.exp: define function to test booleans - end
+PASS: gdb.python/py-value.exp: check evaluation of true boolean value in expression
+PASS: gdb.python/py-value.exp: check evaluation of false boolean value in expression
+PASS: gdb.python/py-value.exp: check evaluation of true integer value in expression
+PASS: gdb.python/py-value.exp: check evaluation of false integer value in expression
+PASS: gdb.python/py-value.exp: check evaluation of true integer value in expression
+PASS: gdb.python/py-value.exp: check evaluation of false integer value in expression
+PASS: gdb.python/py-value.exp: less than, equal
+PASS: gdb.python/py-value.exp: less than, less
+PASS: gdb.python/py-value.exp: less than, greater
+PASS: gdb.python/py-value.exp: less than, None
+PASS: gdb.python/py-value.exp: less or equal, equal
+PASS: gdb.python/py-value.exp: less or equal, less
+PASS: gdb.python/py-value.exp: less or equal, greater
+PASS: gdb.python/py-value.exp: less or equal, None
+PASS: gdb.python/py-value.exp: equality of gdb.Values
+PASS: gdb.python/py-value.exp: inequality of gdb.Values
+PASS: gdb.python/py-value.exp: equality of gdb.Value with Python value
+PASS: gdb.python/py-value.exp: inequality of gdb.Value with Python value
+PASS: gdb.python/py-value.exp: inequality of gdb.Value with None
+PASS: gdb.python/py-value.exp: inequality, false
+PASS: gdb.python/py-value.exp: inequality, true
+PASS: gdb.python/py-value.exp: inequality, None
+PASS: gdb.python/py-value.exp: greater than, equal
+PASS: gdb.python/py-value.exp: greater than, less
+PASS: gdb.python/py-value.exp: greater than, greater
+PASS: gdb.python/py-value.exp: greater than, None
+PASS: gdb.python/py-value.exp: greater or equal, equal
+PASS: gdb.python/py-value.exp: greater or equal, less
+PASS: gdb.python/py-value.exp: greater or equal, greater
+PASS: gdb.python/py-value.exp: greater or equal, None
+PASS: gdb.python/py-value.exp: py-value in file.filename
+PASS: gdb.python/py-value.exp: python print (gdb.objfiles()[0].pretty_printers)
+PASS: gdb.python/py-value.exp: python gdb.objfiles()[0].pretty_printers = 0
+PASS: gdb.python/py-value.exp: parse_and_eval constant test
+PASS: gdb.python/py-value.exp: parse_and_eval simple expression test
+PASS: gdb.python/py-value.exp: parse_and_eval type test
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - python
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - one = gdb.Value(1)
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - two = gdb.Value(2)
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - three = gdb.Value(3)
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - vdict = {one:"one str",two:"two str",three:"three str"}
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - end
+PASS: gdb.python/py-value.exp: Test dictionary hash
+PASS: gdb.python/py-value.exp: Test dictionary hash
+PASS: gdb.python/py-value.exp: Test dictionary hash
+PASS: gdb.python/py-value.exp: Test inbuilt hash
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect struct and union
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: access element inside struct using 8-bit string name
+PASS: gdb.python/py-value.exp: access element inside struct using unicode name
+PASS: gdb.python/py-value.exp: dereference value
+PASS: gdb.python/py-value.exp: Test is_optimized_out attribute
+PASS: gdb.python/py-value.exp: Test address attribute
+PASS: gdb.python/py-value.exp: parse_and_eval with memory error
+PASS: gdb.python/py-value.exp: python inval = gdb.parse_and_eval('*(int*)0')
+PASS: gdb.python/py-value.exp: python print (inval.is_lazy)
+PASS: gdb.python/py-value.exp: memory error and lazy values
+PASS: gdb.python/py-value.exp: memory error and lazy values
+PASS: gdb.python/py-value.exp: python argc_lazy = gdb.parse_and_eval('argc')
+PASS: gdb.python/py-value.exp: python argc_notlazy = gdb.parse_and_eval('argc')
+PASS: gdb.python/py-value.exp: python argc_notlazy.fetch_lazy()
+PASS: gdb.python/py-value.exp: python print (argc_lazy.is_lazy)
+PASS: gdb.python/py-value.exp: python print (argc_notlazy.is_lazy)
+PASS: gdb.python/py-value.exp: sanity check argc
+PASS: gdb.python/py-value.exp: python print (argc_lazy.is_lazy)
+PASS: gdb.python/py-value.exp: set argc=2
+PASS: gdb.python/py-value.exp: python print (argc_notlazy)
+PASS: gdb.python/py-value.exp: python print (argc_lazy)
+PASS: gdb.python/py-value.exp: python print (argc_lazy.is_lazy)
+PASS: gdb.python/py-value.exp: print st
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: Test string with no length
+PASS: gdb.python/py-value.exp: Test string (length = -1) is all of the string
+PASS: gdb.python/py-value.exp: python print (st.string (length = 6))
+PASS: gdb.python/py-value.exp: Test string (length = 0) is empty
+PASS: gdb.python/py-value.exp: Test length is 0
+PASS: gdb.python/py-value.exp: print nullst
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: Test string to first null
+PASS: gdb.python/py-value.exp: get string beyond null
+PASS: gdb.python/py-value.exp: python print (repr(nullst))
+PASS: gdb.python/py-value.exp: p/x fp1
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python fp1 = fp1.dereference()
+PASS: gdb.python/py-value.exp: python result = fp1()
+PASS: gdb.python/py-value.exp: python print (result)
+PASS: gdb.python/py-value.exp: p/x fp2
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python fp2 = fp2.dereference()
+PASS: gdb.python/py-value.exp: python result2 = fp2(10,20)
+PASS: gdb.python/py-value.exp: python print (result2)
+PASS: gdb.python/py-value.exp: p i
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python result3 = i()
+PASS: gdb.python/py-value.exp: p/x fp2
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python fp3 = fp3.dereference()
+PASS: gdb.python/py-value.exp: python result2 = fp3(10)
+PASS: gdb.python/py-value.exp: print sptr
+PASS: gdb.python/py-value.exp: Get value from history
+PASS: gdb.python/py-value.exp: Aquire lazy string
+PASS: gdb.python/py-value.exp: Test type name equality
+PASS: gdb.python/py-value.exp: Test type name equality
+PASS: gdb.python/py-value.exp: print sn
+PASS: gdb.python/py-value.exp: Get value from history
+PASS: gdb.python/py-value.exp: Test lazy string
+PASS: gdb.python/py-value.exp: Succesfully create a lazy string
+PASS: gdb.python/py-value.exp: Test lazy string length
+PASS: gdb.python/py-value.exp: Test lazy string address
+PASS: gdb.python/py-value.exp: create PTR type
+PASS: gdb.python/py-value.exp: kill the inferior
+PASS: gdb.python/py-value.exp: Discard the symbols
+PASS: gdb.python/py-value.exp: cast arg0 to PTR
+PASS: gdb.python/py-value.exp: delete PTR type
+PASS: gdb.python/py-value.exp: print value's type
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect struct and union
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access a string with a subscript
+PASS: gdb.python/py-value.exp: Build pointer to array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Access array via pointer with int subscript
+PASS: gdb.python/py-value.exp: Access array via pointer with value subscript
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Build array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Test multiple subscript
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect pointer by reference
+PASS: gdb.python/py-value.exp: Obtain address
+PASS: gdb.python/py-value.exp: Obtains value from GDB
+PASS: gdb.python/py-value.exp: Check pointer passed as reference
+PASS: gdb.python/py-value.exp: python print (bool(gdb.parse_and_eval('base').dynamic_cast(gdb.lookup_type('Derived').pointer())))
+PASS: gdb.python/py-value.exp: python print (gdb.parse_and_eval('base').dynamic_type)
+PASS: gdb.python/py-value.exp: python print (gdb.parse_and_eval('5').dynamic_type)
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect struct and union
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access a string with a subscript
+PASS: gdb.python/py-value.exp: Build pointer to array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Access array via pointer with int subscript
+PASS: gdb.python/py-value.exp: Access array via pointer with value subscript
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Build array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Test multiple subscript
+Running ./gdb.reverse/amd64-tailcall-reverse.exp ...
+Running ./gdb.reverse/break-precsave.exp ...
+Running ./gdb.reverse/break-reverse.exp ...
+Running ./gdb.reverse/consecutive-precsave.exp ...
+Running ./gdb.reverse/consecutive-reverse.exp ...
+Running ./gdb.reverse/finish-precsave.exp ...
+Running ./gdb.reverse/finish-reverse-bkpt.exp ...
+Running ./gdb.reverse/finish-reverse.exp ...
+Running ./gdb.reverse/i386-precsave.exp ...
+Running ./gdb.reverse/i386-reverse.exp ...
+Running ./gdb.reverse/i386-sse-reverse.exp ...
+Running ./gdb.reverse/i387-env-reverse.exp ...
+PASS: gdb.reverse/i387-env-reverse.exp: Turn on process record
+FAIL: gdb.reverse/i387-env-reverse.exp: record to end of main (timeout)
+FAIL: gdb.reverse/i387-env-reverse.exp: set reverse direction
+FAIL: gdb.reverse/i387-env-reverse.exp: rewind to beginning of main
+FAIL: gdb.reverse/i387-env-reverse.exp: set forward direction
+PASS: gdb.reverse/i387-env-reverse.exp: begin testing fpu env
+PASS: gdb.reverse/i387-env-reverse.exp: save FPU env in memory
+PASS: gdb.reverse/i387-env-reverse.exp: restore FPU env
+PASS: gdb.reverse/i387-env-reverse.exp: store status word in EAX
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+FAIL: gdb.reverse/i387-env-reverse.exp: verify eax == 0x8040000
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag == 0xffff
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x3800
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0x3fff
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x3000
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0xfff
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x2800
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0x3ff
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x2000
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0xff
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x1800
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0x3f
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x1000
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0xf
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x800
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0x7
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x1000
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0xf
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x1800
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0x3f
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x2000
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0xff
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x2800
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0x3ff
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x3000
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0xfff
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0x3800
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag  == 0x3fff
+PASS: gdb.reverse/i387-env-reverse.exp: push st0
+PASS: gdb.reverse/i387-env-reverse.exp: verify fstat == 0
+PASS: gdb.reverse/i387-env-reverse.exp: verify ftag == 0xffff
+Running ./gdb.reverse/i387-stack-reverse.exp ...
+PASS: gdb.reverse/i387-stack-reverse.exp: Turn on process record
+PASS: gdb.reverse/i387-stack-reverse.exp: record to end of main
+PASS: gdb.reverse/i387-stack-reverse.exp: set reverse direction
+PASS: gdb.reverse/i387-stack-reverse.exp: rewind to beginning of main
+PASS: gdb.reverse/i387-stack-reverse.exp: set forward direction
+PASS: gdb.reverse/i387-stack-reverse.exp: begin test st0
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 3.321928094*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 1.4426950406*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 1.442695040*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 1.4426950*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 3.3219280*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st3 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 0.301029*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 0.301029*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 1.44269506*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st3 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st4 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 0.69314*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 0.69314*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 0.301029*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st3 == 1.442695040*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st4 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st5 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 0
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 0
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 0.69314*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 0.301029*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st3 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st4 == 1.442695040*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st5 == 3.32192809*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st6 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 0
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 0
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 0.69314*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st3 == 0.301029*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st4 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st5 == 1.44269504*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st6 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st7 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: undo registers, st0-st7
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 0
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 0.69314*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 0.301029*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st3 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st4 == 1.442695040*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st5 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st6 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 0.69314*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 0.69314*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 0.301029*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st3 == 1.442695040*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st4 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st5 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 0.301029*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 0.301029*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 1.442695040*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st3 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st4 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 3.14159265*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 1.442695040*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st3 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 1.44269504088*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 1.442695040*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st2 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 3.3219280948*
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st1 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: push st0 == 1
+PASS: gdb.reverse/i387-stack-reverse.exp: verify st0 == 1
+Running ./gdb.reverse/machinestate.exp ...
+Running ./gdb.reverse/machinestate-precsave.exp ...
+Running ./gdb.reverse/next-reverse-bkpt-over-sr.exp ...
+Running ./gdb.reverse/sigall-precsave.exp ...
+Running ./gdb.reverse/sigall-reverse.exp ...
+Running ./gdb.reverse/singlejmp-reverse.exp ...
+Running ./gdb.reverse/solib-precsave.exp ...
+Running ./gdb.reverse/solib-reverse.exp ...
+Running ./gdb.reverse/step-precsave.exp ...
+Running ./gdb.reverse/step-reverse.exp ...
+Running ./gdb.reverse/until-precsave.exp ...
+Running ./gdb.reverse/until-reverse.exp ...
+Running ./gdb.reverse/watch-precsave.exp ...
+Running ./gdb.reverse/watch-reverse.exp ...
+Running ./gdb.server/ext-attach.exp ...
+Running ./gdb.server/ext-run.exp ...
+PASS: gdb.server/ext-run.exp: disconnect
+PASS: gdb.server/ext-run.exp: set remote exec-file
+PASS: gdb.server/ext-run.exp: continue to main
+PASS: gdb.server/ext-run.exp: get process list
+PASS: gdb.server/ext-run.exp: kill
+PASS: gdb.server/ext-run.exp: load new file without any gdbserver inferior
+PASS: gdb.server/ext-run.exp: monitor exit
+Running ./gdb.server/file-transfer.exp ...
+PASS: gdb.server/file-transfer.exp: disconnect
+FAIL: gdb.server/file-transfer.exp: put binary file
+FAIL: gdb.server/file-transfer.exp: get binary file
+FAIL: gdb.server/file-transfer.exp: compare binary file
+FAIL: gdb.server/file-transfer.exp: deleted binary file
+FAIL: gdb.server/file-transfer.exp: put text file
+FAIL: gdb.server/file-transfer.exp: get text file
+FAIL: gdb.server/file-transfer.exp: compare text file
+FAIL: gdb.server/file-transfer.exp: deleted text file
+Running ./gdb.server/no-thread-db.exp ...
+PASS: gdb.server/no-thread-db.exp: successfully compiled posix threads test case
+PASS: gdb.server/no-thread-db.exp: disconnect
+PASS: gdb.server/no-thread-db.exp: libthread-db is now unresolvable
+PASS: gdb.server/no-thread-db.exp: continue to breakpoint: after tls assignment
+PASS: gdb.server/no-thread-db.exp: print foo
+Running ./gdb.server/server-exec-info.exp ...
+PASS: gdb.server/server-exec-info.exp: file
+PASS: gdb.server/server-exec-info.exp: set sysroot remote:
+PASS: gdb.server/server-exec-info.exp: info files
+Running ./gdb.server/server-kill.exp ...
+PASS: gdb.server/server-kill.exp: disconnect
+FAIL: gdb.server/server-kill.exp: tstatus
+Running ./gdb.server/server-mon.exp ...
+PASS: gdb.server/server-mon.exp: disconnect
+PASS: gdb.server/server-mon.exp: monitor help
+PASS: gdb.server/server-mon.exp: monitor
+PASS: gdb.server/server-mon.exp: monitor set debug 1
+PASS: gdb.server/server-mon.exp: monitor set debug 0
+PASS: gdb.server/server-mon.exp: monitor set remote-debug 1
+PASS: gdb.server/server-mon.exp: monitor set remote-debug 0
+Running ./gdb.server/server-run.exp ...
+PASS: gdb.server/server-run.exp: disconnect
+PASS: gdb.server/server-run.exp: loaded dynamic linker
+PASS: gdb.server/server-run.exp: continue to main
+Running ./gdb.server/solib-list.exp ...
+Running ./gdb.stabs/exclfwd.exp ...
+PASS: gdb.stabs/exclfwd.exp: ptype v1
+PASS: gdb.stabs/exclfwd.exp: ptype v2
+PASS: gdb.stabs/exclfwd.exp: ptype v3
+Running ./gdb.stabs/gdb11479.exp ...
+PASS: gdb.stabs/gdb11479.exp: Set breakpoints forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test2 forced_stabs
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test2 forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test forced_stabs
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Set breakpoints natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test2 natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test2 natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test natural_debug_format
+Running ./gdb.stabs/weird.exp ...
+PASS: gdb.stabs/weird.exp: weirdx.o read without error
+PASS: gdb.stabs/weird.exp: stabs found
+PASS: gdb.stabs/weird.exp: variable var0 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var0)
+PASS: gdb.stabs/weird.exp: variable var1 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var1)
+PASS: gdb.stabs/weird.exp: variable var2 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var2)
+PASS: gdb.stabs/weird.exp: variable var3 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var3)
+PASS: gdb.stabs/weird.exp: variable attr32 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr32)
+PASS: gdb.stabs/weird.exp: variable attr33 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr33)
+PASS: gdb.stabs/weird.exp: variable attr35 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr35)
+PASS: gdb.stabs/weird.exp: variable attr36 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr36)
+PASS: gdb.stabs/weird.exp: variable attr37 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr37)
+PASS: gdb.stabs/weird.exp: variable attr38 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr38)
+PASS: gdb.stabs/weird.exp: variable attr39 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr39)
+PASS: gdb.stabs/weird.exp: variable attr41 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr41)
+PASS: gdb.stabs/weird.exp: variable attr42 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr42)
+PASS: gdb.stabs/weird.exp: variable attr43 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr43)
+PASS: gdb.stabs/weird.exp: variable attr44 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr44)
+PASS: gdb.stabs/weird.exp: variable attr46 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr46)
+PASS: gdb.stabs/weird.exp: variable attr47 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr47)
+PASS: gdb.stabs/weird.exp: variable attr58 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr58)
+PASS: gdb.stabs/weird.exp: variable attr59 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr59)
+PASS: gdb.stabs/weird.exp: variable attr60 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr60)
+PASS: gdb.stabs/weird.exp: variable attr61 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr61)
+PASS: gdb.stabs/weird.exp: variable attr62 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr62)
+PASS: gdb.stabs/weird.exp: variable attr63 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr63)
+PASS: gdb.stabs/weird.exp: variable attr64 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr64)
+PASS: gdb.stabs/weird.exp: variable attr65 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr65)
+PASS: gdb.stabs/weird.exp: variable attr66 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr66)
+PASS: gdb.stabs/weird.exp: variable attr67 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr67)
+PASS: gdb.stabs/weird.exp: variable attr68 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr68)
+PASS: gdb.stabs/weird.exp: variable attr69 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr69)
+PASS: gdb.stabs/weird.exp: variable attr70 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr70)
+PASS: gdb.stabs/weird.exp: variable attr71 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr71)
+PASS: gdb.stabs/weird.exp: variable attr72 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr72)
+PASS: gdb.stabs/weird.exp: variable attr73 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr73)
+PASS: gdb.stabs/weird.exp: variable attr74 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr74)
+PASS: gdb.stabs/weird.exp: variable attr75 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr75)
+PASS: gdb.stabs/weird.exp: variable attr76 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr76)
+PASS: gdb.stabs/weird.exp: variable attr77 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr77)
+PASS: gdb.stabs/weird.exp: variable attr78 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr78)
+PASS: gdb.stabs/weird.exp: variable attr79 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr79)
+PASS: gdb.stabs/weird.exp: variable attr80 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr80)
+PASS: gdb.stabs/weird.exp: variable attr81 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr81)
+PASS: gdb.stabs/weird.exp: variable attr82 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr82)
+PASS: gdb.stabs/weird.exp: variable attr83 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr83)
+PASS: gdb.stabs/weird.exp: variable attr84 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr84)
+PASS: gdb.stabs/weird.exp: variable attr85 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr85)
+PASS: gdb.stabs/weird.exp: variable attr86 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr86)
+PASS: gdb.stabs/weird.exp: variable attr87 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr87)
+PASS: gdb.stabs/weird.exp: variable attr88 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr88)
+PASS: gdb.stabs/weird.exp: variable attr89 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr89)
+PASS: gdb.stabs/weird.exp: variable attr90 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr90)
+PASS: gdb.stabs/weird.exp: variable attr91 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr91)
+PASS: gdb.stabs/weird.exp: variable attr92 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr92)
+PASS: gdb.stabs/weird.exp: variable attr93 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr93)
+PASS: gdb.stabs/weird.exp: variable attr94 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr94)
+PASS: gdb.stabs/weird.exp: variable attr95 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr95)
+PASS: gdb.stabs/weird.exp: variable attr96 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr96)
+PASS: gdb.stabs/weird.exp: variable attr97 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr97)
+PASS: gdb.stabs/weird.exp: variable attr98 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr98)
+PASS: gdb.stabs/weird.exp: variable attr99 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr99)
+PASS: gdb.stabs/weird.exp: variable attr100 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr100)
+PASS: gdb.stabs/weird.exp: variable attr101 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr101)
+PASS: gdb.stabs/weird.exp: variable attr102 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr102)
+PASS: gdb.stabs/weird.exp: variable attr103 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr103)
+PASS: gdb.stabs/weird.exp: variable attr104 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr104)
+PASS: gdb.stabs/weird.exp: variable attr105 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr105)
+PASS: gdb.stabs/weird.exp: variable attr106 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr106)
+PASS: gdb.stabs/weird.exp: variable attr107 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr107)
+PASS: gdb.stabs/weird.exp: variable attr108 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr108)
+PASS: gdb.stabs/weird.exp: variable attr109 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr109)
+PASS: gdb.stabs/weird.exp: variable attr110 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr110)
+PASS: gdb.stabs/weird.exp: variable attr111 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr111)
+PASS: gdb.stabs/weird.exp: variable attr112 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr112)
+PASS: gdb.stabs/weird.exp: variable attr113 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr113)
+PASS: gdb.stabs/weird.exp: variable attr114 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr114)
+PASS: gdb.stabs/weird.exp: variable attr115 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr115)
+PASS: gdb.stabs/weird.exp: variable attr116 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr116)
+PASS: gdb.stabs/weird.exp: variable attr117 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr117)
+PASS: gdb.stabs/weird.exp: variable attr118 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr118)
+PASS: gdb.stabs/weird.exp: variable attr119 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr119)
+PASS: gdb.stabs/weird.exp: variable attr120 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr120)
+PASS: gdb.stabs/weird.exp: variable attr121 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr121)
+PASS: gdb.stabs/weird.exp: variable attr122 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr122)
+PASS: gdb.stabs/weird.exp: variable attr123 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr123)
+PASS: gdb.stabs/weird.exp: variable attr124 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr124)
+PASS: gdb.stabs/weird.exp: variable attr125 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr125)
+PASS: gdb.stabs/weird.exp: variable attr126 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr126)
+PASS: gdb.stabs/weird.exp: 'e' constant on non-enum type
+PASS: gdb.stabs/weird.exp: whatis const69
+PASS: gdb.stabs/weird.exp: 'e' constant with embedded type
+PASS: gdb.stabs/weird.exp: char constant
+PASS: gdb.stabs/weird.exp: String constant 1
+PASS: gdb.stabs/weird.exp: String constant 2
+PASS: gdb.stabs/weird.exp: String constant 3
+PASS: gdb.stabs/weird.exp: String constant 4
+PASS: gdb.stabs/weird.exp: p bad_neg0
+PASS: gdb.stabs/weird.exp: ptype on inttype
+PASS: gdb.stabs/weird.exp: unrecognized floating point type
+PASS: gdb.stabs/weird.exp: print very big integer
+PASS: gdb.stabs/weird.exp: whatis consth
+PASS: gdb.stabs/weird.exp: whatis consth2
+XFAIL: gdb.stabs/weird.exp: print struct constant
+PASS: gdb.stabs/weird.exp: print bad_type0
+PASS: gdb.stabs/weird.exp: print bad_type1
+XFAIL: gdb.stabs/weird.exp: array0 with strange index
+XFAIL: gdb.stabs/weird.exp: array1 with strange index
+PASS: gdb.stabs/weird.exp: whatis one_var (known failure in gdb 4.10)
+PASS: gdb.stabs/weird.exp: whatis one_var test 2
+PASS: gdb.stabs/weird.exp: whatis two_var (known failure in gdb 4.10)
+PASS: gdb.stabs/weird.exp: whatis two_var test 2
+XFAIL: gdb.stabs/weird.exp: whatis pointer_to_int_var
+XFAIL: gdb.stabs/weird.exp: whatis intp_var
+PASS: gdb.stabs/weird.exp: p common0var0
+XFAIL: gdb.stabs/weird.exp: p common0var1
+XFAIL: gdb.stabs/weird.exp: p common0var2
+Running ./gdb.threads/attach-into-signal.exp ...
+Running ./gdb.threads/attach-stopped.exp ...
+Running ./gdb.threads/bp_in_thread.exp ...
+PASS: gdb.threads/bp_in_thread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/bp_in_thread.exp: breakpoint on noreturn
+PASS: gdb.threads/bp_in_thread.exp: run to noreturn
+Running ./gdb.threads/clone-new-thread-event.exp ...
+PASS: gdb.threads/clone-new-thread-event.exp: catch SIGUSR1
+Running ./gdb.threads/corethreads.exp ...
+Running ./gdb.threads/create-fail.exp ...
+PASS: gdb.threads/create-fail.exp: successfully compiled posix threads test case
+PASS: gdb.threads/create-fail.exp: iteration 1: run till end
+PASS: gdb.threads/create-fail.exp: iteration 2: run till end
+PASS: gdb.threads/create-fail.exp: iteration 3: run till end
+PASS: gdb.threads/create-fail.exp: iteration 4: run till end
+PASS: gdb.threads/create-fail.exp: iteration 5: run till end
+PASS: gdb.threads/create-fail.exp: iteration 6: run till end
+PASS: gdb.threads/create-fail.exp: iteration 7: run till end
+PASS: gdb.threads/create-fail.exp: iteration 8: run till end
+PASS: gdb.threads/create-fail.exp: iteration 9: run till end
+PASS: gdb.threads/create-fail.exp: iteration 10: run till end
+Running ./gdb.threads/current-lwp-dead.exp ...
+PASS: gdb.threads/current-lwp-dead.exp: continue to breakpoint: fn_return
+Running ./gdb.threads/execl.exp ...
+Running ./gdb.threads/fork-child-threads.exp ...
+Running ./gdb.threads/fork-thread-pending.exp ...
+Running ./gdb.threads/gcore-thread.exp ...
+PASS: gdb.threads/gcore-thread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/gcore-thread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/gcore-thread.exp: help gcore
+PASS: gdb.threads/gcore-thread.exp: thread 1 is running
+PASS: gdb.threads/gcore-thread.exp: thread 2 is running
+PASS: gdb.threads/gcore-thread.exp: save a corefile
+PASS: gdb.threads/gcore-thread.exp: clear __stack_user.next
+PASS: gdb.threads/gcore-thread.exp: clear stack_used.next
+PASS: gdb.threads/gcore-thread.exp: save a zeroed-threads corefile
+FAIL: gdb.threads/gcore-thread.exp: corefile: re-load generated corefile (bad file format)
+FAIL: gdb.threads/gcore-thread.exp: core0file: re-load generated corefile (bad file format)
+Running ./gdb.threads/hand-call-in-threads.exp ...
+PASS: gdb.threads/hand-call-in-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/hand-call-in-threads.exp: breakpoint on all_threads_running
+PASS: gdb.threads/hand-call-in-threads.exp: breakpoint on hand_call
+PASS: gdb.threads/hand-call-in-threads.exp: run to all_threads_running
+PASS: gdb.threads/hand-call-in-threads.exp: enable scheduler locking
+PASS: gdb.threads/hand-call-in-threads.exp: show scheduler locking on
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: set confirm off
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: all dummies popped
+PASS: gdb.threads/hand-call-in-threads.exp: disable scheduler locking
+PASS: gdb.threads/hand-call-in-threads.exp: show scheduler locking off
+Running ./gdb.threads/ia64-sigill.exp ...
+PASS: gdb.threads/ia64-sigill.exp: successfully compiled posix threads test case
+PASS: gdb.threads/ia64-sigill.exp: info addr label
+PASS: gdb.threads/ia64-sigill.exp: set $sigill_bpnum=$bpnum
+PASS: gdb.threads/ia64-sigill.exp: set debug infrun 1
+PASS: gdb.threads/ia64-sigill.exp: continue
+PASS: gdb.threads/ia64-sigill.exp: delete $sigill_bpnum
+PASS: gdb.threads/ia64-sigill.exp: continue for the pending signal
+Running ./gdb.threads/interrupted-hand-call.exp ...
+PASS: gdb.threads/interrupted-hand-call.exp: successfully compiled posix threads test case
+PASS: gdb.threads/interrupted-hand-call.exp: breakpoint on all_threads_running
+PASS: gdb.threads/interrupted-hand-call.exp: run to all_threads_running
+PASS: gdb.threads/interrupted-hand-call.exp: hand-call interrupted by signal in another thread
+PASS: gdb.threads/interrupted-hand-call.exp: dummy stack frame present
+PASS: gdb.threads/interrupted-hand-call.exp: finish hand-call
+PASS: gdb.threads/interrupted-hand-call.exp: dummy frame popped
+PASS: gdb.threads/interrupted-hand-call.exp: continue until exit
+Running ./gdb.threads/killed.exp ...
+PASS: gdb.threads/killed.exp: successfully compiled posix threads test case
+PASS: gdb.threads/killed.exp: run program to completion
+PASS: gdb.threads/killed.exp: GDB exits after multi-threaded program exits messily
+Running ./gdb.threads/leader-exit.exp ...
+PASS: gdb.threads/leader-exit.exp: successfully compiled posix threads test case
+FAIL: gdb.threads/leader-exit.exp: continue to breakpoint: break-here (timeout)
+FAIL: gdb.threads/leader-exit.exp: Single thread has been left (timeout)
+Running ./gdb.threads/linux-dp.exp ...
+PASS: gdb.threads/linux-dp.exp: successfully compiled posix threads test case
+PASS: gdb.threads/linux-dp.exp: set print sevenbit-strings
+PASS: gdb.threads/linux-dp.exp: info threads 1
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 0
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 0
+PASS: gdb.threads/linux-dp.exp: info threads after: 0
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 1
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 1
+PASS: gdb.threads/linux-dp.exp: info threads after: 1
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 2
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 2
+PASS: gdb.threads/linux-dp.exp: info threads after: 2
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 3
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 3
+PASS: gdb.threads/linux-dp.exp: info threads after: 3
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 4
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 4
+PASS: gdb.threads/linux-dp.exp: info threads after: 4
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: main thread's sleep
+PASS: gdb.threads/linux-dp.exp: info threads 2
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print
+PASS: gdb.threads/linux-dp.exp: first thread-specific breakpoint hit
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 0
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 1
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 2
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 3
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 4
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 5
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 6
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 7
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 8
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 9
+PASS: gdb.threads/linux-dp.exp: thread-specific breakpoint is thread-specific
+PASS: gdb.threads/linux-dp.exp: selected thread: 1
+PASS: gdb.threads/linux-dp.exp: main is distinct: 1
+PASS: gdb.threads/linux-dp.exp: selected thread: 2
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 2
+PASS: gdb.threads/linux-dp.exp: selected thread: 3
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 3
+PASS: gdb.threads/linux-dp.exp: selected thread: 4
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 4
+PASS: gdb.threads/linux-dp.exp: selected thread: 5
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 5
+PASS: gdb.threads/linux-dp.exp: selected thread: 6
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 6
+PASS: gdb.threads/linux-dp.exp: found an interesting thread
+PASS: gdb.threads/linux-dp.exp: manager thread found (not found) when expected
+Running ./gdb.threads/local-watch-wrong-thread.exp ...
+Running ./gdb.threads/manythreads.exp ...
+PASS: gdb.threads/manythreads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/manythreads.exp: set print sevenbit-strings
+PASS: gdb.threads/manythreads.exp: shell stty intr '^C'
+PASS: gdb.threads/manythreads.exp: first continue
+PASS: gdb.threads/manythreads.exp: stop threads 1
+PASS: gdb.threads/manythreads.exp: info threads
+PASS: gdb.threads/manythreads.exp: give a name to the thread
+PASS: gdb.threads/manythreads.exp: check thread name
+PASS: gdb.threads/manythreads.exp: second continue
+PASS: gdb.threads/manythreads.exp: check for duplicate SIGINT
+PASS: gdb.threads/manythreads.exp: stop threads 2
+PASS: gdb.threads/manythreads.exp: GDB exits after stopping multithreaded program
+Running ./gdb.threads/multi-create.exp ...
+PASS: gdb.threads/multi-create.exp: successfully compiled posix threads test case
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 0
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 1
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 2
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 3
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 4
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 5
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 6
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 7
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 8
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 9
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 10
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 11
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 12
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 13
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 14
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 15
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 16
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 17
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 18
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 19
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 20
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 21
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 22
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 23
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 24
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 25
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 26
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 27
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 28
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 29
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 30
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 31
+Running ./gdb.threads/non-ldr-exc-1.exp ...
+Running ./gdb.threads/non-ldr-exc-2.exp ...
+Running ./gdb.threads/non-ldr-exc-3.exp ...
+Running ./gdb.threads/non-ldr-exc-4.exp ...
+Running ./gdb.threads/no-unwaited-for-left.exp ...
+PASS: gdb.threads/no-unwaited-for-left.exp: successfully compiled posix threads test case
+PASS: gdb.threads/no-unwaited-for-left.exp: continue to breakpoint: break-here
+PASS: gdb.threads/no-unwaited-for-left.exp: enable scheduler-locking, for thread 2
+FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when thread 2 exits (the program exited)
+FAIL: gdb.threads/no-unwaited-for-left.exp: only main thread left, thread 2 terminated
+PASS: gdb.threads/no-unwaited-for-left.exp: select main thread
+FAIL: gdb.threads/no-unwaited-for-left.exp: disable scheduler-locking, letting new thread start
+FAIL: gdb.threads/no-unwaited-for-left.exp: continue to breakpoint: break-here-2
+FAIL: gdb.threads/no-unwaited-for-left.exp: enable scheduler-locking, for main thread
+FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when the main thread exits (the program is no longer running)
+FAIL: gdb.threads/no-unwaited-for-left.exp: only thread 3 left, main thread terminated
+Running ./gdb.threads/pending-step.exp ...
+PASS: gdb.threads/pending-step.exp: successfully compiled posix threads test case
+PASS: gdb.threads/pending-step.exp: continue to breakpoint: continue to first breakpoint hit
+PASS: gdb.threads/pending-step.exp: next in multiple threads with breakpoints
+Running ./gdb.threads/print-threads.exp ...
+PASS: gdb.threads/print-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/print-threads.exp: set print sevenbit-strings
+PASS: gdb.threads/print-threads.exp: set width 0
+PASS: gdb.threads/print-threads.exp: shell stty intr '^C'
+PASS: gdb.threads/print-threads.exp: break thread_function
+PASS: gdb.threads/print-threads.exp: set var slow = 0
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 1 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 2 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 3 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 4 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 5 (fast)
+PASS: gdb.threads/print-threads.exp: program exited normally
+PASS: gdb.threads/print-threads.exp: all threads ran once (fast)
+PASS: gdb.threads/print-threads.exp: break thread_function (2)
+PASS: gdb.threads/print-threads.exp: set var slow = 1
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 1 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 2 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 3 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 4 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 5 (slow)
+PASS: gdb.threads/print-threads.exp: program exited normally
+PASS: gdb.threads/print-threads.exp: all threads ran once (slow)
+PASS: gdb.threads/print-threads.exp: break thread_function (3)
+PASS: gdb.threads/print-threads.exp: set var slow = 1 (2)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 1 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 2 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 3 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 4 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 5 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: program exited normally
+PASS: gdb.threads/print-threads.exp: all threads ran once (slow with kill breakpoint)
+Running ./gdb.threads/pthread_cond_wait.exp ...
+PASS: gdb.threads/pthread_cond_wait.exp: successfully compiled posix threads test case
+PASS: gdb.threads/pthread_cond_wait.exp: breakpoint on break_me
+PASS: gdb.threads/pthread_cond_wait.exp: run to break_me
+PASS: gdb.threads/pthread_cond_wait.exp: backtrace in blocked thread
+Running ./gdb.threads/pthreads.exp ...
+PASS: gdb.threads/pthreads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/pthreads.exp: set print sevenbit-strings
+PASS: gdb.threads/pthreads.exp: set width 0
+PASS: gdb.threads/pthreads.exp: shell stty intr '^C'
+PASS: gdb.threads/pthreads.exp: info threads
+PASS: gdb.threads/pthreads.exp: break thread1
+PASS: gdb.threads/pthreads.exp: Continue to creation of first thread
+PASS: gdb.threads/pthreads.exp: disable
+PASS: gdb.threads/pthreads.exp: break thread2
+PASS: gdb.threads/pthreads.exp: Continue to creation of second thread
+PASS: gdb.threads/pthreads.exp: set var common_routine::hits=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread1=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread2=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_main=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::full_coverage=0
+PASS: gdb.threads/pthreads.exp: disable
+PASS: gdb.threads/pthreads.exp: tbreak common_routine if hits >= 15
+PASS: gdb.threads/pthreads.exp: stopped before calling common_routine 15 times
+PASS: gdb.threads/pthreads.exp: All threads running after startup
+PASS: gdb.threads/pthreads.exp: Continue with all threads running
+PASS: gdb.threads/pthreads.exp: Stopped with a ^C
+PASS: gdb.threads/pthreads.exp: bt
+PASS: gdb.threads/pthreads.exp: set var common_routine::hits=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread1=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread2=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_main=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::full_coverage=0
+PASS: gdb.threads/pthreads.exp: disable
+PASS: gdb.threads/pthreads.exp: tbreak common_routine if hits >= 15
+PASS: gdb.threads/pthreads.exp: stopped before calling common_routine 15 times
+PASS: gdb.threads/pthreads.exp: All threads running after continuing from ^C stop
+PASS: gdb.threads/pthreads.exp: check backtrace from main thread
+PASS: gdb.threads/pthreads.exp: check backtrace from thread 1
+PASS: gdb.threads/pthreads.exp: check backtrace from thread 2
+PASS: gdb.threads/pthreads.exp: apply backtrace command to all three threads
+PASS: gdb.threads/pthreads.exp: set break at common_routine in thread 2
+PASS: gdb.threads/pthreads.exp: continue to bkpt at common_routine in thread 2
+PASS: gdb.threads/pthreads.exp: backtrace from thread 2 bkpt in common_routine
+Running ./gdb.threads/schedlock.exp ...
+PASS: gdb.threads/schedlock.exp: successfully compiled posix threads test case
+PASS: gdb.threads/schedlock.exp: shell stty intr '^C'
+PASS: gdb.threads/schedlock.exp: set print sevenbit-strings
+PASS: gdb.threads/schedlock.exp: set width 0
+PASS: gdb.threads/schedlock.exp: scheduler locking set to none
+PASS: gdb.threads/schedlock.exp: continue to breakpoint: all threads started
+PASS: gdb.threads/schedlock.exp: listed args (1)
+PASS: gdb.threads/schedlock.exp: continue (initial)
+PASS: gdb.threads/schedlock.exp: stop all threads (initial)
+PASS: gdb.threads/schedlock.exp: continue to breakpoint: return to loop (initial)
+PASS: gdb.threads/schedlock.exp: listed args (2)
+PASS: gdb.threads/schedlock.exp: all threads alive
+PASS: gdb.threads/schedlock.exp: find current thread (1)
+PASS: gdb.threads/schedlock.exp: set scheduler-locking off
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 0)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 1)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 2)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 3)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 4)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 5)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 6)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 7)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 8)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 9)
+PASS: gdb.threads/schedlock.exp: find current thread (2)
+PASS: gdb.threads/schedlock.exp: step without lock does not change thread
+PASS: gdb.threads/schedlock.exp: listed args (3)
+PASS: gdb.threads/schedlock.exp: current thread stepped
+PASS: gdb.threads/schedlock.exp: other threads ran - unlocked
+PASS: gdb.threads/schedlock.exp: set scheduler-locking on
+PASS: gdb.threads/schedlock.exp: continue (with lock)
+PASS: gdb.threads/schedlock.exp: stop all threads (with lock)
+PASS: gdb.threads/schedlock.exp: continue to breakpoint: return to loop (with lock)
+PASS: gdb.threads/schedlock.exp: find current thread (3)
+PASS: gdb.threads/schedlock.exp: continue with lock does not change thread
+PASS: gdb.threads/schedlock.exp: listed args (4)
+PASS: gdb.threads/schedlock.exp: current thread ran
+PASS: gdb.threads/schedlock.exp: other threads didn't run - locked
+PASS: gdb.threads/schedlock.exp: step to increment (locked 0)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 1)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 2)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 3)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 4)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 5)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 6)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 7)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 8)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 9)
+PASS: gdb.threads/schedlock.exp: find current thread (2)
+PASS: gdb.threads/schedlock.exp: step with lock does not change thread
+PASS: gdb.threads/schedlock.exp: listed args (5)
+PASS: gdb.threads/schedlock.exp: current thread stepped locked
+PASS: gdb.threads/schedlock.exp: other threads didn't run - step locked
+Running ./gdb.threads/siginfo-threads.exp ...
+PASS: gdb.threads/siginfo-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/siginfo-threads.exp: handle SIGUSR1 stop print pass
+PASS: gdb.threads/siginfo-threads.exp: handle SIGUSR2 stop print pass
+PASS: gdb.threads/siginfo-threads.exp: get pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 0
+PASS: gdb.threads/siginfo-threads.exp: signal 0 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 0 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 0 si_pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 1
+PASS: gdb.threads/siginfo-threads.exp: signal 1 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 1 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 1 si_pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 2
+PASS: gdb.threads/siginfo-threads.exp: signal 2 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 2 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 2 si_pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 3
+PASS: gdb.threads/siginfo-threads.exp: signal 3 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 3 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 3 si_pid
+PASS: gdb.threads/siginfo-threads.exp: continue to breakpoint: break-at-exit
+Running ./gdb.threads/sigstep-threads.exp ...
+PASS: gdb.threads/sigstep-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/sigstep-threads.exp: handle SIGUSR1 nostop print pass
+PASS: gdb.threads/sigstep-threads.exp: set scheduler-locking off
+PASS: gdb.threads/sigstep-threads.exp: set $step1=$bpnum
+PASS: gdb.threads/sigstep-threads.exp: continue to breakpoint: step-1
+PASS: gdb.threads/sigstep-threads.exp: disable $step1
+PASS: gdb.threads/sigstep-threads.exp: step
+Running ./gdb.threads/sigthread.exp ...
+PASS: gdb.threads/sigthread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/sigthread.exp: handle SIGUSR1 nostop noprint pass
+PASS: gdb.threads/sigthread.exp: handle SIGUSR2 nostop noprint pass
+PASS: gdb.threads/sigthread.exp: continue
+PASS: gdb.threads/sigthread.exp: stop with control-c
+Running ./gdb.threads/staticthreads.exp ...
+PASS: gdb.threads/staticthreads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/staticthreads.exp: set print sevenbit-strings
+PASS: gdb.threads/staticthreads.exp: break sem_post
+PASS: gdb.threads/staticthreads.exp: Continue to main's call of sem_post
+PASS: gdb.threads/staticthreads.exp: rerun to main
+PASS: gdb.threads/staticthreads.exp: handle SIG32 nostop noprint pass
+PASS: gdb.threads/staticthreads.exp: handle SIG32 helps
+PASS: gdb.threads/staticthreads.exp: info threads
+PASS: gdb.threads/staticthreads.exp: GDB exits with static thread program
+Running ./gdb.threads/switch-threads.exp ...
+PASS: gdb.threads/switch-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/switch-threads.exp: continue to breakpoint: continue to thread_func
+PASS: gdb.threads/switch-threads.exp: next
+Running ./gdb.threads/threadapply.exp ...
+PASS: gdb.threads/threadapply.exp: successfully compiled posix threads test case
+PASS: gdb.threads/threadapply.exp: b 62
+PASS: gdb.threads/threadapply.exp: continue
+PASS: gdb.threads/threadapply.exp: macro details
+PASS: gdb.threads/threadapply.exp: defining macro
+PASS: gdb.threads/threadapply.exp: set backtrace limit 3
+PASS: gdb.threads/threadapply.exp: thread apply all backthread
+PASS: gdb.threads/threadapply.exp: step to the thread_function
+PASS: gdb.threads/threadapply.exp: go up in the stack frame
+PASS: gdb.threads/threadapply.exp: run a simple print command on all threads
+PASS: gdb.threads/threadapply.exp: go down and check selected frame
+Running ./gdb.threads/thread_check.exp ...
+PASS: gdb.threads/thread_check.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread_check.exp: breakpoint at tf
+PASS: gdb.threads/thread_check.exp: continue to tf
+PASS: gdb.threads/thread_check.exp: backtrace from thread function
+Running ./gdb.threads/thread_events.exp ...
+Running ./gdb.threads/thread-execl.exp ...
+Running ./gdb.threads/thread-find.exp ...
+PASS: gdb.threads/thread-find.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread-find.exp: set print sevenbit-strings
+PASS: gdb.threads/thread-find.exp: continue to breakpoint: main thread's sleep
+PASS: gdb.threads/thread-find.exp: info threads
+PASS: gdb.threads/thread-find.exp: name thread 1
+PASS: gdb.threads/thread-find.exp: name thread 2
+PASS: gdb.threads/thread-find.exp: name thread 3
+PASS: gdb.threads/thread-find.exp: name thread 4
+PASS: gdb.threads/thread-find.exp: name thread 5
+PASS: gdb.threads/thread-find.exp: name thread 6
+PASS: gdb.threads/thread-find.exp: collect thread id
+PASS: gdb.threads/thread-find.exp: got thread ids
+PASS: gdb.threads/thread-find.exp: collect process id
+PASS: gdb.threads/thread-find.exp: collect lwp id
+PASS: gdb.threads/thread-find.exp: find thread name 6
+PASS: gdb.threads/thread-find.exp: find thread name 5
+PASS: gdb.threads/thread-find.exp: find thread name 4
+PASS: gdb.threads/thread-find.exp: find thread name 3
+PASS: gdb.threads/thread-find.exp: find thread name 2
+PASS: gdb.threads/thread-find.exp: find thread name 1
+PASS: gdb.threads/thread-find.exp: find thread id 6
+PASS: gdb.threads/thread-find.exp: find thread id 5
+PASS: gdb.threads/thread-find.exp: find thread id 4
+PASS: gdb.threads/thread-find.exp: find thread id 3
+PASS: gdb.threads/thread-find.exp: find thread id 2
+PASS: gdb.threads/thread-find.exp: find thread id 1
+PASS: gdb.threads/thread-find.exp: no thread
+PASS: gdb.threads/thread-find.exp: test regular exp
+PASS: gdb.threads/thread-find.exp: info threads 2 4 6
+PASS: gdb.threads/thread-find.exp: info threads 3-5
+PASS: gdb.threads/thread-find.exp: test inverted range
+PASS: gdb.threads/thread-find.exp: info threads 3-3
+PASS: gdb.threads/thread-find.exp: info thread foo
+PASS: gdb.threads/thread-find.exp: info thread foo -1
+Running ./gdb.threads/thread-specific.exp ...
+PASS: gdb.threads/thread-specific.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread-specific.exp: set print sevenbit-strings
+PASS: gdb.threads/thread-specific.exp: set width 0
+PASS: gdb.threads/thread-specific.exp: thread var when not running
+PASS: gdb.threads/thread-specific.exp: continue to breakpoint: all threads started
+PASS: gdb.threads/thread-specific.exp: get threads list
+PASS: gdb.threads/thread-specific.exp: thread var in main
+PASS: gdb.threads/thread-specific.exp: breakpoint 59 main thread
+PASS: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint
+PASS: gdb.threads/thread-specific.exp: found breakpoint for thread number
+PASS: gdb.threads/thread-specific.exp: thread var at break
+Running ./gdb.threads/thread-unwindonsignal.exp ...
+PASS: gdb.threads/thread-unwindonsignal.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread-unwindonsignal.exp: breakpoint on all_threads_running
+PASS: gdb.threads/thread-unwindonsignal.exp: run to all_threads_running
+PASS: gdb.threads/thread-unwindonsignal.exp: setting unwindonsignal
+PASS: gdb.threads/thread-unwindonsignal.exp: showing unwindonsignal
+PASS: gdb.threads/thread-unwindonsignal.exp: hand-call interrupted by signal in another thread
+PASS: gdb.threads/thread-unwindonsignal.exp: dummy stack frame present
+PASS: gdb.threads/thread-unwindonsignal.exp: wrong thread not unwound
+PASS: gdb.threads/thread-unwindonsignal.exp: finish hand-call
+PASS: gdb.threads/thread-unwindonsignal.exp: dummy frame popped
+PASS: gdb.threads/thread-unwindonsignal.exp: continue until exit
+Running ./gdb.threads/threxit-hop-specific.exp ...
+PASS: gdb.threads/threxit-hop-specific.exp: successfully compiled posix threads test case
+PASS: gdb.threads/threxit-hop-specific.exp: continue to thread start
+PASS: gdb.threads/threxit-hop-specific.exp: set thread specific breakpoint
+PASS: gdb.threads/threxit-hop-specific.exp: get past the thread specific breakpoint
+Running ./gdb.threads/tls.exp ...
+PASS: gdb.threads/tls.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls.exp: set breakpoint at all threads
+PASS: gdb.threads/tls.exp: set breakpoint at synch point
+PASS: gdb.threads/tls.exp: set breakpoint at exit
+PASS: gdb.threads/tls.exp: continue to first thread: get to thread
+PASS: gdb.threads/tls.exp: at least one th in spin while stopped at first th
+PASS: gdb.threads/tls.exp: first thread print me
+PASS: gdb.threads/tls.exp: first thread local storage
+PASS: gdb.threads/tls.exp: first another thread local storage
+PASS: gdb.threads/tls.exp: first info address a_thread_local
+PASS: gdb.threads/tls.exp: first info address another_thread_local
+PASS: gdb.threads/tls.exp: continue to second thread
+PASS: gdb.threads/tls.exp: at least one th in spin while stopped at second th
+PASS: gdb.threads/tls.exp: second thread print me
+PASS: gdb.threads/tls.exp: second thread local storage
+PASS: gdb.threads/tls.exp: second another thread local storage
+PASS: gdb.threads/tls.exp: second info address a_thread_local
+PASS: gdb.threads/tls.exp: second info address another_thread_local
+PASS: gdb.threads/tls.exp: continue to third thread
+PASS: gdb.threads/tls.exp: at least one th in spin while stopped at third th
+PASS: gdb.threads/tls.exp: third thread print me
+PASS: gdb.threads/tls.exp: third thread local storage
+PASS: gdb.threads/tls.exp: third another thread local storage
+PASS: gdb.threads/tls.exp: third info address a_thread_local
+PASS: gdb.threads/tls.exp: third info address another_thread_local
+PASS: gdb.threads/tls.exp: continue to synch point
+PASS: gdb.threads/tls.exp: get number of threads
+PASS: gdb.threads/tls.exp: selected thread: 1
+PASS: gdb.threads/tls.exp: backtrace of thread number 1 not relevant
+PASS: gdb.threads/tls.exp: selected thread: 2
+PASS: gdb.threads/tls.exp: backtrace of thread number 2 in spin
+PASS: gdb.threads/tls.exp: selected thread: 3
+PASS: gdb.threads/tls.exp: backtrace of thread number 3 in spin
+PASS: gdb.threads/tls.exp: selected thread: 4
+PASS: gdb.threads/tls.exp: backtrace of thread number 4 in spin
+PASS: gdb.threads/tls.exp: selected thread: 4
+PASS: gdb.threads/tls.exp: thread 4 up
+PASS: gdb.threads/tls.exp: 4 thread print me
+PASS: gdb.threads/tls.exp: 4 thread local storage
+PASS: gdb.threads/tls.exp: 4 another thread local storage
+PASS: gdb.threads/tls.exp: 4 info address a_thread_local
+PASS: gdb.threads/tls.exp: 4 info address another_thread_local
+PASS: gdb.threads/tls.exp: selected thread: 2
+PASS: gdb.threads/tls.exp: thread 2 up
+PASS: gdb.threads/tls.exp: 2 thread print me
+PASS: gdb.threads/tls.exp: 2 thread local storage
+PASS: gdb.threads/tls.exp: 2 another thread local storage
+PASS: gdb.threads/tls.exp: 2 info address a_thread_local
+PASS: gdb.threads/tls.exp: 2 info address another_thread_local
+PASS: gdb.threads/tls.exp: selected thread: 3
+PASS: gdb.threads/tls.exp: thread 3 up
+PASS: gdb.threads/tls.exp: 3 thread print me
+PASS: gdb.threads/tls.exp: 3 thread local storage
+PASS: gdb.threads/tls.exp: 3 another thread local storage
+PASS: gdb.threads/tls.exp: 3 info address a_thread_local
+PASS: gdb.threads/tls.exp: 3 info address another_thread_local
+PASS: gdb.threads/tls.exp: threads exited
+PASS: gdb.threads/tls.exp: Expect only base thread at end
+PASS: gdb.threads/tls.exp: info address a_global
+PASS: gdb.threads/tls.exp: info address me
+PASS: gdb.threads/tls.exp: p a_thread_local
+FAIL: gdb.threads/tls.exp: p file2_thread_local
+PASS: gdb.threads/tls.exp: info address file2_thread_local
+PASS: gdb.threads/tls.exp: p a_thread_local second time
+PASS: gdb.threads/tls.exp: info address a_thread_local
+Running ./gdb.threads/tls-nodebug.exp ...
+PASS: gdb.threads/tls-nodebug.exp: successfully compiled posix threads test case
+FAIL: gdb.threads/tls-nodebug.exp: thread local storage
+Running ./gdb.threads/tls-shared.exp ...
+PASS: gdb.threads/tls-shared.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls-shared.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls-shared.exp: print thread local storage variable
+PASS: gdb.threads/tls-shared.exp: ptype of thread local storage variable
+PASS: gdb.threads/tls-shared.exp: print storage info for thread local storage variable
+PASS: gdb.threads/tls-shared.exp: break at and of main
+PASS: gdb.threads/tls-shared.exp: continue to break
+PASS: gdb.threads/tls-shared.exp: print result
+Running ./gdb.threads/tls-var.exp ...
+PASS: gdb.threads/tls-var.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls-var.exp: whatis tls_var
+PASS: gdb.threads/tls-var.exp: print tls_var
+Running ./gdb.threads/watchpoint-fork.exp ...
+KFAIL: gdb.threads/watchpoint-fork.exp: gdbserver does not support debugging across fork (PRMS: remote/13584)
+Running ./gdb.threads/watchthreads2.exp ...
+Running ./gdb.threads/watchthreads.exp ...
+Running ./gdb.threads/watchthreads-reorder.exp ...
+Running ./gdb.trace/actions.exp ...
+PASS: gdb.trace/actions.exp: 5.1a: set three tracepoints, no actions
+PASS: gdb.trace/actions.exp: 5.1b: set actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.1c: verify actions set for first tracepoint
+PASS: gdb.trace/actions.exp: 5.1d: set actions for second tracepoint
+PASS: gdb.trace/actions.exp: 5.1e: verify actions set for second tracepoint
+PASS: gdb.trace/actions.exp: 5.2a: set actions for last (default) tracepoint
+PASS: gdb.trace/actions.exp: 5.2b: verify actions set for second tracepoint
+PASS: gdb.trace/actions.exp: 5.3a: reset actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.3b: verify actions set for first tracepoint
+PASS: gdb.trace/actions.exp: 5.4: 'end' command out of context
+PASS: gdb.trace/actions.exp: 5.5a: set empty actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.5c: verify NO actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.6: actions for invalid tracepoint number
+PASS: gdb.trace/actions.exp: 5.7: invalid action
+PASS: gdb.trace/actions.exp: 5.8a: help actions
+PASS: gdb.trace/actions.exp: 5.8b: help collect
+PASS: gdb.trace/actions.exp: 5.8c: help while-stepping
+PASS: gdb.trace/actions.exp: 5.8d: help end
+PASS: gdb.trace/actions.exp: 5.9a: set default-collect
+PASS: gdb.trace/actions.exp: 5.9b: show default-collect
+PASS: gdb.trace/actions.exp: 5.9c: set default-collect
+PASS: gdb.trace/actions.exp: Create a trace state variable
+PASS: gdb.trace/actions.exp: 5.10a: set teval action for first tracepoint
+PASS: gdb.trace/actions.exp: 5.10a: set teval action for second tracepoint
+PASS: gdb.trace/actions.exp: 5.10a: verify teval actions set for two tracepoints
+Running ./gdb.trace/ax.exp ...
+PASS: gdb.trace/ax.exp: maint agent 12
+PASS: gdb.trace/ax.exp: maint agent gdb_char_test
+PASS: gdb.trace/ax.exp: maint agent gdb_arr_test[12]
+PASS: gdb.trace/ax.exp: maint agent gdb_arr_test[gdb_short_test]
+PASS: gdb.trace/ax.exp: maint agent gdb_struct1_test
+PASS: gdb.trace/ax.exp: maint agent gdb_struct1_test.s
+PASS: gdb.trace/ax.exp: maint agent gdb_struct1_test.arr[gdb_struct1_test.c]
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test->l
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test->bfield
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test + gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test - gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test * gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test / gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test + 1
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test == gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test != gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test < gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test <= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test > gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test >= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent &gdb_long_test == &gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent &gdb_long_test < &gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval 12
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_char_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_arr_test[12]
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_arr_test[gdb_short_test]
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_struct1_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_struct1_test.s
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_struct1_test.arr[gdb_struct1_test.c]
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test->l
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test->bfield
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test + gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test - gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test * gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test / gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test + 1
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test == gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test != gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test < gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test <= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test > gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test >= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval &gdb_long_test == &gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval &gdb_long_test < &gdb_short_test
+Running ./gdb.trace/backtrace.exp ...
+PASS: gdb.trace/backtrace.exp: 8.6: setup TP to collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: setup TP to collect regs, args, and locals
+PASS: gdb.trace/backtrace.exp: 8.6: setup TP to collect stack mem cast expr
+PASS: gdb.trace/backtrace.exp: run trace experiment
+PASS: gdb.trace/backtrace.exp: init: make sure not debugging any trace frame
+PASS: gdb.trace/backtrace.exp: 8.6: find start frame
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect nothing
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 1
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 2
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect args and locals
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 4
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect stack mem expr
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 5
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 2, collect nothing
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 6
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 2, collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 7
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 2, collect args and locals
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 9
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect stack mem expr
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 10
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 3, collect nothing
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 11
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 3, collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 12
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 3, collect args and locals
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 14
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect stack mem expr
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 15
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 4, collect nothing
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 16
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 4, collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 17
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 4, collect args and locals
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 19
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect stack mem expr
+PASS: gdb.trace/backtrace.exp: 1.13: trace in recursion: depth not equal to 3
+Running ./gdb.trace/change-loc.exp ...
+PASS: gdb.trace/change-loc.exp: 1 trace: delete break 1
+PASS: gdb.trace/change-loc.exp: 1 trace: next
+PASS: gdb.trace/change-loc.exp: 1 trace: set tracepoint on main
+PASS: gdb.trace/change-loc.exp: 1 trace: breakpoint on marker
+PASS: gdb.trace/change-loc.exp: 1 trace: tstart
+PASS: gdb.trace/change-loc.exp: 1 trace: continue to marker 1
+PASS: gdb.trace/change-loc.exp: 1 trace: set tracepoint on set_tracepoint
+PASS: gdb.trace/change-loc.exp: 1 trace: set action for tracepoint
+FAIL: gdb.trace/change-loc.exp: 1 trace: tracepoint with two locations
+PASS: gdb.trace/change-loc.exp: 1 trace: continue to marker 2
+FAIL: gdb.trace/change-loc.exp: 1 trace: tracepoint with three locations
+PASS: gdb.trace/change-loc.exp: 1 trace: continue to marker 3
+FAIL: gdb.trace/change-loc.exp: 1 trace: tracepoint with two locations (unload)
+PASS: gdb.trace/change-loc.exp: 1 trace: tstop
+FAIL: gdb.trace/change-loc.exp: 1 trace: tfind frame 0
+PASS: gdb.trace/change-loc.exp: 1 trace: tfind
+PASS: gdb.trace/change-loc.exp: 2 trace: set pending tracepoint
+PASS: gdb.trace/change-loc.exp: 2 trace: set action for tracepoint
+PASS: gdb.trace/change-loc.exp: 2 trace: single pending tracepoint info (without symbols)
+PASS: gdb.trace/change-loc.exp: 2 trace: tracepoint with one location
+PASS: gdb.trace/change-loc.exp: 2 trace: run to main
+PASS: gdb.trace/change-loc.exp: 2 trace: delete break 2
+FAIL: gdb.trace/change-loc.exp: 2 trace: tracepoint with two locations
+PASS: gdb.trace/change-loc.exp: 2 trace: breakpoint on marker
+PASS: gdb.trace/change-loc.exp: 2 trace: tstart
+PASS: gdb.trace/change-loc.exp: 2 trace: continue to marker 1
+PASS: gdb.trace/change-loc.exp: 2 trace: continue to marker 2
+FAIL: gdb.trace/change-loc.exp: 2 trace: tracepoint with three locations
+PASS: gdb.trace/change-loc.exp: 2 trace: continue to marker 3
+FAIL: gdb.trace/change-loc.exp: 2 trace: tracepoint with two locations (unload)
+PASS: gdb.trace/change-loc.exp: 2 trace: tstop
+PASS: gdb.trace/change-loc.exp: 2 trace: tfind frame 0
+FAIL: gdb.trace/change-loc.exp: 2 trace: tfind frame 1
+FAIL: gdb.trace/change-loc.exp: 2 trace: tfind frame 2
+PASS: gdb.trace/change-loc.exp: 2 trace: tfind
+ERROR: (DejaGnu) proc "else\{" does not exist.
+Running ./gdb.xml/tdesc-arch.exp ...
+PASS: gdb.xml/tdesc-arch.exp: read valid architectures
+PASS: gdb.xml/tdesc-arch.exp: read default architecture
+PASS: gdb.xml/tdesc-arch.exp: set tdesc filename tdesc-arch.xml (first architecture)
+PASS: gdb.xml/tdesc-arch.exp: show architecture (first architecture)
+PASS: gdb.xml/tdesc-arch.exp: set tdesc filename tdesc-arch.xml (second architecture)
+PASS: gdb.xml/tdesc-arch.exp: show architecture (second architecture)
+PASS: gdb.xml/tdesc-arch.exp: set tdesc filename tdesc-arch.xml (invalid architecture)
+PASS: gdb.xml/tdesc-arch.exp: show architecture (invalid architecture)
+Running ./gdb.xml/tdesc-errors.exp ...
+PASS: gdb.xml/tdesc-errors.exp: set tdesc filename gdb.xml/tdesc-bogus.xml
+PASS: gdb.xml/tdesc-errors.exp: set tdesc filename gdb.xml/tdesc-unknown.xml
+Running ./gdb.xml/tdesc-regs.exp ...
+PASS: gdb.xml/tdesc-regs.exp: set tdesc file single-reg.xml
+PASS: gdb.xml/tdesc-regs.exp: set tdesc filename regs.xml - from extra-regs.xml
+PASS: gdb.xml/tdesc-regs.exp: ptype $extrareg
+PASS: gdb.xml/tdesc-regs.exp: ptype $uintreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $vecreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $unionreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $unionreg.v4
+PASS: gdb.xml/tdesc-regs.exp: ptype $structreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $structreg.v4
+PASS: gdb.xml/tdesc-regs.exp: ptype $bitfields
+PASS: gdb.xml/tdesc-regs.exp: set tdesc filename regs.xml - from core-only.xml
+PASS: gdb.xml/tdesc-regs.exp: ptype $extrareg
+Running ./gdb.xml/tdesc-xinclude.exp ...
+PASS: gdb.xml/tdesc-xinclude.exp: set tdesc filename gdb.xml/includes.xml
+PASS: gdb.xml/tdesc-xinclude.exp: set tdesc filename gdb.xml/bad-include.xml
+PASS: gdb.xml/tdesc-xinclude.exp: set tdesc filename gdb.xml/loop.xml
+
+		=== gdb Summary ===
+
+# of expected passes		17663
+# of unexpected failures	251
+# of unexpected successes	1
+# of expected failures		30
+# of unknown successes		1
+# of known failures		41
+# of untested testcases		54
+# of unresolved testcases	9
+# of unsupported tests		106
+/var/tmp/portage/cross-i686-pc-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../../gdb/gdb version  7.6.1 -nw -nx -data-directory /var/tmp/portage/cross-i686-pc-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../data-directory 
+
diff --git a/dejagnu/gdb_baseline/x86_64-cros-linux-gnu b/dejagnu/gdb_baseline/x86_64-cros-linux-gnu
new file mode 100644
index 0000000..a9245ea
--- /dev/null
+++ b/dejagnu/gdb_baseline/x86_64-cros-linux-gnu
@@ -0,0 +1,19294 @@
+Test Run By yunlian on Mon Dec 16 14:52:38 2013
+Target is x86_64-cros-linux-gnu
+
+		=== gdb tests ===
+
+Schedule of variations:
+    lumpy
+
+Running target lumpy
+Running ./gdb.ada/aliased_array.exp ...
+UNSUPPORTED: gdb.ada/aliased_array.exp: compilation foo.adb
+Running ./gdb.ada/array_bounds.exp ...
+UNSUPPORTED: gdb.ada/array_bounds.exp: compilation bar.adb
+Running ./gdb.ada/arrayidx.exp ...
+UNSUPPORTED: gdb.ada/arrayidx.exp: compilation p.adb
+Running ./gdb.ada/arrayparam.exp ...
+UNSUPPORTED: gdb.ada/arrayparam.exp: compilation foo.adb
+Running ./gdb.ada/arrayptr.exp ...
+UNSUPPORTED: gdb.ada/arrayptr.exp: compilation foo.adb
+Running ./gdb.ada/array_return.exp ...
+UNSUPPORTED: gdb.ada/array_return.exp: compilation p.adb
+Running ./gdb.ada/array_subscript_addr.exp ...
+UNSUPPORTED: gdb.ada/array_subscript_addr.exp: compilation p.adb
+Running ./gdb.ada/assign_1.exp ...
+PASS: gdb.ada/assign_1.exp: Changing the language to ada
+PASS: gdb.ada/assign_1.exp: set convenience variable $xxx to 1
+Running ./gdb.ada/atomic_enum.exp ...
+UNSUPPORTED: gdb.ada/atomic_enum.exp: compilation foo.adb
+Running ./gdb.ada/bad-task-bp-keyword.exp ...
+UNSUPPORTED: gdb.ada/bad-task-bp-keyword.exp: compilation foo.adb
+Running ./gdb.ada/boolean_expr.exp ...
+PASS: gdb.ada/boolean_expr.exp: Changing the language to ada
+PASS: gdb.ada/boolean_expr.exp: print 1 = 2
+PASS: gdb.ada/boolean_expr.exp: print 3 = 3
+Running ./gdb.ada/bp_enum_homonym.exp ...
+UNSUPPORTED: gdb.ada/bp_enum_homonym.exp: compilation p.adb
+Running ./gdb.ada/bp_on_var.exp ...
+UNSUPPORTED: gdb.ada/bp_on_var.exp: compilation foo.adb
+Running ./gdb.ada/bp_range_type.exp ...
+UNSUPPORTED: gdb.ada/bp_range_type.exp: compilation foo.adb
+Running ./gdb.ada/bp_reset.exp ...
+UNSUPPORTED: gdb.ada/bp_reset.exp: compilation foo.adb
+Running ./gdb.ada/call_pn.exp ...
+UNSUPPORTED: gdb.ada/call_pn.exp: compilation foo.adb
+Running ./gdb.ada/catch_ex.exp ...
+UNSUPPORTED: gdb.ada/catch_ex.exp: compilation foo.adb
+Running ./gdb.ada/char_enum.exp ...
+UNSUPPORTED: gdb.ada/char_enum.exp: compilation foo.adb
+Running ./gdb.ada/char_param.exp ...
+UNSUPPORTED: gdb.ada/char_param.exp: compilation foo.adb
+Running ./gdb.ada/complete.exp ...
+UNSUPPORTED: gdb.ada/complete.exp: compilation foo.adb
+Running ./gdb.ada/cond_lang.exp ...
+UNSUPPORTED: gdb.ada/cond_lang.exp: compilation a.adb
+Running ./gdb.ada/dyn_loc.exp ...
+UNSUPPORTED: gdb.ada/dyn_loc.exp: compilation p.adb
+Running ./gdb.ada/enum_idx_packed.exp ...
+UNSUPPORTED: gdb.ada/enum_idx_packed.exp: compilation foo.adb
+Running ./gdb.ada/exec_changed.exp ...
+UNTESTED: gdb.ada/exec_changed.exp: exec_changed.exp
+Running ./gdb.ada/expr_delims.exp ...
+UNSUPPORTED: gdb.ada/expr_delims.exp: compilation foo.adb
+Running ./gdb.ada/exprs.exp ...
+UNSUPPORTED: gdb.ada/exprs.exp: compilation p.adb
+Running ./gdb.ada/fixed_cmp.exp ...
+UNSUPPORTED: gdb.ada/fixed_cmp.exp: compilation fixed.adb
+Running ./gdb.ada/fixed_points.exp ...
+UNSUPPORTED: gdb.ada/fixed_points.exp: compilation fixed_points.adb
+Running ./gdb.ada/formatted_ref.exp ...
+UNSUPPORTED: gdb.ada/formatted_ref.exp: compilation formatted_ref.adb
+UNTESTED: gdb.ada/formatted_ref.exp: formatted-ref.exp
+Running ./gdb.ada/frame_args.exp ...
+UNSUPPORTED: gdb.ada/frame_args.exp: compilation foo.adb
+Running ./gdb.ada/fullname_bp.exp ...
+UNSUPPORTED: gdb.ada/fullname_bp.exp: compilation foo.adb
+Running ./gdb.ada/fun_addr.exp ...
+UNSUPPORTED: gdb.ada/fun_addr.exp: compilation foo.adb
+Running ./gdb.ada/funcall_param.exp ...
+UNSUPPORTED: gdb.ada/funcall_param.exp: compilation foo.adb
+Running ./gdb.ada/fun_in_declare.exp ...
+UNSUPPORTED: gdb.ada/fun_in_declare.exp: compilation foo.adb
+Running ./gdb.ada/homonym.exp ...
+UNSUPPORTED: gdb.ada/homonym.exp: compilation homonym_main.adb
+Running ./gdb.ada/info_locals_renaming.exp ...
+UNSUPPORTED: gdb.ada/info_locals_renaming.exp: compilation foo.adb
+Running ./gdb.ada/info_types.exp ...
+PASS: gdb.ada/info_types.exp: set lang ada
+PASS: gdb.ada/info_types.exp: info types new_integer_type
+Running ./gdb.ada/int_deref.exp ...
+UNSUPPORTED: gdb.ada/int_deref.exp: compilation foo.adb
+Running ./gdb.ada/interface.exp ...
+UNSUPPORTED: gdb.ada/interface.exp: compilation foo.adb
+Running ./gdb.ada/iwide.exp ...
+UNSUPPORTED: gdb.ada/iwide.exp: compilation p.adb
+Running ./gdb.ada/lang_switch.exp ...
+UNSUPPORTED: gdb.ada/lang_switch.exp: compilation lang_switch.adb
+Running ./gdb.ada/mi_catch_ex.exp ...
+UNSUPPORTED: gdb.ada/mi_catch_ex.exp: compilation foo.adb
+Running ./gdb.ada/mi_task_arg.exp ...
+UNSUPPORTED: gdb.ada/mi_task_arg.exp: compilation task_switch.adb
+Running ./gdb.ada/mi_task_info.exp ...
+UNSUPPORTED: gdb.ada/mi_task_info.exp: compilation task_switch.adb
+Running ./gdb.ada/mod_from_name.exp ...
+UNSUPPORTED: gdb.ada/mod_from_name.exp: compilation foo.adb
+Running ./gdb.ada/nested.exp ...
+UNSUPPORTED: gdb.ada/nested.exp: compilation hello.adb
+Running ./gdb.ada/null_array.exp ...
+UNSUPPORTED: gdb.ada/null_array.exp: compilation foo.adb
+Running ./gdb.ada/null_record.exp ...
+UNSUPPORTED: gdb.ada/null_record.exp: compilation null_record.adb
+Running ./gdb.ada/operator_bp.exp ...
+UNSUPPORTED: gdb.ada/operator_bp.exp: compilation ops_test.adb
+Running ./gdb.ada/optim_drec.exp ...
+UNSUPPORTED: gdb.ada/optim_drec.exp: compilation foo.adb
+Running ./gdb.ada/packed_array.exp ...
+UNSUPPORTED: gdb.ada/packed_array.exp: compilation pa.adb
+Running ./gdb.ada/packed_tagged.exp ...
+UNSUPPORTED: gdb.ada/packed_tagged.exp: compilation comp_bug.adb
+Running ./gdb.ada/print_chars.exp ...
+UNSUPPORTED: gdb.ada/print_chars.exp: compilation foo.adb
+Running ./gdb.ada/print_pc.exp ...
+UNSUPPORTED: gdb.ada/print_pc.exp: compilation dummy.adb
+Running ./gdb.ada/ptr_typedef.exp ...
+UNSUPPORTED: gdb.ada/ptr_typedef.exp: compilation foo.adb
+Running ./gdb.ada/ptype_arith_binop.exp ...
+PASS: gdb.ada/ptype_arith_binop.exp: set lang ada
+PASS: gdb.ada/ptype_arith_binop.exp: ptype 3 * 2.0
+PASS: gdb.ada/ptype_arith_binop.exp: ptype 3 / 2.0
+Running ./gdb.ada/ptype_field.exp ...
+UNSUPPORTED: gdb.ada/ptype_field.exp: compilation foo.adb
+Running ./gdb.ada/ptype_tagged_param.exp ...
+UNSUPPORTED: gdb.ada/ptype_tagged_param.exp: compilation foo.adb
+Running ./gdb.ada/rdv_wait.exp ...
+UNSUPPORTED: gdb.ada/rdv_wait.exp: compilation foo.adb
+Running ./gdb.ada/rec_return.exp ...
+UNSUPPORTED: gdb.ada/rec_return.exp: compilation foo.adb
+Running ./gdb.ada/ref_param.exp ...
+UNSUPPORTED: gdb.ada/ref_param.exp: compilation foo.adb
+Running ./gdb.ada/ref_tick_size.exp ...
+UNSUPPORTED: gdb.ada/ref_tick_size.exp: compilation p.adb
+Running ./gdb.ada/same_enum.exp ...
+UNSUPPORTED: gdb.ada/same_enum.exp: compilation a.adb
+Running ./gdb.ada/set_pckd_arr_elt.exp ...
+UNSUPPORTED: gdb.ada/set_pckd_arr_elt.exp: compilation foo.adb
+Running ./gdb.ada/set_wstr.exp ...
+UNSUPPORTED: gdb.ada/set_wstr.exp: compilation a.adb
+Running ./gdb.ada/small_reg_param.exp ...
+UNSUPPORTED: gdb.ada/small_reg_param.exp: compilation foo.adb
+Running ./gdb.ada/start.exp ...
+UNTESTED: gdb.ada/start.exp: start.exp
+Running ./gdb.ada/str_ref_cmp.exp ...
+UNSUPPORTED: gdb.ada/str_ref_cmp.exp: compilation foo.adb
+Running ./gdb.ada/sym_print_name.exp ...
+UNSUPPORTED: gdb.ada/sym_print_name.exp: compilation foo.adb
+Running ./gdb.ada/taft_type.exp ...
+UNSUPPORTED: gdb.ada/taft_type.exp: compilation p.adb
+Running ./gdb.ada/tagged.exp ...
+UNSUPPORTED: gdb.ada/tagged.exp: compilation foo.adb
+Running ./gdb.ada/tagged_not_init.exp ...
+UNSUPPORTED: gdb.ada/tagged_not_init.exp: compilation foo.adb
+Running ./gdb.ada/task_bp.exp ...
+UNSUPPORTED: gdb.ada/task_bp.exp: compilation foo.adb
+Running ./gdb.ada/tasks.exp ...
+UNSUPPORTED: gdb.ada/tasks.exp: compilation foo.adb
+Running ./gdb.ada/tick_last_segv.exp ...
+UNSUPPORTED: gdb.ada/tick_last_segv.exp: compilation foo.adb
+Running ./gdb.ada/type_coercion.exp ...
+UNSUPPORTED: gdb.ada/type_coercion.exp: compilation assign.adb
+Running ./gdb.ada/unc_arr_ptr_in_var_rec.exp ...
+UNSUPPORTED: gdb.ada/unc_arr_ptr_in_var_rec.exp: compilation foo.adb
+Running ./gdb.ada/uninitialized_vars.exp ...
+UNSUPPORTED: gdb.ada/uninitialized_vars.exp: compilation parse.adb
+Running ./gdb.ada/variant_record_packed_array.exp ...
+UNSUPPORTED: gdb.ada/variant_record_packed_array.exp: compilation foo.adb
+Running ./gdb.ada/watch_arg.exp ...
+UNSUPPORTED: gdb.ada/watch_arg.exp: compilation watch.adb
+Running ./gdb.ada/whatis_array_val.exp ...
+UNSUPPORTED: gdb.ada/whatis_array_val.exp: compilation foo.adb
+Running ./gdb.ada/widewide.exp ...
+UNSUPPORTED: gdb.ada/widewide.exp: compilation foo.adb
+Running ./gdb.arch/alpha-step.exp ...
+Running ./gdb.arch/altivec-abi.exp ...
+Running ./gdb.arch/altivec-regs.exp ...
+Running ./gdb.arch/amd64-byte.exp ...
+PASS: gdb.arch/amd64-byte.exp: set first breakpoint in main
+PASS: gdb.arch/amd64-byte.exp: continue to breakpoint: continue to first breakpoint in main
+PASS: gdb.arch/amd64-byte.exp: check contents of %al
+PASS: gdb.arch/amd64-byte.exp: check contents of %bl
+PASS: gdb.arch/amd64-byte.exp: check contents of %cl
+PASS: gdb.arch/amd64-byte.exp: check contents of %dl
+PASS: gdb.arch/amd64-byte.exp: check contents of %sil
+PASS: gdb.arch/amd64-byte.exp: check contents of %dil
+PASS: gdb.arch/amd64-byte.exp: check contents of %ah
+PASS: gdb.arch/amd64-byte.exp: check contents of %bh
+PASS: gdb.arch/amd64-byte.exp: check contents of %ch
+PASS: gdb.arch/amd64-byte.exp: check contents of %dh
+PASS: gdb.arch/amd64-byte.exp: set second breakpoint in main
+PASS: gdb.arch/amd64-byte.exp: continue to breakpoint: continue to second breakpoint in main
+PASS: gdb.arch/amd64-byte.exp: check contents of %r8l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r9l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r10l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r11l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r12l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r13l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r14l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r15l
+PASS: gdb.arch/amd64-byte.exp: set %al
+PASS: gdb.arch/amd64-byte.exp: set %bl
+PASS: gdb.arch/amd64-byte.exp: set %cl
+PASS: gdb.arch/amd64-byte.exp: set %dl
+PASS: gdb.arch/amd64-byte.exp: set %sil
+PASS: gdb.arch/amd64-byte.exp: set %dil
+PASS: gdb.arch/amd64-byte.exp: set %ah
+PASS: gdb.arch/amd64-byte.exp: set %bh
+PASS: gdb.arch/amd64-byte.exp: set %ch
+PASS: gdb.arch/amd64-byte.exp: set %dh
+PASS: gdb.arch/amd64-byte.exp: set third breakpoint in main
+PASS: gdb.arch/amd64-byte.exp: continue to breakpoint: continue to third breakpoint in main
+PASS: gdb.arch/amd64-byte.exp: check contents of %al
+PASS: gdb.arch/amd64-byte.exp: check contents of %bl
+PASS: gdb.arch/amd64-byte.exp: check contents of %cl
+PASS: gdb.arch/amd64-byte.exp: check contents of %dl
+PASS: gdb.arch/amd64-byte.exp: check contents of %sil
+PASS: gdb.arch/amd64-byte.exp: check contents of %dil
+PASS: gdb.arch/amd64-byte.exp: check contents of %ah
+PASS: gdb.arch/amd64-byte.exp: check contents of %bh
+PASS: gdb.arch/amd64-byte.exp: check contents of %ch
+PASS: gdb.arch/amd64-byte.exp: check contents of %dh
+PASS: gdb.arch/amd64-byte.exp: set %r8l
+PASS: gdb.arch/amd64-byte.exp: set %r9l
+PASS: gdb.arch/amd64-byte.exp: set %r10l
+PASS: gdb.arch/amd64-byte.exp: set %r11l
+PASS: gdb.arch/amd64-byte.exp: set %r12l
+PASS: gdb.arch/amd64-byte.exp: set %r13l
+PASS: gdb.arch/amd64-byte.exp: set %r14l
+PASS: gdb.arch/amd64-byte.exp: set %r15l
+PASS: gdb.arch/amd64-byte.exp: set forth breakpoint in main
+PASS: gdb.arch/amd64-byte.exp: continue to breakpoint: continue to forth breakpoint in main
+PASS: gdb.arch/amd64-byte.exp: check contents of %r8l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r9l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r10l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r11l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r12l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r13l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r14l
+PASS: gdb.arch/amd64-byte.exp: check contents of %r15l
+Running ./gdb.arch/amd64-disp-step.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: error: /tmp/ccQtpEfb.o: requires unsupported dynamic reloc 11; recompile with -fPIC
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.arch/amd64-disp-step.exp: amd64-disp-step.exp
+Running ./gdb.arch/amd64-dword.exp ...
+PASS: gdb.arch/amd64-dword.exp: set first breakpoint in main
+PASS: gdb.arch/amd64-dword.exp: continue to breakpoint: continue to first breakpoint in main
+PASS: gdb.arch/amd64-dword.exp: check contents of %eax
+PASS: gdb.arch/amd64-dword.exp: check contents of %ebx
+PASS: gdb.arch/amd64-dword.exp: check contents of %ecx
+PASS: gdb.arch/amd64-dword.exp: check contents of %edx
+PASS: gdb.arch/amd64-dword.exp: check contents of %esi
+PASS: gdb.arch/amd64-dword.exp: check contents of %edi
+PASS: gdb.arch/amd64-dword.exp: set second breakpoint in main
+PASS: gdb.arch/amd64-dword.exp: continue to breakpoint: continue to second breakpoint in main
+PASS: gdb.arch/amd64-dword.exp: check contents of %r8d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r9d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r10d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r11d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r12d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r13d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r14d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r15d
+PASS: gdb.arch/amd64-dword.exp: set %eax
+PASS: gdb.arch/amd64-dword.exp: set %ebx
+PASS: gdb.arch/amd64-dword.exp: set %ecx
+PASS: gdb.arch/amd64-dword.exp: set %edx
+PASS: gdb.arch/amd64-dword.exp: set %esi
+PASS: gdb.arch/amd64-dword.exp: set %edi
+PASS: gdb.arch/amd64-dword.exp: set third breakpoint in main
+PASS: gdb.arch/amd64-dword.exp: continue to breakpoint: continue to third breakpoint in main
+PASS: gdb.arch/amd64-dword.exp: check contents of %eax
+PASS: gdb.arch/amd64-dword.exp: check contents of %ebx
+PASS: gdb.arch/amd64-dword.exp: check contents of %ecx
+PASS: gdb.arch/amd64-dword.exp: check contents of %edx
+PASS: gdb.arch/amd64-dword.exp: check contents of %esi
+PASS: gdb.arch/amd64-dword.exp: check contents of %edi
+PASS: gdb.arch/amd64-dword.exp: set %r8d
+PASS: gdb.arch/amd64-dword.exp: set %r9d
+PASS: gdb.arch/amd64-dword.exp: set %r10d
+PASS: gdb.arch/amd64-dword.exp: set %r11d
+PASS: gdb.arch/amd64-dword.exp: set %r12d
+PASS: gdb.arch/amd64-dword.exp: set %r13d
+PASS: gdb.arch/amd64-dword.exp: set %r14d
+PASS: gdb.arch/amd64-dword.exp: set %r15d
+PASS: gdb.arch/amd64-dword.exp: set forth breakpoint in main
+PASS: gdb.arch/amd64-dword.exp: continue to breakpoint: continue to forth breakpoint in main
+PASS: gdb.arch/amd64-dword.exp: check contents of %r8d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r9d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r10d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r11d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r12d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r13d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r14d
+PASS: gdb.arch/amd64-dword.exp: check contents of %r15d
+Running ./gdb.arch/amd64-entry-value.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: error: /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/gdb.arch/amd64-entry-value0.o: requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.arch/amd64-entry-value.exp: amd64-entry-value.exp
+Running ./gdb.arch/amd64-entry-value-inline.exp ...
+PASS: gdb.arch/amd64-entry-value-inline.exp: continue to breakpoint: break-here
+FAIL: gdb.arch/amd64-entry-value-inline.exp: p y
+Running ./gdb.arch/amd64-entry-value-param.exp ...
+PASS: gdb.arch/amd64-entry-value-param.exp: continue to breakpoint: break-here
+FAIL: gdb.arch/amd64-entry-value-param.exp: p y
+FAIL: gdb.arch/amd64-entry-value-param.exp: p b
+PASS: gdb.arch/amd64-entry-value-param.exp: continue to breakpoint: break-here
+FAIL: gdb.arch/amd64-entry-value-param.exp: p y
+FAIL: gdb.arch/amd64-entry-value-param.exp: p b
+PASS: gdb.arch/amd64-entry-value-param.exp: continue to breakpoint: break-here
+FAIL: gdb.arch/amd64-entry-value-param.exp: p y
+FAIL: gdb.arch/amd64-entry-value-param.exp: p b
+Running ./gdb.arch/amd64-i386-address.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: error: cannot find -lm
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.arch/amd64-i386-address.exp: amd64-i386-address.exp
+Running ./gdb.arch/amd64-prologue-xmm.exp ...
+PASS: gdb.arch/amd64-prologue-xmm.exp: continue to breakpoint: func
+PASS: gdb.arch/amd64-prologue-xmm.exp: stopped at func
+Running ./gdb.arch/amd64-tailcall-cxx.exp ...
+FAIL: gdb.arch/amd64-tailcall-cxx.exp: bt
+Running ./gdb.arch/amd64-tailcall-noret.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: error: /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/gdb.arch/amd64-tailcall-noret0.o: requires dynamic R_X86_64_PC32 reloc against 'abort' which may overflow at runtime; recompile with -fPIC
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.arch/amd64-tailcall-noret.exp: amd64-tailcall-noret.exp
+Running ./gdb.arch/amd64-tailcall-ret.exp ...
+PASS: gdb.arch/amd64-tailcall-ret.exp: continue to breakpoint: g
+PASS: gdb.arch/amd64-tailcall-ret.exp: return
+PASS: gdb.arch/amd64-tailcall-ret.exp: continue to breakpoint: g
+PASS: gdb.arch/amd64-tailcall-ret.exp: finish
+Running ./gdb.arch/amd64-word.exp ...
+PASS: gdb.arch/amd64-word.exp: set first breakpoint in main
+PASS: gdb.arch/amd64-word.exp: continue to breakpoint: continue to first breakpoint in main
+PASS: gdb.arch/amd64-word.exp: check contents of %ax
+PASS: gdb.arch/amd64-word.exp: check contents of %bx
+PASS: gdb.arch/amd64-word.exp: check contents of %cx
+PASS: gdb.arch/amd64-word.exp: check contents of %dx
+PASS: gdb.arch/amd64-word.exp: check contents of %si
+PASS: gdb.arch/amd64-word.exp: check contents of %di
+PASS: gdb.arch/amd64-word.exp: set second breakpoint in main
+PASS: gdb.arch/amd64-word.exp: continue to breakpoint: continue to second breakpoint in main
+PASS: gdb.arch/amd64-word.exp: check contents of %r8w
+PASS: gdb.arch/amd64-word.exp: check contents of %r9w
+PASS: gdb.arch/amd64-word.exp: check contents of %r10w
+PASS: gdb.arch/amd64-word.exp: check contents of %r11w
+PASS: gdb.arch/amd64-word.exp: check contents of %r12w
+PASS: gdb.arch/amd64-word.exp: check contents of %r13w
+PASS: gdb.arch/amd64-word.exp: check contents of %r14w
+PASS: gdb.arch/amd64-word.exp: check contents of %r15w
+PASS: gdb.arch/amd64-word.exp: set %ax
+PASS: gdb.arch/amd64-word.exp: set %bx
+PASS: gdb.arch/amd64-word.exp: set %cx
+PASS: gdb.arch/amd64-word.exp: set %dx
+PASS: gdb.arch/amd64-word.exp: set %si
+PASS: gdb.arch/amd64-word.exp: set %di
+PASS: gdb.arch/amd64-word.exp: set third breakpoint in main
+PASS: gdb.arch/amd64-word.exp: continue to breakpoint: continue to third breakpoint in main
+PASS: gdb.arch/amd64-word.exp: check contents of %ax
+PASS: gdb.arch/amd64-word.exp: check contents of %bx
+PASS: gdb.arch/amd64-word.exp: check contents of %cx
+PASS: gdb.arch/amd64-word.exp: check contents of %dx
+PASS: gdb.arch/amd64-word.exp: check contents of %si
+PASS: gdb.arch/amd64-word.exp: check contents of %di
+PASS: gdb.arch/amd64-word.exp: set %r8w
+PASS: gdb.arch/amd64-word.exp: set %r9w
+PASS: gdb.arch/amd64-word.exp: set %r10w
+PASS: gdb.arch/amd64-word.exp: set %r11w
+PASS: gdb.arch/amd64-word.exp: set %r12w
+PASS: gdb.arch/amd64-word.exp: set %r13w
+PASS: gdb.arch/amd64-word.exp: set %r14w
+PASS: gdb.arch/amd64-word.exp: set %r15w
+PASS: gdb.arch/amd64-word.exp: set forth breakpoint in main
+PASS: gdb.arch/amd64-word.exp: continue to breakpoint: continue to forth breakpoint in main
+PASS: gdb.arch/amd64-word.exp: check contents of %r8w
+PASS: gdb.arch/amd64-word.exp: check contents of %r9w
+PASS: gdb.arch/amd64-word.exp: check contents of %r10w
+PASS: gdb.arch/amd64-word.exp: check contents of %r11w
+PASS: gdb.arch/amd64-word.exp: check contents of %r12w
+PASS: gdb.arch/amd64-word.exp: check contents of %r13w
+PASS: gdb.arch/amd64-word.exp: check contents of %r14w
+PASS: gdb.arch/amd64-word.exp: check contents of %r15w
+Running ./gdb.arch/arm-bl-branch-dest.exp ...
+Running ./gdb.arch/arm-disp-step.exp ...
+Running ./gdb.arch/e500-abi.exp ...
+Running ./gdb.arch/e500-prologue.exp ...
+Running ./gdb.arch/e500-regs.exp ...
+Running ./gdb.arch/gdb1291.exp ...
+Running ./gdb.arch/gdb1431.exp ...
+Running ./gdb.arch/gdb1558.exp ...
+Running ./gdb.arch/i386-avx.exp ...
+PASS: gdb.arch/i386-avx.exp: check whether processor supports AVX
+PASS: gdb.arch/i386-avx.exp: set first breakpoint in main
+PASS: gdb.arch/i386-avx.exp: continue to breakpoint: continue to first breakpoint in main
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm0
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm0
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm1
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm1
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm2
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm2
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm3
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm3
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm4
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm4
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm5
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm5
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm6
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm6
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm7
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm7
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm8
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm8
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm9
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm9
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm10
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm10
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm11
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm11
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm12
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm12
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm13
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm13
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm14
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm14
+PASS: gdb.arch/i386-avx.exp: check float contents of %ymm15
+PASS: gdb.arch/i386-avx.exp: check int8 contents of %ymm15
+PASS: gdb.arch/i386-avx.exp: set %ymm0
+PASS: gdb.arch/i386-avx.exp: set %ymm1
+PASS: gdb.arch/i386-avx.exp: set %ymm2
+PASS: gdb.arch/i386-avx.exp: set %ymm3
+PASS: gdb.arch/i386-avx.exp: set %ymm4
+PASS: gdb.arch/i386-avx.exp: set %ymm5
+PASS: gdb.arch/i386-avx.exp: set %ymm6
+PASS: gdb.arch/i386-avx.exp: set %ymm7
+PASS: gdb.arch/i386-avx.exp: set %ymm8
+PASS: gdb.arch/i386-avx.exp: set %ymm9
+PASS: gdb.arch/i386-avx.exp: set %ymm10
+PASS: gdb.arch/i386-avx.exp: set %ymm11
+PASS: gdb.arch/i386-avx.exp: set %ymm12
+PASS: gdb.arch/i386-avx.exp: set %ymm13
+PASS: gdb.arch/i386-avx.exp: set %ymm14
+PASS: gdb.arch/i386-avx.exp: set %ymm15
+PASS: gdb.arch/i386-avx.exp: set second breakpoint in main
+PASS: gdb.arch/i386-avx.exp: continue to breakpoint: continue to second breakpoint in main
+PASS: gdb.arch/i386-avx.exp: check contents of data[0]
+PASS: gdb.arch/i386-avx.exp: check contents of data[1]
+PASS: gdb.arch/i386-avx.exp: check contents of data[2]
+PASS: gdb.arch/i386-avx.exp: check contents of data[3]
+PASS: gdb.arch/i386-avx.exp: check contents of data[4]
+PASS: gdb.arch/i386-avx.exp: check contents of data[5]
+PASS: gdb.arch/i386-avx.exp: check contents of data[6]
+PASS: gdb.arch/i386-avx.exp: check contents of data[7]
+PASS: gdb.arch/i386-avx.exp: check contents of data[8]
+PASS: gdb.arch/i386-avx.exp: check contents of data[9]
+PASS: gdb.arch/i386-avx.exp: check contents of data[10]
+PASS: gdb.arch/i386-avx.exp: check contents of data[11]
+PASS: gdb.arch/i386-avx.exp: check contents of data[12]
+PASS: gdb.arch/i386-avx.exp: check contents of data[13]
+PASS: gdb.arch/i386-avx.exp: check contents of data[14]
+PASS: gdb.arch/i386-avx.exp: check contents of data[15]
+Running ./gdb.arch/i386-bp_permanent.exp ...
+Running ./gdb.arch/i386-byte.exp ...
+PASS: gdb.arch/i386-byte.exp: set first breakpoint in main
+PASS: gdb.arch/i386-byte.exp: continue to breakpoint: continue to first breakpoint in main
+PASS: gdb.arch/i386-byte.exp: check contents of %al
+PASS: gdb.arch/i386-byte.exp: check contents of %ah
+PASS: gdb.arch/i386-byte.exp: check contents of %bl
+PASS: gdb.arch/i386-byte.exp: check contents of %bh
+PASS: gdb.arch/i386-byte.exp: check contents of %cl
+PASS: gdb.arch/i386-byte.exp: check contents of %ch
+PASS: gdb.arch/i386-byte.exp: check contents of %dl
+PASS: gdb.arch/i386-byte.exp: check contents of %dh
+PASS: gdb.arch/i386-byte.exp: set %al
+PASS: gdb.arch/i386-byte.exp: set %ah
+PASS: gdb.arch/i386-byte.exp: set %bl
+PASS: gdb.arch/i386-byte.exp: set %bh
+PASS: gdb.arch/i386-byte.exp: set %cl
+PASS: gdb.arch/i386-byte.exp: set %ch
+PASS: gdb.arch/i386-byte.exp: set %dl
+PASS: gdb.arch/i386-byte.exp: set %dh
+PASS: gdb.arch/i386-byte.exp: set second breakpoint in main
+PASS: gdb.arch/i386-byte.exp: continue to breakpoint: continue to second breakpoint in main
+PASS: gdb.arch/i386-byte.exp: check contents of %al
+PASS: gdb.arch/i386-byte.exp: check contents of %ah
+PASS: gdb.arch/i386-byte.exp: check contents of %bl
+PASS: gdb.arch/i386-byte.exp: check contents of %bh
+PASS: gdb.arch/i386-byte.exp: check contents of %cl
+PASS: gdb.arch/i386-byte.exp: check contents of %ch
+PASS: gdb.arch/i386-byte.exp: check contents of %dl
+PASS: gdb.arch/i386-byte.exp: check contents of %dh
+Running ./gdb.arch/i386-cfi-notcurrent.exp ...
+Running ./gdb.arch/i386-disp-step.exp ...
+Running ./gdb.arch/i386-dr3-watch.exp ...
+PASS: gdb.arch/i386-dr3-watch.exp: set breakpoint always-inserted on
+PASS: gdb.arch/i386-dr3-watch.exp: watch i1
+PASS: gdb.arch/i386-dr3-watch.exp: watch i2
+PASS: gdb.arch/i386-dr3-watch.exp: watch i3
+PASS: gdb.arch/i386-dr3-watch.exp: watch i4
+PASS: gdb.arch/i386-dr3-watch.exp: continue to i1 watchpoint
+PASS: gdb.arch/i386-dr3-watch.exp: continue to i2 watchpoint
+PASS: gdb.arch/i386-dr3-watch.exp: continue to i3 watchpoint
+PASS: gdb.arch/i386-dr3-watch.exp: continue to i4 watchpoint
+PASS: gdb.arch/i386-dr3-watch.exp: set watchpoint occuping one debug register
+PASS: gdb.arch/i386-dr3-watch.exp: watchpoint on gap1 does not fit debug registers
+PASS: gdb.arch/i386-dr3-watch.exp: delete all watchpoints
+PASS: gdb.arch/i386-dr3-watch.exp: watch i1 still fits
+PASS: gdb.arch/i386-dr3-watch.exp: watch i2 still fits
+PASS: gdb.arch/i386-dr3-watch.exp: watch i3 still fits
+PASS: gdb.arch/i386-dr3-watch.exp: watch i4 still fits
+Running ./gdb.arch/i386-float.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: error: /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/gdb.arch/i386-float0.o: requires unsupported dynamic reloc 11; recompile with -fPIC
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.arch/i386-float.exp: break.exp
+Running ./gdb.arch/i386-gnu-cfi.exp ...
+Running ./gdb.arch/i386-permbkpt.exp ...
+PASS: gdb.arch/i386-permbkpt.exp: First permanent break
+PASS: gdb.arch/i386-permbkpt.exp: Second permanent break
+Running ./gdb.arch/i386-prologue.exp ...
+Running ./gdb.arch/i386-signal.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: error: /tmp/ccAjQh8y.o: requires unsupported dynamic reloc 11; recompile with -fPIC
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.arch/i386-signal.exp: i386-signal.exp
+Running ./gdb.arch/i386-size.exp ...
+Running ./gdb.arch/i386-size-overlap.exp ...
+Running ./gdb.arch/i386-sse.exp ...
+PASS: gdb.arch/i386-sse.exp: check whether processor supports SSE
+PASS: gdb.arch/i386-sse.exp: set first breakpoint in main
+PASS: gdb.arch/i386-sse.exp: continue to breakpoint: continue to first breakpoint in main
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm0
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm0
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm1
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm1
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm2
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm2
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm3
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm3
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm4
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm4
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm5
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm5
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm6
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm6
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm7
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm7
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm8
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm8
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm9
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm9
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm10
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm10
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm11
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm11
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm12
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm12
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm13
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm13
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm14
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm14
+PASS: gdb.arch/i386-sse.exp: check float contents of %xmm15
+PASS: gdb.arch/i386-sse.exp: check int8 contents of %xmm15
+PASS: gdb.arch/i386-sse.exp: set %xmm0
+PASS: gdb.arch/i386-sse.exp: set %xmm1
+PASS: gdb.arch/i386-sse.exp: set %xmm2
+PASS: gdb.arch/i386-sse.exp: set %xmm3
+PASS: gdb.arch/i386-sse.exp: set %xmm4
+PASS: gdb.arch/i386-sse.exp: set %xmm5
+PASS: gdb.arch/i386-sse.exp: set %xmm6
+PASS: gdb.arch/i386-sse.exp: set %xmm7
+PASS: gdb.arch/i386-sse.exp: set %xmm8
+PASS: gdb.arch/i386-sse.exp: set %xmm9
+PASS: gdb.arch/i386-sse.exp: set %xmm10
+PASS: gdb.arch/i386-sse.exp: set %xmm11
+PASS: gdb.arch/i386-sse.exp: set %xmm12
+PASS: gdb.arch/i386-sse.exp: set %xmm13
+PASS: gdb.arch/i386-sse.exp: set %xmm14
+PASS: gdb.arch/i386-sse.exp: set %xmm15
+PASS: gdb.arch/i386-sse.exp: set second breakpoint in main
+PASS: gdb.arch/i386-sse.exp: continue to breakpoint: continue to second breakpoint in main
+PASS: gdb.arch/i386-sse.exp: check contents of data[0]
+PASS: gdb.arch/i386-sse.exp: check contents of data[1]
+PASS: gdb.arch/i386-sse.exp: check contents of data[2]
+PASS: gdb.arch/i386-sse.exp: check contents of data[3]
+PASS: gdb.arch/i386-sse.exp: check contents of data[4]
+PASS: gdb.arch/i386-sse.exp: check contents of data[5]
+PASS: gdb.arch/i386-sse.exp: check contents of data[6]
+PASS: gdb.arch/i386-sse.exp: check contents of data[7]
+PASS: gdb.arch/i386-sse.exp: check contents of data[8]
+PASS: gdb.arch/i386-sse.exp: check contents of data[9]
+PASS: gdb.arch/i386-sse.exp: check contents of data[10]
+PASS: gdb.arch/i386-sse.exp: check contents of data[11]
+PASS: gdb.arch/i386-sse.exp: check contents of data[12]
+PASS: gdb.arch/i386-sse.exp: check contents of data[13]
+PASS: gdb.arch/i386-sse.exp: check contents of data[14]
+PASS: gdb.arch/i386-sse.exp: check contents of data[15]
+Running ./gdb.arch/i386-sse-stack-align.exp ...
+Running ./gdb.arch/i386-unwind.exp ...
+Running ./gdb.arch/i386-word.exp ...
+PASS: gdb.arch/i386-word.exp: set first breakpoint in main
+PASS: gdb.arch/i386-word.exp: continue to breakpoint: continue to first breakpoint in main
+PASS: gdb.arch/i386-word.exp: check contents of %ax
+PASS: gdb.arch/i386-word.exp: check contents of %bx
+PASS: gdb.arch/i386-word.exp: check contents of %cx
+PASS: gdb.arch/i386-word.exp: check contents of %dx
+PASS: gdb.arch/i386-word.exp: set %ax
+PASS: gdb.arch/i386-word.exp: set %bx
+PASS: gdb.arch/i386-word.exp: set %cx
+PASS: gdb.arch/i386-word.exp: set %dx
+PASS: gdb.arch/i386-word.exp: set second breakpoint in main
+PASS: gdb.arch/i386-word.exp: continue to breakpoint: continue to second breakpoint in main
+PASS: gdb.arch/i386-word.exp: check contents of %ax
+PASS: gdb.arch/i386-word.exp: check contents of %bx
+PASS: gdb.arch/i386-word.exp: check contents of %cx
+PASS: gdb.arch/i386-word.exp: check contents of %dx
+Running ./gdb.arch/ia64-breakpoint-shadow.exp ...
+Running ./gdb.arch/iwmmxt-regs.exp ...
+Running ./gdb.arch/mips16-thunks.exp ...
+Running ./gdb.arch/mips-octeon-bbit.exp ...
+Running ./gdb.arch/pa-nullify.exp ...
+Running ./gdb.arch/powerpc-aix-prologue.exp ...
+Running ./gdb.arch/powerpc-d128-regs.exp ...
+Running ./gdb.arch/powerpc-prologue.exp ...
+Running ./gdb.arch/ppc64-atomic-inst.exp ...
+Running ./gdb.arch/ppc-dfp.exp ...
+Running ./gdb.arch/ppc-fp.exp ...
+Running ./gdb.arch/spu-info.exp ...
+Running ./gdb.arch/spu-ls.exp ...
+Running ./gdb.arch/system-gcore.exp ...
+PASS: gdb.arch/system-gcore.exp: help gcore
+PASS: gdb.arch/system-gcore.exp: set breakpoint at terminal_func
+PASS: gdb.arch/system-gcore.exp: continue to terminal_func
+PASS: gdb.arch/system-gcore.exp: save a corefile
+FAIL: gdb.arch/system-gcore.exp: re-load generated corefile (bad file format)
+Running ./gdb.arch/thumb2-it.exp ...
+Running ./gdb.arch/thumb-bx-pc.exp ...
+Running ./gdb.arch/thumb-prologue.exp ...
+Running ./gdb.arch/thumb-singlestep.exp ...
+Running ./gdb.arch/vsx-regs.exp ...
+Running ./gdb.asm/asm-source.exp ...
+PASS: gdb.asm/asm-source.exp: f at main
+PASS: gdb.asm/asm-source.exp: next over macro
+PASS: gdb.asm/asm-source.exp: step into foo2
+PASS: gdb.asm/asm-source.exp: info target
+PASS: gdb.asm/asm-source.exp: info symbol
+PASS: gdb.asm/asm-source.exp: list
+PASS: gdb.asm/asm-source.exp: search
+PASS: gdb.asm/asm-source.exp: f in foo2
+PASS: gdb.asm/asm-source.exp: n in foo2
+PASS: gdb.asm/asm-source.exp: bt ALL in foo2
+PASS: gdb.asm/asm-source.exp: bt 2 in foo2
+PASS: gdb.asm/asm-source.exp: s 2
+PASS: gdb.asm/asm-source.exp: n 2
+PASS: gdb.asm/asm-source.exp: bt 3 in foo3
+PASS: gdb.asm/asm-source.exp: info source asmsrc1.s
+PASS: gdb.asm/asm-source.exp: finish from foo3
+PASS: gdb.asm/asm-source.exp: info source asmsrc2.s
+PASS: gdb.asm/asm-source.exp: info sources
+PASS: gdb.asm/asm-source.exp: info line
+PASS: gdb.asm/asm-source.exp: next over foo3
+PASS: gdb.asm/asm-source.exp: return from foo2
+PASS: gdb.asm/asm-source.exp: look at global variable
+PASS: gdb.asm/asm-source.exp: x/i &globalvar
+PASS: gdb.asm/asm-source.exp: disassem &globalvar, &globalvar+1
+PASS: gdb.asm/asm-source.exp: look at static variable
+PASS: gdb.asm/asm-source.exp: x/i &staticvar
+PASS: gdb.asm/asm-source.exp: disassem &staticvar, &staticvar+1
+PASS: gdb.asm/asm-source.exp: look at static function
+Running ./gdb.base/a2-run.exp ...
+Running ./gdb.base/advance.exp ...
+PASS: gdb.base/advance.exp: advance line number
+PASS: gdb.base/advance.exp: malformed advance
+PASS: gdb.base/advance.exp: advance func
+PASS: gdb.base/advance.exp: advance function not called by current frame
+PASS: gdb.base/advance.exp: set breakpoint at call to func3
+PASS: gdb.base/advance.exp: continue to call to func3 in main
+PASS: gdb.base/advance.exp: advance function called as param
+PASS: gdb.base/advance.exp: advance with no argument
+Running ./gdb.base/alias.exp ...
+PASS: gdb.base/alias.exp: alias -a set2=set
+PASS: gdb.base/alias.exp: set2 print elements 42
+PASS: gdb.base/alias.exp: verify set2
+PASS: gdb.base/alias.exp: abbrev set2 not present in help command list
+PASS: gdb.base/alias.exp: alias -a set3= set
+PASS: gdb.base/alias.exp: set3 print elements 43
+PASS: gdb.base/alias.exp: verify set3
+PASS: gdb.base/alias.exp: abbrev set3 not present in help command list
+PASS: gdb.base/alias.exp: alias -a set4 =set
+PASS: gdb.base/alias.exp: set4 print elements 44
+PASS: gdb.base/alias.exp: verify set4
+PASS: gdb.base/alias.exp: abbrev set4 not present in help command list
+PASS: gdb.base/alias.exp: alias -a set5 = set
+PASS: gdb.base/alias.exp: set5 print elements 45
+PASS: gdb.base/alias.exp: verify set5
+PASS: gdb.base/alias.exp: abbrev set5 not present in help command list
+PASS: gdb.base/alias.exp: alias -a -- set6 = set
+PASS: gdb.base/alias.exp: set6 print elements 46
+PASS: gdb.base/alias.exp: verify set6
+PASS: gdb.base/alias.exp: abbrev set6 not present in help command list
+PASS: gdb.base/alias.exp: alias -a -- -a = set
+PASS: gdb.base/alias.exp: -a print elements 47
+PASS: gdb.base/alias.exp: verify -a
+PASS: gdb.base/alias.exp: abbrev -a not present in help command list
+PASS: gdb.base/alias.exp: alias set2=set
+PASS: gdb.base/alias.exp: alias foo=bar
+PASS: gdb.base/alias.exp: alias spe = set p elem
+PASS: gdb.base/alias.exp: spe 50
+PASS: gdb.base/alias.exp: verify spe
+PASS: gdb.base/alias.exp: alias set pr elms = set p elem
+PASS: gdb.base/alias.exp: set pr elms 51
+PASS: gdb.base/alias.exp: verify set pr elms
+PASS: gdb.base/alias.exp: help set print
+Running ./gdb.base/all-bin.exp ...
+PASS: gdb.base/all-bin.exp: continuing after dummy()
+PASS: gdb.base/all-bin.exp: print value of v_int+v_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int+v_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_float
+PASS: gdb.base/all-bin.exp: print value of v_int+v_double
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_char
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_long
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_float
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_double
+PASS: gdb.base/all-bin.exp: set v_char=0
+PASS: gdb.base/all-bin.exp: set v_double=0
+PASS: gdb.base/all-bin.exp: set v_unsigned_long=0
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_float
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_double
+Running ./gdb.base/annota1.exp ...
+Running ./gdb.base/annota3.exp ...
+Running ./gdb.base/anon.exp ...
+PASS: gdb.base/anon.exp: set breakpoint in anon.c
+PASS: gdb.base/anon.exp: continue to breakpoint: continue to breakpoint in anon.c
+PASS: gdb.base/anon.exp: print val.data.six
+Running ./gdb.base/args.exp ...
+Running ./gdb.base/argv0-symlink.exp ...
+PASS: gdb.base/argv0-symlink.exp: kept file symbolic link name
+FAIL: gdb.base/argv0-symlink.exp: kept directory symbolic link name
+Running ./gdb.base/arithmet.exp ...
+PASS: gdb.base/arithmet.exp: set variable x=14
+PASS: gdb.base/arithmet.exp: set variable y=2
+PASS: gdb.base/arithmet.exp: set variable z=2
+PASS: gdb.base/arithmet.exp: set variable w=3
+PASS: gdb.base/arithmet.exp: print x
+PASS: gdb.base/arithmet.exp: print y
+PASS: gdb.base/arithmet.exp: print z
+PASS: gdb.base/arithmet.exp: print w
+PASS: gdb.base/arithmet.exp: print x+y
+PASS: gdb.base/arithmet.exp: print x-y
+PASS: gdb.base/arithmet.exp: print x*y
+PASS: gdb.base/arithmet.exp: print x/y
+PASS: gdb.base/arithmet.exp: print x%y
+PASS: gdb.base/arithmet.exp: print x+y+z
+PASS: gdb.base/arithmet.exp: print x-y-z
+PASS: gdb.base/arithmet.exp: print x*y*z
+PASS: gdb.base/arithmet.exp: print x/y/z
+PASS: gdb.base/arithmet.exp: print x%y%z
+PASS: gdb.base/arithmet.exp: set variable x=10
+PASS: gdb.base/arithmet.exp: set variable y=4
+PASS: gdb.base/arithmet.exp: print x+y-z
+PASS: gdb.base/arithmet.exp: print x+y*z
+PASS: gdb.base/arithmet.exp: print x+y%w
+PASS: gdb.base/arithmet.exp: print x+y/w
+PASS: gdb.base/arithmet.exp: print x-y*z
+PASS: gdb.base/arithmet.exp: print x-y%z
+PASS: gdb.base/arithmet.exp: print x-y/z
+PASS: gdb.base/arithmet.exp: print x*y/z
+PASS: gdb.base/arithmet.exp: print x*y%w
+PASS: gdb.base/arithmet.exp: print x/y%w
+PASS: gdb.base/arithmet.exp: print x-(y+w)
+PASS: gdb.base/arithmet.exp: print x/(y*w)
+PASS: gdb.base/arithmet.exp: print x-(y/w)
+PASS: gdb.base/arithmet.exp: print (x+y)*w
+Running ./gdb.base/arrayidx.exp ...
+PASS: gdb.base/arrayidx.exp: Set print array-indexes to off
+PASS: gdb.base/arrayidx.exp: Print array with array-indexes off
+PASS: gdb.base/arrayidx.exp: Set print array-indexes to on
+PASS: gdb.base/arrayidx.exp: Print array with array-indexes on
+Running ./gdb.base/assign.exp ...
+PASS: gdb.base/assign.exp: continuing after dummy()
+PASS: gdb.base/assign.exp: v_int=57
+PASS: gdb.base/assign.exp: set v_int to 6
+PASS: gdb.base/assign.exp: v_int+=57
+PASS: gdb.base/assign.exp: set v_int to 6 (2)
+PASS: gdb.base/assign.exp: v_int-=57
+PASS: gdb.base/assign.exp: set v_int to 6 (3)
+PASS: gdb.base/assign.exp: v_int*=5
+PASS: gdb.base/assign.exp: set v_int to 6 (4)
+PASS: gdb.base/assign.exp: v_int/=4
+PASS: gdb.base/assign.exp: set v_int to 6 (5)
+PASS: gdb.base/assign.exp: v_int%=4
+PASS: gdb.base/assign.exp: set v_int to 6 (6)
+PASS: gdb.base/assign.exp: v_int+=char
+PASS: gdb.base/assign.exp: set v_int to 6 (7)
+PASS: gdb.base/assign.exp: v_int+=signed_char
+PASS: gdb.base/assign.exp: set v_int to 6 (8)
+PASS: gdb.base/assign.exp: v_int+=unsigned_char
+PASS: gdb.base/assign.exp: set v_int to 6 (9)
+PASS: gdb.base/assign.exp: v_int+=short
+PASS: gdb.base/assign.exp: set v_int to 6 (10)
+PASS: gdb.base/assign.exp: v_int+=signed_short
+PASS: gdb.base/assign.exp: set v_int to 6 (11)
+PASS: gdb.base/assign.exp: v_int=+unsigned_short
+PASS: gdb.base/assign.exp: set v_int to 6 (12)
+PASS: gdb.base/assign.exp: v_int+=signed_int
+PASS: gdb.base/assign.exp: set v_int to 6 (13)
+PASS: gdb.base/assign.exp: v_int+=unsigned_int
+PASS: gdb.base/assign.exp: set v_int to 6 (14)
+PASS: gdb.base/assign.exp: v_int+=long
+PASS: gdb.base/assign.exp: set v_int to 6 (15)
+PASS: gdb.base/assign.exp: v_int+=signed_long
+PASS: gdb.base/assign.exp: set v_int to 6 (16)
+PASS: gdb.base/assign.exp: v_int+=unsigned_long
+PASS: gdb.base/assign.exp: set v_int to 6 (17)
+PASS: gdb.base/assign.exp: v_int+=v_float
+PASS: gdb.base/assign.exp: set v_int to 6 (18)
+PASS: gdb.base/assign.exp: v_int+=double
+Running ./gdb.base/async.exp ...
+Running ./gdb.base/async-shell.exp ...
+Running ./gdb.base/attach.exp ...
+Running ./gdb.base/attach-pie-misread.exp ...
+Running ./gdb.base/attach-pie-noexec.exp ...
+Running ./gdb.base/attach-twice.exp ...
+Running ./gdb.base/auxv.exp ...
+PASS: gdb.base/auxv.exp: set print sevenbit-strings
+PASS: gdb.base/auxv.exp: set width 0
+PASS: gdb.base/auxv.exp: tbreak 78
+PASS: gdb.base/auxv.exp: continue
+PASS: gdb.base/auxv.exp: info auxv on live process
+PASS: gdb.base/auxv.exp: gcore
+PASS: gdb.base/auxv.exp: continue
+PASS: gdb.base/auxv.exp: continue
+UNSUPPORTED: gdb.base/auxv.exp: generate native core dump
+UNSUPPORTED: gdb.base/auxv.exp: info auxv on native core dump
+UNSUPPORTED: gdb.base/auxv.exp: matching auxv data from live and core
+FAIL: gdb.base/auxv.exp: load core file for info auxv on gcore-created dump
+FAIL: gdb.base/auxv.exp: info auxv on gcore-created dump
+FAIL: gdb.base/auxv.exp: matching auxv data from live and gcore
+Running ./gdb.base/bang.exp ...
+PASS: gdb.base/bang.exp: run program
+Running ./gdb.base/bfp-test.exp ...
+PASS: gdb.base/bfp-test.exp: continue to breakpoint: return
+PASS: gdb.base/bfp-test.exp: The original value of b32 is 1.5
+PASS: gdb.base/bfp-test.exp: The original value of b64 is 2.25
+PASS: gdb.base/bfp-test.exp: The original value of b128 is 3.375
+PASS: gdb.base/bfp-test.exp: Try to change b32 to -1.5 with 'print b32=-1.5f'
+PASS: gdb.base/bfp-test.exp: Try to change b64 to -2.25 with 'print b64=-2.25f'
+PASS: gdb.base/bfp-test.exp: Try to change b128 to -3.375 with 'print b128=-3.375l'
+PASS: gdb.base/bfp-test.exp: set variable b32 = 10.5f
+PASS: gdb.base/bfp-test.exp: set variable b64 = 20.25f
+PASS: gdb.base/bfp-test.exp: set variable b128 = 30.375l
+PASS: gdb.base/bfp-test.exp: The value of b32 is changed to 10.5
+PASS: gdb.base/bfp-test.exp: The value of b64 is changed to 20.25
+PASS: gdb.base/bfp-test.exp: The value of b128 is changed to 30.375
+PASS: gdb.base/bfp-test.exp: set variable b32 = 100.5a
+PASS: gdb.base/bfp-test.exp: set variable b64 = 200.25x
+PASS: gdb.base/bfp-test.exp: set variable b128 = 300.375fl
+PASS: gdb.base/bfp-test.exp: set variable b128 = 300.375fff
+Running ./gdb.base/bigcore.exp ...
+UNTESTED: gdb.base/bigcore.exp: Remote system
+Running ./gdb.base/bitfields2.exp ...
+PASS: gdb.base/bitfields2.exp: set print sevenbit-strings
+PASS: gdb.base/bitfields2.exp: break tester prior to break1
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #0
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s1 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #1
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u1 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #2
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s2 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #3
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u2 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #4
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s3 = 1
+PASS: gdb.base/bitfields2.exp: continuing to break1 #5
+PASS: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u3 = 1
+PASS: gdb.base/bitfields2.exp: break tester prior to break2
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break2
+PASS: gdb.base/bitfields2.exp: continuing to break2 #0
+PASS: gdb.base/bitfields2.exp: bitfield containment; flags.u1, flags.u3, and flags.s3 to all 1s
+PASS: gdb.base/bitfields2.exp: continuing to break2 #1
+PASS: gdb.base/bitfields2.exp: bitfield containment; flags.u2, flags.s1, flags.s2 to all 1s
+PASS: gdb.base/bitfields2.exp: break tester prior to break3
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break3
+PASS: gdb.base/bitfields2.exp: continuing to break3 #0
+PASS: gdb.base/bitfields2.exp: maximum unsigned bitfield values
+PASS: gdb.base/bitfields2.exp: break tester prior to break4
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break4
+PASS: gdb.base/bitfields2.exp: continuing to break4 #0
+PASS: gdb.base/bitfields2.exp: maximum signed bitfield values
+PASS: gdb.base/bitfields2.exp: continuing to break4 #1
+PASS: gdb.base/bitfields2.exp: determining signed-ness of bitfields
+PASS: gdb.base/bitfields2.exp: most negative signed bitfield values
+PASS: gdb.base/bitfields2.exp: continuing to break4 #2
+PASS: gdb.base/bitfields2.exp: signed bitfields containing -1
+PASS: gdb.base/bitfields2.exp: break tester prior to break5
+PASS: gdb.base/bitfields2.exp: continuing to tester prior to break5
+PASS: gdb.base/bitfields2.exp: continuing to break5 #0
+PASS: gdb.base/bitfields2.exp: set long long unsigned bitfield
+PASS: gdb.base/bitfields2.exp: set long long signed bitfield positive
+PASS: gdb.base/bitfields2.exp: long long bitfield values after set
+PASS: gdb.base/bitfields2.exp: set long long signed bitfield negative
+PASS: gdb.base/bitfields2.exp: long long bitfield values after set negative
+Running ./gdb.base/bitfields.exp ...
+PASS: gdb.base/bitfields.exp: set print sevenbit-strings
+PASS: gdb.base/bitfields.exp: print flags
+PASS: gdb.base/bitfields.exp: continuing to break1 #1
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s1)
+PASS: gdb.base/bitfields.exp: continuing to break1 #2
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u1)
+PASS: gdb.base/bitfields.exp: continuing to break1 #3
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s2)
+PASS: gdb.base/bitfields.exp: continuing to break1 #4
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u2)
+PASS: gdb.base/bitfields.exp: continuing to break1 #5
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s3)
+PASS: gdb.base/bitfields.exp: continuing to break1 #6
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u3)
+PASS: gdb.base/bitfields.exp: continuing to break1 #7
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (s9)
+PASS: gdb.base/bitfields.exp: continuing to break1 #8
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (u9)
+PASS: gdb.base/bitfields.exp: continuing to break1 #9
+PASS: gdb.base/bitfields.exp: bitfield uniqueness (sc)
+PASS: gdb.base/bitfields.exp: bitfield containment #1
+PASS: gdb.base/bitfields.exp: continuing to break2
+PASS: gdb.base/bitfields.exp: bitfield containment #2
+PASS: gdb.base/bitfields.exp: unsigned bitfield ranges
+PASS: gdb.base/bitfields.exp: signed bitfields, max positive values
+PASS: gdb.base/bitfields.exp: continuing to break4 #1
+PASS: gdb.base/bitfields.exp: determining signed-ness of bitfields
+PASS: gdb.base/bitfields.exp: signed bitfields, max negative values
+PASS: gdb.base/bitfields.exp: continuing to break4 #2
+PASS: gdb.base/bitfields.exp: signed bitfields with -1
+PASS: gdb.base/bitfields.exp: continuing to break5
+PASS: gdb.base/bitfields.exp: distinct bitfields in container
+PASS: gdb.base/bitfields.exp: print container.one.u3
+PASS: gdb.base/bitfields.exp: print container.two.u3
+PASS: gdb.base/bitfields.exp: set internal var
+PASS: gdb.base/bitfields.exp: set $myvar.a = 0
+PASS: gdb.base/bitfields.exp: set $myvar.inner.b = 1
+PASS: gdb.base/bitfields.exp: set $myvar.inner.deep.c = 0
+PASS: gdb.base/bitfields.exp: set $myvar.inner.deep.d = -1
+PASS: gdb.base/bitfields.exp: set $myvar.inner.e = 1
+PASS: gdb.base/bitfields.exp: set $myvar.f = 1
+PASS: gdb.base/bitfields.exp: print $myvar.a
+PASS: gdb.base/bitfields.exp: print $myvar.inner.b
+PASS: gdb.base/bitfields.exp: print $myvar.inner.deep.c
+PASS: gdb.base/bitfields.exp: print $myvar.inner.deep.d
+PASS: gdb.base/bitfields.exp: print $myvar.inner.e
+PASS: gdb.base/bitfields.exp: print $myvar.f
+Running ./gdb.base/bitops.exp ...
+PASS: gdb.base/bitops.exp: print value of !1
+PASS: gdb.base/bitops.exp: print value of !0
+PASS: gdb.base/bitops.exp: print value of !100
+PASS: gdb.base/bitops.exp: print value of !1000
+PASS: gdb.base/bitops.exp: print value of !10
+PASS: gdb.base/bitops.exp: print value of !2
+PASS: gdb.base/bitops.exp: print value of 10 | 5
+PASS: gdb.base/bitops.exp: print value of 10 & 5
+PASS: gdb.base/bitops.exp: print value of 10 ^ 5
+PASS: gdb.base/bitops.exp: print value of -!0
+PASS: gdb.base/bitops.exp: print value of ~-!0
+PASS: gdb.base/bitops.exp: print value of 3 * 2 / 4.0 * 2.0
+PASS: gdb.base/bitops.exp: print value of 8 << 2 >> 4
+PASS: gdb.base/bitops.exp: print value of -1 < 0 > 1
+PASS: gdb.base/bitops.exp: print value of 15 ^ 10 ^ 5 ^ 7
+PASS: gdb.base/bitops.exp: print value of 3.5 < 4.0
+PASS: gdb.base/bitops.exp: print value of 3.5 < -4.0
+PASS: gdb.base/bitops.exp: print value of 2 > -3
+PASS: gdb.base/bitops.exp: print value of -3>4
+PASS: gdb.base/bitops.exp: print value of (-3 > 4)
+PASS: gdb.base/bitops.exp: print value of 3>=2.5
+PASS: gdb.base/bitops.exp: print value of 3>=4.5
+PASS: gdb.base/bitops.exp: print value of 3==3.0
+PASS: gdb.base/bitops.exp: print value of 3==4.0
+PASS: gdb.base/bitops.exp: print value of 3!=3.0
+PASS: gdb.base/bitops.exp: print value of 3!=5.0
+PASS: gdb.base/bitops.exp: print value of 0 || 1 && 0 | 0 ^ 0 == 8 > 128 >>1 +2 *2
+PASS: gdb.base/bitops.exp: print value of 1.0 || 0
+PASS: gdb.base/bitops.exp: print value of 0.0 || 1.0
+PASS: gdb.base/bitops.exp: print value of 0.0 || 0
+PASS: gdb.base/bitops.exp: print value of 0 || 1 && 0 | 0 ^ 0 == 8
+PASS: gdb.base/bitops.exp: print value of 0 == 8 > 128 >> 1 + 2 * 2
+Running ./gdb.base/break-always.exp ...
+PASS: gdb.base/break-always.exp: set breakpoint always-inserted on
+PASS: gdb.base/break-always.exp: confirm breakpoint always-inserted
+PASS: gdb.base/break-always.exp: set breakpoint on bar
+PASS: gdb.base/break-always.exp: set 2nd breakpoint on bar
+PASS: gdb.base/break-always.exp: set 3rd breakpoint on bar
+PASS: gdb.base/break-always.exp: set 4th breakpoint on bar
+PASS: gdb.base/break-always.exp: initial check breakpoint state
+PASS: gdb.base/break-always.exp: initial disable all breakpoints
+PASS: gdb.base/break-always.exp: initial enable all breakpoints
+PASS: gdb.base/break-always.exp: re-disable all breakpoints
+PASS: gdb.base/break-always.exp: enable 3.A
+PASS: gdb.base/break-always.exp: disable 3.B
+PASS: gdb.base/break-always.exp: enable 3.C
+PASS: gdb.base/break-always.exp: enable 2.D
+PASS: gdb.base/break-always.exp: disable 2.E
+PASS: gdb.base/break-always.exp: disable 3.F
+PASS: gdb.base/break-always.exp: enable 3.G
+PASS: gdb.base/break-always.exp: enable 2.H
+PASS: gdb.base/break-always.exp: disable 2.I
+PASS: gdb.base/break-always.exp: before re-enable check breakpoint state
+PASS: gdb.base/break-always.exp: re-enable all breakpoints
+PASS: gdb.base/break-always.exp: set breakpoint on bar 2
+PASS: gdb.base/break-always.exp: save shadow
+PASS: gdb.base/break-always.exp: write 0 to breakpoint's address
+PASS: gdb.base/break-always.exp: read back 0 from the breakpoint's address
+PASS: gdb.base/break-always.exp: write 1 to breakpoint's address
+PASS: gdb.base/break-always.exp: read back 1 from the breakpoint's address
+PASS: gdb.base/break-always.exp: p /x *(char *) 0x55555555470c = $shadow
+PASS: gdb.base/break-always.exp: continue to breakpoint: bar
+Running ./gdb.base/break-caller-line.exp ...
+PASS: gdb.base/break-caller-line.exp: up
+PASS: gdb.base/break-caller-line.exp: info line *$pc
+PASS: gdb.base/break-caller-line.exp: break
+Running ./gdb.base/break-entry.exp ...
+UNTESTED: gdb.base/break-entry.exp: break-entry.exp
+Running ./gdb.base/break.exp ...
+PASS: gdb.base/break.exp: Delete all breakpoints when none
+PASS: gdb.base/break.exp: breakpoint function
+PASS: gdb.base/break.exp: breakpoint quoted function
+PASS: gdb.base/break.exp: breakpoint function in file
+PASS: gdb.base/break.exp: use `list' to establish default source file
+PASS: gdb.base/break.exp: breakpoint line number
+PASS: gdb.base/break.exp: breakpoint duplicate
+PASS: gdb.base/break.exp: breakpoint line number in file
+PASS: gdb.base/break.exp: breakpoint at start of multi line if conditional
+PASS: gdb.base/break.exp: breakpoint at start of multi line while conditional
+PASS: gdb.base/break.exp: breakpoint info
+PASS: gdb.base/break.exp: info break 2 4 6
+PASS: gdb.base/break.exp: info break 3-5
+PASS: gdb.base/break.exp: disable using history values
+PASS: gdb.base/break.exp: check disable with history values
+PASS: gdb.base/break.exp: disable with convenience values
+PASS: gdb.base/break.exp: check disable with convenience values
+PASS: gdb.base/break.exp: disable non-existent breakpoint 10
+PASS: gdb.base/break.exp: set $baz 1.234
+PASS: gdb.base/break.exp: disable with non-integer convenience var
+PASS: gdb.base/break.exp: disable with non-existent convenience var
+PASS: gdb.base/break.exp: disable with non-existent history value
+PASS: gdb.base/break.exp: disable with badly formed history value
+PASS: gdb.base/break.exp: run until function breakpoint
+PASS: gdb.base/break.exp: list marker1
+PASS: gdb.base/break.exp: break lineno
+PASS: gdb.base/break.exp: delete $bpnum
+PASS: gdb.base/break.exp: run until breakpoint set at a line number
+PASS: gdb.base/break.exp: run until file:function(6) breakpoint
+PASS: gdb.base/break.exp: run until file:function(5) breakpoint
+PASS: gdb.base/break.exp: run until file:function(4) breakpoint
+PASS: gdb.base/break.exp: run until file:function(3) breakpoint
+PASS: gdb.base/break.exp: run until file:function(2) breakpoint
+PASS: gdb.base/break.exp: run until file:function(1) breakpoint
+PASS: gdb.base/break.exp: run until quoted breakpoint
+PASS: gdb.base/break.exp: run until file:linenum breakpoint
+PASS: gdb.base/break.exp: breakpoint offset +1
+PASS: gdb.base/break.exp: step onto breakpoint
+PASS: gdb.base/break.exp: setting breakpoint at }
+PASS: gdb.base/break.exp: continue to breakpoint at }
+PASS: gdb.base/break.exp: Temporary breakpoint function
+PASS: gdb.base/break.exp: Temporary breakpoint function in file
+PASS: gdb.base/break.exp: Temporary breakpoint line number #1
+PASS: gdb.base/break.exp: Temporary breakpoint line number #2
+PASS: gdb.base/break.exp: Temporary breakpoint line number in file #1
+PASS: gdb.base/break.exp: Temporary breakpoint line number in file #2
+PASS: gdb.base/break.exp: Temporary breakpoint info
+PASS: gdb.base/break.exp: catch requires an event name
+PASS: gdb.base/break.exp: set catch fork, never expected to trigger
+PASS: gdb.base/break.exp: set catch vfork, never expected to trigger
+PASS: gdb.base/break.exp: set catch exec, never expected to trigger
+PASS: gdb.base/break.exp: set breakpoint pending off
+PASS: gdb.base/break.exp: break on non-existent source line
+PASS: gdb.base/break.exp: until bp_location1
+PASS: gdb.base/break.exp: break on default location, 1st time
+PASS: gdb.base/break.exp: break on default location, 2nd time
+PASS: gdb.base/break.exp: break on default location, 3rd time
+PASS: gdb.base/break.exp: break on default location, 4th time
+PASS: gdb.base/break.exp: set to-be-silent break bp_location1
+PASS: gdb.base/break.exp: set silent break bp_location1
+PASS: gdb.base/break.exp: info silent break bp_location1
+PASS: gdb.base/break.exp: hit silent break bp_location1
+PASS: gdb.base/break.exp: stopped for silent break bp_location1
+PASS: gdb.base/break.exp: thread-specific breakpoint on non-existent thread disallowed
+PASS: gdb.base/break.exp: thread-specific breakpoint on bogus thread ID disallowed
+PASS: gdb.base/break.exp: breakpoint with trailing garbage disallowed
+PASS: gdb.base/break.exp: step over breakpoint
+PASS: gdb.base/break.exp: clear line has no breakpoint disallowed
+PASS: gdb.base/break.exp: clear current line has no breakpoint disallowed
+PASS: gdb.base/break.exp: break marker3 #1
+PASS: gdb.base/break.exp: break marker3 #2
+PASS: gdb.base/break.exp: clear marker3
+PASS: gdb.base/break.exp: set convenience variable $foo to bp_location11
+PASS: gdb.base/break.exp: set breakpoint via convenience variable
+PASS: gdb.base/break.exp: set convenience variable $foo to 81.5
+PASS: gdb.base/break.exp: set breakpoint via non-integer convenience variable disallowed
+PASS: gdb.base/break.exp: set breakpoint on to-be-called function
+PASS: gdb.base/break.exp: hit breakpoint on called function
+PASS: gdb.base/break.exp: backtrace while in called function
+PASS: gdb.base/break.exp: finish from called function
+PASS: gdb.base/break.exp: finish with arguments disallowed
+PASS: gdb.base/break.exp: finish from outermost frame disallowed
+PASS: gdb.base/break.exp: kill program
+PASS: gdb.base/break.exp: break at factorial
+PASS: gdb.base/break.exp: continue to factorial(5)
+PASS: gdb.base/break.exp: backtrace from factorial(5)
+PASS: gdb.base/break.exp: next to recursive call
+PASS: gdb.base/break.exp: next over recursive call
+PASS: gdb.base/break.exp: backtrace from factorial(5.1)
+PASS: gdb.base/break.exp: continue until exit at recursive next test
+PASS: gdb.base/break.exp: breakpoint function, optimized file
+PASS: gdb.base/break.exp: breakpoint small function, optimized file
+PASS: gdb.base/break.exp: run until function breakpoint, optimized file (code motion)
+PASS: gdb.base/break.exp: run until breakpoint set at small function, optimized file
+PASS: gdb.base/break.exp: rbreak junk pending setup
+PASS: gdb.base/break.exp: rbreak junk set breakpoint
+PASS: gdb.base/break.exp: rbreak junk
+Running ./gdb.base/break-inline.exp ...
+PASS: gdb.base/break-inline.exp: break
+Running ./gdb.base/break-interp.exp ...
+Running ./gdb.base/break-on-linker-gcd-function.exp ...
+PASS: gdb.base/break-on-linker-gcd-function.exp: b 25
+Running ./gdb.base/breakpoint-shadow.exp ...
+PASS: gdb.base/breakpoint-shadow.exp: set breakpoint always-inserted on
+PASS: gdb.base/breakpoint-shadow.exp: show breakpoint always-inserted
+PASS: gdb.base/breakpoint-shadow.exp: disassembly without breakpoints
+PASS: gdb.base/breakpoint-shadow.exp: First breakpoint placed
+PASS: gdb.base/breakpoint-shadow.exp: Second breakpoint placed
+PASS: gdb.base/breakpoint-shadow.exp: disassembly with breakpoints
+Running ./gdb.base/call-ar-st.exp ...
+PASS: gdb.base/call-ar-st.exp: set print sevenbit-strings
+PASS: gdb.base/call-ar-st.exp: set print address off
+PASS: gdb.base/call-ar-st.exp: set width 0
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1209
+PASS: gdb.base/call-ar-st.exp: run until breakpoint set at a line
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1216
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1220
+PASS: gdb.base/call-ar-st.exp: step inside print_all_arrays
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1236
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1241
+PASS: gdb.base/call-ar-st.exp: continue to 1241
+PASS: gdb.base/call-ar-st.exp: set breakpoint in sum_array_print
+PASS: gdb.base/call-ar-st.exp: set print frame-arguments all
+PASS: gdb.base/call-ar-st.exp: check args of sum_array_print
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1281
+PASS: gdb.base/call-ar-st.exp: print compute_with_small_structs(20)
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1286
+PASS: gdb.base/call-ar-st.exp: continue to 1286
+PASS: gdb.base/call-ar-st.exp: tbreak in print_long_arg_list after stepping into memcpy
+PASS: gdb.base/call-ar-st.exp: step into print_long_arg_list
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1300
+PASS: gdb.base/call-ar-st.exp: step into init_bit_flags_combo
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1305
+PASS: gdb.base/call-ar-st.exp: continue to 1305
+PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1311
+PASS: gdb.base/call-ar-st.exp: continue to 1311
+Running ./gdb.base/callexit.exp ...
+PASS: gdb.base/callexit.exp: inferior function call terminated program
+Running ./gdb.base/callfuncs.exp ...
+PASS: gdb.base/callfuncs.exp: set print sevenbit-strings
+PASS: gdb.base/callfuncs.exp: set print address off
+PASS: gdb.base/callfuncs.exp: set width 0
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: set unwindonsignal on
+PASS: gdb.base/callfuncs.exp: p t_char_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_char_values('a','b')
+PASS: gdb.base/callfuncs.exp: p t_char_values(char_val1,char_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_values('a',char_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_values(char_val1,'b')
+PASS: gdb.base/callfuncs.exp: p t_short_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_short_values(10,-23)
+PASS: gdb.base/callfuncs.exp: p t_short_values(short_val1,short_val2)
+PASS: gdb.base/callfuncs.exp: p t_short_values(10,short_val2)
+PASS: gdb.base/callfuncs.exp: p t_short_values(short_val1,-23)
+PASS: gdb.base/callfuncs.exp: p t_int_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_int_values(87,-26)
+PASS: gdb.base/callfuncs.exp: p t_int_values(int_val1,int_val2)
+PASS: gdb.base/callfuncs.exp: p t_int_values(87,int_val2)
+PASS: gdb.base/callfuncs.exp: p t_int_values(int_val1,-26)
+PASS: gdb.base/callfuncs.exp: p t_long_values(0,0)
+PASS: gdb.base/callfuncs.exp: p t_long_values(789,-321)
+PASS: gdb.base/callfuncs.exp: p t_long_values(long_val1,long_val2)
+PASS: gdb.base/callfuncs.exp: p t_long_values(789,long_val2)
+PASS: gdb.base/callfuncs.exp: p t_long_values(long_val1,-321)
+PASS: gdb.base/callfuncs.exp: p t_float_values(0.0,0.0)
+PASS: gdb.base/callfuncs.exp: p t_float_values(3.14159,-2.3765)
+PASS: gdb.base/callfuncs.exp: p t_float_values(float_val1,float_val2)
+PASS: gdb.base/callfuncs.exp: p t_float_values(3.14159,float_val2)
+PASS: gdb.base/callfuncs.exp: p t_float_values(float_val1,-2.3765)
+PASS: gdb.base/callfuncs.exp: p t_float_values2(0.0,0.0)
+PASS: gdb.base/callfuncs.exp: p t_float_values2(3.14159,float_val2)
+PASS: gdb.base/callfuncs.exp: Call function with many float arguments.
+PASS: gdb.base/callfuncs.exp: p t_small_values(1,2,3,4,5,6,7,8,9,10)
+PASS: gdb.base/callfuncs.exp: p t_double_values(0.0,0.0)
+PASS: gdb.base/callfuncs.exp: p t_double_values(45.654,-67.66)
+PASS: gdb.base/callfuncs.exp: p t_double_values(double_val1,double_val2)
+PASS: gdb.base/callfuncs.exp: p t_double_values(45.654,double_val2)
+PASS: gdb.base/callfuncs.exp: p t_double_values(double_val1,-67.66)
+PASS: gdb.base/callfuncs.exp: Call function with many double arguments.
+PASS: gdb.base/callfuncs.exp: p t_double_int(99.0, 1)
+PASS: gdb.base/callfuncs.exp: p t_double_int(99.0, 99)
+PASS: gdb.base/callfuncs.exp: p t_int_double(99, 1.0)
+PASS: gdb.base/callfuncs.exp: p t_int_double(99, 99.0)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_values(fc1, fc2)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_values(fc3, fc4)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_many_args(fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4)
+PASS: gdb.base/callfuncs.exp: p t_float_complex_many_args(fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1, fc1)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_values(dc1, dc2)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_values(dc3, dc4)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_many_args(dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4)
+PASS: gdb.base/callfuncs.exp: p t_double_complex_many_args(dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1, dc1)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_values(ldc1, ldc2)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_values(ldc3, ldc4)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_many_args(ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4)
+PASS: gdb.base/callfuncs.exp: p t_long_double_complex_many_args(ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1,ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1, ldc1)
+PASS: gdb.base/callfuncs.exp: p t_string_values(string_val2,string_val1)
+PASS: gdb.base/callfuncs.exp: p t_string_values(string_val1,string_val2)
+PASS: gdb.base/callfuncs.exp: p t_string_values("string 1","string 2")
+PASS: gdb.base/callfuncs.exp: p t_string_values("string 1",string_val2)
+PASS: gdb.base/callfuncs.exp: p t_string_values(string_val1,"string 2")
+PASS: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val2,char_array_val1)
+PASS: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val1,char_array_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_array_values("carray 1","carray 2")
+PASS: gdb.base/callfuncs.exp: p t_char_array_values("carray 1",char_array_val2)
+PASS: gdb.base/callfuncs.exp: p t_char_array_values(char_array_val1,"carray 2")
+PASS: gdb.base/callfuncs.exp: p doubleit(4)
+PASS: gdb.base/callfuncs.exp: p add(4,5)
+PASS: gdb.base/callfuncs.exp: p t_func_values(func_val2,func_val1)
+PASS: gdb.base/callfuncs.exp: p t_func_values(func_val1,func_val2)
+PASS: gdb.base/callfuncs.exp: p function_struct.func(5)
+PASS: gdb.base/callfuncs.exp: p function_struct_ptr->func(10)
+PASS: gdb.base/callfuncs.exp: p t_func_values(add,func_val2)
+PASS: gdb.base/callfuncs.exp: p t_func_values(func_val1,doubleit)
+PASS: gdb.base/callfuncs.exp: p t_call_add(add,3,4)
+PASS: gdb.base/callfuncs.exp: p t_call_add(func_val1,3,4)
+PASS: gdb.base/callfuncs.exp: p t_enum_value1(enumval1)
+PASS: gdb.base/callfuncs.exp: p t_enum_value1(enum_val1)
+PASS: gdb.base/callfuncs.exp: p t_enum_value1(enum_val2)
+PASS: gdb.base/callfuncs.exp: p t_enum_value2(enumval2)
+PASS: gdb.base/callfuncs.exp: p t_enum_value2(enum_val2)
+PASS: gdb.base/callfuncs.exp: p t_enum_value2(enum_val1)
+PASS: gdb.base/callfuncs.exp: p sum_args(1,{2})
+PASS: gdb.base/callfuncs.exp: p sum_args(2,{2,3})
+PASS: gdb.base/callfuncs.exp: p sum_args(3,{2,3,4})
+PASS: gdb.base/callfuncs.exp: p sum_args(4,{2,3,4,5})
+PASS: gdb.base/callfuncs.exp: p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
+PASS: gdb.base/callfuncs.exp: p cmp10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns char
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns short
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns int
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns long
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns float
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns double
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns float _Complex
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns double _Complex
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns long double _Complex
+PASS: gdb.base/callfuncs.exp: call inferior func with struct - returns char *
+PASS: gdb.base/callfuncs.exp: set unwindonsignal off
+PASS: gdb.base/callfuncs.exp: register contents after gdb function calls
+PASS: gdb.base/callfuncs.exp: gdb function calls preserve register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: stop at breakpoint in call dummy function
+PASS: gdb.base/callfuncs.exp: continue from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: bt after continuing from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: register contents after stop in call dummy
+PASS: gdb.base/callfuncs.exp: continue after stop in call dummy preserves register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: call function causing a breakpoint then do a finish
+PASS: gdb.base/callfuncs.exp: finish from call dummy breakpoint returns correct value
+PASS: gdb.base/callfuncs.exp: bt after finishing from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: register contents after finish in call dummy
+PASS: gdb.base/callfuncs.exp: finish after stop in call dummy preserves register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: call function causing a breakpoint and then do a return
+PASS: gdb.base/callfuncs.exp: back at main after return from call dummy breakpoint
+PASS: gdb.base/callfuncs.exp: register contents after return in call dummy
+PASS: gdb.base/callfuncs.exp: return after stop in call dummy preserves register contents
+PASS: gdb.base/callfuncs.exp: set language c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: retrieve original register contents
+PASS: gdb.base/callfuncs.exp: stop at nested call level 1
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 1
+PASS: gdb.base/callfuncs.exp: stop at nested call level 2
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 2
+PASS: gdb.base/callfuncs.exp: stop at nested call level 3
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 3
+PASS: gdb.base/callfuncs.exp: stop at nested call level 4
+PASS: gdb.base/callfuncs.exp: backtrace at nested call level 4
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 4
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 4
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 3
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 3
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 2
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 2
+PASS: gdb.base/callfuncs.exp: Finish from nested call level 1
+PASS: gdb.base/callfuncs.exp: backtrace after finish from nested call level 1
+PASS: gdb.base/callfuncs.exp: register contents after nested call dummies
+PASS: gdb.base/callfuncs.exp: nested call dummies preserve register contents
+PASS: gdb.base/callfuncs.exp: set $old_sp = $sp
+PASS: gdb.base/callfuncs.exp: set $sp = 0
+PASS: gdb.base/callfuncs.exp: sp == 0: call doubleit (1)
+PASS: gdb.base/callfuncs.exp: set $sp = -1
+PASS: gdb.base/callfuncs.exp: sp == -1: call doubleit (1)
+PASS: gdb.base/callfuncs.exp: set $sp = $old_sp
+PASS: gdb.base/callfuncs.exp: print callfunc (Lcallfunc, 5)
+PASS: gdb.base/callfuncs.exp: print *((int *(*) (void)) voidfunc)()
+Running ./gdb.base/call-rt-st.exp ...
+PASS: gdb.base/call-rt-st.exp: set print sevenbit-strings
+PASS: gdb.base/call-rt-st.exp: set print address off
+PASS: gdb.base/call-rt-st.exp: set width 0
+PASS: gdb.base/call-rt-st.exp: breakpoint loop_count
+PASS: gdb.base/call-rt-st.exp: continue to loop_count
+PASS: gdb.base/call-rt-st.exp: finish out from loop_count (line 777)
+Running ./gdb.base/call-sc.exp ...
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tc (char)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tc char
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tc
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tc
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tc
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tc
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tc
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tc
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tc
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tc
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tc
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tc
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tc
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tc
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-ts (short int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-ts short int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-ts
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-ts
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-ts
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ts
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-ts
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-ts
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-ts
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ts
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-ts
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-ts
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-ts
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-ts
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-ti (int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-ti int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-ti
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-ti
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-ti
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ti
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-ti
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-ti
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-ti
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ti
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-ti
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-ti
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-ti
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-ti
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tl (long int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tl long int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tl
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tl
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tl
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tl
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tl
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tl
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tl
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tl
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tl
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tl
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tl
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tl
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tll (long long int)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tll long long int
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tll
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tll
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tll
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tll
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tll
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tll
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tll
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tll
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tll
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tll
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tll
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tll
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tf (float)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tf float
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tf
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tf
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tf
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tf
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tf
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tf
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tf
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tf
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tf
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tf
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tf
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tf
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-td (double)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-td double
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-td
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-td
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-td
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-td
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-td
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-td
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-td
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-td
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-td
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-td
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-td
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-td
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-tld (long double)
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-tld long double
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-tld
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-tld
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-tld
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tld
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-tld
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-tld
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-tld
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tld
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-tld
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-tld
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-tld
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-tld
+PASS: gdb.base/call-sc.exp: set print sevenbit-strings
+PASS: gdb.base/call-sc.exp: set print address off
+PASS: gdb.base/call-sc.exp: set width 0
+PASS: gdb.base/call-sc.exp: ptype; call-sc-te (enum {e = 49})
+PASS: gdb.base/call-sc.exp: ptype foo; call-sc-te enum {e = 49}
+PASS: gdb.base/call-sc.exp: p/c fun(); call call-sc-te
+PASS: gdb.base/call-sc.exp: call Fun(foo); call call-sc-te
+PASS: gdb.base/call-sc.exp: p/c L; call call-sc-te
+PASS: gdb.base/call-sc.exp: advance to fun for return; return call-sc-te
+PASS: gdb.base/call-sc.exp: zed L for return; return call-sc-te
+PASS: gdb.base/call-sc.exp: return foo; return call-sc-te
+PASS: gdb.base/call-sc.exp: return foo; synchronize pc to main()
+PASS: gdb.base/call-sc.exp: value foo returned; return call-sc-te
+PASS: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-te
+PASS: gdb.base/call-sc.exp: zed L for finish; return call-sc-te
+PASS: gdb.base/call-sc.exp: finish foo; return call-sc-te
+PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-te
+PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-te
+Running ./gdb.base/call-signal-resume.exp ...
+Running ./gdb.base/call-strs.exp ...
+PASS: gdb.base/call-strs.exp: set print sevenbit-strings
+PASS: gdb.base/call-strs.exp: set print address off
+PASS: gdb.base/call-strs.exp: set print symbol off
+PASS: gdb.base/call-strs.exp: set width 0
+PASS: gdb.base/call-strs.exp: step after assignment to s
+PASS: gdb.base/call-strs.exp: next over strcpy
+PASS: gdb.base/call-strs.exp: print buf
+PASS: gdb.base/call-strs.exp: print s
+Running ./gdb.base/catch-load.exp ...
+PASS: gdb.base/catch-load.exp: plain load: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain load: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: plain load: catch load
+PASS: gdb.base/catch-load.exp: plain load: continue
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: catch load
+PASS: gdb.base/catch-load.exp: plain load with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: rx load: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx load: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: rx load: catch load catch-load-so
+PASS: gdb.base/catch-load.exp: rx load: continue
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: catch load catch-load-so
+PASS: gdb.base/catch-load.exp: rx load with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: non-matching load: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching load: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: non-matching load: catch load zardoz
+PASS: gdb.base/catch-load.exp: non-matching load: continue
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: catch load zardoz
+PASS: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: plain unload: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain unload: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: plain unload: catch unload
+PASS: gdb.base/catch-load.exp: plain unload: continue
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: catch unload
+PASS: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: rx unload: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx unload: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: rx unload: catch unload catch-load-so
+PASS: gdb.base/catch-load.exp: rx unload: continue
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: catch unload catch-load-so
+PASS: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: continue
+PASS: gdb.base/catch-load.exp: non-matching unload: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching unload: set stop-on-solib-events 0
+PASS: gdb.base/catch-load.exp: non-matching unload: catch unload zardoz
+PASS: gdb.base/catch-load.exp: non-matching unload: continue
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: set var libname = "catch-load-so.so"
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: set stop-on-solib-events 1
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: catch unload zardoz
+PASS: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: continue
+Running ./gdb.base/catch-signal.exp ...
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: first HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: handle SIGHUP nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP: catch signal
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: handle marker
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: second HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: catch signal SIGHUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: third HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP: handle SIGUSR1 nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP: catch signal SIGUSR1
+PASS: gdb.base/catch-signal.exp: SIGHUP: handle SIGHUP nostop noprint nopass
+PASS: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: fourth HUP
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: first HUP
+PASS: gdb.base/catch-signal.exp: 1: handle SIGHUP nostop noprint pass
+PASS: gdb.base/catch-signal.exp: 1: catch signal
+PASS: gdb.base/catch-signal.exp: 1: continue
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: handle marker
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: second HUP
+PASS: gdb.base/catch-signal.exp: 1: catch signal 1
+PASS: gdb.base/catch-signal.exp: 1: continue
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: third HUP
+PASS: gdb.base/catch-signal.exp: 1: handle SIGUSR1 nostop noprint pass
+PASS: gdb.base/catch-signal.exp: 1: catch signal SIGUSR1
+PASS: gdb.base/catch-signal.exp: 1: handle SIGHUP nostop noprint nopass
+PASS: gdb.base/catch-signal.exp: 1: continue to breakpoint: fourth HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: first HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGHUP nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: catch signal
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: handle marker
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: second HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: catch signal SIGHUP SIGUSR2
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: third HUP
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGUSR1 nostop noprint pass
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: catch signal SIGUSR1
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGHUP nostop noprint nopass
+PASS: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: fourth HUP
+PASS: gdb.base/catch-signal.exp: catch signal SIGZARDOZ
+PASS: gdb.base/catch-signal.exp: catch signal all
+PASS: gdb.base/catch-signal.exp: catch signal all SIGHUP
+PASS: gdb.base/catch-signal.exp: catch signal SIGHUP all
+PASS: gdb.base/catch-signal.exp: set catchpoint '' for printing
+PASS: gdb.base/catch-signal.exp: info break for ''
+PASS: gdb.base/catch-signal.exp: save breakpoints for ''
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for ''
+PASS: gdb.base/catch-signal.exp: set catchpoint 'SIGHUP' for printing
+PASS: gdb.base/catch-signal.exp: info break for 'SIGHUP'
+PASS: gdb.base/catch-signal.exp: save breakpoints for 'SIGHUP'
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for 'SIGHUP'
+PASS: gdb.base/catch-signal.exp: set catchpoint 'SIGHUP SIGUSR2' for printing
+PASS: gdb.base/catch-signal.exp: info break for 'SIGHUP SIGUSR2'
+PASS: gdb.base/catch-signal.exp: save breakpoints for 'SIGHUP SIGUSR2'
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for 'SIGHUP SIGUSR2'
+PASS: gdb.base/catch-signal.exp: set catchpoint 'all' for printing
+PASS: gdb.base/catch-signal.exp: info break for 'all'
+PASS: gdb.base/catch-signal.exp: save breakpoints for 'all'
+PASS: gdb.base/catch-signal.exp: results of save breakpoints for 'all'
+Running ./gdb.base/catch-syscall.exp ...
+Running ./gdb.base/charset.exp ...
+PASS: gdb.base/charset.exp: show charset
+PASS: gdb.base/charset.exp: show target-charset
+PASS: gdb.base/charset.exp: check `show target-charset' against `show charset'
+PASS: gdb.base/charset.exp: show host-charset
+PASS: gdb.base/charset.exp: check `show host-charset' against `show charset'
+PASS: gdb.base/charset.exp: try malformed `set charset'
+PASS: gdb.base/charset.exp: try `set host-charset' with invalid charset
+PASS: gdb.base/charset.exp: try `set target-charset' with invalid charset
+PASS: gdb.base/charset.exp: capture valid host charsets
+PASS: gdb.base/charset.exp: capture valid target charsets
+PASS: gdb.base/charset.exp: try `set host-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set host-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set host-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set host-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set host-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set host-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set host-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set host-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set host-charset IBM1047'
+PASS: gdb.base/charset.exp: try `set target-charset ASCII'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ASCII'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ASCII'
+PASS: gdb.base/charset.exp: try `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: check effect of `set target-charset ISO-8859-1'
+PASS: gdb.base/charset.exp: try `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: check effect of `set target-charset EBCDIC-US'
+PASS: gdb.base/charset.exp: try `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: parse `show charset' after `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: check effect of `set target-charset IBM1047'
+PASS: gdb.base/charset.exp: set breakpoint after all strings have been initialized
+PASS: gdb.base/charset.exp: run until all strings have been initialized
+PASS: gdb.base/charset.exp: get integer valueof "sizeof (wchar_t)" (4)
+PASS: gdb.base/charset.exp: set host-charset ASCII
+PASS: gdb.base/charset.exp: set target-charset ASCII
+PASS: gdb.base/charset.exp: print the null character in ASCII
+PASS: gdb.base/charset.exp: print string in ASCII
+PASS: gdb.base/charset.exp: parse character literal in ASCII
+PASS: gdb.base/charset.exp: check value of parsed character literal in ASCII
+PASS: gdb.base/charset.exp: parse string literal in ASCII
+PASS: gdb.base/charset.exp: check value of parsed string literal in ASCII
+PASS: gdb.base/charset.exp: try printing '\a' in ASCII
+PASS: gdb.base/charset.exp: check value of '\a' in ASCII
+PASS: gdb.base/charset.exp: check value of "\a" in ASCII
+PASS: gdb.base/charset.exp: try printing '\b' in ASCII
+PASS: gdb.base/charset.exp: check value of '\b' in ASCII
+PASS: gdb.base/charset.exp: check value of "\b" in ASCII
+PASS: gdb.base/charset.exp: try printing '\f' in ASCII
+PASS: gdb.base/charset.exp: check value of '\f' in ASCII
+PASS: gdb.base/charset.exp: check value of "\f" in ASCII
+PASS: gdb.base/charset.exp: try printing '\n' in ASCII
+PASS: gdb.base/charset.exp: check value of '\n' in ASCII
+PASS: gdb.base/charset.exp: check value of "\n" in ASCII
+PASS: gdb.base/charset.exp: try printing '\r' in ASCII
+PASS: gdb.base/charset.exp: check value of '\r' in ASCII
+PASS: gdb.base/charset.exp: check value of "\r" in ASCII
+PASS: gdb.base/charset.exp: try printing '\t' in ASCII
+PASS: gdb.base/charset.exp: check value of '\t' in ASCII
+PASS: gdb.base/charset.exp: check value of "\t" in ASCII
+PASS: gdb.base/charset.exp: try printing '\v' in ASCII
+PASS: gdb.base/charset.exp: check value of '\v' in ASCII
+PASS: gdb.base/charset.exp: check value of "\v" in ASCII
+PASS: gdb.base/charset.exp: print escape that doesn't exist in ASCII
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in ASCII
+PASS: gdb.base/charset.exp: set target-charset ISO-8859-1
+PASS: gdb.base/charset.exp: print the null character in ISO-8859-1
+PASS: gdb.base/charset.exp: print string in ISO-8859-1
+PASS: gdb.base/charset.exp: parse character literal in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of parsed character literal in ISO-8859-1
+PASS: gdb.base/charset.exp: parse string literal in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of parsed string literal in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\a' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\a' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\a" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\b' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\b' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\b" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\f' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\f' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\f" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\n' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\n' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\n" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\r' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\r' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\r" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\t' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\t' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\t" in ISO-8859-1
+PASS: gdb.base/charset.exp: try printing '\v' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of '\v' in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of "\v" in ISO-8859-1
+PASS: gdb.base/charset.exp: print escape that doesn't exist in ISO-8859-1
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in ISO-8859-1
+PASS: gdb.base/charset.exp: set target-charset EBCDIC-US
+PASS: gdb.base/charset.exp: print the null character in EBCDIC-US
+PASS: gdb.base/charset.exp: print string in EBCDIC-US
+PASS: gdb.base/charset.exp: parse character literal in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of parsed character literal in EBCDIC-US
+PASS: gdb.base/charset.exp: parse string literal in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of parsed string literal in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\a' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\a' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\a" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\b' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\b' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\b" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\f' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\f' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\f" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\n' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\n' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\n" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\r' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\r' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\r" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\t' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\t' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\t" in EBCDIC-US
+PASS: gdb.base/charset.exp: try printing '\v' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of '\v' in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of "\v" in EBCDIC-US
+PASS: gdb.base/charset.exp: print escape that doesn't exist in EBCDIC-US
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in EBCDIC-US
+PASS: gdb.base/charset.exp: set target-charset IBM1047
+PASS: gdb.base/charset.exp: print the null character in IBM1047
+PASS: gdb.base/charset.exp: print string in IBM1047
+PASS: gdb.base/charset.exp: parse character literal in IBM1047
+PASS: gdb.base/charset.exp: check value of parsed character literal in IBM1047
+PASS: gdb.base/charset.exp: parse string literal in IBM1047
+PASS: gdb.base/charset.exp: check value of parsed string literal in IBM1047
+PASS: gdb.base/charset.exp: try printing '\a' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\a' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\a" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\b' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\b' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\b" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\f' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\f' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\f" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\n' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\n' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\n" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\r' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\r' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\r" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\t' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\t' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\t" in IBM1047
+PASS: gdb.base/charset.exp: try printing '\v' in IBM1047
+PASS: gdb.base/charset.exp: check value of '\v' in IBM1047
+PASS: gdb.base/charset.exp: check value of "\v" in IBM1047
+PASS: gdb.base/charset.exp: print escape that doesn't exist in IBM1047
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in IBM1047
+PASS: gdb.base/charset.exp: set target-wide-charset UTF-32
+PASS: gdb.base/charset.exp: print the null character in UTF-32
+PASS: gdb.base/charset.exp: print string in UTF-32
+PASS: gdb.base/charset.exp: parse character literal in UTF-32
+PASS: gdb.base/charset.exp: check value of parsed character literal in UTF-32
+PASS: gdb.base/charset.exp: parse string literal in UTF-32
+PASS: gdb.base/charset.exp: check value of parsed string literal in UTF-32
+PASS: gdb.base/charset.exp: try printing '\a' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\a' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\a" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\b' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\b' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\b" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\f' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\f' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\f" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\n' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\n' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\n" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\r' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\r' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\r" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\t' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\t' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\t" in UTF-32
+PASS: gdb.base/charset.exp: try printing '\v' in UTF-32
+PASS: gdb.base/charset.exp: check value of '\v' in UTF-32
+PASS: gdb.base/charset.exp: check value of "\v" in UTF-32
+PASS: gdb.base/charset.exp: print escape that doesn't exist in UTF-32
+PASS: gdb.base/charset.exp: check value of escape that doesn't exist in UTF-32
+PASS: gdb.base/charset.exp: set target-charset UTF-8
+PASS: gdb.base/charset.exp: non-representable target character
+PASS: gdb.base/charset.exp: print '\x'
+PASS: gdb.base/charset.exp: print '\u'
+PASS: gdb.base/charset.exp: print '\9'
+PASS: gdb.base/charset.exp: print "\1011"
+PASS: gdb.base/charset.exp: basic wide string concatenation
+PASS: gdb.base/charset.exp: narrow and wide string concatenation
+PASS: gdb.base/charset.exp: wide and narrow string concatenation
+PASS: gdb.base/charset.exp: wide string concatenation with escape
+PASS: gdb.base/charset.exp: concatenate three strings with empty wide string
+PASS: gdb.base/charset.exp: basic wide character
+PASS: gdb.base/charset.exp: get integer valueof "sizeof (char16_t)" (2)
+PASS: gdb.base/charset.exp: basic UTF-16 string concatenation
+PASS: gdb.base/charset.exp: narrow and UTF-16 string concatenation
+PASS: gdb.base/charset.exp: UTF-16 and narrow string concatenation
+PASS: gdb.base/charset.exp: UTF-16 string concatenation with escape
+PASS: gdb.base/charset.exp: concatenate three strings with empty UTF-16 string
+PASS: gdb.base/charset.exp: basic UTF-16 character
+PASS: gdb.base/charset.exp: get integer valueof "sizeof (char32_t)" (4)
+PASS: gdb.base/charset.exp: basic UTF-32 string concatenation
+PASS: gdb.base/charset.exp: narrow and UTF-32 string concatenation
+PASS: gdb.base/charset.exp: UTF-32 and narrow string concatenation
+PASS: gdb.base/charset.exp: UTF-32 string concatenation with escape
+PASS: gdb.base/charset.exp: concatenate three strings with empty UTF-32 string
+PASS: gdb.base/charset.exp: basic UTF-32 character
+PASS: gdb.base/charset.exp: undefined concatenation of wide and UTF-16
+PASS: gdb.base/charset.exp: undefined concatenation of wide and UTF-32
+PASS: gdb.base/charset.exp: typedef to wchar_t
+PASS: gdb.base/charset.exp: undefined concatenation of UTF-16 and UTF-32
+PASS: gdb.base/charset.exp: set up for python printing of utf-16 string
+PASS: gdb.base/charset.exp: extract utf-16 string using python
+PASS: gdb.base/charset.exp: EVAL_SKIP cleanup handling regression test
+PASS: gdb.base/charset.exp: Assign String16 with prefix u
+PASS: gdb.base/charset.exp: Display String String16 with x/hs
+PASS: gdb.base/charset.exp: Assign String32 with prefix U
+PASS: gdb.base/charset.exp: Display String String32 with x/ws
+PASS: gdb.base/charset.exp: Assign String32 with prefix L
+PASS: gdb.base/charset.exp: Display String String32 with x/ws
+PASS: gdb.base/charset.exp: assign string to short array
+PASS: gdb.base/charset.exp: assign string to int array
+PASS: gdb.base/charset.exp: assign string to long array
+Running ./gdb.base/checkpoint.exp ...
+Running ./gdb.base/chng-syms.exp ...
+PASS: gdb.base/chng-syms.exp: setting conditional breakpoint on function
+PASS: gdb.base/chng-syms.exp: continue until exit at breakpoint first time through
+PASS: gdb.base/chng-syms.exp: running with invalidated bpt condition after executable changes
+Running ./gdb.base/code_elim.exp ...
+PASS: gdb.base/code_elim.exp: symbol-file code_elim1
+PASS: gdb.base/code_elim.exp: single psymtabs: test eliminated var my_global_symbol
+PASS: gdb.base/code_elim.exp: single psymtabs: test eliminated var my_static_symbol
+PASS: gdb.base/code_elim.exp: single psymtabs: test eliminated var my_global_func
+PASS: gdb.base/code_elim.exp: single psymtabs: get address of main
+PASS: gdb.base/code_elim.exp: single symtabs: test eliminated var my_global_symbol
+PASS: gdb.base/code_elim.exp: single symtabs: test eliminated var my_static_symbol
+PASS: gdb.base/code_elim.exp: single symtabs: test eliminated var my_global_func
+PASS: gdb.base/code_elim.exp: single symtabs: get address of main
+PASS: gdb.base/code_elim.exp: order1: add-symbol-file code_elim1 0x100000
+PASS: gdb.base/code_elim.exp: order1: add-symbol-file code_elim2 0x200000
+PASS: gdb.base/code_elim.exp: order1: get address of my_global_symbol
+PASS: gdb.base/code_elim.exp: order1: get address of my_static_symbol
+PASS: gdb.base/code_elim.exp: order1: get address of my_global_func
+PASS: gdb.base/code_elim.exp: order1: get address of main
+PASS: gdb.base/code_elim.exp: order2: add-symbol-file code_elim2 0x200000
+PASS: gdb.base/code_elim.exp: order2: add-symbol-file code_elim1 0x100000
+PASS: gdb.base/code_elim.exp: order2: get address of my_global_symbol
+PASS: gdb.base/code_elim.exp: order2: get address of my_static_symbol
+PASS: gdb.base/code_elim.exp: order2: get address of my_global_func
+PASS: gdb.base/code_elim.exp: order2: get address of main
+Running ./gdb.base/code-expr.exp ...
+PASS: gdb.base/code-expr.exp: set print sevenbit-strings
+PASS: gdb.base/code-expr.exp: set print address off
+PASS: gdb.base/code-expr.exp: set width 0
+PASS: gdb.base/code-expr.exp: (@code char)
+PASS: gdb.base/code-expr.exp: (@code signed char)
+PASS: gdb.base/code-expr.exp: (@code unsigned char)
+PASS: gdb.base/code-expr.exp: (@code short)
+PASS: gdb.base/code-expr.exp: (@code signed short)
+PASS: gdb.base/code-expr.exp: (@code unsigned short)
+PASS: gdb.base/code-expr.exp: (@code int)
+PASS: gdb.base/code-expr.exp: (@code signed int)
+PASS: gdb.base/code-expr.exp: (@code unsigned int)
+PASS: gdb.base/code-expr.exp: (@code long)
+PASS: gdb.base/code-expr.exp: (@code signed long)
+PASS: gdb.base/code-expr.exp: (@code unsigned long)
+PASS: gdb.base/code-expr.exp: (@code long long)
+PASS: gdb.base/code-expr.exp: (@code signed long long)
+PASS: gdb.base/code-expr.exp: (@code unsigned long long)
+PASS: gdb.base/code-expr.exp: (@code float)
+PASS: gdb.base/code-expr.exp: (@code double)
+PASS: gdb.base/code-expr.exp: (@data char)
+PASS: gdb.base/code-expr.exp: (@data signed char)
+PASS: gdb.base/code-expr.exp: (@data unsigned char)
+PASS: gdb.base/code-expr.exp: (@data short)
+PASS: gdb.base/code-expr.exp: (@data signed short)
+PASS: gdb.base/code-expr.exp: (@data unsigned short)
+PASS: gdb.base/code-expr.exp: (@data int)
+PASS: gdb.base/code-expr.exp: (@data signed int)
+PASS: gdb.base/code-expr.exp: (@data unsigned int)
+PASS: gdb.base/code-expr.exp: (@data long)
+PASS: gdb.base/code-expr.exp: (@data signed long)
+PASS: gdb.base/code-expr.exp: (@data unsigned long)
+PASS: gdb.base/code-expr.exp: (@data long long)
+PASS: gdb.base/code-expr.exp: (@data signed long long)
+PASS: gdb.base/code-expr.exp: (@data unsigned long long)
+PASS: gdb.base/code-expr.exp: (@data float)
+PASS: gdb.base/code-expr.exp: (@data double)
+PASS: gdb.base/code-expr.exp: (char @code)
+PASS: gdb.base/code-expr.exp: (signed char @code)
+PASS: gdb.base/code-expr.exp: (unsigned char @code)
+PASS: gdb.base/code-expr.exp: (short @code)
+PASS: gdb.base/code-expr.exp: (signed short @code)
+PASS: gdb.base/code-expr.exp: (unsigned short @code)
+PASS: gdb.base/code-expr.exp: (int @code)
+PASS: gdb.base/code-expr.exp: (signed int @code)
+PASS: gdb.base/code-expr.exp: (unsigned int @code)
+PASS: gdb.base/code-expr.exp: (long @code)
+PASS: gdb.base/code-expr.exp: (signed long @code)
+PASS: gdb.base/code-expr.exp: (unsigned long @code)
+PASS: gdb.base/code-expr.exp: (long long @code)
+PASS: gdb.base/code-expr.exp: (signed long long @code)
+PASS: gdb.base/code-expr.exp: (unsigned long long @code)
+PASS: gdb.base/code-expr.exp: (float @code)
+PASS: gdb.base/code-expr.exp: (double @code)
+PASS: gdb.base/code-expr.exp: (char @data)
+PASS: gdb.base/code-expr.exp: (signed char @data)
+PASS: gdb.base/code-expr.exp: (unsigned char @data)
+PASS: gdb.base/code-expr.exp: (short @data)
+PASS: gdb.base/code-expr.exp: (signed short @data)
+PASS: gdb.base/code-expr.exp: (unsigned short @data)
+PASS: gdb.base/code-expr.exp: (int @data)
+PASS: gdb.base/code-expr.exp: (signed int @data)
+PASS: gdb.base/code-expr.exp: (unsigned int @data)
+PASS: gdb.base/code-expr.exp: (long @data)
+PASS: gdb.base/code-expr.exp: (signed long @data)
+PASS: gdb.base/code-expr.exp: (unsigned long @data)
+PASS: gdb.base/code-expr.exp: (long long @data)
+PASS: gdb.base/code-expr.exp: (signed long long @data)
+PASS: gdb.base/code-expr.exp: (unsigned long long @data)
+PASS: gdb.base/code-expr.exp: (float @data)
+PASS: gdb.base/code-expr.exp: (double @data)
+PASS: gdb.base/code-expr.exp: (@code enum misordered)
+PASS: gdb.base/code-expr.exp: (enum misordered @code)
+PASS: gdb.base/code-expr.exp: (@data enum misordered)
+PASS: gdb.base/code-expr.exp: (enum misordered @data)
+PASS: gdb.base/code-expr.exp: (@code int *)
+PASS: gdb.base/code-expr.exp: (int @code *)
+PASS: gdb.base/code-expr.exp: (int * @code)
+PASS: gdb.base/code-expr.exp: (@code int * @code)
+PASS: gdb.base/code-expr.exp: (int @code * @code)
+PASS: gdb.base/code-expr.exp: (@code int **)
+PASS: gdb.base/code-expr.exp: (int @code **)
+PASS: gdb.base/code-expr.exp: (int ** @code)
+PASS: gdb.base/code-expr.exp: (@code int * @code *)
+PASS: gdb.base/code-expr.exp: (int @code * @code *)
+PASS: gdb.base/code-expr.exp: (@code int * @code * @code)
+PASS: gdb.base/code-expr.exp: (int @code * @code * @code)
+PASS: gdb.base/code-expr.exp: (@code struct t_struct)
+PASS: gdb.base/code-expr.exp: (@code union t_union)
+PASS: gdb.base/code-expr.exp: (struct t_struct @code)
+PASS: gdb.base/code-expr.exp: (union t_union @code)
+PASS: gdb.base/code-expr.exp: (@code struct t_struct *)
+PASS: gdb.base/code-expr.exp: (@code union t_union *)
+PASS: gdb.base/code-expr.exp: (struct t_struct @code *)
+PASS: gdb.base/code-expr.exp: (union t_union @code *)
+PASS: gdb.base/code-expr.exp: (struct t_struct * @code)
+PASS: gdb.base/code-expr.exp: (union t_union * @code)
+PASS: gdb.base/code-expr.exp: (@code struct t_struct * @code)
+PASS: gdb.base/code-expr.exp: (@code union t_union * @code)
+PASS: gdb.base/code-expr.exp: (struct t_struct @code * @code)
+PASS: gdb.base/code-expr.exp: (union t_union @code * @code)
+Running ./gdb.base/commands.exp ...
+PASS: gdb.base/commands.exp: set foo in gdbvar_simple_if_test
+PASS: gdb.base/commands.exp: gdbvar_simple_if_test #1
+PASS: gdb.base/commands.exp: gdbvar_simple_if_test #2
+PASS: gdb.base/commands.exp: set foo in gdbvar_simple_while_test
+PASS: gdb.base/commands.exp: gdbvar_simple_while_test #1
+PASS: gdb.base/commands.exp: set foo in gdbvar complex_if_while_test
+PASS: gdb.base/commands.exp: gdbvar_complex_if_while_test #1
+PASS: gdb.base/commands.exp: set foo in user_defined_command_test
+PASS: gdb.base/commands.exp: define mycommand in user_defined_command_test
+PASS: gdb.base/commands.exp: enter commands in user_defined_command_test
+PASS: gdb.base/commands.exp: execute user defined command in user_defined_command_test
+PASS: gdb.base/commands.exp: display user command in user_defined_command_test
+PASS: gdb.base/commands.exp: tried to deprecate non-existing command
+PASS: gdb.base/commands.exp: maintenance deprecate p "new_p" /1/
+PASS: gdb.base/commands.exp: p deprecated warning, with replacement
+PASS: gdb.base/commands.exp: Deprecated warning goes away /1/
+PASS: gdb.base/commands.exp: maintenance deprecate p "new_p" /2/
+PASS: gdb.base/commands.exp: maintenance deprecate print "new_print"
+PASS: gdb.base/commands.exp: both alias and command are deprecated
+PASS: gdb.base/commands.exp: Deprecated warning goes away /2/
+PASS: gdb.base/commands.exp: deprecate long command /1/
+PASS: gdb.base/commands.exp: long command deprecated /1/
+PASS: gdb.base/commands.exp: deprecate long command /2/
+PASS: gdb.base/commands.exp: long command deprecated with no alternative /2/
+PASS: gdb.base/commands.exp: deprecate with no arguments
+PASS: gdb.base/commands.exp: stray_arg0_test #1
+PASS: gdb.base/commands.exp: stray_arg0_test #2
+PASS: gdb.base/commands.exp: stray_arg0_test #3
+PASS: gdb.base/commands.exp: stray_arg0_test #4
+PASS: gdb.base/commands.exp: source file with indented comment
+PASS: gdb.base/commands.exp: recursive source test
+PASS: gdb.base/commands.exp: set $tem in if_commands_test
+PASS: gdb.base/commands.exp: if $tem == 2 - if_commands_test 1
+PASS: gdb.base/commands.exp: break main - if_commands_test 1
+PASS: gdb.base/commands.exp: else - if_commands_test 1
+PASS: gdb.base/commands.exp: break factorial - if_commands_test 1
+PASS: gdb.base/commands.exp: commands - if_commands_test 1
+PASS: gdb.base/commands.exp: silent - if_commands_test 1
+PASS: gdb.base/commands.exp: set $tem = 3 - if_commands_test 1
+PASS: gdb.base/commands.exp: continue - if_commands_test 1
+PASS: gdb.base/commands.exp: first end - if_commands_test 1
+PASS: gdb.base/commands.exp: second end - if_commands_test 1
+PASS: gdb.base/commands.exp: if $tem == 1 - if_commands_test 2
+PASS: gdb.base/commands.exp: break main - if_commands_test 2
+PASS: gdb.base/commands.exp: else - if_commands_test 2
+PASS: gdb.base/commands.exp: break factorial - if_commands_test 2
+PASS: gdb.base/commands.exp: commands - if_commands_test 2
+PASS: gdb.base/commands.exp: silent - if_commands_test 2
+PASS: gdb.base/commands.exp: set $tem = 3 - if_commands_test 2
+PASS: gdb.base/commands.exp: continue - if_commands_test 2
+PASS: gdb.base/commands.exp: first end - if_commands_test 2
+PASS: gdb.base/commands.exp: second end - if_commands_test 2
+PASS: gdb.base/commands.exp: hook-stop 1
+PASS: gdb.base/commands.exp: hook-stop 1a
+PASS: gdb.base/commands.exp: hook-stop 1b
+PASS: gdb.base/commands.exp: main commands 1
+PASS: gdb.base/commands.exp: main commands 1a
+PASS: gdb.base/commands.exp: main commands 1b
+PASS: gdb.base/commands.exp: main commands 1c
+PASS: gdb.base/commands.exp: main commands 2
+PASS: gdb.base/commands.exp: main commands 2a
+PASS: gdb.base/commands.exp: main commands 2b
+PASS: gdb.base/commands.exp: main commands 2c
+PASS: gdb.base/commands.exp: cmd1 error
+PASS: gdb.base/commands.exp: no cmd2
+PASS: gdb.base/commands.exp: define one
+PASS: gdb.base/commands.exp: define hook-one
+PASS: gdb.base/commands.exp: define one in redefine_hook_test
+PASS: gdb.base/commands.exp: enter commands for one redefinition in redefine_hook_test
+PASS: gdb.base/commands.exp: execute one command in redefine_hook_test
+PASS: gdb.base/commands.exp: define backtrace
+PASS: gdb.base/commands.exp: expect response to define backtrace
+PASS: gdb.base/commands.exp: enter commands in redefine_backtrace_test
+PASS: gdb.base/commands.exp: execute backtrace command in redefine_backtrace_test
+PASS: gdb.base/commands.exp: execute bt command in redefine_backtrace_test
+Running ./gdb.base/completion.exp ...
+PASS: gdb.base/completion.exp: complete 'hfgfh'
+PASS: gdb.base/completion.exp: complete 'show output'
+PASS: gdb.base/completion.exp: complete 'show output-'
+PASS: gdb.base/completion.exp: complete 'p'
+PASS: gdb.base/completion.exp: complete 'p '
+PASS: gdb.base/completion.exp: complete 'info t foo'
+PASS: gdb.base/completion.exp: complete 'info t'
+PASS: gdb.base/completion.exp: complete 'info t '
+PASS: gdb.base/completion.exp: complete 'info asdfgh'
+PASS: gdb.base/completion.exp: complete 'info asdfgh '
+PASS: gdb.base/completion.exp: complete 'info'
+PASS: gdb.base/completion.exp: complete 'info '
+PASS: gdb.base/completion.exp: complete (2) 'info '
+PASS: gdb.base/completion.exp: complete 'help info wat'
+PASS: gdb.base/completion.exp: complete 'p "break1'
+XFAIL: gdb.base/completion.exp: complete 'p "break1.'
+PASS: gdb.base/completion.exp: complete 'p 'arg'
+PASS: gdb.base/completion.exp: complete (2) 'p 'arg'
+PASS: gdb.base/completion.exp: complete 'handle signal'
+PASS: gdb.base/completion.exp: complete 'handle keyword'
+PASS: gdb.base/completion.exp: complete help aliases
+PASS: gdb.base/completion.exp: complete 'p no_var_named_this-arg'
+PASS: gdb.base/completion.exp: complete (2) 'p no_var_named_this-arg'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: complete (2) 'p no_var_named_this-'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: complete 'p values[0].a'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: complete 'p values[0] . a'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: complete 'p &values[0] -> a'
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: completion of field in anonymous union
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: ptype completion of field in anonymous union
+ERROR: internal buffer is full.
+UNRESOLVED: gdb.base/completion.exp: whatis completion of field in anonymous union
+PASS: gdb.base/completion.exp: cd to ${srcdir}
+PASS: gdb.base/completion.exp: directory completion
+PASS: gdb.base/completion.exp: directory completion 2
+PASS: gdb.base/completion.exp: Glob remaining of directory test
+PASS: gdb.base/completion.exp: complete-command 'file ./gdb.base/compl'
+PASS: gdb.base/completion.exp: complete 'file ./gdb.base/complet'
+PASS: gdb.base/completion.exp: complete 'info func marke'
+PASS: gdb.base/completion.exp: complete 'set follow-fork-mode'
+PASS: gdb.base/completion.exp: field completion with invalid field
+PASS: gdb.base/completion.exp: test non-deprecated completion
+PASS: gdb.base/completion.exp: test deprecated completion
+PASS: gdb.base/completion.exp: complete ptype struct some_
+PASS: gdb.base/completion.exp: complete ptype enum some_
+PASS: gdb.base/completion.exp: complete ptype union some_
+PASS: gdb.base/completion.exp: complete set gnutarget aut
+PASS: gdb.base/completion.exp: complete set cp-abi aut
+Running ./gdb.base/complex.exp ...
+PASS: gdb.base/complex.exp: print complex packed value in C
+PASS: gdb.base/complex.exp: print complex value in C
+Running ./gdb.base/comprdebug.exp ...
+PASS: gdb.base/comprdebug.exp: file comprdebug0.o
+Running ./gdb.base/condbreak.exp ...
+PASS: gdb.base/condbreak.exp: breakpoint function
+PASS: gdb.base/condbreak.exp: break marker1 if 1==1
+PASS: gdb.base/condbreak.exp: delete 2
+PASS: gdb.base/condbreak.exp: break break.c:92 if 1==1
+PASS: gdb.base/condbreak.exp: delete 3
+PASS: gdb.base/condbreak.exp: break marker1 if (1==1)
+PASS: gdb.base/condbreak.exp: break break.c:92 if (1==1)
+PASS: gdb.base/condbreak.exp: break marker2 if (a==43)
+PASS: gdb.base/condbreak.exp: break marker3 if (multi_line_if_conditional(1,1,1)==0)
+PASS: gdb.base/condbreak.exp: break marker4
+PASS: gdb.base/condbreak.exp: breakpoint info
+PASS: gdb.base/condbreak.exp: rerun to main
+PASS: gdb.base/condbreak.exp: run until breakpoint set at a line number
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker1
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker2
+PASS: gdb.base/condbreak.exp: break main if (1==1) thread 999
+PASS: gdb.base/condbreak.exp: break main thread 999 if (1==1)
+PASS: gdb.base/condbreak.exp: break *main if (1==1) thread 999
+PASS: gdb.base/condbreak.exp: break *main thread 999 if (1==1)
+PASS: gdb.base/condbreak.exp: break *main if (1==1) task 999
+PASS: gdb.base/condbreak.exp: break *main task 999 if (1==1)
+PASS: gdb.base/condbreak.exp: break *main if (1==1) t 999
+PASS: gdb.base/condbreak.exp: break *main if (1==1) th 999
+PASS: gdb.base/condbreak.exp: break *main if (1==1) ta 999
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker3
+PASS: gdb.base/condbreak.exp: run until breakpoint at marker4
+PASS: gdb.base/condbreak.exp: complete cond 1
+PASS: gdb.base/condbreak.exp: set variable $var = 1
+PASS: gdb.base/condbreak.exp: complete cond $v
+PASS: gdb.base/condbreak.exp: complete cond 1 values[0].a
+Running ./gdb.base/cond-eval-mode.exp ...
+PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation host
+PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation auto
+PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation target
+Running ./gdb.base/cond-expr.exp ...
+PASS: gdb.base/cond-expr.exp: print value of cond expr (const true)
+PASS: gdb.base/cond-expr.exp: print value of cond expr (const false)
+PASS: gdb.base/cond-expr.exp: set variable x=14
+PASS: gdb.base/cond-expr.exp: set variable y=2
+PASS: gdb.base/cond-expr.exp: set variable z=3
+PASS: gdb.base/cond-expr.exp: print value of cond expr (var true)
+PASS: gdb.base/cond-expr.exp: set variable x=0
+PASS: gdb.base/cond-expr.exp: print value of cond expr (var false)
+PASS: gdb.base/cond-expr.exp: print whatis of cond expr
+Running ./gdb.base/consecutive.exp ...
+PASS: gdb.base/consecutive.exp: continue to breakpoint in foo
+PASS: gdb.base/consecutive.exp: get breakpoint address for foo
+PASS: gdb.base/consecutive.exp: set bp, 2nd instr
+PASS: gdb.base/consecutive.exp: stopped at bp, 2nd instr
+Running ./gdb.base/constvars.exp ...
+PASS: gdb.base/constvars.exp: break marker1
+PASS: gdb.base/constvars.exp: continue to marker1
+PASS: gdb.base/constvars.exp: up from marker1
+PASS: gdb.base/constvars.exp: ptype qux1
+PASS: gdb.base/constvars.exp: print lave
+PASS: gdb.base/constvars.exp: ptype lave
+PASS: gdb.base/constvars.exp: print lavish
+PASS: gdb.base/constvars.exp: ptype lavish
+PASS: gdb.base/constvars.exp: print lax
+PASS: gdb.base/constvars.exp: ptype lax
+PASS: gdb.base/constvars.exp: print lecherous
+PASS: gdb.base/constvars.exp: ptype lecherous
+PASS: gdb.base/constvars.exp: print lechery
+PASS: gdb.base/constvars.exp: ptype lechery
+PASS: gdb.base/constvars.exp: print lectern
+PASS: gdb.base/constvars.exp: ptype lectern
+PASS: gdb.base/constvars.exp: print leeway
+PASS: gdb.base/constvars.exp: ptype leeway
+PASS: gdb.base/constvars.exp: print legacy
+PASS: gdb.base/constvars.exp: ptype legacy
+PASS: gdb.base/constvars.exp: print laconic
+PASS: gdb.base/constvars.exp: ptype laconic
+PASS: gdb.base/constvars.exp: print laggard
+PASS: gdb.base/constvars.exp: ptype laggard
+PASS: gdb.base/constvars.exp: print lagoon
+PASS: gdb.base/constvars.exp: ptype lagoon
+PASS: gdb.base/constvars.exp: print laity
+PASS: gdb.base/constvars.exp: ptype laity
+PASS: gdb.base/constvars.exp: print lambent
+PASS: gdb.base/constvars.exp: ptype lambent
+PASS: gdb.base/constvars.exp: print laminated
+PASS: gdb.base/constvars.exp: ptype laminated
+PASS: gdb.base/constvars.exp: print lampoon
+PASS: gdb.base/constvars.exp: ptype lampoon
+PASS: gdb.base/constvars.exp: print languid
+PASS: gdb.base/constvars.exp: ptype languid
+PASS: gdb.base/constvars.exp: print *legend
+PASS: gdb.base/constvars.exp: ptype legend
+PASS: gdb.base/constvars.exp: print *legerdemain
+PASS: gdb.base/constvars.exp: ptype legerdemain
+PASS: gdb.base/constvars.exp: print *leniency
+PASS: gdb.base/constvars.exp: ptype leniency
+PASS: gdb.base/constvars.exp: print *leonine
+PASS: gdb.base/constvars.exp: ptype leonine
+PASS: gdb.base/constvars.exp: print *lesion
+PASS: gdb.base/constvars.exp: ptype lesion
+PASS: gdb.base/constvars.exp: print *lethal
+PASS: gdb.base/constvars.exp: ptype lethal
+PASS: gdb.base/constvars.exp: print *lethargic
+PASS: gdb.base/constvars.exp: ptype lethargic
+PASS: gdb.base/constvars.exp: print *levity
+PASS: gdb.base/constvars.exp: ptype levity
+PASS: gdb.base/constvars.exp: print *lewd
+PASS: gdb.base/constvars.exp: ptype lewd
+PASS: gdb.base/constvars.exp: print *lexicographer
+PASS: gdb.base/constvars.exp: ptype lexicographer
+PASS: gdb.base/constvars.exp: print *lexicon
+PASS: gdb.base/constvars.exp: ptype lexicon
+PASS: gdb.base/constvars.exp: print *liaison
+PASS: gdb.base/constvars.exp: ptype liaison
+PASS: gdb.base/constvars.exp: print *libation
+PASS: gdb.base/constvars.exp: ptype libation
+PASS: gdb.base/constvars.exp: print *libelous
+PASS: gdb.base/constvars.exp: ptype libelous
+PASS: gdb.base/constvars.exp: print *libertine
+PASS: gdb.base/constvars.exp: ptype libertine
+PASS: gdb.base/constvars.exp: print *libidinous
+PASS: gdb.base/constvars.exp: ptype libidinous
+PASS: gdb.base/constvars.exp: print *languish
+PASS: gdb.base/constvars.exp: ptype languish
+PASS: gdb.base/constvars.exp: print *languor
+PASS: gdb.base/constvars.exp: ptype languor
+PASS: gdb.base/constvars.exp: print *lank
+PASS: gdb.base/constvars.exp: ptype lank
+PASS: gdb.base/constvars.exp: print *lapidary
+PASS: gdb.base/constvars.exp: ptype lapidary
+PASS: gdb.base/constvars.exp: print *larceny
+PASS: gdb.base/constvars.exp: ptype larceny
+PASS: gdb.base/constvars.exp: print *largess
+PASS: gdb.base/constvars.exp: ptype largess
+PASS: gdb.base/constvars.exp: print *lascivious
+PASS: gdb.base/constvars.exp: ptype lascivious
+PASS: gdb.base/constvars.exp: print *lassitude
+PASS: gdb.base/constvars.exp: ptype lassitude
+PASS: gdb.base/constvars.exp: print *lamprey
+PASS: gdb.base/constvars.exp: ptype lamprey
+PASS: gdb.base/constvars.exp: print *lariat
+PASS: gdb.base/constvars.exp: ptype lariat
+PASS: gdb.base/constvars.exp: print *laudanum
+PASS: gdb.base/constvars.exp: ptype laudanum
+PASS: gdb.base/constvars.exp: print *lecithin
+PASS: gdb.base/constvars.exp: ptype lecithin
+PASS: gdb.base/constvars.exp: print *leviathan
+PASS: gdb.base/constvars.exp: ptype leviathan
+PASS: gdb.base/constvars.exp: print *libretto
+PASS: gdb.base/constvars.exp: ptype libretto
+PASS: gdb.base/constvars.exp: print *lissome
+PASS: gdb.base/constvars.exp: ptype lissome
+PASS: gdb.base/constvars.exp: print *locust
+PASS: gdb.base/constvars.exp: ptype locust
+PASS: gdb.base/constvars.exp: ptype logical
+PASS: gdb.base/constvars.exp: ptype lugged
+PASS: gdb.base/constvars.exp: ptype luck
+PASS: gdb.base/constvars.exp: ptype lunar
+PASS: gdb.base/constvars.exp: ptype lumen
+PASS: gdb.base/constvars.exp: ptype lurk
+PASS: gdb.base/constvars.exp: ptype lush
+PASS: gdb.base/constvars.exp: ptype lynx
+PASS: gdb.base/constvars.exp: ptype crass
+PASS: gdb.base/constvars.exp: ptype crisp
+Running ./gdb.base/corefile.exp ...
+Running ./gdb.base/ctxobj.exp ...
+PASS: gdb.base/ctxobj.exp: break in get_version functions
+PASS: gdb.base/ctxobj.exp: continue to get_version_1
+PASS: gdb.base/ctxobj.exp: print libctxobj1's this_version_num from partial symtab
+PASS: gdb.base/ctxobj.exp: print libctxobj1's this_version_num from symtab
+PASS: gdb.base/ctxobj.exp: continue to get_version_2
+PASS: gdb.base/ctxobj.exp: print libctxobj2's this_version_num from partial symtab
+PASS: gdb.base/ctxobj.exp: print libctxobj2's this_version_num from symtab
+Running ./gdb.base/cursal.exp ...
+PASS: gdb.base/cursal.exp: set listsize 1
+PASS: gdb.base/cursal.exp: list before run
+PASS: gdb.base/cursal.exp: list in main
+PASS: gdb.base/cursal.exp: list in func2
+PASS: gdb.base/cursal.exp: backtrace
+PASS: gdb.base/cursal.exp: list after backtrace
+PASS: gdb.base/cursal.exp: set listsize 3
+PASS: gdb.base/cursal.exp: list size 3
+Running ./gdb.base/cvexpr.exp ...
+PASS: gdb.base/cvexpr.exp: set print sevenbit-strings
+PASS: gdb.base/cvexpr.exp: set print address off
+PASS: gdb.base/cvexpr.exp: set width 0
+PASS: gdb.base/cvexpr.exp: (const char)
+PASS: gdb.base/cvexpr.exp: (const signed char)
+PASS: gdb.base/cvexpr.exp: (const unsigned char)
+PASS: gdb.base/cvexpr.exp: (const short)
+PASS: gdb.base/cvexpr.exp: (const signed short)
+PASS: gdb.base/cvexpr.exp: (const unsigned short)
+PASS: gdb.base/cvexpr.exp: (const int)
+PASS: gdb.base/cvexpr.exp: (const signed int)
+PASS: gdb.base/cvexpr.exp: (const unsigned int)
+PASS: gdb.base/cvexpr.exp: (const long)
+PASS: gdb.base/cvexpr.exp: (const signed long)
+PASS: gdb.base/cvexpr.exp: (const unsigned long)
+PASS: gdb.base/cvexpr.exp: (const long long)
+PASS: gdb.base/cvexpr.exp: (const signed long long)
+PASS: gdb.base/cvexpr.exp: (const unsigned long long)
+PASS: gdb.base/cvexpr.exp: (const float)
+PASS: gdb.base/cvexpr.exp: (const double)
+PASS: gdb.base/cvexpr.exp: (volatile char)
+PASS: gdb.base/cvexpr.exp: (volatile signed char)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned char)
+PASS: gdb.base/cvexpr.exp: (volatile short)
+PASS: gdb.base/cvexpr.exp: (volatile signed short)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned short)
+PASS: gdb.base/cvexpr.exp: (volatile int)
+PASS: gdb.base/cvexpr.exp: (volatile signed int)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned int)
+PASS: gdb.base/cvexpr.exp: (volatile long)
+PASS: gdb.base/cvexpr.exp: (volatile signed long)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned long)
+PASS: gdb.base/cvexpr.exp: (volatile long long)
+PASS: gdb.base/cvexpr.exp: (volatile signed long long)
+PASS: gdb.base/cvexpr.exp: (volatile unsigned long long)
+PASS: gdb.base/cvexpr.exp: (volatile float)
+PASS: gdb.base/cvexpr.exp: (volatile double)
+PASS: gdb.base/cvexpr.exp: (const volatile int)
+PASS: gdb.base/cvexpr.exp: (volatile const int)
+PASS: gdb.base/cvexpr.exp: (const int volatile)
+PASS: gdb.base/cvexpr.exp: (volatile int const)
+PASS: gdb.base/cvexpr.exp: (int const volatile)
+PASS: gdb.base/cvexpr.exp: (int volatile const)
+PASS: gdb.base/cvexpr.exp: (const volatile int *)
+PASS: gdb.base/cvexpr.exp: (volatile const int *)
+PASS: gdb.base/cvexpr.exp: (const int volatile)
+PASS: gdb.base/cvexpr.exp: (volatile int const *)
+PASS: gdb.base/cvexpr.exp: (int const volatile *)
+PASS: gdb.base/cvexpr.exp: (int volatile const *)
+PASS: gdb.base/cvexpr.exp: (int * const volatile)
+PASS: gdb.base/cvexpr.exp: (int * volatile const)
+PASS: gdb.base/cvexpr.exp: (char const)
+PASS: gdb.base/cvexpr.exp: (signed char const)
+PASS: gdb.base/cvexpr.exp: (unsigned char const)
+PASS: gdb.base/cvexpr.exp: (short const)
+PASS: gdb.base/cvexpr.exp: (signed short const)
+PASS: gdb.base/cvexpr.exp: (unsigned short const)
+PASS: gdb.base/cvexpr.exp: (int const)
+PASS: gdb.base/cvexpr.exp: (signed int const)
+PASS: gdb.base/cvexpr.exp: (unsigned int const)
+PASS: gdb.base/cvexpr.exp: (long const)
+PASS: gdb.base/cvexpr.exp: (signed long const)
+PASS: gdb.base/cvexpr.exp: (unsigned long const)
+PASS: gdb.base/cvexpr.exp: (long long const)
+PASS: gdb.base/cvexpr.exp: (signed long long const)
+PASS: gdb.base/cvexpr.exp: (unsigned long long const)
+PASS: gdb.base/cvexpr.exp: (float const)
+PASS: gdb.base/cvexpr.exp: (double const)
+PASS: gdb.base/cvexpr.exp: (char volatile)
+PASS: gdb.base/cvexpr.exp: (signed char volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned char volatile)
+PASS: gdb.base/cvexpr.exp: (short volatile)
+PASS: gdb.base/cvexpr.exp: (signed short volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned short volatile)
+PASS: gdb.base/cvexpr.exp: (int volatile)
+PASS: gdb.base/cvexpr.exp: (signed int volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned int volatile)
+PASS: gdb.base/cvexpr.exp: (long volatile)
+PASS: gdb.base/cvexpr.exp: (signed long volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned long volatile)
+PASS: gdb.base/cvexpr.exp: (long long volatile)
+PASS: gdb.base/cvexpr.exp: (signed long long volatile)
+PASS: gdb.base/cvexpr.exp: (unsigned long long volatile)
+PASS: gdb.base/cvexpr.exp: (float volatile)
+PASS: gdb.base/cvexpr.exp: (double volatile)
+PASS: gdb.base/cvexpr.exp: (const enum misordered)
+PASS: gdb.base/cvexpr.exp: (enum misordered const)
+PASS: gdb.base/cvexpr.exp: (volatile enum misordered)
+PASS: gdb.base/cvexpr.exp: (enum misordered volatile)
+PASS: gdb.base/cvexpr.exp: (const int *)
+PASS: gdb.base/cvexpr.exp: (int const *)
+PASS: gdb.base/cvexpr.exp: (int * const)
+PASS: gdb.base/cvexpr.exp: (const int * const)
+PASS: gdb.base/cvexpr.exp: (int const * const)
+PASS: gdb.base/cvexpr.exp: (const int **)
+PASS: gdb.base/cvexpr.exp: (int const **)
+PASS: gdb.base/cvexpr.exp: (int ** const)
+PASS: gdb.base/cvexpr.exp: (const int * const *)
+PASS: gdb.base/cvexpr.exp: (int const * const *)
+PASS: gdb.base/cvexpr.exp: (const int * const * const)
+PASS: gdb.base/cvexpr.exp: (int const * const * const)
+PASS: gdb.base/cvexpr.exp: (const struct t_struct)
+PASS: gdb.base/cvexpr.exp: (const union t_union)
+PASS: gdb.base/cvexpr.exp: (struct t_struct const)
+PASS: gdb.base/cvexpr.exp: (union t_union const)
+PASS: gdb.base/cvexpr.exp: (const struct t_struct *)
+PASS: gdb.base/cvexpr.exp: (const union t_union *)
+PASS: gdb.base/cvexpr.exp: (struct t_struct const *)
+PASS: gdb.base/cvexpr.exp: (union t_union const *)
+PASS: gdb.base/cvexpr.exp: (struct t_struct * const)
+PASS: gdb.base/cvexpr.exp: (union t_union * const)
+PASS: gdb.base/cvexpr.exp: (const struct t_struct * const)
+PASS: gdb.base/cvexpr.exp: (const union t_union * const)
+PASS: gdb.base/cvexpr.exp: (struct t_struct const * const)
+PASS: gdb.base/cvexpr.exp: (union t_union const * const)
+Running ./gdb.base/dbx.exp ...
+PASS: gdb.base/dbx.exp: stop in main
+PASS: gdb.base/dbx.exp: status
+PASS: gdb.base/dbx.exp: stop at average.c:43
+PASS: gdb.base/dbx.exp: stop in average.c:43
+PASS: gdb.base/dbx.exp: stop at main
+PASS: gdb.base/dbx.exp: running to main
+PASS: gdb.base/dbx.exp: assign first
+PASS: gdb.base/dbx.exp: print first
+PASS: gdb.base/dbx.exp: whereis my_list
+PASS: gdb.base/dbx.exp: file average.c:1
+PASS: gdb.base/dbx.exp: cont 1
+PASS: gdb.base/dbx.exp: step
+XFAIL: gdb.base/dbx.exp: func sum
+PASS: gdb.base/dbx.exp: stop in sum
+PASS: gdb.base/dbx.exp: cont 2
+XFAIL: gdb.base/dbx.exp: func print_average
+Running ./gdb.base/debug-expr.exp ...
+PASS: gdb.base/debug-expr.exp: set variable array[0] = 0
+PASS: gdb.base/debug-expr.exp: set variable array[1] = 1
+PASS: gdb.base/debug-expr.exp: set variable array[2] = 2
+PASS: gdb.base/debug-expr.exp: set variable array[3] = 3
+PASS: gdb.base/debug-expr.exp: set debug expression 1
+PASS: gdb.base/debug-expr.exp: print /x {char[4]} array
+Running ./gdb.base/default.exp ...
+PASS: gdb.base/default.exp: add-symbol-file
+PASS: gdb.base/default.exp: append
+PASS: gdb.base/default.exp: append binary
+PASS: gdb.base/default.exp: append memory
+PASS: gdb.base/default.exp: append value
+PASS: gdb.base/default.exp: append binary memory
+PASS: gdb.base/default.exp: append binary value
+WARNING: Skipping backtrace and break tests because of GDB stub.
+PASS: gdb.base/default.exp: continue
+PASS: gdb.base/default.exp: continue "c" abbreviation
+PASS: gdb.base/default.exp: call
+PASS: gdb.base/default.exp: catch
+PASS: gdb.base/default.exp: cd
+PASS: gdb.base/default.exp: clear
+PASS: gdb.base/default.exp: commands
+PASS: gdb.base/default.exp: condition
+PASS: gdb.base/default.exp: core-file
+PASS: gdb.base/default.exp: delete "d" abbreviation
+PASS: gdb.base/default.exp: delete
+PASS: gdb.base/default.exp: define
+PASS: gdb.base/default.exp: delete breakpoints
+PASS: gdb.base/default.exp: delete display prompt
+PASS: gdb.base/default.exp: detach
+PASS: gdb.base/default.exp: directory prompt
+PASS: gdb.base/default.exp: disable "dis" abbreviation
+PASS: gdb.base/default.exp: disable "disa" abbreviation
+PASS: gdb.base/default.exp: disable
+PASS: gdb.base/default.exp: disable breakpoints
+PASS: gdb.base/default.exp: disable display
+PASS: gdb.base/default.exp: disassemble
+PASS: gdb.base/default.exp: display
+PASS: gdb.base/default.exp: do
+PASS: gdb.base/default.exp: document
+PASS: gdb.base/default.exp: down
+PASS: gdb.base/default.exp: down-silently
+PASS: gdb.base/default.exp: dump
+PASS: gdb.base/default.exp: dump binary
+PASS: gdb.base/default.exp: dump ihex
+PASS: gdb.base/default.exp: dump memory
+PASS: gdb.base/default.exp: dump srec
+PASS: gdb.base/default.exp: dump tekhex
+PASS: gdb.base/default.exp: dump value
+PASS: gdb.base/default.exp: dump binary memory
+PASS: gdb.base/default.exp: dump binary value
+PASS: gdb.base/default.exp: dump ihex memory
+PASS: gdb.base/default.exp: dump ihex value
+PASS: gdb.base/default.exp: dump srec memory
+PASS: gdb.base/default.exp: dump srec value
+PASS: gdb.base/default.exp: dump tekhex memory
+PASS: gdb.base/default.exp: dump tekhex value
+PASS: gdb.base/default.exp: echo
+PASS: gdb.base/default.exp: enable breakpoints delete
+PASS: gdb.base/default.exp: enable breakpoints once
+PASS: gdb.base/default.exp: enable breakpoints
+PASS: gdb.base/default.exp: enable delete
+PASS: gdb.base/default.exp: enable display
+PASS: gdb.base/default.exp: enable once
+PASS: gdb.base/default.exp: enable
+PASS: gdb.base/default.exp: exec-file
+PASS: gdb.base/default.exp: frame "f" abbreviation
+PASS: gdb.base/default.exp: frame
+PASS: gdb.base/default.exp: fg
+PASS: gdb.base/default.exp: file
+PASS: gdb.base/default.exp: finish
+PASS: gdb.base/default.exp: forward-search
+PASS: gdb.base/default.exp: gcore
+PASS: gdb.base/default.exp: generate-core-file
+PASS: gdb.base/default.exp: help "h" abbreviation
+PASS: gdb.base/default.exp: help
+PASS: gdb.base/default.exp: handle
+PASS: gdb.base/default.exp: info "i" abbreviation
+PASS: gdb.base/default.exp: info
+PASS: gdb.base/default.exp: ignore
+PASS: gdb.base/default.exp: info address
+PASS: gdb.base/default.exp: info all-registers
+PASS: gdb.base/default.exp: info args
+PASS: gdb.base/default.exp: info bogus-gdb-command
+PASS: gdb.base/default.exp: info breakpoints
+PASS: gdb.base/default.exp: info copying
+PASS: gdb.base/default.exp: info display
+PASS: gdb.base/default.exp: info frame "f" abbreviation
+PASS: gdb.base/default.exp: info frame
+PASS: gdb.base/default.exp: info files
+PASS: gdb.base/default.exp: info float
+PASS: gdb.base/default.exp: info functions
+PASS: gdb.base/default.exp: info locals
+PASS: gdb.base/default.exp: info program
+PASS: gdb.base/default.exp: info registers
+PASS: gdb.base/default.exp: info stack "s" abbreviation
+PASS: gdb.base/default.exp: info stack
+PASS: gdb.base/default.exp: info set
+PASS: gdb.base/default.exp: info symbol
+PASS: gdb.base/default.exp: info source
+PASS: gdb.base/default.exp: info sources
+PASS: gdb.base/default.exp: info target
+PASS: gdb.base/default.exp: info terminal
+PASS: gdb.base/default.exp: info threads
+PASS: gdb.base/default.exp: info types
+PASS: gdb.base/default.exp: info variables
+PASS: gdb.base/default.exp: info vector
+PASS: gdb.base/default.exp: info warranty
+PASS: gdb.base/default.exp: info watchpoints
+PASS: gdb.base/default.exp: inspect
+PASS: gdb.base/default.exp: jump
+PASS: gdb.base/default.exp: kill
+PASS: gdb.base/default.exp: list "l" abbreviation
+PASS: gdb.base/default.exp: list
+PASS: gdb.base/default.exp: load
+PASS: gdb.base/default.exp: next "n" abbreviation
+PASS: gdb.base/default.exp: next
+PASS: gdb.base/default.exp: nexti "ni" abbreviation
+PASS: gdb.base/default.exp: nexti
+PASS: gdb.base/default.exp: output
+PASS: gdb.base/default.exp: overlay
+PASS: gdb.base/default.exp: overlay on
+PASS: gdb.base/default.exp: overlay manual #1
+PASS: gdb.base/default.exp: overlay auto
+PASS: gdb.base/default.exp: overlay off
+PASS: gdb.base/default.exp: overlay list
+PASS: gdb.base/default.exp: overlay map #1
+PASS: gdb.base/default.exp: overlay unmap #1
+PASS: gdb.base/default.exp: overlay manual #2
+PASS: gdb.base/default.exp: overlay map #2
+PASS: gdb.base/default.exp: overlay unmap #2
+PASS: gdb.base/default.exp: print "p" abbreviation
+PASS: gdb.base/default.exp: print
+PASS: gdb.base/default.exp: printf
+PASS: gdb.base/default.exp: ptype
+PASS: gdb.base/default.exp: pwd
+PASS: gdb.base/default.exp: rbreak
+PASS: gdb.base/default.exp: restore
+PASS: gdb.base/default.exp: return
+PASS: gdb.base/default.exp: reverse-search
+PASS: gdb.base/default.exp: step "s" abbreviation #1
+PASS: gdb.base/default.exp: step #1
+PASS: gdb.base/default.exp: search
+PASS: gdb.base/default.exp: section
+PASS: gdb.base/default.exp: set annotate
+PASS: gdb.base/default.exp: set args
+PASS: gdb.base/default.exp: set check "c" abbreviation
+PASS: gdb.base/default.exp: set check "ch" abbreviation
+PASS: gdb.base/default.exp: set check "check" abbreviation
+PASS: gdb.base/default.exp: set check range
+PASS: gdb.base/default.exp: set check type
+PASS: gdb.base/default.exp: set complaints
+PASS: gdb.base/default.exp: set confirm
+PASS: gdb.base/default.exp: set environment
+PASS: gdb.base/default.exp: set height
+PASS: gdb.base/default.exp: set history expansion
+PASS: gdb.base/default.exp: set history filename
+PASS: gdb.base/default.exp: set history save
+PASS: gdb.base/default.exp: set history size
+PASS: gdb.base/default.exp: set history
+PASS: gdb.base/default.exp: set language
+PASS: gdb.base/default.exp: set listsize
+PASS: gdb.base/default.exp: set print "p" abbreviation
+PASS: gdb.base/default.exp: set print "pr" abbreviation
+PASS: gdb.base/default.exp: set print
+PASS: gdb.base/default.exp: set print address
+PASS: gdb.base/default.exp: set print array
+PASS: gdb.base/default.exp: set print asm-demangle
+PASS: gdb.base/default.exp: set print demangle
+PASS: gdb.base/default.exp: set print elements
+PASS: gdb.base/default.exp: set print object
+PASS: gdb.base/default.exp: set print pretty
+PASS: gdb.base/default.exp: set print sevenbit-strings
+PASS: gdb.base/default.exp: set print union
+PASS: gdb.base/default.exp: set print vtbl
+PASS: gdb.base/default.exp: set radix
+PASS: gdb.base/default.exp: set variable
+PASS: gdb.base/default.exp: set verbose
+PASS: gdb.base/default.exp: set width
+PASS: gdb.base/default.exp: set write
+PASS: gdb.base/default.exp: set
+PASS: gdb.base/default.exp: shell echo Hi dad!
+PASS: gdb.base/default.exp: show annotate
+PASS: gdb.base/default.exp: show args
+PASS: gdb.base/default.exp: show check "c" abbreviation
+PASS: gdb.base/default.exp: show check "ch" abbreviation
+PASS: gdb.base/default.exp: show check "check" abbreviation
+PASS: gdb.base/default.exp: show check range
+PASS: gdb.base/default.exp: show check type
+PASS: gdb.base/default.exp: show commands
+PASS: gdb.base/default.exp: show complaints
+PASS: gdb.base/default.exp: show confirm
+PASS: gdb.base/default.exp: show convenience
+PASS: gdb.base/default.exp: show directories
+PASS: gdb.base/default.exp: show editing
+PASS: gdb.base/default.exp: show height
+PASS: gdb.base/default.exp: show history expansion
+PASS: gdb.base/default.exp: show history filename
+PASS: gdb.base/default.exp: show history save
+PASS: gdb.base/default.exp: show history size
+PASS: gdb.base/default.exp: show history
+PASS: gdb.base/default.exp: show language
+PASS: gdb.base/default.exp: show listsize
+PASS: gdb.base/default.exp: show p
+PASS: gdb.base/default.exp: show pr
+PASS: gdb.base/default.exp: show print
+PASS: gdb.base/default.exp: show paths
+PASS: gdb.base/default.exp: show print address
+PASS: gdb.base/default.exp: show print array
+PASS: gdb.base/default.exp: show print asm-demangle
+PASS: gdb.base/default.exp: show print demangle
+PASS: gdb.base/default.exp: show print elements
+PASS: gdb.base/default.exp: show print object
+PASS: gdb.base/default.exp: show print pretty
+PASS: gdb.base/default.exp: show print sevenbit-strings
+PASS: gdb.base/default.exp: show print union
+PASS: gdb.base/default.exp: show print vtbl
+PASS: gdb.base/default.exp: show prompt
+PASS: gdb.base/default.exp: show radix
+PASS: gdb.base/default.exp: show user
+PASS: gdb.base/default.exp: show values
+PASS: gdb.base/default.exp: show verbose
+PASS: gdb.base/default.exp: show version
+PASS: gdb.base/default.exp: show width
+PASS: gdb.base/default.exp: show write
+PASS: gdb.base/default.exp: show
+PASS: gdb.base/default.exp: stepi "si" abbreviation
+PASS: gdb.base/default.exp: stepi
+PASS: gdb.base/default.exp: signal
+PASS: gdb.base/default.exp: source
+PASS: gdb.base/default.exp: step "s" abbreviation #2
+PASS: gdb.base/default.exp: step #2
+PASS: gdb.base/default.exp: symbol-file
+PASS: gdb.base/default.exp: target child
+PASS: gdb.base/default.exp: target procfs
+PASS: gdb.base/default.exp: target core
+PASS: gdb.base/default.exp: target exec
+PASS: gdb.base/default.exp: target remote
+PASS: gdb.base/default.exp: target
+PASS: gdb.base/default.exp: tbreak
+PASS: gdb.base/default.exp: thread
+PASS: gdb.base/default.exp: thread apply
+PASS: gdb.base/default.exp: thread find
+PASS: gdb.base/default.exp: thread name
+PASS: gdb.base/default.exp: tty
+PASS: gdb.base/default.exp: until "u" abbreviation
+PASS: gdb.base/default.exp: until
+PASS: gdb.base/default.exp: undisplay prompt
+PASS: gdb.base/default.exp: unset environment prompt
+PASS: gdb.base/default.exp: unset
+PASS: gdb.base/default.exp: up-silently
+PASS: gdb.base/default.exp: watch
+PASS: gdb.base/default.exp: whatis
+PASS: gdb.base/default.exp: where
+PASS: gdb.base/default.exp: x
+Running ./gdb.base/define.exp ...
+PASS: gdb.base/define.exp: define user command: nextwhere
+PASS: gdb.base/define.exp: use user command: nextwhere
+PASS: gdb.base/define.exp: define user command: nextwh
+PASS: gdb.base/define.exp: redefine user command aborted: nextwhere
+PASS: gdb.base/define.exp: redefine user command: nextwhere
+PASS: gdb.base/define.exp: redocumenting builtin command disallowed
+PASS: gdb.base/define.exp: document user command: nextwhere
+PASS: gdb.base/define.exp: re-document user command: nextwhere
+PASS: gdb.base/define.exp: help user command: nextwhere
+PASS: gdb.base/define.exp: set up whitespace in help string
+PASS: gdb.base/define.exp: preserve whitespace in help string
+PASS: gdb.base/define.exp: define user command: ifnospace
+PASS: gdb.base/define.exp: test ifnospace is parsed correctly
+PASS: gdb.base/define.exp: define user command: whilenospace
+PASS: gdb.base/define.exp: test whilenospace is parsed correctly
+PASS: gdb.base/define.exp: define user command: user-bt
+PASS: gdb.base/define.exp: define hook-stop command
+PASS: gdb.base/define.exp: use hook-stop command
+PASS: gdb.base/define.exp: define hook undefined command aborted: bar
+PASS: gdb.base/define.exp: define hook undefined command: bar
+PASS: gdb.base/define.exp: define target testsuite
+PASS: gdb.base/define.exp: document target testsuite
+PASS: gdb.base/define.exp: help target
+PASS: gdb.base/define.exp: target testsuite
+PASS: gdb.base/define.exp: show user target testsuite
+PASS: gdb.base/define.exp: define target hook-testsuite
+PASS: gdb.base/define.exp: define target hookpost-testsuite
+PASS: gdb.base/define.exp: target testsuite with hooks
+PASS: gdb.base/define.exp: set gdb_prompt
+PASS: gdb.base/define.exp: reset gdb_prompt
+Running ./gdb.base/del.exp ...
+PASS: gdb.base/del.exp: Remove all breakpoints (del)
+PASS: gdb.base/del.exp: info break after removing break on main
+PASS: gdb.base/del.exp: breakpoint insertion (del)
+PASS: gdb.base/del.exp: Remove last breakpoint (del)
+PASS: gdb.base/del.exp: info break after removing break on main (del)
+PASS: gdb.base/del.exp: Remove all breakpoints (d)
+PASS: gdb.base/del.exp: info break after removing break on main
+PASS: gdb.base/del.exp: breakpoint insertion (d)
+PASS: gdb.base/del.exp: Remove last breakpoint (d)
+PASS: gdb.base/del.exp: info break after removing break on main (d)
+Running ./gdb.base/detach.exp ...
+Running ./gdb.base/dfp-exprs.exp ...
+PASS: gdb.base/dfp-exprs.exp: p 1.2df
+PASS: gdb.base/dfp-exprs.exp: p -1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.234567df
+PASS: gdb.base/dfp-exprs.exp: p -1.234567df
+PASS: gdb.base/dfp-exprs.exp: p 1234567.df
+PASS: gdb.base/dfp-exprs.exp: p -1234567.df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E1df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E10df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E-10df
+PASS: gdb.base/dfp-exprs.exp: p 1.2E96df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p -1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.234567890123456dd
+PASS: gdb.base/dfp-exprs.exp: p -1.234567890123456dd
+PASS: gdb.base/dfp-exprs.exp: p 1234567890123456.dd
+PASS: gdb.base/dfp-exprs.exp: p -1234567890123456.dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E1dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E10dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E-10dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2E384dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p -1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.234567890123456789012345678901234dl
+PASS: gdb.base/dfp-exprs.exp: p -1.234567890123456789012345678901234dl
+PASS: gdb.base/dfp-exprs.exp: p 1234567890123456789012345678901234.dl
+PASS: gdb.base/dfp-exprs.exp: p -1234567890123456789012345678901234.dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E1dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E10dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E-10dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2E6144dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4df + 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4df - 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4df * 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4df / 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd + 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd - 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd * 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dd / 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl + 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl - 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl * 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.4dl / 1.2dl
+PASS: gdb.base/dfp-exprs.exp: ptype 2.df + 2.df
+PASS: gdb.base/dfp-exprs.exp: ptype 2.dd + 2.dd
+PASS: gdb.base/dfp-exprs.exp: ptype 2.dl + 2.dl
+PASS: gdb.base/dfp-exprs.exp: p 2.1df + 2.7dd
+PASS: gdb.base/dfp-exprs.exp: p 2.1dd + 2.7df
+PASS: gdb.base/dfp-exprs.exp: p 2.6df + 2.7dl
+PASS: gdb.base/dfp-exprs.exp: p 2.6dl + 2.7df
+PASS: gdb.base/dfp-exprs.exp: p 2.3dd + 2.2dl
+PASS: gdb.base/dfp-exprs.exp: p 2.3dl + 2.2dd
+PASS: gdb.base/dfp-exprs.exp: ptype 2.df + 2.dd
+PASS: gdb.base/dfp-exprs.exp: ptype 2.df + 2.dl
+PASS: gdb.base/dfp-exprs.exp: ptype 2.dd + 2.dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df + 1
+PASS: gdb.base/dfp-exprs.exp: p 2 + 1.7dd
+PASS: gdb.base/dfp-exprs.exp: p 3 + 2.1dl
+PASS: gdb.base/dfp-exprs.exp: ptype 1.2df + 1
+PASS: gdb.base/dfp-exprs.exp: ptype 2 + 1.7dd
+PASS: gdb.base/dfp-exprs.exp: ptype 3 + 2.1dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df + 2ll
+PASS: gdb.base/dfp-exprs.exp: p 1.2df + 1.2f
+PASS: gdb.base/dfp-exprs.exp: p !0.df
+PASS: gdb.base/dfp-exprs.exp: p !0.dd
+PASS: gdb.base/dfp-exprs.exp: p !0.dl
+PASS: gdb.base/dfp-exprs.exp: p !0.5df
+PASS: gdb.base/dfp-exprs.exp: p !0.5dd
+PASS: gdb.base/dfp-exprs.exp: p !0.5dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.2df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2df == 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd == 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl == 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p +1.2df
+PASS: gdb.base/dfp-exprs.exp: p +1.2dd
+PASS: gdb.base/dfp-exprs.exp: p +1.2dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2df < 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df < 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd < 1.3dd
+PASS: gdb.base/dfp-exprs.exp: p 1.2dd < 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3dl
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3df
+PASS: gdb.base/dfp-exprs.exp: p 1.2df > 1
+PASS: gdb.base/dfp-exprs.exp: p 1.2dl > 2
+PASS: gdb.base/dfp-exprs.exp: p 2 > 1.2dd
+PASS: gdb.base/dfp-exprs.exp: p 2 > 3.1dl
+PASS: gdb.base/dfp-exprs.exp: p (float) -0.1df
+PASS: gdb.base/dfp-exprs.exp: p (int) 8.3dd
+PASS: gdb.base/dfp-exprs.exp: p (_Decimal64) 3.1
+PASS: gdb.base/dfp-exprs.exp: p (_Decimal128) 3.7df
+PASS: gdb.base/dfp-exprs.exp: p (_Decimal32) 4
+Running ./gdb.base/dfp-test.exp ...
+PASS: gdb.base/dfp-test.exp: get integer valueof "sizeof (long)" (8)
+PASS: gdb.base/dfp-test.exp: next after initializing d32
+PASS: gdb.base/dfp-test.exp: d32 is initialized to 1.2345
+PASS: gdb.base/dfp-test.exp: next after assigning builtin infinity to d32
+PASS: gdb.base/dfp-test.exp: d32 is positive Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning negative builtin infinity to d32
+PASS: gdb.base/dfp-test.exp: d32 is negative Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning builtin NaN to d32
+PASS: gdb.base/dfp-test.exp: d32 is NaN
+PASS: gdb.base/dfp-test.exp: p d32=123.45df
+PASS: gdb.base/dfp-test.exp: p d32=12345.df
+PASS: gdb.base/dfp-test.exp: p d32=12345.67df
+PASS: gdb.base/dfp-test.exp: p d32=1234567.df
+PASS: gdb.base/dfp-test.exp: p d32=1.234567E0df
+PASS: gdb.base/dfp-test.exp: p d32=1.234567E10df
+PASS: gdb.base/dfp-test.exp: p d32=1.234567E+96df
+PASS: gdb.base/dfp-test.exp: p d32=9.999999E96df
+PASS: gdb.base/dfp-test.exp: p d32=1.0E-95df
+PASS: gdb.base/dfp-test.exp: p d32=1.E-101df
+PASS: gdb.base/dfp-test.exp: p d32=0.000001E-95df
+PASS: gdb.base/dfp-test.exp: 1.2345678 is rounded to 1.234568
+PASS: gdb.base/dfp-test.exp: 1.0E-101 is rounded to 1E-101
+PASS: gdb.base/dfp-test.exp: 1.234567E+97 is Infinity
+PASS: gdb.base/dfp-test.exp: 12345. is a valid number
+PASS: gdb.base/dfp-test.exp: 12345 is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E45A is an invalid number
+PASS: gdb.base/dfp-test.exp: next after initializing d64
+PASS: gdb.base/dfp-test.exp: d64 is initialized to 1.2345
+PASS: gdb.base/dfp-test.exp: next after assigning builtin infinity to d64
+PASS: gdb.base/dfp-test.exp: d64 is positive Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning negative builtin infinity to d64
+PASS: gdb.base/dfp-test.exp: d64 is negative Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning builtin NaN to d64
+PASS: gdb.base/dfp-test.exp: d64 is NaN
+PASS: gdb.base/dfp-test.exp: p d64=123.45dd
+PASS: gdb.base/dfp-test.exp: p d64=12345.dd
+PASS: gdb.base/dfp-test.exp: p d64=12345.67dd
+PASS: gdb.base/dfp-test.exp: p d64=1.234567890123456dd
+PASS: gdb.base/dfp-test.exp: p d64=1.234567890123456E10dd
+PASS: gdb.base/dfp-test.exp: p d64=1.234567890123456E100dd
+PASS: gdb.base/dfp-test.exp: p d64=1.234567890123456E384dd
+PASS: gdb.base/dfp-test.exp: p d64=9.999999999999999E384dd
+PASS: gdb.base/dfp-test.exp: p d64=1.E-383dd
+PASS: gdb.base/dfp-test.exp: p d64=1.E-398dd
+PASS: gdb.base/dfp-test.exp: p d64=0.000000000000001E-383dd
+PASS: gdb.base/dfp-test.exp: 1.2345678901234567 is rounded to 1.234567890123457
+PASS: gdb.base/dfp-test.exp: d64=9.9999999999999999E384 is Infinity
+PASS: gdb.base/dfp-test.exp: d64=1.234567890123456E385 is Infinity
+PASS: gdb.base/dfp-test.exp: 12345dd is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E45A is an invalid number
+PASS: gdb.base/dfp-test.exp: next after initializing d128
+PASS: gdb.base/dfp-test.exp: d128 is initialized to 1.2345
+PASS: gdb.base/dfp-test.exp: p d128=123.45dl
+PASS: gdb.base/dfp-test.exp: p d128=12345.dl
+PASS: gdb.base/dfp-test.exp: p d128=12345.67dl
+PASS: gdb.base/dfp-test.exp: p d128=1.234567890123456789012345678901234dl
+PASS: gdb.base/dfp-test.exp: p d128=1.234567890123456E10dl
+PASS: gdb.base/dfp-test.exp: p d128=1.234567890123456E100dl
+PASS: gdb.base/dfp-test.exp: p d128=1.234567890123456E1000dl
+PASS: gdb.base/dfp-test.exp: p d128=9.999999999999999999999999999999999E6144dl
+PASS: gdb.base/dfp-test.exp: p d128=1.E-6143dl
+PASS: gdb.base/dfp-test.exp: p d128=1.E-6176dl
+PASS: gdb.base/dfp-test.exp: p d128=0.000000000000000000000000000000001E-6143dl
+PASS: gdb.base/dfp-test.exp: 1.2345678901234567890123456789012345 is rounded to 1.234567890123456789012345678901234
+PASS: gdb.base/dfp-test.exp: d128=1.234567890123456E6145 is Infinity
+PASS: gdb.base/dfp-test.exp: 12345dl is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E is an invalid number
+PASS: gdb.base/dfp-test.exp: 1.23E45A is an invalid number
+PASS: gdb.base/dfp-test.exp: next after assigning builtin infinity to d128
+PASS: gdb.base/dfp-test.exp: d128 is positive Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning negative builtin infinity to d128
+PASS: gdb.base/dfp-test.exp: d128 is negative Infinity
+PASS: gdb.base/dfp-test.exp: next after assigning builtin NaN to d128
+PASS: gdb.base/dfp-test.exp: d128 is NaN
+PASS: gdb.base/dfp-test.exp: continue to breakpoint: entry to arg0_32
+PASS: gdb.base/dfp-test.exp: backtrace at arg0_32
+PASS: gdb.base/dfp-test.exp: continue to breakpoint: entry to arg0_64
+PASS: gdb.base/dfp-test.exp: backtrace at arg0_64
+PASS: gdb.base/dfp-test.exp: continue to breakpoint: entry to arg0_128
+PASS: gdb.base/dfp-test.exp: backtrace at arg0_128
+PASS: gdb.base/dfp-test.exp: Call function with correct _Decimal32 arguments.
+PASS: gdb.base/dfp-test.exp: Backtrace function with correct _Decimal32 arguments.
+PASS: gdb.base/dfp-test.exp: Correct _Decimal32 return value from called function.
+PASS: gdb.base/dfp-test.exp: Call function with correct _Decimal64 arguments.
+PASS: gdb.base/dfp-test.exp: Backtrace function with correct _Decimal64 arguments.
+PASS: gdb.base/dfp-test.exp: Correct _Decimal64 return value from called function.
+PASS: gdb.base/dfp-test.exp: Call function with correct _Decimal128 arguments.
+PASS: gdb.base/dfp-test.exp: Backtrace function with correct _Decimal128 arguments.
+PASS: gdb.base/dfp-test.exp: Correct _Decimal128 return value from called function.
+PASS: gdb.base/dfp-test.exp: Call function with mixed decimal float arguments TEST.
+PASS: gdb.base/dfp-test.exp: Call function with mixed decimal float arguments.
+PASS: gdb.base/dfp-test.exp: Call function with many _Decimal32 arguments.
+PASS: gdb.base/dfp-test.exp: Call function with many _Decimal64 arguments.
+PASS: gdb.base/dfp-test.exp: Call function with many _Decimal128 arguments.
+PASS: gdb.base/dfp-test.exp: Call function with many mixed decimal float arguments.
+PASS: gdb.base/dfp-test.exp: continue to breakpoint: Setting a decimal struct
+PASS: gdb.base/dfp-test.exp: print ds.dec32
+PASS: gdb.base/dfp-test.exp: print ds.dec64
+PASS: gdb.base/dfp-test.exp: print ds.dec128
+PASS: gdb.base/dfp-test.exp: print d32 + ds.dec32
+PASS: gdb.base/dfp-test.exp: print d64 + ds.dec64
+PASS: gdb.base/dfp-test.exp: print d128 + ds.dec128
+PASS: gdb.base/dfp-test.exp: ptype d64 + ds.dec32
+PASS: gdb.base/dfp-test.exp: ptype d128 + ds.dec32
+PASS: gdb.base/dfp-test.exp: ptype d128 + ds.dec64
+PASS: gdb.base/dfp-test.exp: p d32 + 1
+PASS: gdb.base/dfp-test.exp: p 2 + d64
+PASS: gdb.base/dfp-test.exp: p ds.int4 + d128
+PASS: gdb.base/dfp-test.exp: ptype d32 + 1
+PASS: gdb.base/dfp-test.exp: ptype ds.int4 + d128
+PASS: gdb.base/dfp-test.exp: p !d32
+PASS: gdb.base/dfp-test.exp: p !d64
+PASS: gdb.base/dfp-test.exp: p !d128
+PASS: gdb.base/dfp-test.exp: p +d32
+PASS: gdb.base/dfp-test.exp: p +d64
+PASS: gdb.base/dfp-test.exp: p +d128
+PASS: gdb.base/dfp-test.exp: p d64 == d128
+PASS: gdb.base/dfp-test.exp: p d128 == ds.dec32
+PASS: gdb.base/dfp-test.exp: p d128 == d32
+PASS: gdb.base/dfp-test.exp: p ds.dec32 == ds.dec64
+PASS: gdb.base/dfp-test.exp: p d32 < ds.dec32
+PASS: gdb.base/dfp-test.exp: p d64 < ds.dec64
+PASS: gdb.base/dfp-test.exp: p d128 < ds.dec128
+PASS: gdb.base/dfp-test.exp: p ds.dec32 < d32
+PASS: gdb.base/dfp-test.exp: p d64 > ds.dec64
+PASS: gdb.base/dfp-test.exp: p ds.dec128 > d128
+PASS: gdb.base/dfp-test.exp: p d32 < ds.int4
+PASS: gdb.base/dfp-test.exp: p ds.int4 > d32
+PASS: gdb.base/dfp-test.exp: p ds.dec32 < ds.int4
+PASS: gdb.base/dfp-test.exp: p ds.int4 > ds.dec64
+PASS: gdb.base/dfp-test.exp: p ds.dec128 > ds.int4
+PASS: gdb.base/dfp-test.exp: p d32 + ds.long8
+PASS: gdb.base/dfp-test.exp: p d64 + ds.float4
+PASS: gdb.base/dfp-test.exp: p ds.double8 + d128
+PASS: gdb.base/dfp-test.exp: print ds.dec32=d32
+PASS: gdb.base/dfp-test.exp: print ds.dec64=d64
+PASS: gdb.base/dfp-test.exp: print ds.dec128=d128
+PASS: gdb.base/dfp-test.exp: print ds.dec32 = -d32
+PASS: gdb.base/dfp-test.exp: print ds.dec64 = -d64
+PASS: gdb.base/dfp-test.exp: print ds.dec128 = -d128
+PASS: gdb.base/dfp-test.exp: print ds.double8 = ds.dec64
+PASS: gdb.base/dfp-test.exp: print ds.dec64 = ds.float4
+PASS: gdb.base/dfp-test.exp: print ds.dec128 = -ds.double8
+PASS: gdb.base/dfp-test.exp: print ds.dec128 = ds.dec32
+PASS: gdb.base/dfp-test.exp: print ds.dec32 = ds.int4
+PASS: gdb.base/dfp-test.exp: print ds.int4 = 7.3dl
+Running ./gdb.base/disabled-location.exp ...
+PASS: gdb.base/disabled-location.exp: setting breakpoint on function
+PASS: gdb.base/disabled-location.exp: disable location
+PASS: gdb.base/disabled-location.exp: step doesn't trip on disabled location
+Running ./gdb.base/disasm-end-cu.exp ...
+PASS: gdb.base/disasm-end-cu.exp: get hexadecimal valueof "&main"
+PASS: gdb.base/disasm-end-cu.exp: get hexadecimal valueof "&dummy_3"
+PASS: gdb.base/disasm-end-cu.exp: disassemble command returned some output
+Running ./gdb.base/display.exp ...
+PASS: gdb.base/display.exp: break  do_loops
+PASS: gdb.base/display.exp: get to do_loops
+PASS: gdb.base/display.exp: set watch
+PASS: gdb.base/display.exp: break loop end
+PASS: gdb.base/display.exp: inf disp
+PASS: gdb.base/display.exp: display i
+PASS: gdb.base/display.exp: display j
+PASS: gdb.base/display.exp: display &k
+PASS: gdb.base/display.exp: display/f f
+PASS: gdb.base/display.exp: display/s &sum
+PASS: gdb.base/display.exp: first disp
+PASS: gdb.base/display.exp: second disp
+PASS: gdb.base/display.exp: catch err
+PASS: gdb.base/display.exp: disab disp 1
+PASS: gdb.base/display.exp: disab disp 2
+PASS: gdb.base/display.exp: re-enab
+PASS: gdb.base/display.exp: re-enab of enab
+PASS: gdb.base/display.exp: undisp
+PASS: gdb.base/display.exp: info disp
+PASS: gdb.base/display.exp: next hit
+PASS: gdb.base/display.exp: undisp all
+PASS: gdb.base/display.exp: disp *p_i
+PASS: gdb.base/display.exp: p p_i = 0x0
+PASS: gdb.base/display.exp: display bad address
+PASS: gdb.base/display.exp: p p_i = &i
+PASS: gdb.base/display.exp: display good address
+PASS: gdb.base/display.exp: undisp all again
+PASS: gdb.base/display.exp: disab 3
+PASS: gdb.base/display.exp: watch off
+PASS: gdb.base/display.exp: finish
+PASS: gdb.base/display.exp: step
+PASS: gdb.base/display.exp: tbreak in do_vars
+PASS: gdb.base/display.exp: cont
+PASS: gdb.base/display.exp: printf
+PASS: gdb.base/display.exp: printf %d
+PASS: gdb.base/display.exp: printf "%d
+PASS: gdb.base/display.exp: printf "%d%d",i
+PASS: gdb.base/display.exp: printf "\\!\a\f\r\t\v\b\n"
+PASS: gdb.base/display.exp: re-set term
+PASS: gdb.base/display.exp: printf "\w"
+PASS: gdb.base/display.exp: printf "%d" j
+PASS: gdb.base/display.exp: printf "%p\n", 0
+PASS: gdb.base/display.exp: printf "%p\n", 1
+PASS: gdb.base/display.exp: print/z j
+PASS: gdb.base/display.exp: debug test output 1
+PASS: gdb.base/display.exp: debug test output 1a
+PASS: gdb.base/display.exp: debug test output 2
+PASS: gdb.base/display.exp: debug test output 2a
+PASS: gdb.base/display.exp: debug test output 3
+PASS: gdb.base/display.exp: x/0 j
+PASS: gdb.base/display.exp: print/0 j
+PASS: gdb.base/display.exp: ignored s
+PASS: gdb.base/display.exp: no i
+PASS: gdb.base/display.exp: print/a &sum
+PASS: gdb.base/display.exp: print/a main+4
+PASS: gdb.base/display.exp: print/a $pc
+PASS: gdb.base/display.exp: print/a &&j
+Running ./gdb.base/disp-step-syscall.exp ...
+PASS: gdb.base/disp-step-syscall.exp: fork: delete break 1
+PASS: gdb.base/disp-step-syscall.exp: fork: break marker
+PASS: gdb.base/disp-step-syscall.exp: fork: set displaced-stepping off
+PASS: gdb.base/disp-step-syscall.exp: fork: break fork
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to fork (1st time)
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to fork (2nd time)
+PASS: gdb.base/disp-step-syscall.exp: fork: display/i $pc
+PASS: gdb.base/disp-step-syscall.exp: fork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: fork: stepi fork insn
+PASS: gdb.base/disp-step-syscall.exp: fork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to fork (3rd time)
+PASS: gdb.base/disp-step-syscall.exp: fork: break on syscall insns
+PASS: gdb.base/disp-step-syscall.exp: fork: delete break fork
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to syscall insn fork
+PASS: gdb.base/disp-step-syscall.exp: fork: set displaced-stepping on
+PASS: gdb.base/disp-step-syscall.exp: fork: single step over fork
+PASS: gdb.base/disp-step-syscall.exp: fork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: fork: single step over fork final pc
+PASS: gdb.base/disp-step-syscall.exp: fork: delete break fork insn
+PASS: gdb.base/disp-step-syscall.exp: fork: continue to marker (fork)
+PASS: gdb.base/disp-step-syscall.exp: vfork: delete break 1
+PASS: gdb.base/disp-step-syscall.exp: vfork: break marker
+PASS: gdb.base/disp-step-syscall.exp: vfork: set displaced-stepping off
+PASS: gdb.base/disp-step-syscall.exp: vfork: break vfork
+PASS: gdb.base/disp-step-syscall.exp: vfork: continue to vfork (1st time)
+PASS: gdb.base/disp-step-syscall.exp: vfork: continue to vfork (2nd time)
+PASS: gdb.base/disp-step-syscall.exp: vfork: display/i $pc
+PASS: gdb.base/disp-step-syscall.exp: vfork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: vfork: stepi vfork insn
+PASS: gdb.base/disp-step-syscall.exp: vfork: get hexadecimal valueof "$pc"
+PASS: gdb.base/disp-step-syscall.exp: vfork: continue to vfork (3rd time)
+PASS: gdb.base/disp-step-syscall.exp: vfork: break on syscall insns
+PASS: gdb.base/disp-step-syscall.exp: vfork: delete break vfork
+PASS: gdb.base/disp-step-syscall.exp: vfork: continue to syscall insn vfork
+PASS: gdb.base/disp-step-syscall.exp: vfork: set displaced-stepping on
+KFAIL: gdb.base/disp-step-syscall.exp: vfork: single step over vfork (PRMS: server/13796)
+Running ./gdb.base/dmsym.exp ...
+PASS: gdb.base/dmsym.exp: set lang ada
+PASS: gdb.base/dmsym.exp: break pck__foo__bar__minsym
+PASS: gdb.base/dmsym.exp: info line pck__foo__bar__minsym
+PASS: gdb.base/dmsym.exp: set lang auto
+PASS: gdb.base/dmsym.exp: Run until breakpoint at BREAK
+PASS: gdb.base/dmsym.exp: continue
+PASS: gdb.base/dmsym.exp: print val
+Running ./gdb.base/dprintf.exp ...
+PASS: gdb.base/dprintf.exp: dprintf
+PASS: gdb.base/dprintf.exp: dprintf foo
+PASS: gdb.base/dprintf.exp: dprintf 29
+PASS: gdb.base/dprintf.exp: dprintf foo,"At foo entry\n"
+PASS: gdb.base/dprintf.exp: ignore $bpnum 1
+PASS: gdb.base/dprintf.exp: dprintf 26,"arg=%d, g=%d\n", arg, g
+PASS: gdb.base/dprintf.exp: dprintf info 1
+PASS: gdb.base/dprintf.exp: break 27
+PASS: gdb.base/dprintf.exp: 1st dprintf, gdb
+PASS: gdb.base/dprintf.exp: 2nd dprintf, gdb
+PASS: gdb.base/dprintf.exp: Set dprintf style to agent - can do
+PASS: gdb.base/dprintf.exp: 1st dprintf, agent
+PASS: gdb.base/dprintf.exp: 2nd dprintf, agent
+PASS: gdb.base/dprintf.exp: dprintf info 2
+PASS: gdb.base/dprintf.exp: Set dprintf style to an unrecognized type
+Running ./gdb.base/dprintf-next.exp ...
+PASS: gdb.base/dprintf-next.exp: dprintf 24, "%d\n", x
+PASS: gdb.base/dprintf-next.exp: next 1
+PASS: gdb.base/dprintf-next.exp: next 2
+Running ./gdb.base/dprintf-non-stop.exp ...
+UNSUPPORTED: gdb.base/dprintf-non-stop.exp: Testing dprintf with remote/non-stop is not supported.
+Running ./gdb.base/dprintf-pending.exp ...
+PASS: gdb.base/dprintf-pending.exp: without format: set pending dprintf
+PASS: gdb.base/dprintf-pending.exp: without format: resolved dprintf fails to be re-set
+PASS: gdb.base/dprintf-pending.exp: without symbols: set pending dprintf
+PASS: gdb.base/dprintf-pending.exp: without symbols: single pending dprintf info
+PASS: gdb.base/dprintf-pending.exp: without symbols: run to resolved dprintf
+PASS: gdb.base/dprintf-pending.exp: set pending dprintf
+PASS: gdb.base/dprintf-pending.exp: single pending dprintf info
+PASS: gdb.base/dprintf-pending.exp: run to resolved dprintf
+Running ./gdb.base/dump.exp ...
+PASS: gdb.base/dump.exp: inaccessible memory is reported
+PASS: gdb.base/dump.exp: endianness: little
+PASS: gdb.base/dump.exp: dump array as value, default
+PASS: gdb.base/dump.exp: dump struct as value, default
+PASS: gdb.base/dump.exp: dump array as value, binary
+PASS: gdb.base/dump.exp: dump struct as value, binary
+PASS: gdb.base/dump.exp: dump array as value, srec
+PASS: gdb.base/dump.exp: dump struct as value, srec
+FAIL: gdb.base/dump.exp: dump array as value, intel hex
+FAIL: gdb.base/dump.exp: dump struct as value, intel hex
+PASS: gdb.base/dump.exp: dump array as value, tekhex
+PASS: gdb.base/dump.exp: dump struct as value, tekhex
+PASS: gdb.base/dump.exp: capture /x &intarray[0]
+PASS: gdb.base/dump.exp: capture /x &intarray[32]
+PASS: gdb.base/dump.exp: capture /x &intstruct
+PASS: gdb.base/dump.exp: capture /x &intstruct + 1
+PASS: gdb.base/dump.exp: capture intarray
+PASS: gdb.base/dump.exp: capture intstruct
+PASS: gdb.base/dump.exp: capture type of pointer &intarray
+PASS: gdb.base/dump.exp: capture type of pointer &intstruct
+PASS: gdb.base/dump.exp: dump array as memory, default
+PASS: gdb.base/dump.exp: dump struct as memory, default
+PASS: gdb.base/dump.exp: dump array as memory, binary
+PASS: gdb.base/dump.exp: dump struct as memory, binary
+PASS: gdb.base/dump.exp: dump array as memory, srec
+PASS: gdb.base/dump.exp: dump struct as memory, srec
+FAIL: gdb.base/dump.exp: dump array as memory, ihex
+FAIL: gdb.base/dump.exp: dump struct as memory, ihex
+PASS: gdb.base/dump.exp: dump array as memory, tekhex
+PASS: gdb.base/dump.exp: dump struct as memory, tekhex
+PASS: gdb.base/dump.exp: dump array as mem, srec, expressions
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, srec; file restored ok
+PASS: gdb.base/dump.exp: array as value, srec; capture intarray
+FAIL: gdb.base/dump.exp: array as value, srec; value restored ok
+PASS: gdb.base/dump.exp: struct as value, srec; file restored ok
+PASS: gdb.base/dump.exp: struct as value, srec; capture intstruct
+FAIL: gdb.base/dump.exp: struct as value, srec; value restored ok
+PASS: gdb.base/dump.exp: zero all
+PASS: gdb.base/dump.exp: array as memory, srec; file restored ok
+PASS: gdb.base/dump.exp: array as memory, srec; capture intarray
+FAIL: gdb.base/dump.exp: array as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, srec; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, srec; capture intstruct
+FAIL: gdb.base/dump.exp: struct as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+FAIL: gdb.base/dump.exp: array as value, ihex; file restored ok
+PASS: gdb.base/dump.exp: array as value, ihex; capture intarray
+FAIL: gdb.base/dump.exp: array as value, ihex; value restored ok
+FAIL: gdb.base/dump.exp: struct as value, ihex; file restored ok
+PASS: gdb.base/dump.exp: struct as value, ihex; capture intstruct
+FAIL: gdb.base/dump.exp: struct as value, ihex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+FAIL: gdb.base/dump.exp: array as memory, ihex; file restored ok
+PASS: gdb.base/dump.exp: array as memory, ihex; capture intarray
+FAIL: gdb.base/dump.exp: array as memory, ihex; value restored ok
+FAIL: gdb.base/dump.exp: struct as memory, ihex; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, ihex; capture intstruct
+FAIL: gdb.base/dump.exp: struct as memory, ihex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array as value, tekhex; capture intarray
+FAIL: gdb.base/dump.exp: array as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: struct as value, tekhex; file restored ok
+PASS: gdb.base/dump.exp: struct as value, tekhex; capture intstruct
+FAIL: gdb.base/dump.exp: struct as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as memory, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array as memory, tekhex; capture intarray
+FAIL: gdb.base/dump.exp: array as memory, tekhex; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, tekhex; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, tekhex; capture intstruct
+FAIL: gdb.base/dump.exp: struct as memory, tekhex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as value, binary; file restored ok
+PASS: gdb.base/dump.exp: array as value, binary; capture intarray
+PASS: gdb.base/dump.exp: array as value, binary; value restored ok
+PASS: gdb.base/dump.exp: struct as value, binary; file restored ok
+PASS: gdb.base/dump.exp: struct as value, binary; capture intstruct
+PASS: gdb.base/dump.exp: struct as value, binary; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array as memory, binary; file restored ok
+PASS: gdb.base/dump.exp: array as memory, binary; capture intarray
+PASS: gdb.base/dump.exp: array as memory, binary; value restored ok
+PASS: gdb.base/dump.exp: struct as memory, binary; file restored ok
+PASS: gdb.base/dump.exp: struct as memory, binary; capture intstruct
+PASS: gdb.base/dump.exp: struct as memory, binary; value restored ok
+PASS: gdb.base/dump.exp: capture /x &intarray2[0]
+PASS: gdb.base/dump.exp: capture /x &intstruct2
+PASS: gdb.base/dump.exp: capture (char *) &intarray2 - (char *) &intarray
+PASS: gdb.base/dump.exp: capture (char *) &intstruct2 - (char *) &intstruct
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, srec; file restored ok
+PASS: gdb.base/dump.exp: array copy, srec; capture intarray2
+FAIL: gdb.base/dump.exp: array copy, srec; value restored ok
+PASS: gdb.base/dump.exp: struct copy, srec; file restored ok
+PASS: gdb.base/dump.exp: struct copy, srec; capture intstruct2
+FAIL: gdb.base/dump.exp: struct copy, srec; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+FAIL: gdb.base/dump.exp: array copy, ihex; file restored ok
+PASS: gdb.base/dump.exp: array copy, ihex; capture intarray2
+FAIL: gdb.base/dump.exp: array copy, ihex; value restored ok
+FAIL: gdb.base/dump.exp: struct copy, ihex; file restored ok
+PASS: gdb.base/dump.exp: struct copy, ihex; capture intstruct2
+FAIL: gdb.base/dump.exp: struct copy, ihex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array copy, tekhex; capture intarray2
+FAIL: gdb.base/dump.exp: array copy, tekhex; value restored ok
+PASS: gdb.base/dump.exp: struct copy, tekhex; file restored ok
+PASS: gdb.base/dump.exp: struct copy, tekhex; capture intstruct2
+FAIL: gdb.base/dump.exp: struct copy, tekhex; value restored ok
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array copy, binary; file restored ok
+PASS: gdb.base/dump.exp: array copy, binary; capture intarray2
+PASS: gdb.base/dump.exp: array copy, binary; value restored ok
+PASS: gdb.base/dump.exp: struct copy, binary; file restored ok
+PASS: gdb.base/dump.exp: struct copy, binary; capture intstruct2
+PASS: gdb.base/dump.exp: struct copy, binary; value restored ok
+PASS: gdb.base/dump.exp: capture /x &intarray[3]
+PASS: gdb.base/dump.exp: capture /x &intarray[4]
+PASS: gdb.base/dump.exp: capture /x (char *) &intarray[3] - (char *) &intarray[0]
+PASS: gdb.base/dump.exp: capture /x (char *) &intarray[4] - (char *) &intarray[0]
+PASS: gdb.base/dump.exp: print zero_all ()
+FAIL: gdb.base/dump.exp: array partial, srec; file restored ok
+PASS: gdb.base/dump.exp: array partial, srec; capture intarray[3]
+FAIL: gdb.base/dump.exp: array partial, srec; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 1
+PASS: gdb.base/dump.exp: element 4 not changed - 1
+PASS: gdb.base/dump.exp: print zero_all ()
+FAIL: gdb.base/dump.exp: array partial, ihex; file restored ok
+PASS: gdb.base/dump.exp: array partial, ihex; capture intarray[3]
+FAIL: gdb.base/dump.exp: array partial, ihex; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 2
+PASS: gdb.base/dump.exp: element 4 not changed - 2
+PASS: gdb.base/dump.exp: print zero_all ()
+FAIL: gdb.base/dump.exp: array partial, tekhex; file restored ok
+PASS: gdb.base/dump.exp: array partial, tekhex; capture intarray[3]
+FAIL: gdb.base/dump.exp: array partial, tekhex; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 3
+PASS: gdb.base/dump.exp: element 4 not changed - 3
+PASS: gdb.base/dump.exp: print zero_all ()
+PASS: gdb.base/dump.exp: array partial, binary; file restored ok
+PASS: gdb.base/dump.exp: array partial, binary; capture intarray[3]
+PASS: gdb.base/dump.exp: array partial, binary; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed - 4
+PASS: gdb.base/dump.exp: element 4 not changed - 4
+FAIL: gdb.base/dump.exp: array partial with expressions; file restored ok
+PASS: gdb.base/dump.exp: array partial with expressions; capture intarray2[3]
+FAIL: gdb.base/dump.exp: array partial with expressions; value restored ok
+PASS: gdb.base/dump.exp: element 2 not changed, == 4
+PASS: gdb.base/dump.exp: element 4 not changed, == 4
+PASS: gdb.base/dump.exp: setting little endianness
+PASS: gdb.base/dump.exp: file binfile; capture intarray
+PASS: gdb.base/dump.exp: start with intarray un-initialized
+PASS: gdb.base/dump.exp: file binfile; capture intstruct
+PASS: gdb.base/dump.exp: start with intstruct un-initialized
+PASS: gdb.base/dump.exp: reload array as value, srec; capture * (int (*)[32]) 0x555555556040
+FAIL: gdb.base/dump.exp: reload array as value, srec; value restored ok
+PASS: gdb.base/dump.exp: reload struct as value, srec; capture * (struct teststruct *) 0x555555556140
+FAIL: gdb.base/dump.exp: reload struct as value, srec; value restored ok
+PASS: gdb.base/dump.exp: reload array as memory, srec; capture * (int (*)[32]) 0x555555556040
+FAIL: gdb.base/dump.exp: reload array as memory, srec; value restored ok
+PASS: gdb.base/dump.exp: reload struct as memory, srec; capture * (struct teststruct *) 0x555555556140
+FAIL: gdb.base/dump.exp: reload struct as memory, srec; value restored ok
+ERROR: Couldn't load intarr1.ihex into /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../../gdb/gdb.
+UNRESOLVED: gdb.base/dump.exp: reload array as value, intel hex; capture * (int (*)[32]) 0x555555556040
+FAIL: gdb.base/dump.exp: reload array as value, intel hex; value restored ok
+ERROR: Couldn't load intstr1.ihex into /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../../gdb/gdb.
+UNRESOLVED: gdb.base/dump.exp: reload struct as value, intel hex; capture * (struct teststruct *) 0x555555556140
+FAIL: gdb.base/dump.exp: reload struct as value, intel hex; value restored ok
+ERROR: Couldn't load intarr2.ihex into /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../../gdb/gdb.
+UNRESOLVED: gdb.base/dump.exp: reload array as memory, intel hex; capture * (int (*)[32]) 0x555555556040
+FAIL: gdb.base/dump.exp: reload array as memory, intel hex; value restored ok
+ERROR: Couldn't load intstr2.ihex into /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../../gdb/gdb.
+UNRESOLVED: gdb.base/dump.exp: reload struct as memory, intel hex; capture * (struct teststruct *) 0x555555556140
+FAIL: gdb.base/dump.exp: reload struct as memory, intel hex; value restored ok
+PASS: gdb.base/dump.exp: reload array as value, tekhex; capture * (int (*)[32]) 0x555555556040
+FAIL: gdb.base/dump.exp: reload array as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as value, tekhex; capture * (struct teststruct *) 0x555555556140
+FAIL: gdb.base/dump.exp: reload struct as value, tekhex; value restored ok
+PASS: gdb.base/dump.exp: reload array as memory, tekhex; capture * (int (*)[32]) 0x555555556040
+FAIL: gdb.base/dump.exp: reload array as memory, tekhex; value restored ok
+PASS: gdb.base/dump.exp: reload struct as memory, tekhex; capture * (struct teststruct *) 0x555555556140
+FAIL: gdb.base/dump.exp: reload struct as memory, tekhex; value restored ok
+Running ./gdb.base/duplicate-bp.exp ...
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: delete $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: del_1_stop_2: delete #1, stop at #2
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: delete $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: del_2_stop_1: delete #2, stop at #1
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: disable $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: step
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: delete $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: disable #1, delete #2, stop at #3
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: disable $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: step
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: delete $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: disable #2, delete #1, stop at #3
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: disable $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: step
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: delete $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: disable #1, delete #3, stop at #2
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: disable $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: step
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: delete $bp_num_1
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: disable #3, delete #1, stop at #2
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: disable $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: step
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: delete $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: disable #2, delete #3, stop at #1
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: set $bp_num_1 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: set $bp_num_2 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: set $bp_num_3 = $bpnum
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: step to place breakpoints
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: disable $bp_num_3
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: step
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: delete $bp_num_2
+PASS: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: disable #3, delete #2, stop at #1
+Running ./gdb.base/dup-sect.exp ...
+PASS: gdb.base/dup-sect.exp: rename section
+PASS: gdb.base/dup-sect.exp: split
+PASS: gdb.base/dup-sect.exp: strip
+PASS: gdb.base/dup-sect.exp: var1 after strip
+PASS: gdb.base/dup-sect.exp: var2 after strip
+Running ./gdb.base/echo.exp ...
+PASS: gdb.base/echo.exp: Echo test
+Running ./gdb.base/empty_exe.exp ...
+PASS: gdb.base/empty_exe.exp: file ''
+PASS: gdb.base/empty_exe.exp: print 1
+Running ./gdb.base/ena-dis-br.exp ...
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: enable break marker1
+PASS: gdb.base/ena-dis-br.exp: info break marker1
+PASS: gdb.base/ena-dis-br.exp: continue to break marker1
+PASS: gdb.base/ena-dis-br.exp: delete break marker1
+PASS: gdb.base/ena-dis-br.exp: break marker2
+PASS: gdb.base/ena-dis-br.exp: enable once break marker2
+PASS: gdb.base/ena-dis-br.exp: info auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: continue to auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: info auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop at auto-disabled break marker2
+PASS: gdb.base/ena-dis-br.exp: break marker3
+PASS: gdb.base/ena-dis-br.exp: enable del break marker3
+PASS: gdb.base/ena-dis-br.exp: info auto-deleted break marker2
+PASS: gdb.base/ena-dis-br.exp: continue to auto-deleted break marker3
+PASS: gdb.base/ena-dis-br.exp: info auto-deleted break marker3
+PASS: gdb.base/ena-dis-br.exp: break marker4
+PASS: gdb.base/ena-dis-br.exp: disable break marker4
+PASS: gdb.base/ena-dis-br.exp: info break marker4
+PASS: gdb.base/ena-dis-br.exp: break 113
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: disable break with count
+PASS: gdb.base/ena-dis-br.exp: continue from enable count, first time
+PASS: gdb.base/ena-dis-br.exp: continue from enable count, second time
+PASS: gdb.base/ena-dis-br.exp: continue through enable count, now disabled
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: ignore non-existent break
+PASS: gdb.base/ena-dis-br.exp: ignore break with missing ignore count
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1 -1
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1 0
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1
+PASS: gdb.base/ena-dis-br.exp: info ignored break marker1
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored break marker1
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+PASS: gdb.base/ena-dis-br.exp: continue to break marker1, 2nd time
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1
+PASS: gdb.base/ena-dis-br.exp: enable del break marker1
+PASS: gdb.base/ena-dis-br.exp: info break marker1
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored & auto-deleted break marker1
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+PASS: gdb.base/ena-dis-br.exp: continue to ignored & auto-deleted break marker1
+PASS: gdb.base/ena-dis-br.exp: break marker1
+PASS: gdb.base/ena-dis-br.exp: ignore break marker1
+PASS: gdb.base/ena-dis-br.exp: disable break marker1
+PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored & disabled break marker1
+PASS: gdb.base/ena-dis-br.exp: rerun to main
+PASS: gdb.base/ena-dis-br.exp: info ignored & disabled break marker1
+PASS: gdb.base/ena-dis-br.exp: prepare to continue with ignore count
+PASS: gdb.base/ena-dis-br.exp: continue with ignore count
+PASS: gdb.base/ena-dis-br.exp: step
+PASS: gdb.base/ena-dis-br.exp: continue with ignore count, not stopped at bpt
+Running ./gdb.base/ending-run.exp ...
+PASS: gdb.base/ending-run.exp: bpt at line before routine
+PASS: gdb.base/ending-run.exp: b ending-run.c:14, one
+PASS: gdb.base/ending-run.exp: b ending-run.c:31
+PASS: gdb.base/ending-run.exp: run
+PASS: gdb.base/ending-run.exp: clear worked
+PASS: gdb.base/ending-run.exp: cleared bp at line before routine
+PASS: gdb.base/ending-run.exp: b ending-run.c:1
+PASS: gdb.base/ending-run.exp: b ending-run.c:14, two
+PASS: gdb.base/ending-run.exp: Cleared 2 by line
+PASS: gdb.base/ending-run.exp: b ending-run.c:14
+PASS: gdb.base/ending-run.exp: Breakpoint 7 at *ending-run.c:14
+PASS: gdb.base/ending-run.exp: Clear 2 by default
+PASS: gdb.base/ending-run.exp: all set to continue
+PASS: gdb.base/ending-run.exp: cont
+PASS: gdb.base/ending-run.exp: step out of main
+Running ./gdb.base/enum_cond.exp ...
+PASS: gdb.base/enum_cond.exp: break call_me if param.e == 1
+PASS: gdb.base/enum_cond.exp: continue to conditional breakpoint in call_me
+Running ./gdb.base/enumval.exp ...
+PASS: gdb.base/enumval.exp: print e
+PASS: gdb.base/enumval.exp: print f
+PASS: gdb.base/enumval.exp: print J
+PASS: gdb.base/enumval.exp: print K
+Running ./gdb.base/environ.exp ...
+Running ./gdb.base/eu-strip-infcall.exp ...
+PASS: gdb.base/eu-strip-infcall.exp: infcall
+Running ./gdb.base/eval.exp ...
+PASS: gdb.base/eval.exp: Initialize $a.
+PASS: gdb.base/eval.exp: First eval.
+PASS: gdb.base/eval.exp: Second eval.
+Running ./gdb.base/eval-skip.exp ...
+PASS: gdb.base/eval-skip.exp: set variable x=14
+PASS: gdb.base/eval-skip.exp: set variable y=2
+PASS: gdb.base/eval-skip.exp: set variable z=2
+PASS: gdb.base/eval-skip.exp: set variable w=3
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x+y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x-y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x*y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x/y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x%y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x&&y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x||y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x&y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x|y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x^y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x < y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x <= y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x>y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x>=y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x==y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x!=y))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x<<31))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x>>31))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (!x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (~x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (-x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x++))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (++x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x--))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (--x))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x+=7))
+PASS: gdb.base/eval-skip.exp: print value of (0 && (x=y))
+Running ./gdb.base/exe-lock.exp ...
+PASS: gdb.base/exe-lock.exp: continue until exit
+Running ./gdb.base/expand-psymtabs.exp ...
+PASS: gdb.base/expand-psymtabs.exp: Expand psymtabs
+Running ./gdb.base/exprs.exp ...
+PASS: gdb.base/exprs.exp: print char == (setup)
+PASS: gdb.base/exprs.exp: print char == (print v_char == 0)
+PASS: gdb.base/exprs.exp: print char == (print v_char == 127)
+PASS: gdb.base/exprs.exp: print char != (setup)
+PASS: gdb.base/exprs.exp: print char != (print v_char != 0)
+PASS: gdb.base/exprs.exp: print char != (print v_char != 127)
+PASS: gdb.base/exprs.exp: print char < (setup)
+PASS: gdb.base/exprs.exp: print char < (print v_char < 0)
+PASS: gdb.base/exprs.exp: print char < (print v_char < 127)
+PASS: gdb.base/exprs.exp: print char > (setup)
+PASS: gdb.base/exprs.exp: print char > (print v_char > 0)
+PASS: gdb.base/exprs.exp: print char > (print v_char > 127)
+PASS: gdb.base/exprs.exp: print signed char == (setup)
+PASS: gdb.base/exprs.exp: print signed char == (print v_signed_char == 0)
+PASS: gdb.base/exprs.exp: print signed char == (print v_signed_char == 127)
+PASS: gdb.base/exprs.exp: print signed char != (setup)
+PASS: gdb.base/exprs.exp: print signed char != (print v_signed_char != 0)
+PASS: gdb.base/exprs.exp: print signed char != (print v_signed_char != 127)
+PASS: gdb.base/exprs.exp: print signed char < (setup)
+PASS: gdb.base/exprs.exp: print signed char < (print v_signed_char < 0)
+PASS: gdb.base/exprs.exp: print signed char < (print v_signed_char < 127)
+PASS: gdb.base/exprs.exp: print signed char > (setup)
+PASS: gdb.base/exprs.exp: print signed char > (print v_signed_char > 0)
+PASS: gdb.base/exprs.exp: print signed char > (print v_signed_char > 127)
+PASS: gdb.base/exprs.exp: print signed char == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char == (minus) (print v_signed_char == 0)
+PASS: gdb.base/exprs.exp: print signed char == (minus) (print v_signed_char == -1)
+PASS: gdb.base/exprs.exp: print signed char != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char != (minus) (print v_signed_char != 0)
+PASS: gdb.base/exprs.exp: print signed char != (minus) (print v_signed_char != -1)
+PASS: gdb.base/exprs.exp: print signed char < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char < (minus) (print v_signed_char < 0)
+PASS: gdb.base/exprs.exp: print signed char < (minus) (print v_signed_char < 127)
+PASS: gdb.base/exprs.exp: print signed char > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed char > (minus) (print v_signed_char > 0)
+PASS: gdb.base/exprs.exp: print signed char > (minus) (print v_signed_char > 127)
+PASS: gdb.base/exprs.exp: print unsigned char == (setup)
+PASS: gdb.base/exprs.exp: print unsigned char == (print v_unsigned_char == 0)
+PASS: gdb.base/exprs.exp: print unsigned char == (print v_unsigned_char == 127)
+PASS: gdb.base/exprs.exp: print unsigned char != (setup)
+PASS: gdb.base/exprs.exp: print unsigned char != (print v_unsigned_char != 0)
+PASS: gdb.base/exprs.exp: print unsigned char != (print v_unsigned_char != 127)
+PASS: gdb.base/exprs.exp: print unsigned char < (setup)
+PASS: gdb.base/exprs.exp: print unsigned char < (print v_unsigned_char < 0)
+PASS: gdb.base/exprs.exp: print unsigned char < (print v_unsigned_char < 127)
+PASS: gdb.base/exprs.exp: print unsigned char > (setup)
+PASS: gdb.base/exprs.exp: print unsigned char > (print v_unsigned_char > 0)
+PASS: gdb.base/exprs.exp: print unsigned char > (print v_unsigned_char > 127)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (print v_unsigned_char == 0)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (print v_unsigned_char == ~0)
+PASS: gdb.base/exprs.exp: print unsigned char == (~0) (print v_unsigned_char == (unsigned char)~0)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (print v_unsigned_char != 0)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (print v_unsigned_char != (unsigned char)~0)
+PASS: gdb.base/exprs.exp: print unsigned char != (~0) (print v_unsigned_char != ~0)
+PASS: gdb.base/exprs.exp: print unsigned char < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char < (~0) (print v_unsigned_char < 0)
+PASS: gdb.base/exprs.exp: print unsigned char < (~0) (print v_unsigned_char < 127)
+PASS: gdb.base/exprs.exp: print unsigned char > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned char > (~0) (print v_unsigned_char > 0)
+PASS: gdb.base/exprs.exp: print unsigned char > (~0) (print v_unsigned_char > 127)
+PASS: gdb.base/exprs.exp: print signed short == (setup)
+PASS: gdb.base/exprs.exp: print signed short == (print v_short == 0)
+PASS: gdb.base/exprs.exp: print signed short == (print v_short == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short != (setup)
+PASS: gdb.base/exprs.exp: print signed short != (print v_short != 0)
+PASS: gdb.base/exprs.exp: print signed short != (print v_short != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short < (setup)
+PASS: gdb.base/exprs.exp: print signed short < (print v_short < 0)
+PASS: gdb.base/exprs.exp: print signed short < (print v_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short > (setup)
+PASS: gdb.base/exprs.exp: print signed short > (print v_short > 0)
+PASS: gdb.base/exprs.exp: print signed short > (print v_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short == (minus) (print v_short == 0)
+PASS: gdb.base/exprs.exp: print signed short == (minus) (print v_short == -1)
+PASS: gdb.base/exprs.exp: print signed short != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short != (minus) (print v_short != 0)
+PASS: gdb.base/exprs.exp: print signed short != (minus) (print v_short != -1)
+PASS: gdb.base/exprs.exp: print signed short < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short < (minus) (print v_short < 0)
+PASS: gdb.base/exprs.exp: print signed short < (minus) (print v_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed short > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed short > (minus) (print v_short > 0)
+PASS: gdb.base/exprs.exp: print signed short > (minus) (print v_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short == (setup)
+PASS: gdb.base/exprs.exp: print signed signed short == (print v_signed_short == 0)
+PASS: gdb.base/exprs.exp: print signed signed short == (print v_signed_short == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short != (setup)
+PASS: gdb.base/exprs.exp: print signed signed short != (print v_signed_short != 0)
+PASS: gdb.base/exprs.exp: print signed signed short != (print v_signed_short != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short < (setup)
+PASS: gdb.base/exprs.exp: print signed signed short < (print v_signed_short < 0)
+PASS: gdb.base/exprs.exp: print signed signed short < (print v_signed_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short > (setup)
+PASS: gdb.base/exprs.exp: print signed signed short > (print v_signed_short > 0)
+PASS: gdb.base/exprs.exp: print signed signed short > (print v_signed_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short == (minus) (print v_signed_short == 0)
+PASS: gdb.base/exprs.exp: print signed signed short == (minus) (print v_signed_short == -1)
+PASS: gdb.base/exprs.exp: print signed signed short != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short != (minus) (print v_signed_short != 0)
+PASS: gdb.base/exprs.exp: print signed signed short != (minus) (print v_signed_short != -1)
+PASS: gdb.base/exprs.exp: print signed signed short < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short < (minus) (print v_signed_short < 0)
+PASS: gdb.base/exprs.exp: print signed signed short < (minus) (print v_signed_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed short > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed short > (minus) (print v_signed_short > 0)
+PASS: gdb.base/exprs.exp: print signed signed short > (minus) (print v_signed_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short == (setup)
+PASS: gdb.base/exprs.exp: print unsigned short == (print v_unsigned_short == 0)
+PASS: gdb.base/exprs.exp: print unsigned short == (print v_unsigned_short == 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short != (setup)
+PASS: gdb.base/exprs.exp: print unsigned short != (print v_unsigned_short != 0)
+PASS: gdb.base/exprs.exp: print unsigned short != (print v_unsigned_short != 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short < (setup)
+PASS: gdb.base/exprs.exp: print unsigned short < (print v_unsigned_short < 0)
+PASS: gdb.base/exprs.exp: print unsigned short < (print v_unsigned_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short > (setup)
+PASS: gdb.base/exprs.exp: print unsigned short > (print v_unsigned_short > 0)
+PASS: gdb.base/exprs.exp: print unsigned short > (print v_unsigned_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (print v_unsigned_short == 0)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (print sizeof (v_unsigned_short) < sizeof (~0) && v_unsigned_short == ~0)
+PASS: gdb.base/exprs.exp: print unsigned short == (~0) (print v_unsigned_short == (unsigned short)~0)
+PASS: gdb.base/exprs.exp: print unsigned short != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short != (~0) (print v_unsigned_short != 0)
+PASS: gdb.base/exprs.exp: print unsigned short != (~0) (print v_unsigned_short != (unsigned short)~0)
+PASS: gdb.base/exprs.exp: print unsigned short < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short < (~0) (print v_unsigned_short < 0)
+PASS: gdb.base/exprs.exp: print unsigned short < (~0) (print v_unsigned_short < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned short > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned short > (~0) (print v_unsigned_short > 0)
+PASS: gdb.base/exprs.exp: print unsigned short > (~0) (print v_unsigned_short > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int == (setup)
+PASS: gdb.base/exprs.exp: print signed int == (print v_int == 0)
+PASS: gdb.base/exprs.exp: print signed int == (print v_int == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int != (setup)
+PASS: gdb.base/exprs.exp: print signed int != (print v_int != 0)
+PASS: gdb.base/exprs.exp: print signed int != (print v_int != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int < (setup)
+PASS: gdb.base/exprs.exp: print signed int < (print v_int < 0)
+PASS: gdb.base/exprs.exp: print signed int < (print v_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int > (setup)
+PASS: gdb.base/exprs.exp: print signed int > (print v_int > 0)
+PASS: gdb.base/exprs.exp: print signed int > (print v_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int == (minus) (print v_int == 0)
+PASS: gdb.base/exprs.exp: print signed int == (minus) (print v_int == -1)
+PASS: gdb.base/exprs.exp: print signed int != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int != (minus) (print v_int != 0)
+PASS: gdb.base/exprs.exp: print signed int != (minus) (print v_int != -1)
+PASS: gdb.base/exprs.exp: print signed int < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int < (minus) (print v_int < 0)
+PASS: gdb.base/exprs.exp: print signed int < (minus) (print v_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed int > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed int > (minus) (print v_int > 0)
+PASS: gdb.base/exprs.exp: print signed int > (minus) (print v_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int == (setup)
+PASS: gdb.base/exprs.exp: print signed signed int == (print v_signed_int == 0)
+PASS: gdb.base/exprs.exp: print signed signed int == (print v_signed_int == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int != (setup)
+PASS: gdb.base/exprs.exp: print signed signed int != (print v_signed_int != 0)
+PASS: gdb.base/exprs.exp: print signed signed int != (print v_signed_int != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int < (setup)
+PASS: gdb.base/exprs.exp: print signed signed int < (print v_signed_int < 0)
+PASS: gdb.base/exprs.exp: print signed signed int < (print v_signed_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int > (setup)
+PASS: gdb.base/exprs.exp: print signed signed int > (print v_signed_int > 0)
+PASS: gdb.base/exprs.exp: print signed signed int > (print v_signed_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int == (minus) (print v_signed_int == 0)
+PASS: gdb.base/exprs.exp: print signed signed int == (minus) (print v_signed_int == -1)
+PASS: gdb.base/exprs.exp: print signed signed int != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int != (minus) (print v_signed_int != 0)
+PASS: gdb.base/exprs.exp: print signed signed int != (minus) (print v_signed_int != -1)
+PASS: gdb.base/exprs.exp: print signed signed int < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int < (minus) (print v_signed_int < 0)
+PASS: gdb.base/exprs.exp: print signed signed int < (minus) (print v_signed_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed int > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed int > (minus) (print v_signed_int > 0)
+PASS: gdb.base/exprs.exp: print signed signed int > (minus) (print v_signed_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int == (setup)
+PASS: gdb.base/exprs.exp: print unsigned int == (print v_unsigned_int == 0)
+PASS: gdb.base/exprs.exp: print unsigned int == (print v_unsigned_int == 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int != (setup)
+PASS: gdb.base/exprs.exp: print unsigned int != (print v_unsigned_int != 0)
+PASS: gdb.base/exprs.exp: print unsigned int != (print v_unsigned_int != 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int < (setup)
+PASS: gdb.base/exprs.exp: print unsigned int < (print v_unsigned_int < 0)
+PASS: gdb.base/exprs.exp: print unsigned int < (print v_unsigned_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int > (setup)
+PASS: gdb.base/exprs.exp: print unsigned int > (print v_unsigned_int > 0)
+PASS: gdb.base/exprs.exp: print unsigned int > (print v_unsigned_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (print v_unsigned_int == 0)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (print v_unsigned_int == ~0)
+PASS: gdb.base/exprs.exp: print unsigned int == (~0) (print v_unsigned_int == (unsigned int)~0)
+PASS: gdb.base/exprs.exp: print unsigned int != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int != (~0) (print v_unsigned_int != 0)
+PASS: gdb.base/exprs.exp: print unsigned int != (~0) (print v_unsigned_int != (unsigned int)~0)
+PASS: gdb.base/exprs.exp: print unsigned int < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int < (~0) (print v_unsigned_int < 0)
+PASS: gdb.base/exprs.exp: print unsigned int < (~0) (print v_unsigned_int < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned int > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned int > (~0) (print v_unsigned_int > 0)
+PASS: gdb.base/exprs.exp: print unsigned int > (~0) (print v_unsigned_int > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long == (setup)
+PASS: gdb.base/exprs.exp: print signed long == (print v_long == 0)
+PASS: gdb.base/exprs.exp: print signed long == (print v_long == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long != (setup)
+PASS: gdb.base/exprs.exp: print signed long != (print v_long != 0)
+PASS: gdb.base/exprs.exp: print signed long != (print v_long != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long < (setup)
+PASS: gdb.base/exprs.exp: print signed long < (print v_long < 0)
+PASS: gdb.base/exprs.exp: print signed long < (print v_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long > (setup)
+PASS: gdb.base/exprs.exp: print signed long > (print v_long > 0)
+PASS: gdb.base/exprs.exp: print signed long > (print v_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long == (minus) (print v_long == 0)
+PASS: gdb.base/exprs.exp: print signed long == (minus) (print v_long == -1)
+PASS: gdb.base/exprs.exp: print signed long != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long != (minus) (print v_long != 0)
+PASS: gdb.base/exprs.exp: print signed long != (minus) (print v_long != -1)
+PASS: gdb.base/exprs.exp: print signed long < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long < (minus) (print v_long < 0)
+PASS: gdb.base/exprs.exp: print signed long < (minus) (print v_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed long > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed long > (minus) (print v_long > 0)
+PASS: gdb.base/exprs.exp: print signed long > (minus) (print v_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long == (setup)
+PASS: gdb.base/exprs.exp: print signed signed long == (print v_signed_long == 0)
+PASS: gdb.base/exprs.exp: print signed signed long == (print v_signed_long == 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long != (setup)
+PASS: gdb.base/exprs.exp: print signed signed long != (print v_signed_long != 0)
+PASS: gdb.base/exprs.exp: print signed signed long != (print v_signed_long != 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long < (setup)
+PASS: gdb.base/exprs.exp: print signed signed long < (print v_signed_long < 0)
+PASS: gdb.base/exprs.exp: print signed signed long < (print v_signed_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long > (setup)
+PASS: gdb.base/exprs.exp: print signed signed long > (print v_signed_long > 0)
+PASS: gdb.base/exprs.exp: print signed signed long > (print v_signed_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long == (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long == (minus) (print v_signed_long == 0)
+PASS: gdb.base/exprs.exp: print signed signed long == (minus) (print v_signed_long == -1)
+PASS: gdb.base/exprs.exp: print signed signed long != (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long != (minus) (print v_signed_long != 0)
+PASS: gdb.base/exprs.exp: print signed signed long != (minus) (print v_signed_long != -1)
+PASS: gdb.base/exprs.exp: print signed signed long < (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long < (minus) (print v_signed_long < 0)
+PASS: gdb.base/exprs.exp: print signed signed long < (minus) (print v_signed_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print signed signed long > (minus) (setup)
+PASS: gdb.base/exprs.exp: print signed signed long > (minus) (print v_signed_long > 0)
+PASS: gdb.base/exprs.exp: print signed signed long > (minus) (print v_signed_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long == (setup)
+PASS: gdb.base/exprs.exp: print unsigned long == (print v_unsigned_long == 0)
+PASS: gdb.base/exprs.exp: print unsigned long == (print v_unsigned_long == 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long != (setup)
+PASS: gdb.base/exprs.exp: print unsigned long != (print v_unsigned_long != 0)
+PASS: gdb.base/exprs.exp: print unsigned long != (print v_unsigned_long != 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long < (setup)
+PASS: gdb.base/exprs.exp: print unsigned long < (print v_unsigned_long < 0)
+PASS: gdb.base/exprs.exp: print unsigned long < (print v_unsigned_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long > (setup)
+PASS: gdb.base/exprs.exp: print unsigned long > (print v_unsigned_long > 0)
+PASS: gdb.base/exprs.exp: print unsigned long > (print v_unsigned_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (print v_unsigned_long == 0)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (print v_unsigned_long == ~0)
+PASS: gdb.base/exprs.exp: print unsigned long == (~0) (print v_unsigned_long == (unsigned long)~0)
+PASS: gdb.base/exprs.exp: print unsigned long != (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long != (~0) (print v_unsigned_long != 0)
+PASS: gdb.base/exprs.exp: print unsigned long != (~0) (print v_unsigned_long != (unsigned long)~0)
+PASS: gdb.base/exprs.exp: print unsigned long < (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long < (~0) (print v_unsigned_long < 0)
+PASS: gdb.base/exprs.exp: print unsigned long < (~0) (print v_unsigned_long < 0x7FFF)
+PASS: gdb.base/exprs.exp: print unsigned long > (~0) (setup)
+PASS: gdb.base/exprs.exp: print unsigned long > (~0) (print v_unsigned_long > 0)
+PASS: gdb.base/exprs.exp: print unsigned long > (~0) (print v_unsigned_long > 0x7FFF)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_char (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_char (print (void*)v_signed_char)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_short (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_short (print (void*)v_signed_short)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_int (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_int (print (void*)v_signed_int)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_long (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_signed_long (print (void*)v_signed_long)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_char (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_char (print (void*)v_unsigned_char)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_short (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_short (print (void*)v_unsigned_short)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_int (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_int (print (void*)v_unsigned_int)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_long (setup)
+PASS: gdb.base/exprs.exp: print (void*)v_unsigned_long (print (void*)v_unsigned_long)
+PASS: gdb.base/exprs.exp: sizeof (long long) > sizeof (long) (false)
+XFAIL: gdb.base/exprs.exp: truncate (void*) 0x00000000ffffffff + 1
+XFAIL: gdb.base/exprs.exp: truncate (void*) 0xffffffff00000000 - 1
+PASS: gdb.base/exprs.exp: \$[0-9]* = "xy" (setup)
+PASS: gdb.base/exprs.exp: \$[0-9]* = "xyz" (setup)
+PASS: gdb.base/exprs.exp: \$[0-9]* = red (setup)
+PASS: gdb.base/exprs.exp: set output-radix 8
+PASS: gdb.base/exprs.exp: \$[0-9]* = red (setup)
+PASS: gdb.base/exprs.exp: \$[0-9]* = 0 (setup)
+PASS: gdb.base/exprs.exp: set output-radix 10
+PASS: gdb.base/exprs.exp: set variable v_int = 1
+PASS: gdb.base/exprs.exp: print v_int++
+PASS: gdb.base/exprs.exp: print ++v_int
+PASS: gdb.base/exprs.exp: print v_int--
+PASS: gdb.base/exprs.exp: print --v_int
+PASS: gdb.base/exprs.exp: print v_int++ = 5
+PASS: gdb.base/exprs.exp: print v_int-- = 5
+PASS: gdb.base/exprs.exp: print v_int_array_init
+PASS: gdb.base/exprs.exp: print *v_int_array_init@1
+PASS: gdb.base/exprs.exp: print *v_int_array_init@2
+PASS: gdb.base/exprs.exp: print v_int_array_init[0]@1
+PASS: gdb.base/exprs.exp: print v_int_array_init[0]@2
+PASS: gdb.base/exprs.exp: print v_int_array_init[1]@1
+PASS: gdb.base/exprs.exp: set variable v_short_array[0] = 42
+PASS: gdb.base/exprs.exp: print {short} v_short_array
+PASS: gdb.base/exprs.exp: print (void) v_int_pointer
+PASS: gdb.base/exprs.exp: print & (void) v_char
+Running ./gdb.base/fileio.exp ...
+Running ./gdb.base/find.exp ...
+PASS: gdb.base/find.exp: breakpoint function in file
+PASS: gdb.base/find.exp: run until function breakpoint
+PASS: gdb.base/find.exp: find string pattern
+PASS: gdb.base/find.exp: pattern not found at end of range
+PASS: gdb.base/find.exp: pattern found at end of range
+PASS: gdb.base/find.exp: max-count
+PASS: gdb.base/find.exp: $_
+PASS: gdb.base/find.exp: $numfound
+PASS: gdb.base/find.exp: size,max-count, /1b
+PASS: gdb.base/find.exp: size,max-count, /b1
+PASS: gdb.base/find.exp: size,max-count, /b/1
+PASS: gdb.base/find.exp: size,max-count, /1/b
+PASS: gdb.base/find.exp: find byte pattern with end address
+PASS: gdb.base/find.exp: find 16-bit pattern
+PASS: gdb.base/find.exp: find 16-bit pattern
+PASS: gdb.base/find.exp: find 32-bit pattern
+PASS: gdb.base/find.exp: find 32-bit pattern
+PASS: gdb.base/find.exp: find 64-bit pattern
+PASS: gdb.base/find.exp: find 64-bit pattern
+PASS: gdb.base/find.exp: find mixed-sized pattern
+PASS: gdb.base/find.exp: search spanning large range
+PASS: gdb.base/find.exp: find int64_search_buf, +64/8*100, int64_search_buf
+Running ./gdb.base/find-unmapped.exp ...
+Running ./gdb.base/finish.exp ...
+PASS: gdb.base/finish.exp: set break on void_func
+PASS: gdb.base/finish.exp: continue to void_func
+PASS: gdb.base/finish.exp: finish from void_func
+PASS: gdb.base/finish.exp: set break on char_func
+PASS: gdb.base/finish.exp: continue to char_func
+PASS: gdb.base/finish.exp: finish from char_func
+PASS: gdb.base/finish.exp: set break on short_func
+PASS: gdb.base/finish.exp: continue to short_func
+PASS: gdb.base/finish.exp: finish from short_func
+PASS: gdb.base/finish.exp: set break on int_func
+PASS: gdb.base/finish.exp: continue to int_func
+PASS: gdb.base/finish.exp: finish from int_func
+PASS: gdb.base/finish.exp: set break on long_func
+PASS: gdb.base/finish.exp: continue to long_func
+PASS: gdb.base/finish.exp: finish from long_func
+PASS: gdb.base/finish.exp: set break on long_long_func
+PASS: gdb.base/finish.exp: continue to long_long_func
+PASS: gdb.base/finish.exp: finish from long_long_func
+PASS: gdb.base/finish.exp: set break on float_func
+PASS: gdb.base/finish.exp: continue to float_func
+PASS: gdb.base/finish.exp: finish from float_func
+PASS: gdb.base/finish.exp: set break on double_func
+PASS: gdb.base/finish.exp: continue to double_func
+PASS: gdb.base/finish.exp: finish from double_func
+PASS: gdb.base/finish.exp: Testing the "fin" abbreviation for "finish"
+Running ./gdb.base/fixsection.exp ...
+PASS: gdb.base/fixsection.exp: breakpoint at static_fun
+Running ./gdb.base/float.exp ...
+PASS: gdb.base/float.exp: info float
+PASS: gdb.base/float.exp: step
+PASS: gdb.base/float.exp: finish
+Running ./gdb.base/foll-exec.exp ...
+Running ./gdb.base/foll-fork.exp ...
+Running ./gdb.base/foll-vfork.exp ...
+Running ./gdb.base/fortran-sym-case.exp ...
+PASS: gdb.base/fortran-sym-case.exp: set language fortran
+PASS: gdb.base/fortran-sym-case.exp: frame
+Running ./gdb.base/frame-args.exp ...
+PASS: gdb.base/frame-args.exp: set print frame-arguments all
+PASS: gdb.base/frame-args.exp: frame 1 with print frame-arguments set to all
+PASS: gdb.base/frame-args.exp: set print frame-arguments scalars
+PASS: gdb.base/frame-args.exp: frame 1 with print frame-arguments set to scalars
+PASS: gdb.base/frame-args.exp: set print frame-arguments none
+PASS: gdb.base/frame-args.exp: frame 1 with print frame-arguments set to none
+Running ./gdb.base/freebpcmd.exp ...
+PASS: gdb.base/freebpcmd.exp: set breakpoint
+PASS: gdb.base/freebpcmd.exp: send breakpoint commands
+PASS: gdb.base/freebpcmd.exp: run program with breakpoint commands
+Running ./gdb.base/fullname.exp ...
+PASS: gdb.base/fullname.exp: set breakpoint by full path before loading symbols - built absolute
+PASS: gdb.base/fullname.exp: set breakpoint at main - built absolute
+PASS: gdb.base/fullname.exp: set breakpoint by full path after loading symbols - built absolute
+PASS: gdb.base/fullname.exp: set breakpoint by full path before loading symbols - built relative
+PASS: gdb.base/fullname.exp: set breakpoint at main - built relative
+PASS: gdb.base/fullname.exp: set breakpoint by full path after loading symbols - built relative
+PASS: gdb.base/fullname.exp: set breakpoint by full path before loading symbols - built other
+PASS: gdb.base/fullname.exp: set breakpoint at main - built other
+PASS: gdb.base/fullname.exp: set breakpoint by full path after loading symbols - built other
+Running ./gdb.base/fullpath-expand.exp ...
+PASS: gdb.base/fullpath-expand.exp: rbreak XXX/fullpath-expand-func.c:func
+PASS: gdb.base/fullpath-expand.exp: list func
+PASS: gdb.base/fullpath-expand.exp: info source
+Running ./gdb.base/funcargs.exp ...
+PASS: gdb.base/funcargs.exp: set print frame-arguments all
+PASS: gdb.base/funcargs.exp: run to call0a
+PASS: gdb.base/funcargs.exp: print c after run to call0a
+PASS: gdb.base/funcargs.exp: print s after run to call0a
+PASS: gdb.base/funcargs.exp: print i after run to call0a
+PASS: gdb.base/funcargs.exp: print l after run to call0a
+PASS: gdb.base/funcargs.exp: continue to call0b
+PASS: gdb.base/funcargs.exp: continue to call0c
+PASS: gdb.base/funcargs.exp: continue to call0d
+PASS: gdb.base/funcargs.exp: continue to call0e
+PASS: gdb.base/funcargs.exp: run to call1a
+PASS: gdb.base/funcargs.exp: print uc
+PASS: gdb.base/funcargs.exp: print us
+PASS: gdb.base/funcargs.exp: print ui
+PASS: gdb.base/funcargs.exp: print ul
+PASS: gdb.base/funcargs.exp: continue to call1b
+PASS: gdb.base/funcargs.exp: continue to call1c
+PASS: gdb.base/funcargs.exp: continue to call1d
+PASS: gdb.base/funcargs.exp: continue to call1e
+PASS: gdb.base/funcargs.exp: run to call2a
+PASS: gdb.base/funcargs.exp: print c after run to call2a
+PASS: gdb.base/funcargs.exp: print f1 after run to call2a
+PASS: gdb.base/funcargs.exp: print s after run to call2a
+PASS: gdb.base/funcargs.exp: print d1 after run to call2a
+PASS: gdb.base/funcargs.exp: print i after run to call2a
+PASS: gdb.base/funcargs.exp: print f2 after run to call2a
+PASS: gdb.base/funcargs.exp: print l after run to call2a
+PASS: gdb.base/funcargs.exp: print d2 after run to call2a
+PASS: gdb.base/funcargs.exp: continue to call2b
+PASS: gdb.base/funcargs.exp: continue to call2c
+PASS: gdb.base/funcargs.exp: continue to call2d
+PASS: gdb.base/funcargs.exp: continue to call2e
+PASS: gdb.base/funcargs.exp: continue to call2f
+PASS: gdb.base/funcargs.exp: continue to call2g
+PASS: gdb.base/funcargs.exp: continue to call2h
+PASS: gdb.base/funcargs.exp: continue to call2i
+PASS: gdb.base/funcargs.exp: run to call2a
+PASS: gdb.base/funcargs.exp: continue to callcb
+PASS: gdb.base/funcargs.exp: continue to callcc
+PASS: gdb.base/funcargs.exp: continue to callcd
+PASS: gdb.base/funcargs.exp: continue to callce
+PASS: gdb.base/funcargs.exp: continue to callcf
+PASS: gdb.base/funcargs.exp: run to callc1a
+PASS: gdb.base/funcargs.exp: continue to callc1b
+PASS: gdb.base/funcargs.exp: run to callc2a
+PASS: gdb.base/funcargs.exp: continue to callc2b
+PASS: gdb.base/funcargs.exp: run to call3a
+PASS: gdb.base/funcargs.exp: print *cp
+PASS: gdb.base/funcargs.exp: print *sp
+PASS: gdb.base/funcargs.exp: print *ip
+PASS: gdb.base/funcargs.exp: print *lp
+PASS: gdb.base/funcargs.exp: continue to call3b
+PASS: gdb.base/funcargs.exp: print *ucp
+PASS: gdb.base/funcargs.exp: print *usp
+PASS: gdb.base/funcargs.exp: print *uip
+PASS: gdb.base/funcargs.exp: print *ulp
+PASS: gdb.base/funcargs.exp: continue to call3c
+PASS: gdb.base/funcargs.exp: print *fp
+PASS: gdb.base/funcargs.exp: print *dp
+PASS: gdb.base/funcargs.exp: run to call4a
+PASS: gdb.base/funcargs.exp: print *stp
+PASS: gdb.base/funcargs.exp: continue to call4b
+PASS: gdb.base/funcargs.exp: print *unp (little-endian, sizeof long != sizeof int)
+PASS: gdb.base/funcargs.exp: locate actual args, structs/unions passed by reference
+PASS: gdb.base/funcargs.exp: run to call5a
+PASS: gdb.base/funcargs.exp: print st
+PASS: gdb.base/funcargs.exp: continue to call5b (little-endian, sizeof long != sizeof int)
+PASS: gdb.base/funcargs.exp: print un (little-endian, sizeof long != sizeof int)
+PASS: gdb.base/funcargs.exp: run to call6a
+PASS: gdb.base/funcargs.exp: backtrace from call6a
+PASS: gdb.base/funcargs.exp: continue to call6b
+PASS: gdb.base/funcargs.exp: backtrace from call6b
+PASS: gdb.base/funcargs.exp: continue to call6c
+PASS: gdb.base/funcargs.exp: backtrace from call6c
+PASS: gdb.base/funcargs.exp: continue to call6d
+PASS: gdb.base/funcargs.exp: backtrace from call6d
+PASS: gdb.base/funcargs.exp: continue to call6e
+PASS: gdb.base/funcargs.exp: backtrace from call6e
+PASS: gdb.base/funcargs.exp: continue to call6f
+PASS: gdb.base/funcargs.exp: backtrace from call6f
+PASS: gdb.base/funcargs.exp: continue to call6g
+PASS: gdb.base/funcargs.exp: backtrace from call6g
+PASS: gdb.base/funcargs.exp: continue to call6h
+PASS: gdb.base/funcargs.exp: backtrace from call6h
+PASS: gdb.base/funcargs.exp: continue to call6i
+PASS: gdb.base/funcargs.exp: backtrace from call6i
+PASS: gdb.base/funcargs.exp: continue to call6j
+PASS: gdb.base/funcargs.exp: backtrace from call6j
+PASS: gdb.base/funcargs.exp: continue to call6k
+PASS: gdb.base/funcargs.exp: backtrace from call6k
+PASS: gdb.base/funcargs.exp: run to call7a
+PASS: gdb.base/funcargs.exp: backtrace from call7a
+PASS: gdb.base/funcargs.exp: continue to call7b
+PASS: gdb.base/funcargs.exp: backtrace from call7b
+PASS: gdb.base/funcargs.exp: continue to call7c
+PASS: gdb.base/funcargs.exp: backtrace from call7c
+PASS: gdb.base/funcargs.exp: continue to call7d
+PASS: gdb.base/funcargs.exp: backtrace from call7d
+PASS: gdb.base/funcargs.exp: continue to call7e
+PASS: gdb.base/funcargs.exp: backtrace from call7e
+PASS: gdb.base/funcargs.exp: continue to call7f
+PASS: gdb.base/funcargs.exp: backtrace from call7f
+PASS: gdb.base/funcargs.exp: continue to call7g
+PASS: gdb.base/funcargs.exp: backtrace from call7g
+PASS: gdb.base/funcargs.exp: continue to call7h
+PASS: gdb.base/funcargs.exp: backtrace from call7h
+PASS: gdb.base/funcargs.exp: continue to call7i
+PASS: gdb.base/funcargs.exp: backtrace from call7i
+PASS: gdb.base/funcargs.exp: continue to call7j
+PASS: gdb.base/funcargs.exp: backtrace from call7j
+PASS: gdb.base/funcargs.exp: continue to call7k
+PASS: gdb.base/funcargs.exp: backtrace from call7k
+PASS: gdb.base/funcargs.exp: run to hitbottom
+PASS: gdb.base/funcargs.exp: recursive passing of structs by value
+PASS: gdb.base/funcargs.exp: print c after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print s after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print i after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print l after runto localvars_after_alloca
+PASS: gdb.base/funcargs.exp: next in localvars_after_alloca()
+PASS: gdb.base/funcargs.exp: print c in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print s in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print i in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: print l in localvars_after_alloca
+PASS: gdb.base/funcargs.exp: backtrace after alloca
+PASS: gdb.base/funcargs.exp: print c in call_after_alloca
+PASS: gdb.base/funcargs.exp: print s in call_after_alloca
+PASS: gdb.base/funcargs.exp: print i in call_after_alloca
+PASS: gdb.base/funcargs.exp: print l in call_after_alloca
+PASS: gdb.base/funcargs.exp: backtrace from call_after_alloca_subr
+PASS: gdb.base/funcargs.exp: continue to call0a
+PASS: gdb.base/funcargs.exp: print c in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: print s in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: print i in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: print l in localvars_in_indirect_call
+PASS: gdb.base/funcargs.exp: backtrace in indirectly called function
+PASS: gdb.base/funcargs.exp: finish from indirectly called function
+PASS: gdb.base/funcargs.exp: stepping into indirectly called function
+PASS: gdb.base/funcargs.exp: finish from marker_call_with_trampolines
+PASS: gdb.base/funcargs.exp: stepping into function called with trampolines
+PASS: gdb.base/funcargs.exp: backtrace through call with trampolines
+PASS: gdb.base/funcargs.exp: stepping back to main from function called with trampolines
+Running ./gdb.base/gcore-buffer-overflow.exp ...
+PASS: gdb.base/gcore-buffer-overflow.exp: help gcore
+PASS: gdb.base/gcore-buffer-overflow.exp: Set buffer exceeding arguments
+PASS: gdb.base/gcore-buffer-overflow.exp: save a corefile
+Running ./gdb.base/gcore.exp ...
+PASS: gdb.base/gcore.exp: help gcore
+PASS: gdb.base/gcore.exp: set breakpoint at terminal_func
+PASS: gdb.base/gcore.exp: continue to terminal_func
+PASS: gdb.base/gcore.exp: save a corefile
+FAIL: gdb.base/gcore.exp: re-load generated corefile (bad file format)
+Running ./gdb.base/gcore-relro.exp ...
+PASS: gdb.base/gcore-relro.exp: help gcore
+PASS: gdb.base/gcore-relro.exp: save a corefile
+FAIL: gdb.base/gcore-relro.exp: re-load generated corefile
+FAIL: gdb.base/gcore-relro.exp: library got loaded
+Running ./gdb.base/gdb1056.exp ...
+PASS: gdb.base/gdb1056.exp: print 1/0
+PASS: gdb.base/gdb1056.exp: Test unsigned division by zero
+Running ./gdb.base/gdb1090.exp ...
+PASS: gdb.base/gdb1090.exp: continue to breakpoint: break-here
+PASS: gdb.base/gdb1090.exp: print s24
+Running ./gdb.base/gdb11530.exp ...
+PASS: gdb.base/gdb11530.exp: print a.i
+PASS: gdb.base/gdb11530.exp: print sizeof (a.i)
+PASS: gdb.base/gdb11530.exp: print sizeof (a.i) == sizeof (int)
+Running ./gdb.base/gdb11531.exp ...
+PASS: gdb.base/gdb11531.exp: Set watchpoint
+PASS: gdb.base/gdb11531.exp: watchpoint variable triggers at next
+PASS: gdb.base/gdb11531.exp: watchpoint variable triggers at continue
+Running ./gdb.base/gdb1250.exp ...
+PASS: gdb.base/gdb1250.exp: backtrace from abort
+Running ./gdb.base/gdb1555.exp ...
+PASS: gdb.base/gdb1555.exp: Step into shared lib function
+PASS: gdb.base/gdb1555.exp: Next while in a shared lib function
+Running ./gdb.base/gdb1821.exp ...
+PASS: gdb.base/gdb1821.exp: print /x bar
+Running ./gdb.base/gdbindex-stabs.exp ...
+PASS: gdb.base/gdbindex-stabs.exp: list stabs_function
+Running ./gdb.base/gdbvars.exp ...
+PASS: gdb.base/gdbvars.exp: set print sevenbit-strings
+PASS: gdb.base/gdbvars.exp: Set value-history[1] using $1
+PASS: gdb.base/gdbvars.exp: Set value-history[2] using $2
+PASS: gdb.base/gdbvars.exp: Set value-history[3] using $3
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX-1] using inplicit index $$
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX-1] again using implicit index $$
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX] using implicit index $
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX-2] using explicit index $$2
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX] using explicit index $0
+PASS: gdb.base/gdbvars.exp: print 108
+PASS: gdb.base/gdbvars.exp: Print value-history[MAX] using explicit index $$0
+PASS: gdb.base/gdbvars.exp: Print value-history[1] using explicit index $1
+PASS: gdb.base/gdbvars.exp: Print value-history[2] using explicit index $2
+PASS: gdb.base/gdbvars.exp: Print value-history[3] using explicit index $3
+PASS: gdb.base/gdbvars.exp: Print (value-history[MAX] - 3) using implicit index $
+PASS: gdb.base/gdbvars.exp: Use value-history element in arithmetic expression
+PASS: gdb.base/gdbvars.exp: Set a new convenience variable
+PASS: gdb.base/gdbvars.exp: Print contents of new convenience variable
+PASS: gdb.base/gdbvars.exp: Set convenience variable to a new value
+PASS: gdb.base/gdbvars.exp: Print new contents of convenience variable
+PASS: gdb.base/gdbvars.exp: Set convenience variable $_
+PASS: gdb.base/gdbvars.exp: Print contents of convenience variable $_
+PASS: gdb.base/gdbvars.exp: Use convenience variable in arithmetic expression
+PASS: gdb.base/gdbvars.exp: Use convenience variable assignment in arithmetic expression
+PASS: gdb.base/gdbvars.exp: Print contents of uninitialized convenience variable
+PASS: gdb.base/gdbvars.exp: Set a new convenience variable to a program variable
+PASS: gdb.base/gdbvars.exp: Print contents of new convenience variable of program variable
+Running ./gdb.base/gnu-debugdata.exp ...
+PASS: gdb.base/gnu-debugdata.exp: nm -D - invoke x86_64-cros-linux-gnu-nm
+PASS: gdb.base/gnu-debugdata.exp: nm -D - invoke awk
+PASS: gdb.base/gnu-debugdata.exp: nm -D - invoke sort
+PASS: gdb.base/gnu-debugdata.exp: nm - invoke x86_64-cros-linux-gnu-nm
+PASS: gdb.base/gnu-debugdata.exp: nm - invoke awk
+PASS: gdb.base/gnu-debugdata.exp: nm - invoke sort
+PASS: gdb.base/gnu-debugdata.exp: comm
+PASS: gdb.base/gnu-debugdata.exp: objcopy 1
+PASS: gdb.base/gnu-debugdata.exp: strip
+PASS: gdb.base/gnu-debugdata.exp: copydebug
+PASS: gdb.base/gnu-debugdata.exp: addlink
+PASS: gdb.base/gnu-debugdata.exp: xz
+PASS: gdb.base/gnu-debugdata.exp: objcopy 2
+PASS: gdb.base/gnu-debugdata.exp: no symtab
+PASS: gdb.base/gnu-debugdata.exp: have symtab
+PASS: gdb.base/gnu-debugdata.exp: unload MiniDebugInfo
+Running ./gdb.base/gnu-ifunc.exp ...
+PASS: gdb.base/gnu-ifunc.exp: continue to breakpoint: break-at-call
+FAIL: gdb.base/gnu-ifunc.exp: p gnu_ifunc (3)
+FAIL: gdb.base/gnu-ifunc.exp: step
+FAIL: gdb.base/gnu-ifunc.exp: continue to break-at-nextcall
+FAIL: gdb.base/gnu-ifunc.exp: continue to breakpoint: nextcall gnu_ifunc
+FAIL: gdb.base/gnu-ifunc.exp: nextcall gnu_ifunc skipped
+PASS: gdb.base/gnu-ifunc.exp: p gnu_ifunc executing
+PASS: gdb.base/gnu-ifunc.exp: info sym gnu_ifunc executing
+PASS: gdb.base/gnu-ifunc.exp: info addr gnu_ifunc
+PASS: gdb.base/gnu-ifunc.exp: info sym <gnu_ifunc-address>
+PASS: gdb.base/gnu-ifunc.exp: static gnu_ifunc
+Running ./gdb.base/gnu_vector.exp ...
+PASS: gdb.base/gnu_vector.exp: print c4
+PASS: gdb.base/gnu_vector.exp: print c4[2]
+PASS: gdb.base/gnu_vector.exp: print i4a
+PASS: gdb.base/gnu_vector.exp: print i4b
+PASS: gdb.base/gnu_vector.exp: print i4a + i4b
+PASS: gdb.base/gnu_vector.exp: print i4a - i4b
+PASS: gdb.base/gnu_vector.exp: print i4a * i4b
+PASS: gdb.base/gnu_vector.exp: print i4a / i4b
+PASS: gdb.base/gnu_vector.exp: print i4a % i4b
+PASS: gdb.base/gnu_vector.exp: print i4a++
+PASS: gdb.base/gnu_vector.exp: print ++i4a
+PASS: gdb.base/gnu_vector.exp: print i4a--
+PASS: gdb.base/gnu_vector.exp: print --i4a
+PASS: gdb.base/gnu_vector.exp: print +i4a
+PASS: gdb.base/gnu_vector.exp: print -i4a
+PASS: gdb.base/gnu_vector.exp: print i4a & i4b
+PASS: gdb.base/gnu_vector.exp: print i4a | i4b
+PASS: gdb.base/gnu_vector.exp: print i4a ^ i4b
+PASS: gdb.base/gnu_vector.exp: print ~i4a
+PASS: gdb.base/gnu_vector.exp: print i4a << i4b
+PASS: gdb.base/gnu_vector.exp: print i4a >> i4b
+PASS: gdb.base/gnu_vector.exp: print f4a
+PASS: gdb.base/gnu_vector.exp: print f4b
+PASS: gdb.base/gnu_vector.exp: print f4a + f4b
+PASS: gdb.base/gnu_vector.exp: print f4a - f4b
+PASS: gdb.base/gnu_vector.exp: print f4a * f4b
+PASS: gdb.base/gnu_vector.exp: print f4a / f4b
+PASS: gdb.base/gnu_vector.exp: print +f4a
+PASS: gdb.base/gnu_vector.exp: print -f4a
+PASS: gdb.base/gnu_vector.exp: print (char4) 0x01010101
+PASS: gdb.base/gnu_vector.exp: print (char4) ia
+PASS: gdb.base/gnu_vector.exp: print (int2) lla
+PASS: gdb.base/gnu_vector.exp: print (int2) 1
+PASS: gdb.base/gnu_vector.exp: print (longlong2) 2
+PASS: gdb.base/gnu_vector.exp: print (float2) 3
+PASS: gdb.base/gnu_vector.exp: print (double2) 4
+PASS: gdb.base/gnu_vector.exp: print (uint4) ia
+PASS: gdb.base/gnu_vector.exp: print (int4) -3
+PASS: gdb.base/gnu_vector.exp: print (float4) 4
+PASS: gdb.base/gnu_vector.exp: print i4b = ia
+PASS: gdb.base/gnu_vector.exp: print i4a = 3
+PASS: gdb.base/gnu_vector.exp: print f4a = fb
+PASS: gdb.base/gnu_vector.exp: print f4b = 2
+PASS: gdb.base/gnu_vector.exp: print c4 + lla
+PASS: gdb.base/gnu_vector.exp: print i4a + lla
+PASS: gdb.base/gnu_vector.exp: print lla + c4
+PASS: gdb.base/gnu_vector.exp: print lla + i4a
+PASS: gdb.base/gnu_vector.exp: print c4 + ib
+PASS: gdb.base/gnu_vector.exp: print i4a + ib
+PASS: gdb.base/gnu_vector.exp: print i4a + 1
+PASS: gdb.base/gnu_vector.exp: print 1 + i4a
+PASS: gdb.base/gnu_vector.exp: print fa - f4b
+PASS: gdb.base/gnu_vector.exp: print 2 - f4b
+PASS: gdb.base/gnu_vector.exp: print f4a * fb
+PASS: gdb.base/gnu_vector.exp: print f4a * 1
+PASS: gdb.base/gnu_vector.exp: print ia / i4b
+PASS: gdb.base/gnu_vector.exp: print 2 / i4b
+PASS: gdb.base/gnu_vector.exp: print i4a % ib
+PASS: gdb.base/gnu_vector.exp: print i4a % 1
+PASS: gdb.base/gnu_vector.exp: print ia & i4b
+PASS: gdb.base/gnu_vector.exp: print 2 & i4b
+PASS: gdb.base/gnu_vector.exp: print i4a | ib
+PASS: gdb.base/gnu_vector.exp: print i4a | 1
+PASS: gdb.base/gnu_vector.exp: print ia ^ i4b
+PASS: gdb.base/gnu_vector.exp: print 2 ^ i4b
+PASS: gdb.base/gnu_vector.exp: print i4a << ib
+PASS: gdb.base/gnu_vector.exp: print i4a << 1
+PASS: gdb.base/gnu_vector.exp: print i4a >> ib
+PASS: gdb.base/gnu_vector.exp: print i4a >> 1
+PASS: gdb.base/gnu_vector.exp: print i4a = {2, 4, 8, 16}
+PASS: gdb.base/gnu_vector.exp: print i4a <<= ib
+PASS: gdb.base/gnu_vector.exp: print i4a + d2
+PASS: gdb.base/gnu_vector.exp: print d2 + i4a
+PASS: gdb.base/gnu_vector.exp: print f4a + ll2
+PASS: gdb.base/gnu_vector.exp: print ll2 + f4a
+PASS: gdb.base/gnu_vector.exp: print i2 + ll2
+PASS: gdb.base/gnu_vector.exp: print ll2 + i2
+PASS: gdb.base/gnu_vector.exp: print i4a + ll2
+PASS: gdb.base/gnu_vector.exp: print ll2 + i4a
+PASS: gdb.base/gnu_vector.exp: print f4a + d2
+PASS: gdb.base/gnu_vector.exp: print d2 + f4a
+PASS: gdb.base/gnu_vector.exp: print ui4 + i4a
+PASS: gdb.base/gnu_vector.exp: print i4a + ui4
+PASS: gdb.base/gnu_vector.exp: print i4a + i2
+PASS: gdb.base/gnu_vector.exp: print i2 + i4a
+PASS: gdb.base/gnu_vector.exp: print f4a + f2
+PASS: gdb.base/gnu_vector.exp: print f2 + f4a
+PASS: gdb.base/gnu_vector.exp: print (double2) f2
+PASS: gdb.base/gnu_vector.exp: print (int4) c4
+PASS: gdb.base/gnu_vector.exp: print (char4) i4a
+PASS: gdb.base/gnu_vector.exp: ptype c4
+PASS: gdb.base/gnu_vector.exp: ptype char4
+PASS: gdb.base/gnu_vector.exp: ptype i4a
+PASS: gdb.base/gnu_vector.exp: ptype int4
+PASS: gdb.base/gnu_vector.exp: ptype f4b
+PASS: gdb.base/gnu_vector.exp: ptype float4
+PASS: gdb.base/gnu_vector.exp: ptype union_with_vector_1
+PASS: gdb.base/gnu_vector.exp: ptype struct_with_vector_1
+Running ./gdb.base/hashline1.exp ...
+PASS: gdb.base/hashline1.exp: set breakpoint
+Running ./gdb.base/hashline2.exp ...
+PASS: gdb.base/hashline2.exp: set breakpoint
+Running ./gdb.base/hashline3.exp ...
+PASS: gdb.base/hashline3.exp: set breakpoint
+Running ./gdb.base/hbreak2.exp ...
+PASS: gdb.base/hbreak2.exp: hardware breakpoint support
+PASS: gdb.base/hbreak2.exp: hardware breakpoint insertion
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function
+PASS: gdb.base/hbreak2.exp: hardware breakpoint quoted function
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function in file
+PASS: gdb.base/hbreak2.exp: use `list' to establish default source file
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number in file
+PASS: gdb.base/hbreak2.exp: hardware breakpoint at start of multi line if conditional
+PASS: gdb.base/hbreak2.exp: hardware breakpoint at start of multi line while conditional
+PASS: gdb.base/hbreak2.exp: hardware breakpoint info
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function (2)
+PASS: gdb.base/hbreak2.exp: run until function breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number (2)
+PASS: gdb.base/hbreak2.exp: run until breakpoint set at a line number
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function in file (2)
+PASS: gdb.base/hbreak2.exp: run until file:function(6) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(5) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(4) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(3) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(2) breakpoint
+PASS: gdb.base/hbreak2.exp: run until file:function(1) breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint quoted function (2)
+PASS: gdb.base/hbreak2.exp: run until quoted breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint line number in file (2)
+PASS: gdb.base/hbreak2.exp: run until file:linenum breakpoint
+PASS: gdb.base/hbreak2.exp: hardware breakpoint offset +1
+PASS: gdb.base/hbreak2.exp: step onto hardware breakpoint
+PASS: gdb.base/hbreak2.exp: setting hardware breakpoint at }
+PASS: gdb.base/hbreak2.exp: continue to hardware breakpoint at }
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint function
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint function in file
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number #1
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number #2
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number in file #1
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint line number in file #2
+PASS: gdb.base/hbreak2.exp: temporary hardware breakpoint info
+PASS: gdb.base/hbreak2.exp: set breakpoint pending off
+PASS: gdb.base/hbreak2.exp: hardware break on non-existent source line
+PASS: gdb.base/hbreak2.exp: until bp_location1
+PASS: gdb.base/hbreak2.exp: hardware break on default location
+PASS: gdb.base/hbreak2.exp: set to-be-silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: set silent break bp_location1
+PASS: gdb.base/hbreak2.exp: info silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: hit silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: stopped for silent hardware break bp_location1
+PASS: gdb.base/hbreak2.exp: thread-specific hardware breakpoint on non-existent thread disallowed
+PASS: gdb.base/hbreak2.exp: thread-specific hardware breakpoint on bogus thread ID disallowed
+PASS: gdb.base/hbreak2.exp: hardware breakpoint with trailing garbage disallowed
+PASS: gdb.base/hbreak2.exp: step over hardware breakpoint
+PASS: gdb.base/hbreak2.exp: clear line has no breakpoint disallowed
+PASS: gdb.base/hbreak2.exp: clear current line has no breakpoint disallowed
+PASS: gdb.base/hbreak2.exp: set convenience variable $foo to bp_location11
+PASS: gdb.base/hbreak2.exp: set hardware breakpoint via convenience variable
+PASS: gdb.base/hbreak2.exp: set convenience variable $foo to 81.5
+PASS: gdb.base/hbreak2.exp: set hardware breakpoint via non-integer convenience variable disallowed
+PASS: gdb.base/hbreak2.exp: set hardware breakpoint on to-be-called function
+PASS: gdb.base/hbreak2.exp: hit hardware breakpoint on called function
+PASS: gdb.base/hbreak2.exp: backtrace while in called function
+PASS: gdb.base/hbreak2.exp: finish from called function
+PASS: gdb.base/hbreak2.exp: hardware break at factorial
+PASS: gdb.base/hbreak2.exp: kill program
+PASS: gdb.base/hbreak2.exp: run to factorial(6)
+PASS: gdb.base/hbreak2.exp: continue to factorial(5)
+PASS: gdb.base/hbreak2.exp: backtrace from factorial(5)
+PASS: gdb.base/hbreak2.exp: next to recursive call
+PASS: gdb.base/hbreak2.exp: next over recursive call
+PASS: gdb.base/hbreak2.exp: backtrace from factorial(5.1)
+PASS: gdb.base/hbreak2.exp: continue until exit at recursive next test
+PASS: gdb.base/hbreak2.exp: hardware breakpoint function, optimized file
+PASS: gdb.base/hbreak2.exp: run until hardware function breakpoint, optimized file (code motion)
+PASS: gdb.base/hbreak2.exp: hardware breakpoint small function, optimized file
+PASS: gdb.base/hbreak2.exp: run until hardware breakpoint set at small function, optimized file
+Running ./gdb.base/hbreak.exp ...
+Running ./gdb.base/help.exp ...
+PASS: gdb.base/help.exp: disable pagination
+PASS: gdb.base/help.exp: help aliases
+PASS: gdb.base/help.exp: help breakpoints
+PASS: gdb.base/help.exp: help data
+PASS: gdb.base/help.exp: help files
+PASS: gdb.base/help.exp: help internals
+PASS: gdb.base/help.exp: help obscure
+PASS: gdb.base/help.exp: help running
+PASS: gdb.base/help.exp: help stack
+PASS: gdb.base/help.exp: help status
+PASS: gdb.base/help.exp: help support
+PASS: gdb.base/help.exp: help tracepoints
+PASS: gdb.base/help.exp: help user-defined
+PASS: gdb.base/help.exp: help breakpoint "b" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "br" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "bre" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "brea" abbreviation
+PASS: gdb.base/help.exp: help breakpoint "break" abbreviation
+PASS: gdb.base/help.exp: help backtrace "bt" abbreviation
+PASS: gdb.base/help.exp: help backtrace
+PASS: gdb.base/help.exp: help commands
+PASS: gdb.base/help.exp: help delete "d" abbreviation
+PASS: gdb.base/help.exp: help delete
+PASS: gdb.base/help.exp: help help "h" abbreviation
+PASS: gdb.base/help.exp: help help
+PASS: gdb.base/help.exp: help show copying
+PASS: gdb.base/help.exp: help show warranty
+PASS: gdb.base/help.exp: help show commands
+PASS: gdb.base/help.exp: help show confirm
+PASS: gdb.base/help.exp: help info bogus-gdb-command
+PASS: gdb.base/help.exp: help gotcha
+PASS: gdb.base/help.exp: apropos \(print[^ bsiedf\".-]\)
+PASS: gdb.base/help.exp: apropos handle signal
+PASS: gdb.base/help.exp: apropos apropos
+Running ./gdb.base/hook-stop-continue.exp ...
+PASS: gdb.base/hook-stop-continue.exp: breakpoint line number
+PASS: gdb.base/hook-stop-continue.exp: print $do_continue = 1
+PASS: gdb.base/hook-stop-continue.exp: define hook-stop command
+PASS: gdb.base/hook-stop-continue.exp: next triggering hook-stop
+PASS: gdb.base/hook-stop-continue.exp: next no hook-stop
+Running ./gdb.base/hook-stop-frame.exp ...
+PASS: gdb.base/hook-stop-frame.exp: breakpoint line number
+PASS: gdb.base/hook-stop-frame.exp: define hook-stop command
+PASS: gdb.base/hook-stop-frame.exp: hook-stop runs before frame print
+Running ./gdb.base/huge.exp ...
+PASS: gdb.base/huge.exp: print a very large data object
+Running ./gdb.base/ifelse.exp ...
+PASS: gdb.base/ifelse.exp: if 1 with empty body
+PASS: gdb.base/ifelse.exp: if 0 with empty body
+PASS: gdb.base/ifelse.exp: if true else false #1
+PASS: gdb.base/ifelse.exp: if 1 .. else with empty body
+PASS: gdb.base/ifelse.exp: if true else false #2
+PASS: gdb.base/ifelse.exp: if 0 .. else with empty body
+PASS: gdb.base/ifelse.exp: if true else false #3
+PASS: gdb.base/ifelse.exp: create define with empty else
+PASS: gdb.base/ifelse.exp: call original define
+PASS: gdb.base/ifelse.exp: replace define with if .. else with empty body
+PASS: gdb.base/ifelse.exp: call replacement define
+Running ./gdb.base/included.exp ...
+PASS: gdb.base/included.exp: set listsize 1
+PASS: gdb.base/included.exp: list main
+PASS: gdb.base/included.exp: list integer
+PASS: gdb.base/included.exp: ptype integer
+PASS: gdb.base/included.exp: info variables integer
+Running ./gdb.base/inferior-died.exp ...
+UNSUPPORTED: gdb.base/inferior-died.exp: inferior-died.exp
+Running ./gdb.base/infnan.exp ...
+PASS: gdb.base/infnan.exp: print a
+PASS: gdb.base/infnan.exp: print b
+Running ./gdb.base/info-fun.exp ...
+Running ./gdb.base/infoline.exp ...
+PASS: gdb.base/infoline.exp: info line infoline.c:18
+Running ./gdb.base/info-macros.exp ...
+FAIL: gdb.base/info-macros.exp: info macro -- -all
+FAIL: gdb.base/info-macros.exp: info macro  -- -all
+PASS: gdb.base/info-macros.exp: info macro -all --
+PASS: gdb.base/info-macros.exp: info macro -all  --
+PASS: gdb.base/info-macros.exp: info macro  -all  --
+PASS: gdb.base/info-macros.exp: info macro --
+PASS: gdb.base/info-macros.exp: 'info macro -- '
+PASS: gdb.base/info-macros.exp: 'info macro  -- '
+PASS: gdb.base/info-macros.exp: info macro -invalid-option 1
+PASS: gdb.base/info-macros.exp: info macro  -invalid-option
+PASS: gdb.base/info-macros.exp: info macro -invalid-option FOO
+PASS: gdb.base/info-macros.exp: info macro  -invalid-option FOO
+FAIL: gdb.base/info-macros.exp: info macro -- FOO
+FAIL: gdb.base/info-macros.exp: info macro  -- FOO
+FAIL: gdb.base/info-macros.exp: info macro --  FOO
+FAIL: gdb.base/info-macros.exp: info macro FOO
+FAIL: gdb.base/info-macros.exp: info macro  FOO
+FAIL: gdb.base/info-macros.exp: info macro -a FOO 1
+FAIL: gdb.base/info-macros.exp: info macro -a -- FOO 1
+FAIL: gdb.base/info-macros.exp: info macro -all -- FOO 1
+FAIL: gdb.base/info-macros.exp: info macro -a  --  FOO
+FAIL: gdb.base/info-macros.exp: info macro  -a  --  FOO
+FAIL: gdb.base/info-macros.exp: info macros 2
+FAIL: gdb.base/info-macros.exp: info macros 3
+FAIL: gdb.base/info-macros.exp: info macros 4
+FAIL: gdb.base/info-macros.exp: info macros *$pc
+FAIL: gdb.base/info-macros.exp: info macros
+FAIL: gdb.base/info-macros.exp: info macros 6
+FAIL: gdb.base/info-macros.exp: info macros 7
+KFAIL: gdb.base/info-macros.exp: info macros info-macros.c:42 (PRMS: gdb/NNNN)
+Running ./gdb.base/info-os.exp ...
+PASS: gdb.base/info-os.exp: get inferior process ID
+PASS: gdb.base/info-os.exp: continue to breakpoint: Set breakpoint here
+PASS: gdb.base/info-os.exp: get shared memory key
+PASS: gdb.base/info-os.exp: get shared memory ID
+PASS: gdb.base/info-os.exp: get semaphore key
+PASS: gdb.base/info-os.exp: get semaphore ID
+PASS: gdb.base/info-os.exp: get message queue key
+PASS: gdb.base/info-os.exp: get message queue ID
+PASS: gdb.base/info-os.exp: get socket port number
+PASS: gdb.base/info-os.exp: get process list
+PASS: gdb.base/info-os.exp: get process groups
+PASS: gdb.base/info-os.exp: get threads
+PASS: gdb.base/info-os.exp: get threads
+PASS: gdb.base/info-os.exp: get file descriptors
+PASS: gdb.base/info-os.exp: get internet-domain sockets
+PASS: gdb.base/info-os.exp: get shared-memory regions
+PASS: gdb.base/info-os.exp: get semaphores
+PASS: gdb.base/info-os.exp: get message queues
+PASS: gdb.base/info-os.exp: continue
+Running ./gdb.base/info-proc.exp ...
+PASS: gdb.base/info-proc.exp: help info proc
+PASS: gdb.base/info-proc.exp: info proc without a process
+PASS: gdb.base/info-proc.exp: info proc with process
+PASS: gdb.base/info-proc.exp: info proc mapping
+PASS: gdb.base/info-proc.exp: save a core file
+FAIL: gdb.base/info-proc.exp: core break.gcore
+FAIL: gdb.base/info-proc.exp: info proc mapping with core file
+Running ./gdb.base/info-target.exp ...
+PASS: gdb.base/info-target.exp: info target
+Running ./gdb.base/interact.exp ...
+PASS: gdb.base/interact.exp: set interactive-mode auto
+PASS: gdb.base/interact.exp: source script with interactive-mode auto
+PASS: gdb.base/interact.exp: sanity check with interactive-mode auto
+PASS: gdb.base/interact.exp: show interactive-mode (auto)
+PASS: gdb.base/interact.exp: set interactive-mode on
+PASS: gdb.base/interact.exp: source script with interactive-mode on
+PASS: gdb.base/interact.exp: sanity check with interactive-mode on
+PASS: gdb.base/interact.exp: show interactive-mode (on)
+PASS: gdb.base/interact.exp: set interactive-mode off
+PASS: gdb.base/interact.exp: source script with interactive-mode off
+PASS: gdb.base/interact.exp: sanity check with interactive-mode off
+PASS: gdb.base/interact.exp: show interactive-mode (off)
+Running ./gdb.base/interp.exp ...
+PASS: gdb.base/interp.exp: interpreter-exec mi "-var-update *"
+PASS: gdb.base/interp.exp: interpreter-exec console "show version"
+PASS: gdb.base/interp.exp: interpreter-exec mi "-var-update *"
+PASS: gdb.base/interp.exp: interpreter-exec mi "-stack-info-frame"
+PASS: gdb.base/interp.exp: interpreter-exec mi1 "-break-insert main"
+PASS: gdb.base/interp.exp: interpreter-exec mi2 "-break-insert main"
+PASS: gdb.base/interp.exp: interpreter-exec mi3 "-break-insert main"
+PASS: gdb.base/interp.exp: can list sources
+Running ./gdb.base/interrupt.exp ...
+Running ./gdb.base/jit.exp ...
+PASS: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 0
+PASS: gdb.base/jit.exp: one_jit_test-1: set var argc = 2
+PASS: gdb.base/jit.exp: one_jit_test-1: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit.exp: one_jit_test-1: set var count = 1
+PASS: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 1
+PASS: gdb.base/jit.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 2
+PASS: gdb.base/jit.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 0
+PASS: gdb.base/jit.exp: one_jit_test-2: set var argc = 2
+PASS: gdb.base/jit.exp: one_jit_test-2: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit.exp: one_jit_test-2: set var count = 2
+PASS: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 1
+PASS: gdb.base/jit.exp: one_jit_test-2: info function jit_function
+PASS: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 2
+PASS: gdb.base/jit.exp: one_jit_test-2: info function jit_function
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 0
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: set var argc = 2
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: set var count = 1
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 1
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 2
+PASS: gdb.base/jit.exp: PIE: one_jit_test-1: info function jit_function
+Running ./gdb.base/jit-simple.exp ...
+PASS: gdb.base/jit-simple.exp: blah 1
+PASS: gdb.base/jit-simple.exp: recompile jit-simple.c
+PASS: gdb.base/jit-simple.exp: blah 1
+Running ./gdb.base/jit-so.exp ...
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here before-dlopen
+PASS: gdb.base/jit-so.exp: one_jit_test-1: set var jit_libname = "jit-main.so"
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here after-dlopen
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 0
+PASS: gdb.base/jit-so.exp: one_jit_test-1: set var argc = 2
+PASS: gdb.base/jit-so.exp: one_jit_test-1: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit-so.exp: one_jit_test-1: set var count = 1
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 1
+PASS: gdb.base/jit-so.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 2
+PASS: gdb.base/jit-so.exp: one_jit_test-1: info function jit_function
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here before-dlopen
+PASS: gdb.base/jit-so.exp: one_jit_test-2: set var jit_libname = "jit-main.so"
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here after-dlopen
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 0
+PASS: gdb.base/jit-so.exp: one_jit_test-2: set var argc = 2
+PASS: gdb.base/jit-so.exp: one_jit_test-2: set var libname = "SHLIBDIR/jit-solib.so"
+PASS: gdb.base/jit-so.exp: one_jit_test-2: set var count = 2
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 1
+PASS: gdb.base/jit-so.exp: one_jit_test-2: info function jit_function
+PASS: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 2
+PASS: gdb.base/jit-so.exp: one_jit_test-2: info function jit_function
+Running ./gdb.base/jump.exp ...
+PASS: gdb.base/jump.exp: break before jump to non-call
+PASS: gdb.base/jump.exp: jump to non-call
+PASS: gdb.base/jump.exp: break before jump to call
+PASS: gdb.base/jump.exp: jump to call
+PASS: gdb.base/jump.exp: disable breakpoint on call
+PASS: gdb.base/jump.exp: jump to call with disabled breakpoint
+PASS: gdb.base/jump.exp: jump without argument disallowed
+PASS: gdb.base/jump.exp: jump with trailing argument junk
+PASS: gdb.base/jump.exp: aborted jump out of current function
+PASS: gdb.base/jump.exp: jump out of current function
+Running ./gdb.base/kill-after-signal.exp ...
+PASS: gdb.base/kill-after-signal.exp: handle SIGUSR1 stop print pass
+PASS: gdb.base/kill-after-signal.exp: continue
+PASS: gdb.base/kill-after-signal.exp: stepi
+PASS: gdb.base/kill-after-signal.exp: kill
+Running ./gdb.base/label.exp ...
+Running ./gdb.base/langs.exp ...
+PASS: gdb.base/langs.exp: break on nonexistent function in langs.exp
+PASS: gdb.base/langs.exp: show language at csub in langs.exp
+PASS: gdb.base/langs.exp: backtrace in langs.exp
+PASS: gdb.base/langs.exp: up to foo in langs.exp
+PASS: gdb.base/langs.exp: show language at foo in langs.exp
+PASS: gdb.base/langs.exp: up to cppsub_ in langs.exp
+PASS: gdb.base/langs.exp: show language at cppsub_ in langs.exp
+PASS: gdb.base/langs.exp: up to fsub in langs.exp
+PASS: gdb.base/langs.exp: show language at fsub in langs.exp
+PASS: gdb.base/langs.exp: up to langs0__2do in langs.exp
+PASS: gdb.base/langs.exp: show language at langs0__2do in langs.exp
+PASS: gdb.base/langs.exp: up to main in langs.exp
+PASS: gdb.base/langs.exp: show language at main in langs.exp
+PASS: gdb.base/langs.exp: continue until exit at langs.exp
+PASS: gdb.base/langs.exp: set lang to minimal
+PASS: gdb.base/langs.exp: print parameter value
+Running ./gdb.base/ldbl_e308.exp ...
+PASS: gdb.base/ldbl_e308.exp: set variable ldbl_308 = 1.6e+308l
+PASS: gdb.base/ldbl_e308.exp: print ldbl_308
+Running ./gdb.base/lineinc.exp ...
+PASS: gdb.base/lineinc.exp: tolerate macro info with multiple #inclusions per line
+Running ./gdb.base/linespecs.exp ...
+PASS: gdb.base/linespecs.exp: list c:/foo/bar/baz.c:1
+PASS: gdb.base/linespecs.exp: list c:/foo/bar/baz.c
+PASS: gdb.base/linespecs.exp: list fooc:/foo/bar/baz.c:1
+PASS: gdb.base/linespecs.exp: list fooc:/foo/bar/baz.c
+Running ./gdb.base/list.exp ...
+PASS: gdb.base/list.exp: set width 0
+PASS: gdb.base/list.exp: show default list size
+PASS: gdb.base/list.exp: list default lines around main
+PASS: gdb.base/list.exp: setting listsize to 1 #1
+PASS: gdb.base/list.exp: show listsize 1 #1
+PASS: gdb.base/list.exp: list line 1 with listsize 1
+PASS: gdb.base/list.exp: list line 2 with listsize 1
+PASS: gdb.base/list.exp: setting listsize to 2 #2
+PASS: gdb.base/list.exp: show listsize 2 #2
+PASS: gdb.base/list.exp: list line 1 with listsize 2
+PASS: gdb.base/list.exp: list line 2 with listsize 2
+PASS: gdb.base/list.exp: list line 3 with listsize 2
+PASS: gdb.base/list.exp: setting listsize to 3 #3
+PASS: gdb.base/list.exp: show listsize 3 #3
+PASS: gdb.base/list.exp: list line 1 with listsize 3
+PASS: gdb.base/list.exp: list line 2 with listsize 3
+PASS: gdb.base/list.exp: list line 3 with listsize 3
+PASS: gdb.base/list.exp: setting listsize to 4 #4
+PASS: gdb.base/list.exp: show listsize 4 #4
+PASS: gdb.base/list.exp: list line 1 with listsize 4
+PASS: gdb.base/list.exp: list line 2 with listsize 4
+PASS: gdb.base/list.exp: list line 3 with listsize 4
+PASS: gdb.base/list.exp: list line 4 with listsize 4
+PASS: gdb.base/list.exp: setting listsize to 100 #5
+PASS: gdb.base/list.exp: show listsize 100 #5
+PASS: gdb.base/list.exp: list line 1 with listsize 100
+PASS: gdb.base/list.exp: list line 10 with listsize 100
+PASS: gdb.base/list.exp: setting listsize to 0 #6
+PASS: gdb.base/list.exp: show listsize unlimited #6
+PASS: gdb.base/list.exp: list line 1 with unlimited listsize
+PASS: gdb.base/list.exp: setting listsize to 10 #7
+PASS: gdb.base/list.exp: show listsize 10 #7
+PASS: gdb.base/list.exp: list line 1 in include file
+PASS: gdb.base/list.exp: list message for lines past EOF
+PASS: gdb.base/list.exp: list filename:number (4 tests)
+PASS: gdb.base/list.exp: list function in source file 1
+PASS: gdb.base/list.exp: list function in source file 2
+PASS: gdb.base/list.exp: list function in include file
+PASS: gdb.base/list.exp: successive list commands to page forward (4 tests)
+PASS: gdb.base/list.exp: 4 successive "list -" commands to page backwards
+PASS: gdb.base/list.exp: repeat list commands to page forward using 'return' (4 tests)
+PASS: gdb.base/list.exp: list range; filename:line1,filename:line2
+PASS: gdb.base/list.exp: list range; line1,line2
+PASS: gdb.base/list.exp: list range; upper bound past EOF
+PASS: gdb.base/list.exp: list range; both bounds past EOF
+PASS: gdb.base/list.exp: list range, must be same files
+PASS: gdb.base/list.exp: list filename:function (5 tests)
+PASS: gdb.base/list.exp: list 'list0.c:main'
+XFAIL: gdb.base/list.exp: list filename:function; wrong filename rejected
+PASS: gdb.base/list.exp: list filename:function; nonexistant file
+PASS: gdb.base/list.exp: list filename:function; nonexistant function
+PASS: gdb.base/list.exp: set listsize 4
+PASS: gdb.base/list.exp: list long_line
+PASS: gdb.base/list.exp: search 4321
+PASS: gdb.base/list.exp: search 6789
+PASS: gdb.base/list.exp: search extremely long line (> 5000 chars)
+PASS: gdb.base/list.exp: set listsize 2
+PASS: gdb.base/list.exp: list 1
+PASS: gdb.base/list.exp: list ,5
+Running ./gdb.base/logical.exp ...
+PASS: gdb.base/logical.exp: evaluate x; variables x = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x; variables x = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !!x; variables x = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x; variables x = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x; variables x = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !!x; variables x = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 0, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 0, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 0, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 0, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 1, y = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 1, y = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x && y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && !y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x && !y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || !y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x < y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x <= y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x == y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x != y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y; variables x = 1, y = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y; variables x = 1, y = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 0, y = 1, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 0, y = 1, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 0, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 0, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 0, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 0, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 0, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 1, z = 0; expecting 0
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 1, z = 0; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x && y || z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || y || z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate x || !y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && z; variables x = 1, y = 1, z = 1; expecting 1
+PASS: gdb.base/logical.exp: evaluate !x || y && !z; variables x = 1, y = 1, z = 1; expecting 0
+PASS: gdb.base/logical.exp: evaluate x > y || w == z; variables x = 1, y = 2, w = 3, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate x >= y && w != z; variables x = 1, y = 2, w = 3, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate ! x > y || w + z; variables x = 1, y = 2, w = 3, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y || w == z; variables x = 1, y = 2, w = 1, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y && w != z; variables x = 1, y = 2, w = 1, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate ! x > y || w + z; variables x = 1, y = 2, w = 1, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate x > y || w == z; variables x = 2, y = 2, w = 2, z = 3; expecting 0
+PASS: gdb.base/logical.exp: evaluate x >= y && w != z; variables x = 2, y = 2, w = 2, z = 3; expecting 1
+PASS: gdb.base/logical.exp: evaluate ! x > y || w + z; variables x = 2, y = 2, w = 2, z = 3; expecting 1
+Running ./gdb.base/longest-types.exp ...
+PASS: gdb.base/longest-types.exp: print &f->buf
+Running ./gdb.base/longjmp.exp ...
+PASS: gdb.base/longjmp.exp: breakpoint at pattern 1 start
+PASS: gdb.base/longjmp.exp: continue to breakpoint at pattern 1 start
+PASS: gdb.base/longjmp.exp: breakpoint at miss_step_1
+PASS: gdb.base/longjmp.exp: next over setjmp (1)
+PASS: gdb.base/longjmp.exp: next to longjmp (1)
+FAIL: gdb.base/longjmp.exp: next over longjmp(1)
+PASS: gdb.base/longjmp.exp: breakpoint at pattern 2 start
+PASS: gdb.base/longjmp.exp: continue to breakpoint at pattern 2 start
+PASS: gdb.base/longjmp.exp: breakpoint at miss_step_2
+PASS: gdb.base/longjmp.exp: next over setjmp (2)
+FAIL: gdb.base/longjmp.exp: next over call_longjmp (2)
+PASS: gdb.base/longjmp.exp: breakpoint at pattern 3 start
+PASS: gdb.base/longjmp.exp: continue to breakpoint at pattern 3 start
+PASS: gdb.base/longjmp.exp: next over patt3
+Running ./gdb.base/long_long.exp ...
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (char)" (1)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (short)" (2)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (int)" (4)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (long)" (8)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (long long)" (8)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (void *)" (8)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (double)" (8)
+PASS: gdb.base/long_long.exp: get integer valueof "sizeof (long double)" (16)
+PASS: gdb.base/long_long.exp: continue to breakpoint: Stop here and look
+PASS: gdb.base/long_long.exp: hex print p/x
+PASS: gdb.base/long_long.exp: decimal print p/x
+PASS: gdb.base/long_long.exp: default print val.dec
+PASS: gdb.base/long_long.exp: default print val.bin
+PASS: gdb.base/long_long.exp: default print val.oct
+PASS: gdb.base/long_long.exp: default print hex
+PASS: gdb.base/long_long.exp: decimal print p/u
+PASS: gdb.base/long_long.exp: binary print
+PASS: gdb.base/long_long.exp: octal print
+PASS: gdb.base/long_long.exp: print +ve long long
+PASS: gdb.base/long_long.exp: decimal print p/d
+PASS: gdb.base/long_long.exp: p/d val.oct
+PASS: gdb.base/long_long.exp: p/u val.oct
+PASS: gdb.base/long_long.exp: p/o val.oct
+PASS: gdb.base/long_long.exp: p/t val.oct
+PASS: gdb.base/long_long.exp: p/a val.oct
+PASS: gdb.base/long_long.exp: p/c val.oct
+PASS: gdb.base/long_long.exp: p/f val.oct
+PASS: gdb.base/long_long.exp: p/x *(char *)c
+PASS: gdb.base/long_long.exp: p/d *(char *)c
+PASS: gdb.base/long_long.exp: p/u *(char *)c
+PASS: gdb.base/long_long.exp: p/o *(char *)c
+PASS: gdb.base/long_long.exp: p/t *(char *)c
+PASS: gdb.base/long_long.exp: p/a *(char *)c
+PASS: gdb.base/long_long.exp: p/f *(char *)c
+PASS: gdb.base/long_long.exp: p/c *(char *)c
+PASS: gdb.base/long_long.exp: p/x *(short *)s
+PASS: gdb.base/long_long.exp: p/d *(short *)s
+PASS: gdb.base/long_long.exp: p/u *(short *)s
+PASS: gdb.base/long_long.exp: p/o *(short *)s
+PASS: gdb.base/long_long.exp: p/t *(short *)s
+PASS: gdb.base/long_long.exp: p/a *(short *)s
+PASS: gdb.base/long_long.exp: p/f *(short *)s
+PASS: gdb.base/long_long.exp: p/c *(short *)s
+PASS: gdb.base/long_long.exp: p/x *(int *)i
+PASS: gdb.base/long_long.exp: p/d *(int *)i
+PASS: gdb.base/long_long.exp: p/u *(int *)i
+PASS: gdb.base/long_long.exp: p/o *(int *)i
+PASS: gdb.base/long_long.exp: p/t *(int *)i
+PASS: gdb.base/long_long.exp: p/a *(int *)i
+PASS: gdb.base/long_long.exp: p/f *(int *)i
+PASS: gdb.base/long_long.exp: p/c *(int *)i
+PASS: gdb.base/long_long.exp: p/x *(long *)l
+PASS: gdb.base/long_long.exp: p/d *(long *)l
+PASS: gdb.base/long_long.exp: p/u *(long *)l
+PASS: gdb.base/long_long.exp: p/o *(long *)l
+PASS: gdb.base/long_long.exp: p/t *(long *)l
+PASS: gdb.base/long_long.exp: p/a *(long *)l
+PASS: gdb.base/long_long.exp: p/f *(long *)l
+PASS: gdb.base/long_long.exp: p/c *(long *)l
+PASS: gdb.base/long_long.exp: p/x *(long long *)ll
+PASS: gdb.base/long_long.exp: p/d *(long long *)ll
+PASS: gdb.base/long_long.exp: p/u *(long long *)ll
+PASS: gdb.base/long_long.exp: p/o *(long long *)ll
+PASS: gdb.base/long_long.exp: p/t *(long long *)ll
+PASS: gdb.base/long_long.exp: p/a *(long long *)ll
+PASS: gdb.base/long_long.exp: p/f *(long long *)ll
+PASS: gdb.base/long_long.exp: p/c *(long long *)ll
+PASS: gdb.base/long_long.exp: set examine size to w
+PASS: gdb.base/long_long.exp: x/x w
+PASS: gdb.base/long_long.exp: x/d w
+PASS: gdb.base/long_long.exp: x/u w
+PASS: gdb.base/long_long.exp: x/o w
+PASS: gdb.base/long_long.exp: x/t w
+PASS: gdb.base/long_long.exp: x/a
+PASS: gdb.base/long_long.exp: x/c b
+PASS: gdb.base/long_long.exp: x/f &val.oct
+PASS: gdb.base/long_long.exp: set examine size to g
+PASS: gdb.base/long_long.exp: x/2x g
+PASS: gdb.base/long_long.exp: x/2d g
+PASS: gdb.base/long_long.exp: x/2u g
+PASS: gdb.base/long_long.exp: x/2o g
+PASS: gdb.base/long_long.exp: x/2t g
+PASS: gdb.base/long_long.exp: x/2a
+PASS: gdb.base/long_long.exp: x/2c b
+PASS: gdb.base/long_long.exp: x/2f &val.oct
+PASS: gdb.base/long_long.exp: x/2bx b
+PASS: gdb.base/long_long.exp: x/2bd b
+PASS: gdb.base/long_long.exp: x/2bu b
+PASS: gdb.base/long_long.exp: x/2bo b
+PASS: gdb.base/long_long.exp: x/2bt b
+PASS: gdb.base/long_long.exp: x/2ba b
+PASS: gdb.base/long_long.exp: x/2bc b
+PASS: gdb.base/long_long.exp: x/2bf b
+PASS: gdb.base/long_long.exp: x/2hx h
+PASS: gdb.base/long_long.exp: x/2hd h
+PASS: gdb.base/long_long.exp: x/2hu h
+PASS: gdb.base/long_long.exp: x/2ho h
+PASS: gdb.base/long_long.exp: x/2ht h
+PASS: gdb.base/long_long.exp: x/2ha h
+PASS: gdb.base/long_long.exp: x/2hc h
+PASS: gdb.base/long_long.exp: x/2hf h
+PASS: gdb.base/long_long.exp: x/2wx w
+PASS: gdb.base/long_long.exp: x/2wd w
+PASS: gdb.base/long_long.exp: x/2wu w
+PASS: gdb.base/long_long.exp: x/2wo w
+PASS: gdb.base/long_long.exp: x/2wt w
+PASS: gdb.base/long_long.exp: x/2wa w
+PASS: gdb.base/long_long.exp: x/2wc w
+PASS: gdb.base/long_long.exp: x/2wf w
+PASS: gdb.base/long_long.exp: x/2gx g
+PASS: gdb.base/long_long.exp: x/2gd g
+PASS: gdb.base/long_long.exp: x/2gu g
+PASS: gdb.base/long_long.exp: x/2go g
+PASS: gdb.base/long_long.exp: x/2gt g
+PASS: gdb.base/long_long.exp: x/2ga g
+PASS: gdb.base/long_long.exp: x/2gc g
+PASS: gdb.base/long_long.exp: x/2gf g
+Running ./gdb.base/macscp.exp ...
+PASS: gdb.base/macscp.exp: list main for support check
+UNSUPPORTED: gdb.base/macscp.exp: Skipping test because debug information does not include macro information.
+Running ./gdb.base/maint.exp ...
+PASS: gdb.base/maint.exp: set height 0
+PASS: gdb.base/maint.exp: maint print registers
+PASS: gdb.base/maint.exp: maint check-symtabs
+PASS: gdb.base/maint.exp: maint space
+PASS: gdb.base/maint.exp: maint space 1
+PASS: gdb.base/maint.exp: maint time
+PASS: gdb.base/maint.exp: maint time 1
+PASS: gdb.base/maint.exp: maint time 0
+PASS: gdb.base/maint.exp: maint space 0
+PASS: gdb.base/maint.exp: maint demangle
+PASS: gdb.base/maint.exp: maint demangle main
+PASS: gdb.base/maint.exp: maint print statistics
+PASS: gdb.base/maint.exp: maint print dummy-frames
+PASS: gdb.base/maint.exp: maint print objfiles: header
+PASS: gdb.base/maint.exp: maint print objfiles: psymtabs
+PASS: gdb.base/maint.exp: maint print objfiles: symtabs
+PASS: gdb.base/maint.exp: maint print psymbols w/o args
+PASS: gdb.base/maint.exp: maint print psymbols 1
+PASS: gdb.base/maint.exp: shell rm -f psymbols_output
+PASS: gdb.base/maint.exp: maint print msymbols w/o args
+PASS: gdb.base/maint.exp: maint print msymbols
+PASS: gdb.base/maint.exp: shell rm -f msymbols_output
+PASS: gdb.base/maint.exp: cd to objdir
+PASS: gdb.base/maint.exp: maint print msymbols
+PASS: gdb.base/maint.exp: shell rm -f msymbols_output2
+PASS: gdb.base/maint.exp: cd to mydir
+PASS: gdb.base/maint.exp: maint print symbols w/o args
+PASS: gdb.base/maint.exp: maint print symbols
+PASS: gdb.base/maint.exp: shell rm -f symbols_output
+PASS: gdb.base/maint.exp: maint print type
+PASS: gdb.base/maint.exp: maint info sections
+PASS: gdb.base/maint.exp: maint info sections .text
+PASS: gdb.base/maint.exp: maint info sections CODE
+PASS: gdb.base/maint.exp: maint info sections DATA
+PASS: gdb.base/maint.exp: maint info breakpoints
+PASS: gdb.base/maint.exp: maint print w/o args
+PASS: gdb.base/maint.exp: maint info w/o args
+PASS: gdb.base/maint.exp: maint w/o args
+PASS: gdb.base/maint.exp: help maint
+PASS: gdb.base/maint.exp: help maint check-symtabs
+PASS: gdb.base/maint.exp: help maint space
+PASS: gdb.base/maint.exp: help maint time
+PASS: gdb.base/maint.exp: help maint demangle
+PASS: gdb.base/maint.exp: help maint dump-me
+PASS: gdb.base/maint.exp: help maint internal-error
+PASS: gdb.base/maint.exp: help maint internal-warning
+PASS: gdb.base/maint.exp: help maint print statistics
+PASS: gdb.base/maint.exp: help maint print dummy-frames
+PASS: gdb.base/maint.exp: help maint print objfiles
+PASS: gdb.base/maint.exp: help maint print psymbols
+PASS: gdb.base/maint.exp: help maint print msymbols
+PASS: gdb.base/maint.exp: help maint print symbols
+PASS: gdb.base/maint.exp: help maint print type
+PASS: gdb.base/maint.exp: help maint info sections
+PASS: gdb.base/maint.exp: help maint info breakpoints
+PASS: gdb.base/maint.exp: help maint info
+PASS: gdb.base/maint.exp: help maint print
+PASS: gdb.base/maint.exp: help maint
+PASS: gdb.base/maint.exp: maint dump-me
+PASS: gdb.base/maint.exp: maint internal-error
+PASS: gdb.base/maint.exp: internal-error resync
+Running ./gdb.base/memattr.exp ...
+PASS: gdb.base/memattr.exp: create mem region 1
+PASS: gdb.base/memattr.exp: create mem region 2
+PASS: gdb.base/memattr.exp: create mem region 3
+PASS: gdb.base/memattr.exp: create mem region 4
+PASS: gdb.base/memattr.exp: create mem region 5
+PASS: gdb.base/memattr.exp: info mem (1)
+PASS: gdb.base/memattr.exp: mem1 cannot be read
+PASS: gdb.base/memattr.exp: mem1 can be written
+PASS: gdb.base/memattr.exp: mem2 cannot be written
+PASS: gdb.base/memattr.exp: mem2 can be read
+PASS: gdb.base/memattr.exp: disable mem 1
+PASS: gdb.base/memattr.exp: mem 1 was disabled
+PASS: gdb.base/memattr.exp: enable mem 1
+PASS: gdb.base/memattr.exp: mem 1 was enabled
+PASS: gdb.base/memattr.exp: disable mem 2 4
+PASS: gdb.base/memattr.exp: mem 2 and 4 were disabled
+PASS: gdb.base/memattr.exp: enable mem 2-4
+PASS: gdb.base/memattr.exp: mem 2-4 were enabled
+PASS: gdb.base/memattr.exp: disable mem
+PASS: gdb.base/memattr.exp: mem 1 to 5 were disabled
+PASS: gdb.base/memattr.exp: enable mem
+PASS: gdb.base/memattr.exp: mem 1 to 5 were enabled
+PASS: gdb.base/memattr.exp: disable non-existant regions
+PASS: gdb.base/memattr.exp: delete mem 1
+PASS: gdb.base/memattr.exp: mem 1 was deleted
+PASS: gdb.base/memattr.exp: delete mem 2 4
+PASS: gdb.base/memattr.exp: mem 2 and 4 were deleted
+PASS: gdb.base/memattr.exp: delete mem 2-4
+PASS: gdb.base/memattr.exp: mem 2-4 were deleted
+PASS: gdb.base/memattr.exp: delete non-existant region
+PASS: gdb.base/memattr.exp: mem 0x30 0x60 ro
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x40: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x30 0x40: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x40 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x50 0x60: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x50 0x70: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x30 0x60: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x70: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x30 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x40 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x20 0x30: no-overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x60 0x70: no-overlap
+PASS: gdb.base/memattr.exp: 0x30 0x60: 0x80 0x0: no-overlap
+PASS: gdb.base/memattr.exp: mem 0x30 0x0 ro
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x20 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x30 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x40 0x50: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x20 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x30 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x40 0x0: overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x20 0x30: no-overlap
+PASS: gdb.base/memattr.exp: 0x30 0x0: 0x00 0x10: no-overlap
+Running ./gdb.base/mips_pro.exp ...
+PASS: gdb.base/mips_pro.exp: backtrace
+Running ./gdb.base/miscexprs.exp ...
+PASS: gdb.base/miscexprs.exp: continue to marker1
+PASS: gdb.base/miscexprs.exp: up from marker1
+PASS: gdb.base/miscexprs.exp: print value of &ibig.i[0]
+PASS: gdb.base/miscexprs.exp: print value of &cbig.c[0]
+PASS: gdb.base/miscexprs.exp: print value of &fbig.f[0]
+PASS: gdb.base/miscexprs.exp: print value of &dbig.d[0]
+PASS: gdb.base/miscexprs.exp: print value of &sbig.s[0]
+PASS: gdb.base/miscexprs.exp: print value of &lbig.l[0]
+PASS: gdb.base/miscexprs.exp: print value of ibig.i[100] | 1
+PASS: gdb.base/miscexprs.exp: print value of sbig.s[90] & 127
+PASS: gdb.base/miscexprs.exp: print value of !ibig.i[100]
+PASS: gdb.base/miscexprs.exp: print value of !sbig.s[90]
+PASS: gdb.base/miscexprs.exp: print value of !ibig.i[100]
+PASS: gdb.base/miscexprs.exp: print value of !ibig.i[100]
+PASS: gdb.base/miscexprs.exp: print value of !sbig.s[90] * 10
+PASS: gdb.base/miscexprs.exp: print value of ibig.i[100] * sbig.s[90]
+PASS: gdb.base/miscexprs.exp: print value of fbig.f[100] * dbig.d[202]
+PASS: gdb.base/miscexprs.exp: print value of !(sbig.s[90] * 2)
+PASS: gdb.base/miscexprs.exp: print value of sizeof sbig
+PASS: gdb.base/miscexprs.exp: print value of sizeof cbig
+PASS: gdb.base/miscexprs.exp: print value of sizeof lbig / sizeof long
+PASS: gdb.base/miscexprs.exp: print value of ibig.i[100] << 2
+PASS: gdb.base/miscexprs.exp: print value of sbig.s[90] >> 4
+PASS: gdb.base/miscexprs.exp: print value of lbig.l[333] >> 6
+Running ./gdb.base/morestack.exp ...
+PASS: gdb.base/morestack.exp: continue
+PASS: gdb.base/morestack.exp: up 3000
+Running ./gdb.base/moribund-step.exp ...
+PASS: gdb.base/moribund-step.exp: set non-stop on
+Running ./gdb.base/multi-forks.exp ...
+Running ./gdb.base/nextoverexit.exp ...
+PASS: gdb.base/nextoverexit.exp: next over exit
+Running ./gdb.base/nodebug.exp ...
+PASS: gdb.base/nodebug.exp: p top
+PASS: gdb.base/nodebug.exp: whatis top
+PASS: gdb.base/nodebug.exp: ptype top
+PASS: gdb.base/nodebug.exp: p middle
+PASS: gdb.base/nodebug.exp: whatis middle
+PASS: gdb.base/nodebug.exp: ptype middle
+PASS: gdb.base/nodebug.exp: p dataglobal
+PASS: gdb.base/nodebug.exp: whatis dataglobal
+PASS: gdb.base/nodebug.exp: ptype dataglobal
+PASS: gdb.base/nodebug.exp: p datalocal
+PASS: gdb.base/nodebug.exp: whatis datalocal
+PASS: gdb.base/nodebug.exp: ptype datalocal
+PASS: gdb.base/nodebug.exp: p bssglobal
+PASS: gdb.base/nodebug.exp: whatis bssglobal
+PASS: gdb.base/nodebug.exp: ptype bssglobal
+PASS: gdb.base/nodebug.exp: p bsslocal
+PASS: gdb.base/nodebug.exp: whatis bsslocal
+PASS: gdb.base/nodebug.exp: ptype bsslocal
+PASS: gdb.base/nodebug.exp: backtrace from inner in nodebug.exp
+PASS: gdb.base/nodebug.exp: p/c array_index("abcdef",2)
+PASS: gdb.base/nodebug.exp: backtrace from middle in nodebug.exp
+Running ./gdb.base/nofield.exp ...
+PASS: gdb.base/nofield.exp: ptype struct not_empty
+PASS: gdb.base/nofield.exp: ptype struct empty
+PASS: gdb.base/nofield.exp: ptype union empty_union
+Running ./gdb.base/nostdlib.exp ...
+UNTESTED: gdb.base/nostdlib.exp: nostdlib.exp
+Running ./gdb.base/opaque.exp ...
+PASS: gdb.base/opaque.exp: whatis on opaque struct pointer (statically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct pointer (statically)
+PASS: gdb.base/opaque.exp: whatis on opaque struct instance (statically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct instance (statically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct tagname (statically)
+PASS: gdb.base/opaque.exp: whatis on opaque struct pointer (dynamically)
+PASS: gdb.base/opaque.exp: ptype on opaque struct pointer (dynamically) 1
+PASS: gdb.base/opaque.exp: whatis on opaque struct instance (dynamically) 1
+PASS: gdb.base/opaque.exp: ptype on opaque struct instance (dynamically) 1
+PASS: gdb.base/opaque.exp: ptype on opaque struct tagname (dynamically) 1
+PASS: gdb.base/opaque.exp: whatis on opaque struct pointer (dynamically) 1
+PASS: gdb.base/opaque.exp: ptype on opaque struct pointer (dynamically) 2
+PASS: gdb.base/opaque.exp: whatis on opaque struct instance (dynamically) 2
+PASS: gdb.base/opaque.exp: ptype on opaque struct instance (dynamically) 2
+PASS: gdb.base/opaque.exp: ptype on opaque struct tagname (dynamically) 2
+Running ./gdb.base/overlays.exp ...
+Running ./gdb.base/page.exp ...
+PASS: gdb.base/page.exp: set pagination off
+PASS: gdb.base/page.exp: pagination is off
+PASS: gdb.base/page.exp: unpaged help
+PASS: gdb.base/page.exp: set pagination on
+PASS: gdb.base/page.exp: pagination is on
+PASS: gdb.base/page.exp: set height 10
+PASS: gdb.base/page.exp: paged help
+PASS: gdb.base/page.exp: q
+Running ./gdb.base/pc-fp.exp ...
+PASS: gdb.base/pc-fp.exp: get hexadecimal valueof "$pc"
+PASS: gdb.base/pc-fp.exp: get hexadecimal valueof "$fp"
+PASS: gdb.base/pc-fp.exp: display/i $pc
+PASS: gdb.base/pc-fp.exp: display/w $fp
+PASS: gdb.base/pc-fp.exp: info register $pc
+PASS: gdb.base/pc-fp.exp: info register $fp
+PASS: gdb.base/pc-fp.exp: info register pc fp
+Running ./gdb.base/pending.exp ...
+PASS: gdb.base/pending.exp: set pending breakpoint (without symbols)
+PASS: gdb.base/pending.exp: complete condition
+PASS: gdb.base/pending.exp: single pending breakpoint info (without symbols)
+PASS: gdb.base/pending.exp: run to resolved breakpoint 1 (without symbols)
+PASS: gdb.base/pending.exp: set pending breakpoint
+PASS: gdb.base/pending.exp: single pending breakpoint info
+PASS: gdb.base/pending.exp: breakpoint function
+PASS: gdb.base/pending.exp: pending plus real breakpoint info
+PASS: gdb.base/pending.exp: Don't set pending breakpoint
+PASS: gdb.base/pending.exp: condition 1 k == 1
+PASS: gdb.base/pending.exp: pending plus condition
+PASS: gdb.base/pending.exp: disable 1
+PASS: gdb.base/pending.exp: pending disabled
+PASS: gdb.base/pending.exp: Set commands for pending breakpoint
+PASS: gdb.base/pending.exp: pending disabled plus commands
+PASS: gdb.base/pending.exp: Set pending breakpoint 2
+PASS: gdb.base/pending.exp: multiple pending breakpoints
+PASS: gdb.base/pending.exp: Set pending breakpoint 3
+PASS: gdb.base/pending.exp: set ignore count on pending breakpoint 3
+PASS: gdb.base/pending.exp: multiple pending breakpoints 2
+PASS: gdb.base/pending.exp: running to main
+PASS: gdb.base/pending.exp: re-enabling pending breakpoint that can resolve instantly
+PASS: gdb.base/pending.exp: continue to resolved breakpoint 2
+PASS: gdb.base/pending.exp: continue to resolved breakpoint 1
+PASS: gdb.base/pending.exp: Disable other breakpoints
+PASS: gdb.base/pending.exp: Disable other breakpoints
+PASS: gdb.base/pending.exp: continue to resolved breakpoint 3
+PASS: gdb.base/pending.exp: set imaginary pending breakpoint
+PASS: gdb.base/pending.exp: rerun to main
+PASS: gdb.base/pending.exp: verify pending breakpoint after restart
+Running ./gdb.base/permissions.exp ...
+PASS: gdb.base/permissions.exp: show may-write-registers
+PASS: gdb.base/permissions.exp: show may-write-memory
+PASS: gdb.base/permissions.exp: show may-insert-breakpoints
+PASS: gdb.base/permissions.exp: show may-insert-tracepoints
+PASS: gdb.base/permissions.exp: show may-insert-fast-tracepoints
+PASS: gdb.base/permissions.exp: show may-interrupt
+PASS: gdb.base/permissions.exp: enable observer mode
+PASS: gdb.base/permissions.exp: show may-write-memory
+PASS: gdb.base/permissions.exp: show may-write-registers
+PASS: gdb.base/permissions.exp: show may-insert-breakpoints
+PASS: gdb.base/permissions.exp: show may-insert-tracepoints
+PASS: gdb.base/permissions.exp: show may-insert-fast-tracepoints
+PASS: gdb.base/permissions.exp: show may-interrupt
+PASS: gdb.base/permissions.exp: disable observer mode
+PASS: gdb.base/permissions.exp: set non-stop off
+PASS: gdb.base/permissions.exp: set a global
+PASS: gdb.base/permissions.exp: print x
+PASS: gdb.base/permissions.exp: set may-write-memory off
+PASS: gdb.base/permissions.exp: try to set a global
+PASS: gdb.base/permissions.exp: print x
+Running ./gdb.base/pie-execl.exp ...
+Running ./gdb.base/pointers.exp ...
+PASS: gdb.base/pointers.exp: continuing after dummy()
+PASS: gdb.base/pointers.exp: set pointer to beginning of array
+PASS: gdb.base/pointers.exp: set pointer to end of array
+PASS: gdb.base/pointers.exp: print object pointed to
+PASS: gdb.base/pointers.exp: print object pointed to #2
+PASS: gdb.base/pointers.exp: pointer1==pointer2
+PASS: gdb.base/pointers.exp: pointer1!=pointer2
+PASS: gdb.base/pointers.exp: pointer1<=pointer2
+PASS: gdb.base/pointers.exp: pointer1>=pointer2
+PASS: gdb.base/pointers.exp: pointer1<pointer2
+PASS: gdb.base/pointers.exp: pointer1>pointer2
+PASS: gdb.base/pointers.exp: set y = *v_int_pointer++
+PASS: gdb.base/pointers.exp: pointer assignment
+PASS: gdb.base/pointers.exp: and post-increment
+PASS: gdb.base/pointers.exp: set y = *--v_int_pointer2
+PASS: gdb.base/pointers.exp: pointer assignment
+PASS: gdb.base/pointers.exp: and pre-decrement
+PASS: gdb.base/pointers.exp: set y =v_int_pointer-v_int_pointer2
+PASS: gdb.base/pointers.exp: pointer1-pointer2
+PASS: gdb.base/pointers.exp: set v_int_pointer=v_int_array
+PASS: gdb.base/pointers.exp: print array element through pointer
+PASS: gdb.base/pointers.exp: print array element through pointer #2
+PASS: gdb.base/pointers.exp: print array element through pointer #3
+PASS: gdb.base/pointers.exp: print array element through pointer #4
+PASS: gdb.base/pointers.exp: print array element through pointer #5
+PASS: gdb.base/pointers.exp: increment rptr
+PASS: gdb.base/pointers.exp: print array element through pointer #6
+PASS: gdb.base/pointers.exp: print array element through pointer #7
+PASS: gdb.base/pointers.exp: print array element through pointer #8
+PASS: gdb.base/pointers.exp: print array element w/ pointer arithmetic
+PASS: gdb.base/pointers.exp: print through ptr to ptr
+PASS: gdb.base/pointers.exp: continue
+PASS: gdb.base/pointers.exp: up from marker1
+PASS: gdb.base/pointers.exp: print value of *pUC
+PASS: gdb.base/pointers.exp: ptype pUC
+PASS: gdb.base/pointers.exp: print value of *pS
+PASS: gdb.base/pointers.exp: ptype pS
+PASS: gdb.base/pointers.exp: print value of *pUS
+PASS: gdb.base/pointers.exp: ptype pUS
+PASS: gdb.base/pointers.exp: print value of *pI
+PASS: gdb.base/pointers.exp: ptype pI
+PASS: gdb.base/pointers.exp: print value of *pUI
+PASS: gdb.base/pointers.exp: ptype pUI
+PASS: gdb.base/pointers.exp: print value of *pL
+PASS: gdb.base/pointers.exp: ptype pL
+PASS: gdb.base/pointers.exp: print value of *pUL
+PASS: gdb.base/pointers.exp: ptype pUL
+PASS: gdb.base/pointers.exp: print value of *pF
+PASS: gdb.base/pointers.exp: ptype pF
+PASS: gdb.base/pointers.exp: print value of *pD
+PASS: gdb.base/pointers.exp: ptype pD
+PASS: gdb.base/pointers.exp: print value of ******ppppppC
+PASS: gdb.base/pointers.exp: ptype pC
+PASS: gdb.base/pointers.exp: ptype ppC
+PASS: gdb.base/pointers.exp: ptype pppC
+PASS: gdb.base/pointers.exp: ptype ppppC
+PASS: gdb.base/pointers.exp: ptype pppppC
+PASS: gdb.base/pointers.exp: ptype ppppppC
+PASS: gdb.base/pointers.exp: p instance.array_variable + 0
+Running ./gdb.base/pr10179.exp ...
+PASS: gdb.base/pr10179.exp: rbreak foo.*
+PASS: gdb.base/pr10179.exp: rbreak pr10179-a.c:foo.*
+PASS: gdb.base/pr10179.exp: rbreak pr10179-a.c : .*
+Running ./gdb.base/pr11022.exp ...
+Running ./gdb.base/prelink.exp ...
+Running ./gdb.base/printcmds.exp ...
+PASS: gdb.base/printcmds.exp: print $pc
+PASS: gdb.base/printcmds.exp: print "abc"
+PASS: gdb.base/printcmds.exp: print sizeof ("abc")
+PASS: gdb.base/printcmds.exp: ptype "abc"
+PASS: gdb.base/printcmds.exp: print $cvar = "abc"
+PASS: gdb.base/printcmds.exp: print sizeof ($cvar)
+PASS: gdb.base/printcmds.exp: print $pc (with file)
+PASS: gdb.base/printcmds.exp: set print sevenbit-strings
+PASS: gdb.base/printcmds.exp: set print address off
+PASS: gdb.base/printcmds.exp: set width 0
+PASS: gdb.base/printcmds.exp: p ctable1[120] #1
+PASS: gdb.base/printcmds.exp: p 123
+PASS: gdb.base/printcmds.exp: p -123
+PASS: gdb.base/printcmds.exp: p/d 123
+PASS: gdb.base/printcmds.exp: p 0123
+PASS: gdb.base/printcmds.exp: p 00123
+PASS: gdb.base/printcmds.exp: p -0123
+PASS: gdb.base/printcmds.exp: p/o 0123
+PASS: gdb.base/printcmds.exp: p 0x123
+PASS: gdb.base/printcmds.exp: p -0x123
+PASS: gdb.base/printcmds.exp: p 0x0123
+PASS: gdb.base/printcmds.exp: p -0x0123
+PASS: gdb.base/printcmds.exp: p 0xABCDEF
+PASS: gdb.base/printcmds.exp: p 0xabcdef
+PASS: gdb.base/printcmds.exp: p 0xAbCdEf
+PASS: gdb.base/printcmds.exp: p/x 0x123
+PASS: gdb.base/printcmds.exp: p 0b0
+PASS: gdb.base/printcmds.exp: p 0b1111
+PASS: gdb.base/printcmds.exp: p 0B1111
+PASS: gdb.base/printcmds.exp: p -0b1111
+PASS: gdb.base/printcmds.exp: reject p 0x
+PASS: gdb.base/printcmds.exp: reject p 0b
+PASS: gdb.base/printcmds.exp: p ''
+PASS: gdb.base/printcmds.exp: p '''
+PASS: gdb.base/printcmds.exp: reject p '\'
+PASS: gdb.base/printcmds.exp: reject p '\\\'
+PASS: gdb.base/printcmds.exp: reject p DEADBEEF
+PASS: gdb.base/printcmds.exp: reject p 09
+PASS: gdb.base/printcmds.exp: reject p 079
+PASS: gdb.base/printcmds.exp: reject p 0xG
+PASS: gdb.base/printcmds.exp: reject p 0xAG
+PASS: gdb.base/printcmds.exp: reject p 0b2
+PASS: gdb.base/printcmds.exp: reject p 0b12
+PASS: gdb.base/printcmds.exp: check for floating addition
+PASS: gdb.base/printcmds.exp: p 1.
+PASS: gdb.base/printcmds.exp: p 1.5
+PASS: gdb.base/printcmds.exp: p 1.f
+PASS: gdb.base/printcmds.exp: p 1.5f
+PASS: gdb.base/printcmds.exp: p 1.l
+PASS: gdb.base/printcmds.exp: p 1.5l
+PASS: gdb.base/printcmds.exp: p 0x1.1
+PASS: gdb.base/printcmds.exp: reject p 123DEADBEEF
+PASS: gdb.base/printcmds.exp: reject p 123foobar.bazfoo3
+PASS: gdb.base/printcmds.exp: reject p 123EEEEEEEEEEEEEEEEE33333k333
+PASS: gdb.base/printcmds.exp: reject p 1.1x
+PASS: gdb.base/printcmds.exp: reject p 1.1ff
+PASS: gdb.base/printcmds.exp: reject p 1.1ll
+PASS: gdb.base/printcmds.exp: p 'a'
+PASS: gdb.base/printcmds.exp: p/c 'a'
+PASS: gdb.base/printcmds.exp: p/x 'a'
+PASS: gdb.base/printcmds.exp: p/d 'a'
+PASS: gdb.base/printcmds.exp: p/t 'a'
+PASS: gdb.base/printcmds.exp: p '\141'
+PASS: gdb.base/printcmds.exp: p/x '\377'
+PASS: gdb.base/printcmds.exp: p '\''
+PASS: gdb.base/printcmds.exp: p '\\'
+PASS: gdb.base/printcmds.exp: p ctable1[0]
+PASS: gdb.base/printcmds.exp: p ctable1[1]
+PASS: gdb.base/printcmds.exp: p ctable1[2]
+PASS: gdb.base/printcmds.exp: p ctable1[3]
+PASS: gdb.base/printcmds.exp: p ctable1[4]
+PASS: gdb.base/printcmds.exp: p ctable1[5]
+PASS: gdb.base/printcmds.exp: p ctable1[6]
+PASS: gdb.base/printcmds.exp: p ctable1[7]
+PASS: gdb.base/printcmds.exp: p ctable1[8]
+PASS: gdb.base/printcmds.exp: p ctable1[9]
+PASS: gdb.base/printcmds.exp: p ctable1[10]
+PASS: gdb.base/printcmds.exp: p ctable1[11]
+PASS: gdb.base/printcmds.exp: p ctable1[12]
+PASS: gdb.base/printcmds.exp: p ctable1[13]
+PASS: gdb.base/printcmds.exp: p ctable1[14]
+PASS: gdb.base/printcmds.exp: p ctable1[15]
+PASS: gdb.base/printcmds.exp: p ctable1[16]
+PASS: gdb.base/printcmds.exp: p ctable1[17]
+PASS: gdb.base/printcmds.exp: p ctable1[18]
+PASS: gdb.base/printcmds.exp: p ctable1[19]
+PASS: gdb.base/printcmds.exp: p ctable1[20]
+PASS: gdb.base/printcmds.exp: p ctable1[21]
+PASS: gdb.base/printcmds.exp: p ctable1[22]
+PASS: gdb.base/printcmds.exp: p ctable1[23]
+PASS: gdb.base/printcmds.exp: p ctable1[24]
+PASS: gdb.base/printcmds.exp: p ctable1[25]
+PASS: gdb.base/printcmds.exp: p ctable1[26]
+PASS: gdb.base/printcmds.exp: p ctable1[27]
+PASS: gdb.base/printcmds.exp: p ctable1[28]
+PASS: gdb.base/printcmds.exp: p ctable1[29]
+PASS: gdb.base/printcmds.exp: p ctable1[30]
+PASS: gdb.base/printcmds.exp: p ctable1[31]
+PASS: gdb.base/printcmds.exp: p ctable1[32]
+PASS: gdb.base/printcmds.exp: p ctable1[33]
+PASS: gdb.base/printcmds.exp: p ctable1[34]
+PASS: gdb.base/printcmds.exp: p ctable1[35]
+PASS: gdb.base/printcmds.exp: p ctable1[36]
+PASS: gdb.base/printcmds.exp: p ctable1[37]
+PASS: gdb.base/printcmds.exp: p ctable1[38]
+PASS: gdb.base/printcmds.exp: p ctable1[39]
+PASS: gdb.base/printcmds.exp: p ctable1[40]
+PASS: gdb.base/printcmds.exp: p ctable1[41]
+PASS: gdb.base/printcmds.exp: p ctable1[42]
+PASS: gdb.base/printcmds.exp: p ctable1[43]
+PASS: gdb.base/printcmds.exp: p ctable1[44]
+PASS: gdb.base/printcmds.exp: p ctable1[45]
+PASS: gdb.base/printcmds.exp: p ctable1[46]
+PASS: gdb.base/printcmds.exp: p ctable1[47]
+PASS: gdb.base/printcmds.exp: p ctable1[48]
+PASS: gdb.base/printcmds.exp: p ctable1[49]
+PASS: gdb.base/printcmds.exp: p ctable1[50]
+PASS: gdb.base/printcmds.exp: p ctable1[51]
+PASS: gdb.base/printcmds.exp: p ctable1[52]
+PASS: gdb.base/printcmds.exp: p ctable1[53]
+PASS: gdb.base/printcmds.exp: p ctable1[54]
+PASS: gdb.base/printcmds.exp: p ctable1[55]
+PASS: gdb.base/printcmds.exp: p ctable1[56]
+PASS: gdb.base/printcmds.exp: p ctable1[57]
+PASS: gdb.base/printcmds.exp: p ctable1[58]
+PASS: gdb.base/printcmds.exp: p ctable1[59]
+PASS: gdb.base/printcmds.exp: p ctable1[60]
+PASS: gdb.base/printcmds.exp: p ctable1[61]
+PASS: gdb.base/printcmds.exp: p ctable1[62]
+PASS: gdb.base/printcmds.exp: p ctable1[63]
+PASS: gdb.base/printcmds.exp: p ctable1[64]
+PASS: gdb.base/printcmds.exp: p ctable1[65]
+PASS: gdb.base/printcmds.exp: p ctable1[66]
+PASS: gdb.base/printcmds.exp: p ctable1[67]
+PASS: gdb.base/printcmds.exp: p ctable1[68]
+PASS: gdb.base/printcmds.exp: p ctable1[69]
+PASS: gdb.base/printcmds.exp: p ctable1[70]
+PASS: gdb.base/printcmds.exp: p ctable1[71]
+PASS: gdb.base/printcmds.exp: p ctable1[72]
+PASS: gdb.base/printcmds.exp: p ctable1[73]
+PASS: gdb.base/printcmds.exp: p ctable1[74]
+PASS: gdb.base/printcmds.exp: p ctable1[75]
+PASS: gdb.base/printcmds.exp: p ctable1[76]
+PASS: gdb.base/printcmds.exp: p ctable1[77]
+PASS: gdb.base/printcmds.exp: p ctable1[78]
+PASS: gdb.base/printcmds.exp: p ctable1[79]
+PASS: gdb.base/printcmds.exp: p ctable1[80]
+PASS: gdb.base/printcmds.exp: p ctable1[81]
+PASS: gdb.base/printcmds.exp: p ctable1[82]
+PASS: gdb.base/printcmds.exp: p ctable1[83]
+PASS: gdb.base/printcmds.exp: p ctable1[84]
+PASS: gdb.base/printcmds.exp: p ctable1[85]
+PASS: gdb.base/printcmds.exp: p ctable1[86]
+PASS: gdb.base/printcmds.exp: p ctable1[87]
+PASS: gdb.base/printcmds.exp: p ctable1[88]
+PASS: gdb.base/printcmds.exp: p ctable1[89]
+PASS: gdb.base/printcmds.exp: p ctable1[90]
+PASS: gdb.base/printcmds.exp: p ctable1[91]
+PASS: gdb.base/printcmds.exp: p ctable1[92]
+PASS: gdb.base/printcmds.exp: p ctable1[93]
+PASS: gdb.base/printcmds.exp: p ctable1[94]
+PASS: gdb.base/printcmds.exp: p ctable1[95]
+PASS: gdb.base/printcmds.exp: p ctable1[96]
+PASS: gdb.base/printcmds.exp: p ctable1[97]
+PASS: gdb.base/printcmds.exp: p ctable1[98]
+PASS: gdb.base/printcmds.exp: p ctable1[99]
+PASS: gdb.base/printcmds.exp: p ctable1[100]
+PASS: gdb.base/printcmds.exp: p ctable1[101]
+PASS: gdb.base/printcmds.exp: p ctable1[102]
+PASS: gdb.base/printcmds.exp: p ctable1[103]
+PASS: gdb.base/printcmds.exp: p ctable1[104]
+PASS: gdb.base/printcmds.exp: p ctable1[105]
+PASS: gdb.base/printcmds.exp: p ctable1[106]
+PASS: gdb.base/printcmds.exp: p ctable1[107]
+PASS: gdb.base/printcmds.exp: p ctable1[108]
+PASS: gdb.base/printcmds.exp: p ctable1[109]
+PASS: gdb.base/printcmds.exp: p ctable1[110]
+PASS: gdb.base/printcmds.exp: p ctable1[111]
+PASS: gdb.base/printcmds.exp: p ctable1[112]
+PASS: gdb.base/printcmds.exp: p ctable1[113]
+PASS: gdb.base/printcmds.exp: p ctable1[114]
+PASS: gdb.base/printcmds.exp: p ctable1[115]
+PASS: gdb.base/printcmds.exp: p ctable1[116]
+PASS: gdb.base/printcmds.exp: p ctable1[117]
+PASS: gdb.base/printcmds.exp: p ctable1[118]
+PASS: gdb.base/printcmds.exp: p ctable1[119]
+PASS: gdb.base/printcmds.exp: p ctable1[120]
+PASS: gdb.base/printcmds.exp: p ctable1[121]
+PASS: gdb.base/printcmds.exp: p ctable1[122]
+PASS: gdb.base/printcmds.exp: p ctable1[123]
+PASS: gdb.base/printcmds.exp: p ctable1[124]
+PASS: gdb.base/printcmds.exp: p ctable1[125]
+PASS: gdb.base/printcmds.exp: p ctable1[126]
+PASS: gdb.base/printcmds.exp: p ctable1[127]
+PASS: gdb.base/printcmds.exp: p ctable1[128]
+PASS: gdb.base/printcmds.exp: p ctable1[129]
+PASS: gdb.base/printcmds.exp: p ctable1[130]
+PASS: gdb.base/printcmds.exp: p ctable1[131]
+PASS: gdb.base/printcmds.exp: p ctable1[132]
+PASS: gdb.base/printcmds.exp: p ctable1[133]
+PASS: gdb.base/printcmds.exp: p ctable1[134]
+PASS: gdb.base/printcmds.exp: p ctable1[135]
+PASS: gdb.base/printcmds.exp: p ctable1[136]
+PASS: gdb.base/printcmds.exp: p ctable1[137]
+PASS: gdb.base/printcmds.exp: p ctable1[138]
+PASS: gdb.base/printcmds.exp: p ctable1[139]
+PASS: gdb.base/printcmds.exp: p ctable1[140]
+PASS: gdb.base/printcmds.exp: p ctable1[141]
+PASS: gdb.base/printcmds.exp: p ctable1[142]
+PASS: gdb.base/printcmds.exp: p ctable1[143]
+PASS: gdb.base/printcmds.exp: p ctable1[144]
+PASS: gdb.base/printcmds.exp: p ctable1[145]
+PASS: gdb.base/printcmds.exp: p ctable1[146]
+PASS: gdb.base/printcmds.exp: p ctable1[147]
+PASS: gdb.base/printcmds.exp: p ctable1[148]
+PASS: gdb.base/printcmds.exp: p ctable1[149]
+PASS: gdb.base/printcmds.exp: p ctable1[150]
+PASS: gdb.base/printcmds.exp: p ctable1[151]
+PASS: gdb.base/printcmds.exp: p ctable1[152]
+PASS: gdb.base/printcmds.exp: p ctable1[153]
+PASS: gdb.base/printcmds.exp: p ctable1[154]
+PASS: gdb.base/printcmds.exp: p ctable1[155]
+PASS: gdb.base/printcmds.exp: p ctable1[156]
+PASS: gdb.base/printcmds.exp: p ctable1[157]
+PASS: gdb.base/printcmds.exp: p ctable1[158]
+PASS: gdb.base/printcmds.exp: p ctable1[159]
+PASS: gdb.base/printcmds.exp: p ctable1[160]
+PASS: gdb.base/printcmds.exp: p ctable1[161]
+PASS: gdb.base/printcmds.exp: p ctable1[162]
+PASS: gdb.base/printcmds.exp: p ctable1[163]
+PASS: gdb.base/printcmds.exp: p ctable1[164]
+PASS: gdb.base/printcmds.exp: p ctable1[165]
+PASS: gdb.base/printcmds.exp: p ctable1[166]
+PASS: gdb.base/printcmds.exp: p ctable1[167]
+PASS: gdb.base/printcmds.exp: p ctable1[168]
+PASS: gdb.base/printcmds.exp: p ctable1[169]
+PASS: gdb.base/printcmds.exp: p ctable1[170]
+PASS: gdb.base/printcmds.exp: p ctable1[171]
+PASS: gdb.base/printcmds.exp: p ctable1[172]
+PASS: gdb.base/printcmds.exp: p ctable1[173]
+PASS: gdb.base/printcmds.exp: p ctable1[174]
+PASS: gdb.base/printcmds.exp: p ctable1[175]
+PASS: gdb.base/printcmds.exp: p ctable1[176]
+PASS: gdb.base/printcmds.exp: p ctable1[177]
+PASS: gdb.base/printcmds.exp: p ctable1[178]
+PASS: gdb.base/printcmds.exp: p ctable1[179]
+PASS: gdb.base/printcmds.exp: p ctable1[180]
+PASS: gdb.base/printcmds.exp: p ctable1[181]
+PASS: gdb.base/printcmds.exp: p ctable1[182]
+PASS: gdb.base/printcmds.exp: p ctable1[183]
+PASS: gdb.base/printcmds.exp: p ctable1[184]
+PASS: gdb.base/printcmds.exp: p ctable1[185]
+PASS: gdb.base/printcmds.exp: p ctable1[186]
+PASS: gdb.base/printcmds.exp: p ctable1[187]
+PASS: gdb.base/printcmds.exp: p ctable1[188]
+PASS: gdb.base/printcmds.exp: p ctable1[189]
+PASS: gdb.base/printcmds.exp: p ctable1[190]
+PASS: gdb.base/printcmds.exp: p ctable1[191]
+PASS: gdb.base/printcmds.exp: p ctable1[192]
+PASS: gdb.base/printcmds.exp: p ctable1[193]
+PASS: gdb.base/printcmds.exp: p ctable1[194]
+PASS: gdb.base/printcmds.exp: p ctable1[195]
+PASS: gdb.base/printcmds.exp: p ctable1[196]
+PASS: gdb.base/printcmds.exp: p ctable1[197]
+PASS: gdb.base/printcmds.exp: p ctable1[198]
+PASS: gdb.base/printcmds.exp: p ctable1[199]
+PASS: gdb.base/printcmds.exp: p ctable1[200]
+PASS: gdb.base/printcmds.exp: p ctable1[201]
+PASS: gdb.base/printcmds.exp: p ctable1[202]
+PASS: gdb.base/printcmds.exp: p ctable1[203]
+PASS: gdb.base/printcmds.exp: p ctable1[204]
+PASS: gdb.base/printcmds.exp: p ctable1[205]
+PASS: gdb.base/printcmds.exp: p ctable1[206]
+PASS: gdb.base/printcmds.exp: p ctable1[207]
+PASS: gdb.base/printcmds.exp: p ctable1[208]
+PASS: gdb.base/printcmds.exp: p ctable1[209]
+PASS: gdb.base/printcmds.exp: p ctable1[210]
+PASS: gdb.base/printcmds.exp: p ctable1[211]
+PASS: gdb.base/printcmds.exp: p ctable1[212]
+PASS: gdb.base/printcmds.exp: p ctable1[213]
+PASS: gdb.base/printcmds.exp: p ctable1[214]
+PASS: gdb.base/printcmds.exp: p ctable1[215]
+PASS: gdb.base/printcmds.exp: p ctable1[216]
+PASS: gdb.base/printcmds.exp: p ctable1[217]
+PASS: gdb.base/printcmds.exp: p ctable1[218]
+PASS: gdb.base/printcmds.exp: p ctable1[219]
+PASS: gdb.base/printcmds.exp: p ctable1[220]
+PASS: gdb.base/printcmds.exp: p ctable1[221]
+PASS: gdb.base/printcmds.exp: p ctable1[222]
+PASS: gdb.base/printcmds.exp: p ctable1[223]
+PASS: gdb.base/printcmds.exp: p ctable1[224]
+PASS: gdb.base/printcmds.exp: p ctable1[225]
+PASS: gdb.base/printcmds.exp: p ctable1[226]
+PASS: gdb.base/printcmds.exp: p ctable1[227]
+PASS: gdb.base/printcmds.exp: p ctable1[228]
+PASS: gdb.base/printcmds.exp: p ctable1[229]
+PASS: gdb.base/printcmds.exp: p ctable1[230]
+PASS: gdb.base/printcmds.exp: p ctable1[231]
+PASS: gdb.base/printcmds.exp: p ctable1[232]
+PASS: gdb.base/printcmds.exp: p ctable1[233]
+PASS: gdb.base/printcmds.exp: p ctable1[234]
+PASS: gdb.base/printcmds.exp: p ctable1[235]
+PASS: gdb.base/printcmds.exp: p ctable1[236]
+PASS: gdb.base/printcmds.exp: p ctable1[237]
+PASS: gdb.base/printcmds.exp: p ctable1[238]
+PASS: gdb.base/printcmds.exp: p ctable1[239]
+PASS: gdb.base/printcmds.exp: p ctable1[240]
+PASS: gdb.base/printcmds.exp: p ctable1[241]
+PASS: gdb.base/printcmds.exp: p ctable1[242]
+PASS: gdb.base/printcmds.exp: p ctable1[243]
+PASS: gdb.base/printcmds.exp: p ctable1[244]
+PASS: gdb.base/printcmds.exp: p ctable1[245]
+PASS: gdb.base/printcmds.exp: p ctable1[246]
+PASS: gdb.base/printcmds.exp: p ctable1[247]
+PASS: gdb.base/printcmds.exp: p ctable1[248]
+PASS: gdb.base/printcmds.exp: p ctable1[249]
+PASS: gdb.base/printcmds.exp: p ctable1[250]
+PASS: gdb.base/printcmds.exp: p ctable1[251]
+PASS: gdb.base/printcmds.exp: p ctable1[252]
+PASS: gdb.base/printcmds.exp: p ctable1[253]
+PASS: gdb.base/printcmds.exp: p ctable1[254]
+PASS: gdb.base/printcmds.exp: p ctable1[255]
+PASS: gdb.base/printcmds.exp: set print elements 1
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 1
+PASS: gdb.base/printcmds.exp: set print elements 2
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 2
+PASS: gdb.base/printcmds.exp: set print elements 3
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 3
+PASS: gdb.base/printcmds.exp: set print elements 4
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 4
+PASS: gdb.base/printcmds.exp: set print elements 5
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 5
+PASS: gdb.base/printcmds.exp: set print elements 6
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 6
+PASS: gdb.base/printcmds.exp: set print elements 7
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 7
+PASS: gdb.base/printcmds.exp: set print elements 8
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 8
+PASS: gdb.base/printcmds.exp: set print elements 9
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 9
+PASS: gdb.base/printcmds.exp: set print elements 10
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 10
+PASS: gdb.base/printcmds.exp: set print elements 11
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 11
+PASS: gdb.base/printcmds.exp: set print elements 12
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 12
+PASS: gdb.base/printcmds.exp: set print elements 13
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 13
+PASS: gdb.base/printcmds.exp: set print elements 14
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 14
+PASS: gdb.base/printcmds.exp: set print elements 15
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 15
+PASS: gdb.base/printcmds.exp: set print elements 16
+PASS: gdb.base/printcmds.exp: p &ctable2[0*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[1*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[2*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[3*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[4*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[5*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[6*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[7*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[8*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[9*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[10*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[11*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[12*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[13*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[14*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: p &ctable2[15*16] with print elements set to 16
+PASS: gdb.base/printcmds.exp: correct element repeats in array embedded at offset > 0
+PASS: gdb.base/printcmds.exp: set print elements 0
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 0
+PASS: gdb.base/printcmds.exp: set print elements 1
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 1
+PASS: gdb.base/printcmds.exp: set print elements 5
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 5
+PASS: gdb.base/printcmds.exp: set print elements 19
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 19
+PASS: gdb.base/printcmds.exp: set print elements 20
+PASS: gdb.base/printcmds.exp: p teststring with elements set to 20
+PASS: gdb.base/printcmds.exp: set print elements 8
+PASS: gdb.base/printcmds.exp: p &ctable1[0]
+PASS: gdb.base/printcmds.exp: p &ctable1[1]
+PASS: gdb.base/printcmds.exp: p &ctable1[1*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[2*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[3*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[4*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[5*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[6*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[7*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[8*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[9*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[10*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[11*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[12*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[13*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[14*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[15*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[16*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[17*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[18*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[19*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[20*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[21*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[22*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[23*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[24*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[25*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[26*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[27*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[28*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[29*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[30*8]
+PASS: gdb.base/printcmds.exp: p &ctable1[31*8]
+PASS: gdb.base/printcmds.exp: set print elements 24
+PASS: gdb.base/printcmds.exp: set print elements 24
+PASS: gdb.base/printcmds.exp: p a1[0]
+PASS: gdb.base/printcmds.exp: p a1[9]
+PASS: gdb.base/printcmds.exp: p a2
+PASS: gdb.base/printcmds.exp: p a2[0]
+PASS: gdb.base/printcmds.exp: p a2[3]
+PASS: gdb.base/printcmds.exp: set print null-stop on
+PASS: gdb.base/printcmds.exp: print a2 with null-stop on
+PASS: gdb.base/printcmds.exp: set print null-stop off
+PASS: gdb.base/printcmds.exp: p int1dim[0]@2
+PASS: gdb.base/printcmds.exp: p int1dim[0]@2@3
+PASS: gdb.base/printcmds.exp: set print elements 24
+PASS: gdb.base/printcmds.exp: set print address on
+PASS: gdb.base/printcmds.exp: p arrays
+PASS: gdb.base/printcmds.exp: p parrays
+PASS: gdb.base/printcmds.exp: p parrays->array1
+PASS: gdb.base/printcmds.exp: p &parrays->array1
+PASS: gdb.base/printcmds.exp: p parrays->array2
+PASS: gdb.base/printcmds.exp: p &parrays->array2
+PASS: gdb.base/printcmds.exp: p parrays->array3
+PASS: gdb.base/printcmds.exp: p &parrays->array3
+PASS: gdb.base/printcmds.exp: p parrays->array4
+PASS: gdb.base/printcmds.exp: p &parrays->array4
+PASS: gdb.base/printcmds.exp: p parrays->array5
+PASS: gdb.base/printcmds.exp: p &parrays->array5
+PASS: gdb.base/printcmds.exp: set print address off
+PASS: gdb.base/printcmds.exp: set print elements 50
+PASS: gdb.base/printcmds.exp: p "a string"
+PASS: gdb.base/printcmds.exp: p "embedded \000 null"
+PASS: gdb.base/printcmds.exp: p "abcd"[2]
+PASS: gdb.base/printcmds.exp: p sizeof ("abcdef")
+PASS: gdb.base/printcmds.exp: ptype "foo"
+PASS: gdb.base/printcmds.exp: p *"foo"
+PASS: gdb.base/printcmds.exp: ptype *"foo"
+PASS: gdb.base/printcmds.exp: p &*"foo"
+PASS: gdb.base/printcmds.exp: ptype &*"foo"
+PASS: gdb.base/printcmds.exp: p (char *)"foo"
+PASS: gdb.base/printcmds.exp: print {'a','b','c'}
+PASS: gdb.base/printcmds.exp: print {4,5,6}[2]
+PASS: gdb.base/printcmds.exp: print *&{4,5,6}[1]
+PASS: gdb.base/printcmds.exp: print some_volatile_enum
+PASS: gdb.base/printcmds.exp: print three
+PASS: gdb.base/printcmds.exp: printf "x=%d,y=%d,z=%d\n", 5, 6, 7
+PASS: gdb.base/printcmds.exp: printf "string=%.4sxx\n", teststring
+PASS: gdb.base/printcmds.exp: printf "string=%sxx\n", teststring
+PASS: gdb.base/printcmds.exp: printf "%f is fun\n", 1.0
+PASS: gdb.base/printcmds.exp: printf "x=%d,y=%f,z=%d\n", 5, 6.0, 7
+PASS: gdb.base/printcmds.exp: printf "%x %f, %c %x, %x, %f\n", 0xbad, -99.541, 'z', 0xfeedface, 0xdeadbeef, 5.0
+PASS: gdb.base/printcmds.exp: printf "%c\n", "x"[1,0]
+PASS: gdb.base/printcmds.exp: printf "%%%d%%\n", 5
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",-1.2df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.234567df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",-1.234567df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1234567.df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",-1234567.df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E1df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E10df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E-10df
+PASS: gdb.base/printcmds.exp: printf "%Hf\n",1.2E96df
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",-1.2dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.234567890123456dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",-1.234567890123456dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1234567890123456.dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",-1234567890123456.dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E1dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E10dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E-10dd
+PASS: gdb.base/printcmds.exp: printf "%Df\n",1.2E384dd
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",-1.2dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.234567890123456789012345678901234dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",-1.234567890123456789012345678901234dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1234567890123456789012345678901234.dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",-1234567890123456789012345678901234.dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E1dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E10dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E-10dl
+PASS: gdb.base/printcmds.exp: printf "%DDf\n",1.2E6144dl
+PASS: gdb.base/printcmds.exp: printf "%Hf %Hf\n",1.2df,1.3df
+PASS: gdb.base/printcmds.exp: set print symbol on
+PASS: gdb.base/printcmds.exp: print &three
+PASS: gdb.base/printcmds.exp: print parrays
+PASS: gdb.base/printcmds.exp: set print symbol off
+PASS: gdb.base/printcmds.exp: print invalid_LLL
+PASS: gdb.base/printcmds.exp: print invalid_LLE
+PASS: gdb.base/printcmds.exp: print invalid_LLR
+PASS: gdb.base/printcmds.exp: print invalid_LLS
+PASS: gdb.base/printcmds.exp: print invalid_ELL
+PASS: gdb.base/printcmds.exp: print invalid_ELR
+PASS: gdb.base/printcmds.exp: print invalid_ELS
+PASS: gdb.base/printcmds.exp: print invalid_RLL
+PASS: gdb.base/printcmds.exp: print invalid_RLE
+PASS: gdb.base/printcmds.exp: print invalid_RLR
+PASS: gdb.base/printcmds.exp: print invalid_RLS
+PASS: gdb.base/printcmds.exp: print invalid_SLL
+PASS: gdb.base/printcmds.exp: print invalid_SLE
+PASS: gdb.base/printcmds.exp: print invalid_SLR
+PASS: gdb.base/printcmds.exp: print invalid_SLS
+PASS: gdb.base/printcmds.exp: print invalid_LRL
+PASS: gdb.base/printcmds.exp: print invalid_LRE
+PASS: gdb.base/printcmds.exp: print invalid_LRR
+PASS: gdb.base/printcmds.exp: print invalid_LRS
+PASS: gdb.base/printcmds.exp: print invalid_ERL
+PASS: gdb.base/printcmds.exp: print invalid_ERR
+PASS: gdb.base/printcmds.exp: print invalid_ERS
+PASS: gdb.base/printcmds.exp: print invalid_RRL
+PASS: gdb.base/printcmds.exp: print invalid_RRE
+PASS: gdb.base/printcmds.exp: print invalid_RRR
+PASS: gdb.base/printcmds.exp: print invalid_RRS
+PASS: gdb.base/printcmds.exp: print invalid_SRL
+PASS: gdb.base/printcmds.exp: print invalid_SRE
+PASS: gdb.base/printcmds.exp: print invalid_SRR
+PASS: gdb.base/printcmds.exp: print invalid_SRS
+PASS: gdb.base/printcmds.exp: print invalid_LSL
+PASS: gdb.base/printcmds.exp: print invalid_LSE
+PASS: gdb.base/printcmds.exp: print invalid_LSR
+PASS: gdb.base/printcmds.exp: print invalid_LSS
+PASS: gdb.base/printcmds.exp: print invalid_ESL
+PASS: gdb.base/printcmds.exp: print invalid_ESR
+PASS: gdb.base/printcmds.exp: print invalid_ESS
+PASS: gdb.base/printcmds.exp: print invalid_RSL
+PASS: gdb.base/printcmds.exp: print invalid_RSE
+PASS: gdb.base/printcmds.exp: print invalid_RSR
+PASS: gdb.base/printcmds.exp: print invalid_RSS
+PASS: gdb.base/printcmds.exp: print invalid_SSL
+PASS: gdb.base/printcmds.exp: print invalid_SSE
+PASS: gdb.base/printcmds.exp: print invalid_SSR
+PASS: gdb.base/printcmds.exp: print invalid_SSS
+Running ./gdb.base/print-file-var.exp ...
+PASS: gdb.base/print-file-var.exp: breapoint past v1 & v2 initialization
+PASS: gdb.base/print-file-var.exp: continue to STOP marker
+PASS: gdb.base/print-file-var.exp: print 'print-file-var-lib1.c'::this_version_id == v1
+PASS: gdb.base/print-file-var.exp: print 'print-file-var-lib2.c'::this_version_id == v2
+Running ./gdb.base/prologue.exp ...
+PASS: gdb.base/prologue.exp: setting breakpoint at marker
+PASS: gdb.base/prologue.exp: continue to marker
+PASS: gdb.base/prologue.exp: reading $pc: marker
+PASS: gdb.base/prologue.exp: setting breakpoint at other
+PASS: gdb.base/prologue.exp: continue to other
+PASS: gdb.base/prologue.exp: reading $pc: other
+PASS: gdb.base/prologue.exp: same pc from minimal symbol
+Running ./gdb.base/prologue-include.exp ...
+PASS: gdb.base/prologue-include.exp: breakpoint main
+Running ./gdb.base/psymtab.exp ...
+PASS: gdb.base/psymtab.exp: psymtab pending setup
+PASS: gdb.base/psymtab.exp: Don't search past end of psymtab.
+Running ./gdb.base/ptr-typedef.exp ...
+PASS: gdb.base/ptr-typedef.exp: print foo_ptr
+PASS: gdb.base/ptr-typedef.exp: print foz_ptr
+Running ./gdb.base/ptype.exp ...
+PASS: gdb.base/ptype.exp: ptype unnamed enumeration member
+PASS: gdb.base/ptype.exp: ptype structure
+PASS: gdb.base/ptype.exp: ptype v_struct1.v_float_member
+PASS: gdb.base/ptype.exp: ptype v_struct1->v_float_member
+PASS: gdb.base/ptype.exp: ptype v_t_struct_p.v_float_member
+PASS: gdb.base/ptype.exp: ptype v_t_struct_p->v_float_member
+PASS: gdb.base/ptype.exp: ptype linked list structure
+PASS: gdb.base/ptype.exp: ptype union
+PASS: gdb.base/ptype.exp: ptype linked list union
+PASS: gdb.base/ptype.exp: ptype unnamed enumeration
+PASS: gdb.base/ptype.exp: ptype named enumeration
+PASS: gdb.base/ptype.exp: ptype unnamed typedef'd enumeration
+PASS: gdb.base/ptype.exp: list main
+PASS: gdb.base/ptype.exp: whatis unnamed typedef'd enum (compiler bug in IBM's xlc)
+PASS: gdb.base/ptype.exp: printing typedef'd struct
+PASS: gdb.base/ptype.exp: printing typedef'd union
+PASS: gdb.base/ptype.exp: ptype named typedef'd enumf'd enum
+PASS: gdb.base/ptype.exp: ptype misordered enumeration
+PASS: gdb.base/ptype.exp: ptype named enumeration member
+PASS: gdb.base/ptype.exp: ptype unnamed enumeration member #2
+PASS: gdb.base/ptype.exp: ptype short
+PASS: gdb.base/ptype.exp: ptype int
+PASS: gdb.base/ptype.exp: ptype t_char_array
+PASS: gdb.base/ptype.exp: ptype pv_char_array
+PASS: gdb.base/ptype.exp: ptype outer structure
+PASS: gdb.base/ptype.exp: ptype inner structure
+PASS: gdb.base/ptype.exp: ptype inner union
+PASS: gdb.base/ptype.exp: ptype nested structure
+PASS: gdb.base/ptype.exp: ptype outer int
+PASS: gdb.base/ptype.exp: ptype nested structure #2
+PASS: gdb.base/ptype.exp: ptype inner int
+PASS: gdb.base/ptype.exp: ptype nested union
+PASS: gdb.base/ptype.exp: ptype the_highest
+PASS: gdb.base/ptype.exp: ptype the_highest
+PASS: gdb.base/ptype.exp: ptype func_type
+PASS: gdb.base/ptype.exp: ptype old_fptr
+PASS: gdb.base/ptype.exp: ptype new_fptr
+PASS: gdb.base/ptype.exp: ptype fptr
+PASS: gdb.base/ptype.exp: ptype fptr2
+PASS: gdb.base/ptype.exp: ptype xptr
+PASS: gdb.base/ptype.exp: ptype ffptr
+PASS: gdb.base/ptype.exp: ptype fffptr
+PASS: gdb.base/ptype.exp: list intfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after first list of intfoo
+PASS: gdb.base/ptype.exp: list charfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after first list of charfoo
+PASS: gdb.base/ptype.exp: list intfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after second list of intfoo
+PASS: gdb.base/ptype.exp: list charfoo
+PASS: gdb.base/ptype.exp: ptype foo typedef after second list of charfoo
+PASS: gdb.base/ptype.exp: ptype "abc"
+PASS: gdb.base/ptype.exp: ptype {'a','b','c'}
+PASS: gdb.base/ptype.exp: ptype {0,1,2}
+PASS: gdb.base/ptype.exp: ptype {(long)0,(long)1,(long)2}
+PASS: gdb.base/ptype.exp: ptype {(float)0,(float)1,(float)2}
+PASS: gdb.base/ptype.exp: ptype {{0,1,2},{3,4,5}}
+PASS: gdb.base/ptype.exp: ptype {4,5,6}[2]
+PASS: gdb.base/ptype.exp: ptype *&{4,5,6}[1]
+PASS: gdb.base/ptype.exp: ptype $pc
+Running ./gdb.base/radix.exp ...
+PASS: gdb.base/radix.exp: initialize radix, input radix 2
+PASS: gdb.base/radix.exp: set input-radix 2
+PASS: gdb.base/radix.exp: show radix, input radix 2
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 2
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 2
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 2
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 2
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 2
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 2
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 2
+PASS: gdb.base/radix.exp: print 10; expect 2; input radix 2
+PASS: gdb.base/radix.exp: print 11; expect 3; input radix 2
+PASS: gdb.base/radix.exp: print -10; expect -2; input radix 2
+PASS: gdb.base/radix.exp: print -11; expect -3; input radix 2
+PASS: gdb.base/radix.exp: print 100; expect 4; input radix 2
+PASS: gdb.base/radix.exp: print 101; expect 5; input radix 2
+PASS: gdb.base/radix.exp: print -100; expect -4; input radix 2
+PASS: gdb.base/radix.exp: print -101; expect -5; input radix 2
+PASS: gdb.base/radix.exp: print 10101; expect 21; input radix 2
+PASS: gdb.base/radix.exp: print 4; expect Invalid number "4"\.; input radix 2
+PASS: gdb.base/radix.exp: print -2; expect Invalid number "2"\.; input radix 2
+PASS: gdb.base/radix.exp: initialize radix, input radix 3
+PASS: gdb.base/radix.exp: set input-radix 3
+PASS: gdb.base/radix.exp: show radix, input radix 3
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 3
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 3
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 3
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 3
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 3
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 3
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 3
+PASS: gdb.base/radix.exp: print 10; expect 3; input radix 3
+PASS: gdb.base/radix.exp: print 11; expect 4; input radix 3
+PASS: gdb.base/radix.exp: print -10; expect -3; input radix 3
+PASS: gdb.base/radix.exp: print -11; expect -4; input radix 3
+PASS: gdb.base/radix.exp: print 100; expect 9; input radix 3
+PASS: gdb.base/radix.exp: print 101; expect 10; input radix 3
+PASS: gdb.base/radix.exp: print -100; expect -9; input radix 3
+PASS: gdb.base/radix.exp: print -101; expect -10; input radix 3
+PASS: gdb.base/radix.exp: print 10101; expect 91; input radix 3
+PASS: gdb.base/radix.exp: print 2; expect 2; input radix 3
+PASS: gdb.base/radix.exp: print 20; expect 6; input radix 3
+PASS: gdb.base/radix.exp: print 3; expect Invalid number "3"\.; input radix 3
+PASS: gdb.base/radix.exp: print 30; expect Invalid number "30"\.; input radix 2
+PASS: gdb.base/radix.exp: initialize radix, input radix 8
+PASS: gdb.base/radix.exp: set input-radix 8
+PASS: gdb.base/radix.exp: show radix, input radix 8
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 8
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 8
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 8
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 8
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 8
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 8
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 8
+PASS: gdb.base/radix.exp: print 10; expect 8; input radix 8
+PASS: gdb.base/radix.exp: print 11; expect 9; input radix 8
+PASS: gdb.base/radix.exp: print -10; expect -8; input radix 8
+PASS: gdb.base/radix.exp: print -11; expect -9; input radix 8
+PASS: gdb.base/radix.exp: print 100; expect 64; input radix 8
+PASS: gdb.base/radix.exp: print 101; expect 65; input radix 8
+PASS: gdb.base/radix.exp: print -100; expect -64; input radix 8
+PASS: gdb.base/radix.exp: print -101; expect -65; input radix 8
+PASS: gdb.base/radix.exp: print 10101; expect 4161; input radix 8
+PASS: gdb.base/radix.exp: print 20; expect 16; input radix 8
+PASS: gdb.base/radix.exp: print -20; expect -16; input radix 8
+PASS: gdb.base/radix.exp: print 8; expect Invalid number "8".; input radix 8
+PASS: gdb.base/radix.exp: print -9; expect Invalid number "9".; input radix 8
+PASS: gdb.base/radix.exp: initialize radix, input radix 10
+PASS: gdb.base/radix.exp: set input-radix 10
+PASS: gdb.base/radix.exp: show radix, input radix 10
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 10
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 10
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 10
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 10
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 10
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 10
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 10
+PASS: gdb.base/radix.exp: print 10; expect 10; input radix 10
+PASS: gdb.base/radix.exp: print 11; expect 11; input radix 10
+PASS: gdb.base/radix.exp: print -10; expect -10; input radix 10
+PASS: gdb.base/radix.exp: print -11; expect -11; input radix 10
+PASS: gdb.base/radix.exp: print 100; expect 100; input radix 10
+PASS: gdb.base/radix.exp: print 101; expect 101; input radix 10
+PASS: gdb.base/radix.exp: print -100; expect -100; input radix 10
+PASS: gdb.base/radix.exp: print -101; expect -101; input radix 10
+PASS: gdb.base/radix.exp: print 10101; expect 10101; input radix 10
+PASS: gdb.base/radix.exp: print -12; expect -12; input radix 10
+PASS: gdb.base/radix.exp: initialize radix, input radix 16
+PASS: gdb.base/radix.exp: set input-radix 16
+PASS: gdb.base/radix.exp: show radix, input radix 16
+PASS: gdb.base/radix.exp: print 010; expect 8; input radix 16
+PASS: gdb.base/radix.exp: print 20.; expect 20; input radix 16
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; input radix 16
+PASS: gdb.base/radix.exp: print 0xf; expect 15; input radix 16
+PASS: gdb.base/radix.exp: print 0; expect 0; input radix 16
+PASS: gdb.base/radix.exp: print 1; expect 1; input radix 16
+PASS: gdb.base/radix.exp: print -1; expect -1; input radix 16
+PASS: gdb.base/radix.exp: print 10; expect 16; input radix 16
+PASS: gdb.base/radix.exp: print 11; expect 17; input radix 16
+PASS: gdb.base/radix.exp: print -10; expect -16; input radix 16
+PASS: gdb.base/radix.exp: print -11; expect -17; input radix 16
+PASS: gdb.base/radix.exp: print 100; expect 256; input radix 16
+PASS: gdb.base/radix.exp: print 101; expect 257; input radix 16
+PASS: gdb.base/radix.exp: print -100; expect -256; input radix 16
+PASS: gdb.base/radix.exp: print -101; expect -257; input radix 16
+PASS: gdb.base/radix.exp: print 10101; expect 65793; input radix 16
+PASS: gdb.base/radix.exp: initialize radix, output radix 8
+PASS: gdb.base/radix.exp: set output-radix 8
+PASS: gdb.base/radix.exp: show radix, output radix 8
+PASS: gdb.base/radix.exp: print 010; expect 010; output radix 8
+PASS: gdb.base/radix.exp: print 0xf; expect 17; output radix 8
+PASS: gdb.base/radix.exp: print 10; expect 12; output radix 8
+PASS: gdb.base/radix.exp: print 100; expect 144; output radix 8
+KFAIL: gdb.base/radix.exp: print 20.; expect 24; output radix 8 (PRMS: gdb/1715)
+PASS: gdb.base/radix.exp: print (int) 20.; expect 24; output radix 8
+PASS: gdb.base/radix.exp: initialize radix, output radix 10
+PASS: gdb.base/radix.exp: set output-radix 10
+PASS: gdb.base/radix.exp: show radix, output radix 10
+PASS: gdb.base/radix.exp: print 010; expect 8; output radix 10
+PASS: gdb.base/radix.exp: print 0xf; expect 15; output radix 10
+PASS: gdb.base/radix.exp: print 10; expect 10; output radix 10
+PASS: gdb.base/radix.exp: print 100; expect 100; output radix 10
+PASS: gdb.base/radix.exp: print 20.; expect 20; output radix 10
+PASS: gdb.base/radix.exp: print (int) 20.; expect 20; output radix 10
+PASS: gdb.base/radix.exp: initialize radix, output radix 16
+PASS: gdb.base/radix.exp: set output-radix 16
+PASS: gdb.base/radix.exp: show radix, output radix 16
+PASS: gdb.base/radix.exp: print 010; expect 8; output radix 16
+PASS: gdb.base/radix.exp: print 0xf; expect f; output radix 16
+PASS: gdb.base/radix.exp: print 10; expect a; output radix 16
+PASS: gdb.base/radix.exp: print 100; expect 64; output radix 16
+KFAIL: gdb.base/radix.exp: print 20.; expect 14; output radix 16 (PRMS: gdb/1715)
+PASS: gdb.base/radix.exp: print (int) 20.; expect 14; output radix 16
+PASS: gdb.base/radix.exp: Reset radices
+PASS: gdb.base/radix.exp: Reject input-radix 0
+PASS: gdb.base/radix.exp: Input radix unchanged after rejecting 0
+PASS: gdb.base/radix.exp: Reject input-radix 1
+PASS: gdb.base/radix.exp: Input radix unchanged after rejecting 1
+PASS: gdb.base/radix.exp: Reject output-radix 0
+PASS: gdb.base/radix.exp: Output radix unchanged after rejecting 0
+PASS: gdb.base/radix.exp: Reject output-radix 1
+PASS: gdb.base/radix.exp: Output radix unchanged after rejecting 1
+PASS: gdb.base/radix.exp: set radix 7 rejected
+PASS: gdb.base/radix.exp: Output radix unchanged after rejection through set radix command
+Running ./gdb.base/randomize.exp ...
+UNTESTED: gdb.base/randomize.exp: Disabling randomization is not supported on this Linux GDB
+Running ./gdb.base/random-signal.exp ...
+PASS: gdb.base/random-signal.exp: set can-use-hw-watchpoints 0
+PASS: gdb.base/random-signal.exp: watch v
+PASS: gdb.base/random-signal.exp: continue
+FAIL: gdb.base/random-signal.exp: stop with control-c
+Running ./gdb.base/readline-ask.exp ...
+PASS: gdb.base/readline-ask.exp: set width 50
+PASS: gdb.base/readline-ask.exp: set height 3
+PASS: gdb.base/readline-ask.exp: bell for more message
+FAIL: gdb.base/readline-ask.exp: more message for 01 and 02
+FAIL: gdb.base/readline-ask.exp: more message for 03
+FAIL: gdb.base/readline-ask.exp: more finish for 04
+ERROR: Undefined command "foo".
+UNRESOLVED: gdb.base/readline-ask.exp: abort more message
+PASS: gdb.base/readline-ask.exp: bell for ask message
+FAIL: gdb.base/readline-ask.exp: ask message
+Running ./gdb.base/readline.exp ...
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 1
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 2
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 3
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 3
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 2
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 1
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 1
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 2
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 3
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - final prompt
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send if 1 > 0
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send p 5
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send end
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-p to end
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-p to p 5
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-p to if 1 > 0
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-o for if 1 > 0
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-o for p 5
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - C-o for end
+PASS: gdb.base/readline.exp: operate-and-get-next with secondary prompt - final prompt
+PASS: gdb.base/readline.exp: print 42
+PASS: gdb.base/readline.exp: arrow keys with secondary prompt
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 7
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 8
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - send p 9
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 9
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 8
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-p to p 7
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 7
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 8
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 9
+PASS: gdb.base/readline.exp: Simple operate-and-get-next - final prompt
+Running ./gdb.base/realname-expand.exp ...
+PASS: gdb.base/realname-expand.exp: set basenames-may-differ on
+PASS: gdb.base/realname-expand.exp: rbreak realname-expand-real.c:func
+PASS: gdb.base/realname-expand.exp: set basenames-may-differ on
+PASS: gdb.base/realname-expand.exp: break realname-expand-real.c:func
+Running ./gdb.base/recpar.exp ...
+PASS: gdb.base/recpar.exp: break recpar.c:26 if n == 3
+PASS: gdb.base/recpar.exp: continue
+PASS: gdb.base/recpar.exp: backtrace
+PASS: gdb.base/recpar.exp: frame 2
+PASS: gdb.base/recpar.exp: print foo::val
+Running ./gdb.base/recurse.exp ...
+PASS: gdb.base/recurse.exp: next over b = 0 in first instance
+PASS: gdb.base/recurse.exp: set first instance watchpoint
+PASS: gdb.base/recurse.exp: continue to first instance watchpoint, first time
+PASS: gdb.base/recurse.exp: continue to recurse (a = 9)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 8)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 7)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 6)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 5)
+PASS: gdb.base/recurse.exp: next over b = 0 in second instance
+PASS: gdb.base/recurse.exp: set second instance watchpoint
+PASS: gdb.base/recurse.exp: continue to second instance watchpoint, first time
+PASS: gdb.base/recurse.exp: continue to recurse (a = 4)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 3)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 2)
+PASS: gdb.base/recurse.exp: continue to recurse (a = 1)
+PASS: gdb.base/recurse.exp: continue to second instance watchpoint, second time
+PASS: gdb.base/recurse.exp: second instance watchpoint deleted when leaving scope
+PASS: gdb.base/recurse.exp: continue to first instance watchpoint, second time
+PASS: gdb.base/recurse.exp: first instance watchpoint deleted when leaving scope
+Running ./gdb.base/relational.exp ...
+PASS: gdb.base/relational.exp: set variable x=14
+PASS: gdb.base/relational.exp: set variable y=2
+PASS: gdb.base/relational.exp: set variable z=2
+PASS: gdb.base/relational.exp: set variable w=3
+PASS: gdb.base/relational.exp: print value of x
+PASS: gdb.base/relational.exp: print value of y
+PASS: gdb.base/relational.exp: print value of z
+PASS: gdb.base/relational.exp: print value of w
+PASS: gdb.base/relational.exp: print value of x<y
+PASS: gdb.base/relational.exp: print value of x<=y
+PASS: gdb.base/relational.exp: print value of x>y
+PASS: gdb.base/relational.exp: print value of x>=y
+PASS: gdb.base/relational.exp: print value of x==y
+PASS: gdb.base/relational.exp: print value of x!=y
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y<z
+PASS: gdb.base/relational.exp: print value of x<=y<=z
+PASS: gdb.base/relational.exp: print value of x>y>z
+PASS: gdb.base/relational.exp: print value of x>=y>=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x==y==z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x!=y!=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y==z
+PASS: gdb.base/relational.exp: print value of x<y!=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable y
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y<=z
+PASS: gdb.base/relational.exp: print value of x<y>=z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x<y>z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: print value of x>y>=z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>y==z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>y!=z
+PASS: gdb.base/relational.exp: set x to 4
+PASS: gdb.base/relational.exp: print value of x>y<=z
+PASS: gdb.base/relational.exp: print value of x>=y==z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: print value of x>=y!=z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>=y<=z
+PASS: gdb.base/relational.exp: print value of x<=y==z
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: print value of x<=y!=z
+PASS: gdb.base/relational.exp: print value of x==y!=z
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of x>=(y<z)
+PASS: gdb.base/relational.exp: print value of x>=(y!=z)
+PASS: gdb.base/relational.exp: print value of x==(y==z)
+PASS: gdb.base/relational.exp: set variable x
+PASS: gdb.base/relational.exp: set variable z
+PASS: gdb.base/relational.exp: print value of (x==y)<z
+Running ./gdb.base/relativedebug.exp ...
+PASS: gdb.base/relativedebug.exp: continue
+PASS: gdb.base/relativedebug.exp: pause found in backtrace
+Running ./gdb.base/relocate.exp ...
+PASS: gdb.base/relocate.exp: add-symbol-file relocate.o 0
+PASS: gdb.base/relocate.exp: get address of static_foo
+PASS: gdb.base/relocate.exp: get address of static_bar
+PASS: gdb.base/relocate.exp: static variables have different addresses
+PASS: gdb.base/relocate.exp: get address of global_foo
+PASS: gdb.base/relocate.exp: get address of global_bar
+PASS: gdb.base/relocate.exp: global variables have different addresses
+PASS: gdb.base/relocate.exp: get address of function_foo
+PASS: gdb.base/relocate.exp: get address of function_bar
+PASS: gdb.base/relocate.exp: functions have different addresses
+PASS: gdb.base/relocate.exp: set $offset = 0x10000
+PASS: gdb.base/relocate.exp: add-symbol-file relocate.o $offset
+PASS: gdb.base/relocate.exp: get address of function_foo
+PASS: gdb.base/relocate.exp: function foo has a different address
+PASS: gdb.base/relocate.exp: print static_foo
+PASS: gdb.base/relocate.exp: print static_bar
+PASS: gdb.base/relocate.exp: print global_foo
+PASS: gdb.base/relocate.exp: print global_bar
+Running ./gdb.base/remote.exp ...
+PASS: gdb.base/remote.exp: write-packet default
+PASS: gdb.base/remote.exp: set write-packet - NULL
+PASS: gdb.base/remote.exp: set remote memory-write-packet-size 20
+PASS: gdb.base/remote.exp: set write-packet - small
+PASS: gdb.base/remote.exp: set remote memory-write-packet-size 1
+PASS: gdb.base/remote.exp: set write-packet - very-small
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 398 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 398
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 400 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 400
+PASS: gdb.base/remote.exp: timed download `remote' - fixed, 0 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - fixed, 0 - set write size class
+PASS: gdb.base/remote.exp: timed download `remote' - fixed, 16385 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 0 - set packet size
+PASS: gdb.base/remote.exp: timed download `remote' - limit, 0
+PASS: gdb.base/remote.exp: get integer valueof "sizeof (random_data)" (49152)
+PASS: gdb.base/remote.exp: x/8ub random_data
+PASS: gdb.base/remote.exp: x/8ub random_data + 400 - 4
+PASS: gdb.base/remote.exp: x/8ub random_data + 16384 - 4
+PASS: gdb.base/remote.exp: set remote memory-read-packet-size 16
+PASS: gdb.base/remote.exp: show remote memory-read-packet-size
+PASS: gdb.base/remote.exp: x/17ub random_data
+PASS: gdb.base/remote.exp: set remote hardware-watchpoint-limit -1
+PASS: gdb.base/remote.exp: set remote hardware-breakpoint-limit -1
+PASS: gdb.base/remote.exp: set remote hardware-watchpoint-limit 2147483647
+PASS: gdb.base/remote.exp: set remote hardware-breakpoint-limit 2147483647
+Running ./gdb.base/remotetimeout.exp ...
+Running ./gdb.base/reread.exp ...
+PASS: gdb.base/reread.exp: breakpoint foo in first file
+PASS: gdb.base/reread.exp: run to foo()
+UNSUPPORTED: gdb.base/reread.exp: run to foo() second time
+UNSUPPORTED: gdb.base/reread.exp: second pass: GDB should check for changes before running
+Running ./gdb.base/restore.exp ...
+PASS: gdb.base/restore.exp: tbreak caller1
+PASS: gdb.base/restore.exp: run to caller1
+PASS: gdb.base/restore.exp: caller1 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller1 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller1 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller1 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller1 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: tbreak caller2
+PASS: gdb.base/restore.exp: run to caller2
+PASS: gdb.base/restore.exp: caller2 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller2 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller2 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller2 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller2 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller2 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: tbreak caller3
+PASS: gdb.base/restore.exp: run to caller3
+PASS: gdb.base/restore.exp: caller3 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee1; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee2; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee3; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee4; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller3 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller3 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller3 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller3 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller3 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller3 calls callee5; return restored l3 to 32494
+PASS: gdb.base/restore.exp: tbreak caller4
+PASS: gdb.base/restore.exp: run to caller4
+PASS: gdb.base/restore.exp: caller4 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee1; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee1; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee1; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee2; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee2; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee2; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee3; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee3; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee3; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee4; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee4; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee4; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller4 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller4 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller4 calls callee5; return callee now
+PASS: gdb.base/restore.exp: caller4 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller4 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller4 calls callee5; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller4 calls callee5; return restored l4 to 32495
+PASS: gdb.base/restore.exp: tbreak caller5
+PASS: gdb.base/restore.exp: run to caller5
+PASS: gdb.base/restore.exp: caller5 calls callee1; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee1; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee1; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee1; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee2; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee2; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee2; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee2; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee2; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee3; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee3; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee3; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee3; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee3; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee4; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee4; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee4; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee4; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee4; return restored l5 to 32496
+PASS: gdb.base/restore.exp: caller5 calls callee5; tbreak callee
+PASS: gdb.base/restore.exp: caller5 calls callee5; continue to callee
+PASS: gdb.base/restore.exp: caller5 calls callee5; return callee now
+FAIL: gdb.base/restore.exp: caller5 calls callee5; return restored l1 to 32492
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l2 to 32493
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l3 to 32494
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l4 to 32495
+PASS: gdb.base/restore.exp: caller5 calls callee5; return restored l5 to 32496
+Running ./gdb.base/return2.exp ...
+PASS: gdb.base/return2.exp: set break on void_func
+PASS: gdb.base/return2.exp: continue to void_func
+PASS: gdb.base/return2.exp: return from void_func
+PASS: gdb.base/return2.exp: void function returned successfully
+PASS: gdb.base/return2.exp: set break on char_func
+PASS: gdb.base/return2.exp: continue to char_func
+PASS: gdb.base/return2.exp: return from char_func
+PASS: gdb.base/return2.exp: char value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on short_func
+PASS: gdb.base/return2.exp: continue to short_func
+PASS: gdb.base/return2.exp: return from short_func
+PASS: gdb.base/return2.exp: short value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on int_func
+PASS: gdb.base/return2.exp: continue to int_func
+PASS: gdb.base/return2.exp: return from int_func
+PASS: gdb.base/return2.exp: int value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on long_func
+PASS: gdb.base/return2.exp: continue to long_func
+PASS: gdb.base/return2.exp: return from long_func
+PASS: gdb.base/return2.exp: long value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on long_long_func
+PASS: gdb.base/return2.exp: continue to long_long_func
+PASS: gdb.base/return2.exp: return from long_long_func
+PASS: gdb.base/return2.exp: long_long value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on float_func
+PASS: gdb.base/return2.exp: continue to float_func
+PASS: gdb.base/return2.exp: return from float_func
+PASS: gdb.base/return2.exp: float value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+PASS: gdb.base/return2.exp: set break on double_func
+PASS: gdb.base/return2.exp: continue to double_func
+PASS: gdb.base/return2.exp: return from double_func
+PASS: gdb.base/return2.exp: double value returned successfully
+PASS: gdb.base/return2.exp: validate result value not equal to program return value
+Running ./gdb.base/return.exp ...
+PASS: gdb.base/return.exp: simple return
+PASS: gdb.base/return.exp: break func2
+PASS: gdb.base/return.exp: break func3
+PASS: gdb.base/return.exp: continue to return of -5
+PASS: gdb.base/return.exp: next over call to func2
+PASS: gdb.base/return.exp: correct value returned (integer test)
+PASS: gdb.base/return.exp: continue to return of -5.0
+PASS: gdb.base/return.exp: next over call to func3
+PASS: gdb.base/return.exp: correct value returned double test (known problem with sparc solaris)
+Running ./gdb.base/return-nodebug.exp ...
+PASS: gdb.base/return-nodebug.exp: signed-char: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: signed-char: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: signed-char: advance to marker
+PASS: gdb.base/return-nodebug.exp: signed-char: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: short: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: short: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: short: advance to marker
+PASS: gdb.base/return-nodebug.exp: short: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: int: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: int: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: int: advance to marker
+PASS: gdb.base/return-nodebug.exp: int: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: long: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: long: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: long: advance to marker
+PASS: gdb.base/return-nodebug.exp: long: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: long-long: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: long-long: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: long-long: advance to marker
+PASS: gdb.base/return-nodebug.exp: long-long: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: float: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: float: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: float: advance to marker
+PASS: gdb.base/return-nodebug.exp: float: full width of the returned result
+PASS: gdb.base/return-nodebug.exp: double: return from function with no debug info without a cast
+PASS: gdb.base/return-nodebug.exp: double: return from function with no debug info with a cast
+PASS: gdb.base/return-nodebug.exp: double: advance to marker
+PASS: gdb.base/return-nodebug.exp: double: full width of the returned result
+Running ./gdb.base/save-bp.exp ...
+PASS: gdb.base/save-bp.exp: add breakpoint commands
+PASS: gdb.base/save-bp.exp: dprintf save-bp.c:33,"At foo entry\n"
+PASS: gdb.base/save-bp.exp: save breakpoint bps
+PASS: gdb.base/save-bp.exp: source bps
+PASS: gdb.base/save-bp.exp: info break
+Running ./gdb.base/savedregs.exp ...
+PASS: gdb.base/savedregs.exp: advance thrower
+PASS: gdb.base/savedregs.exp: Get main info frame
+PASS: gdb.base/savedregs.exp: handle SIGSEGV pass print nostop
+PASS: gdb.base/savedregs.exp: handle SIGILL pass print nostop
+PASS: gdb.base/savedregs.exp: advance catcher
+PASS: gdb.base/savedregs.exp: Get sigtramp info frame
+PASS: gdb.base/savedregs.exp: Get thrower info frame
+PASS: gdb.base/savedregs.exp: Check main info frame; stack contains catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: break caller
+PASS: gdb.base/savedregs.exp: call caller (1,2,3,4,5,6,7,8)
+PASS: gdb.base/savedregs.exp: Get dummy info frame
+PASS: gdb.base/savedregs.exp: Get catcher info frame
+PASS: gdb.base/savedregs.exp: Check sigtramp info frame; stack contains caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check thrower info frame; stack contains caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check main info frame; stack contains caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: advance callee
+PASS: gdb.base/savedregs.exp: Get caller info frame
+PASS: gdb.base/savedregs.exp: Check dummy info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check catcher info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check sigtramp info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check thrower info frame; stack contains callee caller dummy catcher sigtramp thrower main
+PASS: gdb.base/savedregs.exp: Check main info frame; stack contains callee caller dummy catcher sigtramp thrower main
+Running ./gdb.base/scope.exp ...
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
+UNSUPPORTED: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss before run
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal before run
+PASS: gdb.base/scope.exp: next over init0() in main
+PASS: gdb.base/scope.exp: print filelocal
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at main
+PASS: gdb.base/scope.exp: print filelocal_bss
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_main
+PASS: gdb.base/scope.exp: print filelocal_ro in test_at_main
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro
+PASS: gdb.base/scope.exp: print foo::funclocal
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal
+PASS: gdb.base/scope.exp: print foo::funclocal_ro
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_ro
+PASS: gdb.base/scope.exp: print bar::funclocal
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at foo
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_foo
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
+PASS: gdb.base/scope.exp: print filelocal at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal at foo
+PASS: gdb.base/scope.exp: print filelocal_bss at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss at foo
+PASS: gdb.base/scope.exp: print filelocal_ro at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro at foo
+PASS: gdb.base/scope.exp: print funclocal at foo
+PASS: gdb.base/scope.exp: print foo::funclocal at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal at foo
+PASS: gdb.base/scope.exp: print funclocal_bss at foo
+PASS: gdb.base/scope.exp: print foo::funclocal_bss at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_bss at foo
+PASS: gdb.base/scope.exp: print funclocal_ro at foo
+PASS: gdb.base/scope.exp: print foo::funclocal_ro at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_ro at foo
+PASS: gdb.base/scope.exp: print bar::funclocal at foo
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal at foo
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at bar
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_bar
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro at bar
+PASS: gdb.base/scope.exp: print filelocal at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal at bar
+PASS: gdb.base/scope.exp: print filelocal_bss at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss at bar
+PASS: gdb.base/scope.exp: print filelocal_ro in test_at_bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro at bar
+PASS: gdb.base/scope.exp: print foo::funclocal at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal at bar
+PASS: gdb.base/scope.exp: print foo::funclocal_bss at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_bss at bar
+PASS: gdb.base/scope.exp: print foo::funclocal_ro at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal_ro at bar
+PASS: gdb.base/scope.exp: print funclocal at bar
+PASS: gdb.base/scope.exp: print bar::funclocal at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal at bar
+PASS: gdb.base/scope.exp: print funclocal_bss at bar
+PASS: gdb.base/scope.exp: print bar::funclocal_bss at bar
+PASS: gdb.base/scope.exp: print 'scope1.c'::bar::funclocal_bss at bar
+PASS: gdb.base/scope.exp: continue to marker2
+PASS: gdb.base/scope.exp: up from marker2 in scopes.exp
+PASS: gdb.base/scope.exp: print localval, outer scope
+PASS: gdb.base/scope.exp: print localval1, outer scope
+PASS: gdb.base/scope.exp: print localval2, outer scope
+PASS: gdb.base/scope.exp: print localval3, outer scope
+PASS: gdb.base/scope.exp: continue to marker3 in scope.exp
+PASS: gdb.base/scope.exp: up from marker3 in scope.exp
+PASS: gdb.base/scope.exp: print localval, first nested scope
+PASS: gdb.base/scope.exp: print localval1, first nested scope
+PASS: gdb.base/scope.exp: print localval2, first nested scope
+PASS: gdb.base/scope.exp: print localval3, first nested scope
+PASS: gdb.base/scope.exp: continue to marker4 in scope.exp
+PASS: gdb.base/scope.exp: up from marker4 in scope.exp
+PASS: gdb.base/scope.exp: print localval, innermost scope
+PASS: gdb.base/scope.exp: print localval1, innermost scope
+PASS: gdb.base/scope.exp: print localval2, innermost scope
+PASS: gdb.base/scope.exp: print localval3, innermost scope
+PASS: gdb.base/scope.exp: continue to marker1
+PASS: gdb.base/scope.exp: up from marker1 in scope.exp
+PASS: gdb.base/scope.exp: 100 auto variables correctly initialized
+PASS: gdb.base/scope.exp: args in correct order
+Running ./gdb.base/sect-cmd.exp ...
+Running ./gdb.base/sepdebug.exp ...
+PASS: gdb.base/sepdebug.exp: breakpoint function
+PASS: gdb.base/sepdebug.exp: breakpoint quoted function
+PASS: gdb.base/sepdebug.exp: breakpoint function in file
+PASS: gdb.base/sepdebug.exp: use `list' to establish default source file
+PASS: gdb.base/sepdebug.exp: breakpoint line number
+PASS: gdb.base/sepdebug.exp: breakpoint duplicate
+PASS: gdb.base/sepdebug.exp: breakpoint line number in file
+PASS: gdb.base/sepdebug.exp: breakpoint at start of multi line if conditional
+PASS: gdb.base/sepdebug.exp: breakpoint at start of multi line while conditional
+PASS: gdb.base/sepdebug.exp: breakpoint info
+PASS: gdb.base/sepdebug.exp: run until function breakpoint
+PASS: gdb.base/sepdebug.exp: run until breakpoint set at a line number
+PASS: gdb.base/sepdebug.exp: run until file:function(6) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(5) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(4) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(3) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(2) breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:function(1) breakpoint
+PASS: gdb.base/sepdebug.exp: run until quoted breakpoint
+PASS: gdb.base/sepdebug.exp: run until file:linenum breakpoint
+PASS: gdb.base/sepdebug.exp: breakpoint offset +1
+PASS: gdb.base/sepdebug.exp: step onto breakpoint
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint function
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint function in file
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number #1
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number #2
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number in file #1
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number in file #2
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint info
+PASS: gdb.base/sepdebug.exp: catch requires an event name
+PASS: gdb.base/sepdebug.exp: set catch fork, never expected to trigger
+PASS: gdb.base/sepdebug.exp: set catch vfork, never expected to trigger
+PASS: gdb.base/sepdebug.exp: set catch exec, never expected to trigger
+PASS: gdb.base/sepdebug.exp: set breakpoint pending off
+PASS: gdb.base/sepdebug.exp: break on non-existent source line
+PASS: gdb.base/sepdebug.exp: until bp_location1
+PASS: gdb.base/sepdebug.exp: break on default location, 1st time
+PASS: gdb.base/sepdebug.exp: break on default location, 2nd time
+PASS: gdb.base/sepdebug.exp: break on default location, 3rd time
+PASS: gdb.base/sepdebug.exp: break on default location, 4th time
+PASS: gdb.base/sepdebug.exp: set to-be-silent break bp_location1
+PASS: gdb.base/sepdebug.exp: set silent break bp_location1
+PASS: gdb.base/sepdebug.exp: info silent break bp_location1
+PASS: gdb.base/sepdebug.exp: hit silent break bp_location1
+PASS: gdb.base/sepdebug.exp: stopped for silent break bp_location1
+PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on non-existent thread disallowed
+PASS: gdb.base/sepdebug.exp: thread-specific breakpoint on bogus thread ID disallowed
+PASS: gdb.base/sepdebug.exp: breakpoint with trailing garbage disallowed
+PASS: gdb.base/sepdebug.exp: step over breakpoint
+PASS: gdb.base/sepdebug.exp: clear line has no breakpoint disallowed
+PASS: gdb.base/sepdebug.exp: clear current line has no breakpoint disallowed
+PASS: gdb.base/sepdebug.exp: break marker3 #1
+PASS: gdb.base/sepdebug.exp: break marker3 #2
+PASS: gdb.base/sepdebug.exp: clear marker3
+PASS: gdb.base/sepdebug.exp: set convenience variable $foo to bp_location11
+PASS: gdb.base/sepdebug.exp: set breakpoint via convenience variable
+PASS: gdb.base/sepdebug.exp: set convenience variable $foo to 81.5
+PASS: gdb.base/sepdebug.exp: set breakpoint via non-integer convenience variable disallowed
+PASS: gdb.base/sepdebug.exp: set breakpoint on to-be-called function
+PASS: gdb.base/sepdebug.exp: hit breakpoint on called function
+PASS: gdb.base/sepdebug.exp: backtrace while in called function
+PASS: gdb.base/sepdebug.exp: finish from called function
+PASS: gdb.base/sepdebug.exp: finish with arguments disallowed
+PASS: gdb.base/sepdebug.exp: finish from outermost frame disallowed
+PASS: gdb.base/sepdebug.exp: kill program
+PASS: gdb.base/sepdebug.exp: break at factorial
+PASS: gdb.base/sepdebug.exp: continue to factorial(5)
+PASS: gdb.base/sepdebug.exp: backtrace from factorial(5)
+PASS: gdb.base/sepdebug.exp: next to recursive call
+PASS: gdb.base/sepdebug.exp: next over recursive call
+PASS: gdb.base/sepdebug.exp: backtrace from factorial(5.1)
+PASS: gdb.base/sepdebug.exp: continue until exit at recursive next test
+PASS: gdb.base/sepdebug.exp: debuglink: set separate debug location
+PASS: gdb.base/sepdebug.exp: debuglink: breakpoint function, optimized file
+PASS: gdb.base/sepdebug.exp: debuglink: breakpoint small function, optimized file
+PASS: gdb.base/sepdebug.exp: debuglink: run until function breakpoint, optimized file
+PASS: gdb.base/sepdebug.exp: debuglink: run until breakpoint set at small function, optimized file
+PASS: gdb.base/sepdebug.exp: CRC mismatch is reported
+PASS: gdb.base/sepdebug.exp: build-id support by binutils
+PASS: gdb.base/sepdebug.exp: build-id: set separate debug location
+PASS: gdb.base/sepdebug.exp: build-id: breakpoint function, optimized file
+PASS: gdb.base/sepdebug.exp: build-id: breakpoint small function, optimized file
+PASS: gdb.base/sepdebug.exp: build-id: run until function breakpoint, optimized file
+PASS: gdb.base/sepdebug.exp: build-id: run until breakpoint set at small function, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: set separate debug location
+PASS: gdb.base/sepdebug.exp: multiple-dirs: breakpoint function, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: breakpoint small function, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: run until function breakpoint, optimized file
+PASS: gdb.base/sepdebug.exp: multiple-dirs: run until breakpoint set at small function, optimized file
+Running ./gdb.base/sep.exp ...
+PASS: gdb.base/sep.exp: list using location inside included file
+PASS: gdb.base/sep.exp: breakpoint inside included file
+Running ./gdb.base/sepsymtab.exp ...
+PASS: gdb.base/sepsymtab.exp: info sym main
+Running ./gdb.base/set-lang-auto.exp ...
+PASS: gdb.base/set-lang-auto.exp: show lang after loading binary
+PASS: gdb.base/set-lang-auto.exp: forcing the language to ada
+PASS: gdb.base/set-lang-auto.exp: show lang after switching language to ada
+PASS: gdb.base/set-lang-auto.exp: switching the language back to auto
+PASS: gdb.base/set-lang-auto.exp: show lang after having switched back to auto
+Running ./gdb.base/set-noassign.exp ...
+PASS: gdb.base/set-noassign.exp: set language ada
+PASS: gdb.base/set-noassign.exp: warning for set without assignment
+Running ./gdb.base/setshow.exp ...
+PASS: gdb.base/setshow.exp: default annotation_level is zero
+PASS: gdb.base/setshow.exp: set annotate 2
+PASS: gdb.base/setshow.exp: show annotate 2
+PASS: gdb.base/setshow.exp: annotation_level 2
+PASS: gdb.base/setshow.exp: set annotate 1
+PASS: gdb.base/setshow.exp: show annotate (1)
+PASS: gdb.base/setshow.exp: annotation_level 1
+PASS: gdb.base/setshow.exp: set annotate 0
+PASS: gdb.base/setshow.exp: show annotate (0)
+PASS: gdb.base/setshow.exp: annotation_level 0
+PASS: gdb.base/setshow.exp: set args ~
+PASS: gdb.base/setshow.exp: show args ~
+PASS: gdb.base/setshow.exp: set args
+PASS: gdb.base/setshow.exp: show args
+PASS: gdb.base/setshow.exp: set check range on
+PASS: gdb.base/setshow.exp: show check range (on)
+PASS: gdb.base/setshow.exp: set check range off
+PASS: gdb.base/setshow.exp: show check range (off)
+PASS: gdb.base/setshow.exp: set check range auto
+PASS: gdb.base/setshow.exp: show check range (auto)
+PASS: gdb.base/setshow.exp: set check type on
+PASS: gdb.base/setshow.exp: show check type (on)
+PASS: gdb.base/setshow.exp: set check type off
+PASS: gdb.base/setshow.exp: show check type (off)
+PASS: gdb.base/setshow.exp: set complaints 100
+PASS: gdb.base/setshow.exp: show complaints (100)
+PASS: gdb.base/setshow.exp: set complaints 0
+PASS: gdb.base/setshow.exp: show complaints (0)
+PASS: gdb.base/setshow.exp: set confirm off
+PASS: gdb.base/setshow.exp: show confirm (off)
+PASS: gdb.base/setshow.exp: set confirm on
+PASS: gdb.base/setshow.exp: show confirm (on)
+PASS: gdb.base/setshow.exp: set editing off
+PASS: gdb.base/setshow.exp: show editing (off)
+PASS: gdb.base/setshow.exp: set environment FOOBARBAZ
+PASS: gdb.base/setshow.exp: show environment FOOBARBAZ
+PASS: gdb.base/setshow.exp: set height 100
+PASS: gdb.base/setshow.exp: show height
+PASS: gdb.base/setshow.exp: set history expansion on
+PASS: gdb.base/setshow.exp: show history expansion
+PASS: gdb.base/setshow.exp: set history filename foobar.baz
+PASS: gdb.base/setshow.exp: show history filename (foobar.baz)
+PASS: gdb.base/setshow.exp: set history save on
+PASS: gdb.base/setshow.exp: show history save (on)
+PASS: gdb.base/setshow.exp: set history size 100
+PASS: gdb.base/setshow.exp: show history size (100)
+PASS: gdb.base/setshow.exp: set language asm
+PASS: gdb.base/setshow.exp: show language (asm)
+PASS: gdb.base/setshow.exp: set language java
+PASS: gdb.base/setshow.exp: show language (java)
+PASS: gdb.base/setshow.exp: complete set language minimal
+PASS: gdb.base/setshow.exp: set language auto
+PASS: gdb.base/setshow.exp: show language (auto)
+PASS: gdb.base/setshow.exp: set listsize 100
+PASS: gdb.base/setshow.exp: show listsize (100)
+PASS: gdb.base/setshow.exp: set prompt FooBarBaz
+PASS: gdb.base/setshow.exp: show prompt FooBarBaz
+PASS: gdb.base/setshow.exp: set prompt gdb
+PASS: gdb.base/setshow.exp: set radix 11
+PASS: gdb.base/setshow.exp: set radix 16
+PASS: gdb.base/setshow.exp: show radix (16)
+PASS: gdb.base/setshow.exp: set radix 10
+PASS: gdb.base/setshow.exp: show radix (10)
+PASS: gdb.base/setshow.exp: set width 90
+PASS: gdb.base/setshow.exp: show width (90)
+PASS: gdb.base/setshow.exp: set write on
+PASS: gdb.base/setshow.exp: show write (on)
+PASS: gdb.base/setshow.exp: show user
+PASS: gdb.base/setshow.exp: set verbose on
+PASS: gdb.base/setshow.exp: show verbose (on)
+PASS: gdb.base/setshow.exp: set verbose off
+PASS: gdb.base/setshow.exp: show verbose (off)
+Running ./gdb.base/setvar.exp ...
+PASS: gdb.base/setvar.exp: set print sevenbit-strings
+PASS: gdb.base/setvar.exp: set variable char=0
+PASS: gdb.base/setvar.exp: set variable char=1
+PASS: gdb.base/setvar.exp: set variable char=7 (Bel)
+PASS: gdb.base/setvar.exp: set variable char=32 (SPC)
+PASS: gdb.base/setvar.exp: set variable char=65 ('A')
+PASS: gdb.base/setvar.exp: set variable char=97 ('a')
+PASS: gdb.base/setvar.exp: set variable char=126 ('~')
+PASS: gdb.base/setvar.exp: set variable char=127 (8-bit)
+PASS: gdb.base/setvar.exp: set variable signed char=0
+PASS: gdb.base/setvar.exp: set variable signed char=1
+PASS: gdb.base/setvar.exp: set variable signed char=7 (Bel)
+PASS: gdb.base/setvar.exp: set variable signed char=32 (SPC)
+PASS: gdb.base/setvar.exp: set variable signed char=65 ('A')
+PASS: gdb.base/setvar.exp: set variable signed char=97 ('a')
+PASS: gdb.base/setvar.exp: set variable signed char=126 ('~')
+PASS: gdb.base/setvar.exp: set variable signed char=127 (8-bit)
+PASS: gdb.base/setvar.exp: set variable v_signed_char=-1
+PASS: gdb.base/setvar.exp: set variable signed char=-1 (-1)
+PASS: gdb.base/setvar.exp: set variable v_signed_char=0xFF
+PASS: gdb.base/setvar.exp: set variable signed char=0xFF (0xFF)
+PASS: gdb.base/setvar.exp: set variable unsigned char=0
+PASS: gdb.base/setvar.exp: set variable unsigned char=1
+PASS: gdb.base/setvar.exp: set variable unsigned char=7 (Bel)
+PASS: gdb.base/setvar.exp: set variable unsigned char=32 (SPC)
+PASS: gdb.base/setvar.exp: set variable unsigned char=65 ('A')
+PASS: gdb.base/setvar.exp: set variable unsigned char=97 ('a')
+PASS: gdb.base/setvar.exp: set variable unsigned char=126 ('~')
+PASS: gdb.base/setvar.exp: set variable unsigned char=255 (8-bit)
+PASS: gdb.base/setvar.exp: set variable short=0
+PASS: gdb.base/setvar.exp: set variable short=1
+PASS: gdb.base/setvar.exp: set variable short=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable signed short=0
+PASS: gdb.base/setvar.exp: set variable signed short=1
+PASS: gdb.base/setvar.exp: set variable signed short=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable unsigned short=0
+PASS: gdb.base/setvar.exp: set variable unsigned short=1
+PASS: gdb.base/setvar.exp: set variable unsigned short=~0 (minus)
+PASS: gdb.base/setvar.exp: set variable int=0
+PASS: gdb.base/setvar.exp: set variable int=1
+PASS: gdb.base/setvar.exp: set variable int=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable signed int=0
+PASS: gdb.base/setvar.exp: set variable signed int=1
+PASS: gdb.base/setvar.exp: set variable signed int=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable unsigned int=0
+PASS: gdb.base/setvar.exp: set variable unsigned int=1
+PASS: gdb.base/setvar.exp: set variable unsigned int=~0 (minus)
+PASS: gdb.base/setvar.exp: set variable long=0
+PASS: gdb.base/setvar.exp: set variable long=1
+PASS: gdb.base/setvar.exp: set variable long=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable signed long=0
+PASS: gdb.base/setvar.exp: set variable signed long=1
+PASS: gdb.base/setvar.exp: set variable signed long=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable unsigned long=0
+PASS: gdb.base/setvar.exp: set variable unsigned long=1
+PASS: gdb.base/setvar.exp: set variable unsigned long=~0 (minus)
+PASS: gdb.base/setvar.exp: set variable float=0
+PASS: gdb.base/setvar.exp: set variable float=1
+PASS: gdb.base/setvar.exp: set variable float=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable double=0
+PASS: gdb.base/setvar.exp: set variable double=1
+PASS: gdb.base/setvar.exp: set variable double=-1 (minus)
+PASS: gdb.base/setvar.exp: set variable char array="hi" (string)
+PASS: gdb.base/setvar.exp: set variable signed char array="hi" (string)
+PASS: gdb.base/setvar.exp: set variable unsigned char array="hi" (string)
+PASS: gdb.base/setvar.exp: set variable short array
+PASS: gdb.base/setvar.exp: set variable signed short array
+PASS: gdb.base/setvar.exp: set variable unsigned short array
+PASS: gdb.base/setvar.exp: set variable int array
+PASS: gdb.base/setvar.exp: set variable signed int array
+PASS: gdb.base/setvar.exp: set variable unsigned int array
+PASS: gdb.base/setvar.exp: set variable long array
+PASS: gdb.base/setvar.exp: set variable signed long array
+PASS: gdb.base/setvar.exp: set variable unsigned long array
+PASS: gdb.base/setvar.exp: set variable float array
+PASS: gdb.base/setvar.exp: set variable double array
+PASS: gdb.base/setvar.exp: set variable char pointer="hi" (string)
+PASS: gdb.base/setvar.exp: set variable char pointer="hi" (string) (#2)
+PASS: gdb.base/setvar.exp: set variable signed char pointer="hi" (string)
+PASS: gdb.base/setvar.exp: set variable signed char pointer="hi" (string) (#2)
+PASS: gdb.base/setvar.exp: set variable unsigned char pointer="hi" (string)
+PASS: gdb.base/setvar.exp: set variable unsigned char pointer="hi" (string) (#2)
+PASS: gdb.base/setvar.exp: set variable short pointer
+PASS: gdb.base/setvar.exp: set variable short pointer (#2)
+PASS: gdb.base/setvar.exp: set v_signed_short_pointer=v_signed_short_array
+PASS: gdb.base/setvar.exp: set variable *(v_signed_short_pointer)=123
+PASS: gdb.base/setvar.exp: set variable *(v_signed_short_pointer+1)=-456
+PASS: gdb.base/setvar.exp: set variable signed short pointer
+PASS: gdb.base/setvar.exp: print *(v_signed_short_pointer+1)
+PASS: gdb.base/setvar.exp: set v_unsigned_short_pointer=v_unsigned_short_array
+PASS: gdb.base/setvar.exp: set variable *(v_unsigned_short_pointer)=123
+PASS: gdb.base/setvar.exp: set variable *(v_unsigned_short_pointer+1)=-456
+PASS: gdb.base/setvar.exp: set variable unsigned short pointer
+PASS: gdb.base/setvar.exp: print *(v_unsigned_short_pointer+1)
+PASS: gdb.base/setvar.exp: set variable int pointer
+PASS: gdb.base/setvar.exp: set variable int pointer (#2)
+PASS: gdb.base/setvar.exp: set variable signed int pointer
+PASS: gdb.base/setvar.exp: set variable signed int pointer (#2)
+PASS: gdb.base/setvar.exp: set variable unsigned int pointer
+PASS: gdb.base/setvar.exp: print variable unsigned int pointer+1
+PASS: gdb.base/setvar.exp: set variable long pointer
+PASS: gdb.base/setvar.exp: set variable long pointer (#2)
+PASS: gdb.base/setvar.exp: set variable signed long pointer
+PASS: gdb.base/setvar.exp: set variable signed long pointer (#2)
+PASS: gdb.base/setvar.exp: set variable unsigned long pointer
+PASS: gdb.base/setvar.exp: set variable unsigned long pointer (#2)
+PASS: gdb.base/setvar.exp: set variable float pointer
+PASS: gdb.base/setvar.exp: set variable float pointer (#2)
+PASS: gdb.base/setvar.exp: set variable double pointer
+PASS: gdb.base/setvar.exp: set variable double pointer (#2)
+PASS: gdb.base/setvar.exp: set variable structure char member
+PASS: gdb.base/setvar.exp: set variable structure short member
+PASS: gdb.base/setvar.exp: set variable structure int member
+PASS: gdb.base/setvar.exp: set variable structure long member
+PASS: gdb.base/setvar.exp: set variable structure float member
+PASS: gdb.base/setvar.exp: set variable structure double member
+PASS: gdb.base/setvar.exp: set print structure #1
+PASS: gdb.base/setvar.exp: set print structure #2
+PASS: gdb.base/setvar.exp: set print structure #3
+PASS: gdb.base/setvar.exp: set print structure #4
+PASS: gdb.base/setvar.exp: print sef.field=sm1
+PASS: gdb.base/setvar.exp: print sef.field (sm1)
+PASS: gdb.base/setvar.exp: print sef.field=s1
+PASS: gdb.base/setvar.exp: print sef.field (s1)
+PASS: gdb.base/setvar.exp: print uef.field=u2
+PASS: gdb.base/setvar.exp: print uef.field (u2)
+PASS: gdb.base/setvar.exp: print uef.field=u1
+PASS: gdb.base/setvar.exp: print uef.field (u1)
+PASS: gdb.base/setvar.exp: print sef.field=7
+PASS: gdb.base/setvar.exp: print uef.field=6
+Running ./gdb.base/shell.exp ...
+PASS: gdb.base/shell.exp: shell echo foo
+PASS: gdb.base/shell.exp: ! echo foo
+PASS: gdb.base/shell.exp: !echo foo
+Running ./gdb.base/shlib-call.exp ...
+PASS: gdb.base/shlib-call.exp: set print sevenbit-strings
+PASS: gdb.base/shlib-call.exp: set print address off
+PASS: gdb.base/shlib-call.exp: set width 0
+PASS: gdb.base/shlib-call.exp: next to shr1
+PASS: gdb.base/shlib-call.exp: print g
+PASS: gdb.base/shlib-call.exp: print g
+PASS: gdb.base/shlib-call.exp: breakpoint function shr2
+PASS: gdb.base/shlib-call.exp: run until breakpoint set at a function
+PASS: gdb.base/shlib-call.exp: print mainshr1(1) from shlib func
+PASS: gdb.base/shlib-call.exp: step out of shr2 to main (stopped in shr2 epilogue)
+PASS: gdb.base/shlib-call.exp: step out of shr2 epilogue to main
+PASS: gdb.base/shlib-call.exp: print mainshr1(1)
+PASS: gdb.base/shlib-call.exp: step into mainshr1
+PASS: gdb.base/shlib-call.exp: set print sevenbit-strings
+PASS: gdb.base/shlib-call.exp: set print address off
+PASS: gdb.base/shlib-call.exp: set width 0
+Running ./gdb.base/shreloc.exp ...
+PASS: gdb.base/shreloc.exp: get address of fn_1
+PASS: gdb.base/shreloc.exp: get address of fn_2
+PASS: gdb.base/shreloc.exp: relocated extern functions have different addresses
+PASS: gdb.base/shreloc.exp: get address of extern_var_1
+PASS: gdb.base/shreloc.exp: get address of extern_var_2
+PASS: gdb.base/shreloc.exp: relocated extern variables have different addresses
+PASS: gdb.base/shreloc.exp: get address of static_var_1
+PASS: gdb.base/shreloc.exp: get address of static_var_2
+PASS: gdb.base/shreloc.exp: relocated static variables have different addresses
+PASS: gdb.base/shreloc.exp: get_msym_addrs static_var_[12]
+PASS: gdb.base/shreloc.exp: (msymbol) relocated static vars have different addresses
+PASS: gdb.base/shreloc.exp: get_msym_addrs extern_var_[12]
+PASS: gdb.base/shreloc.exp: (msymbol) relocated extern vars have different addresses
+PASS: gdb.base/shreloc.exp: get_msym_addrs fn_[12]
+PASS: gdb.base/shreloc.exp: (msymbol) relocated functions have different addresses
+Running ./gdb.base/sigall.exp ...
+PASS: gdb.base/sigall.exp: handle SIGABRT stop print
+PASS: gdb.base/sigall.exp: b handle_ABRT
+PASS: gdb.base/sigall.exp: b gen_HUP
+PASS: gdb.base/sigall.exp: get signal ABRT
+PASS: gdb.base/sigall.exp: send signal ABRT
+PASS: gdb.base/sigall.exp: advance to HUP
+PASS: gdb.base/sigall.exp: handle SIGHUP stop print
+PASS: gdb.base/sigall.exp: b handle_HUP
+PASS: gdb.base/sigall.exp: b gen_QUIT
+PASS: gdb.base/sigall.exp: get signal HUP
+PASS: gdb.base/sigall.exp: send signal HUP
+PASS: gdb.base/sigall.exp: advance to QUIT
+PASS: gdb.base/sigall.exp: handle SIGQUIT stop print
+PASS: gdb.base/sigall.exp: b handle_QUIT
+PASS: gdb.base/sigall.exp: b gen_ILL
+PASS: gdb.base/sigall.exp: get signal QUIT
+PASS: gdb.base/sigall.exp: send signal QUIT
+PASS: gdb.base/sigall.exp: advance to ILL
+PASS: gdb.base/sigall.exp: handle SIGILL stop print
+PASS: gdb.base/sigall.exp: b handle_ILL
+PASS: gdb.base/sigall.exp: b gen_EMT
+PASS: gdb.base/sigall.exp: get signal ILL
+PASS: gdb.base/sigall.exp: send signal ILL
+PASS: gdb.base/sigall.exp: advance to EMT
+PASS: gdb.base/sigall.exp: handle SIGEMT stop print
+PASS: gdb.base/sigall.exp: b handle_EMT
+PASS: gdb.base/sigall.exp: b gen_FPE
+PASS: gdb.base/sigall.exp: send signal EMT
+PASS: gdb.base/sigall.exp: advance to FPE
+PASS: gdb.base/sigall.exp: handle SIGFPE stop print
+PASS: gdb.base/sigall.exp: b handle_FPE
+PASS: gdb.base/sigall.exp: b gen_BUS
+PASS: gdb.base/sigall.exp: get signal FPE
+PASS: gdb.base/sigall.exp: send signal FPE
+PASS: gdb.base/sigall.exp: advance to BUS
+PASS: gdb.base/sigall.exp: handle SIGBUS stop print
+PASS: gdb.base/sigall.exp: b handle_BUS
+PASS: gdb.base/sigall.exp: b gen_SEGV
+PASS: gdb.base/sigall.exp: get signal BUS
+PASS: gdb.base/sigall.exp: send signal BUS
+PASS: gdb.base/sigall.exp: advance to SEGV
+PASS: gdb.base/sigall.exp: handle SIGSEGV stop print
+PASS: gdb.base/sigall.exp: b handle_SEGV
+PASS: gdb.base/sigall.exp: b gen_SYS
+PASS: gdb.base/sigall.exp: get signal SEGV
+PASS: gdb.base/sigall.exp: send signal SEGV
+PASS: gdb.base/sigall.exp: advance to SYS
+PASS: gdb.base/sigall.exp: handle SIGSYS stop print
+PASS: gdb.base/sigall.exp: b handle_SYS
+PASS: gdb.base/sigall.exp: b gen_PIPE
+PASS: gdb.base/sigall.exp: get signal SYS
+PASS: gdb.base/sigall.exp: send signal SYS
+PASS: gdb.base/sigall.exp: advance to PIPE
+PASS: gdb.base/sigall.exp: handle SIGPIPE stop print
+PASS: gdb.base/sigall.exp: b handle_PIPE
+PASS: gdb.base/sigall.exp: b gen_ALRM
+PASS: gdb.base/sigall.exp: get signal PIPE
+PASS: gdb.base/sigall.exp: send signal PIPE
+PASS: gdb.base/sigall.exp: advance to ALRM
+PASS: gdb.base/sigall.exp: handle SIGALRM stop print
+PASS: gdb.base/sigall.exp: b handle_ALRM
+PASS: gdb.base/sigall.exp: b gen_URG
+PASS: gdb.base/sigall.exp: get signal ALRM
+PASS: gdb.base/sigall.exp: send signal ALRM
+PASS: gdb.base/sigall.exp: advance to URG
+PASS: gdb.base/sigall.exp: handle SIGURG stop print
+PASS: gdb.base/sigall.exp: b handle_URG
+PASS: gdb.base/sigall.exp: b gen_TSTP
+PASS: gdb.base/sigall.exp: get signal URG
+PASS: gdb.base/sigall.exp: send signal URG
+PASS: gdb.base/sigall.exp: advance to TSTP
+PASS: gdb.base/sigall.exp: handle SIGTSTP stop print
+PASS: gdb.base/sigall.exp: b handle_TSTP
+PASS: gdb.base/sigall.exp: b gen_CONT
+PASS: gdb.base/sigall.exp: get signal TSTP
+PASS: gdb.base/sigall.exp: send signal TSTP
+PASS: gdb.base/sigall.exp: advance to CONT
+PASS: gdb.base/sigall.exp: handle SIGCONT stop print
+PASS: gdb.base/sigall.exp: b handle_CONT
+PASS: gdb.base/sigall.exp: b gen_CHLD
+PASS: gdb.base/sigall.exp: get signal CONT
+PASS: gdb.base/sigall.exp: send signal CONT
+PASS: gdb.base/sigall.exp: advance to CHLD
+PASS: gdb.base/sigall.exp: handle SIGCHLD stop print
+PASS: gdb.base/sigall.exp: b handle_CHLD
+PASS: gdb.base/sigall.exp: b gen_TTIN
+PASS: gdb.base/sigall.exp: get signal CHLD
+PASS: gdb.base/sigall.exp: send signal CHLD
+PASS: gdb.base/sigall.exp: advance to TTIN
+PASS: gdb.base/sigall.exp: handle SIGTTIN stop print
+PASS: gdb.base/sigall.exp: b handle_TTIN
+PASS: gdb.base/sigall.exp: b gen_TTOU
+PASS: gdb.base/sigall.exp: get signal TTIN
+PASS: gdb.base/sigall.exp: send signal TTIN
+PASS: gdb.base/sigall.exp: advance to TTOU
+PASS: gdb.base/sigall.exp: handle SIGTTOU stop print
+PASS: gdb.base/sigall.exp: b handle_TTOU
+PASS: gdb.base/sigall.exp: b gen_IO
+PASS: gdb.base/sigall.exp: get signal TTOU
+PASS: gdb.base/sigall.exp: send signal TTOU
+PASS: gdb.base/sigall.exp: advance to IO
+PASS: gdb.base/sigall.exp: handle SIGIO stop print
+PASS: gdb.base/sigall.exp: b handle_IO
+PASS: gdb.base/sigall.exp: b gen_XCPU
+PASS: gdb.base/sigall.exp: get signal IO
+PASS: gdb.base/sigall.exp: send signal IO
+PASS: gdb.base/sigall.exp: advance to XCPU
+PASS: gdb.base/sigall.exp: handle SIGXCPU stop print
+PASS: gdb.base/sigall.exp: b handle_XCPU
+PASS: gdb.base/sigall.exp: b gen_XFSZ
+PASS: gdb.base/sigall.exp: get signal XCPU
+PASS: gdb.base/sigall.exp: send signal XCPU
+PASS: gdb.base/sigall.exp: advance to XFSZ
+PASS: gdb.base/sigall.exp: handle SIGXFSZ stop print
+PASS: gdb.base/sigall.exp: b handle_XFSZ
+PASS: gdb.base/sigall.exp: b gen_VTALRM
+PASS: gdb.base/sigall.exp: get signal XFSZ
+PASS: gdb.base/sigall.exp: send signal XFSZ
+PASS: gdb.base/sigall.exp: advance to VTALRM
+PASS: gdb.base/sigall.exp: handle SIGVTALRM stop print
+PASS: gdb.base/sigall.exp: b handle_VTALRM
+PASS: gdb.base/sigall.exp: b gen_PROF
+PASS: gdb.base/sigall.exp: get signal VTALRM
+PASS: gdb.base/sigall.exp: send signal VTALRM
+PASS: gdb.base/sigall.exp: advance to PROF
+PASS: gdb.base/sigall.exp: handle SIGPROF stop print
+PASS: gdb.base/sigall.exp: b handle_PROF
+PASS: gdb.base/sigall.exp: b gen_WINCH
+PASS: gdb.base/sigall.exp: get signal PROF
+PASS: gdb.base/sigall.exp: send signal PROF
+PASS: gdb.base/sigall.exp: advance to WINCH
+PASS: gdb.base/sigall.exp: handle SIGWINCH stop print
+PASS: gdb.base/sigall.exp: b handle_WINCH
+PASS: gdb.base/sigall.exp: b gen_LOST
+PASS: gdb.base/sigall.exp: get signal WINCH
+PASS: gdb.base/sigall.exp: send signal WINCH
+PASS: gdb.base/sigall.exp: advance to LOST
+PASS: gdb.base/sigall.exp: handle SIGLOST stop print
+PASS: gdb.base/sigall.exp: b handle_LOST
+PASS: gdb.base/sigall.exp: b gen_USR1
+PASS: gdb.base/sigall.exp: send signal LOST
+PASS: gdb.base/sigall.exp: advance to USR1
+PASS: gdb.base/sigall.exp: handle SIGUSR1 stop print
+PASS: gdb.base/sigall.exp: b handle_USR1
+PASS: gdb.base/sigall.exp: b gen_USR2
+PASS: gdb.base/sigall.exp: get signal USR1
+PASS: gdb.base/sigall.exp: send signal USR1
+PASS: gdb.base/sigall.exp: advance to USR2
+PASS: gdb.base/sigall.exp: handle SIGUSR2 stop print
+PASS: gdb.base/sigall.exp: b handle_USR2
+PASS: gdb.base/sigall.exp: b gen_PWR
+PASS: gdb.base/sigall.exp: get signal USR2
+PASS: gdb.base/sigall.exp: send signal USR2
+PASS: gdb.base/sigall.exp: advance to PWR
+PASS: gdb.base/sigall.exp: handle SIGPWR stop print
+PASS: gdb.base/sigall.exp: b handle_PWR
+PASS: gdb.base/sigall.exp: b gen_POLL
+PASS: gdb.base/sigall.exp: get signal PWR
+PASS: gdb.base/sigall.exp: send signal PWR
+PASS: gdb.base/sigall.exp: advance to POLL
+PASS: gdb.base/sigall.exp: handle SIGPOLL stop print
+PASS: gdb.base/sigall.exp: b handle_POLL
+PASS: gdb.base/sigall.exp: b gen_WIND
+PASS: gdb.base/sigall.exp: send signal POLL
+PASS: gdb.base/sigall.exp: advance to WIND
+PASS: gdb.base/sigall.exp: handle SIGWIND stop print
+PASS: gdb.base/sigall.exp: b handle_WIND
+PASS: gdb.base/sigall.exp: b gen_PHONE
+PASS: gdb.base/sigall.exp: send signal WIND
+PASS: gdb.base/sigall.exp: advance to PHONE
+PASS: gdb.base/sigall.exp: handle SIGPHONE stop print
+PASS: gdb.base/sigall.exp: b handle_PHONE
+PASS: gdb.base/sigall.exp: b gen_WAITING
+PASS: gdb.base/sigall.exp: send signal PHONE
+PASS: gdb.base/sigall.exp: advance to WAITING
+PASS: gdb.base/sigall.exp: handle SIGWAITING stop print
+PASS: gdb.base/sigall.exp: b handle_WAITING
+PASS: gdb.base/sigall.exp: b gen_LWP
+PASS: gdb.base/sigall.exp: send signal WAITING
+PASS: gdb.base/sigall.exp: advance to LWP
+PASS: gdb.base/sigall.exp: handle SIGLWP stop print
+PASS: gdb.base/sigall.exp: b handle_LWP
+PASS: gdb.base/sigall.exp: b gen_DANGER
+PASS: gdb.base/sigall.exp: send signal LWP
+PASS: gdb.base/sigall.exp: advance to DANGER
+PASS: gdb.base/sigall.exp: handle SIGDANGER stop print
+PASS: gdb.base/sigall.exp: b handle_DANGER
+PASS: gdb.base/sigall.exp: b gen_GRANT
+PASS: gdb.base/sigall.exp: send signal DANGER
+PASS: gdb.base/sigall.exp: advance to GRANT
+PASS: gdb.base/sigall.exp: handle SIGGRANT stop print
+PASS: gdb.base/sigall.exp: b handle_GRANT
+PASS: gdb.base/sigall.exp: b gen_RETRACT
+PASS: gdb.base/sigall.exp: send signal GRANT
+PASS: gdb.base/sigall.exp: advance to RETRACT
+PASS: gdb.base/sigall.exp: handle SIGRETRACT stop print
+PASS: gdb.base/sigall.exp: b handle_RETRACT
+PASS: gdb.base/sigall.exp: b gen_MSG
+PASS: gdb.base/sigall.exp: send signal RETRACT
+PASS: gdb.base/sigall.exp: advance to MSG
+PASS: gdb.base/sigall.exp: handle SIGMSG stop print
+PASS: gdb.base/sigall.exp: b handle_MSG
+PASS: gdb.base/sigall.exp: b gen_SOUND
+PASS: gdb.base/sigall.exp: send signal MSG
+PASS: gdb.base/sigall.exp: advance to SOUND
+PASS: gdb.base/sigall.exp: handle SIGSOUND stop print
+PASS: gdb.base/sigall.exp: b handle_SOUND
+PASS: gdb.base/sigall.exp: b gen_SAK
+PASS: gdb.base/sigall.exp: send signal SOUND
+PASS: gdb.base/sigall.exp: advance to SAK
+PASS: gdb.base/sigall.exp: handle SIGSAK stop print
+PASS: gdb.base/sigall.exp: b handle_SAK
+PASS: gdb.base/sigall.exp: b gen_PRIO
+PASS: gdb.base/sigall.exp: send signal SAK
+PASS: gdb.base/sigall.exp: advance to PRIO
+PASS: gdb.base/sigall.exp: handle SIGPRIO stop print
+PASS: gdb.base/sigall.exp: b handle_PRIO
+PASS: gdb.base/sigall.exp: b gen_33
+PASS: gdb.base/sigall.exp: send signal PRIO
+PASS: gdb.base/sigall.exp: advance to 33
+PASS: gdb.base/sigall.exp: handle SIG33 stop print
+PASS: gdb.base/sigall.exp: b handle_33
+PASS: gdb.base/sigall.exp: b gen_34
+PASS: gdb.base/sigall.exp: send signal 33
+PASS: gdb.base/sigall.exp: advance to 34
+PASS: gdb.base/sigall.exp: handle SIG34 stop print
+PASS: gdb.base/sigall.exp: b handle_34
+PASS: gdb.base/sigall.exp: b gen_35
+PASS: gdb.base/sigall.exp: send signal 34
+PASS: gdb.base/sigall.exp: advance to 35
+PASS: gdb.base/sigall.exp: handle SIG35 stop print
+PASS: gdb.base/sigall.exp: b handle_35
+PASS: gdb.base/sigall.exp: b gen_36
+PASS: gdb.base/sigall.exp: send signal 35
+PASS: gdb.base/sigall.exp: advance to 36
+PASS: gdb.base/sigall.exp: handle SIG36 stop print
+PASS: gdb.base/sigall.exp: b handle_36
+PASS: gdb.base/sigall.exp: b gen_37
+PASS: gdb.base/sigall.exp: send signal 36
+PASS: gdb.base/sigall.exp: advance to 37
+PASS: gdb.base/sigall.exp: handle SIG37 stop print
+PASS: gdb.base/sigall.exp: b handle_37
+PASS: gdb.base/sigall.exp: b gen_38
+PASS: gdb.base/sigall.exp: send signal 37
+PASS: gdb.base/sigall.exp: advance to 38
+PASS: gdb.base/sigall.exp: handle SIG38 stop print
+PASS: gdb.base/sigall.exp: b handle_38
+PASS: gdb.base/sigall.exp: b gen_39
+PASS: gdb.base/sigall.exp: send signal 38
+PASS: gdb.base/sigall.exp: advance to 39
+PASS: gdb.base/sigall.exp: handle SIG39 stop print
+PASS: gdb.base/sigall.exp: b handle_39
+PASS: gdb.base/sigall.exp: b gen_40
+PASS: gdb.base/sigall.exp: send signal 39
+PASS: gdb.base/sigall.exp: advance to 40
+PASS: gdb.base/sigall.exp: handle SIG40 stop print
+PASS: gdb.base/sigall.exp: b handle_40
+PASS: gdb.base/sigall.exp: b gen_41
+PASS: gdb.base/sigall.exp: send signal 40
+PASS: gdb.base/sigall.exp: advance to 41
+PASS: gdb.base/sigall.exp: handle SIG41 stop print
+PASS: gdb.base/sigall.exp: b handle_41
+PASS: gdb.base/sigall.exp: b gen_42
+PASS: gdb.base/sigall.exp: send signal 41
+PASS: gdb.base/sigall.exp: advance to 42
+PASS: gdb.base/sigall.exp: handle SIG42 stop print
+PASS: gdb.base/sigall.exp: b handle_42
+PASS: gdb.base/sigall.exp: b gen_43
+PASS: gdb.base/sigall.exp: send signal 42
+PASS: gdb.base/sigall.exp: advance to 43
+PASS: gdb.base/sigall.exp: handle SIG43 stop print
+PASS: gdb.base/sigall.exp: b handle_43
+PASS: gdb.base/sigall.exp: b gen_44
+PASS: gdb.base/sigall.exp: send signal 43
+PASS: gdb.base/sigall.exp: advance to 44
+PASS: gdb.base/sigall.exp: handle SIG44 stop print
+PASS: gdb.base/sigall.exp: b handle_44
+PASS: gdb.base/sigall.exp: b gen_45
+PASS: gdb.base/sigall.exp: send signal 44
+PASS: gdb.base/sigall.exp: advance to 45
+PASS: gdb.base/sigall.exp: handle SIG45 stop print
+PASS: gdb.base/sigall.exp: b handle_45
+PASS: gdb.base/sigall.exp: b gen_46
+PASS: gdb.base/sigall.exp: send signal 45
+PASS: gdb.base/sigall.exp: advance to 46
+PASS: gdb.base/sigall.exp: handle SIG46 stop print
+PASS: gdb.base/sigall.exp: b handle_46
+PASS: gdb.base/sigall.exp: b gen_47
+PASS: gdb.base/sigall.exp: send signal 46
+PASS: gdb.base/sigall.exp: advance to 47
+PASS: gdb.base/sigall.exp: handle SIG47 stop print
+PASS: gdb.base/sigall.exp: b handle_47
+PASS: gdb.base/sigall.exp: b gen_48
+PASS: gdb.base/sigall.exp: send signal 47
+PASS: gdb.base/sigall.exp: advance to 48
+PASS: gdb.base/sigall.exp: handle SIG48 stop print
+PASS: gdb.base/sigall.exp: b handle_48
+PASS: gdb.base/sigall.exp: b gen_49
+PASS: gdb.base/sigall.exp: send signal 48
+PASS: gdb.base/sigall.exp: advance to 49
+PASS: gdb.base/sigall.exp: handle SIG49 stop print
+PASS: gdb.base/sigall.exp: b handle_49
+PASS: gdb.base/sigall.exp: b gen_50
+PASS: gdb.base/sigall.exp: send signal 49
+PASS: gdb.base/sigall.exp: advance to 50
+PASS: gdb.base/sigall.exp: handle SIG50 stop print
+PASS: gdb.base/sigall.exp: b handle_50
+PASS: gdb.base/sigall.exp: b gen_51
+PASS: gdb.base/sigall.exp: send signal 50
+PASS: gdb.base/sigall.exp: advance to 51
+PASS: gdb.base/sigall.exp: handle SIG51 stop print
+PASS: gdb.base/sigall.exp: b handle_51
+PASS: gdb.base/sigall.exp: b gen_52
+PASS: gdb.base/sigall.exp: send signal 51
+PASS: gdb.base/sigall.exp: advance to 52
+PASS: gdb.base/sigall.exp: handle SIG52 stop print
+PASS: gdb.base/sigall.exp: b handle_52
+PASS: gdb.base/sigall.exp: b gen_53
+PASS: gdb.base/sigall.exp: send signal 52
+PASS: gdb.base/sigall.exp: advance to 53
+PASS: gdb.base/sigall.exp: handle SIG53 stop print
+PASS: gdb.base/sigall.exp: b handle_53
+PASS: gdb.base/sigall.exp: b gen_54
+PASS: gdb.base/sigall.exp: send signal 53
+PASS: gdb.base/sigall.exp: advance to 54
+PASS: gdb.base/sigall.exp: handle SIG54 stop print
+PASS: gdb.base/sigall.exp: b handle_54
+PASS: gdb.base/sigall.exp: b gen_55
+PASS: gdb.base/sigall.exp: send signal 54
+PASS: gdb.base/sigall.exp: advance to 55
+PASS: gdb.base/sigall.exp: handle SIG55 stop print
+PASS: gdb.base/sigall.exp: b handle_55
+PASS: gdb.base/sigall.exp: b gen_56
+PASS: gdb.base/sigall.exp: send signal 55
+PASS: gdb.base/sigall.exp: advance to 56
+PASS: gdb.base/sigall.exp: handle SIG56 stop print
+PASS: gdb.base/sigall.exp: b handle_56
+PASS: gdb.base/sigall.exp: b gen_57
+PASS: gdb.base/sigall.exp: send signal 56
+PASS: gdb.base/sigall.exp: advance to 57
+PASS: gdb.base/sigall.exp: handle SIG57 stop print
+PASS: gdb.base/sigall.exp: b handle_57
+PASS: gdb.base/sigall.exp: b gen_58
+PASS: gdb.base/sigall.exp: send signal 57
+PASS: gdb.base/sigall.exp: advance to 58
+PASS: gdb.base/sigall.exp: handle SIG58 stop print
+PASS: gdb.base/sigall.exp: b handle_58
+PASS: gdb.base/sigall.exp: b gen_59
+PASS: gdb.base/sigall.exp: send signal 58
+PASS: gdb.base/sigall.exp: advance to 59
+PASS: gdb.base/sigall.exp: handle SIG59 stop print
+PASS: gdb.base/sigall.exp: b handle_59
+PASS: gdb.base/sigall.exp: b gen_60
+PASS: gdb.base/sigall.exp: send signal 59
+PASS: gdb.base/sigall.exp: advance to 60
+PASS: gdb.base/sigall.exp: handle SIG60 stop print
+PASS: gdb.base/sigall.exp: b handle_60
+PASS: gdb.base/sigall.exp: b gen_61
+PASS: gdb.base/sigall.exp: send signal 60
+PASS: gdb.base/sigall.exp: advance to 61
+PASS: gdb.base/sigall.exp: handle SIG61 stop print
+PASS: gdb.base/sigall.exp: b handle_61
+PASS: gdb.base/sigall.exp: b gen_62
+PASS: gdb.base/sigall.exp: send signal 61
+PASS: gdb.base/sigall.exp: advance to 62
+PASS: gdb.base/sigall.exp: handle SIG62 stop print
+PASS: gdb.base/sigall.exp: b handle_62
+PASS: gdb.base/sigall.exp: b gen_63
+PASS: gdb.base/sigall.exp: send signal 62
+PASS: gdb.base/sigall.exp: advance to 63
+PASS: gdb.base/sigall.exp: handle SIG63 stop print
+PASS: gdb.base/sigall.exp: b handle_63
+PASS: gdb.base/sigall.exp: b gen_TERM
+PASS: gdb.base/sigall.exp: send signal 63
+PASS: gdb.base/sigall.exp: advance to TERM
+PASS: gdb.base/sigall.exp: handle SIGTERM stop print
+PASS: gdb.base/sigall.exp: b handle_TERM
+PASS: gdb.base/sigall.exp: get signal TERM
+PASS: gdb.base/sigall.exp: send signal TERM
+PASS: gdb.base/sigall.exp: continue until exit at continue to sigall exit
+Running ./gdb.base/sigaltstack.exp ...
+PASS: gdb.base/sigaltstack.exp: handle SIGALRM print pass nostop
+PASS: gdb.base/sigaltstack.exp: handle SIGVTALRM print pass nostop
+PASS: gdb.base/sigaltstack.exp: handle SIGPROF print pass nostop
+PASS: gdb.base/sigaltstack.exp: break catcher if level == INNER
+PASS: gdb.base/sigaltstack.exp: continue to catch
+PASS: gdb.base/sigaltstack.exp: next
+PASS: gdb.base/sigaltstack.exp: backtrace
+PASS: gdb.base/sigaltstack.exp: finish from catch LEAF
+PASS: gdb.base/sigaltstack.exp: finish to throw INNER
+PASS: gdb.base/sigaltstack.exp: finish to catch INNER
+PASS: gdb.base/sigaltstack.exp: finish from catch INNER
+PASS: gdb.base/sigaltstack.exp: finish to OUTER
+PASS: gdb.base/sigaltstack.exp: finish to catch MAIN
+PASS: gdb.base/sigaltstack.exp: finish to MAIN
+Running ./gdb.base/sigbpt.exp ...
+PASS: gdb.base/sigbpt.exp: break keeper
+PASS: gdb.base/sigbpt.exp: display/i $pc
+PASS: gdb.base/sigbpt.exp: advance to the bowler
+PASS: gdb.base/sigbpt.exp: stepping to fault
+PASS: gdb.base/sigbpt.exp: get insn after fault
+PASS: gdb.base/sigbpt.exp: Verify that SIGSEGV occurs at the last STEPI insn
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi; nopass SIGSEGV
+KFAIL: gdb.base/sigbpt.exp: stepi; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; set breakpoint 0 of 1
+KFAIL: gdb.base/sigbpt.exp: stepi bp before segv; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: stepi bp before segv; clear breakpoint 0 of 1
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; set breakpoint 0 of 1
+KFAIL: gdb.base/sigbpt.exp: stepi bp at segv; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: stepi bp at segv; clear breakpoint 0 of 1
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; set breakpoint 0 of 2
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; set breakpoint 1 of 2
+KFAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; stepi out of handler (corrupt pc) (PRMS: gdb/1702)
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; clear breakpoint 0 of 2
+PASS: gdb.base/sigbpt.exp: stepi bp before and at segv; clear breakpoint 1 of 2
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: cont; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont; continue to keeper
+PASS: gdb.base/sigbpt.exp: cont; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont; set breakpoint 0  of 1
+PASS: gdb.base/sigbpt.exp: cont; continue to breakpoint at fault
+PASS: gdb.base/sigbpt.exp: cont; stepi fault
+PASS: gdb.base/sigbpt.exp: cont; clear breakpoint 0 of 1
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: cont bp after segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp after segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: cont bp after segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp after segv; set breakpoint 0  of 2
+PASS: gdb.base/sigbpt.exp: cont bp after segv; set breakpoint 1  of 2
+PASS: gdb.base/sigbpt.exp: cont bp after segv; continue to breakpoint at fault
+PASS: gdb.base/sigbpt.exp: cont bp after segv; stepi fault
+PASS: gdb.base/sigbpt.exp: cont bp after segv; clear breakpoint 0 of 2
+PASS: gdb.base/sigbpt.exp: cont bp after segv; clear breakpoint 1 of 2
+PASS: gdb.base/sigbpt.exp: rerun to main
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; pass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; continue to keeper
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; nopass SIGSEGV
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 0  of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 1  of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 2  of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; continue to breakpoint at fault
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; stepi fault
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 0 of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 1 of 3
+PASS: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 2 of 3
+Running ./gdb.base/sigchld.exp ...
+PASS: gdb.base/sigchld.exp: set breakpoint at success exit
+PASS: gdb.base/sigchld.exp: set breakpoint at failure exit
+PASS: gdb.base/sigchld.exp: SIGCHLD blocked in inferior
+Running ./gdb.base/siginfo-addr.exp ...
+Running ./gdb.base/siginfo.exp ...
+PASS: gdb.base/siginfo.exp: display/i $pc
+PASS: gdb.base/siginfo.exp: break handler
+PASS: gdb.base/siginfo.exp: continue to stepi handler
+PASS: gdb.base/siginfo.exp: backtrace for nexti
+PASS: gdb.base/siginfo.exp: step out of handler
+Running ./gdb.base/siginfo-infcall.exp ...
+PASS: gdb.base/siginfo-infcall.exp: continue to SIGUSR1
+PASS: gdb.base/siginfo-infcall.exp: p callme ()
+PASS: gdb.base/siginfo-infcall.exp: continue to the handler
+Running ./gdb.base/siginfo-obj.exp ...
+PASS: gdb.base/siginfo-obj.exp: continue to signal
+PASS: gdb.base/siginfo-obj.exp: save a core file
+PASS: gdb.base/siginfo-obj.exp: Extract si_addr
+PASS: gdb.base/siginfo-obj.exp: Extract si_errno
+PASS: gdb.base/siginfo-obj.exp: Extract si_code
+PASS: gdb.base/siginfo-obj.exp: Extract si_signo
+PASS: gdb.base/siginfo-obj.exp: break 38
+PASS: gdb.base/siginfo-obj.exp: continue to handler
+PASS: gdb.base/siginfo-obj.exp: p ssi_addr
+PASS: gdb.base/siginfo-obj.exp: p ssi_errno
+PASS: gdb.base/siginfo-obj.exp: p ssi_code
+PASS: gdb.base/siginfo-obj.exp: p ssi_signo
+PASS: gdb.base/siginfo-obj.exp: continue to signal
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo._sifields._sigfault.si_addr = 0x666
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_errno = 666
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_code = 999
+PASS: gdb.base/siginfo-obj.exp: p $_siginfo.si_signo = 11
+PASS: gdb.base/siginfo-obj.exp: break 38
+PASS: gdb.base/siginfo-obj.exp: continue to handler
+PASS: gdb.base/siginfo-obj.exp: p ssi_addr
+PASS: gdb.base/siginfo-obj.exp: p ssi_errno
+PASS: gdb.base/siginfo-obj.exp: p ssi_code
+PASS: gdb.base/siginfo-obj.exp: p ssi_signo
+FAIL: gdb.base/siginfo-obj.exp: core siginfo-obj.gcore
+FAIL: gdb.base/siginfo-obj.exp: p $_siginfo.si_signo from core file
+FAIL: gdb.base/siginfo-obj.exp: p $_siginfo.si_errno from core file
+FAIL: gdb.base/siginfo-obj.exp: p $_siginfo.si_code from core file
+FAIL: gdb.base/siginfo-obj.exp: p $_siginfo._sifields._sigfault.si_addr from core file
+Running ./gdb.base/siginfo-thread.exp ...
+PASS: gdb.base/siginfo-thread.exp: successfully compiled posix threads test case
+PASS: gdb.base/siginfo-thread.exp: continue to signal
+PASS: gdb.base/siginfo-thread.exp: save a core file
+PASS: gdb.base/siginfo-thread.exp: Extract si_addr
+PASS: gdb.base/siginfo-thread.exp: Extract si_errno
+PASS: gdb.base/siginfo-thread.exp: Extract si_code
+PASS: gdb.base/siginfo-thread.exp: Extract si_signo
+PASS: gdb.base/siginfo-thread.exp: break 39
+PASS: gdb.base/siginfo-thread.exp: continue to handler
+PASS: gdb.base/siginfo-thread.exp: p ssi_addr
+PASS: gdb.base/siginfo-thread.exp: p ssi_errno
+PASS: gdb.base/siginfo-thread.exp: p ssi_code
+PASS: gdb.base/siginfo-thread.exp: p ssi_signo
+PASS: gdb.base/siginfo-thread.exp: thread 1
+PASS: gdb.base/siginfo-thread.exp: test signal in main thread
+FAIL: gdb.base/siginfo-thread.exp: core siginfo-thread.gcore
+FAIL: gdb.base/siginfo-thread.exp: p $_siginfo.si_signo from core file
+FAIL: gdb.base/siginfo-thread.exp: p $_siginfo.si_errno from core file
+FAIL: gdb.base/siginfo-thread.exp: p $_siginfo.si_code from core file
+FAIL: gdb.base/siginfo-thread.exp: p $_siginfo._sifields._sigfault.si_addr from core file
+PASS: gdb.base/siginfo-thread.exp: set variable $count = 0
+PASS: gdb.base/siginfo-thread.exp: select thread 1 with core file
+FAIL: gdb.base/siginfo-thread.exp: update counter in thread 1
+PASS: gdb.base/siginfo-thread.exp: select thread 2 with core file
+FAIL: gdb.base/siginfo-thread.exp: update counter in thread 2
+FAIL: gdb.base/siginfo-thread.exp: print $count
+Running ./gdb.base/signals.exp ...
+PASS: gdb.base/signals.exp: handle all print
+PASS: gdb.base/signals.exp: set variable count = 0
+PASS: gdb.base/signals.exp: break handler if 0
+PASS: gdb.base/signals.exp: set $handler_breakpoint_number = $bpnum
+PASS: gdb.base/signals.exp: next to signal
+PASS: gdb.base/signals.exp: next to alarm #1
+PASS: gdb.base/signals.exp: next to ++count #1
+PASS: gdb.base/signals.exp: p func1 () #1
+PASS: gdb.base/signals.exp: p count #1
+PASS: gdb.base/signals.exp: condition $handler_breakpoint_number
+PASS: gdb.base/signals.exp: next to alarm #2
+PASS: gdb.base/signals.exp: next to ++count #2
+PASS: gdb.base/signals.exp: p func1 () #2
+PASS: gdb.base/signals.exp: backtrace from handler when calling func1
+PASS: gdb.base/signals.exp: continue
+PASS: gdb.base/signals.exp: p count #2
+PASS: gdb.base/signals.exp: info signals
+PASS: gdb.base/signals.exp: info signal SIGTRAP
+PASS: gdb.base/signals.exp: info signal 5
+PASS: gdb.base/signals.exp: handle without arguments
+PASS: gdb.base/signals.exp: handle with bogus SIG
+PASS: gdb.base/signals.exp: handle SIG with bogus action
+PASS: gdb.base/signals.exp: handle SIG with multiple conflicting actions
+PASS: gdb.base/signals.exp: handle SIG parses all legal actions
+PASS: gdb.base/signals.exp: handle multiple SIGs
+PASS: gdb.base/signals.exp: override SIGTRAP
+PASS: gdb.base/signals.exp: invalid signal number rejected
+PASS: gdb.base/signals.exp: handle multiple SIGs via integer range
+PASS: gdb.base/signals.exp: handle multiple SIGs via reverse integer range
+PASS: gdb.base/signals.exp: override SIGINT
+PASS: gdb.base/signals.exp: signal without arguments disallowed
+PASS: gdb.base/signals.exp: signal SIGUSR1
+PASS: gdb.base/signals.exp: backtrace for SIGUSR1
+Running ./gdb.base/signest.exp ...
+PASS: gdb.base/signest.exp: continue to fault
+PASS: gdb.base/signest.exp: set conditional breakpoint
+PASS: gdb.base/signest.exp: pass SIGSEGV
+PASS: gdb.base/signest.exp: pass SIGBUS
+PASS: gdb.base/signest.exp: run through nested faults
+Running ./gdb.base/signull.exp ...
+PASS: gdb.base/signull.exp: set for function pointer probe
+PASS: gdb.base/signull.exp: probe function pointer (function entry-point)
+PASS: gdb.base/signull.exp: rerun to main
+PASS: gdb.base/signull.exp: break bowler
+PASS: gdb.base/signull.exp: break keeper
+PASS: gdb.base/signull.exp: handle SIGSEGV
+PASS: gdb.base/signull.exp: handle SIGBUS
+PASS: gdb.base/signull.exp: data read; start with the bowler
+PASS: gdb.base/signull.exp: data read; select the pointer type
+PASS: gdb.base/signull.exp: data read; take the SIGSEGV
+PASS: gdb.base/signull.exp: data read; backtrace from SIGSEGV
+PASS: gdb.base/signull.exp: data read; continue to the keeper
+PASS: gdb.base/signull.exp: data read; backtrace from keeper through SIGSEGV
+PASS: gdb.base/signull.exp: data write; start with the bowler
+PASS: gdb.base/signull.exp: data write; select the pointer type
+PASS: gdb.base/signull.exp: data write; take the SIGSEGV
+PASS: gdb.base/signull.exp: data write; backtrace from SIGSEGV
+PASS: gdb.base/signull.exp: data write; continue to the keeper
+PASS: gdb.base/signull.exp: data write; backtrace from keeper through SIGSEGV
+PASS: gdb.base/signull.exp: code; start with the bowler
+PASS: gdb.base/signull.exp: code; select the pointer type
+PASS: gdb.base/signull.exp: code; take the SIGSEGV
+PASS: gdb.base/signull.exp: code; backtrace from SIGSEGV
+PASS: gdb.base/signull.exp: code; continue to the keeper
+PASS: gdb.base/signull.exp: code; backtrace from keeper through SIGSEGV
+Running ./gdb.base/sigrepeat.exp ...
+PASS: gdb.base/sigrepeat.exp: advance to infinite loop
+PASS: gdb.base/sigrepeat.exp: next
+Running ./gdb.base/sigstep.exp ...
+PASS: gdb.base/sigstep.exp: display/i $pc
+PASS: gdb.base/sigstep.exp: break handler
+PASS: gdb.base/sigstep.exp: continue to stepi handler
+PASS: gdb.base/sigstep.exp: backtrace for nexti
+PASS: gdb.base/sigstep.exp: step from handler; continue to handler
+PASS: gdb.base/sigstep.exp: step from handler; leave handler
+PASS: gdb.base/sigstep.exp: stepi from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: stepi from handleri; leave handler
+PASS: gdb.base/sigstep.exp: stepi from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: next from handler; continue to handler
+PASS: gdb.base/sigstep.exp: next from handler; leave handler
+PASS: gdb.base/sigstep.exp: nexti from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: nexti from handleri; leave handler
+PASS: gdb.base/sigstep.exp: nexti from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: finish from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: finish from handleri; leave handler
+PASS: gdb.base/sigstep.exp: finish from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: return from handleri; continue to handler
+PASS: gdb.base/sigstep.exp: return from handleri; leave handler
+PASS: gdb.base/sigstep.exp: return from handleri; leave signal trampoline (in main)
+PASS: gdb.base/sigstep.exp: Set done as return will have skipped it
+PASS: gdb.base/sigstep.exp: set itimer = itimer_real
+PASS: gdb.base/sigstep.exp: break 79
+PASS: gdb.base/sigstep.exp: step to handler; resync
+PASS: gdb.base/sigstep.exp: step to handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: step to handler; break handler
+PASS: gdb.base/sigstep.exp: step to handler; performing step
+PASS: gdb.base/sigstep.exp: step to handler; clear handler
+PASS: gdb.base/sigstep.exp: next to handler; resync
+PASS: gdb.base/sigstep.exp: next to handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: next to handler; break handler
+PASS: gdb.base/sigstep.exp: next to handler; performing next
+PASS: gdb.base/sigstep.exp: next to handler; clear handler
+PASS: gdb.base/sigstep.exp: continue to handler; resync
+PASS: gdb.base/sigstep.exp: continue to handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: continue to handler; break handler
+PASS: gdb.base/sigstep.exp: continue to handler; performing continue
+PASS: gdb.base/sigstep.exp: continue to handler; clear handler
+PASS: gdb.base/sigstep.exp: step to handler entry; resync
+PASS: gdb.base/sigstep.exp: step to handler entry; advance to infinite loop
+PASS: gdb.base/sigstep.exp: step to handler entry; break handler
+PASS: gdb.base/sigstep.exp: step to handler entry; performing step
+PASS: gdb.base/sigstep.exp: step to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: next to handler entry; resync
+PASS: gdb.base/sigstep.exp: next to handler entry; advance to infinite loop
+PASS: gdb.base/sigstep.exp: next to handler entry; break handler
+PASS: gdb.base/sigstep.exp: next to handler entry; performing next
+PASS: gdb.base/sigstep.exp: next to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: continue to handler entry; resync
+PASS: gdb.base/sigstep.exp: continue to handler entry; advance to infinite loop
+PASS: gdb.base/sigstep.exp: continue to handler entry; break handler
+PASS: gdb.base/sigstep.exp: continue to handler entry; performing continue
+PASS: gdb.base/sigstep.exp: continue to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: step over handler; resync
+PASS: gdb.base/sigstep.exp: step over handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: step over handler; performing step
+PASS: gdb.base/sigstep.exp: next over handler; resync
+PASS: gdb.base/sigstep.exp: next over handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: next over handler; performing next
+PASS: gdb.base/sigstep.exp: continue over handler; resync
+PASS: gdb.base/sigstep.exp: continue over handler; advance to infinite loop
+PASS: gdb.base/sigstep.exp: continue over handler; performing continue
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; resync
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; break infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; break handler
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; performing step
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler; clear handler
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; resync
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; break infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; break handler
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; performing next
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler; clear handler
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; resync
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; break infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; break handler
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; performing continue
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler; clear handler
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; resync
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; break infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; break handler
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; continue to infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; performing step
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; clear infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; resync
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; break infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; break handler
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; continue to infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; performing next
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; clear infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; resync
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; break infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; break handler
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; continue to infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; performing continue
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; clear infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; clear handler
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; resync
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; break infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; performing step
+PASS: gdb.base/sigstep.exp: step on breakpoint, skip handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; resync
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; break infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; performing next
+PASS: gdb.base/sigstep.exp: next on breakpoint, skip handler; clear infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; resync
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; break infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; continue to infinite loop
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; performing continue
+PASS: gdb.base/sigstep.exp: continue on breakpoint, skip handler; clear infinite loop
+Running ./gdb.base/sizeof.exp ...
+Running ./gdb.base/skip.exp ...
+PASS: gdb.base/skip.exp: skip file (no default file)
+PASS: gdb.base/skip.exp: skip function
+PASS: gdb.base/skip.exp: skip (no default function)
+PASS: gdb.base/skip.exp: info skip empty
+PASS: gdb.base/skip.exp: skip file (skip.c)
+PASS: gdb.base/skip.exp: skip (main)
+PASS: gdb.base/skip.exp: skip file skip1.c
+PASS: gdb.base/skip.exp: skip function baz
+PASS: gdb.base/skip.exp: skip enable 999
+PASS: gdb.base/skip.exp: skip disable 999
+PASS: gdb.base/skip.exp: skip delete 999
+PASS: gdb.base/skip.exp: skip enable a
+PASS: gdb.base/skip.exp: skip disable a
+PASS: gdb.base/skip.exp: skip delete a
+PASS: gdb.base/skip.exp: info skip 999
+PASS: gdb.base/skip.exp: info skip
+PASS: gdb.base/skip.exp: step in the main
+PASS: gdb.base/skip.exp: step after all ignored
+PASS: gdb.base/skip.exp: skip delete 1
+PASS: gdb.base/skip.exp: info skip (delete 1)
+PASS: gdb.base/skip.exp: step after deleting 1 (1)
+PASS: gdb.base/skip.exp: step after deleting 1 (2)
+PASS: gdb.base/skip.exp: step after deleting 1 (3)
+PASS: gdb.base/skip.exp: skip disable 3
+PASS: gdb.base/skip.exp: info skip shows entry as disabled
+PASS: gdb.base/skip.exp: step after disabling 3 (1)
+PASS: gdb.base/skip.exp: step after disabling 3 (2)
+PASS: gdb.base/skip.exp: step after disabling 3 (3)
+PASS: gdb.base/skip.exp: step after disabling 3 (4)
+PASS: gdb.base/skip.exp: step after disabling 3 (5)
+PASS: gdb.base/skip.exp: skip enable 3
+PASS: gdb.base/skip.exp: info skip shows entry as enabled
+PASS: gdb.base/skip.exp: step after enable 3 (1)
+PASS: gdb.base/skip.exp: step after enable 3 (2)
+PASS: gdb.base/skip.exp: step after enable 3 (3)
+PASS: gdb.base/skip.exp: skip disable
+PASS: gdb.base/skip.exp: info skip after disabling all
+PASS: gdb.base/skip.exp: skip enable
+PASS: gdb.base/skip.exp: info skip after enabling all
+PASS: gdb.base/skip.exp: skip disable 4 2-3
+PASS: gdb.base/skip.exp: info skip after disabling 4 2-3
+PASS: gdb.base/skip.exp: skip enable 2-3
+PASS: gdb.base/skip.exp: info skip after enabling 2-3
+PASS: gdb.base/skip.exp: info skip 2-3
+PASS: gdb.base/skip.exp: skip delete 2 3
+PASS: gdb.base/skip.exp: info skip after deleting 2 3
+PASS: gdb.base/skip.exp: skip delete
+PASS: gdb.base/skip.exp: info skip after deleting all
+Running ./gdb.base/skip-solib.exp ...
+Running ./gdb.base/so-impl-ld.exp ...
+PASS: gdb.base/so-impl-ld.exp: step over solib call
+PASS: gdb.base/so-impl-ld.exp: step into solib call
+PASS: gdb.base/so-impl-ld.exp: step in solib call
+PASS: gdb.base/so-impl-ld.exp: step out of solib call
+Running ./gdb.base/so-indr-cl.exp ...
+Running ./gdb.base/solib-corrupted.exp ...
+Running ./gdb.base/solib-disc.exp ...
+PASS: gdb.base/solib-disc.exp: set stop-on-solib-events 1
+PASS: gdb.base/solib-disc.exp: continue to load
+PASS: gdb.base/solib-disc.exp: save $pc after load
+PASS: gdb.base/solib-disc.exp: disconnect after load
+PASS: gdb.base/solib-disc.exp: reconnect after load
+PASS: gdb.base/solib-disc.exp: check $pc after load
+PASS: gdb.base/solib-disc.exp: continue to unload
+PASS: gdb.base/solib-disc.exp: save $pc after unload
+PASS: gdb.base/solib-disc.exp: disconnect after unload
+PASS: gdb.base/solib-disc.exp: reconnect after unload
+PASS: gdb.base/solib-disc.exp: check $pc after unload
+Running ./gdb.base/solib-display.exp ...
+Running ./gdb.base/solib.exp ...
+Running ./gdb.base/solib-nodir.exp ...
+Running ./gdb.base/solib-overlap.exp ...
+Running ./gdb.base/solib-symbol.exp ...
+PASS: gdb.base/solib-symbol.exp: foo2 in main
+PASS: gdb.base/solib-symbol.exp: foo in libmd
+PASS: gdb.base/solib-symbol.exp: continue
+PASS: gdb.base/solib-symbol.exp: foo2 in mdlib
+Running ./gdb.base/solib-weak.exp ...
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 nodebug, lib1 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 nodebug, lib2 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 debug, lib1 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 debug, lib2 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 nodebug, lib1 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 nodebug, lib2 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 debug, lib1 first
+PASS: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 debug, lib2 first
+Running ./gdb.base/source.exp ...
+PASS: gdb.base/source.exp: script contains error
+PASS: gdb.base/source.exp: source -v
+PASS: gdb.base/source.exp: source after -v
+PASS: gdb.base/source.exp: set search directories
+PASS: gdb.base/source.exp: source -s
+PASS: gdb.base/source.exp: source -s -v
+PASS: gdb.base/source.exp: source -v -s
+Running ./gdb.base/stack-checking.exp ...
+PASS: gdb.base/stack-checking.exp: continue to breakpoint: breakpoint for small frame
+PASS: gdb.base/stack-checking.exp: bt
+PASS: gdb.base/stack-checking.exp: continue to breakpoint: breakpoint for medium frame
+PASS: gdb.base/stack-checking.exp: bt
+PASS: gdb.base/stack-checking.exp: continue to breakpoint: breakpoint for big frame
+PASS: gdb.base/stack-checking.exp: bt
+Running ./gdb.base/stale-infcall.exp ...
+PASS: gdb.base/stale-infcall.exp: continue to breakpoint: test-next
+PASS: gdb.base/stale-infcall.exp: set $test_fail_bpnum=$bpnum
+XFAIL: gdb.base/stale-infcall.exp: test system longjmp tracking support
+UNTESTED: gdb.base/stale-infcall.exp: System lacks support for tracking longjmps
+Running ./gdb.base/stap-probe.exp ...
+gdb compile failed, ./gdb.base/stap-probe.c:39:21: fatal error: sys/sdt.h: No such file or directory
+ #include <sys/sdt.h>
+                     ^
+compilation terminated.
+UNTESTED: gdb.base/stap-probe.exp: without semaphore, not optimized: stap-probe.exp
+UNTESTED: gdb.base/stap-probe.exp: without semaphore, not optimized: stap-probe.exp
+Running ./gdb.base/start.exp ...
+UNTESTED: gdb.base/start.exp: start
+Running ./gdb.base/step-break.exp ...
+PASS: gdb.base/step-break.exp: breakpoint line number
+PASS: gdb.base/step-break.exp: run until breakpoint set at a line number
+PASS: gdb.base/step-break.exp: next 2 (1)
+PASS: gdb.base/step-break.exp: next 2 (2)
+PASS: gdb.base/step-break.exp: next 2 (3)
+PASS: gdb.base/step-break.exp: next 2 (4)
+PASS: gdb.base/step-break.exp: next 2 (5)
+PASS: gdb.base/step-break.exp: next 2 (6)
+Running ./gdb.base/step-bt.exp ...
+PASS: gdb.base/step-bt.exp: breakpoint at first instruction of hello()
+PASS: gdb.base/step-bt.exp: run to hello()
+PASS: gdb.base/step-bt.exp: step first instruction
+PASS: gdb.base/step-bt.exp: backtrace after first instruction step
+PASS: gdb.base/step-bt.exp: step second instruction
+PASS: gdb.base/step-bt.exp: backtrace after second instruction step
+Running ./gdb.base/step-line.exp ...
+PASS: gdb.base/step-line.exp: break f1
+PASS: gdb.base/step-line.exp: continue to f1
+PASS: gdb.base/step-line.exp: next over dummy 1
+PASS: gdb.base/step-line.exp: next to dummy 2
+PASS: gdb.base/step-line.exp: next over dummy 2
+PASS: gdb.base/step-line.exp: step into f2
+PASS: gdb.base/step-line.exp: next over dummy 4
+PASS: gdb.base/step-line.exp: next to dummy 5
+PASS: gdb.base/step-line.exp: next to dummy 6
+PASS: gdb.base/step-line.exp: next over dummy 6
+PASS: gdb.base/step-line.exp: next to dummy 7
+PASS: gdb.base/step-line.exp: next to dummy 8
+PASS: gdb.base/step-line.exp: next over dummy 8
+PASS: gdb.base/step-line.exp: next to dummy 9
+PASS: gdb.base/step-line.exp: next to dummy 10
+PASS: gdb.base/step-line.exp: next over dummy 10
+Running ./gdb.base/step-resume-infcall.exp ...
+PASS: gdb.base/step-resume-infcall.exp: step
+PASS: gdb.base/step-resume-infcall.exp: up
+PASS: gdb.base/step-resume-infcall.exp: set $b=$pc
+PASS: gdb.base/step-resume-infcall.exp: print $bpnum
+PASS: gdb.base/step-resume-infcall.exp: disass/m
+PASS: gdb.base/step-resume-infcall.exp: info breakpoints
+PASS: gdb.base/step-resume-infcall.exp: next
+PASS: gdb.base/step-resume-infcall.exp: p cond_hit
+Running ./gdb.base/step-symless.exp ...
+PASS: gdb.base/step-symless.exp: strip stub symbols
+PASS: gdb.base/step-symless.exp: step
+Running ./gdb.base/step-test.exp ...
+PASS: gdb.base/step-test.exp: next 1
+PASS: gdb.base/step-test.exp: step 1
+PASS: gdb.base/step-test.exp: next 2
+PASS: gdb.base/step-test.exp: step 3
+PASS: gdb.base/step-test.exp: next 3
+PASS: gdb.base/step-test.exp: next over
+PASS: gdb.base/step-test.exp: step into
+PASS: gdb.base/step-test.exp: step out
+PASS: gdb.base/step-test.exp: stepi to next line
+PASS: gdb.base/step-test.exp: stepi into function
+PASS: gdb.base/step-test.exp: stepi into function's first source line
+PASS: gdb.base/step-test.exp: stepi: finish call
+PASS: gdb.base/step-test.exp: nexti over function
+PASS: gdb.base/step-test.exp: set breakpoint at call to large_struct_by_value
+PASS: gdb.base/step-test.exp: run to pass large struct
+PASS: gdb.base/step-test.exp: large struct by value
+PASS: gdb.base/step-test.exp: continue until exit at step-test.exp
+Running ./gdb.base/store.exp ...
+PASS: gdb.base/store.exp: tbreak wack_charest
+PASS: gdb.base/store.exp: continue to wack_charest
+PASS: gdb.base/store.exp: var charest l; print old l, expecting -1 .*
+PASS: gdb.base/store.exp: var charest l; print old r, expecting -2 .*
+PASS: gdb.base/store.exp: var charest l; setting l to 4
+PASS: gdb.base/store.exp: var charest l; print new l, expecting 4 ..004.
+PASS: gdb.base/store.exp: var charest l; next over add call
+PASS: gdb.base/store.exp: var charest l; print incremented l, expecting 2 ..002.
+PASS: gdb.base/store.exp: tbreak wack_short
+PASS: gdb.base/store.exp: continue to wack_short
+PASS: gdb.base/store.exp: var short l; print old l, expecting -1
+PASS: gdb.base/store.exp: var short l; print old r, expecting -2
+PASS: gdb.base/store.exp: var short l; setting l to 4
+PASS: gdb.base/store.exp: var short l; print new l, expecting 4
+PASS: gdb.base/store.exp: var short l; next over add call
+PASS: gdb.base/store.exp: var short l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_int
+PASS: gdb.base/store.exp: continue to wack_int
+PASS: gdb.base/store.exp: var int l; print old l, expecting -1
+PASS: gdb.base/store.exp: var int l; print old r, expecting -2
+PASS: gdb.base/store.exp: var int l; setting l to 4
+PASS: gdb.base/store.exp: var int l; print new l, expecting 4
+PASS: gdb.base/store.exp: var int l; next over add call
+PASS: gdb.base/store.exp: var int l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_long
+PASS: gdb.base/store.exp: continue to wack_long
+PASS: gdb.base/store.exp: var long l; print old l, expecting -1
+PASS: gdb.base/store.exp: var long l; print old r, expecting -2
+PASS: gdb.base/store.exp: var long l; setting l to 4
+PASS: gdb.base/store.exp: var long l; print new l, expecting 4
+PASS: gdb.base/store.exp: var long l; next over add call
+PASS: gdb.base/store.exp: var long l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_longest
+PASS: gdb.base/store.exp: continue to wack_longest
+PASS: gdb.base/store.exp: var longest l; print old l, expecting -1
+PASS: gdb.base/store.exp: var longest l; print old r, expecting -2
+PASS: gdb.base/store.exp: var longest l; setting l to 4
+PASS: gdb.base/store.exp: var longest l; print new l, expecting 4
+PASS: gdb.base/store.exp: var longest l; next over add call
+PASS: gdb.base/store.exp: var longest l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_float
+PASS: gdb.base/store.exp: continue to wack_float
+PASS: gdb.base/store.exp: var float l; print old l, expecting -1
+PASS: gdb.base/store.exp: var float l; print old r, expecting -2
+PASS: gdb.base/store.exp: var float l; setting l to 4
+PASS: gdb.base/store.exp: var float l; print new l, expecting 4
+PASS: gdb.base/store.exp: var float l; next over add call
+PASS: gdb.base/store.exp: var float l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_double
+PASS: gdb.base/store.exp: continue to wack_double
+PASS: gdb.base/store.exp: var double l; print old l, expecting -1
+PASS: gdb.base/store.exp: var double l; print old r, expecting -2
+PASS: gdb.base/store.exp: var double l; setting l to 4
+PASS: gdb.base/store.exp: var double l; print new l, expecting 4
+PASS: gdb.base/store.exp: var double l; next over add call
+PASS: gdb.base/store.exp: var double l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak wack_doublest
+PASS: gdb.base/store.exp: continue to wack_doublest
+FAIL: gdb.base/store.exp: var doublest l; print old l, expecting -1
+FAIL: gdb.base/store.exp: var doublest l; print old r, expecting -2
+FAIL: gdb.base/store.exp: var doublest l; setting l to 4
+FAIL: gdb.base/store.exp: var doublest l; print new l, expecting 4
+PASS: gdb.base/store.exp: var doublest l; next over add call
+FAIL: gdb.base/store.exp: var doublest l; print incremented l, expecting 2
+PASS: gdb.base/store.exp: tbreak add_charest
+PASS: gdb.base/store.exp: continue to add_charest
+PASS: gdb.base/store.exp: upvar charest l; up
+PASS: gdb.base/store.exp: upvar charest l; print old l, expecting -1 .*
+PASS: gdb.base/store.exp: upvar charest l; print old r, expecting -2 .*
+PASS: gdb.base/store.exp: upvar charest l; set l to 4
+PASS: gdb.base/store.exp: upvar charest l; print new l, expecting 4 ..004.
+PASS: gdb.base/store.exp: tbreak add_short
+PASS: gdb.base/store.exp: continue to add_short
+PASS: gdb.base/store.exp: upvar short l; up
+PASS: gdb.base/store.exp: upvar short l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar short l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar short l; set l to 4
+PASS: gdb.base/store.exp: upvar short l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_int
+PASS: gdb.base/store.exp: continue to add_int
+PASS: gdb.base/store.exp: upvar int l; up
+PASS: gdb.base/store.exp: upvar int l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar int l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar int l; set l to 4
+PASS: gdb.base/store.exp: upvar int l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_long
+PASS: gdb.base/store.exp: continue to add_long
+PASS: gdb.base/store.exp: upvar long l; up
+PASS: gdb.base/store.exp: upvar long l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar long l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar long l; set l to 4
+PASS: gdb.base/store.exp: upvar long l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_longest
+PASS: gdb.base/store.exp: continue to add_longest
+PASS: gdb.base/store.exp: upvar longest l; up
+PASS: gdb.base/store.exp: upvar longest l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar longest l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar longest l; set l to 4
+PASS: gdb.base/store.exp: upvar longest l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_float
+PASS: gdb.base/store.exp: continue to add_float
+PASS: gdb.base/store.exp: upvar float l; up
+PASS: gdb.base/store.exp: upvar float l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar float l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar float l; set l to 4
+PASS: gdb.base/store.exp: upvar float l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_double
+PASS: gdb.base/store.exp: continue to add_double
+PASS: gdb.base/store.exp: upvar double l; up
+PASS: gdb.base/store.exp: upvar double l; print old l, expecting -1
+PASS: gdb.base/store.exp: upvar double l; print old r, expecting -2
+PASS: gdb.base/store.exp: upvar double l; set l to 4
+PASS: gdb.base/store.exp: upvar double l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak add_doublest
+PASS: gdb.base/store.exp: continue to add_doublest
+PASS: gdb.base/store.exp: upvar doublest l; up
+FAIL: gdb.base/store.exp: upvar doublest l; print old l, expecting -1
+FAIL: gdb.base/store.exp: upvar doublest l; print old r, expecting -2
+FAIL: gdb.base/store.exp: upvar doublest l; set l to 4
+FAIL: gdb.base/store.exp: upvar doublest l; print new l, expecting 4
+PASS: gdb.base/store.exp: tbreak wack_struct_1
+PASS: gdb.base/store.exp: continue to wack_struct_1
+PASS: gdb.base/store.exp: var struct 1 u; next to add_struct_1 call
+PASS: gdb.base/store.exp: var struct 1 u; print old u, expecting {s = \{0}}
+PASS: gdb.base/store.exp: var struct 1 u; set u to s_1
+PASS: gdb.base/store.exp: var struct 1 u; print new u, expecting {s = \{1}}
+PASS: gdb.base/store.exp: tbreak wack_struct_2
+PASS: gdb.base/store.exp: continue to wack_struct_2
+PASS: gdb.base/store.exp: var struct 2 u; next to add_struct_2 call
+PASS: gdb.base/store.exp: var struct 2 u; print old u, expecting {s = \{0, 0}}
+PASS: gdb.base/store.exp: var struct 2 u; set u to s_2
+PASS: gdb.base/store.exp: var struct 2 u; print new u, expecting {s = \{1, 2}}
+PASS: gdb.base/store.exp: tbreak wack_struct_3
+PASS: gdb.base/store.exp: continue to wack_struct_3
+PASS: gdb.base/store.exp: var struct 3 u; next to add_struct_3 call
+PASS: gdb.base/store.exp: var struct 3 u; print old u, expecting {s = \{0, 0, 0}}
+PASS: gdb.base/store.exp: var struct 3 u; set u to s_3
+PASS: gdb.base/store.exp: var struct 3 u; print new u, expecting {s = \{1, 2, 3}}
+PASS: gdb.base/store.exp: tbreak wack_struct_4
+PASS: gdb.base/store.exp: continue to wack_struct_4
+PASS: gdb.base/store.exp: var struct 4 u; next to add_struct_4 call
+PASS: gdb.base/store.exp: var struct 4 u; print old u, expecting {s = \{0, 0, 0, 0}}
+PASS: gdb.base/store.exp: var struct 4 u; set u to s_4
+PASS: gdb.base/store.exp: var struct 4 u; print new u, expecting {s = \{1, 2, 3, 4}}
+PASS: gdb.base/store.exp: tbreak add_struct_1
+PASS: gdb.base/store.exp: continue to add_struct_1
+PASS: gdb.base/store.exp: up struct 1 u; up
+PASS: gdb.base/store.exp: up struct 1 u; print old u, expecting {s = \{0}}
+PASS: gdb.base/store.exp: up struct 1 u; set u to s_1
+PASS: gdb.base/store.exp: up struct 1 u; print new u, expecting {s = \{1}}
+PASS: gdb.base/store.exp: tbreak add_struct_2
+PASS: gdb.base/store.exp: continue to add_struct_2
+PASS: gdb.base/store.exp: up struct 2 u; up
+PASS: gdb.base/store.exp: up struct 2 u; print old u, expecting {s = \{0, 0}}
+PASS: gdb.base/store.exp: up struct 2 u; set u to s_2
+PASS: gdb.base/store.exp: up struct 2 u; print new u, expecting {s = \{1, 2}}
+PASS: gdb.base/store.exp: tbreak add_struct_3
+PASS: gdb.base/store.exp: continue to add_struct_3
+PASS: gdb.base/store.exp: up struct 3 u; up
+PASS: gdb.base/store.exp: up struct 3 u; print old u, expecting {s = \{0, 0, 0}}
+PASS: gdb.base/store.exp: up struct 3 u; set u to s_3
+PASS: gdb.base/store.exp: up struct 3 u; print new u, expecting {s = \{1, 2, 3}}
+PASS: gdb.base/store.exp: tbreak add_struct_4
+PASS: gdb.base/store.exp: continue to add_struct_4
+PASS: gdb.base/store.exp: up struct 4 u; up
+PASS: gdb.base/store.exp: up struct 4 u; print old u, expecting {s = \{0, 0, 0, 0}}
+PASS: gdb.base/store.exp: up struct 4 u; set u to s_4
+PASS: gdb.base/store.exp: up struct 4 u; print new u, expecting {s = \{1, 2, 3, 4}}
+PASS: gdb.base/store.exp: tbreak wack_field_1
+PASS: gdb.base/store.exp: continue field 1
+PASS: gdb.base/store.exp: next field 1
+PASS: gdb.base/store.exp: old field 1
+PASS: gdb.base/store.exp: set variable u = F_1
+PASS: gdb.base/store.exp: new field 1
+PASS: gdb.base/store.exp: set variable u = F_1, u.i = f_1.i
+PASS: gdb.base/store.exp: f_1.i
+PASS: gdb.base/store.exp: set variable u = F_1, u.j = f_1.j
+PASS: gdb.base/store.exp: f_1.j
+PASS: gdb.base/store.exp: set variable u = F_1, u.k = f_1.k
+PASS: gdb.base/store.exp: f_1.k
+PASS: gdb.base/store.exp: set variable u = f_1, u.i = F_1.i
+PASS: gdb.base/store.exp: F_1.i
+PASS: gdb.base/store.exp: set variable u = f_1, u.j = F_1.j
+PASS: gdb.base/store.exp: F_1.j
+PASS: gdb.base/store.exp: set variable u = f_1, u.k = F_1.k
+PASS: gdb.base/store.exp: F_1.k
+PASS: gdb.base/store.exp: tbreak wack_field_2
+PASS: gdb.base/store.exp: continue field 2
+PASS: gdb.base/store.exp: next field 2
+PASS: gdb.base/store.exp: old field 2
+PASS: gdb.base/store.exp: set variable u = F_2
+PASS: gdb.base/store.exp: new field 2
+PASS: gdb.base/store.exp: set variable u = F_2, u.i = f_2.i
+PASS: gdb.base/store.exp: f_2.i
+PASS: gdb.base/store.exp: set variable u = F_2, u.j = f_2.j
+PASS: gdb.base/store.exp: f_2.j
+PASS: gdb.base/store.exp: set variable u = F_2, u.k = f_2.k
+PASS: gdb.base/store.exp: f_2.k
+PASS: gdb.base/store.exp: set variable u = f_2, u.i = F_2.i
+PASS: gdb.base/store.exp: F_2.i
+PASS: gdb.base/store.exp: set variable u = f_2, u.j = F_2.j
+PASS: gdb.base/store.exp: F_2.j
+PASS: gdb.base/store.exp: set variable u = f_2, u.k = F_2.k
+PASS: gdb.base/store.exp: F_2.k
+PASS: gdb.base/store.exp: tbreak wack_field_3
+PASS: gdb.base/store.exp: continue field 3
+PASS: gdb.base/store.exp: next field 3
+PASS: gdb.base/store.exp: old field 3
+PASS: gdb.base/store.exp: set variable u = F_3
+PASS: gdb.base/store.exp: new field 3
+PASS: gdb.base/store.exp: set variable u = F_3, u.i = f_3.i
+PASS: gdb.base/store.exp: f_3.i
+PASS: gdb.base/store.exp: set variable u = F_3, u.j = f_3.j
+PASS: gdb.base/store.exp: f_3.j
+PASS: gdb.base/store.exp: set variable u = F_3, u.k = f_3.k
+PASS: gdb.base/store.exp: f_3.k
+PASS: gdb.base/store.exp: set variable u = f_3, u.i = F_3.i
+PASS: gdb.base/store.exp: F_3.i
+PASS: gdb.base/store.exp: set variable u = f_3, u.j = F_3.j
+PASS: gdb.base/store.exp: F_3.j
+PASS: gdb.base/store.exp: set variable u = f_3, u.k = F_3.k
+PASS: gdb.base/store.exp: F_3.k
+PASS: gdb.base/store.exp: tbreak wack_field_4
+PASS: gdb.base/store.exp: continue field 4
+PASS: gdb.base/store.exp: next field 4
+PASS: gdb.base/store.exp: old field 4
+PASS: gdb.base/store.exp: set variable u = F_4
+PASS: gdb.base/store.exp: new field 4
+PASS: gdb.base/store.exp: set variable u = F_4, u.i = f_4.i
+PASS: gdb.base/store.exp: f_4.i
+PASS: gdb.base/store.exp: set variable u = F_4, u.j = f_4.j
+PASS: gdb.base/store.exp: f_4.j
+PASS: gdb.base/store.exp: set variable u = F_4, u.k = f_4.k
+PASS: gdb.base/store.exp: f_4.k
+PASS: gdb.base/store.exp: set variable u = f_4, u.i = F_4.i
+PASS: gdb.base/store.exp: F_4.i
+PASS: gdb.base/store.exp: set variable u = f_4, u.j = F_4.j
+PASS: gdb.base/store.exp: F_4.j
+PASS: gdb.base/store.exp: set variable u = f_4, u.k = F_4.k
+PASS: gdb.base/store.exp: F_4.k
+Running ./gdb.base/structs2.exp ...
+PASS: gdb.base/structs2.exp: set width 0
+PASS: gdb.base/structs2.exp: structs2 sanity check
+PASS: gdb.base/structs2.exp: structs2 breakpoint set
+PASS: gdb.base/structs2.exp: structs2 continue1
+PASS: gdb.base/structs2.exp: structs2 continue2
+Running ./gdb.base/structs3.exp ...
+PASS: gdb.base/structs3.exp: print two
+PASS: gdb.base/structs3.exp: print *twop
+PASS: gdb.base/structs3.exp: print *(struct Two *)onep
+PASS: gdb.base/structs3.exp: print *(tTwo *)onep
+Running ./gdb.base/structs.exp ...
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: continue to breakpoint: chartest-done
+PASS: gdb.base/structs.exp: p chartest
+PASS: gdb.base/structs.exp: ptype foo1; structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 7 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 7 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 7 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 8 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 8 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 8 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 9 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 9 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 9 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 10 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 10 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 10 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 11 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 11 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 11 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 12 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 12 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 12 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 13 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 13 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 13 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 14 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 14 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 14 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 15 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 15 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 15 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 16 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 16 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 16 structs-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 17 structs-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 17 structs-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 17 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 3 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 3 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 3 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 3 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 3 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 3 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 4 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 4 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 4 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 4 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 4 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 4 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 5 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 5 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 5 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 5 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 5 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 5 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 5 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 5 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 5 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 6 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 6 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 6 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 6 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 6 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 6 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 6 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 6 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 6 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 7 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 7 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 7 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 7 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 7 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 7 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 7 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 7 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 7 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 8 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 8 structs-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 8 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 8 structs-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 8 structs-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 8 structs-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 8 structs-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 8 structs-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 8 structs-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 3 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 3 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 3 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 3 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 3 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 3 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 4 structs-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 4 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 4 structs-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 4 structs-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 4 structs-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 4 structs-ts
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ti
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ti
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ti
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ti
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tl
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tl
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tl
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tl
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tll
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tll
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tll
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tll
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tll
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tll
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tll
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tll
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tll
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tll
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tll
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tll
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tll
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tll
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tll
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tf
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tf
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tf
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-td
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-td
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-td
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-td
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-td
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-td
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-td
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-td
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-td
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo1; structs-tld
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tld
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tld
+PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tld
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tld
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tld
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tld
+PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tld
+PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tld
+PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tld
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tld
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tld
+PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tld
+PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tld
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tld
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 7 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 7 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 7 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 8 structs-ts-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 8 structs-ts-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 8 structs-ts-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ts-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-ti-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-ti-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-ti-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ti-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tl-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tl-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tl-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tl-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tll-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tll-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tll-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tf-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tf-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tf-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-td-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tld-tc
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tld-tc
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tld-tc
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld-tc
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tc-ts
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tc-ts
+PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-ts
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-ti
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-ti
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-ti
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-tl
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-tl
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-tl
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tll
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tll
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tll
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tll
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tf
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-td
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tld
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tld
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tld
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tld
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-td-tf
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td-tf
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td-tf
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-td-tf
+PASS: gdb.base/structs.exp: set print sevenbit-strings
+PASS: gdb.base/structs.exp: set print address off
+PASS: gdb.base/structs.exp: set width 0
+PASS: gdb.base/structs.exp: set print elements 300
+PASS: gdb.base/structs.exp: ptype foo2; structs-tf-td
+PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf-td
+PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf-td
+PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-td
+PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-td
+PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf-td
+Running ./gdb.base/subst.exp ...
+PASS: gdb.base/subst.exp: deactivate GDB's confirmation interface
+PASS: gdb.base/subst.exp: show substitute-path, no rule entered yet
+PASS: gdb.base/subst.exp: show substitute-path from, no rule entered yet
+PASS: gdb.base/subst.exp: show substitute-path, too many arguments
+PASS: gdb.base/subst.exp: unset substitute-path from, no rule entered yet
+PASS: gdb.base/subst.exp: unset substitute-path, no rule entered yet
+PASS: gdb.base/subst.exp: unset substitute-path from, no rule entered yet
+PASS: gdb.base/subst.exp: unset substitute-path, too many arguments
+PASS: gdb.base/subst.exp: set substitute-path, too many arguments
+PASS: gdb.base/subst.exp: set substitute-path, too few arguments
+PASS: gdb.base/subst.exp: set substitute-path, first argument is empty string
+PASS: gdb.base/subst.exp: add from -> to substitution rule
+PASS: gdb.base/subst.exp: add from1 -> to1 substitution rule
+PASS: gdb.base/subst.exp: add source -> destination substitution rule
+PASS: gdb.base/subst.exp: add depuis -> vers substitution rule
+PASS: gdb.base/subst.exp: add substitution rule to empty string
+PASS: gdb.base/subst.exp: show substitute-path after all paths added
+PASS: gdb.base/subst.exp: show substitute-path from, after all paths added
+PASS: gdb.base/subst.exp: show substitute-path depuis, after all paths added
+PASS: gdb.base/subst.exp: show substitute-path garbage, after all paths added
+PASS: gdb.base/subst.exp: unset substitute-path from
+PASS: gdb.base/subst.exp: show substitute-path from, after unsetting it
+PASS: gdb.base/subst.exp: show substitute-path after from rule removed
+PASS: gdb.base/subst.exp: unset substitute-path from after the rule was removed
+PASS: gdb.base/subst.exp: unset substitute-path depuis (middle of list)
+PASS: gdb.base/subst.exp: show substitute-path after depuis rule removed
+PASS: gdb.base/subst.exp: unset substitute-path empty (end of list)
+PASS: gdb.base/subst.exp: show substitute-path after empty rule removed
+PASS: gdb.base/subst.exp: remove all remaining substitution rules
+PASS: gdb.base/subst.exp: show substitute-path after all remaining rules removed
+Running ./gdb.base/symbol-without-target_section.exp ...
+PASS: gdb.base/symbol-without-target_section.exp: add-symbol-file
+PASS: gdb.base/symbol-without-target_section.exp: list main
+PASS: gdb.base/symbol-without-target_section.exp: print symbol_without_target_section
+Running ./gdb.base/term.exp ...
+Running ./gdb.base/testenv.exp ...
+Running ./gdb.base/trace-commands.exp ...
+PASS: gdb.base/trace-commands.exp: show trace-commands says off
+PASS: gdb.base/trace-commands.exp: source -v
+PASS: gdb.base/trace-commands.exp: set trace-commands
+PASS: gdb.base/trace-commands.exp: show trace-commands says on
+PASS: gdb.base/trace-commands.exp: simple trace-commands test
+PASS: gdb.base/trace-commands.exp: nested trace-commands test
+PASS: gdb.base/trace-commands.exp: define user command
+PASS: gdb.base/trace-commands.exp: nested trace-commands test with source
+PASS: gdb.base/trace-commands.exp: depth resets on error part 1
+PASS: gdb.base/trace-commands.exp: depth resets on error part 2
+Running ./gdb.base/tui-layout.exp ...
+PASS: gdb.base/tui-layout.exp: layout asm
+Running ./gdb.base/twice.exp ...
+PASS: gdb.base/twice.exp: step
+Running ./gdb.base/type-opaque.exp ...
+PASS: gdb.base/type-opaque.exp: opaque struct type resolving
+PASS: gdb.base/type-opaque.exp: empty struct type resolving
+PASS: gdb.base/type-opaque.exp: filled struct type resolving
+PASS: gdb.base/type-opaque.exp: opaque union type resolving
+PASS: gdb.base/type-opaque.exp: empty union type resolving
+PASS: gdb.base/type-opaque.exp: filled union type resolving
+Running ./gdb.base/ui-redirect.exp ...
+PASS: gdb.base/ui-redirect.exp: commands
+PASS: gdb.base/ui-redirect.exp: print 1
+PASS: gdb.base/ui-redirect.exp: end
+PASS: gdb.base/ui-redirect.exp: set logging file /dev/null
+PASS: gdb.base/ui-redirect.exp: set logging on
+PASS: gdb.base/ui-redirect.exp: save breakpoints /dev/null
+PASS: gdb.base/ui-redirect.exp: set logging off
+PASS: gdb.base/ui-redirect.exp: help
+Running ./gdb.base/unload.exp ...
+PASS: gdb.base/unload.exp: pending breakpoint info before run
+PASS: gdb.base/unload.exp: running program
+PASS: gdb.base/unload.exp: pending breakpoint info on first run at shrfunc1
+PASS: gdb.base/unload.exp: continuing to unloaded libfile
+PASS: gdb.base/unload.exp: print y from libfile
+PASS: gdb.base/unload.exp: rerun to shared library breakpoint
+PASS: gdb.base/unload.exp: pending breakpoint info on second run at shrfunc1
+PASS: gdb.base/unload.exp: continuing to unloaded libfile
+PASS: gdb.base/unload.exp: continue to shrfunc2
+PASS: gdb.base/unload.exp: pending breakpoint info on second run at shrfunc2
+PASS: gdb.base/unload.exp: continuing to unloaded libfile2
+PASS: gdb.base/unload.exp: print y from libfile2
+Running ./gdb.base/until.exp ...
+PASS: gdb.base/until.exp: until line number
+PASS: gdb.base/until.exp: malformed until
+PASS: gdb.base/until.exp: until factorial, recursive function
+PASS: gdb.base/until.exp: until func, not called by current frame
+Running ./gdb.base/unwindonsignal.exp ...
+Running ./gdb.base/valgrind-db-attach.exp ...
+Running ./gdb.base/valgrind-infcall.exp ...
+Running ./gdb.base/value-double-free.exp ...
+PASS: gdb.base/value-double-free.exp: watch var
+PASS: gdb.base/value-double-free.exp: continue
+PASS: gdb.base/value-double-free.exp: print empty()
+PASS: gdb.base/value-double-free.exp: help help
+Running ./gdb.base/varargs.exp ...
+PASS: gdb.base/varargs.exp: set print sevenbit-strings
+PASS: gdb.base/varargs.exp: set print address off
+PASS: gdb.base/varargs.exp: set width 0
+Running ./gdb.base/volatile.exp ...
+PASS: gdb.base/volatile.exp: continue to marker1
+PASS: gdb.base/volatile.exp: up from marker1
+PASS: gdb.base/volatile.exp: ptype vox
+PASS: gdb.base/volatile.exp: ptype victuals
+PASS: gdb.base/volatile.exp: ptype vixen
+PASS: gdb.base/volatile.exp: ptype vitriol
+PASS: gdb.base/volatile.exp: ptype vellum
+PASS: gdb.base/volatile.exp: ptype valve
+PASS: gdb.base/volatile.exp: ptype vacuity
+PASS: gdb.base/volatile.exp: ptype vertigo
+PASS: gdb.base/volatile.exp: ptype vampire
+PASS: gdb.base/volatile.exp: ptype viper
+PASS: gdb.base/volatile.exp: ptype vigour
+PASS: gdb.base/volatile.exp: ptype vapour
+PASS: gdb.base/volatile.exp: ptype ventricle
+PASS: gdb.base/volatile.exp: ptype vigintillion
+PASS: gdb.base/volatile.exp: ptype vocation
+PASS: gdb.base/volatile.exp: ptype veracity
+PASS: gdb.base/volatile.exp: ptype vapidity
+PASS: gdb.base/volatile.exp: ptype velocity
+PASS: gdb.base/volatile.exp: ptype veneer
+PASS: gdb.base/volatile.exp: ptype video
+PASS: gdb.base/volatile.exp: ptype vacuum
+PASS: gdb.base/volatile.exp: ptype veniality
+PASS: gdb.base/volatile.exp: ptype vitality
+PASS: gdb.base/volatile.exp: ptype voracity
+PASS: gdb.base/volatile.exp: ptype victor
+PASS: gdb.base/volatile.exp: ptype vicar
+PASS: gdb.base/volatile.exp: ptype victory
+PASS: gdb.base/volatile.exp: ptype vicarage
+PASS: gdb.base/volatile.exp: ptype vein
+PASS: gdb.base/volatile.exp: ptype vogue
+PASS: gdb.base/volatile.exp: ptype cavern
+PASS: gdb.base/volatile.exp: ptype coverlet
+PASS: gdb.base/volatile.exp: ptype caveat
+PASS: gdb.base/volatile.exp: ptype covenant
+PASS: gdb.base/volatile.exp: ptype vizier
+PASS: gdb.base/volatile.exp: ptype vanadium
+PASS: gdb.base/volatile.exp: ptype vane
+PASS: gdb.base/volatile.exp: ptype veldt
+PASS: gdb.base/volatile.exp: ptype cove
+PASS: gdb.base/volatile.exp: ptype cavity
+PASS: gdb.base/volatile.exp: ptype vagus
+PASS: gdb.base/volatile.exp: ptype vagrancy
+PASS: gdb.base/volatile.exp: ptype vagary
+PASS: gdb.base/volatile.exp: ptype vendor
+PASS: gdb.base/volatile.exp: ptype qux2
+Running ./gdb.base/watch-cond.exp ...
+PASS: gdb.base/watch-cond.exp: set write watchpoint on global variable, local condition
+PASS: gdb.base/watch-cond.exp: watchpoint with global expression, local condition evaluates in correct frame
+PASS: gdb.base/watch-cond.exp: set write watchpoint on local variable, local condition
+PASS: gdb.base/watch-cond.exp: watchpoint with local expression, local condition evaluates in correct frame
+PASS: gdb.base/watch-cond.exp: set write watchpoint on global2 variable
+PASS: gdb.base/watch-cond.exp: watchpoint on global2 variable triggers
+PASS: gdb.base/watch-cond.exp: condition of watchpoint 2 changes
+PASS: gdb.base/watch-cond.exp: watchpoint stops with untestable local expression
+Running ./gdb.base/watch-cond-infcall.exp ...
+PASS: gdb.base/watch-cond-infcall.exp: sw: watch var if return_1 ()
+PASS: gdb.base/watch-cond-infcall.exp: sw: continue
+Running ./gdb.base/watch-non-mem.exp ...
+PASS: gdb.base/watch-non-mem.exp: set write watchpoint on $pc
+PASS: gdb.base/watch-non-mem.exp: watchpoint on $pc works
+Running ./gdb.base/watchpoint-cond-gone.exp ...
+PASS: gdb.base/watchpoint-cond-gone.exp: set can-use-hw-watchpoints 0
+PASS: gdb.base/watchpoint-cond-gone.exp: continue to breakpoint: Place to set the watchpoint
+PASS: gdb.base/watchpoint-cond-gone.exp: Place the watchpoint
+PASS: gdb.base/watchpoint-cond-gone.exp: Catch the no longer valid watchpoint
+Running ./gdb.base/watchpoint-delete.exp ...
+PASS: gdb.base/watchpoint-delete.exp: set can-use-hw-watchpoints 0
+PASS: gdb.base/watchpoint-delete.exp: continue to breakpoint: break-here
+PASS: gdb.base/watchpoint-delete.exp: watch x
+PASS: gdb.base/watchpoint-delete.exp: delete $bpnum
+Running ./gdb.base/watchpoint.exp ...
+PASS: gdb.base/watchpoint.exp: disable fast watches
+PASS: gdb.base/watchpoint.exp: show disable fast watches
+PASS: gdb.base/watchpoint.exp: set slow conditional watch
+PASS: gdb.base/watchpoint.exp: trigger slow conditional watch
+PASS: gdb.base/watchpoint.exp: delete watch ival3
+PASS: gdb.base/watchpoint.exp: set slow condition watch w/thread
+PASS: gdb.base/watchpoint.exp: delete watch w/condition and thread
+PASS: gdb.base/watchpoint.exp: rwatch disallowed when can-set-hw-watchpoints cleared
+PASS: gdb.base/watchpoint.exp: set breakpoint at marker1
+PASS: gdb.base/watchpoint.exp: set breakpoint at marker2
+PASS: gdb.base/watchpoint.exp: info break in watchpoint.exp
+PASS: gdb.base/watchpoint.exp: set watchpoint on ival3
+PASS: gdb.base/watchpoint.exp: watchpoint found in watchpoint/breakpoint table
+PASS: gdb.base/watchpoint.exp: disable watchpoint
+PASS: gdb.base/watchpoint.exp: disable watchpoint in test_simple_watchpoint
+PASS: gdb.base/watchpoint.exp: run to marker1 in test_simple_watchpoint
+PASS: gdb.base/watchpoint.exp: enable watchpoint
+PASS: gdb.base/watchpoint.exp: break func1
+PASS: gdb.base/watchpoint.exp: set $func1_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: continue to breakpoint at func1
+PASS: gdb.base/watchpoint.exp: watchpoint hit, first time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 1
+PASS: gdb.base/watchpoint.exp: delete $func1_breakpoint_number
+PASS: gdb.base/watchpoint.exp: watchpoint hit, second time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 2
+PASS: gdb.base/watchpoint.exp: watchpoint hit, third time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 3
+PASS: gdb.base/watchpoint.exp: watchpoint hit, fourth time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 4
+PASS: gdb.base/watchpoint.exp: watchpoint hit, fifth time
+PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 5
+PASS: gdb.base/watchpoint.exp: continue to marker2
+PASS: gdb.base/watchpoint.exp: watchpoint disabled
+PASS: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_simple_watchpoint
+PASS: gdb.base/watchpoint.exp: watchpoints found in watchpoint/breakpoint table
+PASS: gdb.base/watchpoint.exp: disable watchpoint in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: run to marker1 in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: watchpoint enabled
+PASS: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, first time
+PASS: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, second time
+PASS: gdb.base/watchpoint.exp: disable watchpoint #2 in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: watchpoint disabled in table
+PASS: gdb.base/watchpoint.exp: disabled watchpoint skipped
+PASS: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_disabling_watchpoints
+PASS: gdb.base/watchpoint.exp: watch ival2
+PASS: gdb.base/watchpoint.exp: break func2 if 0
+PASS: gdb.base/watchpoint.exp: p $func2_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: calling function with watchpoint enabled
+PASS: gdb.base/watchpoint.exp: finish from marker1
+PASS: gdb.base/watchpoint.exp: back at main from marker1
+PASS: gdb.base/watchpoint.exp: next to `for' in watchpoint.exp
+PASS: gdb.base/watchpoint.exp: until to ival1 assignment
+PASS: gdb.base/watchpoint.exp: until to ival3 assignment
+PASS: gdb.base/watchpoint.exp: until out of loop
+PASS: gdb.base/watchpoint.exp: step to ival2 assignment
+PASS: gdb.base/watchpoint.exp: watch ptr1->val
+PASS: gdb.base/watchpoint.exp: break marker5
+PASS: gdb.base/watchpoint.exp: Test complex watchpoint
+PASS: gdb.base/watchpoint.exp: did not trigger wrong watchpoint
+PASS: gdb.base/watchpoint.exp: disable in test_complex_watchpoint
+PASS: gdb.base/watchpoint.exp: break marker6
+PASS: gdb.base/watchpoint.exp: continue to marker6
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here
+PASS: gdb.base/watchpoint.exp: set local watch
+PASS: gdb.base/watchpoint.exp: trigger local watch
+PASS: gdb.base/watchpoint.exp: self-delete local watch
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here
+PASS: gdb.base/watchpoint.exp: set partially local watch
+PASS: gdb.base/watchpoint.exp: trigger1 partially local watch
+PASS: gdb.base/watchpoint.exp: trigger2 partially local watch
+PASS: gdb.base/watchpoint.exp: self-delete partially local watch
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here
+PASS: gdb.base/watchpoint.exp: set static local watch
+PASS: gdb.base/watchpoint.exp: trigger static local watch
+PASS: gdb.base/watchpoint.exp: continue after trigger static local watch
+PASS: gdb.base/watchpoint.exp: static local watch did not self-delete
+PASS: gdb.base/watchpoint.exp: tbreak recurser
+PASS: gdb.base/watchpoint.exp: cont
+PASS: gdb.base/watchpoint.exp: next past local_x initialization
+PASS: gdb.base/watchpoint.exp: set local watch in recursive call
+PASS: gdb.base/watchpoint.exp: trigger local watch in recursive call
+PASS: gdb.base/watchpoint.exp: self-delete local watch in recursive call
+PASS: gdb.base/watchpoint.exp: cont
+PASS: gdb.base/watchpoint.exp: tbreak recurser
+PASS: gdb.base/watchpoint.exp: cont
+PASS: gdb.base/watchpoint.exp: next past local_x initialization
+PASS: gdb.base/watchpoint.exp: set local watch in recursive call with explicit scope
+PASS: gdb.base/watchpoint.exp: trigger local watch with explicit scope in recursive call
+PASS: gdb.base/watchpoint.exp: self-delete local watch with explicit scope in recursive call (2)
+PASS: gdb.base/watchpoint.exp: disable in test_complex_watchpoint
+PASS: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_complex_watchpoint
+PASS: gdb.base/watchpoint.exp: watchpoint refused to insert on nonexistent struct member
+PASS: gdb.base/watchpoint.exp: watch global_ptr
+PASS: gdb.base/watchpoint.exp: watch *(int *) 0
+PASS: gdb.base/watchpoint.exp: watch -location *global_ptr
+PASS: gdb.base/watchpoint.exp: watch *global_ptr
+PASS: gdb.base/watchpoint.exp: set $global_ptr_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: global_ptr next
+PASS: gdb.base/watchpoint.exp: next over ptr init
+PASS: gdb.base/watchpoint.exp: next over buffer set
+PASS: gdb.base/watchpoint.exp: delete $global_ptr_breakpoint_number
+PASS: gdb.base/watchpoint.exp: watch **global_ptr_ptr
+PASS: gdb.base/watchpoint.exp: set $global_ptr_ptr_breakpoint_number = $bpnum
+PASS: gdb.base/watchpoint.exp: global_ptr_ptr next
+PASS: gdb.base/watchpoint.exp: next over global_ptr_ptr init
+PASS: gdb.base/watchpoint.exp: next over global_ptr_ptr buffer set
+PASS: gdb.base/watchpoint.exp: next over global_ptr_ptr pointer advance
+PASS: gdb.base/watchpoint.exp: delete $global_ptr_ptr_breakpoint_number
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: second x assignment
+PASS: gdb.base/watchpoint.exp: watch x
+PASS: gdb.base/watchpoint.exp: next after watch x
+PASS: gdb.base/watchpoint.exp: delete watch x
+PASS: gdb.base/watchpoint.exp: watch buf
+PASS: gdb.base/watchpoint.exp: watchpoint on buf hit
+PASS: gdb.base/watchpoint.exp: delete watch buf
+PASS: gdb.base/watchpoint.exp: number is constant
+PASS: gdb.base/watchpoint.exp: number with cast is constant
+PASS: gdb.base/watchpoint.exp: marker1 is constant
+PASS: gdb.base/watchpoint.exp: watch count + 6
+PASS: gdb.base/watchpoint.exp: delete watchpoint `count + 6'
+PASS: gdb.base/watchpoint.exp: watch 7 + count
+PASS: gdb.base/watchpoint.exp: delete watchpoint `7 + count'
+PASS: gdb.base/watchpoint.exp: watch $pc
+PASS: gdb.base/watchpoint.exp: disable watchpoint `$pc'
+PASS: gdb.base/watchpoint.exp: reenable watchpoint `$pc'
+PASS: gdb.base/watchpoint.exp: watchpoint `$pc' is enabled
+PASS: gdb.base/watchpoint.exp: delete watchpoint `$pc'
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func5 breakpoint here
+PASS: gdb.base/watchpoint.exp: watch -location .x
+PASS: gdb.base/watchpoint.exp: continue with watch -location
+PASS: gdb.base/watchpoint.exp: delete watch -location
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func6 breakpoint here
+PASS: gdb.base/watchpoint.exp: watch foo2
+PASS: gdb.base/watchpoint.exp: continue with watch foo2
+PASS: gdb.base/watchpoint.exp: delete watch foo2
+PASS: gdb.base/watchpoint.exp: continue to breakpoint: func7 breakpoint here
+PASS: gdb.base/watchpoint.exp: watch foo4
+PASS: gdb.base/watchpoint.exp: continue with watch foo4
+PASS: gdb.base/watchpoint.exp: delete watch foo4
+Running ./gdb.base/watchpoint-hw.exp ...
+Running ./gdb.base/watchpoint-hw-hit-once.exp ...
+Running ./gdb.base/watchpoints.exp ...
+PASS: gdb.base/watchpoints.exp: watchpoint hit, first time
+PASS: gdb.base/watchpoints.exp: watchpoint hit, first time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 1
+PASS: gdb.base/watchpoints.exp: watchpoint ival1 hit, second time
+PASS: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 2
+PASS: gdb.base/watchpoints.exp: watchpoint hit, second time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 2
+PASS: gdb.base/watchpoints.exp: watchpoint ival1 hit, third time
+PASS: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 3
+PASS: gdb.base/watchpoints.exp: watchpoint hit, third time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 3
+PASS: gdb.base/watchpoints.exp: watchpoint hit, fourth time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 4
+PASS: gdb.base/watchpoints.exp: watchpoint hit, fifth time
+PASS: gdb.base/watchpoints.exp: Watchpoint hit count is 5
+Running ./gdb.base/watchpoint-solib.exp ...
+PASS: gdb.base/watchpoint-solib.exp: set pending breakpoint
+PASS: gdb.base/watchpoint-solib.exp: continue to foo
+PASS: gdb.base/watchpoint-solib.exp: set watchpoint on g
+PASS: gdb.base/watchpoint-solib.exp: continue to watchpoint hit
+PASS: gdb.base/watchpoint-solib.exp: rerun to main
+PASS: gdb.base/watchpoint-solib.exp: continue to foo again
+PASS: gdb.base/watchpoint-solib.exp: continue to watchpoint hit again
+Running ./gdb.base/watch-read.exp ...
+Running ./gdb.base/watch_thread_num.exp ...
+Running ./gdb.base/watch-vfork.exp ...
+Running ./gdb.base/wchar.exp ...
+PASS: gdb.base/wchar.exp: print narrow
+PASS: gdb.base/wchar.exp: print single
+PASS: gdb.base/wchar.exp: print simple
+PASS: gdb.base/wchar.exp: print difficile
+PASS: gdb.base/wchar.exp: print simple[2]
+PASS: gdb.base/wchar.exp: print difficile[2]
+PASS: gdb.base/wchar.exp: print repeat
+PASS: gdb.base/wchar.exp: print repeat_p
+PASS: gdb.base/wchar.exp: set print null on
+PASS: gdb.base/wchar.exp: print repeat (print null on)
+PASS: gdb.base/wchar.exp: set print elements 3
+PASS: gdb.base/wchar.exp: print repeat (print elements 3)
+PASS: gdb.base/wchar.exp: print repeat_p (print elements 3)
+Running ./gdb.base/whatis.exp ...
+PASS: gdb.base/whatis.exp: whatis char
+PASS: gdb.base/whatis.exp: whatis signed char
+PASS: gdb.base/whatis.exp: whatis unsigned char
+PASS: gdb.base/whatis.exp: whatis short
+PASS: gdb.base/whatis.exp: whatis signed short
+PASS: gdb.base/whatis.exp: whatis unsigned short
+PASS: gdb.base/whatis.exp: whatis int
+PASS: gdb.base/whatis.exp: whatis signed int
+PASS: gdb.base/whatis.exp: whatis unsigned int
+PASS: gdb.base/whatis.exp: whatis long
+PASS: gdb.base/whatis.exp: whatis signed long
+PASS: gdb.base/whatis.exp: whatis unsigned long
+PASS: gdb.base/whatis.exp: whatis unsigned long long
+PASS: gdb.base/whatis.exp: whatis float
+PASS: gdb.base/whatis.exp: whatis double
+PASS: gdb.base/whatis.exp: whatis char array
+PASS: gdb.base/whatis.exp: whatis signed char array
+PASS: gdb.base/whatis.exp: whatis unsigned char array
+PASS: gdb.base/whatis.exp: whatis short array
+PASS: gdb.base/whatis.exp: whatis signed short array
+PASS: gdb.base/whatis.exp: whatis unsigned short array
+PASS: gdb.base/whatis.exp: whatis int array
+PASS: gdb.base/whatis.exp: whatis signed int array
+PASS: gdb.base/whatis.exp: whatis unsigned int array
+PASS: gdb.base/whatis.exp: whatis long array
+PASS: gdb.base/whatis.exp: whatis signed long array
+PASS: gdb.base/whatis.exp: whatis unsigned long array
+PASS: gdb.base/whatis.exp: whatis unsigned long array
+PASS: gdb.base/whatis.exp: whatis float array
+PASS: gdb.base/whatis.exp: whatis double array
+PASS: gdb.base/whatis.exp: whatis char pointer
+PASS: gdb.base/whatis.exp: whatis signed char pointer
+PASS: gdb.base/whatis.exp: whatis unsigned char pointer
+PASS: gdb.base/whatis.exp: whatis short pointer
+PASS: gdb.base/whatis.exp: whatis signed short pointer
+PASS: gdb.base/whatis.exp: whatis unsigned short pointer
+PASS: gdb.base/whatis.exp: whatis int pointer
+PASS: gdb.base/whatis.exp: whatis signed int pointer
+PASS: gdb.base/whatis.exp: whatis unsigned int pointer
+PASS: gdb.base/whatis.exp: whatis long pointer
+PASS: gdb.base/whatis.exp: whatis signed long pointer
+PASS: gdb.base/whatis.exp: whatis unsigned long pointer
+PASS: gdb.base/whatis.exp: whatis long long pointer
+PASS: gdb.base/whatis.exp: whatis signed long long pointer
+PASS: gdb.base/whatis.exp: whatis unsigned long long pointer
+PASS: gdb.base/whatis.exp: whatis float pointer
+PASS: gdb.base/whatis.exp: whatis double pointer
+PASS: gdb.base/whatis.exp: whatis named structure
+PASS: gdb.base/whatis.exp: whatis named structure using type name
+PASS: gdb.base/whatis.exp: whatis unnamed structure
+PASS: gdb.base/whatis.exp: whatis named union
+PASS: gdb.base/whatis.exp: whatis named union using type name
+PASS: gdb.base/whatis.exp: whatis unnamed union
+PASS: gdb.base/whatis.exp: whatis char function
+PASS: gdb.base/whatis.exp: whatis signed char function
+PASS: gdb.base/whatis.exp: whatis unsigned char function
+PASS: gdb.base/whatis.exp: whatis short function
+PASS: gdb.base/whatis.exp: whatis signed short function
+PASS: gdb.base/whatis.exp: whatis unsigned short function
+PASS: gdb.base/whatis.exp: whatis int function
+PASS: gdb.base/whatis.exp: whatis signed int function
+PASS: gdb.base/whatis.exp: whatis unsigned int function
+PASS: gdb.base/whatis.exp: whatis long function
+PASS: gdb.base/whatis.exp: whatis signed long function
+PASS: gdb.base/whatis.exp: whatis unsigned long function
+PASS: gdb.base/whatis.exp: whatis long long function
+PASS: gdb.base/whatis.exp: whatis signed long long function
+PASS: gdb.base/whatis.exp: whatis unsigned long long function
+PASS: gdb.base/whatis.exp: whatis float function
+PASS: gdb.base/whatis.exp: whatis double function
+PASS: gdb.base/whatis.exp: whatis complicated structure
+PASS: gdb.base/whatis.exp: whatis complicated union
+PASS: gdb.base/whatis.exp: whatis enumeration
+PASS: gdb.base/whatis.exp: whatis enumeration using type name
+PASS: gdb.base/whatis.exp: whatis outer structure
+PASS: gdb.base/whatis.exp: whatis outer structure member
+PASS: gdb.base/whatis.exp: whatis inner structure
+PASS: gdb.base/whatis.exp: whatis inner structure member
+PASS: gdb.base/whatis.exp: whatis inner union
+PASS: gdb.base/whatis.exp: whatis inner union member
+PASS: gdb.base/whatis.exp: whatis using typedef type name
+PASS: gdb.base/whatis.exp: whatis applied to variable defined by typedef
+PASS: gdb.base/whatis.exp: whatis applied to pointer to pointer to function
+PASS: gdb.base/whatis.exp: whatis applied to const pointer to pointer to function
+PASS: gdb.base/whatis.exp: whatis applied to pointer to const pointer to function
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function returning pointer to int
+PASS: gdb.base/whatis.exp: whatis applied to pointer to pointer to function returning pointer to int
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function returning pointer to array
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function taking int,int and returning int
+PASS: gdb.base/whatis.exp: whatis applied to pointer to function taking const int ptr and varargs and returning int
+PASS: gdb.base/whatis.exp: whatis applied to function with types trailing 'void'
+PASS: gdb.base/whatis.exp: whatis applied to function with 'void' parameter type
+Running ./gdb.base/whatis-exp.exp ...
+PASS: gdb.base/whatis-exp.exp: set variable x=14
+PASS: gdb.base/whatis-exp.exp: set variable y=2
+PASS: gdb.base/whatis-exp.exp: set variable z=2
+PASS: gdb.base/whatis-exp.exp: set variable w=3
+PASS: gdb.base/whatis-exp.exp: print value of x
+PASS: gdb.base/whatis-exp.exp: print value of y
+PASS: gdb.base/whatis-exp.exp: print value of z
+PASS: gdb.base/whatis-exp.exp: print value of w
+PASS: gdb.base/whatis-exp.exp: whatis value of x+y
+PASS: gdb.base/whatis-exp.exp: whatis value of x-y
+PASS: gdb.base/whatis-exp.exp: whatis value of x*y
+PASS: gdb.base/whatis-exp.exp: whatis value of x/y
+PASS: gdb.base/whatis-exp.exp: whatis value of x%y
+PASS: gdb.base/whatis-exp.exp: whatis value of x=y
+PASS: gdb.base/whatis-exp.exp: whatis value of x+=2
+PASS: gdb.base/whatis-exp.exp: whatis value of  ++x
+PASS: gdb.base/whatis-exp.exp: whatis value of  --x
+PASS: gdb.base/whatis-exp.exp: whatis value of  x++
+PASS: gdb.base/whatis-exp.exp: whatis value of  x--
+Running ./gdb.btrace/enable.exp ...
+Running ./gdb.btrace/function_call_history.exp ...
+Running ./gdb.btrace/instruction_history.exp ...
+Running ./gdb.cell/arch.exp ...
+Running ./gdb.cell/break.exp ...
+Running ./gdb.cell/bt.exp ...
+Running ./gdb.cell/core.exp ...
+Running ./gdb.cell/data.exp ...
+Running ./gdb.cell/dwarfaddr.exp ...
+Running ./gdb.cell/ea-cache.exp ...
+Running ./gdb.cell/ea-standalone.exp ...
+Running ./gdb.cell/ea-test.exp ...
+Running ./gdb.cell/fork.exp ...
+Running ./gdb.cell/f-regs.exp ...
+Running ./gdb.cell/gcore.exp ...
+Running ./gdb.cell/mem-access.exp ...
+Running ./gdb.cell/ptype.exp ...
+Running ./gdb.cell/registers.exp ...
+Running ./gdb.cell/sizeof.exp ...
+Running ./gdb.cell/solib.exp ...
+Running ./gdb.cell/solib-symbol.exp ...
+Running ./gdb.cp/abstract-origin.exp ...
+PASS: gdb.cp/abstract-origin.exp: continue to breakpoint: break-here
+PASS: gdb.cp/abstract-origin.exp: p problem
+Running ./gdb.cp/ambiguous.exp ...
+Running ./gdb.cp/annota2.exp ...
+Running ./gdb.cp/annota3.exp ...
+Running ./gdb.cp/anon-ns.exp ...
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::doit1(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::doit1(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::doit1(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::doit1(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::one(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::one(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::one(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::one(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::doit2(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::doit2(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::doit2(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::doit2(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::two(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::two(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::two(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::two(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::doit1(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::doit1(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::doit1(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::doit1(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::one(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::one(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::one(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::one(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::doit2(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::doit2(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::doit2(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::doit2(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::two(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::two(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::two(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::two(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(int)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::doit1(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::doit1(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::doit1(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::doit1(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::one(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::one(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::one(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::one(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::doit2(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::doit2(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::doit2(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::doit2(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::two(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::two(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::two(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::two(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::doit3(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::three(char *)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::one::doit(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::one::doit(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::one::doit(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::one::doit(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::two::doit(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::two::doit(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::two::doit(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::two::doit(void)'
+PASS: gdb.cp/anon-ns.exp: list (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)
+PASS: gdb.cp/anon-ns.exp: list '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)'
+PASS: gdb.cp/anon-ns.exp: break (anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)
+PASS: gdb.cp/anon-ns.exp: break '(anonymous namespace)::A::(anonymous namespace)::(anonymous namespace)::three::doit(void)'
+Running ./gdb.cp/anon-struct.exp ...
+FAIL: gdb.cp/anon-struct.exp: print type of t::t
+PASS: gdb.cp/anon-struct.exp: print type of X::t2
+FAIL: gdb.cp/anon-struct.exp: print type of X::t2::t2
+FAIL: gdb.cp/anon-struct.exp: print type of t3::~t3
+Running ./gdb.cp/anon-union.exp ...
+PASS: gdb.cp/anon-union.exp: set width 0
+PASS: gdb.cp/anon-union.exp: next 1
+PASS: gdb.cp/anon-union.exp: print foo 1
+PASS: gdb.cp/anon-union.exp: next 2
+PASS: gdb.cp/anon-union.exp: print foo 2
+PASS: gdb.cp/anon-union.exp: set var foo.cloth
+PASS: gdb.cp/anon-union.exp: print foo 3
+PASS: gdb.cp/anon-union.exp: next 3
+PASS: gdb.cp/anon-union.exp: print foo 4
+PASS: gdb.cp/anon-union.exp: set var foo.pebble
+PASS: gdb.cp/anon-union.exp: print foo 5
+PASS: gdb.cp/anon-union.exp: set var foo.qux
+PASS: gdb.cp/anon-union.exp: print foo 6
+PASS: gdb.cp/anon-union.exp: set var foo.mux
+PASS: gdb.cp/anon-union.exp: print foo 7
+PASS: gdb.cp/anon-union.exp: set var foo.x.rock
+PASS: gdb.cp/anon-union.exp: print foo 8
+PASS: gdb.cp/anon-union.exp: set var foo.x.rock2
+PASS: gdb.cp/anon-union.exp: print foo 9
+PASS: gdb.cp/anon-union.exp: next 4
+PASS: gdb.cp/anon-union.exp: print w 1
+PASS: gdb.cp/anon-union.exp: print z 1
+PASS: gdb.cp/anon-union.exp: next 5
+PASS: gdb.cp/anon-union.exp: print w 2
+PASS: gdb.cp/anon-union.exp: print z 2
+PASS: gdb.cp/anon-union.exp: set var z
+PASS: gdb.cp/anon-union.exp: print w 3
+PASS: gdb.cp/anon-union.exp: print z 3
+Running ./gdb.cp/arg-reference.exp ...
+PASS: gdb.cp/arg-reference.exp: No false reference
+Running ./gdb.cp/baseenum.exp ...
+PASS: gdb.cp/baseenum.exp: continue to breakpoint: breakpoint 1
+PASS: gdb.cp/baseenum.exp: Print enum constant X of class A
+PASS: gdb.cp/baseenum.exp: continue to breakpoint: breakpoint 2
+PASS: gdb.cp/baseenum.exp: Print enum constant X of class A in namespace N
+Running ./gdb.cp/bool.exp ...
+PASS: gdb.cp/bool.exp: print return_true()
+PASS: gdb.cp/bool.exp: print return_false()
+Running ./gdb.cp/breakpoint.exp ...
+PASS: gdb.cp/breakpoint.exp: continue to C1::Nested::foo
+PASS: gdb.cp/breakpoint.exp: conditional breakpoint in method
+PASS: gdb.cp/breakpoint.exp: conditional breakpoint in method 2
+PASS: gdb.cp/breakpoint.exp: continue to breakpoint
+PASS: gdb.cp/breakpoint.exp: check the member variable
+PASS: gdb.cp/breakpoint.exp: continue to breakpoint
+PASS: gdb.cp/breakpoint.exp: check the member variable
+Running ./gdb.cp/bs15503.exp ...
+PASS: gdb.cp/bs15503.exp: break StringTest<wchar_t>::testFunction
+PASS: gdb.cp/bs15503.exp: continue to StringTest<wchar_t>
+PASS: gdb.cp/bs15503.exp: continue to breakpoint: find position where blank needs to be inserted
+FAIL: gdb.cp/bs15503.exp: print s.length()
+FAIL: gdb.cp/bs15503.exp: print s[0]
+FAIL: gdb.cp/bs15503.exp: print s[s.length()-1]
+PASS: gdb.cp/bs15503.exp: print (const char *) s
+FAIL: gdb.cp/bs15503.exp: print (const char *) s.substr(0,4)
+FAIL: gdb.cp/bs15503.exp: print (const char *) (s=s.substr(0,4))
+Running ./gdb.cp/call-c.exp ...
+PASS: gdb.cp/call-c.exp: b 43
+PASS: gdb.cp/call-c.exp: print foo(1)
+PASS: gdb.cp/call-c.exp: continue to bp
+PASS: gdb.cp/call-c.exp: print rf->func()
+PASS: gdb.cp/call-c.exp: print handle->func()
+Running ./gdb.cp/casts.exp ...
+PASS: gdb.cp/casts.exp: cast base class pointer to derived class pointer
+PASS: gdb.cp/casts.exp: let compiler cast base class pointer to derived class pointer
+PASS: gdb.cp/casts.exp: cast derived class pointer to base class pointer
+PASS: gdb.cp/casts.exp: cast derived class reference to base class reference
+PASS: gdb.cp/casts.exp: cast base class reference to derived class reference
+PASS: gdb.cp/casts.exp: let compiler cast base class reference to derived class reference
+PASS: gdb.cp/casts.exp: basic test of const_cast
+PASS: gdb.cp/casts.exp: const_cast of 0
+PASS: gdb.cp/casts.exp: basic test of static_cast
+PASS: gdb.cp/casts.exp: static_cast to reference type
+PASS: gdb.cp/casts.exp: basic test of reinterpret_cast
+PASS: gdb.cp/casts.exp: test invalid reinterpret_cast
+PASS: gdb.cp/casts.exp: reinterpret_cast to reference type
+PASS: gdb.cp/casts.exp: whatis decltype(5)
+PASS: gdb.cp/casts.exp: old-style cast using __typeof__
+PASS: gdb.cp/casts.exp: static_cast using __typeof__
+PASS: gdb.cp/casts.exp: reinterpret_cast using __typeof__
+PASS: gdb.cp/casts.exp: old-style cast using __typeof
+PASS: gdb.cp/casts.exp: static_cast using __typeof
+PASS: gdb.cp/casts.exp: reinterpret_cast using __typeof
+PASS: gdb.cp/casts.exp: old-style cast using __decltype
+PASS: gdb.cp/casts.exp: static_cast using __decltype
+PASS: gdb.cp/casts.exp: reinterpret_cast using __decltype
+PASS: gdb.cp/casts.exp: whatis __decltype(*a)
+PASS: gdb.cp/casts.exp: invalid dynamic_cast
+PASS: gdb.cp/casts.exp: dynamic_cast of 0 to void*
+PASS: gdb.cp/casts.exp: dynamic_cast simple upcast
+PASS: gdb.cp/casts.exp: dynamic_cast upcast to unique base
+PASS: gdb.cp/casts.exp: dynamic_cast simple upcast to reference
+PASS: gdb.cp/casts.exp: dynamic_cast simple downcast
+PASS: gdb.cp/casts.exp: dynamic_cast simple downcast to intermediate class
+PASS: gdb.cp/casts.exp: dynamic_cast to non-existing base
+PASS: gdb.cp/casts.exp: dynamic_cast to reference to non-existing base
+PASS: gdb.cp/casts.exp: dynamic_cast unique downcast
+PASS: gdb.cp/casts.exp: dynamic_cast to sibling
+Running ./gdb.cp/class2.exp ...
+PASS: gdb.cp/class2.exp: set print object off
+PASS: gdb.cp/class2.exp: print alpha at marker return 0
+PASS: gdb.cp/class2.exp: print beta at marker return 0
+PASS: gdb.cp/class2.exp: print * aap at marker return 0
+PASS: gdb.cp/class2.exp: print * bbp at marker return 0
+PASS: gdb.cp/class2.exp: print * abp at marker return 0, s-p-o off
+PASS: gdb.cp/class2.exp: print * (B *) abp at marker return 0
+PASS: gdb.cp/class2.exp: print object with no data fields
+PASS: gdb.cp/class2.exp: set print object on
+PASS: gdb.cp/class2.exp: p acp
+PASS: gdb.cp/class2.exp: p acp->c1
+PASS: gdb.cp/class2.exp: p acp->c2
+Running ./gdb.cp/classes.exp ...
+PASS: gdb.cp/classes.exp: ptype struct default_public_struct
+PASS: gdb.cp/classes.exp: ptype struct explicit_public_struct
+PASS: gdb.cp/classes.exp: ptype struct protected_struct
+PASS: gdb.cp/classes.exp: ptype struct private_struct
+PASS: gdb.cp/classes.exp: ptype struct mixed_protection_struct
+PASS: gdb.cp/classes.exp: ptype class public_class
+PASS: gdb.cp/classes.exp: ptype class protected_class
+PASS: gdb.cp/classes.exp: ptype class default_private_class
+PASS: gdb.cp/classes.exp: ptype class explicit_private_class
+PASS: gdb.cp/classes.exp: ptype class mixed_protection_class
+PASS: gdb.cp/classes.exp: ptype class A
+PASS: gdb.cp/classes.exp: ptype class B
+PASS: gdb.cp/classes.exp: ptype class C
+PASS: gdb.cp/classes.exp: ptype class D
+PASS: gdb.cp/classes.exp: ptype class E
+PASS: gdb.cp/classes.exp: ptype class Static
+PASS: gdb.cp/classes.exp: ptype class vA
+PASS: gdb.cp/classes.exp: ptype class vB
+PASS: gdb.cp/classes.exp: ptype class vC
+PASS: gdb.cp/classes.exp: ptype class vD
+PASS: gdb.cp/classes.exp: ptype class vE
+PASS: gdb.cp/classes.exp: ptype class Base1
+PASS: gdb.cp/classes.exp: ptype class Foo
+PASS: gdb.cp/classes.exp: ptype class Bar
+PASS: gdb.cp/classes.exp: print g_A.a
+PASS: gdb.cp/classes.exp: print g_A.x
+PASS: gdb.cp/classes.exp: print g_B.b
+PASS: gdb.cp/classes.exp: print g_B.x
+PASS: gdb.cp/classes.exp: print g_C.c
+PASS: gdb.cp/classes.exp: print g_C.x
+PASS: gdb.cp/classes.exp: print g_D.d
+PASS: gdb.cp/classes.exp: print g_D.x
+PASS: gdb.cp/classes.exp: print g_E.e
+PASS: gdb.cp/classes.exp: print g_E.x
+PASS: gdb.cp/classes.exp: print g_A.b
+PASS: gdb.cp/classes.exp: print g_B.c
+PASS: gdb.cp/classes.exp: print g_B.d
+PASS: gdb.cp/classes.exp: print g_C.b
+PASS: gdb.cp/classes.exp: print g_C.d
+PASS: gdb.cp/classes.exp: print g_D.e
+PASS: gdb.cp/classes.exp: print g_A.y
+PASS: gdb.cp/classes.exp: print g_B.z
+PASS: gdb.cp/classes.exp: print g_C.q
+PASS: gdb.cp/classes.exp: print g_D.p
+PASS: gdb.cp/classes.exp: call class_param.Aptr_a (&g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aptr_x (&g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aptr_a (&g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aptr_x (&g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aref_a (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aref_x (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aref_a (g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aref_x (g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aval_a (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aval_x (g_A)
+PASS: gdb.cp/classes.exp: call class_param.Aval_a (g_B)
+PASS: gdb.cp/classes.exp: call class_param.Aval_x (g_B)
+PASS: gdb.cp/classes.exp: unrelated class *param
+PASS: gdb.cp/classes.exp: unrelated class &param
+PASS: gdb.cp/classes.exp: unrelated class param
+PASS: gdb.cp/classes.exp: continue to enums2(\(\)|)
+PASS: gdb.cp/classes.exp: print obj_with_enum (1)
+PASS: gdb.cp/classes.exp: next
+PASS: gdb.cp/classes.exp: print obj_with_enum (2)
+PASS: gdb.cp/classes.exp: print obj_with_enum.priv_enum
+PASS: gdb.cp/classes.exp: ptype obj_with_enum.priv_enum
+PASS: gdb.cp/classes.exp: ptype obj_with_enum
+PASS: gdb.cp/classes.exp: print (ClassWithEnum::PrivEnum) 42
+PASS: gdb.cp/classes.exp: print ('ClassWithEnum::PrivEnum') 42
+PASS: gdb.cp/classes.exp: print Bar::z
+PASS: gdb.cp/classes.exp: print &Foo::x
+PASS: gdb.cp/classes.exp: print (int)&Foo::x
+PASS: gdb.cp/classes.exp: print (int)&Bar::y == 2*sizeof(int)
+PASS: gdb.cp/classes.exp: ptype Bar::z
+PASS: gdb.cp/classes.exp: ptype &Bar::z
+PASS: gdb.cp/classes.exp: print (int)pmi == sizeof(int)
+PASS: gdb.cp/classes.exp: print Foo::st
+PASS: gdb.cp/classes.exp: print bar.st
+PASS: gdb.cp/classes.exp: print &foo.st
+PASS: gdb.cp/classes.exp: print &Bar::st
+PASS: gdb.cp/classes.exp: print *$
+PASS: gdb.cp/classes.exp: set print static-members off
+PASS: gdb.cp/classes.exp: print csi without static members
+PASS: gdb.cp/classes.exp: print cnsi without static members
+PASS: gdb.cp/classes.exp: set print static-members on
+PASS: gdb.cp/classes.exp: print csi with static members
+PASS: gdb.cp/classes.exp: print cnsi with static members
+PASS: gdb.cp/classes.exp: finish from marker_reg1
+PASS: gdb.cp/classes.exp: calling method for small class
+FAIL: gdb.cp/classes.exp: print ctor of typedef class
+FAIL: gdb.cp/classes.exp: print dtor of typedef class
+PASS: gdb.cp/classes.exp: list ByAnyOtherName::times
+Running ./gdb.cp/cmpd-minsyms.exp ...
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at 'GDB<int>::a() const'
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at 'GDB<int>::b() volatile'
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at 'GDB<int>::c() const volatile'
+PASS: gdb.cp/cmpd-minsyms.exp: set language c++
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::operator ==
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::operator==(GDB<int> const&)
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<char>::harder(char)
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::harder(int)
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at "int GDB<char>::even_harder<int>(char)"
+PASS: gdb.cp/cmpd-minsyms.exp: setting breakpoint at GDB<int>::simple()
+Running ./gdb.cp/converts.exp ...
+PASS: gdb.cp/converts.exp: continue to breakpoint: end of main
+PASS: gdb.cp/converts.exp: typedef to another typedef
+PASS: gdb.cp/converts.exp: typedef to typedef of a typedef
+PASS: gdb.cp/converts.exp: Pointer-to-pointer-to-pointer derived to Pointer-to-pointer-to-pointer base.
+PASS: gdb.cp/converts.exp: pointer to pointer
+PASS: gdb.cp/converts.exp: pointer to array
+PASS: gdb.cp/converts.exp: pointer to pointer of wrong type
+PASS: gdb.cp/converts.exp: pointer to pointer of wrong type
+PASS: gdb.cp/converts.exp: pointer to ancestor pointer
+PASS: gdb.cp/converts.exp: pointer to void pointer
+PASS: gdb.cp/converts.exp: pointer to void pointer pointer
+PASS: gdb.cp/converts.exp: pointer to boolean
+PASS: gdb.cp/converts.exp: pointer to long int
+PASS: gdb.cp/converts.exp: pointer pointer to void pointer
+PASS: gdb.cp/converts.exp: pointer pointer to pointer pointer
+PASS: gdb.cp/converts.exp: pointer pointer to array of arrays
+PASS: gdb.cp/converts.exp: pointer pointer to array of pointers
+PASS: gdb.cp/converts.exp: pointer pointer to array of wrong pointers
+PASS: gdb.cp/converts.exp: check all parameters for badness
+PASS: gdb.cp/converts.exp: null pointer conversion
+PASS: gdb.cp/converts.exp: p foo3_1 (0, 1)
+PASS: gdb.cp/converts.exp: p foo3_1 (0, (const char**) 1)
+PASS: gdb.cp/converts.exp: p foo3_2 (0, 0)
+PASS: gdb.cp/converts.exp: p foo3_2 (0, (char const**) 0)
+PASS: gdb.cp/converts.exp: p foo1_7(0)
+PASS: gdb.cp/converts.exp: p foo1_7(integer)
+PASS: gdb.cp/converts.exp: p foo1_7(long_int)
+PASS: gdb.cp/converts.exp: p foo1_7(*a)
+PASS: gdb.cp/converts.exp: p foo1_7(MY_A)
+PASS: gdb.cp/converts.exp: p foo1_7(&foo1_7)
+PASS: gdb.cp/converts.exp: p foo1_7(&A::member_)
+PASS: gdb.cp/converts.exp: p foo1_7(a)
+PASS: gdb.cp/converts.exp: p foo1_7(fp)
+PASS: gdb.cp/converts.exp: p foo1_7(dp)
+PASS: gdb.cp/converts.exp: p foo1_7(-1.23)
+PASS: gdb.cp/converts.exp: p foo1_7(ta)
+PASS: gdb.cp/converts.exp: show check type
+PASS: gdb.cp/converts.exp: p foo1_type_check (123)
+PASS: gdb.cp/converts.exp: p foo2_type_check (0, 1)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 0)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 0, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 0, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 1)
+PASS: gdb.cp/converts.exp: set check type off
+PASS: gdb.cp/converts.exp: show check type
+PASS: gdb.cp/converts.exp: p foo1_type_check (123)
+PASS: gdb.cp/converts.exp: p foo2_type_check (0, 1)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 0)
+PASS: gdb.cp/converts.exp: p foo2_type_check (1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 0, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 0, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (0, 1, 1)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 0)
+PASS: gdb.cp/converts.exp: p foo3_type_check (1, 1, 1)
+PASS: gdb.cp/converts.exp: p foo3_2 (1,1)
+Running ./gdb.cp/cpcompletion.exp ...
+PASS: gdb.cp/cpcompletion.exp: complete class methods
+PASS: gdb.cp/cpcompletion.exp: complete class methods beginning with F
+PASS: gdb.cp/cpcompletion.exp: complete p foo1.g
+PASS: gdb.cp/cpcompletion.exp: complete p foo1.base
+PASS: gdb.cp/cpcompletion.exp: complete p foo1.Fo
+PASS: gdb.cp/cpcompletion.exp: complete p a.g
+Running ./gdb.cp/cpexprs.exp ...
+PASS: gdb.cp/cpexprs.exp: set listsize 1
+PASS: gdb.cp/cpexprs.exp: print base1::a_function
+FAIL: gdb.cp/cpexprs.exp: print base1::base1(int)
+FAIL: gdb.cp/cpexprs.exp: print base1::base1(void)
+PASS: gdb.cp/cpexprs.exp: print base2::a_function
+FAIL: gdb.cp/cpexprs.exp: print base2::base2
+FAIL: gdb.cp/cpexprs.exp: print base::base(int)
+FAIL: gdb.cp/cpexprs.exp: print base::base(void)
+PASS: gdb.cp/cpexprs.exp: print base::operator char*
+PASS: gdb.cp/cpexprs.exp: print base::operator delete
+PASS: gdb.cp/cpexprs.exp: print base::operator delete[]
+PASS: gdb.cp/cpexprs.exp: print base::operator fluff*
+PASS: gdb.cp/cpexprs.exp: print base::operator fluff**
+PASS: gdb.cp/cpexprs.exp: print base::operator int
+PASS: gdb.cp/cpexprs.exp: print base::operator new
+PASS: gdb.cp/cpexprs.exp: print base::operator new[]
+PASS: gdb.cp/cpexprs.exp: print base::operator!
+PASS: gdb.cp/cpexprs.exp: print base::operator!=
+PASS: gdb.cp/cpexprs.exp: print base::operator%
+PASS: gdb.cp/cpexprs.exp: print base::operator%=
+PASS: gdb.cp/cpexprs.exp: print base::operator&
+PASS: gdb.cp/cpexprs.exp: print base::operator&&
+PASS: gdb.cp/cpexprs.exp: print base::operator&=
+PASS: gdb.cp/cpexprs.exp: print base::operator()
+PASS: gdb.cp/cpexprs.exp: print base::operator*
+PASS: gdb.cp/cpexprs.exp: print base::operator*=
+PASS: gdb.cp/cpexprs.exp: print base::operator+
+PASS: gdb.cp/cpexprs.exp: print base::operator++
+PASS: gdb.cp/cpexprs.exp: print base::operator+=
+PASS: gdb.cp/cpexprs.exp: print base::operator-
+PASS: gdb.cp/cpexprs.exp: print base::operator--
+PASS: gdb.cp/cpexprs.exp: print base::operator-=
+PASS: gdb.cp/cpexprs.exp: print base::operator/
+PASS: gdb.cp/cpexprs.exp: print base::operator/=
+PASS: gdb.cp/cpexprs.exp: print base::operator<
+PASS: gdb.cp/cpexprs.exp: print base::operator<<
+PASS: gdb.cp/cpexprs.exp: print base::operator<<=
+PASS: gdb.cp/cpexprs.exp: print base::operator<=
+PASS: gdb.cp/cpexprs.exp: print base::operator=
+PASS: gdb.cp/cpexprs.exp: print base::operator==
+PASS: gdb.cp/cpexprs.exp: print base::operator>
+PASS: gdb.cp/cpexprs.exp: print base::operator>=
+PASS: gdb.cp/cpexprs.exp: print base::operator>>
+PASS: gdb.cp/cpexprs.exp: print base::operator>>=
+PASS: gdb.cp/cpexprs.exp: print base::operator[]
+PASS: gdb.cp/cpexprs.exp: print base::operator^
+PASS: gdb.cp/cpexprs.exp: print base::operator^=
+PASS: gdb.cp/cpexprs.exp: print base::operator|
+PASS: gdb.cp/cpexprs.exp: print base::operator|=
+PASS: gdb.cp/cpexprs.exp: print base::operator||
+PASS: gdb.cp/cpexprs.exp: print base::operator~
+PASS: gdb.cp/cpexprs.exp: print base::overload(base&) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(char*) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(int) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(long) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(short) const
+PASS: gdb.cp/cpexprs.exp: print base::overload(void) const
+FAIL: gdb.cp/cpexprs.exp: print base::~base
+PASS: gdb.cp/cpexprs.exp: print derived::a_function
+FAIL: gdb.cp/cpexprs.exp: print derived::derived
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, char, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, int, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, long, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, int, short, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, char>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: print flubber<int, int, short, short, int>
+PASS: gdb.cp/cpexprs.exp: print flubber<long, short, long, short, long>
+PASS: gdb.cp/cpexprs.exp: print flubber<short, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: print policy1::function
+FAIL: gdb.cp/cpexprs.exp: print policy1::policy
+PASS: gdb.cp/cpexprs.exp: print policy2::function
+FAIL: gdb.cp/cpexprs.exp: print policy2::policy
+PASS: gdb.cp/cpexprs.exp: print policy3::function
+FAIL: gdb.cp/cpexprs.exp: print policy3::policy
+PASS: gdb.cp/cpexprs.exp: print policy4::function
+FAIL: gdb.cp/cpexprs.exp: print policy4::policy
+PASS: gdb.cp/cpexprs.exp: print policyd1::function
+FAIL: gdb.cp/cpexprs.exp: print policyd1::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd1::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd2::function
+FAIL: gdb.cp/cpexprs.exp: print policyd2::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd2::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd3::function
+FAIL: gdb.cp/cpexprs.exp: print policyd3::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd3::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd4::function
+FAIL: gdb.cp/cpexprs.exp: print policyd4::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd4::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd5::function
+FAIL: gdb.cp/cpexprs.exp: print policyd5::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd5::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<base, operation_1<base> >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<base, operation_1<base> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<base, operation_1<base> >::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<char, operation_1<char> >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<char, operation_1<char> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<char, operation_1<char> >::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<int, operation_1<int> >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<int, operation_1<int> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<int, operation_1<int> >::~policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<long, operation_1<long> >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<long, operation_1<long> >::~policyd
+PASS: gdb.cp/cpexprs.exp: print policyd<tclass<int>, operation_1<tclass<int> > >::function
+FAIL: gdb.cp/cpexprs.exp: print policyd<tclass<int>, operation_1<tclass<int> > >::policyd
+FAIL: gdb.cp/cpexprs.exp: print policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
+PASS: gdb.cp/cpexprs.exp: print tclass<base>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<char>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<int>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<long>::do_something
+PASS: gdb.cp/cpexprs.exp: print tclass<short>::do_something
+PASS: gdb.cp/cpexprs.exp: print test_function
+PASS: gdb.cp/cpexprs.exp: list base1::a_function
+PASS: gdb.cp/cpexprs.exp: list base1::base1(int)
+PASS: gdb.cp/cpexprs.exp: list base1::base1(void)
+PASS: gdb.cp/cpexprs.exp: list base2::a_function
+PASS: gdb.cp/cpexprs.exp: list base2::base2
+PASS: gdb.cp/cpexprs.exp: list base::base(int)
+PASS: gdb.cp/cpexprs.exp: list base::base(void)
+PASS: gdb.cp/cpexprs.exp: list base::operator char*
+PASS: gdb.cp/cpexprs.exp: list base::operator delete
+PASS: gdb.cp/cpexprs.exp: list base::operator delete[]
+PASS: gdb.cp/cpexprs.exp: list base::operator fluff*
+PASS: gdb.cp/cpexprs.exp: list base::operator fluff**
+PASS: gdb.cp/cpexprs.exp: list base::operator int
+PASS: gdb.cp/cpexprs.exp: list base::operator new
+PASS: gdb.cp/cpexprs.exp: list base::operator new[]
+PASS: gdb.cp/cpexprs.exp: list base::operator!
+PASS: gdb.cp/cpexprs.exp: list base::operator!=
+PASS: gdb.cp/cpexprs.exp: list base::operator%
+PASS: gdb.cp/cpexprs.exp: list base::operator%=
+PASS: gdb.cp/cpexprs.exp: list base::operator&
+PASS: gdb.cp/cpexprs.exp: list base::operator&&
+PASS: gdb.cp/cpexprs.exp: list base::operator&=
+PASS: gdb.cp/cpexprs.exp: list base::operator()
+PASS: gdb.cp/cpexprs.exp: list base::operator*
+PASS: gdb.cp/cpexprs.exp: list base::operator*=
+PASS: gdb.cp/cpexprs.exp: list base::operator+
+PASS: gdb.cp/cpexprs.exp: list base::operator++
+PASS: gdb.cp/cpexprs.exp: list base::operator+=
+PASS: gdb.cp/cpexprs.exp: list base::operator-
+PASS: gdb.cp/cpexprs.exp: list base::operator--
+PASS: gdb.cp/cpexprs.exp: list base::operator-=
+PASS: gdb.cp/cpexprs.exp: list base::operator/
+PASS: gdb.cp/cpexprs.exp: list base::operator/=
+PASS: gdb.cp/cpexprs.exp: list base::operator<
+PASS: gdb.cp/cpexprs.exp: list base::operator<<
+PASS: gdb.cp/cpexprs.exp: list base::operator<<=
+PASS: gdb.cp/cpexprs.exp: list base::operator<=
+PASS: gdb.cp/cpexprs.exp: list base::operator=
+PASS: gdb.cp/cpexprs.exp: list base::operator==
+PASS: gdb.cp/cpexprs.exp: list base::operator>
+PASS: gdb.cp/cpexprs.exp: list base::operator>=
+PASS: gdb.cp/cpexprs.exp: list base::operator>>
+PASS: gdb.cp/cpexprs.exp: list base::operator>>=
+PASS: gdb.cp/cpexprs.exp: list base::operator[]
+PASS: gdb.cp/cpexprs.exp: list base::operator^
+PASS: gdb.cp/cpexprs.exp: list base::operator^=
+PASS: gdb.cp/cpexprs.exp: list base::operator|
+PASS: gdb.cp/cpexprs.exp: list base::operator|=
+PASS: gdb.cp/cpexprs.exp: list base::operator||
+PASS: gdb.cp/cpexprs.exp: list base::operator~
+PASS: gdb.cp/cpexprs.exp: list base::overload(base&) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(char*) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(int) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(long) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(short) const
+PASS: gdb.cp/cpexprs.exp: list base::overload(void) const
+PASS: gdb.cp/cpexprs.exp: list base::~base
+PASS: gdb.cp/cpexprs.exp: list derived::a_function
+PASS: gdb.cp/cpexprs.exp: list derived::derived
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, char, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, int, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, long, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, int, short, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, char>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: list flubber<int, int, short, short, int>
+PASS: gdb.cp/cpexprs.exp: list flubber<long, short, long, short, long>
+PASS: gdb.cp/cpexprs.exp: list flubber<short, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: list policy1::function
+PASS: gdb.cp/cpexprs.exp: list policy1::policy
+PASS: gdb.cp/cpexprs.exp: list policy2::function
+PASS: gdb.cp/cpexprs.exp: list policy2::policy
+PASS: gdb.cp/cpexprs.exp: list policy3::function
+PASS: gdb.cp/cpexprs.exp: list policy3::policy
+PASS: gdb.cp/cpexprs.exp: list policy4::function
+PASS: gdb.cp/cpexprs.exp: list policy4::policy
+PASS: gdb.cp/cpexprs.exp: list policyd1::function
+PASS: gdb.cp/cpexprs.exp: list policyd1::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd1::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd2::function
+PASS: gdb.cp/cpexprs.exp: list policyd2::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd2::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd3::function
+PASS: gdb.cp/cpexprs.exp: list policyd3::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd3::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd4::function
+PASS: gdb.cp/cpexprs.exp: list policyd4::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd4::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd5::function
+PASS: gdb.cp/cpexprs.exp: list policyd5::policyd
+FAIL: gdb.cp/cpexprs.exp: list policyd5::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<base, operation_1<base> >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<base, operation_1<base> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<base, operation_1<base> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<char, operation_1<char> >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<char, operation_1<char> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<char, operation_1<char> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<int, operation_1<int> >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<int, operation_1<int> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<int, operation_1<int> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<long, operation_1<long> >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<long, operation_1<long> >::~policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<tclass<int>, operation_1<tclass<int> > >::function
+PASS: gdb.cp/cpexprs.exp: list policyd<tclass<int>, operation_1<tclass<int> > >::policyd
+PASS: gdb.cp/cpexprs.exp: list policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
+PASS: gdb.cp/cpexprs.exp: list tclass<base>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<char>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<int>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<long>::do_something
+PASS: gdb.cp/cpexprs.exp: list tclass<short>::do_something
+PASS: gdb.cp/cpexprs.exp: list test_function
+PASS: gdb.cp/cpexprs.exp: continue to base1::a_function
+PASS: gdb.cp/cpexprs.exp: continue to base1::base1(int)
+PASS: gdb.cp/cpexprs.exp: continue to base1::base1(void)
+PASS: gdb.cp/cpexprs.exp: continue to base2::a_function
+PASS: gdb.cp/cpexprs.exp: continue to base2::base2
+PASS: gdb.cp/cpexprs.exp: continue to base::base(int)
+PASS: gdb.cp/cpexprs.exp: continue to base::base(void)
+PASS: gdb.cp/cpexprs.exp: continue to base::operator char*
+PASS: gdb.cp/cpexprs.exp: continue to base::operator delete
+PASS: gdb.cp/cpexprs.exp: continue to base::operator delete[]
+PASS: gdb.cp/cpexprs.exp: continue to base::operator fluff*
+PASS: gdb.cp/cpexprs.exp: continue to base::operator fluff**
+PASS: gdb.cp/cpexprs.exp: continue to base::operator int
+PASS: gdb.cp/cpexprs.exp: continue to base::operator new
+PASS: gdb.cp/cpexprs.exp: continue to base::operator new[]
+PASS: gdb.cp/cpexprs.exp: continue to base::operator!
+PASS: gdb.cp/cpexprs.exp: continue to base::operator!=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator%
+PASS: gdb.cp/cpexprs.exp: continue to base::operator%=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator&
+PASS: gdb.cp/cpexprs.exp: continue to base::operator&&
+PASS: gdb.cp/cpexprs.exp: continue to base::operator&=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator()
+PASS: gdb.cp/cpexprs.exp: continue to base::operator*
+PASS: gdb.cp/cpexprs.exp: continue to base::operator*=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator+
+PASS: gdb.cp/cpexprs.exp: continue to base::operator++
+PASS: gdb.cp/cpexprs.exp: continue to base::operator+=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator-
+PASS: gdb.cp/cpexprs.exp: continue to base::operator--
+PASS: gdb.cp/cpexprs.exp: continue to base::operator-=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator/
+PASS: gdb.cp/cpexprs.exp: continue to base::operator/=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<<
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<<=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator<=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator==
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>>
+PASS: gdb.cp/cpexprs.exp: continue to base::operator>>=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator[]
+PASS: gdb.cp/cpexprs.exp: continue to base::operator^
+PASS: gdb.cp/cpexprs.exp: continue to base::operator^=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator|
+PASS: gdb.cp/cpexprs.exp: continue to base::operator|=
+PASS: gdb.cp/cpexprs.exp: continue to base::operator||
+PASS: gdb.cp/cpexprs.exp: continue to base::operator~
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(base&) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(char*) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(int) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(long) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(short) const
+PASS: gdb.cp/cpexprs.exp: continue to base::overload(void) const
+PASS: gdb.cp/cpexprs.exp: continue to base::~base
+PASS: gdb.cp/cpexprs.exp: continue to derived::a_function
+PASS: gdb.cp/cpexprs.exp: continue to derived::derived
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, char, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, int, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, long, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, int, short, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, char>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<int, int, short, short, int>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<long, short, long, short, long>
+PASS: gdb.cp/cpexprs.exp: continue to flubber<short, int, short, int, short>
+PASS: gdb.cp/cpexprs.exp: continue to policy1::function
+PASS: gdb.cp/cpexprs.exp: continue to policy1::policy
+PASS: gdb.cp/cpexprs.exp: continue to policy2::function
+PASS: gdb.cp/cpexprs.exp: continue to policy2::policy
+PASS: gdb.cp/cpexprs.exp: continue to policy3::function
+PASS: gdb.cp/cpexprs.exp: continue to policy3::policy
+PASS: gdb.cp/cpexprs.exp: continue to policy4::function
+PASS: gdb.cp/cpexprs.exp: continue to policy4::policy
+PASS: gdb.cp/cpexprs.exp: continue to policyd1::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd1::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd1::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd1::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd2::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd2::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd2::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd2::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd3::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd3::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd3::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd3::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd4::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd4::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd4::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd4::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd5::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd5::policyd
+FAIL: gdb.cp/cpexprs.exp: setting breakpoint at policyd5::~policyd
+FAIL: gdb.cp/cpexprs.exp: continue to policyd5::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<base, operation_1<base> >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<base, operation_1<base> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<base, operation_1<base> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<char, operation_1<char> >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<char, operation_1<char> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<char, operation_1<char> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<int, operation_1<int> >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<int, operation_1<int> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<int, operation_1<int> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<long, operation_1<long> >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<long, operation_1<long> >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<tclass<int>, operation_1<tclass<int> > >::function
+PASS: gdb.cp/cpexprs.exp: continue to policyd<tclass<int>, operation_1<tclass<int> > >::policyd
+PASS: gdb.cp/cpexprs.exp: continue to policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
+PASS: gdb.cp/cpexprs.exp: continue to tclass<base>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<char>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<int>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<long>::do_something
+PASS: gdb.cp/cpexprs.exp: continue to tclass<short>::do_something
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int)'
+PASS: gdb.cp/cpexprs.exp: p CV::m(int)
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int) const'
+KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) const (PRMS: c++/14186)
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int) volatile'
+KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) volatile (PRMS: c++/14186)
+PASS: gdb.cp/cpexprs.exp: p 'CV::m(int) const volatile'
+KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) const volatile (PRMS: c++/14186)
+PASS: gdb.cp/cpexprs.exp: p CV_f(int)
+PASS: gdb.cp/cpexprs.exp: p CV_f(CV::t)
+PASS: gdb.cp/cpexprs.exp: p CV_f(CV::i)
+Running ./gdb.cp/cplabel.exp ...
+PASS: gdb.cp/cplabel.exp: break foo::bar:to_the_top
+PASS: gdb.cp/cplabel.exp: break foo::bar:get_out_of_here
+PASS: gdb.cp/cplabel.exp: break foo::baz:to_the_top
+PASS: gdb.cp/cplabel.exp: break foo::baz:get_out_of_here
+Running ./gdb.cp/cplusfuncs.exp ...
+PASS: gdb.cp/cplusfuncs.exp: set width 0
+PASS: gdb.cp/cplusfuncs.exp: set language c++
+PASS: gdb.cp/cplusfuncs.exp: detect dm_operator_comma
+PASS: gdb.cp/cplusfuncs.exp: detect dm_operator_char_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_char_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_foo_ref
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_int_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_long_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_unsigned_int
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_void
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_void_star
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_short
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_unsigned_short
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_long
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_unsigned_long
+PASS: gdb.cp/cplusfuncs.exp: detect dm_type_typedef
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(void)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(char)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(signed char)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned char)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(short)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned short)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(long)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(unsigned long)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(float)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overload1arg(double)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &'overloadargs(int, int, int, int, int, int, int, int, int, int, int)'
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator*(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator%(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator-(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>>(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator!=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator|(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator&&(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator!(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator++(int)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator+=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator*=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator%=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator>>=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator|=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator,(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator/(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator+(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<<(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator==(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator&(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator^(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator||(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator~(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator--(int)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator->(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator-=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator/=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator<<=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator&=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator^=(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator->*(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator[](foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator()(foo&)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator new
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator new[]
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator delete(void*)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator delete(void*)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator int(void)
+PASS: gdb.cp/cplusfuncs.exp: print &foo::operator char*(void)
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc1
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc2
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc3
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc4
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc5
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc6
+PASS: gdb.cp/cplusfuncs.exp: print &hairyfunc7
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator\*("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator%("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator-("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>>("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator!=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator|("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator&&("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator!("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator++("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator+=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator\*=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator%=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator>>=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator|=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator,("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator/("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator+("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<<("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator==("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator&("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator^("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator||("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator~("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator--("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator->("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator-=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator/=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator<<=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator&=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator^=("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator->\*("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator\[\]("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator new("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator delete("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator int("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator()("
+PASS: gdb.cp/cplusfuncs.exp: info function for "operator char\*("
+PASS: gdb.cp/cplusfuncs.exp: list foo::operator int*
+Running ./gdb.cp/cp-relocate.exp ...
+PASS: gdb.cp/cp-relocate.exp: info functions
+PASS: gdb.cp/cp-relocate.exp: get address of func<1>(int)
+PASS: gdb.cp/cp-relocate.exp: get address of func<2>(int)
+PASS: gdb.cp/cp-relocate.exp: get address of caller
+PASS: gdb.cp/cp-relocate.exp: C++ functions have different addresses
+PASS: gdb.cp/cp-relocate.exp: info file
+PASS: gdb.cp/cp-relocate.exp: add-symbol-file cp-relocate.o
+PASS: gdb.cp/cp-relocate.exp: break *func<1>(int)
+PASS: gdb.cp/cp-relocate.exp: break *func<2>(int)
+Running ./gdb.cp/ctti.exp ...
+PASS: gdb.cp/ctti.exp: continue to breakpoint: marker add1
+PASS: gdb.cp/ctti.exp: print c
+PASS: gdb.cp/ctti.exp: print f
+PASS: gdb.cp/ctti.exp: print i
+Running ./gdb.cp/debug-expr.exp ...
+PASS: gdb.cp/debug-expr.exp: set language c++
+PASS: gdb.cp/debug-expr.exp: set debug expression 1
+PASS: gdb.cp/debug-expr.exp: print static_cast<void*>(0)
+PASS: gdb.cp/debug-expr.exp: print reinterpret_cast<void*>(0)
+PASS: gdb.cp/debug-expr.exp: print dynamic_cast<void*>(0)
+Running ./gdb.cp/demangle.exp ...
+PASS: gdb.cp/demangle.exp: set language c++
+PASS: gdb.cp/demangle.exp: set width 0
+PASS: gdb.cp/demangle.exp: lucid: set demangle-style
+PASS: gdb.cp/demangle.exp: lucid: check demangling style
+PASS: gdb.cp/demangle.exp: lucid: WS__FR7istream
+PASS: gdb.cp/demangle.exp: lucid: __aa__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __aad__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ad__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __adv__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __adv__7complexF7complex
+PASS: gdb.cp/demangle.exp: lucid: __aer__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __als__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __amd__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ami__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __amu__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __amu__7complexF7complex
+PASS: gdb.cp/demangle.exp: lucid: __aor__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __apl__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ars__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __as__18istream_withassignFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __as__18istream_withassignFR7istream
+PASS: gdb.cp/demangle.exp: lucid: __as__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __as__3iosFR3ios
+PASS: gdb.cp/demangle.exp: lucid: __cl__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __cm__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __co__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__10istrstreamFPc
+PASS: gdb.cp/demangle.exp: lucid: __ct__10istrstreamFPci
+PASS: gdb.cp/demangle.exp: lucid: __ct__10ostrstreamFPciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__10ostrstreamFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__10smanip_intFPFR3iosi_R3iosi
+PASS: gdb.cp/demangle.exp: lucid: __ct__11c_exceptionFPcRC7complexT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFi
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__11fstreambaseFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__11smanip_longFPFR3iosl_R3iosl
+PASS: gdb.cp/demangle.exp: lucid: __ct__11stdiostreamFP4FILE
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFPFl_PvPFPv_v
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFPUciT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFPciT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFi
+PASS: gdb.cp/demangle.exp: lucid: __ct__12strstreambufFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__13strstreambaseFPciT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFi
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFiN31
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFiPCc
+PASS: gdb.cp/demangle.exp: lucid: __ct__3fooFiR3fooT1T2T1T2
+PASS: gdb.cp/demangle.exp: lucid: __ct__3iosFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ct__7filebufFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__7fstreamFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__7fstreamFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFP9streambufiP7ostream
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__7istreamFiT1P7ostream
+PASS: gdb.cp/demangle.exp: lucid: __ct__7ostreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ct__7ostreamFiPc
+PASS: gdb.cp/demangle.exp: lucid: __ct__8ifstreamFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: __ct__8ifstreamFiPcT1
+PASS: gdb.cp/demangle.exp: lucid: __ct__Q23foo3barFv
+PASS: gdb.cp/demangle.exp: lucid: __ct__Q33foo3bar4bellFv
+PASS: gdb.cp/demangle.exp: lucid: __dl__3fooSFPv
+PASS: gdb.cp/demangle.exp: lucid: __dl__FPv
+PASS: gdb.cp/demangle.exp: lucid: __dt__10istrstreamFv
+PASS: gdb.cp/demangle.exp: lucid: __dt__Q23foo3barFv
+PASS: gdb.cp/demangle.exp: lucid: __dt__Q33foo3bar4bellFv
+PASS: gdb.cp/demangle.exp: lucid: __dv__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __dv__F7complexT1
+PASS: gdb.cp/demangle.exp: lucid: __eq__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __er__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ge__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __gt__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __le__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ls__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFPCc
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFPFR3ios_R3ios
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFPv
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFUi
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFUl
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFd
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFf
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFi
+PASS: gdb.cp/demangle.exp: lucid: __ls__7ostreamFl
+PASS: gdb.cp/demangle.exp: lucid: __ls__FR7ostream7complex
+PASS: gdb.cp/demangle.exp: lucid: __lt__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __md__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __mi__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ml__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __ml__F7complexT1
+PASS: gdb.cp/demangle.exp: lucid: __mm__3fooFi
+PASS: gdb.cp/demangle.exp: lucid: __ne__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __nt__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __nw__3fooSFi
+PASS: gdb.cp/demangle.exp: lucid: __nw__FUi
+PASS: gdb.cp/demangle.exp: lucid: __nw__FUiPv
+PASS: gdb.cp/demangle.exp: lucid: __oo__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __opPc__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __opi__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __or__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __pl__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __pp__3fooFi
+PASS: gdb.cp/demangle.exp: lucid: __pt__3fooFv
+PASS: gdb.cp/demangle.exp: lucid: __rm__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __rs__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPFR3ios_R3ios
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPFR7istream_R7istream
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPUc
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFPc
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRUi
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRUl
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRUs
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRd
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRf
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRi
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRl
+PASS: gdb.cp/demangle.exp: lucid: __rs__7istreamFRs
+PASS: gdb.cp/demangle.exp: lucid: __rs__FR7istreamR7complex
+PASS: gdb.cp/demangle.exp: lucid: __vc__3fooFR3foo
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__10istrstream
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__17ostream__iostream__19iostream_withassign
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__3ios
+PASS: gdb.cp/demangle.exp: lucid: __vtbl__3ios__13strstreambase
+KFAIL: gdb.cp/demangle.exp: lucid: __vtbl__3foo__vt_cc_main_ (PRMS: gdb/945)
+PASS: gdb.cp/demangle.exp: lucid: abs__F7complex
+PASS: gdb.cp/demangle.exp: lucid: allocate__9streambufFv
+PASS: gdb.cp/demangle.exp: lucid: attach__11fstreambaseFi
+PASS: gdb.cp/demangle.exp: lucid: bitalloc__3iosSFv
+PASS: gdb.cp/demangle.exp: lucid: chr__FiT1
+PASS: gdb.cp/demangle.exp: lucid: complex_error__FR11c_exception
+PASS: gdb.cp/demangle.exp: lucid: complexfunc2__FPFPc_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc3__FPFPFPl_s_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc4__FPFPFPc_s_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc5__FPFPc_PFl_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc6__FPFPi_PFl_i
+PASS: gdb.cp/demangle.exp: lucid: complexfunc7__FPFPFPc_i_PFl_i
+PASS: gdb.cp/demangle.exp: lucid: complicated_put__7ostreamFc
+PASS: gdb.cp/demangle.exp: lucid: conv10__FlPc
+PASS: gdb.cp/demangle.exp: lucid: conv16__FUlPc
+PASS: gdb.cp/demangle.exp: lucid: dec__FR3ios
+PASS: gdb.cp/demangle.exp: lucid: dec__Fli
+PASS: gdb.cp/demangle.exp: lucid: dofield__FP7ostreamPciT2T3
+PASS: gdb.cp/demangle.exp: lucid: flags__3iosFl
+PASS: gdb.cp/demangle.exp: lucid: flags__3iosFv
+PASS: gdb.cp/demangle.exp: lucid: foo__FiN31
+PASS: gdb.cp/demangle.exp: lucid: foo__FiR3fooT1T2T1T2
+PASS: gdb.cp/demangle.exp: lucid: foo___3barFl
+PASS: gdb.cp/demangle.exp: lucid: form__FPCce
+PASS: gdb.cp/demangle.exp: lucid: get__7istreamFPcic
+PASS: gdb.cp/demangle.exp: lucid: get__7istreamFR9streambufc
+PASS: gdb.cp/demangle.exp: lucid: get_complicated__7istreamFRUc
+PASS: gdb.cp/demangle.exp: lucid: get_complicated__7istreamFRc
+PASS: gdb.cp/demangle.exp: lucid: getline__7istreamFPUcic
+PASS: gdb.cp/demangle.exp: lucid: getline__7istreamFPcic
+PASS: gdb.cp/demangle.exp: lucid: ignore__7istreamFiT1
+PASS: gdb.cp/demangle.exp: lucid: init__12strstreambufFPciT1
+PASS: gdb.cp/demangle.exp: lucid: init__3iosFP9streambuf
+PASS: gdb.cp/demangle.exp: lucid: initcount__13Iostream_init
+PASS: gdb.cp/demangle.exp: lucid: ipfx__7istreamFi
+PASS: gdb.cp/demangle.exp: lucid: ls_complicated__7ostreamFUc
+PASS: gdb.cp/demangle.exp: lucid: ls_complicated__7ostreamFc
+PASS: gdb.cp/demangle.exp: lucid: open__11fstreambaseFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: open__7filebufFPCciT2
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FSc
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUc
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUi
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUl
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__FUs
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fc
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fd
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Ff
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fi
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fl
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fs
+PASS: gdb.cp/demangle.exp: lucid: overload1arg__Fv
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN21
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN31
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN41
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN51
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN61
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN71
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN81
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN91
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiN91N11
+PASS: gdb.cp/demangle.exp: lucid: overloadargs__FiT1
+PASS: gdb.cp/demangle.exp: lucid: polar__FdT1
+PASS: gdb.cp/demangle.exp: lucid: pow__F7complexT1
+PASS: gdb.cp/demangle.exp: lucid: pow__F7complexd
+PASS: gdb.cp/demangle.exp: lucid: pow__F7complexi
+PASS: gdb.cp/demangle.exp: lucid: pow__Fd7complex
+PASS: gdb.cp/demangle.exp: lucid: pstart__FPciT2
+PASS: gdb.cp/demangle.exp: lucid: put__7ostreamFc
+PASS: gdb.cp/demangle.exp: lucid: read__7istreamFPci
+PASS: gdb.cp/demangle.exp: lucid: resetiosflags__FR3iosl
+PASS: gdb.cp/demangle.exp: lucid: restore_errno__FRi
+PASS: gdb.cp/demangle.exp: lucid: rs_complicated__7istreamFRUc
+PASS: gdb.cp/demangle.exp: lucid: rs_complicated__7istreamFRc
+PASS: gdb.cp/demangle.exp: lucid: seekg__7istreamFl8seek_dir
+PASS: gdb.cp/demangle.exp: lucid: seekoff__12strstreambufFl8seek_diri
+PASS: gdb.cp/demangle.exp: lucid: seekoff__9streambufFlQ2_3ios12ios_seek_diri
+PASS: gdb.cp/demangle.exp: lucid: seekpos__9streambufFli
+PASS: gdb.cp/demangle.exp: lucid: set_new_handler__FPFv_v
+PASS: gdb.cp/demangle.exp: lucid: setb__9streambufFPcT1i
+PASS: gdb.cp/demangle.exp: lucid: setb__FR3iosi
+PASS: gdb.cp/demangle.exp: lucid: setbuf__11fstreambaseFPci
+PASS: gdb.cp/demangle.exp: lucid: setbuf__9streambufFPUci
+PASS: gdb.cp/demangle.exp: lucid: setbuf__9streambufFPciT2
+PASS: gdb.cp/demangle.exp: lucid: setf__3iosFlT1
+PASS: gdb.cp/demangle.exp: lucid: setfill__FR3iosi
+PASS: gdb.cp/demangle.exp: lucid: setg__9streambufFPcN21
+PASS: gdb.cp/demangle.exp: lucid: setp__9streambufFPcT1
+PASS: gdb.cp/demangle.exp: lucid: sputn__9streambufFPCci
+PASS: gdb.cp/demangle.exp: lucid: str__FPCci
+PASS: gdb.cp/demangle.exp: lucid: tie__3iosFP7ostream
+PASS: gdb.cp/demangle.exp: lucid: uconv10__FUlPc
+PASS: gdb.cp/demangle.exp: lucid: write__7ostreamFPCci
+PASS: gdb.cp/demangle.exp: lucid: xget__7istreamFPc
+PASS: gdb.cp/demangle.exp: lucid: xsgetn__9streambufFPci
+PASS: gdb.cp/demangle.exp: lucid: xsputn__9streambufFPCci
+PASS: gdb.cp/demangle.exp: lucid: _Utf390_1__1_9223372036854775807__9223372036854775
+PASS: gdb.cp/demangle.exp: gnu: set demangle-style
+PASS: gdb.cp/demangle.exp: gnu: check demangling style
+PASS: gdb.cp/demangle.exp: gnu: Abort__FP6EditoriPCc
+PASS: gdb.cp/demangle.exp: gnu: AddAlignment__9ivTSolverUiP12ivInteractorP7ivTGlue
+PASS: gdb.cp/demangle.exp: gnu: Append__15NameChooserViewPCc
+PASS: gdb.cp/demangle.exp: gnu: ArrowheadIntersects__9ArrowLineP9ArrowheadR6BoxObjP7Graphic
+PASS: gdb.cp/demangle.exp: gnu: AtEnd__13ivRubberGroup
+PASS: gdb.cp/demangle.exp: gnu: BgFilter__9ivTSolverP12ivInteractor
+PASS: gdb.cp/demangle.exp: gnu: BitPatterntoa__FRC10BitPatternccc
+PASS: gdb.cp/demangle.exp: gnu: Check__6UArrayi
+PASS: gdb.cp/demangle.exp: gnu: CoreConstDecls__8TextCodeR7ostream
+PASS: gdb.cp/demangle.exp: gnu: Detach__8StateVarP12StateVarView
+PASS: gdb.cp/demangle.exp: gnu: Done__9ComponentG8Iterator
+PASS: gdb.cp/demangle.exp: gnu: DrawDestinationTransformedImage__FP7_XImageiiT0iiUlUiiiUiUlUlP4_XGCRC13ivTransformeriiii
+PASS: gdb.cp/demangle.exp: gnu: Edit__12StringEditorPCcii
+PASS: gdb.cp/demangle.exp: gnu: Effect__11RelateManipR7ivEvent
+PASS: gdb.cp/demangle.exp: gnu: FilterName__FPCc
+PASS: gdb.cp/demangle.exp: gnu: Filter__6PSTextPCci
+PASS: gdb.cp/demangle.exp: gnu: FindColor__7CatalogPCciii
+PASS: gdb.cp/demangle.exp: gnu: FindFixed__FRP4CNetP4CNet
+PASS: gdb.cp/demangle.exp: gnu: FindFont__7CatalogPCcN21
+PASS: gdb.cp/demangle.exp: gnu: Fix48_abort__FR8twolongs
+PASS: gdb.cp/demangle.exp: gnu: GetBarInfo__15iv2_6_VScrollerP13ivPerspectiveRiT2
+PASS: gdb.cp/demangle.exp: gnu: GetBgColor__C9ivPainter
+PASS: gdb.cp/demangle.exp: gnu: Iisdouble__FPC6IntRep
+PASS: gdb.cp/demangle.exp: gnu: InsertBody__15H_PullrightMenuii
+PASS: gdb.cp/demangle.exp: gnu: InsertCharacter__9TextManipc
+PASS: gdb.cp/demangle.exp: gnu: InsertToplevel__7ivWorldP12ivInteractorT1
+PASS: gdb.cp/demangle.exp: gnu: InsertToplevel__7ivWorldP12ivInteractorT1iiUi
+PASS: gdb.cp/demangle.exp: gnu: IsADirectory__FPCcR4stat
+PASS: gdb.cp/demangle.exp: gnu: IsAGroup__FP11GraphicViewP11GraphicComp
+PASS: gdb.cp/demangle.exp: gnu: IsA__10ButtonCodeUl
+PASS: gdb.cp/demangle.exp: gnu: ReadName__FR7istreamPc
+PASS: gdb.cp/demangle.exp: gnu: Redraw__13StringBrowseriiii
+PASS: gdb.cp/demangle.exp: gnu: Rotate__13ivTransformerf
+PASS: gdb.cp/demangle.exp: gnu: Rotated__C13ivTransformerf
+PASS: gdb.cp/demangle.exp: gnu: Round__Ff
+PASS: gdb.cp/demangle.exp: gnu: SetExport__16MemberSharedNameUi
+PASS: gdb.cp/demangle.exp: gnu: Set__14ivControlState13ControlStatusUi
+PASS: gdb.cp/demangle.exp: gnu: Set__5DFacePcii
+PASS: gdb.cp/demangle.exp: gnu: VConvert__9ivTSolverP12ivInteractorRP8TElementT2
+PASS: gdb.cp/demangle.exp: gnu: VConvert__9ivTSolverP7ivTGlueRP8TElement
+PASS: gdb.cp/demangle.exp: gnu: VOrder__9ivTSolverUiRP12ivInteractorT2
+PASS: gdb.cp/demangle.exp: gnu: Valid__7CatalogPCcRP4Tool
+PASS: gdb.cp/demangle.exp: gnu: _10PageButton$__both
+PASS: gdb.cp/demangle.exp: gnu: _3RNG$singleMantissa
+PASS: gdb.cp/demangle.exp: gnu: _5IComp$_release
+PASS: gdb.cp/demangle.exp: gnu: _$_10BitmapComp
+PASS: gdb.cp/demangle.exp: gnu: _$_9__io_defs
+PASS: gdb.cp/demangle.exp: gnu: _$_Q23foo3bar
+PASS: gdb.cp/demangle.exp: gnu: _$_Q33foo3bar4bell
+PASS: gdb.cp/demangle.exp: gnu: __10ivTelltaleiP7ivGlyph
+PASS: gdb.cp/demangle.exp: gnu: __10ivViewportiP12ivInteractorUi
+PASS: gdb.cp/demangle.exp: gnu: __10ostrstream
+PASS: gdb.cp/demangle.exp: gnu: __10ostrstreamPcii
+PASS: gdb.cp/demangle.exp: gnu: __11BasicDialogiPCcP13ivButtonStateN22Ui
+PASS: gdb.cp/demangle.exp: gnu: __11BitmapTablei
+PASS: gdb.cp/demangle.exp: gnu: __12ViewportCodeP12ViewportComp
+PASS: gdb.cp/demangle.exp: gnu: __12iv2_6_BorderiPCci
+PASS: gdb.cp/demangle.exp: gnu: __12iv2_6_Borderii
+PASS: gdb.cp/demangle.exp: gnu: __12ivBackgroundiP7ivGlyphPC7ivColor
+PASS: gdb.cp/demangle.exp: gnu: __12ivBreak_Listl
+PASS: gdb.cp/demangle.exp: gnu: __14TextInteractoriPCcUi
+PASS: gdb.cp/demangle.exp: gnu: __14iv2_6_MenuItemiP12ivInteractor
+PASS: gdb.cp/demangle.exp: gnu: __14iv2_6_MenuItemiPCcP12ivInteractor
+PASS: gdb.cp/demangle.exp: gnu: __20DisplayList_IteratorR11DisplayList
+PASS: gdb.cp/demangle.exp: gnu: __3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __3fooiN31
+PASS: gdb.cp/demangle.exp: gnu: __3fooiPCc
+PASS: gdb.cp/demangle.exp: gnu: __3fooiRT0iT2iT2
+PASS: gdb.cp/demangle.exp: gnu: __6GetOptiPPcPCc
+PASS: gdb.cp/demangle.exp: gnu: __6KeyMapPT0
+PASS: gdb.cp/demangle.exp: gnu: __7ivWorldPCcRiPPcPC12ivOptionDescPC14ivPropertyData
+PASS: gdb.cp/demangle.exp: gnu: __7procbufPCci
+PASS: gdb.cp/demangle.exp: gnu: __8ArrowCmdP6EditorUiUi
+PASS: gdb.cp/demangle.exp: gnu: __9F_EllipseiiiiP7Graphic
+PASS: gdb.cp/demangle.exp: gnu: __9FrameDataP9FrameCompi
+PASS: gdb.cp/demangle.exp: gnu: __9HVGraphicP9CanvasVarP7Graphic
+PASS: gdb.cp/demangle.exp: gnu: __Q23foo3bar
+PASS: gdb.cp/demangle.exp: gnu: __Q33foo3bar4bell
+PASS: gdb.cp/demangle.exp: gnu: __aa__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __aad__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ad__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __adv__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __aer__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __als__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __amd__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ami__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __aml__3FixRT0
+PASS: gdb.cp/demangle.exp: gnu: __aml__5Fix16i
+PASS: gdb.cp/demangle.exp: gnu: __aml__5Fix32RT0
+PASS: gdb.cp/demangle.exp: gnu: __aor__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __apl__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ars__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __as__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __cl__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __cl__6Normal
+PASS: gdb.cp/demangle.exp: gnu: __cl__6Stringii
+PASS: gdb.cp/demangle.exp: gnu: __cm__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __co__3foo
+PASS: gdb.cp/demangle.exp: gnu: __dl__3fooPv
+PASS: gdb.cp/demangle.exp: gnu: __dv__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __eq__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __er__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ge__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __gt__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __le__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ls__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ls__FR7ostreamPFR3ios_R3ios
+PASS: gdb.cp/demangle.exp: gnu: __ls__FR7ostreamR3Fix
+PASS: gdb.cp/demangle.exp: gnu: __lt__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __md__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __mi__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ml__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __mm__3fooi
+PASS: gdb.cp/demangle.exp: gnu: __ne__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __ne__FRC7ComplexT0
+PASS: gdb.cp/demangle.exp: gnu: __ne__FRC7Complexd
+PASS: gdb.cp/demangle.exp: gnu: __ne__FRC9SubStringRC6String
+PASS: gdb.cp/demangle.exp: gnu: __nt__3foo
+PASS: gdb.cp/demangle.exp: gnu: __nw__3fooi
+PASS: gdb.cp/demangle.exp: gnu: __oo__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __opPc__3foo
+PASS: gdb.cp/demangle.exp: gnu: __opi__3foo
+PASS: gdb.cp/demangle.exp: gnu: __or__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __pl__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __pp__3fooi
+PASS: gdb.cp/demangle.exp: gnu: __rf__3foo
+PASS: gdb.cp/demangle.exp: gnu: __rm__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __rs__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __vc__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: _gsub__6StringRC5RegexPCci
+PASS: gdb.cp/demangle.exp: gnu: _new_Fix__FUs
+PASS: gdb.cp/demangle.exp: gnu: _vt.foo
+PASS: gdb.cp/demangle.exp: gnu: _vt.foo.bar
+PASS: gdb.cp/demangle.exp: gnu: _vt$foo
+PASS: gdb.cp/demangle.exp: gnu: _vt$foo$bar
+PASS: gdb.cp/demangle.exp: gnu: append__7ivGlyphPT0
+PASS: gdb.cp/demangle.exp: gnu: arg__FRC7Complex
+PASS: gdb.cp/demangle.exp: gnu: clearok__FP7_win_sti
+PASS: gdb.cp/demangle.exp: gnu: complexfunc2__FPFPc_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc3__FPFPFPl_s_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc4__FPFPFPc_s_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc5__FPFPc_PFl_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc6__FPFPi_PFl_i
+PASS: gdb.cp/demangle.exp: gnu: complexfunc7__FPFPFPc_i_PFl_i
+PASS: gdb.cp/demangle.exp: gnu: contains__C9BitStringRC10BitPattern
+PASS: gdb.cp/demangle.exp: gnu: contains__C9BitStringRC12BitSubStringi
+PASS: gdb.cp/demangle.exp: gnu: contains__C9BitStringRT0
+PASS: gdb.cp/demangle.exp: gnu: div__FPC6IntRepT0P6IntRep
+PASS: gdb.cp/demangle.exp: gnu: div__FPC6IntReplP6IntRep
+PASS: gdb.cp/demangle.exp: gnu: div__FRC8RationalT0R8Rational
+PASS: gdb.cp/demangle.exp: gnu: divide__FRC7IntegerT0R7IntegerT2
+PASS: gdb.cp/demangle.exp: gnu: divide__FRC7IntegerlR7IntegerRl
+PASS: gdb.cp/demangle.exp: gnu: enable__14DocumentViewerPCcUi
+PASS: gdb.cp/demangle.exp: gnu: foo__FiN30
+PASS: gdb.cp/demangle.exp: gnu: foo__FiR3fooiT1iT1
+PASS: gdb.cp/demangle.exp: gnu: foo___3barl
+PASS: gdb.cp/demangle.exp: gnu: insert__15ivClippingStacklRP8_XRegion
+PASS: gdb.cp/demangle.exp: gnu: insert__16ChooserInfo_ListlR11ChooserInfo
+PASS: gdb.cp/demangle.exp: gnu: insert__17FontFamilyRepListlRP15ivFontFamilyRep
+PASS: gdb.cp/demangle.exp: gnu: leaveok__FP7_win_stc
+PASS: gdb.cp/demangle.exp: gnu: left_mover__C7ivMFKitP12ivAdjustableP7ivStyle
+PASS: gdb.cp/demangle.exp: gnu: matches__C9BitStringRC10BitPatterni
+PASS: gdb.cp/demangle.exp: gnu: matches__C9SubStringRC5Regex
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FSc
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUc
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUi
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUl
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__FUs
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fc
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fd
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Ff
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fi
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fl
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fs
+PASS: gdb.cp/demangle.exp: gnu: overload1arg__Fv
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fi
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: overloadargs__Fiiiiiiiiiii
+PASS: gdb.cp/demangle.exp: gnu: pick__13ivCompositionP8ivCanvasRC12ivAllocationiR5ivHit
+PASS: gdb.cp/demangle.exp: gnu: pointer__C11ivHScrollerRC7ivEventRC12ivAllocation
+PASS: gdb.cp/demangle.exp: gnu: poke__8ivRasterUlUlffff
+PASS: gdb.cp/demangle.exp: gnu: polar__Fdd
+PASS: gdb.cp/demangle.exp: gnu: read__10osStdInputRPCc
+PASS: gdb.cp/demangle.exp: gnu: scale__13ivTransformerff
+PASS: gdb.cp/demangle.exp: gnu: scanw__12CursesWindowPCce
+PASS: gdb.cp/demangle.exp: gnu: scmp__FPCcT0
+PASS: gdb.cp/demangle.exp: gnu: sgetn__7filebufPci
+PASS: gdb.cp/demangle.exp: gnu: shift__FP5_FrepiT0
+PASS: gdb.cp/demangle.exp: gnu: test__C6BitSeti
+PASS: gdb.cp/demangle.exp: gnu: test__C6BitSetii
+PASS: gdb.cp/demangle.exp: gnu: testbit__FRC7Integerl
+PASS: gdb.cp/demangle.exp: gnu: text_source__8Documentl
+PASS: gdb.cp/demangle.exp: gnu: variance__6Erlangd
+PASS: gdb.cp/demangle.exp: gnu: vform__8iostreamPCcPc
+PASS: gdb.cp/demangle.exp: gnu: view__14DocumentViewerP8ItemViewP11TabularItem
+PASS: gdb.cp/demangle.exp: gnu: xy_extents__11ivExtensionffff
+PASS: gdb.cp/demangle.exp: gnu: zero__8osMemoryPvUi
+PASS: gdb.cp/demangle.exp: gnu: _2T4$N
+PASS: gdb.cp/demangle.exp: gnu: _Q22T42t1$N
+PASS: gdb.cp/demangle.exp: gnu: get__2T1
+PASS: gdb.cp/demangle.exp: gnu: get__Q22T11a
+PASS: gdb.cp/demangle.exp: gnu: get__Q32T11a1b
+PASS: gdb.cp/demangle.exp: gnu: get__Q42T11a1b1c
+PASS: gdb.cp/demangle.exp: gnu: get__Q52T11a1b1c1d
+PASS: gdb.cp/demangle.exp: gnu: put__2T1i
+PASS: gdb.cp/demangle.exp: gnu: put__Q22T11ai
+PASS: gdb.cp/demangle.exp: gnu: put__Q32T11a1bi
+PASS: gdb.cp/demangle.exp: gnu: put__Q42T11a1b1ci
+PASS: gdb.cp/demangle.exp: gnu: put__Q52T11a1b1c1di
+PASS: gdb.cp/demangle.exp: gnu: bar__3fooPv
+PASS: gdb.cp/demangle.exp: gnu: bar__3fooPCv
+PASS: gdb.cp/demangle.exp: gnu: bar__C3fooPv
+PASS: gdb.cp/demangle.exp: gnu: bar__C3fooPCv
+PASS: gdb.cp/demangle.exp: gnu: __eq__3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: __eq__3fooRC3foo
+PASS: gdb.cp/demangle.exp: gnu: __eq__C3fooR3foo
+PASS: gdb.cp/demangle.exp: gnu: __eq__C3fooRT0
+PASS: gdb.cp/demangle.exp: gnu: elem__t6vector1Zdi
+PASS: gdb.cp/demangle.exp: gnu: elem__t6vector1Zii
+PASS: gdb.cp/demangle.exp: gnu: __t6vector1Zdi
+PASS: gdb.cp/demangle.exp: gnu: __t6vector1Zii
+PASS: gdb.cp/demangle.exp: gnu: _$_t6vector1Zdi
+PASS: gdb.cp/demangle.exp: gnu: _$_t6vector1Zii
+PASS: gdb.cp/demangle.exp: gnu: __nw__t2T11ZcUi
+PASS: gdb.cp/demangle.exp: gnu: __nw__t2T11Z1tUi
+PASS: gdb.cp/demangle.exp: gnu: __dl__t2T11ZcPv
+PASS: gdb.cp/demangle.exp: gnu: __dl__t2T11Z1tPv
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Zci
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Zc
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Z1ti
+PASS: gdb.cp/demangle.exp: gnu: __t2T11Z1t
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity3PixPQ2t4List1Z10VHDLEntity7element
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity3PixRCQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity7elementRC10VHDLEntityPT0
+PASS: gdb.cp/demangle.exp: gnu: __Q2t4List1Z10VHDLEntity7elementRCQ2t4List1Z10VHDLEntity7element
+PASS: gdb.cp/demangle.exp: gnu: __cl__C11VHDLLibraryGt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __cl__Ct4List1Z10VHDLEntityRCQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __t4List1Z10VHDLEntityRCt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityP14VHDLLibraryRepGQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: nextE__C11VHDLLibraryRt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity
+PASS: gdb.cp/demangle.exp: gnu: next__Ct4List1Z10VHDLEntityRQ2t4List1Z10VHDLEntity3Pix
+PASS: gdb.cp/demangle.exp: gnu: _GLOBAL_$D$set
+PASS: gdb.cp/demangle.exp: gnu: _GLOBAL_$I$set
+PASS: gdb.cp/demangle.exp: gnu: __as__t5ListS1ZUiRCt5ListS1ZUi
+PASS: gdb.cp/demangle.exp: gnu: __cl__Ct5ListS1ZUiRCQ2t5ListS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __cl__Ct5SetLS1ZUiRCQ2t5SetLS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __t10ListS_link1ZUiRCUiPT0
+PASS: gdb.cp/demangle.exp: gnu: __t10ListS_link1ZUiRCt10ListS_link1ZUi
+PASS: gdb.cp/demangle.exp: gnu: __t5ListS1ZUiRCt5ListS1ZUi
+PASS: gdb.cp/demangle.exp: gnu: next__Ct5ListS1ZUiRQ2t5ListS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCQ2t5SetLS1ZUi3Vix
+PASS: gdb.cp/demangle.exp: gnu: __t8ListElem1Z5LabelRt4List1Z5Label
+PASS: gdb.cp/demangle.exp: gnu: __t8BDDHookV1ZPcRCPc
+PASS: gdb.cp/demangle.exp: gnu: _vt$t8BDDHookV1ZPc
+PASS: gdb.cp/demangle.exp: gnu: __ne__FPvRCQ211BDDFunction4VixB
+PASS: gdb.cp/demangle.exp: gnu: __eq__FPvRCQ211BDDFunction4VixB
+PASS: gdb.cp/demangle.exp: gnu: relativeId__CQ36T_phi210T_preserve8FPC_nextRCQ26T_phi210T_preserveRC10Parameters
+PASS: gdb.cp/demangle.exp: gnu: _Utf390_1__1_9223372036854775807__9223372036854775
+PASS: gdb.cp/demangle.exp: gnu: foo__I40
+PASS: gdb.cp/demangle.exp: gnu: foo__I_200_
+PASS: gdb.cp/demangle.exp: gnu: foo__I_200
+PASS: gdb.cp/demangle.exp: gnu: foo__I_4000000000000000000000000000000000000000000000000000000000000000000000000
+PASS: gdb.cp/demangle.exp: gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator
+PASS: gdb.cp/demangle.exp: arm: set demangle-style
+PASS: gdb.cp/demangle.exp: arm: check demangling style
+PASS: gdb.cp/demangle.exp: arm: __dt__21T5__pt__11_PFiPPdPv_iFv
+PASS: gdb.cp/demangle.exp: arm: __ct__1cFi
+PASS: gdb.cp/demangle.exp: arm: __dt__11T5__pt__2_iFv
+PASS: gdb.cp/demangle.exp: arm: __dt__11T5__pt__2_cFv
+PASS: gdb.cp/demangle.exp: arm: __ct__2T2Fi
+PASS: gdb.cp/demangle.exp: arm: __dt__2T1Fv
+PASS: gdb.cp/demangle.exp: arm: __dt__12T5__pt__3_1xFv
+PASS: gdb.cp/demangle.exp: arm: __dt__17T5__pt__8_PFcPv_iFv
+PASS: gdb.cp/demangle.exp: arm: g__FP1cPC1cT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUlPCUlT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUiPCUiT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUsPCUsT1
+PASS: gdb.cp/demangle.exp: arm: g__FPUcPCUcT1
+PASS: gdb.cp/demangle.exp: arm: g__F1TPlPClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRlRClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TPiPCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRiRCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TPsPCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRsRCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TPcPCcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRcRCcT2
+PASS: gdb.cp/demangle.exp: arm: __ct__21T5__pt__11_PFiPPdPv_iFi
+PASS: gdb.cp/demangle.exp: arm: __gt__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __ge__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __lt__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __le__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __ne__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __eq__FRC2T2c
+PASS: gdb.cp/demangle.exp: arm: __amd__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __adv__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __amu__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __ami__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __apl__FR2T2i
+PASS: gdb.cp/demangle.exp: arm: __nw__2T1SFUi
+PASS: gdb.cp/demangle.exp: arm: __dl__2T1SFPv
+PASS: gdb.cp/demangle.exp: arm: put__2T7SFi
+PASS: gdb.cp/demangle.exp: arm: __dl__12T5__pt__3_1xSFPv
+PASS: gdb.cp/demangle.exp: arm: h__FUc
+PASS: gdb.cp/demangle.exp: arm: f__Fic
+PASS: gdb.cp/demangle.exp: arm: h__FUi
+PASS: gdb.cp/demangle.exp: arm: h__Fci
+PASS: gdb.cp/demangle.exp: arm: h__FUl
+PASS: gdb.cp/demangle.exp: arm: h__Fcl
+PASS: gdb.cp/demangle.exp: arm: h__FUs
+PASS: gdb.cp/demangle.exp: arm: h__Fcs
+PASS: gdb.cp/demangle.exp: arm: __amd__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __adv__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __amu__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __ami__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __apl__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUlRPCUlT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUiRPCUiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUsRPCUsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPUcRPCUcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SRPlRPClT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SRPiRPCiT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SRPcRPCcT3
+PASS: gdb.cp/demangle.exp: arm: X__12T5__pt__3_1x
+PASS: gdb.cp/demangle.exp: arm: __ct__11T5__pt__2_iFi
+PASS: gdb.cp/demangle.exp: arm: __ct__11T5__pt__2_cFi
+PASS: gdb.cp/demangle.exp: arm: __gt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __ge__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __lt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __le__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __ne__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: __eq__FRC2T2T1
+PASS: gdb.cp/demangle.exp: arm: g__FcR1cRC1cT2
+PASS: gdb.cp/demangle.exp: arm: g__FcRPdRPCdT2
+PASS: gdb.cp/demangle.exp: arm: g__FcRPfRPCfT2
+PASS: gdb.cp/demangle.exp: arm: h__FcT1
+PASS: gdb.cp/demangle.exp: arm: f__Ficd
+PASS: gdb.cp/demangle.exp: arm: g__F1T1SdRPsRPCsT4
+PASS: gdb.cp/demangle.exp: arm: g__F1cC1cT1
+PASS: gdb.cp/demangle.exp: arm: g__FPdPCdT1
+PASS: gdb.cp/demangle.exp: arm: g__FPfPCfT1
+PASS: gdb.cp/demangle.exp: arm: g__FUlCUlT1
+PASS: gdb.cp/demangle.exp: arm: g__FPlPClT1
+PASS: gdb.cp/demangle.exp: arm: g__FUiCUiT1
+PASS: gdb.cp/demangle.exp: arm: g__FPiPCiT1
+PASS: gdb.cp/demangle.exp: arm: g__FUsCUsT1
+PASS: gdb.cp/demangle.exp: arm: g__FPsPCsT1
+PASS: gdb.cp/demangle.exp: arm: g__FUcCUcT1
+PASS: gdb.cp/demangle.exp: arm: g__FPcPCcT1
+PASS: gdb.cp/demangle.exp: arm: g__F1TlClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TiCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TsCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1TcCcT2
+PASS: gdb.cp/demangle.exp: arm: __dl__17T5__pt__8_PFcPv_iSFPv
+PASS: gdb.cp/demangle.exp: arm: printf__FPCce
+PASS: gdb.cp/demangle.exp: arm: X__17T5__pt__8_PFcPv_i
+PASS: gdb.cp/demangle.exp: arm: __ct__12T5__pt__3_1xFi
+PASS: gdb.cp/demangle.exp: arm: g__F1SRUlRCUlT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPlRPClT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRUiRCUiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPiRPCiT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRUsRCUsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPsRPCsT2
+PASS: gdb.cp/demangle.exp: arm: g__F1RRUcRCUcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1SRPcRPCcT2
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRlRClT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRiRCiT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRsRCsT3
+PASS: gdb.cp/demangle.exp: arm: g__F1T1RRcRCcT3
+PASS: gdb.cp/demangle.exp: arm: __dl__21T5__pt__11_PFiPPdPv_iSFPv
+PASS: gdb.cp/demangle.exp: arm: __std__foo
+PASS: gdb.cp/demangle.exp: arm: __sti__bar
+PASS: gdb.cp/demangle.exp: arm: f__FicdPcPFci_v
+PASS: gdb.cp/demangle.exp: arm: f__FicdPcPFic_v
+PASS: gdb.cp/demangle.exp: arm: get__2T7SFv
+PASS: gdb.cp/demangle.exp: arm: X__21T5__pt__11_PFiPPdPv_i
+PASS: gdb.cp/demangle.exp: arm: g__FcRdRCdT2
+PASS: gdb.cp/demangle.exp: arm: g__FcRfRCfT2
+PASS: gdb.cp/demangle.exp: arm: __md__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __dv__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __ml__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __mi__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __pl__FC2T2i
+PASS: gdb.cp/demangle.exp: arm: __dl__11T5__pt__2_iSFPv
+PASS: gdb.cp/demangle.exp: arm: __dl__11T5__pt__2_cSFPv
+PASS: gdb.cp/demangle.exp: arm: h__Fc
+PASS: gdb.cp/demangle.exp: arm: h__Fd
+PASS: gdb.cp/demangle.exp: arm: h__Ff
+PASS: gdb.cp/demangle.exp: arm: h__Fi
+PASS: gdb.cp/demangle.exp: arm: f__Fi
+PASS: gdb.cp/demangle.exp: arm: h__Fl
+PASS: gdb.cp/demangle.exp: arm: h__Fs
+PASS: gdb.cp/demangle.exp: arm: __md__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __dv__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __ml__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __mi__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: __pl__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: arm: g__FcRP1cRPC1cT2
+PASS: gdb.cp/demangle.exp: arm: X__11T5__pt__2_c
+PASS: gdb.cp/demangle.exp: arm: X__11T5__pt__2_i
+PASS: gdb.cp/demangle.exp: arm: g__FdCdT1
+PASS: gdb.cp/demangle.exp: arm: g__FfCfT1
+PASS: gdb.cp/demangle.exp: arm: g__FlClT1
+PASS: gdb.cp/demangle.exp: arm: g__FiCiT1
+PASS: gdb.cp/demangle.exp: arm: g__FsCsT1
+PASS: gdb.cp/demangle.exp: arm: g__FcCcT1
+PASS: gdb.cp/demangle.exp: arm: __ct__17T5__pt__8_PFcPv_iFi
+PASS: gdb.cp/demangle.exp: arm: f__FicdPc
+PASS: gdb.cp/demangle.exp: arm: __nw__FUi
+PASS: gdb.cp/demangle.exp: arm: __ct__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: arm: __dt__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: arm: put__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: arm: get__Q2_2T11aSFv
+PASS: gdb.cp/demangle.exp: arm: put__2T1SFi
+PASS: gdb.cp/demangle.exp: arm: put__Q5_2T11a1b1c1dSFi
+PASS: gdb.cp/demangle.exp: arm: get__Q4_2T11a1b1cSFv
+PASS: gdb.cp/demangle.exp: arm: put__Q2_2T11aSFi
+PASS: gdb.cp/demangle.exp: arm: put__Q4_2T11a1b1cSFi
+PASS: gdb.cp/demangle.exp: arm: get__Q3_2T11a1bSFv
+PASS: gdb.cp/demangle.exp: arm: get__2T1SFv
+PASS: gdb.cp/demangle.exp: arm: get__Q5_2T11a1b1c1dSFv
+PASS: gdb.cp/demangle.exp: arm: __dt__11T1__pt__2_cFv
+PASS: gdb.cp/demangle.exp: arm: __dt__12T1__pt__3_1tFv
+PASS: gdb.cp/demangle.exp: arm: __dl__12T1__pt__3_1tSFPv
+PASS: gdb.cp/demangle.exp: arm: __ct__11T1__pt__2_cFi
+PASS: gdb.cp/demangle.exp: arm: __ct__11T1__pt__2_cFv
+PASS: gdb.cp/demangle.exp: arm: __ct__12T1__pt__3_1tFi
+PASS: gdb.cp/demangle.exp: arm: __ct__12T1__pt__3_1tFv
+PASS: gdb.cp/demangle.exp: arm: __dl__11T1__pt__2_cSFPv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFPv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFPCv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooCFPv
+PASS: gdb.cp/demangle.exp: arm: bar__3fooCFPCv
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooFR3foo
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooFRC3foo
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooCFR3foo
+PASS: gdb.cp/demangle.exp: arm: __eq__3fooCFRC3foo
+PASS: gdb.cp/demangle.exp: arm: elem__15vector__pt__2_dFi
+PASS: gdb.cp/demangle.exp: arm: elem__15vector__pt__2_iFi
+PASS: gdb.cp/demangle.exp: arm: __ct__15vector__pt__2_dFi
+PASS: gdb.cp/demangle.exp: arm: __ct__15vector__pt__2_iFi
+PASS: gdb.cp/demangle.exp: arm: __ct__25DListNode__pt__9_R6RLabelFR6RLabelP25DListNode__pt__9_R6RLabelT2
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFiT16FooBar
+PASS: gdb.cp/demangle.exp: arm: bar__3fooFPiN51PdN37PcN211T1iN215
+PASS: gdb.cp/demangle.exp: arm: _Utf390_1__1_9223372036854775807__9223372036854775
+PASS: gdb.cp/demangle.exp: hp: set demangle-style
+PASS: gdb.cp/demangle.exp: hp: check demangling style
+PASS: gdb.cp/demangle.exp: hp: g__FP1cPC1cT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUlPCUlT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUiPCUiT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUsPCUsT1
+PASS: gdb.cp/demangle.exp: hp: g__FPUcPCUcT1
+PASS: gdb.cp/demangle.exp: hp: g__F1TPlPClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRlRClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TPiPCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRiRCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TPsPCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRsRCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TPcPCcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRcRCcT2
+PASS: gdb.cp/demangle.exp: hp: __gt__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __ge__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __lt__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __le__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __ne__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __eq__FRC2T2c
+PASS: gdb.cp/demangle.exp: hp: __amd__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __adv__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __amu__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __ami__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __apl__FR2T2i
+PASS: gdb.cp/demangle.exp: hp: __nw__2T1SFUi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T1SFPv
+PASS: gdb.cp/demangle.exp: hp: put__2T7SFi
+PASS: gdb.cp/demangle.exp: hp: h__FUc
+PASS: gdb.cp/demangle.exp: hp: f__Fic
+PASS: gdb.cp/demangle.exp: hp: h__FUi
+PASS: gdb.cp/demangle.exp: hp: h__Fci
+PASS: gdb.cp/demangle.exp: hp: h__FUl
+PASS: gdb.cp/demangle.exp: hp: h__Fcl
+PASS: gdb.cp/demangle.exp: hp: h__FUs
+PASS: gdb.cp/demangle.exp: hp: h__Fcs
+PASS: gdb.cp/demangle.exp: hp: __amd__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __adv__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __amu__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __ami__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __apl__FR2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUlRPCUlT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUiRPCUiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUsRPCUsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPUcRPCUcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SRPlRPClT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SRPiRPCiT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SRPcRPCcT3
+PASS: gdb.cp/demangle.exp: hp: __gt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __ge__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __lt__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __le__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __ne__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: __eq__FRC2T2T1
+PASS: gdb.cp/demangle.exp: hp: g__FcR1cRC1cT2
+PASS: gdb.cp/demangle.exp: hp: g__FcRPdRPCdT2
+PASS: gdb.cp/demangle.exp: hp: g__FcRPfRPCfT2
+PASS: gdb.cp/demangle.exp: hp: h__FcT1
+PASS: gdb.cp/demangle.exp: hp: f__Ficd
+PASS: gdb.cp/demangle.exp: hp: g__F1T1SdRPsRPCsT4
+PASS: gdb.cp/demangle.exp: hp: g__F1cC1cT1
+PASS: gdb.cp/demangle.exp: hp: g__FPdPCdT1
+PASS: gdb.cp/demangle.exp: hp: g__FPfPCfT1
+PASS: gdb.cp/demangle.exp: hp: g__FUlCUlT1
+PASS: gdb.cp/demangle.exp: hp: g__FPlPClT1
+PASS: gdb.cp/demangle.exp: hp: g__FUiCUiT1
+PASS: gdb.cp/demangle.exp: hp: g__FPiPCiT1
+PASS: gdb.cp/demangle.exp: hp: g__FUsCUsT1
+PASS: gdb.cp/demangle.exp: hp: g__FPsPCsT1
+PASS: gdb.cp/demangle.exp: hp: g__FUcCUcT1
+PASS: gdb.cp/demangle.exp: hp: g__FPcPCcT1
+PASS: gdb.cp/demangle.exp: hp: g__F1TlClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TiCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TsCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1TcCcT2
+PASS: gdb.cp/demangle.exp: hp: printf__FPCce
+PASS: gdb.cp/demangle.exp: hp: g__F1SRUlRCUlT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPlRPClT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRUiRCUiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPiRPCiT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRUsRCUsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPsRPCsT2
+PASS: gdb.cp/demangle.exp: hp: g__F1RRUcRCUcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1SRPcRPCcT2
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRlRClT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRiRCiT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRsRCsT3
+PASS: gdb.cp/demangle.exp: hp: g__F1T1RRcRCcT3
+PASS: gdb.cp/demangle.exp: hp: f__FicdPcPFci_v
+PASS: gdb.cp/demangle.exp: hp: f__FicdPcPFic_v
+PASS: gdb.cp/demangle.exp: hp: get__2T7SFv
+PASS: gdb.cp/demangle.exp: hp: g__FcRdRCdT2
+PASS: gdb.cp/demangle.exp: hp: g__FcRfRCfT2
+PASS: gdb.cp/demangle.exp: hp: __md__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __dv__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __ml__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __mi__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: __pl__FC2T2i
+PASS: gdb.cp/demangle.exp: hp: h__Fc
+PASS: gdb.cp/demangle.exp: hp: h__Fd
+PASS: gdb.cp/demangle.exp: hp: h__Ff
+PASS: gdb.cp/demangle.exp: hp: h__Fi
+PASS: gdb.cp/demangle.exp: hp: f__Fi
+PASS: gdb.cp/demangle.exp: hp: h__Fl
+PASS: gdb.cp/demangle.exp: hp: h__Fs
+PASS: gdb.cp/demangle.exp: hp: __md__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __dv__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __ml__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __mi__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: __pl__FC2T2RC2T2
+PASS: gdb.cp/demangle.exp: hp: g__FcRP1cRPC1cT2
+PASS: gdb.cp/demangle.exp: hp: g__FdCdT1
+PASS: gdb.cp/demangle.exp: hp: g__FfCfT1
+PASS: gdb.cp/demangle.exp: hp: g__FlClT1
+PASS: gdb.cp/demangle.exp: hp: g__FiCiT1
+PASS: gdb.cp/demangle.exp: hp: g__FsCsT1
+PASS: gdb.cp/demangle.exp: hp: g__FcCcT1
+PASS: gdb.cp/demangle.exp: hp: f__FicdPc
+PASS: gdb.cp/demangle.exp: hp: __nw__FUi
+PASS: gdb.cp/demangle.exp: hp: __ct__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: hp: __dt__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: hp: put__Q3_2T11a1bSFi
+PASS: gdb.cp/demangle.exp: hp: get__Q2_2T11aSFv
+PASS: gdb.cp/demangle.exp: hp: put__2T1SFi
+PASS: gdb.cp/demangle.exp: hp: put__Q5_2T11a1b1c1dSFi
+PASS: gdb.cp/demangle.exp: hp: get__Q4_2T11a1b1cSFv
+PASS: gdb.cp/demangle.exp: hp: put__Q2_2T11aSFi
+PASS: gdb.cp/demangle.exp: hp: put__Q4_2T11a1b1cSFi
+PASS: gdb.cp/demangle.exp: hp: get__Q3_2T11a1bSFv
+PASS: gdb.cp/demangle.exp: hp: get__2T1SFv
+PASS: gdb.cp/demangle.exp: hp: get__Q5_2T11a1b1c1dSFv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFPv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFPCv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooCFPv
+PASS: gdb.cp/demangle.exp: hp: bar__3fooCFPCv
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooFR3foo
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooFRC3foo
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooCFR3foo
+PASS: gdb.cp/demangle.exp: hp: __eq__3fooCFRC3foo
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFiT16FooBar
+PASS: gdb.cp/demangle.exp: hp: bar__3fooFPiN51PdN37PcN211T1iN215
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTPFiPPdPv_i__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__1cFi
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTi__Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTc__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T2Fi
+PASS: gdb.cp/demangle.exp: hp: __dt__2T1Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XT1x__Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T5XTPFcPv_i__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFiPPdPv_i__Fi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XT1x__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XT1x
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTi__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTc__Fi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTPFcPv_i__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTPFcPv_i
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XT1x__Fi
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTPFiPPdPv_i__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTPFiPPdPv_i
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTi__SFPv
+PASS: gdb.cp/demangle.exp: hp: __dl__2T5XTc__SFPv
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTc
+PASS: gdb.cp/demangle.exp: hp: X__2T5XTi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFcPv_i__Fi
+PASS: gdb.cp/demangle.exp: hp: __dt__2T1XTc__Fv
+PASS: gdb.cp/demangle.exp: hp: __dt__2T1XT1t__Fv
+PASS: gdb.cp/demangle.exp: hp: __dl__2T1XT1t__SFPv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XTc__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XTc__Fv
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XT1t__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T1XT1t__Fv
+PASS: gdb.cp/demangle.exp: hp: __dl__2T1XTc__SFPv
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTd__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTi__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__6vectorXTd__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__6vectorXTi__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__9DListNodeXTR6RLabel__FR6RLabelP9DListNodeXTR6RLabel_T2
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiUP34__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXUP2701Td__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSP334__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN67__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSM__SCFPPd
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN67UP4000TRs__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN67TRdTFPv_i__Fi
+PASS: gdb.cp/demangle.exp: hp: X__6vectorXTiSN67TdTPvUP5TRs
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiA3foo__Fi
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiA3fooTPvA5Label__FiPPvT2
+PASS: gdb.cp/demangle.exp: hp: elem__6vectorXTiSN42A3foo__Fi
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFcPv_i__Fi_2
+PASS: gdb.cp/demangle.exp: hp: __ct__2T5XTPFcPv_i__Fi_19
+PASS: gdb.cp/demangle.exp: hp: f__FicdPcPFci_v_34
+PASS: gdb.cp/demangle.exp: hp: spec__13Spec<%1,%1.*>XTiTPi_FPi
+PASS: gdb.cp/demangle.exp: hp: spec__16Spec<%1,%1.&,%1>XTiTRiTi_FPi
+PASS: gdb.cp/demangle.exp: hp: add__XTc_FcT1
+PASS: gdb.cp/demangle.exp: hp: add__XTcSP9A5label_FcPPlT1
+PASS: gdb.cp/demangle.exp: hp: add__XTPfTFPd_f_FcT1
+PASS: gdb.cp/demangle.exp: hp: unLink__12basic_stringXTcT18string_char_traitsXTc_T9allocator_Fv
+PASS: gdb.cp/demangle.exp: hp: _Utf390_1__1_9223372036854775807__9223372036854775
+Running ./gdb.cp/derivation.exp ...
+PASS: gdb.cp/derivation.exp: before run: ptype A::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis A::value_type
+PASS: gdb.cp/derivation.exp: before run: p (A::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype D::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis D::value_type
+PASS: gdb.cp/derivation.exp: before run: p (D::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype E::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis E::value_type
+PASS: gdb.cp/derivation.exp: before run: p (E::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype F::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis F::value_type
+PASS: gdb.cp/derivation.exp: before run: p (F::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype A2::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis A2::value_type
+PASS: gdb.cp/derivation.exp: before run: p (A2::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype D2::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis D2::value_type
+PASS: gdb.cp/derivation.exp: before run: p (D2::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype Z::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis Z::value_type
+PASS: gdb.cp/derivation.exp: before run: p (Z::value_type) 0
+PASS: gdb.cp/derivation.exp: before run: ptype ZZ::value_type
+PASS: gdb.cp/derivation.exp: before run: whatis ZZ::value_type
+PASS: gdb.cp/derivation.exp: before run: p (ZZ::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype A::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis A::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (A::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype D::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis D::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (D::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype A2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis A2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (A2::value_type) 0
+PASS: gdb.cp/derivation.exp: at marker1: ptype D2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: whatis D2::value_type
+PASS: gdb.cp/derivation.exp: at marker1: p (D2::value_type) 0
+PASS: gdb.cp/derivation.exp: up from marker1
+PASS: gdb.cp/derivation.exp: print value of a_instance
+PASS: gdb.cp/derivation.exp: ptype a_instance
+PASS: gdb.cp/derivation.exp: print value of d_instance
+PASS: gdb.cp/derivation.exp: ptype d_instance
+PASS: gdb.cp/derivation.exp: print value of e_instance
+PASS: gdb.cp/derivation.exp: ptype e_instance
+PASS: gdb.cp/derivation.exp: print value of f_instance
+PASS: gdb.cp/derivation.exp: ptype f_instance
+PASS: gdb.cp/derivation.exp: ptype g_instance
+PASS: gdb.cp/derivation.exp: print value of d_instance.a
+PASS: gdb.cp/derivation.exp: print value of d_instance.aa
+PASS: gdb.cp/derivation.exp: print value of d_instance.b
+PASS: gdb.cp/derivation.exp: print value of d_instance.bb
+PASS: gdb.cp/derivation.exp: print value of d_instance.c
+PASS: gdb.cp/derivation.exp: print value of d_instance.cc
+PASS: gdb.cp/derivation.exp: print value of d_instance.d
+PASS: gdb.cp/derivation.exp: print value of d_instance.dd
+PASS: gdb.cp/derivation.exp: print value of g_instance.a
+PASS: gdb.cp/derivation.exp: print value of g_instance.b
+PASS: gdb.cp/derivation.exp: print value of g_instance.c
+PASS: gdb.cp/derivation.exp: print value of g_instance.afoo()
+PASS: gdb.cp/derivation.exp: re-selected 'main' frame after inferior call
+PASS: gdb.cp/derivation.exp: print value of g_instance.bfoo()
+PASS: gdb.cp/derivation.exp: print value of g_instance.cfoo()
+PASS: gdb.cp/derivation.exp: whatis c_instance.c
+PASS: gdb.cp/derivation.exp: ptype c_instance.c
+PASS: gdb.cp/derivation.exp: whatis g_instance.g
+PASS: gdb.cp/derivation.exp: ptype g_instance.g
+PASS: gdb.cp/derivation.exp: whatis a_instance.a
+PASS: gdb.cp/derivation.exp: ptype a_instance.a
+PASS: gdb.cp/derivation.exp: p (A::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis b_instance.b
+PASS: gdb.cp/derivation.exp: ptype b_instance.b
+PASS: gdb.cp/derivation.exp: whatis d_instance.d
+PASS: gdb.cp/derivation.exp: ptype d_instance.d
+PASS: gdb.cp/derivation.exp: p (D::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis e_instance.e
+PASS: gdb.cp/derivation.exp: ptype e_instance.e
+PASS: gdb.cp/derivation.exp: p (E::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis f_instance.f
+PASS: gdb.cp/derivation.exp: ptype f_instance.f
+PASS: gdb.cp/derivation.exp: p (F::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis z_instance.z
+PASS: gdb.cp/derivation.exp: ptype z_instance.z
+PASS: gdb.cp/derivation.exp: p (Z::value_type) 0
+PASS: gdb.cp/derivation.exp: whatis zz_instance.zz
+PASS: gdb.cp/derivation.exp: ptype zz_instance.zz
+PASS: gdb.cp/derivation.exp: p (ZZ::value_type) 0
+PASS: gdb.cp/derivation.exp: ptype vderived
+PASS: gdb.cp/derivation.exp: print vderived
+PASS: gdb.cp/derivation.exp: ptype N::value_type
+PASS: gdb.cp/derivation.exp: ptype N::Derived::value_type
+PASS: gdb.cp/derivation.exp: ptype value_type
+Running ./gdb.cp/destrprint.exp ...
+PASS: gdb.cp/destrprint.exp: continue to breakpoint: Break here
+PASS: gdb.cp/destrprint.exp: go up to ~Derived
+PASS: gdb.cp/destrprint.exp: set print object on
+PASS: gdb.cp/destrprint.exp: print *this with print object = on
+PASS: gdb.cp/destrprint.exp: set print object off
+PASS: gdb.cp/destrprint.exp: print *this with print object = off
+Running ./gdb.cp/dispcxx.exp ...
+PASS: gdb.cp/dispcxx.exp: continue to breakpoint: here
+PASS: gdb.cp/dispcxx.exp: display k
+Running ./gdb.cp/exception.exp ...
+PASS: gdb.cp/exception.exp: catch catch (before inferior run)
+PASS: gdb.cp/exception.exp: catch throw (before inferior run)
+PASS: gdb.cp/exception.exp: info breakpoints (before inferior run)
+PASS: gdb.cp/exception.exp: Set temporary breakpoint at main
+PASS: gdb.cp/exception.exp: Run to main
+PASS: gdb.cp/exception.exp: info breakpoints (after inferior run)
+PASS: gdb.cp/exception.exp: break catcher
+PASS: gdb.cp/exception.exp: continue to first throw
+PASS: gdb.cp/exception.exp: backtrace after first throw
+PASS: gdb.cp/exception.exp: continue to first catch
+PASS: gdb.cp/exception.exp: backtrace after first catch
+PASS: gdb.cp/exception.exp: continue to catcher for the first time
+PASS: gdb.cp/exception.exp: continue to second throw
+PASS: gdb.cp/exception.exp: backtrace after second throw
+PASS: gdb.cp/exception.exp: continue to second catch
+PASS: gdb.cp/exception.exp: backtrace after second catch
+PASS: gdb.cp/exception.exp: continue to catcher for the second time
+Running ./gdb.cp/expand-psymtabs-cxx.exp ...
+PASS: gdb.cp/expand-psymtabs-cxx.exp: set language c++
+PASS: gdb.cp/expand-psymtabs-cxx.exp: before expand
+PASS: gdb.cp/expand-psymtabs-cxx.exp: force expand
+PASS: gdb.cp/expand-psymtabs-cxx.exp: after expand
+Running ./gdb.cp/expand-sals.exp ...
+PASS: gdb.cp/expand-sals.exp: continue to breakpoint: func
+PASS: gdb.cp/expand-sals.exp: up
+PASS: gdb.cp/expand-sals.exp: break
+PASS: gdb.cp/expand-sals.exp: continue to breakpoint: caller
+PASS: gdb.cp/expand-sals.exp: bt from A
+PASS: gdb.cp/expand-sals.exp: continue to breakpoint: next caller func
+Running ./gdb.cp/extern-c.exp ...
+PASS: gdb.cp/extern-c.exp: setting breakpoint at c_func
+PASS: gdb.cp/extern-c.exp: continue to breakpoint: c_func
+PASS: gdb.cp/extern-c.exp: initialize counter
+PASS: gdb.cp/extern-c.exp: rbreak c_funcs
+PASS: gdb.cp/extern-c.exp: command details for multiple breakpoints
+PASS: gdb.cp/extern-c.exp: set commands on multiple breakpoints
+PASS: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_1
+PASS: gdb.cp/extern-c.exp: verify counter at first breakpoint
+PASS: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_2
+PASS: gdb.cp/extern-c.exp: verify counter at second breakpoint
+Running ./gdb.cp/formatted-ref.exp ...
+PASS: gdb.cp/formatted-ref.exp: print/x s
+PASS: gdb.cp/formatted-ref.exp: print/x e
+PASS: gdb.cp/formatted-ref.exp: print/x i
+PASS: gdb.cp/formatted-ref.exp: print/x &s
+PASS: gdb.cp/formatted-ref.exp: print/x &e
+PASS: gdb.cp/formatted-ref.exp: print/x &i
+PASS: gdb.cp/formatted-ref.exp: print/x *(&(&s))
+PASS: gdb.cp/formatted-ref.exp: print/x *(&(&i))
+PASS: gdb.cp/formatted-ref.exp: print/x *(&(&e))
+PASS: gdb.cp/formatted-ref.exp: print s.x == 13
+Running ./gdb.cp/fpointer.exp ...
+PASS: gdb.cp/fpointer.exp: p p1()
+PASS: gdb.cp/fpointer.exp: p p2()
+PASS: gdb.cp/fpointer.exp: p p[0]()
+PASS: gdb.cp/fpointer.exp: p p[1]()
+PASS: gdb.cp/fpointer.exp: p p3('a')
+PASS: gdb.cp/fpointer.exp: p p4(1)
+Running ./gdb.cp/gdb1355.exp ...
+PASS: gdb.cp/gdb1355.exp: ptype s1
+PASS: gdb.cp/gdb1355.exp: print s1
+Running ./gdb.cp/gdb2384.exp ...
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/gdb2384.exp: print d1.meth ()
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/gdb2384.exp: gdb2384
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here (second)
+PASS: gdb.cp/gdb2384.exp: print d2.meth()
+PASS: gdb.cp/gdb2384.exp: continue to breakpoint: set breakpoint here (second)
+PASS: gdb.cp/gdb2384.exp: gdb2384 (second)
+Running ./gdb.cp/gdb2495.exp ...
+PASS: gdb.cp/gdb2495.exp: p exceptions.no_throw_function()
+PASS: gdb.cp/gdb2495.exp: p exceptions.throw_function_with_handler()
+FAIL: gdb.cp/gdb2495.exp: Call a function that raises an exception without a handler.
+FAIL: gdb.cp/gdb2495.exp: bt after returning from a popped frame
+PASS: gdb.cp/gdb2495.exp: info breakpoints
+PASS: gdb.cp/gdb2495.exp: set unwinn-on-terminating-exception off
+PASS: gdb.cp/gdb2495.exp: Turn off unwind on terminating exception flag
+PASS: gdb.cp/gdb2495.exp: Call a function that raises an exception with unwinding off..
+PASS: gdb.cp/gdb2495.exp: set unwindonsignal on
+PASS: gdb.cp/gdb2495.exp: Turn on unwind on signal
+PASS: gdb.cp/gdb2495.exp: p exceptions.raise_signal(1)
+PASS: gdb.cp/gdb2495.exp: set unwindonsignal off
+PASS: gdb.cp/gdb2495.exp: Turn off unwind on signal
+PASS: gdb.cp/gdb2495.exp: p exceptions.raise_signal(1)
+Running ./gdb.cp/hang.exp ...
+PASS: gdb.cp/hang.exp: doesn't overwrite struct type
+PASS: gdb.cp/hang.exp: doesn't corrupt cv_type chain
+Running ./gdb.cp/infcall-dlopen.exp ...
+PASS: gdb.cp/infcall-dlopen.exp: test 0
+PASS: gdb.cp/infcall-dlopen.exp: test 0 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 0 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 1
+PASS: gdb.cp/infcall-dlopen.exp: test 1 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 1 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 2
+PASS: gdb.cp/infcall-dlopen.exp: test 2 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 2 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 3
+PASS: gdb.cp/infcall-dlopen.exp: test 3 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 3 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 4
+PASS: gdb.cp/infcall-dlopen.exp: test 4 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 4 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 5
+PASS: gdb.cp/infcall-dlopen.exp: test 5 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 5 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 6
+PASS: gdb.cp/infcall-dlopen.exp: test 6 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 6 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 7
+PASS: gdb.cp/infcall-dlopen.exp: test 7 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 7 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 8
+PASS: gdb.cp/infcall-dlopen.exp: test 8 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 8 stub 2
+PASS: gdb.cp/infcall-dlopen.exp: test 9
+PASS: gdb.cp/infcall-dlopen.exp: test 9 stub 1
+PASS: gdb.cp/infcall-dlopen.exp: test 9 stub 2
+Running ./gdb.cp/inherit.exp ...
+PASS: gdb.cp/inherit.exp: set width 0
+PASS: gdb.cp/inherit.exp: set language c++
+PASS: gdb.cp/inherit.exp: ptype A (FIXME)
+PASS: gdb.cp/inherit.exp: ptype class A (FIXME)
+PASS: gdb.cp/inherit.exp: ptype g_A (FIXME)
+PASS: gdb.cp/inherit.exp: ptype B
+PASS: gdb.cp/inherit.exp: ptype class B
+PASS: gdb.cp/inherit.exp: ptype g_B
+PASS: gdb.cp/inherit.exp: ptype C
+PASS: gdb.cp/inherit.exp: ptype class C
+PASS: gdb.cp/inherit.exp: ptype g_C
+PASS: gdb.cp/inherit.exp: ptype tagless struct
+PASS: gdb.cp/inherit.exp: ptype variable of type tagless struct
+PASS: gdb.cp/inherit.exp: ptype D
+PASS: gdb.cp/inherit.exp: ptype class D
+PASS: gdb.cp/inherit.exp: ptype g_D
+PASS: gdb.cp/inherit.exp: ptype E
+PASS: gdb.cp/inherit.exp: ptype class E
+PASS: gdb.cp/inherit.exp: ptype g_E
+PASS: gdb.cp/inherit.exp: ptype vA
+PASS: gdb.cp/inherit.exp: ptype class vA
+PASS: gdb.cp/inherit.exp: ptype g_vA
+PASS: gdb.cp/inherit.exp: ptype vB
+PASS: gdb.cp/inherit.exp: ptype class vB
+PASS: gdb.cp/inherit.exp: ptype g_vB
+PASS: gdb.cp/inherit.exp: ptype vC
+PASS: gdb.cp/inherit.exp: ptype class vC
+PASS: gdb.cp/inherit.exp: ptype g_vC
+PASS: gdb.cp/inherit.exp: ptype vD
+PASS: gdb.cp/inherit.exp: ptype class vD
+PASS: gdb.cp/inherit.exp: ptype g_vD
+PASS: gdb.cp/inherit.exp: ptype vE
+PASS: gdb.cp/inherit.exp: ptype class vE
+PASS: gdb.cp/inherit.exp: ptype g_vE
+PASS: gdb.cp/inherit.exp: print g_A.A::a
+PASS: gdb.cp/inherit.exp: print g_A.A::x
+PASS: gdb.cp/inherit.exp: print g_A.a
+PASS: gdb.cp/inherit.exp: print g_A.x
+PASS: gdb.cp/inherit.exp: print g_B.A::a
+PASS: gdb.cp/inherit.exp: print g_B.A::x
+PASS: gdb.cp/inherit.exp: print g_B.B::b
+PASS: gdb.cp/inherit.exp: print g_B.B::x
+PASS: gdb.cp/inherit.exp: print g_B.a
+PASS: gdb.cp/inherit.exp: print g_B.b
+PASS: gdb.cp/inherit.exp: print g_B.x
+PASS: gdb.cp/inherit.exp: print g_C.A::a
+PASS: gdb.cp/inherit.exp: print g_C.A::x
+PASS: gdb.cp/inherit.exp: print g_C.C::c
+PASS: gdb.cp/inherit.exp: print g_C.C::x
+PASS: gdb.cp/inherit.exp: print g_C.a
+PASS: gdb.cp/inherit.exp: print g_C.c
+PASS: gdb.cp/inherit.exp: print g_C.x
+PASS: gdb.cp/inherit.exp: print g_A
+PASS: gdb.cp/inherit.exp: print g_B
+PASS: gdb.cp/inherit.exp: print g_C
+PASS: gdb.cp/inherit.exp: print g_A.A::a
+PASS: gdb.cp/inherit.exp: print g_A.A::x
+PASS: gdb.cp/inherit.exp: print g_B.A::a
+PASS: gdb.cp/inherit.exp: print g_B.A::x
+PASS: gdb.cp/inherit.exp: print g_B.B::b
+PASS: gdb.cp/inherit.exp: print g_B.B::x
+PASS: gdb.cp/inherit.exp: print g_C.A::a
+PASS: gdb.cp/inherit.exp: print g_C.A::x
+PASS: gdb.cp/inherit.exp: print g_C.C::c
+PASS: gdb.cp/inherit.exp: print g_C.C::x
+PASS: gdb.cp/inherit.exp: print g_D.A::a
+PASS: gdb.cp/inherit.exp: print g_D.C::a
+PASS: gdb.cp/inherit.exp: print g_D.B::a
+PASS: gdb.cp/inherit.exp: print g_D.A::x
+PASS: gdb.cp/inherit.exp: print g_D.B::b
+PASS: gdb.cp/inherit.exp: print g_D.B::x
+PASS: gdb.cp/inherit.exp: print g_D.C::c
+PASS: gdb.cp/inherit.exp: print g_D.C::x
+PASS: gdb.cp/inherit.exp: print g_D.D::d
+PASS: gdb.cp/inherit.exp: print g_D.D::x
+PASS: gdb.cp/inherit.exp: print g_E.A::a
+PASS: gdb.cp/inherit.exp: print g_E.A::x
+PASS: gdb.cp/inherit.exp: print g_E.B::b
+PASS: gdb.cp/inherit.exp: print g_E.B::x
+PASS: gdb.cp/inherit.exp: print g_E.C::c
+PASS: gdb.cp/inherit.exp: print g_E.C::x
+PASS: gdb.cp/inherit.exp: print g_E.D::d
+PASS: gdb.cp/inherit.exp: print g_E.D::x
+PASS: gdb.cp/inherit.exp: print g_E.E::e
+PASS: gdb.cp/inherit.exp: print g_E.E::x
+PASS: gdb.cp/inherit.exp: ptype g_D.b
+PASS: gdb.cp/inherit.exp: ptype g_D.c
+PASS: gdb.cp/inherit.exp: ptype g_D.d
+PASS: gdb.cp/inherit.exp: ptype g_A.A::a
+PASS: gdb.cp/inherit.exp: ptype g_A.A::x
+PASS: gdb.cp/inherit.exp: ptype g_B.A::a
+PASS: gdb.cp/inherit.exp: ptype g_B.A::x
+PASS: gdb.cp/inherit.exp: ptype g_B.B::b
+PASS: gdb.cp/inherit.exp: ptype g_B.B::x
+PASS: gdb.cp/inherit.exp: ptype g_C.A::a
+PASS: gdb.cp/inherit.exp: ptype g_C.A::x
+PASS: gdb.cp/inherit.exp: ptype g_C.C::c
+PASS: gdb.cp/inherit.exp: ptype g_C.C::x
+PASS: gdb.cp/inherit.exp: ptype g_D.A::a
+PASS: gdb.cp/inherit.exp: ptype g_D.A::x
+PASS: gdb.cp/inherit.exp: ptype g_D.B::b
+PASS: gdb.cp/inherit.exp: ptype g_D.B::x
+PASS: gdb.cp/inherit.exp: ptype g_D.C::c
+PASS: gdb.cp/inherit.exp: ptype g_D.C::x
+PASS: gdb.cp/inherit.exp: ptype g_D.D::d
+PASS: gdb.cp/inherit.exp: ptype g_D.D::x
+PASS: gdb.cp/inherit.exp: ptype g_E.A::a
+PASS: gdb.cp/inherit.exp: ptype g_E.A::x
+PASS: gdb.cp/inherit.exp: ptype g_E.B::b
+PASS: gdb.cp/inherit.exp: ptype g_E.B::x
+PASS: gdb.cp/inherit.exp: ptype g_E.C::c
+PASS: gdb.cp/inherit.exp: ptype g_E.C::x
+PASS: gdb.cp/inherit.exp: ptype g_E.D::d
+PASS: gdb.cp/inherit.exp: ptype g_E.D::x
+PASS: gdb.cp/inherit.exp: ptype g_E.E::e
+PASS: gdb.cp/inherit.exp: ptype g_E.E::x
+PASS: gdb.cp/inherit.exp: print g_D
+PASS: gdb.cp/inherit.exp: print g_E
+PASS: gdb.cp/inherit.exp: print anonymous union member
+PASS: gdb.cp/inherit.exp: print variable of type anonymous union
+PASS: gdb.cp/inherit.exp: print type of anonymous union
+PASS: gdb.cp/inherit.exp: print g_vA.vA::va
+PASS: gdb.cp/inherit.exp: print g_vA.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vA.va
+PASS: gdb.cp/inherit.exp: print g_vA.vx
+PASS: gdb.cp/inherit.exp: print g_vB.vA::va
+PASS: gdb.cp/inherit.exp: print g_vB.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vB.vB::vb
+PASS: gdb.cp/inherit.exp: print g_vB.vB::vx
+PASS: gdb.cp/inherit.exp: print g_vB.va
+PASS: gdb.cp/inherit.exp: print g_vB.vb
+PASS: gdb.cp/inherit.exp: print g_vB.vx
+PASS: gdb.cp/inherit.exp: print g_vC.vA::va
+PASS: gdb.cp/inherit.exp: print g_vC.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vC.vC::vc
+PASS: gdb.cp/inherit.exp: print g_vC.vC::vx
+PASS: gdb.cp/inherit.exp: print g_vC.va
+PASS: gdb.cp/inherit.exp: print g_vC.vc
+PASS: gdb.cp/inherit.exp: print g_vC.vx
+PASS: gdb.cp/inherit.exp: print g_vA
+PASS: gdb.cp/inherit.exp: print g_vB
+PASS: gdb.cp/inherit.exp: print g_vC
+PASS: gdb.cp/inherit.exp: print g_vD.vA::va
+PASS: gdb.cp/inherit.exp: print g_vD.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vD.vB::vb
+PASS: gdb.cp/inherit.exp: print g_vD.vB::vx
+PASS: gdb.cp/inherit.exp: print g_vD.vC::vc
+PASS: gdb.cp/inherit.exp: print g_vD.vC::vx
+PASS: gdb.cp/inherit.exp: print g_vD.vD::vd
+PASS: gdb.cp/inherit.exp: print g_vD.vD::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vA::va
+PASS: gdb.cp/inherit.exp: print g_vE.vA::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vB::vb
+PASS: gdb.cp/inherit.exp: print g_vE.vB::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vC::vc
+PASS: gdb.cp/inherit.exp: print g_vE.vC::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vD::vd
+PASS: gdb.cp/inherit.exp: print g_vE.vD::vx
+PASS: gdb.cp/inherit.exp: print g_vE.vE::ve
+PASS: gdb.cp/inherit.exp: print g_vE.vE::vx
+PASS: gdb.cp/inherit.exp: print g_vD (FIXME v3 vtbl ptr)
+PASS: gdb.cp/inherit.exp: print g_vE (FIXME v3 vtbl ptr)
+Running ./gdb.cp/koenig.exp ...
+PASS: gdb.cp/koenig.exp: p first(c)
+PASS: gdb.cp/koenig.exp: p second(0,0,c,0,0)
+PASS: gdb.cp/koenig.exp: p entry (c)
+PASS: gdb.cp/koenig.exp: p first(0,c)
+PASS: gdb.cp/koenig.exp: p first(b.c)
+PASS: gdb.cp/koenig.exp: p foo(eo)
+PASS: gdb.cp/koenig.exp: p foo(eo, eo)
+PASS: gdb.cp/koenig.exp: p foo(eo, eo, 1)
+PASS: gdb.cp/koenig.exp: p foo(fo, eo)
+PASS: gdb.cp/koenig.exp: p foo(1 ,fo, eo)
+PASS: gdb.cp/koenig.exp: p foo(go, fo, eo)
+PASS: gdb.cp/koenig.exp: p fake(eo)
+PASS: gdb.cp/koenig.exp: p foo (fake)
+PASS: gdb.cp/koenig.exp: p foo(io)
+PASS: gdb.cp/koenig.exp: p foo(ix)
+PASS: gdb.cp/koenig.exp: p foo(ju)
+PASS: gdb.cp/koenig.exp: p foo(js)
+PASS: gdb.cp/koenig.exp: p foo(je)
+XFAIL: gdb.cp/koenig.exp: p foo(jab)
+PASS: gdb.cp/koenig.exp: p foo(jap)
+PASS: gdb.cp/koenig.exp: p foo(japp)
+PASS: gdb.cp/koenig.exp: p foo(jca)
+PASS: gdb.cp/koenig.exp: p foo(ko,1)
+PASS: gdb.cp/koenig.exp: p foo(ko,1.0f)
+XFAIL: gdb.cp/koenig.exp: p bar(ko,1)
+PASS: gdb.cp/koenig.exp: p foo(labo)
+PASS: gdb.cp/koenig.exp: p ma.foo('a')
+PASS: gdb.cp/koenig.exp: p foo(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::N::foo(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::FAKE::foo(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::N::fake(ma,'a')
+PASS: gdb.cp/koenig.exp: p M::bar('a')
+PASS: gdb.cp/koenig.exp: p M::N::bar('a')
+PASS: gdb.cp/koenig.exp: p foo(ttoa, 'a')
+PASS: gdb.cp/koenig.exp: p foo (p_union)
+PASS: gdb.cp/koenig.exp: p q == 5
+PASS: gdb.cp/koenig.exp: p q == 5.0f
+PASS: gdb.cp/koenig.exp: p q != 5
+PASS: gdb.cp/koenig.exp: p q != 5.0f
+PASS: gdb.cp/koenig.exp: p q + 5.0f
+PASS: gdb.cp/koenig.exp: p q + 5
+PASS: gdb.cp/koenig.exp: p ++q
+PASS: gdb.cp/koenig.exp: p r.rfoo()
+PASS: gdb.cp/koenig.exp: continue to breakpoint: marker1
+PASS: gdb.cp/koenig.exp: p rfoo()
+PASS: gdb.cp/koenig.exp: p this->rfoo()
+Running ./gdb.cp/local.exp ...
+PASS: gdb.cp/local.exp: up from marker1
+PASS: gdb.cp/local.exp: ptype l
+PASS: gdb.cp/local.exp: ptype Local
+PASS: gdb.cp/local.exp: break marker2
+PASS: gdb.cp/local.exp: continuing to marker2
+PASS: gdb.cp/local.exp: up from marker2
+PASS: gdb.cp/local.exp: Local out of scope
+PASS: gdb.cp/local.exp: ptype InnerLocal (pattern 1)
+PASS: gdb.cp/local.exp: ptype NestedInnerLocal
+KFAIL: gdb.cp/local.exp: ptype InnerLocal::NestedInnerLocal (PRMS: gdb/482)
+Running ./gdb.cp/maint.exp ...
+PASS: gdb.cp/maint.exp: help maintenance cplus
+PASS: gdb.cp/maint.exp: help maint cp
+PASS: gdb.cp/maint.exp: maint cp
+PASS: gdb.cp/maint.exp: help maint cp first_component
+PASS: gdb.cp/maint.exp: help maint cp namespace
+PASS: gdb.cp/maint.exp: set complaints 1000
+PASS: gdb.cp/maint.exp: maint cp first_component foo
+PASS: gdb.cp/maint.exp: maint cp first_component operator<<
+PASS: gdb.cp/maint.exp: maint cp first_component operator>>
+PASS: gdb.cp/maint.exp: maint cp first_component operator ->
+PASS: gdb.cp/maint.exp: maint cp first_component operator()
+PASS: gdb.cp/maint.exp: maint cp first_component operator>
+PASS: gdb.cp/maint.exp: maint cp first_component operator<
+PASS: gdb.cp/maint.exp: maint cp first_component operator ->
+PASS: gdb.cp/maint.exp: maint cp first_component operator  ->
+PASS: gdb.cp/maint.exp: maint cp first_component foo()
+PASS: gdb.cp/maint.exp: maint cp first_component foo(int)
+PASS: gdb.cp/maint.exp: maint cp first_component foo(X::Y)
+PASS: gdb.cp/maint.exp: maint cp first_component foo(X::Y, A::B)
+PASS: gdb.cp/maint.exp: maint cp first_component foo(std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >)
+PASS: gdb.cp/maint.exp: maint cp first_component operator>(X::Y)
+PASS: gdb.cp/maint.exp: maint cp first_component int operator<< <char>()
+PASS: gdb.cp/maint.exp: maint cp first_component T<Cooperator>
+PASS: gdb.cp/maint.exp: maint cp first_component int foo<&(operator<<(C, C))>()
+PASS: gdb.cp/maint.exp: maint cp first_component int foo<&operator<<(C, C)>()
+PASS: gdb.cp/maint.exp: maint cp first_component int foo<operator<<(C, C)>()
+PASS: gdb.cp/maint.exp: maint cp first_component foo::bar
+PASS: gdb.cp/maint.exp: maint cp first_component foo::bar::baz
+PASS: gdb.cp/maint.exp: maint cp first_component C<A>::bar
+PASS: gdb.cp/maint.exp: maint cp first_component C<std::basic_streambuf<wchar_t,std::char_traits<wchar_t> > >::bar
+PASS: gdb.cp/maint.exp: maint cp first_component foo<
+PASS: gdb.cp/maint.exp: maint cp first_component foo(
+PASS: gdb.cp/maint.exp: maint cp first_component bool operator<<char>
+PASS: gdb.cp/maint.exp: maint cp namespace
+Running ./gdb.cp/mb-ctor.exp ...
+PASS: gdb.cp/mb-ctor.exp: set-breakpoint at ctor
+PASS: gdb.cp/mb-ctor.exp: set-breakpoint at dtor
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 1 v1
+PASS: gdb.cp/mb-ctor.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 1 v2
+PASS: gdb.cp/mb-ctor.exp: continue to breakpoint: set breakpoint here
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 3 v1
+PASS: gdb.cp/mb-ctor.exp: run to breakpoint 3 v2
+PASS: gdb.cp/mb-ctor.exp: run to exit
+Running ./gdb.cp/mb-inline.exp ...
+PASS: gdb.cp/mb-inline.exp: set breakpoint
+PASS: gdb.cp/mb-inline.exp: info break
+PASS: gdb.cp/mb-inline.exp: run to breakpoint
+PASS: gdb.cp/mb-inline.exp: run to breakpoint 2
+PASS: gdb.cp/mb-inline.exp: disabling location: disable
+PASS: gdb.cp/mb-inline.exp: disabling location: run to breakpoint
+PASS: gdb.cp/mb-inline.exp: disabled breakpoint 1.2
+PASS: gdb.cp/mb-inline.exp: set multi_line_foo breakpoint
+PASS: gdb.cp/mb-inline.exp: run to multi_line_foo breakpoint 4 afn
+PASS: gdb.cp/mb-inline.exp: run to multi_line_foo breakpoint 4 bfn
+Running ./gdb.cp/mb-templates.exp ...
+PASS: gdb.cp/mb-templates.exp: initial condition: set breakpoint
+PASS: gdb.cp/mb-templates.exp: initial condition: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: initial condition: run to breakpoint 2
+PASS: gdb.cp/mb-templates.exp: kill
+PASS: gdb.cp/mb-templates.exp: separate condition: set breakpoint
+PASS: gdb.cp/mb-templates.exp: separate condition: set condition
+PASS: gdb.cp/mb-templates.exp: separate condition: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: separate condition: run to breakpoint 2
+PASS: gdb.cp/mb-templates.exp: disabling location: disable
+PASS: gdb.cp/mb-templates.exp: disabling location: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: disabling location: enable
+PASS: gdb.cp/mb-templates.exp: disable breakpoint: disable
+PASS: gdb.cp/mb-templates.exp: disable breakpoint: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: instantiation: set breakpoint
+PASS: gdb.cp/mb-templates.exp: instantiation: run to breakpoint
+PASS: gdb.cp/mb-templates.exp: instantiation: run to breakpoint 2
+PASS: gdb.cp/mb-templates.exp: set multi_line_foo breakpoint
+PASS: gdb.cp/mb-templates.exp: run to multi_line_foo breakpoint 2 <int>
+PASS: gdb.cp/mb-templates.exp: run to multi_line_foo breakpoint 2 <double>
+Running ./gdb.cp/m-data.exp ...
+PASS: gdb.cp/m-data.exp: continue to breakpoint: end of first constructors
+PASS: gdb.cp/m-data.exp: simple object, const bool
+PASS: gdb.cp/m-data.exp: simple object, const int
+PASS: gdb.cp/m-data.exp: simple object, long
+PASS: gdb.cp/m-data.exp: simple object, enum
+PASS: gdb.cp/m-data.exp: derived template object, base const bool
+PASS: gdb.cp/m-data.exp: derived template object, base const int
+PASS: gdb.cp/m-data.exp: derived template object, base long
+PASS: gdb.cp/m-data.exp: derived template object, base enum
+PASS: gdb.cp/m-data.exp: derived template object, derived enum
+PASS: gdb.cp/m-data.exp: template object, const bool
+PASS: gdb.cp/m-data.exp: template object, const int
+PASS: gdb.cp/m-data.exp: template object, long
+PASS: gdb.cp/m-data.exp: template object, base enum
+PASS: gdb.cp/m-data.exp: template object, derived enum
+PASS: gdb.cp/m-data.exp: continue to breakpoint: continue to shadow breakpoint
+PASS: gdb.cp/m-data.exp: shadowing member
+PASS: gdb.cp/m-data.exp: shadowed global variable
+Running ./gdb.cp/member-name.exp ...
+PASS: gdb.cp/member-name.exp: continue to breakpoint: continue to first breakpoint
+PASS: gdb.cp/member-name.exp: print C::x from first breakpoint
+PASS: gdb.cp/member-name.exp: print B::b from first breakpoint
+PASS: gdb.cp/member-name.exp: print inner::z from first breakpoint
+PASS: gdb.cp/member-name.exp: continue to breakpoint: continue to second breakpoint
+PASS: gdb.cp/member-name.exp: print C::x from second breakpoint
+PASS: gdb.cp/member-name.exp: print B::b from second breakpoint
+PASS: gdb.cp/member-name.exp: print inner::z from second breakpoint
+PASS: gdb.cp/member-name.exp: continue to breakpoint: continue to third breakpoint
+PASS: gdb.cp/member-name.exp: print Templ::y from third breakpoint
+Running ./gdb.cp/member-ptr.exp ...
+PASS: gdb.cp/member-ptr.exp: continue to breakpoint: continue to pmi = NULL
+PASS: gdb.cp/member-ptr.exp: ptype pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: print pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmi (A::j)
+PASS: gdb.cp/member-ptr.exp: set var pmi = &A::jj
+PASS: gdb.cp/member-ptr.exp: print pmi (A::jj)
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::jj)
+PASS: gdb.cp/member-ptr.exp: set var pmi = &A::j
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::j) (again)
+PASS: gdb.cp/member-ptr.exp: print a.*pmi = 33
+PASS: gdb.cp/member-ptr.exp: print a.*pmi (A::j) (33)
+PASS: gdb.cp/member-ptr.exp: print a (j = 33)
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmi = 44
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmi (44)
+PASS: gdb.cp/member-ptr.exp: print a (j = 44)
+PASS: gdb.cp/member-ptr.exp: ptype a.*pmi
+PASS: gdb.cp/member-ptr.exp: print *pmi
+PASS: gdb.cp/member-ptr.exp: ptype *pmi
+PASS: gdb.cp/member-ptr.exp: print (int) pmi
+PASS: gdb.cp/member-ptr.exp: print ((int) pmi) == ((char *) &a.j - (char *) &a)
+PASS: gdb.cp/member-ptr.exp: ptype diamond_pfunc_ptr
+PASS: gdb.cp/member-ptr.exp: ptype diamond.*diamond_pfunc_ptr
+PASS: gdb.cp/member-ptr.exp: print diamond.*diamond_pfunc_ptr (20)
+PASS: gdb.cp/member-ptr.exp: print (diamond.*diamond_pfunc_ptr) (20)
+PASS: gdb.cp/member-ptr.exp: print diamond.func_ptr (20)
+PASS: gdb.cp/member-ptr.exp: ptype pmf
+PASS: gdb.cp/member-ptr.exp: print pmf
+PASS: gdb.cp/member-ptr.exp: ptype pmf_p
+PASS: gdb.cp/member-ptr.exp: gdb/NNNN
+PASS: gdb.cp/member-ptr.exp: print a.*pmf
+PASS: gdb.cp/member-ptr.exp: print a_p->*pmf
+PASS: gdb.cp/member-ptr.exp: set var pmf = &A::foo
+PASS: gdb.cp/member-ptr.exp: print *pmf
+PASS: gdb.cp/member-ptr.exp: ptype *pmf
+PASS: gdb.cp/member-ptr.exp: print (a.*pmf)(3)
+PASS: gdb.cp/member-ptr.exp: ptype a.*pmf
+PASS: gdb.cp/member-ptr.exp: ptype (a.*pmf)(3)
+PASS: gdb.cp/member-ptr.exp: print diamond_pmi
+PASS: gdb.cp/member-ptr.exp: print diamond.*diamond_pmi
+PASS: gdb.cp/member-ptr.exp: print diamond.*left_pmf
+PASS: gdb.cp/member-ptr.exp: print diamond.*right_pmf
+PASS: gdb.cp/member-ptr.exp: print (diamond.*left_pmf) ()
+PASS: gdb.cp/member-ptr.exp: print (diamond.*right_pmf) ()
+PASS: gdb.cp/member-ptr.exp: print diamond.*left_vpmf
+PASS: gdb.cp/member-ptr.exp: print diamond.*right_vpmf
+PASS: gdb.cp/member-ptr.exp: print (diamond.*left_vpmf) ()
+PASS: gdb.cp/member-ptr.exp: print (diamond.*left_base_vpmf) ()
+PASS: gdb.cp/member-ptr.exp: print (diamond.*right_vpmf) ()
+PASS: gdb.cp/member-ptr.exp: print left_vpmf
+PASS: gdb.cp/member-ptr.exp: print right_vpmf
+PASS: gdb.cp/member-ptr.exp: print base_vpmf
+PASS: gdb.cp/member-ptr.exp: print diamond.*left_vpmf ()
+PASS: gdb.cp/member-ptr.exp: print null_pmi
+PASS: gdb.cp/member-ptr.exp: print null_pmi = &A::j
+PASS: gdb.cp/member-ptr.exp: print null_pmi = 0
+PASS: gdb.cp/member-ptr.exp: print null_pmf
+PASS: gdb.cp/member-ptr.exp: print null_pmf = &A::foo
+PASS: gdb.cp/member-ptr.exp: print null_pmf = 0
+Running ./gdb.cp/method2.exp ...
+PASS: gdb.cp/method2.exp: set multiple-symbols ask
+PASS: gdb.cp/method2.exp: setting language c
+PASS: gdb.cp/method2.exp: breaking in method (c)
+PASS: gdb.cp/method2.exp: setting language c++
+PASS: gdb.cp/method2.exp: breaking in method (c++)
+PASS: gdb.cp/method2.exp: continue until exit at continue to end
+Running ./gdb.cp/method.exp ...
+PASS: gdb.cp/method.exp: break A::foo
+PASS: gdb.cp/method.exp: continue to A::foo
+PASS: gdb.cp/method.exp: print x in A::foo
+PASS: gdb.cp/method.exp: print this in A::foo
+PASS: gdb.cp/method.exp: break A::bar
+PASS: gdb.cp/method.exp: continue to A::bar
+PASS: gdb.cp/method.exp: print x in A::bar
+PASS: gdb.cp/method.exp: print this in A::bar
+PASS: gdb.cp/method.exp: break 21
+PASS: gdb.cp/method.exp: continue to 21
+PASS: gdb.cp/method.exp: print data_ in funk::getFunky
+PASS: gdb.cp/method.exp: print this in funk::getFunky
+PASS: gdb.cp/method.exp: print res in funk::getFunky
+PASS: gdb.cp/method.exp: ptype A
+PASS: gdb.cp/method.exp: finish program
+Running ./gdb.cp/meth-typedefs.exp ...
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_other_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_other_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(my_type_2, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(my_type_2, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(int, const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(int, const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(aenum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(aenum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, astruct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, astruct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, astruct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, astruct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, anon_struct const&, aunion const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, anon_struct const&, aunion const***)'
+PASS: gdb.cp/meth-typedefs.exp: list test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: break test(anon_enum, anon_struct const&, anon_union const***)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(anon_enum, anon_struct const&, anon_union const***)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(fptr1*)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(fptr1*)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (**) (my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (**) (my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (**) (my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (**) (my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (**) (const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (**) (const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(fptr3)
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(fptr3)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(fptr2, my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(fptr2, my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_other_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(fptr2, my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(fptr2, my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), my_type))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(fptr2, const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(fptr2, const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_other_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), my_type_2), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(fptr1, int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_other_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (my_type), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(void (*)(void (*)(void (*) (const char* const*), int), const char* const*))'
+PASS: gdb.cp/meth-typedefs.exp: list test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: break test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(my_other_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(my_other_type)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_other_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_other_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_other_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_other_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(my_type)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(my_type)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_type, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_type, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_type, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(my_type, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(my_type, int)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test(const char* const*)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test(const char* const*)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(const char* const*, my_other_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(const char* const*, my_type_2)'
+PASS: gdb.cp/meth-typedefs.exp: list B::test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: list 'B::test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: break B::test<my_other_type, my_other_type_2>(const char* const*, int)
+PASS: gdb.cp/meth-typedefs.exp: break 'B::test<my_other_type, my_other_type_2>(const char* const*, int)'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::foo(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::foo(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::foo(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::foo(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(CORE_ADDR (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(CORE_ADDR (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list A::FOO::test(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: list 'A::FOO::test(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: break A::FOO::test(unsigned long (*) [10])
+PASS: gdb.cp/meth-typedefs.exp: break 'A::FOO::test(unsigned long (*) [10])'
+PASS: gdb.cp/meth-typedefs.exp: list test(_BAR_&)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(_BAR_&)'
+PASS: gdb.cp/meth-typedefs.exp: break test(_BAR_&)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(_BAR_&)'
+PASS: gdb.cp/meth-typedefs.exp: list test(a::b::BAR&)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(a::b::BAR&)'
+PASS: gdb.cp/meth-typedefs.exp: break test(a::b::BAR&)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(a::b::BAR&)'
+PASS: gdb.cp/meth-typedefs.exp: list test(a::b::c::d::bar&)
+PASS: gdb.cp/meth-typedefs.exp: list 'test(a::b::c::d::bar&)'
+PASS: gdb.cp/meth-typedefs.exp: break test(a::b::c::d::bar&)
+PASS: gdb.cp/meth-typedefs.exp: break 'test(a::b::c::d::bar&)'
+Running ./gdb.cp/minsym-fallback.exp ...
+PASS: gdb.cp/minsym-fallback.exp: set breakpoint pending off
+PASS: gdb.cp/minsym-fallback.exp: break C::f()
+PASS: gdb.cp/minsym-fallback.exp: break C::operator()()
+Running ./gdb.cp/misc.exp ...
+PASS: gdb.cp/misc.exp: deduced language is C++, before full symbols
+PASS: gdb.cp/misc.exp: deduced language is C++, after full symbols
+PASS: gdb.cp/misc.exp: print s.a for foo struct (known gcc 2.7.2 and earlier bug)
+PASS: gdb.cp/misc.exp: print as bool (setup)
+PASS: gdb.cp/misc.exp: print as bool (print 1 == 1)
+PASS: gdb.cp/misc.exp: print as bool (print 1 == 2)
+PASS: gdb.cp/misc.exp: print a bool var
+PASS: gdb.cp/misc.exp: set a bool var (setup)
+PASS: gdb.cp/misc.exp: set a bool var (print v_bool)
+PASS: gdb.cp/misc.exp: print a bool array
+PASS: gdb.cp/misc.exp: set a bool array elem (setup)
+PASS: gdb.cp/misc.exp: set a bool array elem (print v_bool_array)
+PASS: gdb.cp/misc.exp: print true
+PASS: gdb.cp/misc.exp: print false
+PASS: gdb.cp/misc.exp: 1 + true
+PASS: gdb.cp/misc.exp: 3 + false
+PASS: gdb.cp/misc.exp: 1 < 2 < 3
+PASS: gdb.cp/misc.exp: 2 < 1 > 4
+PASS: gdb.cp/misc.exp: (bool)43
+PASS: gdb.cp/misc.exp: (bool)0
+PASS: gdb.cp/misc.exp: (bool)17.93
+PASS: gdb.cp/misc.exp: (bool)0.0
+PASS: gdb.cp/misc.exp: (int)true
+PASS: gdb.cp/misc.exp: (int)false
+Running ./gdb.cp/m-static.exp ...
+PASS: gdb.cp/m-static.exp: continue to breakpoint: end of constructors
+PASS: gdb.cp/m-static.exp: simple object, static const int, accessing via 'class::method::variable
+PASS: gdb.cp/m-static.exp: simple object, static const bool
+PASS: gdb.cp/m-static.exp: simple object, static const int
+PASS: gdb.cp/m-static.exp: simple object, static long
+PASS: gdb.cp/m-static.exp: simple object, static enum
+FAIL: gdb.cp/m-static.exp: simple object instance, print quoted destructor
+FAIL: gdb.cp/m-static.exp: simple object class, ptype quoted destructor
+PASS: gdb.cp/m-static.exp: derived template object, base static const bool
+PASS: gdb.cp/m-static.exp: derived template object, base static const int
+PASS: gdb.cp/m-static.exp: derived template object, base static long
+PASS: gdb.cp/m-static.exp: derived template object, base static enum
+PASS: gdb.cp/m-static.exp: derived template object, static enum
+PASS: gdb.cp/m-static.exp: template object, static const bool
+PASS: gdb.cp/m-static.exp: template object, static const int
+PASS: gdb.cp/m-static.exp: template object, static long
+PASS: gdb.cp/m-static.exp: template object, static enum
+PASS: gdb.cp/m-static.exp: template object, static derived enum
+PASS: gdb.cp/m-static.exp: static const int initialized elsewhere
+PASS: gdb.cp/m-static.exp: static const int initialized nowhere
+PASS: gdb.cp/m-static.exp: static const int initialized in class definition
+PASS: gdb.cp/m-static.exp: static const float initialized in class definition
+PASS: gdb.cp/m-static.exp: info variable everywhere
+PASS: gdb.cp/m-static.exp: step
+PASS: gdb.cp/m-static.exp: print svar
+Running ./gdb.cp/namespace-enum.exp ...
+PASS: gdb.cp/namespace-enum.exp: print foo::B::B_B
+PASS: gdb.cp/namespace-enum.exp: print foo::B_B
+PASS: gdb.cp/namespace-enum.exp: print A_A
+Running ./gdb.cp/namespace.exp ...
+PASS: gdb.cp/namespace.exp: show lang
+PASS: gdb.cp/namespace.exp: up from marker1
+PASS: gdb.cp/namespace.exp: print 'AAA::c'
+PASS: gdb.cp/namespace.exp: print AAA::c
+PASS: gdb.cp/namespace.exp: print ina
+PASS: gdb.cp/namespace.exp: ptype ina
+PASS: gdb.cp/namespace.exp: info func xyzq
+PASS: gdb.cp/namespace.exp: print 'AAA::xyzq'('x')
+PASS: gdb.cp/namespace.exp: print AAA::xyzq('x')
+PASS: gdb.cp/namespace.exp: break AAA::xyzq
+PASS: gdb.cp/namespace.exp: break ::ensureOtherRefs
+PASS: gdb.cp/namespace.exp: print 'BBB::CCC::xyzq'('x')
+PASS: gdb.cp/namespace.exp: print BBB::CCC::xyzq('x')
+PASS: gdb.cp/namespace.exp: break BBB::CCC::xyzq
+PASS: gdb.cp/namespace.exp: break ::BBB::CCC::xyzq
+PASS: gdb.cp/namespace.exp: print 'BBB::Class::xyzq'
+PASS: gdb.cp/namespace.exp: print BBB::Class::xyzq
+PASS: gdb.cp/namespace.exp: break BBB::Class::xyzq
+PASS: gdb.cp/namespace.exp: whatis C::cOtherFileType
+PASS: gdb.cp/namespace.exp: whatis ::C::cOtherFileType
+PASS: gdb.cp/namespace.exp: whatis C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: whatis ::C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: print C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: print ::C::cOtherFileVar
+PASS: gdb.cp/namespace.exp: whatis C::OtherFileClass::cOtherFileClassType
+PASS: gdb.cp/namespace.exp: whatis ::C::OtherFileClass::cOtherFileClassType
+PASS: gdb.cp/namespace.exp: print C::OtherFileClass::cOtherFileClassVar
+PASS: gdb.cp/namespace.exp: print ::cOtherFileClassVar
+PASS: gdb.cp/namespace.exp: print ::C::OtherFileClass::cOtherFileClassVar
+PASS: gdb.cp/namespace.exp: print c
+PASS: gdb.cp/namespace.exp: print cc
+PASS: gdb.cp/namespace.exp: print 'C::cc'
+PASS: gdb.cp/namespace.exp: print C::cc
+PASS: gdb.cp/namespace.exp: print cd
+PASS: gdb.cp/namespace.exp: print C::D::cd
+PASS: gdb.cp/namespace.exp: print 'E::cde'
+PASS: gdb.cp/namespace.exp: print E::cde
+PASS: gdb.cp/namespace.exp: print shadow
+PASS: gdb.cp/namespace.exp: print E::ce
+PASS: gdb.cp/namespace.exp: ptype C
+PASS: gdb.cp/namespace.exp: ptype E
+PASS: gdb.cp/namespace.exp: ptype CClass
+PASS: gdb.cp/namespace.exp: ptype CClass::NestedClass
+PASS: gdb.cp/namespace.exp: ptype NestedClass
+PASS: gdb.cp/namespace.exp: ptype ::C::CClass
+PASS: gdb.cp/namespace.exp: ptype ::C::CClass::NestedClass
+PASS: gdb.cp/namespace.exp: ptype ::C::NestedClass
+PASS: gdb.cp/namespace.exp: ptype C::CClass
+PASS: gdb.cp/namespace.exp: ptype C::CClass::NestedClass
+PASS: gdb.cp/namespace.exp: ptype C::NestedClass
+PASS: gdb.cp/namespace.exp: print cOtherFile
+PASS: gdb.cp/namespace.exp: ptype OtherFileClass
+PASS: gdb.cp/namespace.exp: ptype ::C::OtherFileClass
+PASS: gdb.cp/namespace.exp: ptype C::OtherFileClass
+PASS: gdb.cp/namespace.exp: ptype OtherFileClass typedefs
+PASS: gdb.cp/namespace.exp: ptype ::C::OtherFileClass typedefs
+PASS: gdb.cp/namespace.exp: print cX
+PASS: gdb.cp/namespace.exp: print 'F::cXf'
+PASS: gdb.cp/namespace.exp: print F::cXf
+PASS: gdb.cp/namespace.exp: print F::cXfX
+PASS: gdb.cp/namespace.exp: print X
+PASS: gdb.cp/namespace.exp: print 'G::Xg'
+PASS: gdb.cp/namespace.exp: print G::Xg
+PASS: gdb.cp/namespace.exp: print G::XgX
+PASS: gdb.cp/namespace.exp: print cXOtherFile
+PASS: gdb.cp/namespace.exp: print XOtherFile
+PASS: gdb.cp/namespace.exp: print AAA::ALPHA
+PASS: gdb.cp/namespace.exp: whatis ::C::CClass::NestedClass
+PASS: gdb.cp/namespace.exp: whatis ::C::CClass::NestedClass *
+Running ./gdb.cp/namespace-nested-import.exp ...
+PASS: gdb.cp/namespace-nested-import.exp: print C::x
+Running ./gdb.cp/nextoverthrow.exp ...
+UNSUPPORTED: gdb.cp/nextoverthrow.exp: nextoverthrow.exp could not find _Unwind_DebugHook
+Running ./gdb.cp/no-dmgl-verbose.exp ...
+PASS: gdb.cp/no-dmgl-verbose.exp: set breakpoint pending off
+PASS: gdb.cp/no-dmgl-verbose.exp: DMGL_VERBOSE-demangled f(std::string) is not defined
+Running ./gdb.cp/noparam.exp ...
+PASS: gdb.cp/noparam.exp: p C::m (int)
+Running ./gdb.cp/nsdecl.exp ...
+PASS: gdb.cp/nsdecl.exp: print fakex
+Running ./gdb.cp/nsimport.exp ...
+PASS: gdb.cp/nsimport.exp: print x
+PASS: gdb.cp/nsimport.exp: print xx
+PASS: gdb.cp/nsimport.exp: print xxx
+Running ./gdb.cp/nsnested.exp ...
+PASS: gdb.cp/nsnested.exp: print ab
+PASS: gdb.cp/nsnested.exp: continue to breakpoint: C::first
+PASS: gdb.cp/nsnested.exp: print ab
+PASS: gdb.cp/nsnested.exp: print C::D::ab
+PASS: gdb.cp/nsnested.exp: continue to breakpoint: C::D::second
+PASS: gdb.cp/nsnested.exp: print ab
+Running ./gdb.cp/nsnoimports.exp ...
+PASS: gdb.cp/nsnoimports.exp: print A::_a
+PASS: gdb.cp/nsnoimports.exp: print A::B::ab
+PASS: gdb.cp/nsnoimports.exp: print A::B::C::abc
+PASS: gdb.cp/nsnoimports.exp: print _a
+PASS: gdb.cp/nsnoimports.exp: print ab
+PASS: gdb.cp/nsnoimports.exp: print abc
+PASS: gdb.cp/nsnoimports.exp: continue to breakpoint: A::B::first
+PASS: gdb.cp/nsnoimports.exp: print A::_a
+PASS: gdb.cp/nsnoimports.exp: print A::B::ab
+PASS: gdb.cp/nsnoimports.exp: print A::B::C::abc
+PASS: gdb.cp/nsnoimports.exp: print _a
+PASS: gdb.cp/nsnoimports.exp: print ab
+PASS: gdb.cp/nsnoimports.exp: print C::abc
+PASS: gdb.cp/nsnoimports.exp: print abc
+PASS: gdb.cp/nsnoimports.exp: continue to breakpoint: A::B::C::second
+PASS: gdb.cp/nsnoimports.exp: print A::_a
+PASS: gdb.cp/nsnoimports.exp: print A::B::ab
+PASS: gdb.cp/nsnoimports.exp: print A::B::C::abc
+PASS: gdb.cp/nsnoimports.exp: print _a
+PASS: gdb.cp/nsnoimports.exp: print ab
+PASS: gdb.cp/nsnoimports.exp: print abc
+Running ./gdb.cp/nsrecurs.exp ...
+PASS: gdb.cp/nsrecurs.exp: print ax
+PASS: gdb.cp/nsrecurs.exp: print dx
+PASS: gdb.cp/nsrecurs.exp: print xx
+KFAIL: gdb.cp/nsrecurs.exp: ptype G::GF (PRMS: gdb/10541)
+KFAIL: gdb.cp/nsrecurs.exp: print G::GF::FE::ex (PRMS: gdb/10541)
+Running ./gdb.cp/nsstress.exp ...
+PASS: gdb.cp/nsstress.exp: print y
+Running ./gdb.cp/nsusing.exp ...
+PASS: gdb.cp/nsusing.exp: print _a
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker3
+PASS: gdb.cp/nsusing.exp: Print _a without import
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker1 stop
+PASS: gdb.cp/nsusing.exp: print _a in a nested scope
+PASS: gdb.cp/nsusing.exp: print cc
+PASS: gdb.cp/nsusing.exp: print B::_a
+PASS: gdb.cp/nsusing.exp: print _a in namespace alias scope
+PASS: gdb.cp/nsusing.exp: print x in namespace alias scope
+PASS: gdb.cp/nsusing.exp: Print _a without import
+PASS: gdb.cp/nsusing.exp: print dx
+PASS: gdb.cp/nsusing.exp: print efx
+PASS: gdb.cp/nsusing.exp: print ghx
+PASS: gdb.cp/nsusing.exp: print jx
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: K::marker9
+PASS: gdb.cp/nsusing.exp: print jx
+PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker10 stop
+PASS: gdb.cp/nsusing.exp: print x (from M::x)
+Running ./gdb.cp/operator.exp ...
+PASS: gdb.cp/operator.exp: global operator
+PASS: gdb.cp/operator.exp: global operator overload
+PASS: gdb.cp/operator.exp: ADL operator
+PASS: gdb.cp/operator.exp: ADL operator overload
+PASS: gdb.cp/operator.exp: Fully qualified explicit operator call
+PASS: gdb.cp/operator.exp: anonymous namespace operator
+PASS: gdb.cp/operator.exp: anonymous namespace operator overload
+PASS: gdb.cp/operator.exp: anonymous namespace operator overload float
+PASS: gdb.cp/operator.exp: imported operator
+PASS: gdb.cp/operator.exp: imported operator overload
+PASS: gdb.cp/operator.exp: imported operator overload float
+PASS: gdb.cp/operator.exp: member operator
+PASS: gdb.cp/operator.exp: member operator overload
+PASS: gdb.cp/operator.exp: namespace alias
+PASS: gdb.cp/operator.exp: imported declaration
+PASS: gdb.cp/operator.exp: p l == 1
+PASS: gdb.cp/operator.exp: p x[0]
+Running ./gdb.cp/oranking.exp ...
+PASS: gdb.cp/oranking.exp: continue to breakpoint: end of main
+KFAIL: gdb.cp/oranking.exp: p foo0(b) (PRMS: gdb/12096)
+PASS: gdb.cp/oranking.exp: p test1()
+PASS: gdb.cp/oranking.exp: p foo1(b)
+PASS: gdb.cp/oranking.exp: p test2()
+KFAIL: gdb.cp/oranking.exp: p foo2(b) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test3()
+PASS: gdb.cp/oranking.exp: p foo3(1.0f)
+PASS: gdb.cp/oranking.exp: p test4()
+KFAIL: gdb.cp/oranking.exp: p foo4(&a) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test5()
+PASS: gdb.cp/oranking.exp: p foo5(c)
+PASS: gdb.cp/oranking.exp: p test6()
+PASS: gdb.cp/oranking.exp: p foo6(bp)
+PASS: gdb.cp/oranking.exp: p test7()
+PASS: gdb.cp/oranking.exp: p foo7(cp)
+PASS: gdb.cp/oranking.exp: p test8()
+PASS: gdb.cp/oranking.exp: p foo8(co)
+PASS: gdb.cp/oranking.exp: p test9()
+PASS: gdb.cp/oranking.exp: p foo9(co)
+PASS: gdb.cp/oranking.exp: p test10()
+KFAIL: gdb.cp/oranking.exp: p foo10(amp) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test101()
+KFAIL: gdb.cp/oranking.exp: p foo101("abc") (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test11()
+KFAIL: gdb.cp/oranking.exp: p foo11(d) (PRMS: gdb/12096)
+PASS: gdb.cp/oranking.exp: p test12()
+PASS: gdb.cp/oranking.exp: p foo12(1)
+PASS: gdb.cp/oranking.exp: p test13()
+KFAIL: gdb.cp/oranking.exp: p foo13(c) (PRMS: gdb/12098)
+PASS: gdb.cp/oranking.exp: p test14()
+KFAIL: gdb.cp/oranking.exp: p foo14(e) (PRMS: gdb/12096)
+Running ./gdb.cp/overload-const.exp ...
+PASS: gdb.cp/overload-const.exp: set language c++
+PASS: gdb.cp/overload-const.exp: setting breakpoint at myclass::func
+Running ./gdb.cp/overload.exp ...
+PASS: gdb.cp/overload.exp: up from marker1
+PASS: gdb.cp/overload.exp: print foo_instance1
+PASS: gdb.cp/overload.exp: ptype foo_instance1 (shorter match)
+PASS: gdb.cp/overload.exp: print foo_instance2
+PASS: gdb.cp/overload.exp: print foo_instance3
+PASS: gdb.cp/overload.exp: print call overloaded func 1 arg
+PASS: gdb.cp/overload.exp: re-selected 'main' frame after inferior call
+PASS: gdb.cp/overload.exp: print call overloaded func 2 args
+PASS: gdb.cp/overload.exp: print call overloaded func 3 args
+PASS: gdb.cp/overload.exp: print call overloaded func 4 args
+PASS: gdb.cp/overload.exp: print call overloaded func 5 args
+PASS: gdb.cp/overload.exp: print call overloaded func 6 args
+PASS: gdb.cp/overload.exp: print call overloaded func 7 args
+PASS: gdb.cp/overload.exp: print call overloaded func 8 args
+PASS: gdb.cp/overload.exp: print call overloaded func 9 args
+PASS: gdb.cp/overload.exp: print call overloaded func 10 args
+PASS: gdb.cp/overload.exp: print call overloaded func 11 args
+PASS: gdb.cp/overload.exp: print call overloaded func void arg
+PASS: gdb.cp/overload.exp: print call overloaded func char arg
+PASS: gdb.cp/overload.exp: print call overloaded func signed char arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned char arg
+PASS: gdb.cp/overload.exp: print call overloaded func short arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned short arg
+PASS: gdb.cp/overload.exp: print call overloaded func int arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned int arg
+PASS: gdb.cp/overload.exp: print call overloaded func long arg
+PASS: gdb.cp/overload.exp: print call overloaded func unsigned long arg
+PASS: gdb.cp/overload.exp: print call overloaded func float arg
+PASS: gdb.cp/overload.exp: print call overloaded func double arg
+PASS: gdb.cp/overload.exp: print call overloaded func int\* arg
+PASS: gdb.cp/overload.exp: print call overloaded func char\* arg
+PASS: gdb.cp/overload.exp: print bar(a)
+PASS: gdb.cp/overload.exp: print bar(b)
+PASS: gdb.cp/overload.exp: print bar(c)
+PASS: gdb.cp/overload.exp: print bar(d)
+PASS: gdb.cp/overload.exp: list overloaded function with no args
+PASS: gdb.cp/overload.exp: list overloaded function with int arg
+PASS: gdb.cp/overload.exp: list overloaded function with function ptr args
+PASS: gdb.cp/overload.exp: list overloaded function with function ptr args - quotes around argument
+PASS: gdb.cp/overload.exp: list overload.cc:intToChar
+PASS: gdb.cp/overload.exp: list overload.cc:intToChar(char)
+PASS: gdb.cp/overload.exp: list overload.cc:'intToChar(char)'
+PASS: gdb.cp/overload.exp: list 'overload.cc:intToChar(char)'
+PASS: gdb.cp/overload.exp: list 'overload.cc':intToChar(char)
+PASS: gdb.cp/overload.exp: list 'overload.cc':'intToChar(char)'
+PASS: gdb.cp/overload.exp: list overload.cc:foo::overloadfnarg(int)
+PASS: gdb.cp/overload.exp: list overload.cc:'foo::overloadfnarg(int)'
+PASS: gdb.cp/overload.exp: print overloadNamespace(1)
+PASS: gdb.cp/overload.exp: print overloadNamespace('a')
+PASS: gdb.cp/overload.exp: print overloadNamespace(dummyInstance)
+PASS: gdb.cp/overload.exp: print K::staticoverload ()
+PASS: gdb.cp/overload.exp: print K::staticoverload (2)
+PASS: gdb.cp/overload.exp: print K::staticoverload (2, 3)
+PASS: gdb.cp/overload.exp: print N::nsoverload ()
+PASS: gdb.cp/overload.exp: print N::nsoverload (2)
+PASS: gdb.cp/overload.exp: print N::nsoverload (2, 3)
+PASS: gdb.cp/overload.exp: print overloadNamespace(1) in XXX
+PASS: gdb.cp/overload.exp: print overloadNamespace('a') in XXX
+PASS: gdb.cp/overload.exp: print overloadNamespace(dummyInstance) in XXX
+PASS: gdb.cp/overload.exp: print intToChar(1)
+PASS: gdb.cp/overload.exp: print foo::overload1arg
+PASS: gdb.cp/overload.exp: print foo::overload1arg(char***)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(void)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(char)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(signed char)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned char)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(short)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned short)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(int)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned int)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(long)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(unsigned long)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(float)
+PASS: gdb.cp/overload.exp: print foo::overload1arg(double)
+Running ./gdb.cp/ovldbreak.exp ...
+PASS: gdb.cp/ovldbreak.exp: detect void
+PASS: gdb.cp/ovldbreak.exp: detect char
+PASS: gdb.cp/ovldbreak.exp: detect signed_char
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_char
+PASS: gdb.cp/ovldbreak.exp: detect short_int
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_short_int
+PASS: gdb.cp/ovldbreak.exp: detect int
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_int
+PASS: gdb.cp/ovldbreak.exp: detect long_int
+PASS: gdb.cp/ovldbreak.exp: detect unsigned_long_int
+PASS: gdb.cp/ovldbreak.exp: detect float
+PASS: gdb.cp/ovldbreak.exp: detect double
+PASS: gdb.cp/ovldbreak.exp: set multiple-symbols ask
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 2
+PASS: gdb.cp/ovldbreak.exp: set bp 2 on foo::overload1arg 2 line 107
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 3
+PASS: gdb.cp/ovldbreak.exp: set bp 3 on foo::overload1arg 3 line 110
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 4
+PASS: gdb.cp/ovldbreak.exp: set bp 4 on foo::overload1arg 4 line 140
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 5
+PASS: gdb.cp/ovldbreak.exp: set bp 5 on foo::overload1arg 5 line 137
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 6
+PASS: gdb.cp/ovldbreak.exp: set bp 6 on foo::overload1arg 6 line 125
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 7
+PASS: gdb.cp/ovldbreak.exp: set bp 7 on foo::overload1arg 7 line 131
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 8
+PASS: gdb.cp/ovldbreak.exp: set bp 8 on foo::overload1arg 8 line 119
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 9
+PASS: gdb.cp/ovldbreak.exp: set bp 9 on foo::overload1arg 9 line 113
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 10
+PASS: gdb.cp/ovldbreak.exp: set bp 10 on foo::overload1arg 10 line 116
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 11
+PASS: gdb.cp/ovldbreak.exp: set bp 11 on foo::overload1arg 11 line 128
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 12
+PASS: gdb.cp/ovldbreak.exp: set bp 12 on foo::overload1arg 12 line 134
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 13
+PASS: gdb.cp/ovldbreak.exp: set bp 13 on foo::overload1arg 13 line 122
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after setting one-by-one)
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice cancel
+PASS: gdb.cp/ovldbreak.exp: set bp on overload1arg canceled
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after cancel)
+PASS: gdb.cp/ovldbreak.exp: delete all breakpoints
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after delete)
+PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice all
+PASS: gdb.cp/ovldbreak.exp: set bp on overload1arg all
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after setting on all)
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : void
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : char
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : signed_char
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_char
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : short_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_short_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : long_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_long_int
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : float
+PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : double
+PASS: gdb.cp/ovldbreak.exp: set multiple-symbols cancel
+PASS: gdb.cp/ovldbreak.exp: break foo::foofunc
+PASS: gdb.cp/ovldbreak.exp: set multiple-symbols all
+PASS: gdb.cp/ovldbreak.exp: break foo::foofunc
+PASS: gdb.cp/ovldbreak.exp: continue until exit at finish program
+Running ./gdb.cp/ovsrch.exp ...
+PASS: gdb.cp/ovsrch.exp: break A::stop_here
+PASS: gdb.cp/ovsrch.exp: break 'A::stop_here'
+PASS: gdb.cp/ovsrch.exp: continue to breakpoint: stop_here
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (char*)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (char*)  const'
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (char*)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (char*)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (char*)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (char*)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (void)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (void)  const'
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (int)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (int)  const'
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (int)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (int)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::outer::foo  (int)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::outer::foo  (int)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::outer::hibob if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::B::stop_here_too
+PASS: gdb.cp/ovsrch.exp: break 'A::B::stop_here_too'
+PASS: gdb.cp/ovsrch.exp: continue to breakpoint: stop_here_too
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (char*)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (char*)  const'
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (char*)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (char*)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (char*)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (char*)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (void)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (void)  const'
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (int)  const
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (int)  const'
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (int)  const if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (int)  const' if (a_param == 3)
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::foo  (int)  const if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break 'A::B::inner::foo  (int)  const' if (A::outer::func ())
+PASS: gdb.cp/ovsrch.exp: break A::B::inner::hibob if (a_param == 3)
+Running ./gdb.cp/paren-type.exp ...
+PASS: gdb.cp/paren-type.exp: set breakpoint pending off
+PASS: gdb.cp/paren-type.exp: break C::f(long)
+PASS: gdb.cp/paren-type.exp: break C::f(short)
+Running ./gdb.cp/parse-lang.exp ...
+PASS: gdb.cp/parse-lang.exp: breakpoint hit
+Running ./gdb.cp/pass-by-ref.exp ...
+PASS: gdb.cp/pass-by-ref.exp: call function in obj
+PASS: gdb.cp/pass-by-ref.exp: call function in derived
+PASS: gdb.cp/pass-by-ref.exp: call function in container
+Running ./gdb.cp/pr-1023.exp ...
+PASS: gdb.cp/pr-1023.exp: break myClass::performBlocking
+PASS: gdb.cp/pr-1023.exp: break myClass::performUnblocking
+Running ./gdb.cp/pr10687.exp ...
+PASS: gdb.cp/pr10687.exp: continue to breakpoint: marker
+PASS: gdb.cp/pr10687.exp: p a
+Running ./gdb.cp/pr10728.exp ...
+PASS: gdb.cp/pr10728.exp: continue to breakpoint: marker 1
+PASS: gdb.cp/pr10728.exp: print x->y2 - x->y1
+Running ./gdb.cp/pr12028.exp ...
+PASS: gdb.cp/pr12028.exp: p D::foo(b)
+Running ./gdb.cp/pr-1210.exp ...
+PASS: gdb.cp/pr-1210.exp: step past initialization
+PASS: gdb.cp/pr-1210.exp: print *obj
+PASS: gdb.cp/pr-1210.exp: print obj->myB
+Running ./gdb.cp/pr-574.exp ...
+PASS: gdb.cp/pr-574.exp: continue to breakpoint: end of constructors
+PASS: gdb.cp/pr-574.exp: PR gdb/574
+Running ./gdb.cp/pr9067.exp ...
+PASS: gdb.cp/pr9067.exp: print b
+Running ./gdb.cp/pr9167.exp ...
+PASS: gdb.cp/pr9167.exp: continue to breakpoint: marker
+PASS: gdb.cp/pr9167.exp: p b
+Running ./gdb.cp/pr9631.exp ...
+PASS: gdb.cp/pr9631.exp: continue to breakpoint: after bar tender is initialized
+PASS: gdb.cp/pr9631.exp: print tender
+Running ./gdb.cp/printmethod.exp ...
+PASS: gdb.cp/printmethod.exp: continue to breakpoint: end of constructors
+PASS: gdb.cp/printmethod.exp: print virtual method.
+PASS: gdb.cp/printmethod.exp: print nonvirtual method.
+Running ./gdb.cp/psmang.exp ...
+PASS: gdb.cp/psmang.exp: break s::method1
+PASS: gdb.cp/psmang.exp: break s::method2
+Running ./gdb.cp/psymtab-parameter.exp ...
+PASS: gdb.cp/psymtab-parameter.exp: set language c++
+PASS: gdb.cp/psymtab-parameter.exp: maintenance info symtabs
+PASS: gdb.cp/psymtab-parameter.exp: complete p 'func<short>(
+Running ./gdb.cp/ptype-cv-cp.exp ...
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_const_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_const_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_const_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_const_volatile_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: whatis v_volatile_const_my_int
+PASS: gdb.cp/ptype-cv-cp.exp: ptype v_volatile_const_my_int
+Running ./gdb.cp/ptype-flags.exp ...
+PASS: gdb.cp/ptype-flags.exp: basic test
+PASS: gdb.cp/ptype-flags.exp: no methods
+PASS: gdb.cp/ptype-flags.exp: no typedefs
+PASS: gdb.cp/ptype-flags.exp: no methods or typedefs
+PASS: gdb.cp/ptype-flags.exp: raw
+PASS: gdb.cp/ptype-flags.exp: raw no methods
+PASS: gdb.cp/ptype-flags.exp: raw no typedefs
+PASS: gdb.cp/ptype-flags.exp: raw no methods or typedefs
+PASS: gdb.cp/ptype-flags.exp: set print type methods off
+PASS: gdb.cp/ptype-flags.exp: basic test, default methods off
+PASS: gdb.cp/ptype-flags.exp: methods, default methods off
+PASS: gdb.cp/ptype-flags.exp: no typedefs, default methods off
+PASS: gdb.cp/ptype-flags.exp: methods, no typedefs, default methods off
+PASS: gdb.cp/ptype-flags.exp: set print type typedefs off
+PASS: gdb.cp/ptype-flags.exp: basic test, default methods+typedefs off
+PASS: gdb.cp/ptype-flags.exp: methods, default methods+typedefs off
+PASS: gdb.cp/ptype-flags.exp: typedefs, default methods+typedefs off
+PASS: gdb.cp/ptype-flags.exp: methods typedefs, default methods+typedefs off
+Running ./gdb.cp/punctuator.exp ...
+PASS: gdb.cp/punctuator.exp: set lang c++
+PASS: gdb.cp/punctuator.exp: print (0x5a5a bitand 0xaaaa) == (0x5a5a & 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a bitor 0xaaaa) == (0x5a5a | 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a xor 0xaaaa) == (0x5a5a ^ 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a and 0xaaaa) == (0x5a5a && 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (0x5a5a or 0xaaaa) == (0x5a5a || 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (not not 0xaaaa) == (!!0xaaaa)
+PASS: gdb.cp/punctuator.exp: print (compl 0xaaaa) == (~0xaaaa)
+PASS: gdb.cp/punctuator.exp: set $u 1
+PASS: gdb.cp/punctuator.exp: set $v 1
+PASS: gdb.cp/punctuator.exp: print ($u not_eq 0xaaaa) == ($v != 0xaaaa)
+PASS: gdb.cp/punctuator.exp: print ($u and_eq 0xaaaa) == ($v &= 0xaaaa)
+PASS: gdb.cp/punctuator.exp: set $u 2
+PASS: gdb.cp/punctuator.exp: set $v 2
+PASS: gdb.cp/punctuator.exp: print ($u or_eq 0xaaaa) == ($v |= 0xaaaa)
+PASS: gdb.cp/punctuator.exp: set $u 3
+PASS: gdb.cp/punctuator.exp: set $v 3
+PASS: gdb.cp/punctuator.exp: print ($u xor_eq 0xaaaa) == ($v ^= 0xaaaa)
+Running ./gdb.cp/readnow-language.exp ...
+PASS: gdb.cp/readnow-language.exp: show language
+Running ./gdb.cp/ref-params.exp ...
+PASS: gdb.cp/ref-params.exp: print value of a Child in main
+PASS: gdb.cp/ref-params.exp: print value of f1 on Child in main
+PASS: gdb.cp/ref-params.exp: print value of f2 on Child in main
+PASS: gdb.cp/ref-params.exp: print value of f1 on (Child&) in main
+PASS: gdb.cp/ref-params.exp: print value of f2 on (Child&) in main
+PASS: gdb.cp/ref-params.exp: print value of Child& in f2
+PASS: gdb.cp/ref-params.exp: print value of f1 on Child& in f2
+PASS: gdb.cp/ref-params.exp: print value of Parent& in f1
+PASS: gdb.cp/ref-params.exp: print f1(MQ)
+PASS: gdb.cp/ref-params.exp: print mf1(MQ)
+PASS: gdb.cp/ref-params.exp: print mf2(MQ)
+PASS: gdb.cp/ref-params.exp: print f1(MQR)
+PASS: gdb.cp/ref-params.exp: print mf1(MQR)
+PASS: gdb.cp/ref-params.exp: print mf2(MQR)
+Running ./gdb.cp/ref-types.exp ...
+PASS: gdb.cp/ref-types.exp: up from marker1 1
+PASS: gdb.cp/ref-types.exp: print value of s
+PASS: gdb.cp/ref-types.exp: ptype s
+PASS: gdb.cp/ref-types.exp: print value of ps
+PASS: gdb.cp/ref-types.exp: ptype ps
+PASS: gdb.cp/ref-types.exp: print value of as[0]
+PASS: gdb.cp/ref-types.exp: ptype as
+PASS: gdb.cp/ref-types.exp: print value of as[1]
+PASS: gdb.cp/ref-types.exp: print value of as[2]
+PASS: gdb.cp/ref-types.exp: print value of as[3]
+PASS: gdb.cp/ref-types.exp: print value of rs
+PASS: gdb.cp/ref-types.exp: ptype rs
+PASS: gdb.cp/ref-types.exp: print value of *rps
+PASS: gdb.cp/ref-types.exp: examine value at rps
+PASS: gdb.cp/ref-types.exp: ptype rps
+PASS: gdb.cp/ref-types.exp: print value of ras[0]
+PASS: gdb.cp/ref-types.exp: ptype ras
+PASS: gdb.cp/ref-types.exp: print value of ras[1]
+PASS: gdb.cp/ref-types.exp: print value of ras[2]
+PASS: gdb.cp/ref-types.exp: print value of ras[3]
+PASS: gdb.cp/ref-types.exp: up from f
+PASS: gdb.cp/ref-types.exp: print value of C
+PASS: gdb.cp/ref-types.exp: ptype C
+PASS: gdb.cp/ref-types.exp: print value of UC
+PASS: gdb.cp/ref-types.exp: ptype UC
+PASS: gdb.cp/ref-types.exp: print value of S
+PASS: gdb.cp/ref-types.exp: ptype S
+PASS: gdb.cp/ref-types.exp: print value of US
+PASS: gdb.cp/ref-types.exp: ptype US
+PASS: gdb.cp/ref-types.exp: print value of I
+PASS: gdb.cp/ref-types.exp: ptype I
+PASS: gdb.cp/ref-types.exp: print value of UI
+PASS: gdb.cp/ref-types.exp: ptype UI
+PASS: gdb.cp/ref-types.exp: print value of L
+PASS: gdb.cp/ref-types.exp: ptype L
+PASS: gdb.cp/ref-types.exp: print value of UL
+PASS: gdb.cp/ref-types.exp: ptype UL
+PASS: gdb.cp/ref-types.exp: print value of F
+PASS: gdb.cp/ref-types.exp: ptype F
+PASS: gdb.cp/ref-types.exp: print value of D
+PASS: gdb.cp/ref-types.exp: ptype D
+PASS: gdb.cp/ref-types.exp: ptype rC
+PASS: gdb.cp/ref-types.exp: ptype rUC
+PASS: gdb.cp/ref-types.exp: ptype rS
+PASS: gdb.cp/ref-types.exp: ptype rUS
+PASS: gdb.cp/ref-types.exp: ptype rI
+PASS: gdb.cp/ref-types.exp: ptype rUI
+PASS: gdb.cp/ref-types.exp: ptype rL
+PASS: gdb.cp/ref-types.exp: ptype rUL
+PASS: gdb.cp/ref-types.exp: ptype rF
+PASS: gdb.cp/ref-types.exp: ptype rD
+PASS: gdb.cp/ref-types.exp: print value of rC
+PASS: gdb.cp/ref-types.exp: print value of rUC
+PASS: gdb.cp/ref-types.exp: print value of rS
+PASS: gdb.cp/ref-types.exp: print value of rUS
+PASS: gdb.cp/ref-types.exp: print value of rI
+PASS: gdb.cp/ref-types.exp: print value of UI
+PASS: gdb.cp/ref-types.exp: print value of rL
+PASS: gdb.cp/ref-types.exp: print value of rUL
+PASS: gdb.cp/ref-types.exp: print value of rF
+PASS: gdb.cp/ref-types.exp: print value of rD
+Running ./gdb.cp/re-set-overloaded.exp ...
+PASS: gdb.cp/re-set-overloaded.exp: set breakpoint pending yes
+PASS: gdb.cp/re-set-overloaded.exp: break C::C
+PASS: gdb.cp/re-set-overloaded.exp: set variable $brk = $bpnum
+PASS: gdb.cp/re-set-overloaded.exp: start
+PASS: gdb.cp/re-set-overloaded.exp: breakpoint resolved
+Running ./gdb.cp/rtti.exp ...
+PASS: gdb.cp/rtti.exp: continue to breakpoint: end of constructors in main
+PASS: gdb.cp/rtti.exp: print *e1
+PASS: gdb.cp/rtti.exp: print *e2
+PASS: gdb.cp/rtti.exp: continue to breakpoint: end of constructors in func
+PASS: gdb.cp/rtti.exp: print *obj
+PASS: gdb.cp/rtti.exp: continue to breakpoint: end of constructors in func3
+PASS: gdb.cp/rtti.exp: print *obj3
+Running ./gdb.cp/shadow.exp ...
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker1
+PASS: gdb.cp/shadow.exp: Print class x shadowing global x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker2
+PASS: gdb.cp/shadow.exp: Print local x shadowing class x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker3
+PASS: gdb.cp/shadow.exp: Print inner scope x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker4
+PASS: gdb.cp/shadow.exp: Print local x not namespace x
+PASS: gdb.cp/shadow.exp: continue to breakpoint: marker5
+PASS: gdb.cp/shadow.exp: Print imported namespace x
+Running ./gdb.cp/smartp.exp ...
+PASS: gdb.cp/smartp.exp: continue to breakpoint: end of main
+PASS: gdb.cp/smartp.exp: p mp->foo()
+PASS: gdb.cp/smartp.exp: p mtp->foo()
+PASS: gdb.cp/smartp.exp: p mt1.foo()
+PASS: gdb.cp/smartp.exp: p mt4p.a
+PASS: gdb.cp/smartp.exp: p mt4->a
+PASS: gdb.cp/smartp.exp: p sp1->foo()
+PASS: gdb.cp/smartp.exp: p sp2->foo()
+PASS: gdb.cp/smartp.exp: p sp3->foo(1)
+PASS: gdb.cp/smartp.exp: p sp3->foo('a')
+PASS: gdb.cp/smartp.exp: p sp4->a
+PASS: gdb.cp/smartp.exp: p sp4->b
+PASS: gdb.cp/smartp.exp: p mt4p->a
+PASS: gdb.cp/smartp.exp: p mt4p->b
+PASS: gdb.cp/smartp.exp: p mt4->fake
+PASS: gdb.cp/smartp.exp: p mt4->fake()
+PASS: gdb.cp/smartp.exp: p b->foo()
+PASS: gdb.cp/smartp.exp: p c->foo()
+PASS: gdb.cp/smartp.exp: p c->inta
+KFAIL: gdb.cp/smartp.exp: p c2->inta (PRMS: gdb/11606)
+Running ./gdb.cp/static-method.exp ...
+PASS: gdb.cp/static-method.exp: info addr A::func()
+PASS: gdb.cp/static-method.exp: list static-method.cc:xxx::(anonymous namespace)::func
+PASS: gdb.cp/static-method.exp: list 'static-method.cc:xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: list 'static-method.cc':'xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: list static-method.cc:'xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: continue to xxx::(anonymous namespace)::func
+PASS: gdb.cp/static-method.exp: continue to 'xxx::(anonymous namespace)::func'
+PASS: gdb.cp/static-method.exp: list static-method.cc:xxx::(anonymous namespace)::A::func
+PASS: gdb.cp/static-method.exp: list 'static-method.cc:xxx::(anonymous namespace)::A::func'
+PASS: gdb.cp/static-method.exp: list 'static-method.cc':'xxx::(anonymous namespace)::A::func'
+PASS: gdb.cp/static-method.exp: list static-method.cc:'xxx::(anonymous namespace)::A::func'
+PASS: gdb.cp/static-method.exp: continue to xxx::(anonymous namespace)::A::func
+PASS: gdb.cp/static-method.exp: continue to 'xxx::(anonymous namespace)::A::func'
+Running ./gdb.cp/static-print-quit.exp ...
+PASS: gdb.cp/static-print-quit.exp: set width 80
+PASS: gdb.cp/static-print-quit.exp: set height 2
+PASS: gdb.cp/static-print-quit.exp: print c - <return>
+PASS: gdb.cp/static-print-quit.exp: print c - q <return>
+PASS: gdb.cp/static-print-quit.exp: print c - to quit
+PASS: gdb.cp/static-print-quit.exp: q
+PASS: gdb.cp/static-print-quit.exp: set pagination off
+PASS: gdb.cp/static-print-quit.exp: first print
+PASS: gdb.cp/static-print-quit.exp: second print
+Running ./gdb.cp/temargs.exp ...
+PASS: gdb.cp/temargs.exp: set first breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set second breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set third breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set fourth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set fifth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: set sixth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to first breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in base_m
+PASS: gdb.cp/temargs.exp: test value of I in base_m
+PASS: gdb.cp/temargs.exp: test value of P in base_m
+PASS: gdb.cp/temargs.exp: test value of MP in base_m
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to second breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in inner_m
+PASS: gdb.cp/temargs.exp: test value of I in inner_m
+PASS: gdb.cp/temargs.exp: test value of P in inner_m
+PASS: gdb.cp/temargs.exp: test value of MP in inner_m
+PASS: gdb.cp/temargs.exp: test type of Z in inner_m
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to third breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in func
+PASS: gdb.cp/temargs.exp: test value of I in func
+PASS: gdb.cp/temargs.exp: test value of P in func
+PASS: gdb.cp/temargs.exp: test value of MP in func
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to fourth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of T in templ_m
+PASS: gdb.cp/temargs.exp: test value of I in templ_m
+PASS: gdb.cp/temargs.exp: test value of P in templ_m
+PASS: gdb.cp/temargs.exp: test value of MP in templ_m
+PASS: gdb.cp/temargs.exp: test type of Q in templ_m
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to fifth breakpoint for temargs
+PASS: gdb.cp/temargs.exp: test type of F in k2_m
+XFAIL: gdb.cp/temargs.exp: test value of F in k2_m (PRMS gcc/49366)
+PASS: gdb.cp/temargs.exp: continue to breakpoint: continue to sixth breakpoint for temargs
+XFAIL: gdb.cp/temargs.exp: test type of F in k3_m (PRMS gcc/49546)
+XFAIL: gdb.cp/temargs.exp: test value of F in k3_m (PRMS gcc/49546)
+Running ./gdb.cp/templates.exp ...
+PASS: gdb.cp/templates.exp: set multiple-symbols ask
+KFAIL: gdb.cp/templates.exp: ptype T5<int> (PRMS: gdb/8218)
+KFAIL: gdb.cp/templates.exp: ptype T5<int> (PRMS: gdb/8218)
+PASS: gdb.cp/templates.exp: constructor breakpoint
+PASS: gdb.cp/templates.exp: destructor breakpoint
+PASS: gdb.cp/templates.exp: value method breakpoint
+PASS: gdb.cp/templates.exp: breakpoint on a line with no real code
+PASS: gdb.cp/templates.exp: print method of template typedef
+XFAIL: gdb.cp/templates.exp: print destructor of template typedef (PRMS gcc/51668)
+PASS: gdb.cp/templates.exp: verify GCC PR debug/51668
+PASS: gdb.cp/templates.exp: ptype empty
+PASS: gdb.cp/templates.exp: ptype arg
+PASS: gdb.cp/templates.exp: print t5i.value()
+PASS: gdb.cp/templates.exp: b 770
+PASS: gdb.cp/templates.exp: continue to line 770
+PASS: gdb.cp/templates.exp: print fint
+PASS: gdb.cp/templates.exp: print fvpchar
+PASS: gdb.cp/templates.exp: ptype Foo
+PASS: gdb.cp/templates.exp: ptype fint
+PASS: gdb.cp/templates.exp: ptype fchar
+KFAIL: gdb.cp/templates.exp: ptype fvpchar (PRMS: gdb/1512)
+PASS: gdb.cp/templates.exp: print Foo<volatile char *>::foo
+PASS: gdb.cp/templates.exp: print Foo<volatile char*>::foo
+PASS: gdb.cp/templates.exp: ptype Bar
+PASS: gdb.cp/templates.exp: ptype bint
+PASS: gdb.cp/templates.exp: ptype bint2
+PASS: gdb.cp/templates.exp: ptype Baz
+PASS: gdb.cp/templates.exp: ptype bazint
+PASS: gdb.cp/templates.exp: ptype bazint2
+PASS: gdb.cp/templates.exp: ptype Qux
+PASS: gdb.cp/templates.exp: ptype quxint
+PASS: gdb.cp/templates.exp: ptype Spec
+PASS: gdb.cp/templates.exp: ptype siip
+PASS: gdb.cp/templates.exp: ptype Garply<int>
+PASS: gdb.cp/templates.exp: ptype Garply<Garply<char> >
+PASS: gdb.cp/templates.exp: print Garply<Garply<char> >::garply
+PASS: gdb.cp/templates.exp: break Garply<Garply<char> >::garply
+Running ./gdb.cp/try_catch.exp ...
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 1-throw
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 1-catch
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-start
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-next
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-throw
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 2-catch
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 3-throw
+PASS: gdb.cp/try_catch.exp: continue to breakpoint: marker 3-catch
+Running ./gdb.cp/typedef-operator.exp ...
+PASS: gdb.cp/typedef-operator.exp: set language c++
+PASS: gdb.cp/typedef-operator.exp: test crash
+PASS: gdb.cp/typedef-operator.exp: test typedef
+Running ./gdb.cp/userdef.exp ...
+PASS: gdb.cp/userdef.exp: break marker1
+PASS: gdb.cp/userdef.exp: continue to marker1
+PASS: gdb.cp/userdef.exp: up from marker1
+PASS: gdb.cp/userdef.exp: print one + two
+PASS: gdb.cp/userdef.exp: re-selected 'main' frame after inferior call
+PASS: gdb.cp/userdef.exp: print one - two
+PASS: gdb.cp/userdef.exp: print one * two
+PASS: gdb.cp/userdef.exp: print one / two
+PASS: gdb.cp/userdef.exp: print one % two
+PASS: gdb.cp/userdef.exp: print one && two
+PASS: gdb.cp/userdef.exp: print one || two
+PASS: gdb.cp/userdef.exp: print one & two
+PASS: gdb.cp/userdef.exp: print one | two
+PASS: gdb.cp/userdef.exp: print one ^ two
+PASS: gdb.cp/userdef.exp: print one < two
+PASS: gdb.cp/userdef.exp: print one <= two
+PASS: gdb.cp/userdef.exp: print one > two
+PASS: gdb.cp/userdef.exp: print one >= two
+PASS: gdb.cp/userdef.exp: print one == two
+PASS: gdb.cp/userdef.exp: print one.operator== (two)
+PASS: gdb.cp/userdef.exp: print one != two
+PASS: gdb.cp/userdef.exp: print one << 31
+PASS: gdb.cp/userdef.exp: print one >> 31
+PASS: gdb.cp/userdef.exp: print !one
+PASS: gdb.cp/userdef.exp: print +one
+PASS: gdb.cp/userdef.exp: print ~one
+PASS: gdb.cp/userdef.exp: print -one
+PASS: gdb.cp/userdef.exp: print one++
+PASS: gdb.cp/userdef.exp: print ++one
+PASS: gdb.cp/userdef.exp: print one--
+PASS: gdb.cp/userdef.exp: print --one
+PASS: gdb.cp/userdef.exp: print one += 7
+PASS: gdb.cp/userdef.exp: print two = one
+PASS: gdb.cp/userdef.exp: break A2::operator+
+PASS: gdb.cp/userdef.exp: break A2::operator +
+PASS: gdb.cp/userdef.exp: print c
+PASS: gdb.cp/userdef.exp: print *c
+PASS: gdb.cp/userdef.exp: print &*c
+PASS: gdb.cp/userdef.exp: ptype &*c
+PASS: gdb.cp/userdef.exp: print operator== (mem1, mem2)
+PASS: gdb.cp/userdef.exp: print operator== (mem1, mem1)
+Running ./gdb.cp/using-crash.exp ...
+PASS: gdb.cp/using-crash.exp: reload file
+Running ./gdb.cp/virtbase.exp ...
+PASS: gdb.cp/virtbase.exp: continue to breakpoint: first breakpoint
+PASS: gdb.cp/virtbase.exp: print *this
+PASS: gdb.cp/virtbase.exp: print x in get_y
+PASS: gdb.cp/virtbase.exp: continue to breakpoint: second breakpoint
+PASS: gdb.cp/virtbase.exp: print x in get_z
+PASS: gdb.cp/virtbase.exp: continue to breakpoint: third breakpoint
+PASS: gdb.cp/virtbase.exp: print *(D *) e
+PASS: gdb.cp/virtbase.exp: set print object on
+PASS: gdb.cp/virtbase.exp: print/x b->mA
+PASS: gdb.cp/virtbase.exp: print rtti_data
+PASS: gdb.cp/virtbase.exp: print pointer to virtual base at non-zero offset of larger object
+PASS: gdb.cp/virtbase.exp: print same pointer from history value
+PASS: gdb.cp/virtbase.exp: print whole pointed-to object, starting from the virtual base pointer
+Running ./gdb.cp/virtfunc2.exp ...
+PASS: gdb.cp/virtfunc2.exp: continue to breakpoint: marker 1
+PASS: gdb.cp/virtfunc2.exp: print o.do_print()
+PASS: gdb.cp/virtfunc2.exp: print o.do_print3()
+PASS: gdb.cp/virtfunc2.exp: print o2.do_print()
+PASS: gdb.cp/virtfunc2.exp: print o2.do_print2()
+PASS: gdb.cp/virtfunc2.exp: print o2.do_print3()
+PASS: gdb.cp/virtfunc2.exp: print o
+Running ./gdb.cp/virtfunc.exp ...
+PASS: gdb.cp/virtfunc.exp: ptype VA
+PASS: gdb.cp/virtfunc.exp: ptype VB
+PASS: gdb.cp/virtfunc.exp: ptype V
+PASS: gdb.cp/virtfunc.exp: ptype A
+PASS: gdb.cp/virtfunc.exp: ptype B
+PASS: gdb.cp/virtfunc.exp: ptype C
+PASS: gdb.cp/virtfunc.exp: ptype AD
+PASS: gdb.cp/virtfunc.exp: ptype D
+PASS: gdb.cp/virtfunc.exp: ptype E
+PASS: gdb.cp/virtfunc.exp: ptype dd
+PASS: gdb.cp/virtfunc.exp: ptype ppd
+PASS: gdb.cp/virtfunc.exp: ptype pAd
+PASS: gdb.cp/virtfunc.exp: ptype a
+PASS: gdb.cp/virtfunc.exp: ptype b
+PASS: gdb.cp/virtfunc.exp: ptype c
+PASS: gdb.cp/virtfunc.exp: ptype d
+PASS: gdb.cp/virtfunc.exp: ptype e
+PASS: gdb.cp/virtfunc.exp: ptype v
+PASS: gdb.cp/virtfunc.exp: ptype vb
+PASS: gdb.cp/virtfunc.exp: ptype pAa
+PASS: gdb.cp/virtfunc.exp: ptype pAe
+PASS: gdb.cp/virtfunc.exp: ptype pBe
+PASS: gdb.cp/virtfunc.exp: ptype pDd
+PASS: gdb.cp/virtfunc.exp: ptype pDe
+PASS: gdb.cp/virtfunc.exp: ptype pVa
+PASS: gdb.cp/virtfunc.exp: ptype pVv
+PASS: gdb.cp/virtfunc.exp: ptype pVe
+PASS: gdb.cp/virtfunc.exp: ptype pVd
+PASS: gdb.cp/virtfunc.exp: ptype pADe
+PASS: gdb.cp/virtfunc.exp: ptype pEe
+PASS: gdb.cp/virtfunc.exp: ptype pVB
+PASS: gdb.cp/virtfunc.exp: info vtbl a
+PASS: gdb.cp/virtfunc.exp: info vtbl b
+PASS: gdb.cp/virtfunc.exp: info vtbl c
+PASS: gdb.cp/virtfunc.exp: info vtbl d
+PASS: gdb.cp/virtfunc.exp: info vtbl e
+PASS: gdb.cp/virtfunc.exp: info vtbl pEe
+PASS: gdb.cp/virtfunc.exp: info vtbl
+PASS: gdb.cp/virtfunc.exp: info vtbl va
+PASS: gdb.cp/virtfunc.exp: info vtbl all_count
+PASS: gdb.cp/virtfunc.exp: print pAe->f()
+PASS: gdb.cp/virtfunc.exp: print pAa->f()
+PASS: gdb.cp/virtfunc.exp: print pDe->vg()
+PASS: gdb.cp/virtfunc.exp: print pADe->vg()
+PASS: gdb.cp/virtfunc.exp: print pDd->vg()
+PASS: gdb.cp/virtfunc.exp: print pEe->vvb()
+PASS: gdb.cp/virtfunc.exp: print pVB->vvb()
+PASS: gdb.cp/virtfunc.exp: print pBe->vvb()
+PASS: gdb.cp/virtfunc.exp: print pDe->vvb()
+PASS: gdb.cp/virtfunc.exp: print pEe->vd()
+PASS: gdb.cp/virtfunc.exp: print pEe->fvb()
+KFAIL: gdb.cp/virtfunc.exp: print pEe->D::vg() (PRMS: gdb/1064)
+PASS: gdb.cp/virtfunc.exp: next to pAa->f call
+PASS: gdb.cp/virtfunc.exp: next to pDe->vg call
+PASS: gdb.cp/virtfunc.exp: step through thunk into E::vg
+Running ./gdb.disasm/am33.exp ...
+Running ./gdb.disasm/h8300s.exp ...
+Running ./gdb.disasm/hppa.exp ...
+Running ./gdb.disasm/mn10300.exp ...
+Running ./gdb.disasm/sh3.exp ...
+Running ./gdb.disasm/t01_mov.exp ...
+Running ./gdb.disasm/t02_mova.exp ...
+Running ./gdb.disasm/t03_add.exp ...
+Running ./gdb.disasm/t04_sub.exp ...
+Running ./gdb.disasm/t05_cmp.exp ...
+Running ./gdb.disasm/t06_ari2.exp ...
+Running ./gdb.disasm/t07_ari3.exp ...
+Running ./gdb.disasm/t08_or.exp ...
+Running ./gdb.disasm/t09_xor.exp ...
+Running ./gdb.disasm/t10_and.exp ...
+Running ./gdb.disasm/t11_logs.exp ...
+Running ./gdb.disasm/t12_bit.exp ...
+Running ./gdb.disasm/t13_otr.exp ...
+Running ./gdb.dwarf2/callframecfa.exp ...
+Running ./gdb.dwarf2/clztest.exp ...
+PASS: gdb.dwarf2/clztest.exp: set breakpoint at clztest.c:12
+PASS: gdb.dwarf2/clztest.exp: continue to breakpoint: continue to clztest.c:12
+PASS: gdb.dwarf2/clztest.exp: check value of g at clztest.c:12
+PASS: gdb.dwarf2/clztest.exp: check value of f at clztest.c:12
+PASS: gdb.dwarf2/clztest.exp: set breakpoint at clztest.c:22
+PASS: gdb.dwarf2/clztest.exp: continue to breakpoint: continue to clztest.c:22
+PASS: gdb.dwarf2/clztest.exp: check value of g at clztest.c:22
+PASS: gdb.dwarf2/clztest.exp: check value of f at clztest.c:22
+Running ./gdb.dwarf2/dup-psym.exp ...
+PASS: gdb.dwarf2/dup-psym.exp: info sources should contain only one reference to file1.txt
+Running ./gdb.dwarf2/dw2-ada-ffffffff.exp ...
+PASS: gdb.dwarf2/dw2-ada-ffffffff.exp: p sizeof (t)
+PASS: gdb.dwarf2/dw2-ada-ffffffff.exp: ptype t
+Running ./gdb.dwarf2/dw2-anon-mptr.exp ...
+PASS: gdb.dwarf2/dw2-anon-mptr.exp: set cp-abi gnu-v3
+PASS: gdb.dwarf2/dw2-anon-mptr.exp: show cp-abi
+PASS: gdb.dwarf2/dw2-anon-mptr.exp: ptype crash
+Running ./gdb.dwarf2/dw2-anonymous-func.exp ...
+PASS: gdb.dwarf2/dw2-anonymous-func.exp: list file1.txt
+Running ./gdb.dwarf2/dw2-bad-parameter-type.exp ...
+PASS: gdb.dwarf2/dw2-bad-parameter-type.exp: ptype f
+PASS: gdb.dwarf2/dw2-bad-parameter-type.exp: ptype f
+PASS: gdb.dwarf2/dw2-bad-parameter-type.exp: is alive
+Running ./gdb.dwarf2/dw2-basic.exp ...
+PASS: gdb.dwarf2/dw2-basic.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-basic.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-basic.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-canonicalize-type.exp ...
+PASS: gdb.dwarf2/dw2-canonicalize-type.exp: ptype f
+Running ./gdb.dwarf2/dw2-case-insensitive.exp ...
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: show case-sensitive
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive on
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: set case-sensitive off
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive off
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: p fuNC_lang
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: p fuNC_symtab
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: setting breakpoint at fuNC_lang
+PASS: gdb.dwarf2/dw2-case-insensitive.exp: setting breakpoint at fuNC_symtab
+Running ./gdb.dwarf2/dw2-common-block.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gfortran.
+UNTESTED: gdb.dwarf2/dw2-common-block.exp: dw2-common-block.exp
+Running ./gdb.dwarf2/dw2-compdir-oldgcc.exp ...
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: list gcc42
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc42
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: list gcc43
+PASS: gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc43
+Running ./gdb.dwarf2/dw2-compressed.exp ...
+PASS: gdb.dwarf2/dw2-compressed.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-compressed.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-compressed.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-const.exp ...
+PASS: gdb.dwarf2/dw2-const.exp: print twelve
+PASS: gdb.dwarf2/dw2-const.exp: print/x val8
+Running ./gdb.dwarf2/dw2-cp-infcall-ref-static.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-x86_64-cros-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-cp-infcall-ref-static.exp: dw2-cp-infcall-ref-static.exp
+Running ./gdb.dwarf2/dw2-cu-size.exp ...
+PASS: gdb.dwarf2/dw2-cu-size.exp: ptype noloc
+Running ./gdb.dwarf2/dw2-dir-file-name.exp ...
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: cd .../rdir
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: continue to breakpoint: compdir_missing__ldir_missing__file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: continue to breakpoint: compdir_missing__ldir_missing__file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: continue to breakpoint: compdir_missing__ldir_missing__file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_missing__file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: continue to breakpoint: compdir_missing__ldir_relative_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: continue to breakpoint: compdir_missing__ldir_relative_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: continue to breakpoint: compdir_missing__ldir_relative_file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_relative_file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: continue to breakpoint: compdir_missing__ldir_absolute_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: continue to breakpoint: compdir_missing__ldir_absolute_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: continue to breakpoint: compdir_missing__ldir_absolute_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: continue to breakpoint: compdir_missing__ldir_absolute_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_missing__ldir_absolute_file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: continue to breakpoint: compdir_relative_ldir_missing__file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: continue to breakpoint: compdir_relative_ldir_missing__file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: continue to breakpoint: compdir_relative_ldir_missing__file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_missing__file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: continue to breakpoint: compdir_relative_ldir_relative_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: continue to breakpoint: compdir_relative_ldir_relative_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: continue to breakpoint: compdir_relative_ldir_relative_file_absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_relative_file_absolute: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: continue to breakpoint: compdir_relative_ldir_absolute_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: continue to breakpoint: compdir_relative_ldir_absolute_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: continue to breakpoint: compdir_relative_ldir_absolute_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: continue to breakpoint: compdir_relative_ldir_absolute_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_relative_ldir_absolute_file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: continue to breakpoint: compdir_absolute_ldir_missing__file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: continue to breakpoint: compdir_absolute_ldir_missing__file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: continue to breakpoint: compdir_absolute_ldir_missing__file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: continue to breakpoint: compdir_absolute_ldir_missing__file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_missing__file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: continue to breakpoint: compdir_absolute_ldir_relative_file_basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_basename: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: continue to breakpoint: compdir_absolute_ldir_relative_file_relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_relative: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: continue to breakpoint: compdir_absolute_ldir_relative_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: continue to breakpoint: compdir_absolute_ldir_relative_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_relative_file_absolute_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: continue to breakpoint: compdir_absolute_ldir_absolute_file_basename_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_basename_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: continue to breakpoint: compdir_absolute_ldir_absolute_file_relative_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_relative_different: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: continue to breakpoint: compdir_absolute_ldir_absolute_file_absolute_same
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_same: relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: continue to breakpoint: compdir_absolute_ldir_absolute_file_absolute_different
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: set filename-display absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: absolute
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: set filename-display basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: basename
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: set filename-display relative
+PASS: gdb.dwarf2/dw2-dir-file-name.exp: compdir_absolute_ldir_absolute_file_absolute_different: relative
+Running ./gdb.dwarf2/dw2-dos-drive.exp ...
+PASS: gdb.dwarf2/dw2-dos-drive.exp: set breakpoint pending off
+PASS: gdb.dwarf2/dw2-dos-drive.exp: break 'z:file.c':func
+UNSUPPORTED: gdb.dwarf2/dw2-dos-drive.exp: break file.c:func
+Running ./gdb.dwarf2/dw2-double-set-die-type.exp ...
+PASS: gdb.dwarf2/dw2-double-set-die-type.exp: ptype a
+Running ./gdb.dwarf2/dw2-empty-namespace.exp ...
+PASS: gdb.dwarf2/dw2-empty-namespace.exp: ptype var
+PASS: gdb.dwarf2/dw2-empty-namespace.exp: p var
+Running ./gdb.dwarf2/dw2-empty-pc-range.exp ...
+PASS: gdb.dwarf2/dw2-empty-pc-range.exp: empty range before CU load
+PASS: gdb.dwarf2/dw2-empty-pc-range.exp: valid range after CU load
+PASS: gdb.dwarf2/dw2-empty-pc-range.exp: empty range after CU load
+Running ./gdb.dwarf2/dw2-entry-value.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-x86_64-cros-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-entry-value.exp: dw2-entry-value.exp
+Running ./gdb.dwarf2/dw2-error.exp ...
+PASS: gdb.dwarf2/dw2-error.exp: set breakpoint pending off
+PASS: gdb.dwarf2/dw2-error.exp: file dw2-error
+PASS: gdb.dwarf2/dw2-error.exp: break main
+Running ./gdb.dwarf2/dw2-filename.exp ...
+PASS: gdb.dwarf2/dw2-filename.exp: interpreter-exec mi -file-list-exec-source-files
+PASS: gdb.dwarf2/dw2-filename.exp: info sources
+Running ./gdb.dwarf2/dw2-icc-opaque.exp ...
+PASS: gdb.dwarf2/dw2-icc-opaque.exp: ptype p_struct
+Running ./gdb.dwarf2/dw2-ifort-parameter.exp ...
+FAIL: gdb.dwarf2/dw2-ifort-parameter.exp: p/x param
+Running ./gdb.dwarf2/dw2-inheritance.exp ...
+PASS: gdb.dwarf2/dw2-inheritance.exp: ptype inherited
+Running ./gdb.dwarf2/dw2-inline-break.exp ...
+PASS: gdb.dwarf2/dw2-inline-break.exp: break func1
+PASS: gdb.dwarf2/dw2-inline-break.exp: break func2
+PASS: gdb.dwarf2/dw2-inline-break.exp: break func3b
+PASS: gdb.dwarf2/dw2-inline-break.exp: break func4b
+PASS: gdb.dwarf2/dw2-inline-break.exp: break func5b
+PASS: gdb.dwarf2/dw2-inline-break.exp: break func6b
+PASS: gdb.dwarf2/dw2-inline-break.exp: break func7b
+PASS: gdb.dwarf2/dw2-inline-break.exp: break func8b
+PASS: gdb.dwarf2/dw2-inline-break.exp: print func1
+PASS: gdb.dwarf2/dw2-inline-break.exp: print func2
+Running ./gdb.dwarf2/dw2-inline-param.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-x86_64-cros-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-inline-param.exp: dw2-inline-param.exp
+Running ./gdb.dwarf2/dw2-intercu.exp ...
+PASS: gdb.dwarf2/dw2-intercu.exp: ptype int2
+PASS: gdb.dwarf2/dw2-intercu.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-intercu.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-intercu.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-intermix.exp ...
+PASS: gdb.dwarf2/dw2-intermix.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-intermix.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-intermix.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-linkage-name-trust.exp ...
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: set language c++
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: set cp-abi gnu-v3
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: p c.membername
+PASS: gdb.dwarf2/dw2-linkage-name-trust.exp: p c.membername ()
+Running ./gdb.dwarf2/dw2-minsym-in-cu.exp ...
+PASS: gdb.dwarf2/dw2-minsym-in-cu.exp: info fun func2
+Running ./gdb.dwarf2/dw2-modula2-self-type.exp ...
+PASS: gdb.dwarf2/dw2-modula2-self-type.exp: set language modula-2
+PASS: gdb.dwarf2/dw2-modula2-self-type.exp: ptype v
+PASS: gdb.dwarf2/dw2-modula2-self-type.exp: alive
+Running ./gdb.dwarf2/dw2-namespaceless-anonymous.exp ...
+PASS: gdb.dwarf2/dw2-namespaceless-anonymous.exp: ptype '(anonymous namespace)::v'
+PASS: gdb.dwarf2/dw2-namespaceless-anonymous.exp: p '(anonymous namespace)::v'
+Running ./gdb.dwarf2/dw2-noloc.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-x86_64-cros-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-noloc.exp: dw2-noloc.exp
+Running ./gdb.dwarf2/dw2-objfile-overlap.exp ...
+PASS: gdb.dwarf2/dw2-objfile-overlap.exp: add-symbol-file
+PASS: gdb.dwarf2/dw2-objfile-overlap.exp: info line inner
+Running ./gdb.dwarf2/dw2-op-call.exp ...
+PASS: gdb.dwarf2/dw2-op-call.exp: maintenance set dwarf2 max-cache-age 0
+PASS: gdb.dwarf2/dw2-op-call.exp: p array1
+PASS: gdb.dwarf2/dw2-op-call.exp: array2 using DW_OP_call2
+PASS: gdb.dwarf2/dw2-op-call.exp: array3 using DW_OP_call4
+PASS: gdb.dwarf2/dw2-op-call.exp: p arraynoloc
+PASS: gdb.dwarf2/dw2-op-call.exp: p arraycallnoloc
+Running ./gdb.dwarf2/dw2-op-out-param.exp ...
+PASS: gdb.dwarf2/dw2-op-out-param.exp: set output-radix 16
+PASS: gdb.dwarf2/dw2-op-out-param.exp: set print frame-arguments all
+PASS: gdb.dwarf2/dw2-op-out-param.exp: continue to breakpoint: Stop in breakpt for test int_param_single_reg_loc
+PASS: gdb.dwarf2/dw2-op-out-param.exp: Backtrace for test int_param_single_reg_loc
+PASS: gdb.dwarf2/dw2-op-out-param.exp: continue to breakpoint: Stop in breakpt for struct_param_single_reg_loc
+KFAIL: gdb.dwarf2/dw2-op-out-param.exp: Backtrace for test struct_param_single_reg_loc (PRMS: symtab/14604)
+PASS: gdb.dwarf2/dw2-op-out-param.exp: continue to breakpoint: Stop in breakpt for struct_param_two_reg_pieces
+KFAIL: gdb.dwarf2/dw2-op-out-param.exp: Backtrace for test struct_param_two_reg_pieces (PRMS: symtab/14605)
+PASS: gdb.dwarf2/dw2-op-out-param.exp: continue to breakpoint: Stop in breakpt for int_param_two_reg_pieces
+KFAIL: gdb.dwarf2/dw2-op-out-param.exp: Backtrace for test int_param_two_reg_pieces (PRMS: symtab/14605)
+Running ./gdb.dwarf2/dw2-op-stack-value.exp ...
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x stack2
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x stack8
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: x/wx &aa551234
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x implicit4to2
+PASS: gdb.dwarf2/dw2-op-stack-value.exp: p/x implicit4to4
+Running ./gdb.dwarf2/dw2-param-error.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-x86_64-cros-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-param-error.exp: dw2-param-error.exp
+Running ./gdb.dwarf2/dw2-producer.exp ...
+PASS: gdb.dwarf2/dw2-producer.exp: set listsize 1
+PASS: gdb.dwarf2/dw2-producer.exp: list func_cu1
+PASS: gdb.dwarf2/dw2-producer.exp: ptype func_cu1
+Running ./gdb.dwarf2/dw2-ranges.exp ...
+PASS: gdb.dwarf2/dw2-ranges.exp: info line main
+PASS: gdb.dwarf2/dw2-ranges.exp: info line func
+PASS: gdb.dwarf2/dw2-ranges.exp: info line main2
+PASS: gdb.dwarf2/dw2-ranges.exp: info line func2
+KFAIL: gdb.dwarf2/dw2-ranges.exp: info line main3 (PRMS: symtab/12497)
+Running ./gdb.dwarf2/dw2-ref-missing-frame.exp ...
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_loopfb print
+PASS: gdb.dwarf2/dw2-ref-missing-frame.exp: func_loopfb backtrace
+Running ./gdb.dwarf2/dw2-restore.exp ...
+PASS: gdb.dwarf2/dw2-restore.exp: continue
+PASS: gdb.dwarf2/dw2-restore.exp: where
+Running ./gdb.dwarf2/dw2-restrict.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: error: /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/gdb.dwarf2/dw2-restrict0.o: requires unsupported dynamic reloc 11; recompile with -fPIC
+/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: error: /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/gdb.dwarf2/dw2-restrict0.o: requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-restrict.exp: dw2-restrict.exp
+Running ./gdb.dwarf2/dw2-simple-locdesc.exp ...
+KFAIL: gdb.dwarf2/dw2-simple-locdesc.exp: p &s.shl (PRMS: symtab/13307)
+PASS: gdb.dwarf2/dw2-simple-locdesc.exp: p &s.data4
+Running ./gdb.dwarf2/dw2-skip-prologue.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-x86_64-cros-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-skip-prologue.exp: dw2-skip-prologue.exp
+Running ./gdb.dwarf2/dw2-stack-boundary.exp ...
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: set complaints 100
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: check partial symtab errors
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: p underflow
+PASS: gdb.dwarf2/dw2-stack-boundary.exp: p overflow
+Running ./gdb.dwarf2/dw2-strp.exp ...
+PASS: gdb.dwarf2/dw2-strp.exp: p a_string
+PASS: gdb.dwarf2/dw2-strp.exp: ptype a_string
+PASS: gdb.dwarf2/dw2-strp.exp: p a_string2
+PASS: gdb.dwarf2/dw2-strp.exp: ptype a_string2
+Running ./gdb.dwarf2/dw2-unresolved.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-x86_64-cros-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+UNTESTED: gdb.dwarf2/dw2-unresolved.exp: dw2-unresolved.exp
+Running ./gdb.dwarf2/dw2-var-zero-addr.exp ...
+PASS: gdb.dwarf2/dw2-var-zero-addr.exp: print &var
+Running ./gdb.dwarf2/dw4-sig-types.exp ...
+PASS: gdb.dwarf2/dw4-sig-types.exp: maint set dwarf2 max-cache-age 0
+PASS: gdb.dwarf2/dw4-sig-types.exp: p myset
+PASS: gdb.dwarf2/dw4-sig-types.exp: continue to foo
+Running ./gdb.dwarf2/dw4-sig-type-unused.exp ...
+PASS: gdb.dwarf2/dw4-sig-type-unused.exp: alive
+Running ./gdb.dwarf2/fission-base.exp ...
+PASS: gdb.dwarf2/fission-base.exp: ptype main
+PASS: gdb.dwarf2/fission-base.exp: ptype func
+PASS: gdb.dwarf2/fission-base.exp: frame in main
+PASS: gdb.dwarf2/fission-base.exp: break func
+PASS: gdb.dwarf2/fission-base.exp: continue to func
+PASS: gdb.dwarf2/fission-base.exp: frame in func
+Running ./gdb.dwarf2/fission-loclists.exp ...
+FAIL: gdb.dwarf2/fission-loclists.exp: p argc
+Running ./gdb.dwarf2/fission-reread.exp ...
+PASS: gdb.dwarf2/fission-reread.exp: break main
+PASS: gdb.dwarf2/fission-reread.exp: fission-reread
+PASS: gdb.dwarf2/fission-reread.exp: fission-reread - unload
+Running ./gdb.dwarf2/implptr-64bit.exp ...
+PASS: gdb.dwarf2/implptr-64bit.exp: d2o8a4r4t0
+PASS: gdb.dwarf2/implptr-64bit.exp: d2o4a8r8t0
+PASS: gdb.dwarf2/implptr-64bit.exp: d3o8a4r8t0
+PASS: gdb.dwarf2/implptr-64bit.exp: d3o4a8r4t0
+PASS: gdb.dwarf2/implptr-64bit.exp: d2o8a4r4t1
+PASS: gdb.dwarf2/implptr-64bit.exp: d2o4a8r8t1
+PASS: gdb.dwarf2/implptr-64bit.exp: d3o8a4r8t1
+PASS: gdb.dwarf2/implptr-64bit.exp: d3o4a8r4t1
+Running ./gdb.dwarf2/implptr.exp ...
+Running ./gdb.dwarf2/implptr-optimized-out.exp ...
+PASS: gdb.dwarf2/implptr-optimized-out.exp: p p->f
+Running ./gdb.dwarf2/mac-fileno.exp ...
+PASS: gdb.dwarf2/mac-fileno.exp: set listsize 1
+PASS: gdb.dwarf2/mac-fileno.exp: list func_cu1
+PASS: gdb.dwarf2/mac-fileno.exp: ptype func_cu1
+Running ./gdb.dwarf2/member-ptr-forwardref.exp ...
+PASS: gdb.dwarf2/member-ptr-forwardref.exp: set cp-abi gnu-v3
+PASS: gdb.dwarf2/member-ptr-forwardref.exp: show cp-abi
+PASS: gdb.dwarf2/member-ptr-forwardref.exp: ptype c
+Running ./gdb.dwarf2/method-ptr.exp ...
+PASS: gdb.dwarf2/method-ptr.exp: ptype the_typedef
+Running ./gdb.dwarf2/pieces.exp ...
+Running ./gdb.dwarf2/pr10770.exp ...
+PASS: gdb.dwarf2/pr10770.exp: set breakpoint for pr10770
+PASS: gdb.dwarf2/pr10770.exp: cont
+PASS: gdb.dwarf2/pr10770.exp: frame 2
+Running ./gdb.dwarf2/pr11465.exp ...
+PASS: gdb.dwarf2/pr11465.exp: p N::c.C
+Running ./gdb.dwarf2/pr13961.exp ...
+PASS: gdb.dwarf2/pr13961.exp: break main
+PASS: gdb.dwarf2/pr13961.exp: pr13961
+Running ./gdb.dwarf2/subrange.exp ...
+PASS: gdb.dwarf2/subrange.exp: set language pascal
+PASS: gdb.dwarf2/subrange.exp: ptype TByteArray
+Running ./gdb.dwarf2/trace-crash.exp ...
+PASS: gdb.dwarf2/trace-crash.exp: set tracepoint
+PASS: gdb.dwarf2/trace-crash.exp: set tracepoint actions
+Running ./gdb.dwarf2/typeddwarf.exp ...
+PASS: gdb.dwarf2/typeddwarf.exp: set breakpoint at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of j at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of l at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of m at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of n at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of o at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of p at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of q at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of r at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of s at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of t at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of u at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of v at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of w at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:29
+PASS: gdb.dwarf2/typeddwarf.exp: set breakpoint at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of j at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of l at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of m at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of p at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of q at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of r at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of s at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of t at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of u at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of v at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of w at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: check value of z at typeddwarf.c:53
+PASS: gdb.dwarf2/typeddwarf.exp: set breakpoint at typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: check value of w at typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:73
+PASS: gdb.dwarf2/typeddwarf.exp: check value of z at typeddwarf.c:73
+Running ./gdb.dwarf2/valop.exp ...
+Running ./gdb.dwarf2/watch-notconst.exp ...
+Running ./gdb.fortran/array-element.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/array-element.exp: array-element.exp
+Running ./gdb.fortran/charset.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/charset.exp: charset.exp
+Running ./gdb.fortran/common-block.exp ...
+UNTESTED: gdb.fortran/common-block.exp: common-block.exp
+Running ./gdb.fortran/complex.exp ...
+UNTESTED: gdb.fortran/complex.exp: complex.exp
+UNTESTED: gdb.fortran/complex.exp: Couldn't compile complex.f
+Running ./gdb.fortran/derived-type.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/derived-type.exp: derived-type.exp
+Running ./gdb.fortran/exprs.exp ...
+PASS: gdb.fortran/exprs.exp: set print sevenbit-strings
+PASS: gdb.fortran/exprs.exp: set language fortran
+PASS: gdb.fortran/exprs.exp: set language to "fortran"
+PASS: gdb.fortran/exprs.exp: Set value-history[1] using $1
+PASS: gdb.fortran/exprs.exp: Set value-history[2] using $2
+PASS: gdb.fortran/exprs.exp: Set value-history[3] using $3
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX-1] using inplicit index $$
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX-1] again using implicit index $$
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX] using implicit index $
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX-2] using explicit index $$2
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX] using explicit index $0
+PASS: gdb.fortran/exprs.exp: Print value-history[MAX] using explicit index $$0
+PASS: gdb.fortran/exprs.exp: Print value-history[1] using explicit index $1
+PASS: gdb.fortran/exprs.exp: Print value-history[2] using explicit index $2
+PASS: gdb.fortran/exprs.exp: Print value-history[3] using explicit index $3
+PASS: gdb.fortran/exprs.exp: Print (value-history[MAX] - 3) using implicit index $
+PASS: gdb.fortran/exprs.exp: Use value-history element in arithmetic expression
+PASS: gdb.fortran/exprs.exp: Set a new convenience variable
+PASS: gdb.fortran/exprs.exp: Print contents of new convenience variable
+PASS: gdb.fortran/exprs.exp: Set convenience variable to a new value
+PASS: gdb.fortran/exprs.exp: Print new contents of convenience variable
+PASS: gdb.fortran/exprs.exp: Set convenience variable $_
+PASS: gdb.fortran/exprs.exp: Print contents of convenience variable $_
+PASS: gdb.fortran/exprs.exp: Use convenience variable in arithmetic expression
+PASS: gdb.fortran/exprs.exp: Use convenience variable assignment in arithmetic expression
+PASS: gdb.fortran/exprs.exp: Print contents of uninitialized convenience variable
+PASS: gdb.fortran/exprs.exp: p 123
+PASS: gdb.fortran/exprs.exp: p -123
+PASS: gdb.fortran/exprs.exp: reject p _
+PASS: gdb.fortran/exprs.exp: p .TRUE.
+PASS: gdb.fortran/exprs.exp: p .FALSE.
+PASS: gdb.fortran/exprs.exp: p 'a'
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(2:4)
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(:3)
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(5:)
+PASS: gdb.fortran/exprs.exp: p 'abcdefg'(:)
+PASS: gdb.fortran/exprs.exp: p .44 .LT. .45
+PASS: gdb.fortran/exprs.exp: p .44 .GT. .45
+PASS: gdb.fortran/exprs.exp: p 0.44 .LT. 0.45
+PASS: gdb.fortran/exprs.exp: p 0.44 .GT. 0.45
+PASS: gdb.fortran/exprs.exp: p 44. .LT. 45.
+PASS: gdb.fortran/exprs.exp: p 44. .GT. 45.
+PASS: gdb.fortran/exprs.exp: p 44.0 .LT. 45.0
+PASS: gdb.fortran/exprs.exp: p 44.0 .GT. 45.0
+PASS: gdb.fortran/exprs.exp: p 10D20 .LT. 10D21
+PASS: gdb.fortran/exprs.exp: p 10D20 .GT. 10D21
+PASS: gdb.fortran/exprs.exp: p 10d20 .LT. 10d21
+PASS: gdb.fortran/exprs.exp: p 10d20 .GT. 10d21
+PASS: gdb.fortran/exprs.exp: p 10E20 .LT. 10E21
+PASS: gdb.fortran/exprs.exp: p 10E20 .GT. 10E21
+PASS: gdb.fortran/exprs.exp: p 10e20 .LT. 10e21
+PASS: gdb.fortran/exprs.exp: p 10e20 .GT. 10e21
+PASS: gdb.fortran/exprs.exp: p 10.D20 .LT. 10.D21
+PASS: gdb.fortran/exprs.exp: p 10.D20 .GT. 10.D21
+PASS: gdb.fortran/exprs.exp: p 10.d20 .LT. 10.d21
+PASS: gdb.fortran/exprs.exp: p 10.d20 .GT. 10.d21
+PASS: gdb.fortran/exprs.exp: p 10.E20 .LT. 10.E21
+PASS: gdb.fortran/exprs.exp: p 10.E20 .GT. 10.E21
+PASS: gdb.fortran/exprs.exp: p 10.e20 .LT. 10.e21
+PASS: gdb.fortran/exprs.exp: p 10.e20 .GT. 10.e21
+PASS: gdb.fortran/exprs.exp: p 10.0D20 .LT. 10.0D21
+PASS: gdb.fortran/exprs.exp: p 10.0D20 .GT. 10.0D21
+PASS: gdb.fortran/exprs.exp: p 10.0d20 .LT. 10.0d21
+PASS: gdb.fortran/exprs.exp: p 10.0d20 .GT. 10.0d21
+PASS: gdb.fortran/exprs.exp: p 10.0E20 .LT. 10.0E21
+PASS: gdb.fortran/exprs.exp: p 10.0E20 .GT. 10.0E21
+PASS: gdb.fortran/exprs.exp: p 10.0e20 .LT. 10.0e21
+PASS: gdb.fortran/exprs.exp: p 10.0e20 .GT. 10.0e21
+PASS: gdb.fortran/exprs.exp: p 10.0D+20 .LT. 10.0D+21
+PASS: gdb.fortran/exprs.exp: p 10.0D+20 .GT. 10.0D+21
+PASS: gdb.fortran/exprs.exp: p 10.0d+20 .LT. 10.0d+21
+PASS: gdb.fortran/exprs.exp: p 10.0d+20 .GT. 10.0d+21
+PASS: gdb.fortran/exprs.exp: p 10.0E+20 .LT. 10.0E+21
+PASS: gdb.fortran/exprs.exp: p 10.0E+20 .GT. 10.0E+21
+PASS: gdb.fortran/exprs.exp: p 10.0e+20 .LT. 10.0e+21
+PASS: gdb.fortran/exprs.exp: p 10.0e+20 .GT. 10.0e+21
+PASS: gdb.fortran/exprs.exp: p 10.0D-11 .LT. 10.0D-10
+PASS: gdb.fortran/exprs.exp: p 10.0D-11 .GT. 10.0D-10
+PASS: gdb.fortran/exprs.exp: p 10.0d-11 .LT. 10.0d-10
+PASS: gdb.fortran/exprs.exp: p 10.0d-11 .GT. 10.0d-10
+PASS: gdb.fortran/exprs.exp: p 10.0E-11 .LT. 10.0E-10
+PASS: gdb.fortran/exprs.exp: p 10.0E-11 .GT. 10.0E-10
+PASS: gdb.fortran/exprs.exp: p 10.0e-11 .LT. 10.0e-10
+PASS: gdb.fortran/exprs.exp: p 10.0e-11 .GT. 10.0e-10
+PASS: gdb.fortran/exprs.exp: unary minus applied to int
+PASS: gdb.fortran/exprs.exp: unary minus applied to real
+PASS: gdb.fortran/exprs.exp: bool plus int
+PASS: gdb.fortran/exprs.exp: int plus int
+PASS: gdb.fortran/exprs.exp: real plus int
+PASS: gdb.fortran/exprs.exp: real plus real
+PASS: gdb.fortran/exprs.exp: bool minus int
+PASS: gdb.fortran/exprs.exp: int minus int
+PASS: gdb.fortran/exprs.exp: real minus int
+PASS: gdb.fortran/exprs.exp: real minus real
+PASS: gdb.fortran/exprs.exp: bool times int
+PASS: gdb.fortran/exprs.exp: int times int
+PASS: gdb.fortran/exprs.exp: real times int
+PASS: gdb.fortran/exprs.exp: real times real
+PASS: gdb.fortran/exprs.exp: bool divided by int
+PASS: gdb.fortran/exprs.exp: int divided by int
+PASS: gdb.fortran/exprs.exp: real divided by int
+PASS: gdb.fortran/exprs.exp: real divided by real
+PASS: gdb.fortran/exprs.exp: int powered by int
+PASS: gdb.fortran/exprs.exp: combined exponentiation expression
+PASS: gdb.fortran/exprs.exp: combined exponentiation expression in specified order
+PASS: gdb.fortran/exprs.exp: int powered by real
+PASS: gdb.fortran/exprs.exp: real powered by real
+Running ./gdb.fortran/library-module.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/library-module.exp: Couldn't compile library-module-lib.f90
+Running ./gdb.fortran/logical.exp ...
+UNTESTED: gdb.fortran/logical.exp: logical.exp
+Running ./gdb.fortran/module.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/module.exp: module.exp
+Running ./gdb.fortran/multi-dim.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/multi-dim.exp: multi-dim.exp
+Running ./gdb.fortran/subarray.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gfortran.
+UNTESTED: gdb.fortran/subarray.exp: subarray.exp
+Running ./gdb.fortran/types.exp ...
+PASS: gdb.fortran/types.exp: set print sevenbit-strings
+PASS: gdb.fortran/types.exp: set language fortran
+PASS: gdb.fortran/types.exp: set language to "fortran"
+PASS: gdb.fortran/types.exp: pt 123
+PASS: gdb.fortran/types.exp: reject pt _
+PASS: gdb.fortran/types.exp: pt .TRUE.
+PASS: gdb.fortran/types.exp: pt .FALSE.
+PASS: gdb.fortran/types.exp: pt 'a'
+PASS: gdb.fortran/types.exp: pt .44
+PASS: gdb.fortran/types.exp: pt 44.0
+PASS: gdb.fortran/types.exp: pt 10D20
+PASS: gdb.fortran/types.exp: pt 10D20
+PASS: gdb.fortran/types.exp: pt 10d20
+PASS: gdb.fortran/types.exp: pt 10d20
+PASS: gdb.fortran/types.exp: pt 10E20
+PASS: gdb.fortran/types.exp: pt 10E20
+PASS: gdb.fortran/types.exp: pt 10e20
+PASS: gdb.fortran/types.exp: pt 10e20
+Running ./gdb.gdb/complaints.exp ...
+Running ./gdb.gdb/observer.exp ...
+Running ./gdb.gdb/selftest.exp ...
+Running ./gdb.gdb/xfullpath.exp ...
+Running ./gdb.go/basic-types.exp ...
+PASS: gdb.go/basic-types.exp: set language go
+PASS: gdb.go/basic-types.exp: set language to "go"
+PASS: gdb.go/basic-types.exp: pt 123
+PASS: gdb.go/basic-types.exp: pt void(42)
+PASS: gdb.go/basic-types.exp: pt byte(42)
+PASS: gdb.go/basic-types.exp: pt int(42)
+PASS: gdb.go/basic-types.exp: pt uint(42)
+PASS: gdb.go/basic-types.exp: pt uintptr(42)
+PASS: gdb.go/basic-types.exp: pt int8(42)
+PASS: gdb.go/basic-types.exp: pt int16(42)
+PASS: gdb.go/basic-types.exp: pt int32(42)
+PASS: gdb.go/basic-types.exp: pt int64(42)
+PASS: gdb.go/basic-types.exp: pt uint8(42)
+PASS: gdb.go/basic-types.exp: pt uint16(42)
+PASS: gdb.go/basic-types.exp: pt uint32(42)
+PASS: gdb.go/basic-types.exp: pt uint64(42)
+PASS: gdb.go/basic-types.exp: pt true
+PASS: gdb.go/basic-types.exp: pt false
+PASS: gdb.go/basic-types.exp: pt bool(0)
+PASS: gdb.go/basic-types.exp: pt bool(1)
+PASS: gdb.go/basic-types.exp: pt 'a'
+PASS: gdb.go/basic-types.exp: pt "a simple string"
+PASS: gdb.go/basic-types.exp: pt `a simple raw string`
+PASS: gdb.go/basic-types.exp: pt .44
+PASS: gdb.go/basic-types.exp: pt 44.0
+PASS: gdb.go/basic-types.exp: pt 10e20
+PASS: gdb.go/basic-types.exp: pt 10E20
+PASS: gdb.go/basic-types.exp: pt float32(.42)
+PASS: gdb.go/basic-types.exp: pt float64(.42)
+PASS: gdb.go/basic-types.exp: pt complex64(.42)
+XFAIL: gdb.go/basic-types.exp: pt complex64(.42i1.0)
+XFAIL: gdb.go/basic-types.exp: pt complex64(i1.0)
+PASS: gdb.go/basic-types.exp: pt complex128(.42)
+XFAIL: gdb.go/basic-types.exp: pt complex128(.42i1.0)
+XFAIL: gdb.go/basic-types.exp: pt complex128(i1.0)
+Running ./gdb.go/chan.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gccgo.
+UNTESTED: gdb.go/chan.exp: chan.exp
+Running ./gdb.go/handcall.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gccgo.
+UNTESTED: gdb.go/handcall.exp: handcall.exp
+Running ./gdb.go/hello.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gccgo.
+UNTESTED: gdb.go/hello.exp: hello.exp
+Running ./gdb.go/integers.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gccgo.
+UNTESTED: gdb.go/integers.exp: integers.exp
+Running ./gdb.go/methods.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gccgo.
+UNTESTED: gdb.go/methods.exp: methods.exp
+Running ./gdb.go/package.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gccgo.
+UNTESTED: gdb.go/package.exp: package
+Running ./gdb.go/print.exp ...
+PASS: gdb.go/print.exp: set language go
+PASS: gdb.go/print.exp: set language to "go"
+PASS: gdb.go/print.exp: check fp + text
+PASS: gdb.go/print.exp: p 1.
+PASS: gdb.go/print.exp: p 1.5
+PASS: gdb.go/print.exp: p 1.f
+PASS: gdb.go/print.exp: p 1.5f
+PASS: gdb.go/print.exp: p 1.l
+PASS: gdb.go/print.exp: p 1.5l
+PASS: gdb.go/print.exp: p 0x1.1
+PASS: gdb.go/print.exp: reject p 1.1x
+PASS: gdb.go/print.exp: reject p 1.1ff
+PASS: gdb.go/print.exp: reject p 1.1ll
+Running ./gdb.go/strings.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gccgo.
+UNTESTED: gdb.go/strings.exp: strings.exp
+Running ./gdb.go/types.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gccgo.
+UNTESTED: gdb.go/types.exp: types.exp
+Running ./gdb.go/unsafe.exp ...
+gdb compile failed, default_target_compile: Can't find x86_64-cros-linux-gnu-gccgo.
+UNTESTED: gdb.go/unsafe.exp: unsafe.exp
+Running ./gdb.java/jmain.exp ...
+UNSUPPORTED: gdb.java/jmain.exp: compilation jmain.java
+Running ./gdb.java/jmisc.exp ...
+UNSUPPORTED: gdb.java/jmisc.exp: compilation jmisc.java
+Running ./gdb.java/jnpe.exp ...
+UNSUPPORTED: gdb.java/jnpe.exp: compilation jnpe.java
+UNTESTED: gdb.java/jnpe.exp: Couldn't compile ./gdb.java/jnpe.java
+Running ./gdb.java/jprint.exp ...
+UNSUPPORTED: gdb.java/jprint.exp: compilation jprint.java
+Running ./gdb.java/jv-exp.exp ...
+PASS: gdb.java/jv-exp.exp: set print sevenbit-strings
+PASS: gdb.java/jv-exp.exp: set width 0
+PASS: gdb.java/jv-exp.exp: set language java
+PASS: gdb.java/jv-exp.exp: set language to "java"
+PASS: gdb.java/jv-exp.exp: p 1 > 2
+PASS: gdb.java/jv-exp.exp: p 1 < 2
+Running ./gdb.java/jv-print.exp ...
+PASS: gdb.java/jv-print.exp: print $pc
+PASS: gdb.java/jv-print.exp: set print sevenbit-strings
+PASS: gdb.java/jv-print.exp: set width 0
+PASS: gdb.java/jv-print.exp: set language java
+PASS: gdb.java/jv-print.exp: set language to "java"
+PASS: gdb.java/jv-print.exp: p 123
+PASS: gdb.java/jv-print.exp: p -123
+PASS: gdb.java/jv-print.exp: p/d 123
+PASS: gdb.java/jv-print.exp: p 0123
+PASS: gdb.java/jv-print.exp: p 00123
+PASS: gdb.java/jv-print.exp: p -0123
+PASS: gdb.java/jv-print.exp: p/o 0123
+PASS: gdb.java/jv-print.exp: p 0x123
+PASS: gdb.java/jv-print.exp: p -0x123
+PASS: gdb.java/jv-print.exp: p 0x0123
+PASS: gdb.java/jv-print.exp: p -0x0123
+PASS: gdb.java/jv-print.exp: p 0xABCDEF
+PASS: gdb.java/jv-print.exp: p 0xabcdef
+PASS: gdb.java/jv-print.exp: p 0xAbCdEf
+PASS: gdb.java/jv-print.exp: p/x 0x123
+PASS: gdb.java/jv-print.exp: p 'a'
+PASS: gdb.java/jv-print.exp: p/c 'a'
+PASS: gdb.java/jv-print.exp: p/c 70
+PASS: gdb.java/jv-print.exp: p/x 'a'
+PASS: gdb.java/jv-print.exp: p/d 'a'
+PASS: gdb.java/jv-print.exp: p/t 'a'
+PASS: gdb.java/jv-print.exp: p/x '\377'
+PASS: gdb.java/jv-print.exp: p '\''
+PASS: gdb.java/jv-print.exp: p '\\'
+PASS: gdb.java/jv-print.exp: reject p 0x
+PASS: gdb.java/jv-print.exp: p ''
+PASS: gdb.java/jv-print.exp: p '''
+PASS: gdb.java/jv-print.exp: reject p '\'
+PASS: gdb.java/jv-print.exp: reject p '\\\'
+PASS: gdb.java/jv-print.exp: reject p DEADBEEF
+PASS: gdb.java/jv-print.exp: reject p 123DEADBEEF
+PASS: gdb.java/jv-print.exp: reject p 123foobar.bazfoo3
+PASS: gdb.java/jv-print.exp: reject p 123EEEEEEEEEEEEEEEEE33333k333
+PASS: gdb.java/jv-print.exp: check for floating addition
+PASS: gdb.java/jv-print.exp: reject p 09
+PASS: gdb.java/jv-print.exp: reject p 079
+PASS: gdb.java/jv-print.exp: reject p 0xG
+PASS: gdb.java/jv-print.exp: reject p 0xAG
+PASS: gdb.java/jv-print.exp: check fp + text
+PASS: gdb.java/jv-print.exp: p 1.
+PASS: gdb.java/jv-print.exp: p 1.5
+PASS: gdb.java/jv-print.exp: p 1.f
+PASS: gdb.java/jv-print.exp: p 1.5f
+PASS: gdb.java/jv-print.exp: p 1.d
+PASS: gdb.java/jv-print.exp: p 1.5d
+PASS: gdb.java/jv-print.exp: p 0x1.1
+PASS: gdb.java/jv-print.exp: reject p 1.1x
+PASS: gdb.java/jv-print.exp: reject p 1.1ff
+PASS: gdb.java/jv-print.exp: reject p 1.1dd
+Running ./gdb.linespec/break-ask.exp ...
+PASS: gdb.linespec/break-ask.exp: set multiple-symbols ask
+PASS: gdb.linespec/break-ask.exp: set filename-display absolute
+PASS: gdb.linespec/break-ask.exp: break twodup absolute
+PASS: gdb.linespec/break-ask.exp: 0
+PASS: gdb.linespec/break-ask.exp: set filename-display relative
+PASS: gdb.linespec/break-ask.exp: break twodup relative
+PASS: gdb.linespec/break-ask.exp: 2
+PASS: gdb.linespec/break-ask.exp: expect breakpoint
+PASS: gdb.linespec/break-ask.exp: info source
+PASS: gdb.linespec/break-ask.exp: continue to breakpoint: body_elsewhere
+PASS: gdb.linespec/break-ask.exp: break twodup relative other
+PASS: gdb.linespec/break-ask.exp: 3
+PASS: gdb.linespec/break-ask.exp: expect breakpoint other
+PASS: gdb.linespec/break-ask.exp: info source other
+PASS: gdb.linespec/break-ask.exp: continue to breakpoint: body_elsewhere other
+Running ./gdb.linespec/linespec.exp ...
+PASS: gdb.linespec/linespec.exp: set multiple-symbols to all for linespec tests
+PASS: gdb.linespec/linespec.exp: single-location break using dir/file:line
+PASS: gdb.linespec/linespec.exp: clear breakpoint using dir/file:line
+PASS: gdb.linespec/linespec.exp: multi-location break using file:line
+PASS: gdb.linespec/linespec.exp: multi-location break using duplicate function name
+PASS: gdb.linespec/linespec.exp: multi-location break using duplicate function name and label
+PASS: gdb.linespec/linespec.exp: complete condition
+PASS: gdb.linespec/linespec.exp: disable pending breakpoints for linespec tests
+PASS: gdb.linespec/linespec.exp: set breakpoint on non-existent function
+PASS: gdb.linespec/linespec.exp: set breakpoint at all instances of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint at lspec.cc instance of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint at non-existent lspec.cc instance of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint at specific instance of NameSpace::overload
+PASS: gdb.linespec/linespec.exp: set breakpoint in body.h
+PASS: gdb.linespec/linespec.exp: set breakpoint in f1
+PASS: gdb.linespec/linespec.exp: add inferior for linespec tests
+PASS: gdb.linespec/linespec.exp: switch to inferior 2 for linespec tests
+PASS: gdb.linespec/linespec.exp: set the new inferior file for linespec tests
+PASS: gdb.linespec/linespec.exp: set breakpoint at main in both inferiors
+Running ./gdb.linespec/ls-dollar.exp ...
+PASS: gdb.linespec/ls-dollar.exp: set listsize 1
+PASS: gdb.linespec/ls-dollar.exp: list $dollar_var
+PASS: gdb.linespec/ls-dollar.exp: break $dollar_func
+Running ./gdb.linespec/ls-errs.exp ...
+PASS: gdb.linespec/ls-errs.exp: set breakpoint pending off
+PASS: gdb.linespec/ls-errs.exp: break :
+PASS: gdb.linespec/ls-errs.exp: break :
+PASS: gdb.linespec/ls-errs.exp: break  :
+PASS: gdb.linespec/ls-errs.exp: break  :
+PASS: gdb.linespec/ls-errs.exp: break 	:
+PASS: gdb.linespec/ls-errs.exp: break   :
+PASS: gdb.linespec/ls-errs.exp: break 	:
+PASS: gdb.linespec/ls-errs.exp: break  	:
+PASS: gdb.linespec/ls-errs.exp: break 	  	:
+PASS: gdb.linespec/ls-errs.exp: break -100
+PASS: gdb.linespec/ls-errs.exp: break +500
+PASS: gdb.linespec/ls-errs.exp: break 1000
+PASS: gdb.linespec/ls-errs.exp: break 3:
+PASS: gdb.linespec/ls-errs.exp: break +10:
+PASS: gdb.linespec/ls-errs.exp: break -10:
+PASS: gdb.linespec/ls-errs.exp: break 3:
+PASS: gdb.linespec/ls-errs.exp: break +10:
+PASS: gdb.linespec/ls-errs.exp: break -10:
+PASS: gdb.linespec/ls-errs.exp: break 3 :
+PASS: gdb.linespec/ls-errs.exp: break +10 :
+PASS: gdb.linespec/ls-errs.exp: break -10 :
+PASS: gdb.linespec/ls-errs.exp: break 3 :
+PASS: gdb.linespec/ls-errs.exp: break +10 :
+PASS: gdb.linespec/ls-errs.exp: break -10 :
+PASS: gdb.linespec/ls-errs.exp: break 3	:
+PASS: gdb.linespec/ls-errs.exp: break +10	:
+PASS: gdb.linespec/ls-errs.exp: break -10	:
+PASS: gdb.linespec/ls-errs.exp: break 3  :
+PASS: gdb.linespec/ls-errs.exp: break +10  :
+PASS: gdb.linespec/ls-errs.exp: break -10  :
+PASS: gdb.linespec/ls-errs.exp: break 3	:
+PASS: gdb.linespec/ls-errs.exp: break +10	:
+PASS: gdb.linespec/ls-errs.exp: break -10	:
+PASS: gdb.linespec/ls-errs.exp: break 3 	:
+PASS: gdb.linespec/ls-errs.exp: break +10 	:
+PASS: gdb.linespec/ls-errs.exp: break -10 	:
+PASS: gdb.linespec/ls-errs.exp: break 3	  	:
+PASS: gdb.linespec/ls-errs.exp: break +10	  	:
+PASS: gdb.linespec/ls-errs.exp: break -10	  	:
+PASS: gdb.linespec/ls-errs.exp: break 3 1
+PASS: gdb.linespec/ls-errs.exp: break +10 1
+PASS: gdb.linespec/ls-errs.exp: break -10 1
+PASS: gdb.linespec/ls-errs.exp: break 3 +1
+PASS: gdb.linespec/ls-errs.exp: break +10 +1
+PASS: gdb.linespec/ls-errs.exp: break -10 +1
+PASS: gdb.linespec/ls-errs.exp: break 3 +100
+PASS: gdb.linespec/ls-errs.exp: break +10 +100
+PASS: gdb.linespec/ls-errs.exp: break -10 +100
+PASS: gdb.linespec/ls-errs.exp: break 3 -10
+PASS: gdb.linespec/ls-errs.exp: break +10 -10
+PASS: gdb.linespec/ls-errs.exp: break -10 -10
+PASS: gdb.linespec/ls-errs.exp: break 3 foo
+PASS: gdb.linespec/ls-errs.exp: break +10 foo
+PASS: gdb.linespec/ls-errs.exp: break -10 foo
+PASS: gdb.linespec/ls-errs.exp: break this_file_doesn't_exist.c:3
+PASS: gdb.linespec/ls-errs.exp: break this file has spaces.c:3
+PASS: gdb.linespec/ls-errs.exp: break "file::colons.c":3
+PASS: gdb.linespec/ls-errs.exp: break 'file::colons.c':3
+PASS: gdb.linespec/ls-errs.exp: break "this "file" has quotes.c":3
+PASS: gdb.linespec/ls-errs.exp: break 'this "file" has quotes.c':3
+PASS: gdb.linespec/ls-errs.exp: break 'this 'file' has quotes.c':3
+PASS: gdb.linespec/ls-errs.exp: break "this 'file' has quotes.c":3
+PASS: gdb.linespec/ls-errs.exp: break "spaces: and :colons.c":3
+PASS: gdb.linespec/ls-errs.exp: break 'more: :spaces: :and  colons::.c':3
+PASS: gdb.linespec/ls-errs.exp: break "src-file.c':3
+PASS: gdb.linespec/ls-errs.exp: break 'src-file.c:3
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main:foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main: foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c  :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main  :
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c 	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main 	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c	  	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:main	  	:
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c::
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 1
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 +100
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 -100
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:3 foo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:-100
+PASS: gdb.linespec/ls-errs.exp: break "ls-errs.c:-100"
+PASS: gdb.linespec/ls-errs.exp: break 'ls-errs.c:-100'
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:+500
+PASS: gdb.linespec/ls-errs.exp: break "ls-errs.c:+500"
+PASS: gdb.linespec/ls-errs.exp: break 'ls-errs.c:+500'
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:1000
+PASS: gdb.linespec/ls-errs.exp: break "ls-errs.c:1000"
+PASS: gdb.linespec/ls-errs.exp: break 'ls-errs.c:1000'
+PASS: gdb.linespec/ls-errs.exp: break foobar
+PASS: gdb.linespec/ls-errs.exp: break foo::bar
+PASS: gdb.linespec/ls-errs.exp: break foo.bar
+PASS: gdb.linespec/ls-errs.exp: break foo .
+PASS: gdb.linespec/ls-errs.exp: break foo bar
+PASS: gdb.linespec/ls-errs.exp: break foo 1
+PASS: gdb.linespec/ls-errs.exp: break foo 0
+PASS: gdb.linespec/ls-errs.exp: break foo +10
+PASS: gdb.linespec/ls-errs.exp: break foo -10
+PASS: gdb.linespec/ls-errs.exp: break foo +100
+PASS: gdb.linespec/ls-errs.exp: break foo -100
+PASS: gdb.linespec/ls-errs.exp: break main:there
+PASS: gdb.linespec/ls-errs.exp: break main:here:
+PASS: gdb.linespec/ls-errs.exp: break main: there
+PASS: gdb.linespec/ls-errs.exp: break main:here:
+PASS: gdb.linespec/ls-errs.exp: break main :there
+PASS: gdb.linespec/ls-errs.exp: break main:here :
+PASS: gdb.linespec/ls-errs.exp: break main : there
+PASS: gdb.linespec/ls-errs.exp: break main:here :
+PASS: gdb.linespec/ls-errs.exp: break main	:  there
+PASS: gdb.linespec/ls-errs.exp: break main:here	:
+PASS: gdb.linespec/ls-errs.exp: break main  :	there
+PASS: gdb.linespec/ls-errs.exp: break main:here  :
+PASS: gdb.linespec/ls-errs.exp: break main	:	there
+PASS: gdb.linespec/ls-errs.exp: break main:here	:
+PASS: gdb.linespec/ls-errs.exp: break main 	:	 there
+PASS: gdb.linespec/ls-errs.exp: break main:here 	:
+PASS: gdb.linespec/ls-errs.exp: break main	  	:	  	  	there
+PASS: gdb.linespec/ls-errs.exp: break main:here	  	:
+PASS: gdb.linespec/ls-errs.exp: break main 3
+PASS: gdb.linespec/ls-errs.exp: break main +100
+PASS: gdb.linespec/ls-errs.exp: break main -100
+PASS: gdb.linespec/ls-errs.exp: break main foo
+PASS: gdb.linespec/ls-errs.exp: break main:here 3
+PASS: gdb.linespec/ls-errs.exp: break main:here +100
+PASS: gdb.linespec/ls-errs.exp: break main:here -100
+PASS: gdb.linespec/ls-errs.exp: break main:here foo
+PASS: gdb.linespec/ls-errs.exp: break if
+PASS: gdb.linespec/ls-errs.exp: break task
+PASS: gdb.linespec/ls-errs.exp: break thread
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'flubber
+PASS: gdb.linespec/ls-errs.exp: break 'main.c',21
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'3
+PASS: gdb.linespec/ls-errs.exp: break 'main.c'+3
+PASS: gdb.linespec/ls-errs.exp: break $zippo
+PASS: gdb.linespec/ls-errs.exp: break ls-errs.c:$zippo
+Running ./gdb.linespec/macro-relative.exp ...
+FAIL: gdb.linespec/macro-relative.exp: info macro HEADER
+Running ./gdb.linespec/skip-two.exp ...
+PASS: gdb.linespec/skip-two.exp: skip function dupname
+PASS: gdb.linespec/skip-two.exp: dupname ignored from main
+PASS: gdb.linespec/skip-two.exp: continue to breakpoint: n
+PASS: gdb.linespec/skip-two.exp: dupname ignored from n
+PASS: gdb.linespec/skip-two.exp: skip delete 1
+PASS: gdb.linespec/skip-two.exp: skip file thefile.cc
+PASS: gdb.linespec/skip-two.exp: step into dupname
+PASS: gdb.linespec/skip-two.exp: finish from dupname
+PASS: gdb.linespec/skip-two.exp: dupname ignored for thefile.cc
+Running ./gdb.linespec/thread.exp ...
+PASS: gdb.linespec/thread.exp: breakpoint line number in file
+PASS: gdb.linespec/thread.exp: continue to breakpoint: 29
+PASS: gdb.linespec/thread.exp: setting breakpoint at thread
+PASS: gdb.linespec/thread.exp: continue to breakpoint: thread function
+Running ./gdb.mi/dw2-ref-missing-frame.exp ...
+gdb compile failed, /usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.22/ld.gold.real: internal error in output_address, at /var/tmp/portage/cross-x86_64-cros-linux-gnu/binutils-2.22-r20/work/binutils-2.22/gold/output.cc:3019
+collect2: error: ld returned 1 exit status
+Running ./gdb.mi/gdb2549.exp ...
+PASS: gdb.mi/gdb2549.exp: wrong arguments
+PASS: gdb.mi/gdb2549.exp: no executable
+PASS: gdb.mi/gdb2549.exp: breakpoint at main
+PASS: gdb.mi/gdb2549.exp: mi runto main
+PASS: gdb.mi/gdb2549.exp: register values x
+PASS: gdb.mi/gdb2549.exp: register values f
+PASS: gdb.mi/gdb2549.exp: register values d
+PASS: gdb.mi/gdb2549.exp: register values o
+PASS: gdb.mi/gdb2549.exp: register values t
+Running ./gdb.mi/gdb669.exp ...
+PASS: gdb.mi/gdb669.exp: successfully compiled posix threads test case
+PASS: gdb.mi/gdb669.exp: breakpoint at main
+PASS: gdb.mi/gdb669.exp: mi runto main
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (at main)
+PASS: gdb.mi/gdb669.exp: info threads (at main)
+PASS: gdb.mi/gdb669.exp: finding MI result string (at main)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (at main)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (at main)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (at main)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (at main)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (at main)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (at main)
+PASS: gdb.mi/gdb669.exp: next, try 0
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 0)
+PASS: gdb.mi/gdb669.exp: info threads (try 0)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 0)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 0)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 0)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 0)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 0)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 0)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 0)
+PASS: gdb.mi/gdb669.exp: next, try 1
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 1)
+PASS: gdb.mi/gdb669.exp: info threads (try 1)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 1)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 1)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 1)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 1)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 1)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 1)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 1)
+PASS: gdb.mi/gdb669.exp: next, try 2
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 2)
+PASS: gdb.mi/gdb669.exp: info threads (try 2)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 2)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 2)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 2)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 2)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 2)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 2)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 2)
+PASS: gdb.mi/gdb669.exp: next, try 3
+PASS: gdb.mi/gdb669.exp: -thread-list-ids (try 3)
+PASS: gdb.mi/gdb669.exp: info threads (try 3)
+PASS: gdb.mi/gdb669.exp: finding MI result string (try 3)
+PASS: gdb.mi/gdb669.exp: finding number of threads in MI output (try 3)
+PASS: gdb.mi/gdb669.exp: got number of threads from MI (try 3)
+PASS: gdb.mi/gdb669.exp: console and MI have same number of threads (try 3)
+PASS: gdb.mi/gdb669.exp: -thread_list_ids (try 3)
+PASS: gdb.mi/gdb669.exp: finding threads in MI output (try 3)
+PASS: gdb.mi/gdb669.exp: MI and console have same threads (try 3)
+Running ./gdb.mi/gdb680.exp ...
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 0
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 1
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 2
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 3
+PASS: gdb.mi/gdb680.exp: -data-list-register-names -1, try 4
+Running ./gdb.mi/gdb701.exp ...
+PASS: gdb.mi/gdb701.exp: breakpoint at main
+PASS: gdb.mi/gdb701.exp: mi runto main
+PASS: gdb.mi/gdb701.exp: step over "foo = 0"
+PASS: gdb.mi/gdb701.exp: create fooPtr
+PASS: gdb.mi/gdb701.exp: list children of fooPtr
+PASS: gdb.mi/gdb701.exp: list children of fooPtr.x
+PASS: gdb.mi/gdb701.exp: list children of fooPtr.y
+PASS: gdb.mi/gdb701.exp: list children of fooPtr.z
+Running ./gdb.mi/gdb792.exp ...
+PASS: gdb.mi/gdb792.exp: breakpoint at main
+PASS: gdb.mi/gdb792.exp: mi runto main
+PASS: gdb.mi/gdb792.exp: create var for class A
+PASS: gdb.mi/gdb792.exp: list children of class A
+PASS: gdb.mi/gdb792.exp: list children of A.public
+PASS: gdb.mi/gdb792.exp: list children of A.private
+PASS: gdb.mi/gdb792.exp: list children of A.protected
+PASS: gdb.mi/gdb792.exp: list children of A.protected.b
+PASS: gdb.mi/gdb792.exp: list children of A.protected.b.public
+PASS: gdb.mi/gdb792.exp: list children of A.protected.b.private
+PASS: gdb.mi/gdb792.exp: create var for class C which has baseclass A
+PASS: gdb.mi/gdb792.exp: list children of class C
+Running ./gdb.mi/mi2-amd64-entry-value.exp ...
+PASS: gdb.mi/mi2-amd64-entry-value.exp: break different
+PASS: gdb.mi/mi2-amd64-entry-value.exp: break breakhere_different
+PASS: gdb.mi/mi2-amd64-entry-value.exp: break breakhere_validity
+PASS: gdb.mi/mi2-amd64-entry-value.exp: break breakhere_invalid
+PASS: gdb.mi/mi2-amd64-entry-value.exp: breakpoint at main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: mi runto main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: no: set print entry-values
+PASS: gdb.mi/mi2-amd64-entry-value.exp: no: entry_equal: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: no: entry_equal: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: no: entry_different: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: no: entry_different: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: no: validity: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: no: validity: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: no: invalid: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: no: invalid: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: breakpoint at main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: mi runto main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: only: set print entry-values
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: only: entry_equal: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: only: entry_equal: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: only: entry_different: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: only: entry_different: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: only: validity: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: only: validity: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: only: invalid: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: only: invalid: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: breakpoint at main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: mi runto main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: preferred: set print entry-values
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: preferred: entry_equal: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: preferred: entry_equal: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: preferred: entry_different: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: preferred: entry_different: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: preferred: validity: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: preferred: validity: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: preferred: invalid: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: preferred: invalid: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: breakpoint at main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: mi runto main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: if-needed: set print entry-values
+PASS: gdb.mi/mi2-amd64-entry-value.exp: if-needed: entry_equal: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: if-needed: entry_equal: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: if-needed: entry_different: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: if-needed: entry_different: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: if-needed: validity: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: if-needed: validity: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: if-needed: invalid: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: if-needed: invalid: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: breakpoint at main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: mi runto main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: both: set print entry-values
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: both: entry_equal: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: both: entry_equal: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: both: entry_different: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: both: entry_different: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: both: validity: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: both: validity: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: both: invalid: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: both: invalid: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: breakpoint at main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: mi runto main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: compact: set print entry-values
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: compact: entry_equal: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: compact: entry_equal: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: compact: entry_different: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: compact: entry_different: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: compact: validity: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: compact: validity: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: compact: invalid: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: compact: invalid: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: breakpoint at main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: mi runto main
+PASS: gdb.mi/mi2-amd64-entry-value.exp: default: set print entry-values
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: default: entry_equal: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: default: entry_equal: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: default: entry_different: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: default: entry_different: -stack-list-variables
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: default: validity: stop (stopped at wrong place)
+FAIL: gdb.mi/mi2-amd64-entry-value.exp: default: validity: -stack-list-variables
+PASS: gdb.mi/mi2-amd64-entry-value.exp: default: invalid: stop
+PASS: gdb.mi/mi2-amd64-entry-value.exp: default: invalid: -stack-list-variables
+Running ./gdb.mi/mi2-prompt.exp ...
+PASS: gdb.mi/mi2-prompt.exp: console set prompt
+PASS: gdb.mi/mi2-prompt.exp: -break-list
+PASS: gdb.mi/mi2-prompt.exp: set prompt (banana)
+PASS: gdb.mi/mi2-prompt.exp: interpreter-exec mi -break-list
+Running ./gdb.mi/mi2-var-child.exp ...
+PASS: gdb.mi/mi2-var-child.exp: breakpoint at do_children_tests
+PASS: gdb.mi/mi2-var-child.exp: mi runto do_children_tests
+PASS: gdb.mi/mi2-var-child.exp: run to 237 (set breakpoint)
+PASS: gdb.mi/mi2-var-child.exp: create local variable struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.integer
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.integer
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.character
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.character
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_int
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_int
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.1
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.1
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.3
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.3
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.4
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.4
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.5
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.5
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.6
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.6
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.7
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.7
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.8
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.8
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.9
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.9
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.a
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.a
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.b
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.b
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.c
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.c
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.d
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.d
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.g
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.g
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.h
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.h
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.i
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.i
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi2-var-child.exp: get children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: step to line $line_dct_123
+PASS: gdb.mi/mi2-var-child.exp: create local variable weird
+PASS: gdb.mi/mi2-var-child.exp: get children of weird
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird
+PASS: gdb.mi/mi2-var-child.exp: get children of weird.long_array
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird.long_array
+PASS: gdb.mi/mi2-var-child.exp: get children of weird.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird.int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: create local variable weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: is weird editable
+PASS: gdb.mi/mi2-var-child.exp: is weird->int_ptr_ptr editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.u1 editable
+PASS: gdb.mi/mi2-var-child.exp: is weird.s2 editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.a editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.b editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.c editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.long_array editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations.long_array.0 editable
+PASS: gdb.mi/mi2-var-child.exp: is struct_declarations editable
+PASS: gdb.mi/mi2-var-child.exp: delete var weird
+PASS: gdb.mi/mi2-var-child.exp: update all vars. None changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 1
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.integer
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 4
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 5
+PASS: gdb.mi/mi2-var-child.exp: update all vars int_ptr_ptr and children changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 6
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.0 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 7
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.1 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 8
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.2 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_nothing
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.3-9 changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_a0_0
+PASS: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.func_ptr changed
+PASS: gdb.mi/mi2-var-child.exp: delete var struct_declarations
+PASS: gdb.mi/mi2-var-child.exp: delete var weird->int_ptr_ptr
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 1
+PASS: gdb.mi/mi2-var-child.exp: create local variable  psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi2-var-child.exp: create local variable  psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi2-var-child.exp: create local variable  psnp->ptrs
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.next
+PASS: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.next.ptrs
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 2
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->char_ptr (and 0.char_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 3
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->next->char_ptr (and 1.char_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 4
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->next->next->char_ptr (and 2.char_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 5
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->long_ptr (and 0.long_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 6
+XFAIL: gdb.mi/mi2-var-child.exp: update all vars psnp->next->long_ptr (and 1.long_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 7
+PASS: gdb.mi/mi2-var-child.exp: update all vars psnp->next->next->long_ptr (and 2.long_ptr) changed
+PASS: gdb.mi/mi2-var-child.exp: break in do_anonymous_type_tests
+PASS: gdb.mi/mi2-var-child.exp: continue to do_anonymous_type_tests breakpoint
+PASS: gdb.mi/mi2-var-child.exp: VT: create root varobj for ptr
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.a
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.a
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.b
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.b
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.c
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.c
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.c
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.c.*c
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.c.*c
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.d
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.d
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.e
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.e
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.f
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.f
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.g
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.g
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h.**h
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h.**h
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.integer
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.integer
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.unsigned_integer
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.unsigned_integer
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.character
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.character
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.signed_character
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.signed_character
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr.*char_ptr
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.0
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.0
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.1
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.1
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.2
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.2
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.3
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.3
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.4
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.4
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.5
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.5
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.6
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.6
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.7
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.7
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.8
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.8
+PASS: gdb.mi/mi2-var-child.exp: path expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.9
+PASS: gdb.mi/mi2-var-child.exp: expression for ptr2.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.9
+PASS: gdb.mi/mi2-var-child.exp: VT: create root varobj for v
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of v3
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3
+PASS: gdb.mi/mi2-var-child.exp: expression for v3
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.x
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.x
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of v3.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.1_anonymous
+PASS: gdb.mi/mi2-var-child.exp: VT: list children of v3.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.2_anonymous
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.1_anonymous.a
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.1_anonymous.a
+PASS: gdb.mi/mi2-var-child.exp: path expression for v3.2_anonymous.b
+PASS: gdb.mi/mi2-var-child.exp: expression for v3.2_anonymous.b
+Running ./gdb.mi/mi-async.exp ...
+Running ./gdb.mi/mi-basics.exp ...
+PASS: gdb.mi/mi-basics.exp: acceptance of MI operations
+PASS: gdb.mi/mi-basics.exp: file-exec-and-symbols operation
+PASS: gdb.mi/mi-basics.exp: file-exec-file operation
+PASS: gdb.mi/mi-basics.exp: file-symbol-file operation
+PASS: gdb.mi/mi-basics.exp: break-delete (all) operation
+PASS: gdb.mi/mi-basics.exp: all breakpoints removed
+PASS: gdb.mi/mi-basics.exp: environment-directory arg operation
+PASS: gdb.mi/mi-basics.exp: environment-directory empty-string operation
+PASS: gdb.mi/mi-basics.exp: environment-directory operation
+PASS: gdb.mi/mi-basics.exp: environment-cd arg operation
+PASS: gdb.mi/mi-basics.exp: environment-pwd operation
+PASS: gdb.mi/mi-basics.exp: environment-path
+PASS: gdb.mi/mi-basics.exp: environment-path no-args operation
+PASS: gdb.mi/mi-basics.exp: environment-path dir1 dir2 operation
+PASS: gdb.mi/mi-basics.exp: environment-path -r dir operation
+PASS: gdb.mi/mi-basics.exp: environment-path -r operation
+PASS: gdb.mi/mi-basics.exp: initial tty is mi_inferior_tty_name
+PASS: gdb.mi/mi-basics.exp: set tty to /dev/pts/1
+PASS: gdb.mi/mi-basics.exp: tty was set correctly
+PASS: gdb.mi/mi-basics.exp: set tty to the empty string
+PASS: gdb.mi/mi-basics.exp: make sure tty is empty
+PASS: gdb.mi/mi-basics.exp: set tty to mi_inferior_tty_name (the way it was)
+PASS: gdb.mi/mi-basics.exp: verify tty is correct
+Running ./gdb.mi/mi-break.exp ...
+PASS: gdb.mi/mi-break.exp: break-insert -t operation
+PASS: gdb.mi/mi-break.exp: insert temp breakpoint at basics.c:callee2
+PASS: gdb.mi/mi-break.exp: insert temp breakpoint at basics.c:$line_callee3_head
+PASS: gdb.mi/mi-break.exp: insert temp breakpoint at "<fullfilename>":$line_callee4_head
+PASS: gdb.mi/mi-break.exp: list of breakpoints
+PASS: gdb.mi/mi-break.exp: delete temp breakpoints
+KFAIL: gdb.mi/mi-break.exp: break-insert -r operation (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp callee2 (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp callee (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp .*llee (PRMS: mi/14270)
+KFAIL: gdb.mi/mi-break.exp: list of breakpoints (PRMS: mi/14270)
+PASS: gdb.mi/mi-break.exp: delete temp breakpoints
+PASS: gdb.mi/mi-break.exp: insert breakpoint with ignore count at callme
+PASS: gdb.mi/mi-break.exp: run to breakpoint with ignore count
+PASS: gdb.mi/mi-break.exp: breakpoint at nonexistent function
+PASS: gdb.mi/mi-break.exp: create varobj for function call
+PASS: gdb.mi/mi-break.exp: update varobj for function call
+PASS: gdb.mi/mi-break.exp: test disabled creation
+PASS: gdb.mi/mi-break.exp: test disabled creation: cleanup
+PASS: gdb.mi/mi-break.exp: breakpoint commands: insert breakpoint at basics.c:callee2
+PASS: gdb.mi/mi-break.exp: breakpoint commands: set commands
+PASS: gdb.mi/mi-break.exp: breakpoint commands: check that commands are set
+PASS: gdb.mi/mi-break.exp: breakpoint commands: clear commands
+PASS: gdb.mi/mi-break.exp: breakpoint commands: check that commands are cleared
+ERROR: couldn't load /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/gdb.mi/mi-break into /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../../gdb/gdb (timed out).
+UNRESOLVED: gdb.mi/mi-break.exp: breakpoint at main
+FAIL: gdb.mi/mi-break.exp: mi runto main (unknown output after running)
+FAIL: gdb.mi/mi-break.exp: breakpoint commands: insert breakpoint at basics.c:callee2, again
+FAIL: gdb.mi/mi-break.exp: breakpoint commands: set commands
+FAIL: gdb.mi/mi-break.exp: breakpoint commands: continue (MI error)
+FAIL: gdb.mi/mi-break.exp: intermediate stop and continue
+FAIL: gdb.mi/mi-break.exp: test hitting breakpoint with commands (unknown output after running)
+PASS: gdb.mi/mi-break.exp: create local variable tpnum
+PASS: gdb.mi/mi-break.exp: eval tpnum before tracepoint
+FAIL: gdb.mi/mi-break.exp: break-insert -a operation
+PASS: gdb.mi/mi-break.exp: update tpnum
+FAIL: gdb.mi/mi-break.exp: eval tpnum after tracepoint
+Running ./gdb.mi/mi-breakpoint-changed.exp ...
+PASS: gdb.mi/mi-breakpoint-changed.exp: breakpoint at main
+FAIL: gdb.mi/mi-breakpoint-changed.exp: mi runto main (unknown output after running)
+PASS: gdb.mi/mi-breakpoint-changed.exp: change command
+PASS: gdb.mi/mi-breakpoint-changed.exp: watch watch
+PASS: gdb.mi/mi-breakpoint-changed.exp: trace marker
+PASS: gdb.mi/mi-breakpoint-changed.exp: catch syscall
+PASS: gdb.mi/mi-breakpoint-changed.exp: dprintf marker, "arg" "
+PASS: gdb.mi/mi-breakpoint-changed.exp: condition 2 main > 0x0
+PASS: gdb.mi/mi-breakpoint-changed.exp: disable 3
+PASS: gdb.mi/mi-breakpoint-changed.exp: enable 3
+PASS: gdb.mi/mi-breakpoint-changed.exp: ignore 5 1
+PASS: gdb.mi/mi-breakpoint-changed.exp: passcount 1 4
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 3
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 4
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 5
+PASS: gdb.mi/mi-breakpoint-changed.exp: delete 6
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: insert breakpoint on pendfunc1
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc1 resolved
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc1 resolved: hit_count is updated
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to pendfunc1 breakpoint
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: delete breakpoint on pendfunc1
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: insert breakpoint on marker
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: insert breakpoint on pendfunc3
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to marker 1
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc3 resolved
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: continue to marker 2
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved: breakpoint on pendfunc3 pending again
+PASS: gdb.mi/mi-breakpoint-changed.exp: pending resolved:
+Running ./gdb.mi/mi-catch-load.exp ...
+PASS: gdb.mi/mi-catch-load.exp: breakpoint at main
+PASS: gdb.mi/mi-catch-load.exp: mi runto main
+PASS: gdb.mi/mi-catch-load.exp: catch-load: auto-solib-add on
+PASS: gdb.mi/mi-catch-load.exp: catch-load: catch load
+FAIL: gdb.mi/mi-catch-load.exp: catch-load: solib-event stop
+PASS: gdb.mi/mi-catch-load.exp: breakpoint at main
+PASS: gdb.mi/mi-catch-load.exp: mi runto main
+PASS: gdb.mi/mi-catch-load.exp: catch-unload: auto-solib-add on
+PASS: gdb.mi/mi-catch-load.exp: catch-unload: catch unload
+FAIL: gdb.mi/mi-catch-load.exp: catch-unload: solib-event stop
+Running ./gdb.mi/mi-cli.exp ...
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec with no arguments
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec with one argument
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec with bogus interpreter
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console bogus
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "file $binfile"
+PASS: gdb.mi/mi-cli.exp: breakpoint at main
+PASS: gdb.mi/mi-cli.exp: mi runto main
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set args foobar"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "show args"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "break callee4"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "info break"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set listsize 1"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "list"
+PASS: gdb.mi/mi-cli.exp: continue to callee4
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "delete 2"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "up"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "down"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "frame 2"
+PASS: gdb.mi/mi-cli.exp: -stack-select-frame 0
+PASS: gdb.mi/mi-cli.exp: check *stopped from CLI command
+PASS: gdb.mi/mi-cli.exp: -break-insert -t basics.c:$line_main_hello
+PASS: gdb.mi/mi-cli.exp: -exec-continue to line $line_main_hello
+PASS: gdb.mi/mi-cli.exp: 34 next: run
+PASS: gdb.mi/mi-cli.exp: 34 next: stop
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "list" at basics.c:$line_main_return
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "help set args"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set $pc=0x0"
+Running ./gdb.mi/mi-cmd-param-changed.exp ...
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: breakpoint at main
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: mi runto main
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking step"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: interpreter-exec "set scheduler-locking on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: interpreter-exec "set scheduler-locking off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: interpreter-exec "set scheduler-locking step"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking on" no event (requested by MI)
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking step" no event (requested by MI interp)
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set scheduler-locking stepr" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache" warmup
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remotecache" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type" warmup
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set check type" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set trace-notes foo"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set trace-notes bar"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set trace-notes bar" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remote exec-file foo"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remote exec-file bar"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set remote exec-file bar" no event
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "maint set profile on"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "maint set profile off"
+PASS: gdb.mi/mi-cmd-param-changed.exp: cmd param: "set ch type on"
+Running ./gdb.mi/mi-console.exp ...
+PASS: gdb.mi/mi-console.exp: breakpoint at main
+PASS: gdb.mi/mi-console.exp: mi runto main
+PASS: gdb.mi/mi-console.exp: Testing console output
+UNSUPPORTED: gdb.mi/mi-console.exp: Testing console output inferior output
+PASS: gdb.mi/mi-console.exp: finished step over hello
+Running ./gdb.mi/mi-disassemble.exp ...
+PASS: gdb.mi/mi-disassemble.exp: breakpoint at main
+PASS: gdb.mi/mi-disassemble.exp: mi runto main
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble from pc to pc+12 assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file & line, assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble from pc to pc+12 assembly with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file & line, assembly with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line assembly mixed with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed with opcodes
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble bogus filename
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble bogus address
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble mix different args
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble wrong mode arg
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (zero lines) assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (more than main lines) assembly only
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (zero lines) assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line, number (more than main lines) assembly mixed
+Running ./gdb.mi/mi-eval.exp ...
+PASS: gdb.mi/mi-eval.exp: breakpoint at callee4
+PASS: gdb.mi/mi-eval.exp: mi runto callee4
+PASS: gdb.mi/mi-eval.exp: next at callee4
+PASS: gdb.mi/mi-eval.exp: eval A
+PASS: gdb.mi/mi-eval.exp: eval &A
+PASS: gdb.mi/mi-eval.exp: eval A+3
+PASS: gdb.mi/mi-eval.exp: eval A + 3
+Running ./gdb.mi/mi-file.exp ...
+PASS: gdb.mi/mi-file.exp: request path info of current source file (basics.c)
+PASS: gdb.mi/mi-file.exp: Getting a list of source files.
+Running ./gdb.mi/mi-file-transfer.exp ...
+FAIL: gdb.mi/mi-file-transfer.exp: put binary file
+FAIL: gdb.mi/mi-file-transfer.exp: get binary file
+FAIL: gdb.mi/mi-file-transfer.exp: compare binary file
+FAIL: gdb.mi/mi-file-transfer.exp: deleted binary file
+Running ./gdb.mi/mi-fill-memory.exp ...
+PASS: gdb.mi/mi-fill-memory.exp: breakpoint at main
+PASS: gdb.mi/mi-fill-memory.exp: mi runto main
+PASS: gdb.mi/mi-fill-memory.exp: next at main
+PASS: gdb.mi/mi-fill-memory.exp: no arguments
+PASS: gdb.mi/mi-fill-memory.exp: one argument missing
+PASS: gdb.mi/mi-fill-memory.exp: memory successfully written
+PASS: gdb.mi/mi-fill-memory.exp: memory successfully filled (8 bytes)
+PASS: gdb.mi/mi-fill-memory.exp: pattern correctly read from memory
+Running ./gdb.mi/mi-fullname-deleted.exp ...
+PASS: gdb.mi/mi-fullname-deleted.exp: set substitute-path
+PASS: gdb.mi/mi-fullname-deleted.exp: fullname present
+PASS: gdb.mi/mi-fullname-deleted.exp: substituted fullname
+PASS: gdb.mi/mi-fullname-deleted.exp: compare_filenames_for_search does not match
+PASS: gdb.mi/mi-fullname-deleted.exp: compare_filenames_for_search does match
+Running ./gdb.mi/mi-hack-cli.exp ...
+PASS: gdb.mi/mi-hack-cli.exp: show architecture
+PASS: gdb.mi/mi-hack-cli.exp: 47show architecture
+Running ./gdb.mi/mi-info-os.exp ...
+FAIL: gdb.mi/mi-info-os.exp: -info-os
+Running ./gdb.mi/mi-inheritance-syntax-error.exp ...
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: breakpoint at C::testLocation
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: mi runto C::testLocation
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: create var for THIS
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: list children of THIS
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: -var-info-path-expression var1.A
+PASS: gdb.mi/mi-inheritance-syntax-error.exp: -data-evaluate-expression (*(class A*) this)
+Running ./gdb.mi/mi-logging.exp ...
+PASS: gdb.mi/mi-logging.exp: breakpoint at main
+PASS: gdb.mi/mi-logging.exp: mi runto main
+PASS: gdb.mi/mi-logging.exp: logging on
+PASS: gdb.mi/mi-logging.exp: logged step
+PASS: gdb.mi/mi-logging.exp: logged next
+PASS: gdb.mi/mi-logging.exp: logging off
+PASS: gdb.mi/mi-logging.exp: Log file contents
+PASS: gdb.mi/mi-logging.exp: redirect logging on
+PASS: gdb.mi/mi-logging.exp: redirect logging off
+PASS: gdb.mi/mi-logging.exp: Redirect log file contents
+Running ./gdb.mi/mi-memory-changed.exp ...
+PASS: gdb.mi/mi-memory-changed.exp: insert breakpoint
+PASS: gdb.mi/mi-memory-changed.exp: continue to callee4
+PASS: gdb.mi/mi-memory-changed.exp: set var C = 4
+PASS: gdb.mi/mi-memory-changed.exp: create objvar for C
+PASS: gdb.mi/mi-memory-changed.exp: change C thru. varobj
+PASS: gdb.mi/mi-memory-changed.exp: change C thru. -data-write-memory-bytes
+PASS: gdb.mi/mi-memory-changed.exp: get address of main
+Running ./gdb.mi/mi-nonstop-exit.exp ...
+PASS: gdb.mi/mi-nonstop-exit.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nonstop-exit.exp: breakpoint at main
+PASS: gdb.mi/mi-nonstop-exit.exp: mi runto main
+PASS: gdb.mi/mi-nonstop-exit.exp: finished exec continue
+PASS: gdb.mi/mi-nonstop-exit.exp: breakpoint at main
+PASS: gdb.mi/mi-nonstop-exit.exp: mi runto main
+PASS: gdb.mi/mi-nonstop-exit.exp: finished exec continue (2)
+Running ./gdb.mi/mi-nonstop.exp ...
+PASS: gdb.mi/mi-nonstop.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nonstop.exp: breakpoint at main
+PASS: gdb.mi/mi-nonstop.exp: mi runto main
+PASS: gdb.mi/mi-nonstop.exp: breakpoint at marker
+PASS: gdb.mi/mi-nonstop.exp: w0,i0 stop
+PASS: gdb.mi/mi-nonstop.exp: w1,i0 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 1
+PASS: gdb.mi/mi-nonstop.exp: select thread 2
+PASS: gdb.mi/mi-nonstop.exp: create varobj in first thread
+PASS: gdb.mi/mi-nonstop.exp: select thread 3
+PASS: gdb.mi/mi-nonstop.exp: create varobj in second thread
+PASS: gdb.mi/mi-nonstop.exp: thread state, resume 1
+PASS: gdb.mi/mi-nonstop.exp: w0,i1 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 2
+PASS: gdb.mi/mi-nonstop.exp: thread state, resume 2
+PASS: gdb.mi/mi-nonstop.exp: w1,i1 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 3
+PASS: gdb.mi/mi-nonstop.exp: update varobj, 1
+PASS: gdb.mi/mi-nonstop.exp: check varobj, w0, 1
+PASS: gdb.mi/mi-nonstop.exp: check varobj, w1, 1
+PASS: gdb.mi/mi-nonstop.exp: interrupted
+PASS: gdb.mi/mi-nonstop.exp: got interrupt
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop 4
+PASS: gdb.mi/mi-nonstop.exp: resume all
+PASS: gdb.mi/mi-nonstop.exp: w0,i2 stop
+PASS: gdb.mi/mi-nonstop.exp: w1,i2 stop
+PASS: gdb.mi/mi-nonstop.exp: set condition, 1
+PASS: gdb.mi/mi-nonstop.exp: w0,i3 stop
+PASS: gdb.mi/mi-nonstop.exp: thread state, stop on cond breakpoint
+PASS: gdb.mi/mi-nonstop.exp: update varobj, 2
+PASS: gdb.mi/mi-nonstop.exp: check varobj, w1, 1
+PASS: gdb.mi/mi-nonstop.exp: stacktrace of running thread
+PASS: gdb.mi/mi-nonstop.exp: stacktrace of stopped thread
+PASS: gdb.mi/mi-nonstop.exp: select first worker thread
+PASS: gdb.mi/mi-nonstop.exp: ask the second thread to exit
+UNSUPPORTED: gdb.mi/mi-nonstop.exp: wait for thread exit
+PASS: gdb.mi/mi-nonstop.exp: stacktrace of stopped thread
+Running ./gdb.mi/mi-nsintrall.exp ...
+PASS: gdb.mi/mi-nsintrall.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nsintrall.exp: breakpoint at main
+PASS: gdb.mi/mi-nsintrall.exp: mi runto main
+PASS: gdb.mi/mi-nsintrall.exp: breakpoint at thread_function
+PASS: gdb.mi/mi-nsintrall.exp: stop 0
+PASS: gdb.mi/mi-nsintrall.exp: stop 1
+PASS: gdb.mi/mi-nsintrall.exp: stop 2
+PASS: gdb.mi/mi-nsintrall.exp: stop 3
+PASS: gdb.mi/mi-nsintrall.exp: stop 4
+PASS: gdb.mi/mi-nsintrall.exp: stop 5
+PASS: gdb.mi/mi-nsintrall.exp: thread state, all stopped
+PASS: gdb.mi/mi-nsintrall.exp: resume all, no breakpoint
+PASS: gdb.mi/mi-nsintrall.exp: thread state, resume all
+PASS: gdb.mi/mi-nsintrall.exp: interrupt all threads
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 0
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 1
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 2
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 3
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 4
+PASS: gdb.mi/mi-nsintrall.exp: interrupt 5
+PASS: gdb.mi/mi-nsintrall.exp: thread state, all interrupted
+PASS: gdb.mi/mi-nsintrall.exp: resume all after interrupting
+PASS: gdb.mi/mi-nsintrall.exp: thread state, resume all after interrupting
+Running ./gdb.mi/mi-nsmoribund.exp ...
+PASS: gdb.mi/mi-nsmoribund.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-nsmoribund.exp: breakpoint at main
+PASS: gdb.mi/mi-nsmoribund.exp: mi runto main
+PASS: gdb.mi/mi-nsmoribund.exp: breakpoint at thread_function
+PASS: gdb.mi/mi-nsmoribund.exp: stop 0
+PASS: gdb.mi/mi-nsmoribund.exp: stop 1
+PASS: gdb.mi/mi-nsmoribund.exp: stop 2
+PASS: gdb.mi/mi-nsmoribund.exp: stop 3
+PASS: gdb.mi/mi-nsmoribund.exp: stop 4
+PASS: gdb.mi/mi-nsmoribund.exp: stop 5
+PASS: gdb.mi/mi-nsmoribund.exp: stop 6
+PASS: gdb.mi/mi-nsmoribund.exp: stop 7
+PASS: gdb.mi/mi-nsmoribund.exp: stop 8
+PASS: gdb.mi/mi-nsmoribund.exp: stop 9
+PASS: gdb.mi/mi-nsmoribund.exp: thread state: all stopped except the main thread
+PASS: gdb.mi/mi-nsmoribund.exp: select thread 5
+PASS: gdb.mi/mi-nsmoribund.exp: thread specific breakpoint at thread_function
+PASS: gdb.mi/mi-nsmoribund.exp: resume all, thread specific breakpoint
+PASS: gdb.mi/mi-nsmoribund.exp: hit thread specific breakpoint
+PASS: gdb.mi/mi-nsmoribund.exp: thread state: all running except the breakpoint thread
+PASS: gdb.mi/mi-nsmoribund.exp: resume all, program exited normally
+Running ./gdb.mi/mi-ns-stale-regcache.exp ...
+PASS: gdb.mi/mi-ns-stale-regcache.exp: breakpoint at main
+PASS: gdb.mi/mi-ns-stale-regcache.exp: mi runto main
+PASS: gdb.mi/mi-ns-stale-regcache.exp: no stale register cache of resumed thread
+PASS: gdb.mi/mi-ns-stale-regcache.exp: no stale frame info of resumed thread
+PASS: gdb.mi/mi-ns-stale-regcache.exp: main thread still running
+Running ./gdb.mi/mi-nsthrexec.exp ...
+Running ./gdb.mi/mi-pending.exp ...
+PASS: gdb.mi/mi-pending.exp: MI pending breakpoint on pendfunc1
+PASS: gdb.mi/mi-pending.exp: MI pending breakpoint on mi-pendshr.c:pendfunc2 if x==4
+PASS: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc1
+PASS: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc1 a second time
+PASS: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc2 with x==4
+Running ./gdb.mi/mi-pthreads.exp ...
+PASS: gdb.mi/mi-pthreads.exp: successfully compiled posix threads test case
+PASS: gdb.mi/mi-pthreads.exp: breakpoint at done_making_threads
+PASS: gdb.mi/mi-pthreads.exp: mi runto done_making_threads
+PASS: gdb.mi/mi-pthreads.exp: -thread_list_ids (in check_mi_thread_command_set)
+PASS: gdb.mi/mi-pthreads.exp: finding threads in MI output (in check_mi_thread_command_set)
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 123456789
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 6
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 5
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 4
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 3
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 2
+PASS: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select 1
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 6
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 5
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 4
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 3
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 2
+PASS: gdb.mi/mi-pthreads.exp: check =thread-selected: thread 1
+Running ./gdb.mi/mi-read-memory.exp ...
+PASS: gdb.mi/mi-read-memory.exp: breakpoint at main
+PASS: gdb.mi/mi-read-memory.exp: mi runto main
+PASS: gdb.mi/mi-read-memory.exp: next at main
+PASS: gdb.mi/mi-read-memory.exp: no arguments
+PASS: gdb.mi/mi-read-memory.exp: 3x2, one byte
+PASS: gdb.mi/mi-read-memory.exp: 3x2, one byte offset by -6
+PASS: gdb.mi/mi-read-memory.exp: expression in quotes
+PASS: gdb.mi/mi-read-memory.exp: ascii and data
+PASS: gdb.mi/mi-read-memory.exp: decimal
+PASS: gdb.mi/mi-read-memory.exp: octal
+Running ./gdb.mi/mi-record-changed.exp ...
+Running ./gdb.mi/mi-regs.exp ...
+Running ./gdb.mi/mi-return.exp ...
+PASS: gdb.mi/mi-return.exp: breakpoint at callee4
+PASS: gdb.mi/mi-return.exp: mi runto callee4
+PASS: gdb.mi/mi-return.exp: delete all breakpoints
+PASS: gdb.mi/mi-return.exp: return from callee4 now
+Running ./gdb.mi/mi-reverse.exp ...
+Running ./gdb.mi/mi-simplerun.exp ...
+PASS: gdb.mi/mi-simplerun.exp: break-insert operation
+PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at basics.c:callee2
+PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at basics.c:$line_callee3_head
+PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at "<fullfilename>":$line_callee4_head
+PASS: gdb.mi/mi-simplerun.exp: list of breakpoints
+PASS: gdb.mi/mi-simplerun.exp: disabling of breakpoints
+PASS: gdb.mi/mi-simplerun.exp: list of breakpoints, 16 disabled
+PASS: gdb.mi/mi-simplerun.exp: run to main
+PASS: gdb.mi/mi-simplerun.exp: next at main
+PASS: gdb.mi/mi-simplerun.exp: step at main
+PASS: gdb.mi/mi-simplerun.exp: step to callee4
+PASS: gdb.mi/mi-simplerun.exp: exec-finish
+PASS: gdb.mi/mi-simplerun.exp: continue to end
+Running ./gdb.mi/mi-solib.exp ...
+PASS: gdb.mi/mi-solib.exp: set stop-on-solib-events
+PASS: gdb.mi/mi-solib.exp: check for solib event
+Running ./gdb.mi/mi-stack.exp ...
+PASS: gdb.mi/mi-stack.exp: breakpoint at callee4
+PASS: gdb.mi/mi-stack.exp: mi runto callee4
+PASS: gdb.mi/mi-stack.exp: stack frame listing
+PASS: gdb.mi/mi-stack.exp: stack frame listing 1 1
+PASS: gdb.mi/mi-stack.exp: stack frame listing 1 3
+PASS: gdb.mi/mi-stack.exp: stack frame listing wrong
+PASS: gdb.mi/mi-stack.exp: selected frame listing
+PASS: gdb.mi/mi-stack.exp: stack frame listing 1 300
+PASS: gdb.mi/mi-stack.exp: stack args listing 0
+PASS: gdb.mi/mi-stack.exp: stack args listing 0 1 1
+PASS: gdb.mi/mi-stack.exp: stack args listing 0 1 3
+PASS: gdb.mi/mi-stack.exp: stack args listing 1
+PASS: gdb.mi/mi-stack.exp: stack args listing 1 1 1
+PASS: gdb.mi/mi-stack.exp: stack args listing 1 1 3
+PASS: gdb.mi/mi-stack.exp: stack args listing wrong
+PASS: gdb.mi/mi-stack.exp: stack args listing 1 1 300
+PASS: gdb.mi/mi-stack.exp: stack locals listing of names
+PASS: gdb.mi/mi-stack.exp: next's in callee4
+PASS: gdb.mi/mi-stack.exp: stack locals listing of names and values
+PASS: gdb.mi/mi-stack.exp: stack locals listing, simple types: names and values, complex type: names and types
+PASS: gdb.mi/mi-stack.exp: stack locals listing wrong
+PASS: gdb.mi/mi-stack.exp: stack select frame 1
+PASS: gdb.mi/mi-stack.exp: stack locals listing for new frame
+PASS: gdb.mi/mi-stack.exp: stack locals for same frame (level 1)
+PASS: gdb.mi/mi-stack.exp: stack info-depth
+PASS: gdb.mi/mi-stack.exp: stack info-depth 3
+PASS: gdb.mi/mi-stack.exp: stack info-depth 99
+PASS: gdb.mi/mi-stack.exp: stack info-depth wrong usage
+Running ./gdb.mi/mi-stepi.exp ...
+PASS: gdb.mi/mi-stepi.exp: breakpoint at main
+PASS: gdb.mi/mi-stepi.exp: mi runto main
+PASS: gdb.mi/mi-stepi.exp: step-instruction at main
+PASS: gdb.mi/mi-stepi.exp: step-instruction at main (line check)
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main (line check)
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main 2
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main 2 (line check)
+Running ./gdb.mi/mi-stepn.exp ...
+PASS: gdb.mi/mi-stepn.exp: breakpoint at main
+PASS: gdb.mi/mi-stepn.exp: mi runto main
+PASS: gdb.mi/mi-stepn.exp: breakpoint at do_nothing
+PASS: gdb.mi/mi-stepn.exp: breakpoint-hit reported
+Running ./gdb.mi/mi-syn-frame.exp ...
+PASS: gdb.mi/mi-syn-frame.exp: breakpoint at main
+PASS: gdb.mi/mi-syn-frame.exp: mi runto main
+PASS: gdb.mi/mi-syn-frame.exp: insert breakpoint foo
+PASS: gdb.mi/mi-syn-frame.exp: call inferior's function with a breakpoint set in it
+PASS: gdb.mi/mi-syn-frame.exp: backtrace from inferior function stopped at bp, showing gdb dummy frame
+PASS: gdb.mi/mi-syn-frame.exp: finished exec continue
+PASS: gdb.mi/mi-syn-frame.exp: list stack frames
+PASS: gdb.mi/mi-syn-frame.exp: insert breakpoint subroutine
+PASS: gdb.mi/mi-syn-frame.exp: data evaluate expression
+PASS: gdb.mi/mi-syn-frame.exp: list stack frames
+PASS: gdb.mi/mi-syn-frame.exp: finished exec continue
+PASS: gdb.mi/mi-syn-frame.exp: list stack frames
+PASS: gdb.mi/mi-syn-frame.exp: call inferior function which raises exception
+PASS: gdb.mi/mi-syn-frame.exp: backtrace from inferior function at exception
+Running ./gdb.mi/mi-until.exp ...
+PASS: gdb.mi/mi-until.exp: break-insert operation
+PASS: gdb.mi/mi-until.exp: run to main
+PASS: gdb.mi/mi-until.exp: break-delete 1
+KFAIL: gdb.mi/mi-until.exp: until after while loop (stopped at wrong place) (PRMS: gdb/2104)
+PASS: gdb.mi/mi-until.exp: until line number
+PASS: gdb.mi/mi-until.exp: until line number:file
+PASS: gdb.mi/mi-until.exp: until after current function
+Running ./gdb.mi/mi-var-block.exp ...
+PASS: gdb.mi/mi-var-block.exp: breakpoint at do_block_tests
+PASS: gdb.mi/mi-var-block.exp: mi runto do_block_tests
+PASS: gdb.mi/mi-var-block.exp: create local variable cb
+PASS: gdb.mi/mi-var-block.exp: try to create local variable foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 1
+PASS: gdb.mi/mi-var-block.exp: delete var foo 1
+PASS: gdb.mi/mi-var-block.exp: create local variable foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 2
+PASS: gdb.mi/mi-var-block.exp: update all vars: cb foo changed
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 3
+PASS: gdb.mi/mi-var-block.exp: create local variable inner_foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 4
+PASS: gdb.mi/mi-var-block.exp: create local variable foo2
+XFAIL: gdb.mi/mi-var-block.exp: update inner_foo: should be out of scope: KNOWN PROBLEM
+XFAIL: gdb.mi/mi-var-block.exp: evaluate inner_foo: should be out of scope: KNOWN PROBLEM
+PASS: gdb.mi/mi-var-block.exp: update foo: did not change
+PASS: gdb.mi/mi-var-block.exp: delete var inner_foo
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 5
+XFAIL: gdb.mi/mi-var-block.exp: update foo2: should be out of scope: KNOWN PROBLEM
+PASS: gdb.mi/mi-var-block.exp: step at do_block_test 6
+XFAIL: gdb.mi/mi-var-block.exp: update foo2 should be out of scope: KNOWN PROBLEM
+XFAIL: gdb.mi/mi-var-block.exp: update foo should be out of scope: KNOWN PROBLEM
+PASS: gdb.mi/mi-var-block.exp: update cb
+PASS: gdb.mi/mi-var-block.exp: delete var foo 2
+PASS: gdb.mi/mi-var-block.exp: delete var foo2
+PASS: gdb.mi/mi-var-block.exp: delete var cb
+Running ./gdb.mi/mi-var-child.exp ...
+PASS: gdb.mi/mi-var-child.exp: breakpoint at do_children_tests
+PASS: gdb.mi/mi-var-child.exp: mi runto do_children_tests
+PASS: gdb.mi/mi-var-child.exp: run to 215 (set breakpoint)
+PASS: gdb.mi/mi-var-child.exp: create local variable struct_declarations
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.integer
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.integer
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.character
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.character
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_int
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_int
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr_struct
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.1
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.1
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.3
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.3
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.4
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.4
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.5
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.5
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.6
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.6
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.7
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.7
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.8
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.8
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.9
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.9
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.a
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.a
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.b
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.b
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.c
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.c
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.d
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.d
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.g
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.g
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.h
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.h
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.i
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.i
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.f
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.d
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.e
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.func
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.foo
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.array_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.func
+PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: step to line $line_dct_123
+PASS: gdb.mi/mi-var-child.exp: create local variable weird
+PASS: gdb.mi/mi-var-child.exp: get children of weird
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird
+PASS: gdb.mi/mi-var-child.exp: get children of weird.long_array
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird.long_array
+PASS: gdb.mi/mi-var-child.exp: get children of weird.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird.int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird.int_ptr_ptr.*int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: create local variable weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: is weird editable
+PASS: gdb.mi/mi-var-child.exp: is weird->int_ptr_ptr editable
+PASS: gdb.mi/mi-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr editable
+PASS: gdb.mi/mi-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable
+PASS: gdb.mi/mi-var-child.exp: is weird.u1 editable
+PASS: gdb.mi/mi-var-child.exp: is weird.s2 editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.u1.a editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.u1.b editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.u1.c editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.long_array editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations.long_array.0 editable
+PASS: gdb.mi/mi-var-child.exp: is struct_declarations editable
+PASS: gdb.mi/mi-var-child.exp: delete var weird
+PASS: gdb.mi/mi-var-child.exp: update all vars. None changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 1
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.integer
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 4
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.char_ptr
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 5
+PASS: gdb.mi/mi-var-child.exp: update all vars int_ptr_ptr and children changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 6
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.0 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 7
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.1 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_123 + 8
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.2 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_nothing
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.3-9 changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 1
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.func_ptr changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 2
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.10 changed, don't print values.
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_a0_0
+PASS: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.11 changed, print values.
+PASS: gdb.mi/mi-var-child.exp: listing of names and values of children
+PASS: gdb.mi/mi-var-child.exp: listing of children, simple types: names, type and values, complex types: names and types
+PASS: gdb.mi/mi-var-child.exp: delete var struct_declarations
+PASS: gdb.mi/mi-var-child.exp: delete var weird->int_ptr_ptr
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 1
+PASS: gdb.mi/mi-var-child.exp: create local variable  psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
+PASS: gdb.mi/mi-var-child.exp: create local variable  psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
+PASS: gdb.mi/mi-var-child.exp: create local variable  psnp->ptrs
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.next
+PASS: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.next.ptrs
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 2
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->char_ptr (and 0.char_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 3
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->next->char_ptr (and 1.char_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 4
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->next->next->char_ptr (and 2.char_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 5
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->long_ptr (and 0.long_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 6
+XFAIL: gdb.mi/mi-var-child.exp: update all vars psnp->next->long_ptr (and 1.long_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 7
+PASS: gdb.mi/mi-var-child.exp: update all vars psnp->next->next->long_ptr (and 2.long_ptr) changed
+PASS: gdb.mi/mi-var-child.exp: run to mi-var-child.c:323 (set breakpoint)
+PASS: gdb.mi/mi-var-child.exp: create varobj for s
+PASS: gdb.mi/mi-var-child.exp: list children of S
+PASS: gdb.mi/mi-var-child.exp: delete S.a
+PASS: gdb.mi/mi-var-child.exp: delete S.b
+PASS: gdb.mi/mi-var-child.exp: delete S
+Running ./gdb.mi/mi-var-child-f.exp ...
+UNSUPPORTED: gdb.mi/mi-var-child-f.exp: compilation array.f
+Running ./gdb.mi/mi-var-cmd.exp ...
+PASS: gdb.mi/mi-var-cmd.exp: create global variable
+PASS: gdb.mi/mi-var-cmd.exp: create non-existent variable
+PASS: gdb.mi/mi-var-cmd.exp: create out of scope variable
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: run to 148 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create local variable linteger
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpcharacter
+PASS: gdb.mi/mi-var-cmd.exp: create local variable llong
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lplong
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lfloat
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpfloat
+PASS: gdb.mi/mi-var-cmd.exp: create local variable ldouble
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpdouble
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lsimple
+PASS: gdb.mi/mi-var-cmd.exp: create local variable lpsimple
+PASS: gdb.mi/mi-var-cmd.exp: create local variable func
+PASS: gdb.mi/mi-var-cmd.exp: create lsimple.character
+PASS: gdb.mi/mi-var-cmd.exp: create lsimple->integer
+PASS: gdb.mi/mi-var-cmd.exp: create lsimple.integer
+PASS: gdb.mi/mi-var-cmd.exp: create int
+PASS: gdb.mi/mi-var-cmd.exp: update all vars
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_test
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: linteger changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (2)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lpinteger changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (3)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lcharacter changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (4)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lpcharacter changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (5)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: many changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (6)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: func and lpsimple changed
+PASS: gdb.mi/mi-var-cmd.exp: step at do_locals_tests (7)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lsimple and others changed
+PASS: gdb.mi/mi-var-cmd.exp: assign to global_simple
+PASS: gdb.mi/mi-var-cmd.exp: assign to linteger
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: linteger changed after assign
+PASS: gdb.mi/mi-var-cmd.exp: assign to linteger again, same value
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: linteger not changed after same assign
+PASS: gdb.mi/mi-var-cmd.exp: eval linteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: lpinteger changed after assign
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: no changes on second update
+PASS: gdb.mi/mi-var-cmd.exp: eval lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to linteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: assign to lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: eval lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: assign to llong
+PASS: gdb.mi/mi-var-cmd.exp: eval llong
+PASS: gdb.mi/mi-var-cmd.exp: assign to llong
+PASS: gdb.mi/mi-var-cmd.exp: assign to lplong
+PASS: gdb.mi/mi-var-cmd.exp: eval lplong
+PASS: gdb.mi/mi-var-cmd.exp: assign to lplong
+PASS: gdb.mi/mi-var-cmd.exp: assign to lfloat
+PASS: gdb.mi/mi-var-cmd.exp: eval lfloat
+PASS: gdb.mi/mi-var-cmd.exp: assign to lfloat
+PASS: gdb.mi/mi-var-cmd.exp: assign to lpfloat
+PASS: gdb.mi/mi-var-cmd.exp: assign to ldouble
+PASS: gdb.mi/mi-var-cmd.exp: assign to func
+PASS: gdb.mi/mi-var-cmd.exp: assign to lsimple.character
+PASS: gdb.mi/mi-var-cmd.exp: assign to lsimple->integer
+PASS: gdb.mi/mi-var-cmd.exp: assign to lsimple.integer
+PASS: gdb.mi/mi-var-cmd.exp: var update
+PASS: gdb.mi/mi-var-cmd.exp: assign same value to func
+PASS: gdb.mi/mi-var-cmd.exp: assign same value to func (update)
+PASS: gdb.mi/mi-var-cmd.exp: create global variable array_ptr
+PASS: gdb.mi/mi-var-cmd.exp: assign array to pointer
+PASS: gdb.mi/mi-var-cmd.exp: assign array to pointer (update)
+PASS: gdb.mi/mi-var-cmd.exp: assign same array to pointer
+PASS: gdb.mi/mi-var-cmd.exp: assign same array to pointer (update)
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at subroutine1
+PASS: gdb.mi/mi-var-cmd.exp: mi runto subroutine1
+PASS: gdb.mi/mi-var-cmd.exp: create i
+PASS: gdb.mi/mi-var-cmd.exp: create l
+PASS: gdb.mi/mi-var-cmd.exp: create linteger
+PASS: gdb.mi/mi-var-cmd.exp: step at subroutine1
+XFAIL: gdb.mi/mi-var-cmd.exp: update all vars: changed FIXME
+PASS: gdb.mi/mi-var-cmd.exp: step at subroutine1 (2)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: i changed
+PASS: gdb.mi/mi-var-cmd.exp: step at subroutine1 (3)
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: llong changed
+PASS: gdb.mi/mi-var-cmd.exp: next out of subroutine1
+PASS: gdb.mi/mi-var-cmd.exp: update all vars: all now out of scope
+PASS: gdb.mi/mi-var-cmd.exp: delete var
+PASS: gdb.mi/mi-var-cmd.exp: delete var linteger
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpinteger
+PASS: gdb.mi/mi-var-cmd.exp: delete var lcharacter
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpcharacter
+PASS: gdb.mi/mi-var-cmd.exp: delete var llong
+PASS: gdb.mi/mi-var-cmd.exp: delete var lplong
+PASS: gdb.mi/mi-var-cmd.exp: delete var lfloat
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpfloat
+PASS: gdb.mi/mi-var-cmd.exp: delete var ldouble
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpdouble
+PASS: gdb.mi/mi-var-cmd.exp: delete var lsimple
+PASS: gdb.mi/mi-var-cmd.exp: delete var lpsimple
+PASS: gdb.mi/mi-var-cmd.exp: delete var func
+PASS: gdb.mi/mi-var-cmd.exp: delete var lsimple.character
+PASS: gdb.mi/mi-var-cmd.exp: delete var  lsimple->integer
+PASS: gdb.mi/mi-var-cmd.exp: delete var lsimple.integer
+PASS: gdb.mi/mi-var-cmd.exp: delete var i
+PASS: gdb.mi/mi-var-cmd.exp: delete var l
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: create selected_a
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at incr_a
+PASS: gdb.mi/mi-var-cmd.exp: mi runto incr_a
+PASS: gdb.mi/mi-var-cmd.exp: update selected_a in incr_a
+PASS: gdb.mi/mi-var-cmd.exp: step a line in incr_a
+PASS: gdb.mi/mi-var-cmd.exp: return from incr_a to do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: update selected_a in do_special_tests
+PASS: gdb.mi/mi-var-cmd.exp: floating varobj invalidation
+PASS: gdb.mi/mi-var-cmd.exp: delete selected_a
+PASS: gdb.mi/mi-var-cmd.exp: delete array_ptr
+FAIL: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:351 (set breakpoint)
+FAIL: gdb.mi/mi-var-cmd.exp: wait for stop (frozen: step to 351)
+FAIL: gdb.mi/mi-var-cmd.exp: frozen: go to line 351
+FAIL: gdb.mi/mi-var-cmd.exp: frozen: step over 351 (MI error)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:510 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create varobj for Data
+PASS: gdb.mi/mi-var-cmd.exp: list children of Data
+PASS: gdb.mi/mi-var-cmd.exp: access bitfield
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:453 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: create floating varobj
+PASS: gdb.mi/mi-var-cmd.exp: update F (1)
+PASS: gdb.mi/mi-var-cmd.exp: check F (1)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:464 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: update F (2)
+PASS: gdb.mi/mi-var-cmd.exp: check F (2)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:472 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: update F (--all-values)
+PASS: gdb.mi/mi-var-cmd.exp: run to var-cmd.c:478 (set breakpoint)
+PASS: gdb.mi/mi-var-cmd.exp: update F (3)
+PASS: gdb.mi/mi-var-cmd.exp: check F (3)
+PASS: gdb.mi/mi-var-cmd.exp: inside breakpoint inside callee
+PASS: gdb.mi/mi-var-cmd.exp: continue to where i is initialized
+PASS: gdb.mi/mi-var-cmd.exp: update F inside callee
+PASS: gdb.mi/mi-var-cmd.exp: check F inside callee
+PASS: gdb.mi/mi-var-cmd.exp: create null_ptr
+PASS: gdb.mi/mi-var-cmd.exp: update null_ptr
+PASS: gdb.mi/mi-var-cmd.exp: delete null_ptr
+PASS: gdb.mi/mi-var-cmd.exp: kill program before endvar
+PASS: gdb.mi/mi-var-cmd.exp: create endvar
+PASS: gdb.mi/mi-var-cmd.exp: update endvar
+PASS: gdb.mi/mi-var-cmd.exp: delete endvar
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: create varobj
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: check initial value
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at main
+PASS: gdb.mi/mi-var-cmd.exp: mi runto main
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now, not changed
+PASS: gdb.mi/mi-var-cmd.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now
+PASS: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now, not changed
+Running ./gdb.mi/mi-var-cp.exp ...
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:20 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for rx
+PASS: gdb.mi/mi-var-cp.exp: update RX (1)
+PASS: gdb.mi/mi-var-cp.exp: check RX: expect 167
+PASS: gdb.mi/mi-var-cp.exp: update RX (2)
+PASS: gdb.mi/mi-var-cp.exp: check RX: expect 567
+PASS: gdb.mi/mi-var-cp.exp: update RX (3)
+PASS: gdb.mi/mi-var-cp.exp: delete RX
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:46 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for s2
+PASS: gdb.mi/mi-var-cp.exp: list children of s2
+PASS: gdb.mi/mi-var-cp.exp: list children of s2.s
+PASS: gdb.mi/mi-var-cp.exp: list children of s2.s.public
+PASS: gdb.mi/mi-var-cp.exp: check S2.S.public.i
+PASS: gdb.mi/mi-var-cp.exp: check S2.S.public.j
+PASS: gdb.mi/mi-var-cp.exp: delete S2
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:82 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for rptr_s
+PASS: gdb.mi/mi-var-cp.exp: list public child of RPTR
+PASS: gdb.mi/mi-var-cp.exp: list children of reference to pointer
+PASS: gdb.mi/mi-var-cp.exp: check i member
+PASS: gdb.mi/mi-var-cp.exp: check j member
+PASS: gdb.mi/mi-var-cp.exp: delete RPTR
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:105 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for s
+PASS: gdb.mi/mi-var-cp.exp: create varobj for s
+PASS: gdb.mi/mi-var-cp.exp: check attributes of S
+PASS: gdb.mi/mi-var-cp.exp: check attributes of R
+PASS: gdb.mi/mi-var-cp.exp: -var-update should not list structure varobjs
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:145 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for ip
+PASS: gdb.mi/mi-var-cp.exp: list children of IP
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression IP.*ip
+PASS: gdb.mi/mi-var-cp.exp: create varobj for dp
+PASS: gdb.mi/mi-var-cp.exp: list children of DP
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.Base1
+PASS: gdb.mi/mi-var-cp.exp: list children of DP.public
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.public.i
+PASS: gdb.mi/mi-var-cp.exp: list children of DP.Base1
+PASS: gdb.mi/mi-var-cp.exp: list children of DP.Base1.public
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.Base1.public.i
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression DP.public
+PASS: gdb.mi/mi-var-cp.exp: create varobj for d
+PASS: gdb.mi/mi-var-cp.exp: list children of D
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression D.Base1
+PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:192 (set breakpoint)
+PASS: gdb.mi/mi-var-cp.exp: create varobj for array
+PASS: gdb.mi/mi-var-cp.exp: list children of A
+PASS: gdb.mi/mi-var-cp.exp: -var-info-path-expression A.2
+PASS: gdb.mi/mi-var-cp.exp: break in anonymous_structs_and_unions
+PASS: gdb.mi/mi-var-cp.exp: continue to anonymous_structs breakpoint
+PASS: gdb.mi/mi-var-cp.exp: VT: create root varobj for a
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1
+PASS: gdb.mi/mi-var-cp.exp: expression for a1
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.0_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.0_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous.public.b
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous.public.b
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous.public.c
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous.public.c
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.d
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.d
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.e
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.e
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.f
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.f
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.i
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.i
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.j
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.j
+PASS: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.g
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.g
+PASS: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.h
+PASS: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.h
+Running ./gdb.mi/mi-var-create-rtti.exp ...
+PASS: gdb.mi/mi-var-create-rtti.exp: breakpoint at main
+PASS: gdb.mi/mi-var-create-rtti.exp: mi runto main
+PASS: gdb.mi/mi-var-create-rtti.exp: -var-create sp1 * $sp
+Running ./gdb.mi/mi-var-display.exp ...
+PASS: gdb.mi/mi-var-display.exp: break-insert operation
+PASS: gdb.mi/mi-var-display.exp: run to main
+PASS: gdb.mi/mi-var-display.exp: create local variable bar
+PASS: gdb.mi/mi-var-display.exp: info type variable bar
+PASS: gdb.mi/mi-var-display.exp: show format variable bar
+PASS: gdb.mi/mi-var-display.exp: eval variable bar
+PASS: gdb.mi/mi-var-display.exp: set format variable bar
+PASS: gdb.mi/mi-var-display.exp: eval variable bar with new format
+PASS: gdb.mi/mi-var-display.exp: assing to variable bar
+PASS: gdb.mi/mi-var-display.exp: set format variable bar
+PASS: gdb.mi/mi-var-display.exp: eval variable bar with new value
+PASS: gdb.mi/mi-var-display.exp: delete var bar
+PASS: gdb.mi/mi-var-display.exp: create local variable foo
+PASS: gdb.mi/mi-var-display.exp: info type variable foo
+PASS: gdb.mi/mi-var-display.exp: show format variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo
+PASS: gdb.mi/mi-var-display.exp: set format variable foo
+PASS: gdb.mi/mi-var-display.exp: show format variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo
+PASS: gdb.mi/mi-var-display.exp: assing to variable foo
+PASS: gdb.mi/mi-var-display.exp: set format variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in hex
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in hex
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in octal
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in octal
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in decimal
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in decimal
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in natural
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in natural
+PASS: gdb.mi/mi-var-display.exp: eval variable foo in binary
+PASS: gdb.mi/mi-var-display.exp: show format variable foo after eval in binary
+PASS: gdb.mi/mi-var-display.exp: delete var foo
+PASS: gdb.mi/mi-var-display.exp: create local variable weird
+PASS: gdb.mi/mi-var-display.exp: get children local variable weird
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr
+PASS: gdb.mi/mi-var-display.exp: show format variable weird.func_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: show format variable weird.func_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.integer
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.character
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.char_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.long_int
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.int_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.long_array
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_struct
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.u1
+PASS: gdb.mi/mi-var-display.exp: set format variable weird.s2
+PASS: gdb.mi/mi-var-display.exp: delete var weird
+PASS: gdb.mi/mi-var-display.exp: break-insert operation 2
+PASS: gdb.mi/mi-var-display.exp: continue to do_special_tests
+PASS: gdb.mi/mi-var-display.exp: create local variable u
+PASS: gdb.mi/mi-var-display.exp: eval variable u
+PASS: gdb.mi/mi-var-display.exp: info type variable u
+PASS: gdb.mi/mi-var-display.exp: is u editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of u
+PASS: gdb.mi/mi-var-display.exp: get children of u
+PASS: gdb.mi/mi-var-display.exp: create local variable anonu
+PASS: gdb.mi/mi-var-display.exp: eval variable anonu
+PASS: gdb.mi/mi-var-display.exp: info type variable anonu
+PASS: gdb.mi/mi-var-display.exp: is anonu editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of anonu
+PASS: gdb.mi/mi-var-display.exp: get children of anonu
+PASS: gdb.mi/mi-var-display.exp: create local variable s
+PASS: gdb.mi/mi-var-display.exp: eval variable s
+PASS: gdb.mi/mi-var-display.exp: info type variable s
+PASS: gdb.mi/mi-var-display.exp: is s editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of s
+PASS: gdb.mi/mi-var-display.exp: get children of s
+PASS: gdb.mi/mi-var-display.exp: create local variable anons
+PASS: gdb.mi/mi-var-display.exp: eval variable anons
+PASS: gdb.mi/mi-var-display.exp: info type variable anons
+PASS: gdb.mi/mi-var-display.exp: is anons editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of anons
+PASS: gdb.mi/mi-var-display.exp: get children of anons
+PASS: gdb.mi/mi-var-display.exp: create local variable e
+PASS: gdb.mi/mi-var-display.exp: eval variable e
+PASS: gdb.mi/mi-var-display.exp: info type variable e
+PASS: gdb.mi/mi-var-display.exp: is e editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of e
+PASS: gdb.mi/mi-var-display.exp: get children of e
+PASS: gdb.mi/mi-var-display.exp: create local variable anone
+PASS: gdb.mi/mi-var-display.exp: eval variable anone
+PASS: gdb.mi/mi-var-display.exp: create duplicate local variable anone
+PASS: gdb.mi/mi-var-display.exp: info type variable anone
+PASS: gdb.mi/mi-var-display.exp: is anone editable
+PASS: gdb.mi/mi-var-display.exp: get number of children of anone
+PASS: gdb.mi/mi-var-display.exp: get children of anone
+PASS: gdb.mi/mi-var-display.exp: print FP register
+PASS: gdb.mi/mi-var-display.exp: breakpoint at incr_a
+PASS: gdb.mi/mi-var-display.exp: mi runto incr_a
+PASS: gdb.mi/mi-var-display.exp: create local variable a1
+PASS: gdb.mi/mi-var-display.exp: create variable a2 in different scope
+Running ./gdb.mi/mi-var-invalidate.exp ...
+PASS: gdb.mi/mi-var-invalidate.exp: create global variable
+PASS: gdb.mi/mi-var-invalidate.exp: breakpoint at do_locals_tests
+PASS: gdb.mi/mi-var-invalidate.exp: mi runto do_locals_tests
+PASS: gdb.mi/mi-var-invalidate.exp: create local variable linteger
+PASS: gdb.mi/mi-var-invalidate.exp: create floating variable
+FAIL: gdb.mi/mi-var-invalidate.exp: breakpoint at main
+FAIL: gdb.mi/mi-var-invalidate.exp: mi runto main (unknown output after running)
+PASS: gdb.mi/mi-var-invalidate.exp: set format variable float_simple
+PASS: gdb.mi/mi-var-invalidate.exp: linteger not anymore in scope due to binary changes
+PASS: gdb.mi/mi-var-invalidate.exp: no type for invalid variable linteger (1)
+PASS: gdb.mi/mi-var-invalidate.exp: global_simple still alive
+PASS: gdb.mi/mi-var-invalidate.exp: type simpleton for valid variable global_simple
+PASS: gdb.mi/mi-var-invalidate.exp: linteger not valid anymore due to binary changes
+PASS: gdb.mi/mi-var-invalidate.exp: no type for invalid variable linteger (2)
+PASS: gdb.mi/mi-var-invalidate.exp: global_simple not anymore in scope due to binary changes
+PASS: gdb.mi/mi-var-invalidate.exp: no type for invalid variable global_simple
+Running ./gdb.mi/mi-var-rtti.exp ...
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:37 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtr (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.public (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->A (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtrConst (without RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtr.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtr->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtr (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptrConst.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check ptrConst->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constPtrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.Base (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.Base.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: list children of constPtrConst.public (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->A (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->B (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: check constPtrConst->C (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constPtrConst (with RTTI) in use_rtti_for_ptr
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:64 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ref (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.public (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->A (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ref (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constRef (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.public (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->A (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constRef (without RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ref (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.Base (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.Base.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->A (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->B (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check ref->C (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ref (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for constRef (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.Base (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.Base.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: list children of constRef.public (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->A (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->B (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: check constRef->C (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for constRef (with RTTI) in use_rtti_for_ref
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:94 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.public (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->A (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (without RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtr.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtr->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptrConst.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptrConst->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.Base (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.Base.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constPtrConst.public (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->A (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->B (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constPtrConst->C (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (with RTTI) in use_rtti_for_ptr_child
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:149 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.public (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->A (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.public (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->A (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (without RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for s (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.Base (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.Base.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ref.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->A (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->B (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.ref->C (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.Base (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.Base.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.constRef.public (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->A (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->B (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: check s.constRef->C (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s (with RTTI) in use_rtti_for_ref_child
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:202 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ref (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ref.public (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: check ref->A (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ref (without RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.First (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr (with RTTI) in use_rtti_with_multiple_inheritence
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:245 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object on" in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for S in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s in type_update_when_use_rtti
+FAIL: gdb.mi/mi-var-rtti.exp: list children of s.public in type_update_when_use_rtti
+FAIL: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in type_update_when_use_rtti
+FAIL: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:269 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr to derived in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.Base.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->B (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->C (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s.ptr to derived in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.Base.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->B (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->C (with RTTI) in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:281 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr back to base type in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s.ptr back to base type in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s in type_update_when_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:299 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: -interpreter-exec console "set print object off" in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for ptr in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: create varobj for S in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.public in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:323 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr to derived type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check ptr->A (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s to derived type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: list children of s.ptr.public (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: check s.ptr->A (without RTTI) in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:335 (set breakpoint)
+PASS: gdb.mi/mi-var-rtti.exp: update ptr back to base type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for ptr in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: update s back to base type in skip_type_update_when_not_use_rtti
+PASS: gdb.mi/mi-var-rtti.exp: delete varobj for s in skip_type_update_when_not_use_rtti
+Running ./gdb.mi/mi-watch.exp ...
+PASS: gdb.mi/mi-watch.exp: hw watchpoints toggle (1)
+PASS: gdb.mi/mi-watch.exp: sw: breakpoint at callee4
+PASS: gdb.mi/mi-watch.exp: sw: mi runto callee4
+PASS: gdb.mi/mi-watch.exp: sw: break-watch operation
+PASS: gdb.mi/mi-watch.exp: sw: list of watchpoints
+PASS: gdb.mi/mi-watch.exp: sw: watchpoint trigger
+XPASS: gdb.mi/mi-watch.exp: sw: watchpoint trigger
+Running ./gdb.mi/mi-watch-nonstop.exp ...
+Running ./gdb.mi/pr11022.exp ...
+Running ./gdb.modula2/unbounded-array.exp ...
+PASS: gdb.modula2/unbounded-array.exp: switch to modula-2
+PASS: gdb.modula2/unbounded-array.exp: print the last legal element of array a
+PASS: gdb.modula2/unbounded-array.exp: print unbounded array contents
+PASS: gdb.modula2/unbounded-array.exp: print the 1st element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 2nd element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 3rd element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 4th element of array a
+PASS: gdb.modula2/unbounded-array.exp: print the 5th element of array a
+Running ./gdb.multi/base.exp ...
+PASS: gdb.multi/base.exp: add empty inferior 2
+PASS: gdb.multi/base.exp: switch to inferior 2
+PASS: gdb.multi/base.exp: load hangout file in inferior 2
+PASS: gdb.multi/base.exp: add inferior 3 with -exec goodbye
+PASS: gdb.multi/base.exp: info inferiors
+PASS: gdb.multi/base.exp: info inferior 2 3
+PASS: gdb.multi/base.exp: info inferior 1-2
+PASS: gdb.multi/base.exp: switch to inferior 1
+PASS: gdb.multi/base.exp: 'info functions commonfun' in inferior 1
+PASS: gdb.multi/base.exp: switch to inferior 3
+PASS: gdb.multi/base.exp: 'info functions commonfun' in inferior 3
+PASS: gdb.multi/base.exp: switch back to inferior 1
+PASS: gdb.multi/base.exp: set listsize 1
+PASS: gdb.multi/base.exp: list commonfun in hello
+PASS: gdb.multi/base.exp: print hglob
+PASS: gdb.multi/base.exp: print glob (hello)
+PASS: gdb.multi/base.exp: switch to inferior 3 to print globals
+PASS: gdb.multi/base.exp: print gglob
+PASS: gdb.multi/base.exp: print glob (goodbye)
+PASS: gdb.multi/base.exp: list commonfun in goodbye
+PASS: gdb.multi/base.exp: switch to inferior 1 to run it
+PASS: gdb.multi/base.exp: break hello
+PASS: gdb.multi/base.exp: continue
+PASS: gdb.multi/base.exp: remove-inferiors 2-3
+PASS: gdb.multi/base.exp: check remove-inferiors
+Running ./gdb.multi/bkpt-multi-exec.exp ...
+Running ./gdb.multi/multi-arch-exec.exp ...
+Running ./gdb.multi/multi-arch.exp ...
+Running ./gdb.multi/watchpoint-multi.exp ...
+UNTESTED: gdb.multi/watchpoint-multi.exp: watchpoint-multi.exp
+Running ./gdb.objc/basicclass.exp ...
+UNSUPPORTED: gdb.objc/basicclass.exp: Couldn't compile ./gdb.objc/basicclass.m: unrecognized error
+Running ./gdb.objc/nondebug.exp ...
+UNSUPPORTED: gdb.objc/nondebug.exp: Couldn't compile ./gdb.objc/nondebug.m: unrecognized error
+Running ./gdb.objc/objcdecode.exp ...
+UNSUPPORTED: gdb.objc/objcdecode.exp: Couldn't compile ./gdb.objc/objcdecode.m: unrecognized error
+Running ./gdb.objc/print.exp ...
+PASS: gdb.objc/print.exp: set language objective-c
+PASS: gdb.objc/print.exp: set language to "objective-c"
+PASS: gdb.objc/print.exp: check fp + text
+PASS: gdb.objc/print.exp: p 1.
+PASS: gdb.objc/print.exp: p 1.5
+PASS: gdb.objc/print.exp: p 1.f
+PASS: gdb.objc/print.exp: p 1.5f
+PASS: gdb.objc/print.exp: p 1.l
+PASS: gdb.objc/print.exp: p 1.5l
+PASS: gdb.objc/print.exp: p 0x1.1
+PASS: gdb.objc/print.exp: reject p 1.1x
+PASS: gdb.objc/print.exp: reject p 1.1ff
+PASS: gdb.objc/print.exp: reject p 1.1ll
+Running ./gdb.opencl/callfuncs.exp ...
+Running ./gdb.opencl/convs_casts.exp ...
+Running ./gdb.opencl/datatypes.exp ...
+Running ./gdb.opencl/operators.exp ...
+Running ./gdb.opencl/vec_comps.exp ...
+Running ./gdb.opt/clobbered-registers-O2.exp ...
+PASS: gdb.opt/clobbered-registers-O2.exp: Backtracing
+PASS: gdb.opt/clobbered-registers-O2.exp: print operand0
+PASS: gdb.opt/clobbered-registers-O2.exp: print operand1
+Running ./gdb.opt/inline-break.exp ...
+PASS: gdb.opt/inline-break.exp: break func1
+PASS: gdb.opt/inline-break.exp: break func2
+PASS: gdb.opt/inline-break.exp: break func3b
+PASS: gdb.opt/inline-break.exp: break func4b
+PASS: gdb.opt/inline-break.exp: break func5b
+PASS: gdb.opt/inline-break.exp: break func6b
+PASS: gdb.opt/inline-break.exp: break func7b
+PASS: gdb.opt/inline-break.exp: break func8b
+PASS: gdb.opt/inline-break.exp: print func1
+PASS: gdb.opt/inline-break.exp: print func2
+Running ./gdb.opt/inline-bt.exp ...
+PASS: gdb.opt/inline-bt.exp: continue to bar (1)
+PASS: gdb.opt/inline-bt.exp: backtrace from bar (1)
+PASS: gdb.opt/inline-bt.exp: bar not inlined
+PASS: gdb.opt/inline-bt.exp: continue to bar (2)
+PASS: gdb.opt/inline-bt.exp: backtrace from bar (2)
+PASS: gdb.opt/inline-bt.exp: up from bar (2)
+PASS: gdb.opt/inline-bt.exp: func1 inlined (2)
+PASS: gdb.opt/inline-bt.exp: continue to bar (3)
+PASS: gdb.opt/inline-bt.exp: backtrace from bar (3)
+PASS: gdb.opt/inline-bt.exp: up from bar (3)
+PASS: gdb.opt/inline-bt.exp: func1 inlined (3)
+PASS: gdb.opt/inline-bt.exp: up from func1 (3)
+PASS: gdb.opt/inline-bt.exp: func2 inlined (3)
+Running ./gdb.opt/inline-cmds.exp ...
+PASS: gdb.opt/inline-cmds.exp: set listsize 1
+PASS: gdb.opt/inline-cmds.exp: continue to bar (1)
+PASS: gdb.opt/inline-cmds.exp: backtrace from bar (1)
+PASS: gdb.opt/inline-cmds.exp: up from bar (1)
+PASS: gdb.opt/inline-cmds.exp: func1 inlined (1)
+PASS: gdb.opt/inline-cmds.exp: continue to bar (2)
+PASS: gdb.opt/inline-cmds.exp: backtrace from bar (2)
+PASS: gdb.opt/inline-cmds.exp: up from bar (2)
+PASS: gdb.opt/inline-cmds.exp: func1 inlined (2)
+PASS: gdb.opt/inline-cmds.exp: up from func1 (2)
+PASS: gdb.opt/inline-cmds.exp: func2 inlined (2)
+PASS: gdb.opt/inline-cmds.exp: continue to marker
+PASS: gdb.opt/inline-cmds.exp: backtrace from marker
+PASS: gdb.opt/inline-cmds.exp: marker not inlined
+PASS: gdb.opt/inline-cmds.exp: next over inlined functions
+PASS: gdb.opt/inline-cmds.exp: next past inlined func1
+PASS: gdb.opt/inline-cmds.exp: print x before func1
+PASS: gdb.opt/inline-cmds.exp: backtrace does not include func1
+PASS: gdb.opt/inline-cmds.exp: stepped over call to func1
+PASS: gdb.opt/inline-cmds.exp: step into func1
+PASS: gdb.opt/inline-cmds.exp: finish from func1
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: consecutive func1
+PASS: gdb.opt/inline-cmds.exp: next to first func1
+KFAIL: gdb.opt/inline-cmds.exp: next to second func1 (PRMS: gdb/NNNN)
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: func1 then func3
+PASS: gdb.opt/inline-cmds.exp: next to func1 before func3
+PASS: gdb.opt/inline-cmds.exp: next to func3
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: finish into func1
+PASS: gdb.opt/inline-cmds.exp: next to finish marker
+PASS: gdb.opt/inline-cmds.exp: step into finish marker
+PASS: gdb.opt/inline-cmds.exp: finish from marker to func1
+PASS: gdb.opt/inline-cmds.exp: step into func1 for finish
+PASS: gdb.opt/inline-cmds.exp: finish from func1 to func3
+PASS: gdb.opt/inline-cmds.exp: continue to breakpoint: before the outer_inline call
+PASS: gdb.opt/inline-cmds.exp: reach 1 the outer_inline call
+PASS: gdb.opt/inline-cmds.exp: reach outer_inline2
+PASS: gdb.opt/inline-cmds.exp: backtrace at main of outer_inline
+PASS: gdb.opt/inline-cmds.exp: enter outer_inline2
+PASS: gdb.opt/inline-cmds.exp: backtrace at outer_inline2
+PASS: gdb.opt/inline-cmds.exp: enter outer_inline1 from outer_inline2
+PASS: gdb.opt/inline-cmds.exp: backtrace at outer_inline1
+PASS: gdb.opt/inline-cmds.exp: enter noinline from outer_inline1
+PASS: gdb.opt/inline-cmds.exp: backtrace at noinline from outer_inline1
+PASS: gdb.opt/inline-cmds.exp: enter inlined_fn from noinline
+PASS: gdb.opt/inline-cmds.exp: backtrace at inlined_fn from noinline
+PASS: gdb.opt/inline-cmds.exp: inlined_fn from noinline inlined
+PASS: gdb.opt/inline-cmds.exp: up to noinline
+PASS: gdb.opt/inline-cmds.exp: noinline from outer_inline1 not inlined
+PASS: gdb.opt/inline-cmds.exp: up to outer_inline1
+PASS: gdb.opt/inline-cmds.exp: outer_inline1 inlined
+PASS: gdb.opt/inline-cmds.exp: up to outer_inline2
+PASS: gdb.opt/inline-cmds.exp: outer_inline2 inlined
+PASS: gdb.opt/inline-cmds.exp: up from outer_inline2
+PASS: gdb.opt/inline-cmds.exp: main not inlined
+Running ./gdb.opt/inline-locals.exp ...
+PASS: gdb.opt/inline-locals.exp: continue to bar (1)
+PASS: gdb.opt/inline-locals.exp: continue to bar (2)
+PASS: gdb.opt/inline-locals.exp: backtrace from bar (2)
+PASS: gdb.opt/inline-locals.exp: up from bar (2)
+PASS: gdb.opt/inline-locals.exp: func1 inlined (2)
+PASS: gdb.opt/inline-locals.exp: info locals above bar (2)
+PASS: gdb.opt/inline-locals.exp: info args above bar (2)
+PASS: gdb.opt/inline-locals.exp: print local (2)
+PASS: gdb.opt/inline-locals.exp: print out of scope local
+PASS: gdb.opt/inline-locals.exp: continue to bar (3)
+PASS: gdb.opt/inline-locals.exp: backtrace from bar (3)
+PASS: gdb.opt/inline-locals.exp: up from bar (3)
+PASS: gdb.opt/inline-locals.exp: func1 inlined (3)
+PASS: gdb.opt/inline-locals.exp: info locals above bar (3)
+PASS: gdb.opt/inline-locals.exp: info args above bar (3)
+PASS: gdb.opt/inline-locals.exp: print local (3)
+Running ./gdb.pascal/floats.exp ...
+UNSUPPORTED: gdb.pascal/floats.exp: No pascal compiler found
+UNTESTED: gdb.pascal/floats.exp: floats.exp
+Running ./gdb.pascal/gdb11492.exp ...
+UNSUPPORTED: gdb.pascal/gdb11492.exp: No pascal compiler found
+UNTESTED: gdb.pascal/gdb11492.exp: gdb11492.exp
+Running ./gdb.pascal/hello.exp ...
+UNSUPPORTED: gdb.pascal/hello.exp: No pascal compiler found
+Running ./gdb.pascal/integers.exp ...
+UNSUPPORTED: gdb.pascal/integers.exp: No pascal compiler found
+Running ./gdb.pascal/print.exp ...
+PASS: gdb.pascal/print.exp: set language pascal
+PASS: gdb.pascal/print.exp: set language to "pascal"
+PASS: gdb.pascal/print.exp: check fp + text
+PASS: gdb.pascal/print.exp: p 1.
+PASS: gdb.pascal/print.exp: p 1.5
+PASS: gdb.pascal/print.exp: p 1.f
+PASS: gdb.pascal/print.exp: p 1.5f
+PASS: gdb.pascal/print.exp: p 1.l
+PASS: gdb.pascal/print.exp: p 1.5l
+PASS: gdb.pascal/print.exp: p 0x1.1
+PASS: gdb.pascal/print.exp: reject p 1.1x
+PASS: gdb.pascal/print.exp: reject p 1.1ff
+PASS: gdb.pascal/print.exp: reject p 1.1ll
+Running ./gdb.pascal/types.exp ...
+PASS: gdb.pascal/types.exp: set language pascal
+PASS: gdb.pascal/types.exp: set language to "pascal"
+PASS: gdb.pascal/types.exp: pt 123
+PASS: gdb.pascal/types.exp: pt TRUE
+PASS: gdb.pascal/types.exp: pt FALSE
+PASS: gdb.pascal/types.exp: pt 'a'
+KFAIL: gdb.pascal/types.exp: pt 'a simple string' (PRMS: gdb/2326)
+PASS: gdb.pascal/types.exp: pt .44
+PASS: gdb.pascal/types.exp: pt 44.0
+PASS: gdb.pascal/types.exp: pt 10e20
+PASS: gdb.pascal/types.exp: pt 10E20
+Running ./gdb.python/lib-types.exp ...
+PASS: gdb.python/lib-types.exp: python import gdb.types
+PASS: gdb.python/lib-types.exp: python const_class1_obj = gdb.parse_and_eval ('const_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_const_class1_obj = gdb.types.get_basic_type (const_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (const_class1_obj.type))
+PASS: gdb.python/lib-types.exp: const stripping
+PASS: gdb.python/lib-types.exp: python volatile_class1_obj = gdb.parse_and_eval ('volatile_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_volatile_class1_obj = gdb.types.get_basic_type (volatile_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (volatile_class1_obj.type))
+PASS: gdb.python/lib-types.exp: volatile stripping
+PASS: gdb.python/lib-types.exp: python const_volatile_class1_obj = gdb.parse_and_eval ('const_volatile_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_const_volatile_class1_obj = gdb.types.get_basic_type (const_volatile_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (const_volatile_class1_obj.type))
+PASS: gdb.python/lib-types.exp: volatile+const stripping
+PASS: gdb.python/lib-types.exp: python typedef_class1_obj = gdb.parse_and_eval ('typedef_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_typedef_class1_obj = gdb.types.get_basic_type (typedef_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (typedef_class1_obj.type))
+PASS: gdb.python/lib-types.exp: typedef stripping
+PASS: gdb.python/lib-types.exp: python class1_ref_obj = gdb.parse_and_eval ('class1_ref_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_class1_ref_obj = gdb.types.get_basic_type (class1_ref_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (class1_ref_obj.type))
+PASS: gdb.python/lib-types.exp: reference stripping
+PASS: gdb.python/lib-types.exp: python typedef_const_typedef_class1_obj = gdb.parse_and_eval ('typedef_const_typedef_class1_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_typedef_const_typedef_class1_obj = gdb.types.get_basic_type (typedef_const_typedef_class1_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (typedef_class1_obj.type))
+PASS: gdb.python/lib-types.exp: nested typedef stripping
+PASS: gdb.python/lib-types.exp: python typedef_const_typedef_class1_ref_obj = gdb.parse_and_eval ('typedef_const_typedef_class1_ref_obj')
+PASS: gdb.python/lib-types.exp: python basic_type_typedef_const_typedef_class1_ref_obj = gdb.types.get_basic_type (typedef_const_typedef_class1_ref_obj.type)
+PASS: gdb.python/lib-types.exp: python print (str (typedef_const_typedef_class1_ref_obj.type))
+PASS: gdb.python/lib-types.exp: nested typedef/ref stripping
+PASS: gdb.python/lib-types.exp: python class1_obj = gdb.parse_and_eval ('class1_obj')
+PASS: gdb.python/lib-types.exp: python print (gdb.types.has_field (class1_obj.type, 'x'))
+PASS: gdb.python/lib-types.exp: python print (gdb.types.has_field (class1_obj.type, 'nope'))
+PASS: gdb.python/lib-types.exp: python subclass1_obj = gdb.parse_and_eval ('subclass1_obj')
+PASS: gdb.python/lib-types.exp: python print (gdb.types.has_field (subclass1_obj.type, 'x'))
+PASS: gdb.python/lib-types.exp: python enum1_obj = gdb.parse_and_eval ('enum1_obj')
+PASS: gdb.python/lib-types.exp: python enum1_dict = gdb.types.make_enum_dict (enum1_obj.type)
+PASS: gdb.python/lib-types.exp: python enum1_list = sorted (enum1_dict.items ())
+PASS: gdb.python/lib-types.exp: python print (enum1_list)
+PASS: gdb.python/lib-types.exp: python struct_a = gdb.lookup_type ('struct A')
+PASS: gdb.python/lib-types.exp: python print (struct_a.keys ())
+PASS: gdb.python/lib-types.exp: python print ([k for k,v in gdb.types.deep_items(struct_a)])
+Running ./gdb.python/py-arch.exp ...
+PASS: gdb.python/py-arch.exp: test number of instructions 1
+PASS: gdb.python/py-arch.exp: test number of instructions 2
+PASS: gdb.python/py-arch.exp: test number of instructions 3
+PASS: gdb.python/py-arch.exp: test number of instructions 4
+PASS: gdb.python/py-arch.exp: test key addr
+PASS: gdb.python/py-arch.exp: test key asm
+PASS: gdb.python/py-arch.exp: test key length
+PASS: gdb.python/py-arch.exp: test exception
+Running ./gdb.python/py-block.exp ...
+PASS: gdb.python/py-block.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-block.exp: Check block not None
+PASS: gdb.python/py-block.exp: First anonymous block
+PASS: gdb.python/py-block.exp: Check start not None
+PASS: gdb.python/py-block.exp: Check end not None
+PASS: gdb.python/py-block.exp: Not a global block
+PASS: gdb.python/py-block.exp: Not a static block
+PASS: gdb.python/py-block.exp: Get block
+PASS: gdb.python/py-block.exp: Get block
+PASS: gdb.python/py-block.exp: Is the global block
+PASS: gdb.python/py-block.exp: Is the static block
+PASS: gdb.python/py-block.exp: Get superblock
+PASS: gdb.python/py-block.exp: Second anonymous block
+PASS: gdb.python/py-block.exp: Get superblock 2
+PASS: gdb.python/py-block.exp: Print superblock 2 function
+PASS: gdb.python/py-block.exp: up
+PASS: gdb.python/py-block.exp: Check Frame 2's block not None
+PASS: gdb.python/py-block.exp: main block
+PASS: gdb.python/py-block.exp: Check block validity
+PASS: gdb.python/py-block.exp: Check block validity
+PASS: gdb.python/py-block.exp: Check block validity
+PASS: gdb.python/py-block.exp: Check block validity
+Running ./gdb.python/py-breakpoint.exp ...
+PASS: gdb.python/py-breakpoint.exp: Check obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check for two breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint hit count
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint hit count
+PASS: gdb.python/py-breakpoint.exp: Check expected variable result after 6 iterations
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at add.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint enabled.
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at add.
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint thread
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint type
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint number
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint number
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint number
+PASS: gdb.python/py-breakpoint.exp: Number of breakpoints before delete
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint invalidated
+PASS: gdb.python/py-breakpoint.exp: Number of breakpoints after delete
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at end.
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test conditional has been set
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test conditional breakpoint stopped after five iterations
+PASS: gdb.python/py-breakpoint.exp: Test conditional read
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test breakpoint stopped after six iterations
+PASS: gdb.python/py-breakpoint.exp: commands $bpnum
+PASS: gdb.python/py-breakpoint.exp: print "Command for breakpoint has been executed."
+PASS: gdb.python/py-breakpoint.exp: print result
+PASS: gdb.python/py-breakpoint.exp: end
+PASS: gdb.python/py-breakpoint.exp: python print (blist[len(blist)-1].commands)
+PASS: gdb.python/py-breakpoint.exp: Check invisible bp obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint visibility
+PASS: gdb.python/py-breakpoint.exp: Check info breakpoints shows visible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check invisible bp obj exists
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint location
+PASS: gdb.python/py-breakpoint.exp: Check breakpoint visibility
+PASS: gdb.python/py-breakpoint.exp: Check info breakpoints does not show invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check maint info breakpoints shows invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Test watchpoint write
+PASS: gdb.python/py-breakpoint.exp: Check info breakpoints does not show invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Check maint info breakpoints shows invisible breakpoints
+PASS: gdb.python/py-breakpoint.exp: Test watchpoint write
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint - class bp_eval (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -    inf_i = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -    count = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -    def stop (self):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       self.count = self.count + 1
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       self.inf_i = gdb.parse_and_eval("i")
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       if self.inf_i == 3:
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -         return True
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint -       return False
+PASS: gdb.python/py-breakpoint.exp: Sub-class a breakpoint - end
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint - class bp_also_eval (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -    count = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -    def stop (self):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -       self.count = self.count + 1
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -       if self.count == 9:
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -         return True
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint -       return False
+PASS: gdb.python/py-breakpoint.exp: Sub-class a second breakpoint - end
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint - class basic (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint -    count = 0
+PASS: gdb.python/py-breakpoint.exp: Sub-class a third breakpoint - end
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Check inferior value matches python accounting
+PASS: gdb.python/py-breakpoint.exp: Check python accounting matches inferior
+PASS: gdb.python/py-breakpoint.exp: Check non firing same-location breakpoint eval function was also called at each stop.
+PASS: gdb.python/py-breakpoint.exp: Check non firing same-location breakpoint eval function was also called at each stop.
+PASS: gdb.python/py-breakpoint.exp: Check you cannot add a CLI condition to a Python breakpoint that
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function - python
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function - def stop_func ():
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function -    return True
+PASS: gdb.python/py-breakpoint.exp: Construct an eval function - end
+PASS: gdb.python/py-breakpoint.exp: Assign stop function to a breakpoint that has a condition
+PASS: gdb.python/py-breakpoint.exp: Test that evaluate function has not been yet executed (ie count = 0)
+PASS: gdb.python/py-breakpoint.exp: continue to breakpoint: Break at multiply.
+PASS: gdb.python/py-breakpoint.exp: Test that evaluate function is run when location also has normal bp
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint - python
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint - class wp_eval (gdb.Breakpoint):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -    def stop (self):
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -       self.result = gdb.parse_and_eval("result")
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -       if self.result == 788:
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -         return True
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint -       return False
+PASS: gdb.python/py-breakpoint.exp: Sub-class a watchpoint - end
+PASS: gdb.python/py-breakpoint.exp: Test watchpoint write
+PASS: gdb.python/py-breakpoint.exp: Check that this unrelated breakpoints eval function was never called.
+Running ./gdb.python/py-cmd.exp ...
+PASS: gdb.python/py-cmd.exp: input simple command - python
+PASS: gdb.python/py-cmd.exp: input simple command - class test_cmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input simple command -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input simple command -     super (test_cmd, self).__init__ ("test_cmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input simple command -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input simple command -     print ("test_cmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input simple command - test_cmd ()
+PASS: gdb.python/py-cmd.exp: input simple command - end
+PASS: gdb.python/py-cmd.exp: call simple command
+PASS: gdb.python/py-cmd.exp: input prefix command - python
+PASS: gdb.python/py-cmd.exp: input prefix command - class prefix_cmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input prefix command -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input prefix command -     super (prefix_cmd, self).__init__ ("prefix_cmd", gdb.COMMAND_OBSCURE, gdb.COMPLETE_NONE, True)
+PASS: gdb.python/py-cmd.exp: input prefix command -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input prefix command -     print ("prefix_cmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input prefix command - prefix_cmd ()
+PASS: gdb.python/py-cmd.exp: input prefix command - end
+PASS: gdb.python/py-cmd.exp: call prefix command
+PASS: gdb.python/py-cmd.exp: input subcommand - python
+PASS: gdb.python/py-cmd.exp: input subcommand - class subcmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input subcommand -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input subcommand -     super (subcmd, self).__init__ ("prefix_cmd subcmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input subcommand -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input subcommand -     print ("subcmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input subcommand - subcmd ()
+PASS: gdb.python/py-cmd.exp: input subcommand - end
+PASS: gdb.python/py-cmd.exp: call subcmd
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - python
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - class prefix_cmd2 (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -     super (prefix_cmd2, self).__init__ ("prefix_cmd2", gdb.COMMAND_OBSCURE, prefix = True, completer_class = gdb.COMPLETE_FILENAME)
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments -     print ("prefix_cmd2 output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - prefix_cmd2 ()
+PASS: gdb.python/py-cmd.exp: input prefix command, keyword arguments - end
+PASS: gdb.python/py-cmd.exp: call prefix command, keyword arguments
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - python
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - class subcmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -     super (subcmd, self).__init__ ("prefix_cmd2 subcmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 -     print ("subcmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - subcmd ()
+PASS: gdb.python/py-cmd.exp: input subcommand under prefix_cmd2 - end
+PASS: gdb.python/py-cmd.exp: call subcmd under prefix_cmd2
+PASS: gdb.python/py-cmd.exp: input new subcommand - python
+PASS: gdb.python/py-cmd.exp: input new subcommand - class newsubcmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input new subcommand -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input new subcommand -     super (newsubcmd, self).__init__ ("info newsubcmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input new subcommand -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input new subcommand -     print ("newsubcmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input new subcommand - newsubcmd ()
+PASS: gdb.python/py-cmd.exp: input new subcommand - end
+PASS: gdb.python/py-cmd.exp: call newsubcmd
+PASS: gdb.python/py-cmd.exp: input command to throw error - python
+PASS: gdb.python/py-cmd.exp: input command to throw error - class test_error_cmd (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input command to throw error -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input command to throw error -     super (test_error_cmd, self).__init__ ("test_error_cmd", gdb.COMMAND_OBSCURE)
+PASS: gdb.python/py-cmd.exp: input command to throw error -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input command to throw error -     raise gdb.GdbError ('you lose!')
+PASS: gdb.python/py-cmd.exp: input command to throw error - test_error_cmd ()
+PASS: gdb.python/py-cmd.exp: input command to throw error - end
+PASS: gdb.python/py-cmd.exp: call error command
+PASS: gdb.python/py-cmd.exp: string_to_argv ("1 2 3")
+PASS: gdb.python/py-cmd.exp: string_to_argv ("'1 2' 3")
+PASS: gdb.python/py-cmd.exp: string_to_argv ('"1 2" 3')
+PASS: gdb.python/py-cmd.exp: string_to_argv ('1\ 2 3')
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - python
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - class test_help (gdb.Command):
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -   """Docstring"""
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -   def __init__ (self):
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -     super (test_help, self).__init__ ("test_help", gdb.COMMAND_USER)
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -   def invoke (self, arg, from_tty):
+PASS: gdb.python/py-cmd.exp: input simple user-defined command -     print ("test_cmd output, arg = %s" % arg)
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - test_help ()
+PASS: gdb.python/py-cmd.exp: input simple user-defined command - end
+PASS: gdb.python/py-cmd.exp: call simple user-defined command
+PASS: gdb.python/py-cmd.exp: see user-defined command in `help user-defined`
+Running ./gdb.python/py-error.exp ...
+PASS: gdb.python/py-error.exp: set host-charset IBM1047
+PASS: gdb.python/py-error.exp: main reached
+PASS: gdb.python/py-error.exp: no delayed error
+Running ./gdb.python/py-events.exp ...
+Running ./gdb.python/py-evsignal.exp ...
+KFAIL: gdb.python/py-evsignal.exp: Signal Thread 3 (PRMS: python/12966)
+Running ./gdb.python/py-evthreads.exp ...
+KFAIL: gdb.python/py-evthreads.exp: Run to breakpoint 1 (PRMS: python/12966)
+Running ./gdb.python/py-explore-cc.exp ...
+PASS: gdb.python/py-explore-cc.exp: continue to breakpoint: Break here
+PASS: gdb.python/py-explore-cc.exp: explore A
+PASS: gdb.python/py-explore-cc.exp: explore a
+PASS: gdb.python/py-explore-cc.exp: explore int_ref
+PASS: gdb.python/py-explore-cc.exp: explore int_ptr_ref
+PASS: gdb.python/py-explore-cc.exp: explore_int_ptr_ref_as_single_value_pointer
+PASS: gdb.python/py-explore-cc.exp: explore b
+PASS: gdb.python/py-explore-cc.exp: explore_base_class_A
+PASS: gdb.python/py-explore-cc.exp: return_to_b_from_A
+PASS: gdb.python/py-explore-cc.exp: explore_field_i_of_b
+PASS: gdb.python/py-explore-cc.exp: return_to_b_from_i
+PASS: gdb.python/py-explore-cc.exp: explore_field_c_of_b
+PASS: gdb.python/py-explore-cc.exp: return_to_b_from_i
+PASS: gdb.python/py-explore-cc.exp: return_to_gdb_prompt_from_b
+PASS: gdb.python/py-explore-cc.exp: explore B
+PASS: gdb.python/py-explore-cc.exp: explore_base_class_A
+PASS: gdb.python/py-explore-cc.exp: return_to_B
+PASS: gdb.python/py-explore-cc.exp: explore_field_i_of_B
+PASS: gdb.python/py-explore-cc.exp: return_to_B_from_i
+PASS: gdb.python/py-explore-cc.exp: explore_field_c_of_B
+PASS: gdb.python/py-explore-cc.exp: return_to_B_from_c
+PASS: gdb.python/py-explore-cc.exp: return_to_gdb_prompt_from_B
+Running ./gdb.python/py-explore.exp ...
+PASS: gdb.python/py-explore.exp: continue to breakpoint: Break here
+PASS: gdb.python/py-explore.exp: explore i
+PASS: gdb.python/py-explore.exp: explore ss
+PASS: gdb.python/py-explore.exp: explore *ss_ptr
+PASS: gdb.python/py-explore.exp: explore ss_t
+PASS: gdb.python/py-explore.exp: explore ss_ptr
+PASS: gdb.python/py-explore.exp: explore ss_ptr as single value pointer
+PASS: gdb.python/py-explore.exp: explore darray_ref
+PASS: gdb.python/py-explore.exp: no_to_explore_as_pointer
+PASS: gdb.python/py-explore.exp: explore_as_array
+PASS: gdb.python/py-explore.exp: explore_as_array_index_2
+PASS: gdb.python/py-explore.exp: end explore_as_array_index_2
+PASS: gdb.python/py-explore.exp: end explore_as_array
+PASS: gdb.python/py-explore.exp: explore su
+PASS: gdb.python/py-explore.exp: explore su.d
+PASS: gdb.python/py-explore.exp: end su.d exploration
+PASS: gdb.python/py-explore.exp: end su exploration
+PASS: gdb.python/py-explore.exp: explore cs
+PASS: gdb.python/py-explore.exp: explore cs.s
+PASS: gdb.python/py-explore.exp: end cs.s exploration
+PASS: gdb.python/py-explore.exp: explore cs.u
+PASS: gdb.python/py-explore.exp: end cs.u exploration
+PASS: gdb.python/py-explore.exp: end cs exploration
+PASS: gdb.python/py-explore.exp: explore cu
+PASS: gdb.python/py-explore.exp: explore cu.sa
+PASS: gdb.python/py-explore.exp: explore cu.sa[0]
+PASS: gdb.python/py-explore.exp: end cu.sa[0] exploration
+PASS: gdb.python/py-explore.exp: end cu.sa exploration
+PASS: gdb.python/py-explore.exp: end cu exploration
+PASS: gdb.python/py-explore.exp: explore int
+PASS: gdb.python/py-explore.exp: explore struct SimpleStruct
+PASS: gdb.python/py-explore.exp: explore type struct SimpleStruct feild 0
+PASS: gdb.python/py-explore.exp: return to struct SimpleStruct from field 0
+PASS: gdb.python/py-explore.exp: explore type struct SimpleStruct feild 1
+PASS: gdb.python/py-explore.exp: return to struct SimpleStruct from field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from struct SimpleStruct
+PASS: gdb.python/py-explore.exp: explore union SimpleUnion
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 0
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 0
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 1
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 1
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 2
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 2
+PASS: gdb.python/py-explore.exp: explore type union SimpleUnion feild 3
+PASS: gdb.python/py-explore.exp: return to union SimpleUnion from field 3
+PASS: gdb.python/py-explore.exp: return to GDB prompt from union SimpleUnion
+PASS: gdb.python/py-explore.exp: explore SS
+PASS: gdb.python/py-explore.exp: explore type SS feild 0
+PASS: gdb.python/py-explore.exp: return to SS from field 0
+PASS: gdb.python/py-explore.exp: explore type SS feild 1
+PASS: gdb.python/py-explore.exp: return to SS field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from SS
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct field 0
+PASS: gdb.python/py-explore.exp: return to ComplexStruct from field 0
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct field 1
+PASS: gdb.python/py-explore.exp: return to ComplexStruct from field 1
+PASS: gdb.python/py-explore.exp: explore type struct ComplexStruct field 2
+PASS: gdb.python/py-explore.exp: return to ComplexStruct from field 2
+PASS: gdb.python/py-explore.exp: return to GDB prompt from ComplexStruct type exploration
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 0
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 0
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 1
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from ComplexUnion type exploration
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 0
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 0
+PASS: gdb.python/py-explore.exp: explore type union ComplexUnion field 1
+PASS: gdb.python/py-explore.exp: return to ComplexUnion from field 1
+PASS: gdb.python/py-explore.exp: return to GDB prompt from ComplexUnion type exploration
+Running ./gdb.python/py-finish-breakpoint2.exp ...
+PASS: gdb.python/py-finish-breakpoint2.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint2.exp: run to exception 1
+PASS: gdb.python/py-finish-breakpoint2.exp: check BP count
+PASS: gdb.python/py-finish-breakpoint2.exp: set FinishBP after the exception
+PASS: gdb.python/py-finish-breakpoint2.exp: check FinishBreakpoint in catch()
+PASS: gdb.python/py-finish-breakpoint2.exp: check finish BP removal
+PASS: gdb.python/py-finish-breakpoint2.exp: continue to second exception
+PASS: gdb.python/py-finish-breakpoint2.exp: set FinishBP after the exception
+PASS: gdb.python/py-finish-breakpoint2.exp: FinishBreakpoint with exception thrown not caught
+Running ./gdb.python/py-finish-breakpoint.exp ...
+PASS: gdb.python/py-finish-breakpoint.exp: disable confirmation
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: continue to the function to finish
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBreakpoint with default frame value
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBreakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: check return_value at init
+PASS: gdb.python/py-finish-breakpoint.exp: check MyFinishBreakpoint hit
+PASS: gdb.python/py-finish-breakpoint.exp: check return_value
+PASS: gdb.python/py-finish-breakpoint.exp: check finishBP on default frame has been hit
+PASS: gdb.python/py-finish-breakpoint.exp: ensure that finish bp is invalid afer normal hit
+PASS: gdb.python/py-finish-breakpoint.exp: return to main()
+PASS: gdb.python/py-finish-breakpoint.exp: check FinishBP not allowed in main
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: ensure that shared lib has no debug info
+PASS: gdb.python/py-finish-breakpoint.exp: continue to do_nothing
+PASS: gdb.python/py-finish-breakpoint.exp: set finish breakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: check FinishBreakpoint hit
+PASS: gdb.python/py-finish-breakpoint.exp: check return value without debug symbol
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: set finish breakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: set BP after the jump
+PASS: gdb.python/py-finish-breakpoint.exp: check FinishBP out of scope notification
+PASS: gdb.python/py-finish-breakpoint.exp: ensure that finish bp is invalid afer out of scope notification
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: set a conditional BP
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBP in a breakpoint condition
+PASS: gdb.python/py-finish-breakpoint.exp: don't allow FinishBreakpoint on dummy frames
+PASS: gdb.python/py-finish-breakpoint.exp: check stopped location
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: set conditional BP
+PASS: gdb.python/py-finish-breakpoint.exp: set BP in condition
+PASS: gdb.python/py-finish-breakpoint.exp: stop in condition function
+PASS: gdb.python/py-finish-breakpoint.exp: finish condition evaluation
+PASS: gdb.python/py-finish-breakpoint.exp: stop at conditional breakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: check stopped location
+PASS: gdb.python/py-finish-breakpoint.exp: import python scripts
+PASS: gdb.python/py-finish-breakpoint.exp: prepare TestExplicitBreakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: don't allow FinishBreakpoint on dummy frames
+PASS: gdb.python/py-finish-breakpoint.exp: prepare TestExplicitBreakpoint
+PASS: gdb.python/py-finish-breakpoint.exp: FinishBP stop at during explicit function call
+PASS: gdb.python/py-finish-breakpoint.exp: switch to exit() test
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBP after the exit()
+PASS: gdb.python/py-finish-breakpoint.exp: catch out of scope after exit
+PASS: gdb.python/py-finish-breakpoint.exp: set FinishBP after the exec
+PASS: gdb.python/py-finish-breakpoint.exp: catch exec
+PASS: gdb.python/py-finish-breakpoint.exp: catch out of scope after exec
+Running ./gdb.python/py-frame.exp ...
+PASS: gdb.python/py-frame.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-frame.exp: test Frame.architecture()
+PASS: gdb.python/py-frame.exp: test i
+PASS: gdb.python/py-frame.exp: test f
+PASS: gdb.python/py-frame.exp: test b
+PASS: gdb.python/py-frame.exp: test i = 1.1
+PASS: gdb.python/py-frame.exp: test double i
+PASS: gdb.python/py-frame.exp: test f = 2.2
+PASS: gdb.python/py-frame.exp: test double f
+PASS: gdb.python/py-frame.exp: test i = 99
+PASS: gdb.python/py-frame.exp: test int i
+PASS: gdb.python/py-frame.exp: continue to breakpoint: breakpoint at f2
+PASS: gdb.python/py-frame.exp: selected frame -vs- newest frame
+PASS: gdb.python/py-frame.exp: newest frame -vs- newest frame
+PASS: gdb.python/py-frame.exp: test equality comparison (false)
+PASS: gdb.python/py-frame.exp: test equality comparison (true)
+PASS: gdb.python/py-frame.exp: test inequality comparison (true)
+PASS: gdb.python/py-frame.exp: test inequality comparison (false)
+PASS: gdb.python/py-frame.exp: test Frame.is_valid
+PASS: gdb.python/py-frame.exp: test Frame.name
+PASS: gdb.python/py-frame.exp: test Frame.type
+PASS: gdb.python/py-frame.exp: test Frame.type
+PASS: gdb.python/py-frame.exp: test gdb.frame_stop_reason_string
+PASS: gdb.python/py-frame.exp: test Frame.pc
+PASS: gdb.python/py-frame.exp: test Frame.older
+PASS: gdb.python/py-frame.exp: test Frame.newer
+PASS: gdb.python/py-frame.exp: test Frame.read_var - error
+PASS: gdb.python/py-frame.exp: test Frame.read_var - success
+PASS: gdb.python/py-frame.exp: test gdb.selected_frame
+Running ./gdb.python/py-frame-inline.exp ...
+PASS: gdb.python/py-frame-inline.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-frame-inline.exp: info frame
+PASS: gdb.python/py-frame-inline.exp: up
+PASS: gdb.python/py-frame-inline.exp: python print (gdb.selected_frame().read_var('l'))
+Running ./gdb.python/py-function.exp ...
+PASS: gdb.python/py-function.exp: input convenience function - python
+PASS: gdb.python/py-function.exp: input convenience function - class test_func (gdb.Function):
+PASS: gdb.python/py-function.exp: input convenience function -   def __init__ (self):
+PASS: gdb.python/py-function.exp: input convenience function -     super (test_func, self).__init__ ("test_func")
+PASS: gdb.python/py-function.exp: input convenience function -   def invoke (self, arg):
+PASS: gdb.python/py-function.exp: input convenience function -     return "test_func output, arg = %s" % arg.string ()
+PASS: gdb.python/py-function.exp: input convenience function - test_func ()
+PASS: gdb.python/py-function.exp: input convenience function - end
+PASS: gdb.python/py-function.exp: call function
+PASS: gdb.python/py-function.exp: input value-returning convenience function - python
+PASS: gdb.python/py-function.exp: input value-returning convenience function - class Double (gdb.Function):
+PASS: gdb.python/py-function.exp: input value-returning convenience function -   def __init__ (self):
+PASS: gdb.python/py-function.exp: input value-returning convenience function -     super (Double, self).__init__ ("double")
+PASS: gdb.python/py-function.exp: input value-returning convenience function -   def invoke (self, n):
+PASS: gdb.python/py-function.exp: input value-returning convenience function -     return n*2
+PASS: gdb.python/py-function.exp: input value-returning convenience function - Double ()
+PASS: gdb.python/py-function.exp: input value-returning convenience function - end
+PASS: gdb.python/py-function.exp: call value-returning function
+PASS: gdb.python/py-function.exp: input int-returning function - python
+PASS: gdb.python/py-function.exp: input int-returning function - class Yes(gdb.Function):
+PASS: gdb.python/py-function.exp: input int-returning function -     def __init__(self):
+PASS: gdb.python/py-function.exp: input int-returning function -         gdb.Function.__init__(self, 'yes')
+PASS: gdb.python/py-function.exp: input int-returning function -     def invoke(self):
+PASS: gdb.python/py-function.exp: input int-returning function -         return 1
+PASS: gdb.python/py-function.exp: input int-returning function - Yes ()
+PASS: gdb.python/py-function.exp: input int-returning function - end
+PASS: gdb.python/py-function.exp: call yes with &&
+PASS: gdb.python/py-function.exp: call yes with ||
+PASS: gdb.python/py-function.exp: Test GDBError - python
+PASS: gdb.python/py-function.exp: Test GDBError - class GDBError(gdb.Function):
+PASS: gdb.python/py-function.exp: Test GDBError -     def __init__(self):
+PASS: gdb.python/py-function.exp: Test GDBError -         gdb.Function.__init__(self, 'gdberror')
+PASS: gdb.python/py-function.exp: Test GDBError -     def invoke(self):
+PASS: gdb.python/py-function.exp: Test GDBError -         raise gdb.GdbError("This is a GdbError")
+PASS: gdb.python/py-function.exp: Test GDBError - GDBError ()
+PASS: gdb.python/py-function.exp: Test GDBError - end
+PASS: gdb.python/py-function.exp: Test GdbError.  There should not be a stack trace
+PASS: gdb.python/py-function.exp: Test Normal Error - python
+PASS: gdb.python/py-function.exp: Test Normal Error - class NormalError(gdb.Function):
+PASS: gdb.python/py-function.exp: Test Normal Error -     def __init__(self):
+PASS: gdb.python/py-function.exp: Test Normal Error -         gdb.Function.__init__(self, 'normalerror')
+PASS: gdb.python/py-function.exp: Test Normal Error -     def invoke(self):
+PASS: gdb.python/py-function.exp: Test Normal Error -         raise RuntimeError("This is a Normal Error")
+PASS: gdb.python/py-function.exp: Test Normal Error - NormalError ()
+PASS: gdb.python/py-function.exp: Test Normal Error - end
+PASS: gdb.python/py-function.exp: set python print-stack full
+PASS: gdb.python/py-function.exp: Test a Runtime error.  There should be a stack trace.
+PASS: gdb.python/py-function.exp: input command-calling function - python
+PASS: gdb.python/py-function.exp: input command-calling function - class CallCommand(gdb.Function):
+PASS: gdb.python/py-function.exp: input command-calling function -     def __init__(self):
+PASS: gdb.python/py-function.exp: input command-calling function -         gdb.Function.__init__(self, 'call_command')
+PASS: gdb.python/py-function.exp: input command-calling function -     def invoke(self):
+PASS: gdb.python/py-function.exp: input command-calling function -         return gdb.execute('print 1', to_string=True)
+PASS: gdb.python/py-function.exp: input command-calling function - CallCommand ()
+PASS: gdb.python/py-function.exp: input command-calling function - end
+PASS: gdb.python/py-function.exp: Setting a value from a function which executes a command.
+PASS: gdb.python/py-function.exp: Setting a value from a function which executes a command, again.
+Running ./gdb.python/py-inferior.exp ...
+PASS: gdb.python/py-inferior.exp: successfully compiled posix threads test case
+PASS: gdb.python/py-inferior.exp: get inferiors list
+PASS: gdb.python/py-inferior.exp: verify inferiors list
+PASS: gdb.python/py-inferior.exp: test equality comparison (true)
+PASS: gdb.python/py-inferior.exp: test Inferior.num
+PASS: gdb.python/py-inferior.exp: test Inferior.pid
+PASS: gdb.python/py-inferior.exp: test Inferior.was_attached
+PASS: gdb.python/py-inferior.exp: test Inferior.threads
+PASS: gdb.python/py-inferior.exp: continue to breakpoint: cont to check_threads
+PASS: gdb.python/py-inferior.exp: test Inferior.threads 2
+PASS: gdb.python/py-inferior.exp: continue to breakpoint: cont to Break here.
+PASS: gdb.python/py-inferior.exp: read str contents
+PASS: gdb.python/py-inferior.exp: write str
+PASS: gdb.python/py-inferior.exp: ensure str was changed in the inferior
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: find string pattern
+PASS: gdb.python/py-inferior.exp: pattern not found at end of range
+PASS: gdb.python/py-inferior.exp: pattern found at end of range
+PASS: gdb.python/py-inferior.exp: py from struct import *
+PASS: gdb.python/py-inferior.exp: set int16_search_buf[10] = 0x1234
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('int16_search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<H',0x1234)
+PASS: gdb.python/py-inferior.exp: find 16-bit pattern, with value pattern
+PASS: gdb.python/py-inferior.exp: set int32_search_buf[10] = 0x12345678
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('int32_search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<I',0x12345678)
+PASS: gdb.python/py-inferior.exp: find 32-bit pattern, with python pattern
+PASS: gdb.python/py-inferior.exp: set int64_search_buf[10] = 0xfedcba9876543210LL
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('int64_search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address
+PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<Q', 0xfedcba9876543210)
+PASS: gdb.python/py-inferior.exp: find 64-bit pattern, with value pattern
+PASS: gdb.python/py-inferior.exp: set *(int8_t*) &search_buf[10] = 0x62
+PASS: gdb.python/py-inferior.exp: set *(int16_t*) &search_buf[11] = 0x6363
+PASS: gdb.python/py-inferior.exp: set *(int32_t*) &search_buf[13] = 0x64646464
+PASS: gdb.python/py-inferior.exp: py search_buf = gdb.selected_frame ().read_var ('search_buf')
+PASS: gdb.python/py-inferior.exp: py start_addr = search_buf[0].address
+PASS: gdb.python/py-inferior.exp: py pattern1 = pack('B', 0x62)
+PASS: gdb.python/py-inferior.exp: py pattern2 = pack('<H', 0x6363)
+PASS: gdb.python/py-inferior.exp: py pattern3 = pack('<I', 0x64646464)
+PASS: gdb.python/py-inferior.exp: find mixed-sized pattern
+PASS: gdb.python/py-inferior.exp: find mixed-sized pattern
+PASS: gdb.python/py-inferior.exp: find mixed-sized pattern
+PASS: gdb.python/py-inferior.exp: set *(int32_t*) &search_buf[0*16000+100] = 0x12345678
+PASS: gdb.python/py-inferior.exp: set *(int32_t*) &search_buf[1*16000+100] = 0x12345678
+PASS: gdb.python/py-inferior.exp: py start_addr = gdb.selected_frame ().read_var ('search_buf')
+PASS: gdb.python/py-inferior.exp: py end_addr = start_addr + gdb.selected_frame ().read_var ('search_buf_size')
+PASS: gdb.python/py-inferior.exp: py pattern = pack('<I', 0x12345678)
+PASS: gdb.python/py-inferior.exp: py first = gdb.inferiors()[0].search_memory (start_addr,end_addr - start_addr, pattern)
+PASS: gdb.python/py-inferior.exp: search spanning large range 1st result
+PASS: gdb.python/py-inferior.exp: py start_addr = first + 1
+PASS: gdb.python/py-inferior.exp: py second = gdb.inferiors()[0].search_memory (start_addr, end_addr - start_addr, pattern)
+PASS: gdb.python/py-inferior.exp: search spanning large range 2nd result
+PASS: gdb.python/py-inferior.exp: py start_addr = second + 1
+PASS: gdb.python/py-inferior.exp: py third = gdb.inferiors()[0].search_memory (start_addr, end_addr - start_addr, pattern)
+PASS: gdb.python/py-inferior.exp: search spanning large range 3rd result
+PASS: gdb.python/py-inferior.exp: get initial list
+PASS: gdb.python/py-inferior.exp: Get inferior list length
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: add empty inferior 2
+PASS: gdb.python/py-inferior.exp: get new list
+PASS: gdb.python/py-inferior.exp: Get inferior list length
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: remove-inferiors 3
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: Check inferior validity
+PASS: gdb.python/py-inferior.exp: Switch to first inferior
+PASS: gdb.python/py-inferior.exp: First inferior selected
+PASS: gdb.python/py-inferior.exp: Create new inferior
+PASS: gdb.python/py-inferior.exp: Switch to third inferior
+PASS: gdb.python/py-inferior.exp: Third inferior selected
+PASS: gdb.python/py-inferior.exp: Switch to first inferior
+PASS: gdb.python/py-inferior.exp: Remove second inferior
+Running ./gdb.python/py-infthread.exp ...
+PASS: gdb.python/py-infthread.exp: test gdb.selected_thread
+PASS: gdb.python/py-infthread.exp: verify InferiorThread object
+PASS: gdb.python/py-infthread.exp: test Inferior.num
+PASS: gdb.python/py-infthread.exp: test InferiorThread.ptid
+PASS: gdb.python/py-infthread.exp: get supplied name of current thread
+PASS: gdb.python/py-infthread.exp: set name of current thread
+PASS: gdb.python/py-infthread.exp: check name of current thread
+PASS: gdb.python/py-infthread.exp: reset name of current thread
+PASS: gdb.python/py-infthread.exp: check name of current thread again
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_stopped
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_running
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_exited
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_valid
+PASS: gdb.python/py-infthread.exp: kill inferior 1
+PASS: gdb.python/py-infthread.exp: test InferiorThread.is_valid
+Running ./gdb.python/py-mi.exp ...
+PASS: gdb.python/py-mi.exp: breakpoint at main
+PASS: gdb.python/py-mi.exp: mi runto main
+PASS: gdb.python/py-mi.exp: run to 328 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create container varobj, no pretty-printing
+PASS: gdb.python/py-mi.exp: examine container children=0, no pretty-printing
+PASS: gdb.python/py-mi.exp: delete varobj
+PASS: gdb.python/py-mi.exp: create nscont varobj, no pretty-printing
+PASS: gdb.python/py-mi.exp: examine nscont children=0, no pretty-printing
+PASS: gdb.python/py-mi.exp: delete varobj
+PASS: gdb.python/py-mi.exp: create string_1 varobj
+PASS: gdb.python/py-mi.exp: create estring varobj
+PASS: gdb.python/py-mi.exp: assign string_1 from string_2
+PASS: gdb.python/py-mi.exp: update string varobj after assignment
+PASS: gdb.python/py-mi.exp: create container varobj
+PASS: gdb.python/py-mi.exp: examine container children=0
+PASS: gdb.python/py-mi.exp: next over update 1
+PASS: gdb.python/py-mi.exp: varobj update 1
+PASS: gdb.python/py-mi.exp: next over update 2
+PASS: gdb.python/py-mi.exp: varobj update 2
+PASS: gdb.python/py-mi.exp: clear visualizer
+PASS: gdb.python/py-mi.exp: varobj update after clearing
+PASS: gdb.python/py-mi.exp: choose default visualizer
+PASS: gdb.python/py-mi.exp: varobj update after choosing default
+PASS: gdb.python/py-mi.exp: choose visualizer using expression
+PASS: gdb.python/py-mi.exp: varobj update after choosing via expression
+PASS: gdb.python/py-mi.exp: list varobj children after selecting child range
+PASS: gdb.python/py-mi.exp: list varobj children after resetting child range
+PASS: gdb.python/py-mi.exp: next over update 3
+PASS: gdb.python/py-mi.exp: set update range
+PASS: gdb.python/py-mi.exp: list children after setting update range
+PASS: gdb.python/py-mi.exp: list selected children after setting range
+PASS: gdb.python/py-mi.exp: list children after listing selected range
+PASS: gdb.python/py-mi.exp: next over update 4
+PASS: gdb.python/py-mi.exp: update after next with restricted range
+PASS: gdb.python/py-mi.exp: set update range with non-zero start
+PASS: gdb.python/py-mi.exp: update varobj with change outside selected range
+PASS: gdb.python/py-mi.exp: next over update 5
+PASS: gdb.python/py-mi.exp: create second container varobj
+PASS: gdb.python/py-mi.exp: update varobj, no children requested
+PASS: gdb.python/py-mi.exp: next over update 6
+PASS: gdb.python/py-mi.exp: update varobj 2, no children requested
+PASS: gdb.python/py-mi.exp: run to 131 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create outer varobj
+PASS: gdb.python/py-mi.exp: list children of outer
+PASS: gdb.python/py-mi.exp: list children of outer.s
+PASS: gdb.python/py-mi.exp: next over outer update
+PASS: gdb.python/py-mi.exp: update after updating element of outer
+PASS: gdb.python/py-mi.exp: run to 222 (set breakpoint)
+PASS: gdb.python/py-mi.exp: update after type change
+PASS: gdb.python/py-mi.exp: run to 351 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create nstype varobj
+PASS: gdb.python/py-mi.exp: list children after setting update range
+PASS: gdb.python/py-mi.exp: clear visualizer
+PASS: gdb.python/py-mi.exp: varobj update after clearing
+PASS: gdb.python/py-mi.exp: choose default visualizer
+PASS: gdb.python/py-mi.exp: create nstype2 varobj
+PASS: gdb.python/py-mi.exp: list children after setting exception flag
+PASS: gdb.python/py-mi.exp: create me varobj
+PASS: gdb.python/py-mi.exp: evaluate me varobj
+PASS: gdb.python/py-mi.exp: printer whose children are returned as a list
+PASS: gdb.python/py-mi.exp: run to 254 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create varobj for c
+PASS: gdb.python/py-mi.exp: choose array visualizer for c
+PASS: gdb.python/py-mi.exp: list children of c
+PASS: gdb.python/py-mi.exp: next over change of array element
+PASS: gdb.python/py-mi.exp: update varobj after element change
+PASS: gdb.python/py-mi.exp: breakpoint at main
+PASS: gdb.python/py-mi.exp: mi runto main
+PASS: gdb.python/py-mi.exp: run to 351 (set breakpoint)
+PASS: gdb.python/py-mi.exp: create fake varobj
+PASS: gdb.python/py-mi.exp: list children of fake
+PASS: gdb.python/py-mi.exp: list children fake.private
+PASS: gdb.python/py-mi.exp: Install visualizer on a cplus_fake_child
+Running ./gdb.python/py-objfile.exp ...
+PASS: gdb.python/py-objfile.exp: Find a symbol in objfile
+PASS: gdb.python/py-objfile.exp: Get backing object file
+PASS: gdb.python/py-objfile.exp: Get objfile validity
+PASS: gdb.python/py-objfile.exp: Get objfile validity
+PASS: gdb.python/py-objfile.exp: Get objfile validity after unload
+Running ./gdb.python/py-objfile-script.exp ...
+PASS: gdb.python/py-objfile-script.exp: set auto-load safe-path
+PASS: gdb.python/py-objfile-script.exp: info auto-load python-scripts
+PASS: gdb.python/py-objfile-script.exp: b 38
+PASS: gdb.python/py-objfile-script.exp: continue
+PASS: gdb.python/py-objfile-script.exp: print ss
+Running ./gdb.python/py-parameter.exp ...
+PASS: gdb.python/py-parameter.exp: python print (gdb.parameter ('directories'))
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    """When enabled, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    show_doc = "Show the state of the boolean test-param"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    set_doc = "Set the state of the boolean test-param"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "The state of the Test Parameter is " + pvalue
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       val = "on"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       if (self.value == False):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -          val = "off"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "Test Parameter has been set to " + val
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_param = TestParam ('print test-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - python
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - class TestEnumParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    """When set, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    show_doc = "Show the state of the enum"
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    set_doc = "Set the state of the enum"
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       return "The state of the enum is " + pvalue
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       return "The state of the enum has been set to " + self.value
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       super (TestEnumParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_ENUM, ["one", "two"])
+PASS: gdb.python/py-parameter.exp: enum gdb parameter -       self.value = "one"
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - test_enum_param = TestEnumParam ('print test-enum-param')
+PASS: gdb.python/py-parameter.exp: enum gdb parameter - end
+PASS: gdb.python/py-parameter.exp: Test enum parameter value
+PASS: gdb.python/py-parameter.exp: Show parameter is initial value
+PASS: gdb.python/py-parameter.exp: Set enum to two
+PASS: gdb.python/py-parameter.exp: Show parameter is new value
+PASS: gdb.python/py-parameter.exp: Test enum parameter value
+PASS: gdb.python/py-parameter.exp: Set invalid enum parameter
+PASS: gdb.python/py-parameter.exp: file gdb parameter - python
+PASS: gdb.python/py-parameter.exp: file gdb parameter - class TestFileParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    """When set, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    show_doc = "Show the name of the file"
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    set_doc = "Set the name of the file"
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       return "The name of the file is " + pvalue
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       return "The name of the file has been changed to " + self.value
+PASS: gdb.python/py-parameter.exp: file gdb parameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       super (TestFileParam, self).__init__ (name, gdb.COMMAND_FILES, gdb.PARAM_FILENAME)
+PASS: gdb.python/py-parameter.exp: file gdb parameter -       self.value = "foo.txt"
+PASS: gdb.python/py-parameter.exp: file gdb parameter - test_file_param = TestFileParam ('test-file-param')
+PASS: gdb.python/py-parameter.exp: file gdb parameter - end
+PASS: gdb.python/py-parameter.exp: Test file parameter value
+PASS: gdb.python/py-parameter.exp: Show initial file value
+PASS: gdb.python/py-parameter.exp: Set new file parameter
+PASS: gdb.python/py-parameter.exp: Show new file value
+PASS: gdb.python/py-parameter.exp: Test new file parameter value
+PASS: gdb.python/py-parameter.exp: set test-file-param
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestUndocParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_show_string (self, pvalue):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "The state of the Test Parameter is " + pvalue
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def get_set_string (self):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       val = "on"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       if (self.value == False):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -          val = "off"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       return "Test Parameter has been set to " + val
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestUndocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_undoc_param = TestUndocParam ('print test-undoc-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestNodocParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestNodocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_nodoc_param = TestNodocParam ('print test-nodoc-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - python
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - class TestParam (gdb.Parameter):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    """When enabled, test param does something useful. When disabled, does nothing."""
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    show_doc = "State of the Test Parameter"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    set_doc = "Set the state of the Test Parameter"
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -    def __init__ (self, name):
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter -       self.value = True
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - test_param = TestParam ('print test-param')
+PASS: gdb.python/py-parameter.exp: Simple gdb booleanparameter - end
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Show parameter on
+PASS: gdb.python/py-parameter.exp: Turn off parameter
+PASS: gdb.python/py-parameter.exp: Show parameter off
+PASS: gdb.python/py-parameter.exp: Test parameter value
+PASS: gdb.python/py-parameter.exp: Test show help
+PASS: gdb.python/py-parameter.exp: Test set help
+PASS: gdb.python/py-parameter.exp: Test general help
+Running ./gdb.python/py-pp-maint.exp ...
+PASS: gdb.python/py-pp-maint.exp: b 77
+PASS: gdb.python/py-pp-maint.exp: continue
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer global .*function
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer .* pp-test
+PASS: gdb.python/py-pp-maint.exp: print flt enabled #1
+PASS: gdb.python/py-pp-maint.exp: print ss enabled #1
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer global
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer global lookup_function_lookup_test
+PASS: gdb.python/py-pp-maint.exp: disable pretty-printer global pp-test;.*
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer global .*function
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer .* pp-test
+PASS: gdb.python/py-pp-maint.exp: print flt disabled
+PASS: gdb.python/py-pp-maint.exp: print ss disabled
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global lookup_function_lookup_test
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test;.*ss.*
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test;.*s.*
+PASS: gdb.python/py-pp-maint.exp: enable pretty-printer global pp-test;.*
+PASS: gdb.python/py-pp-maint.exp: info pretty-printer
+PASS: gdb.python/py-pp-maint.exp: print flt re-enabled
+PASS: gdb.python/py-pp-maint.exp: print ss re-enabled
+PASS: gdb.python/py-pp-maint.exp: print FLAG_1
+PASS: gdb.python/py-pp-maint.exp: print FLAG_1 | FLAG_3
+PASS: gdb.python/py-pp-maint.exp: print FLAG_1 | 8
+Running ./gdb.python/py-prettyprint.exp ...
+PASS: gdb.python/py-prettyprint.exp: set print pretty on
+PASS: gdb.python/py-prettyprint.exp: b 351
+PASS: gdb.python/py-prettyprint.exp: continue
+PASS: gdb.python/py-prettyprint.exp: python exec (open ('py-prettyprint.py').read ())
+PASS: gdb.python/py-prettyprint.exp: print ss
+PASS: gdb.python/py-prettyprint.exp: print ssa[1]
+PASS: gdb.python/py-prettyprint.exp: print ssa
+PASS: gdb.python/py-prettyprint.exp: print arraystruct
+PASS: gdb.python/py-prettyprint.exp: print ns2
+PASS: gdb.python/py-prettyprint.exp: print x
+PASS: gdb.python/py-prettyprint.exp: print cstring
+PASS: gdb.python/py-prettyprint.exp: print estring
+PASS: gdb.python/py-prettyprint.exp: python pp_ls_encoding = 'UTF-8'
+PASS: gdb.python/py-prettyprint.exp: print estring2
+PASS: gdb.python/py-prettyprint.exp: set python print-stack full
+PASS: gdb.python/py-prettyprint.exp: print hint_error
+PASS: gdb.python/py-prettyprint.exp: print c
+PASS: gdb.python/py-prettyprint.exp: print nstype
+PASS: gdb.python/py-prettyprint.exp: set print pretty off
+PASS: gdb.python/py-prettyprint.exp: print nstype on one line
+PASS: gdb.python/py-prettyprint.exp: continue until exit
+PASS: gdb.python/py-prettyprint.exp: set print pretty on
+PASS: gdb.python/py-prettyprint.exp: b 351
+PASS: gdb.python/py-prettyprint.exp: continue
+PASS: gdb.python/py-prettyprint.exp: python exec (open ('py-prettyprint.py').read ())
+PASS: gdb.python/py-prettyprint.exp: print ss
+PASS: gdb.python/py-prettyprint.exp: print ssa[1]
+PASS: gdb.python/py-prettyprint.exp: print ssa
+PASS: gdb.python/py-prettyprint.exp: print arraystruct
+PASS: gdb.python/py-prettyprint.exp: print cps
+PASS: gdb.python/py-prettyprint.exp: print cpss
+PASS: gdb.python/py-prettyprint.exp: print cpssa[0]
+PASS: gdb.python/py-prettyprint.exp: print cpssa[1]
+PASS: gdb.python/py-prettyprint.exp: print cpssa
+PASS: gdb.python/py-prettyprint.exp: print sss
+PASS: gdb.python/py-prettyprint.exp: print ref
+PASS: gdb.python/py-prettyprint.exp: print derived
+PASS: gdb.python/py-prettyprint.exp: print ns
+PASS: gdb.python/py-prettyprint.exp:
+PASS: gdb.python/py-prettyprint.exp: print ns
+PASS: gdb.python/py-prettyprint.exp:
+PASS: gdb.python/py-prettyprint.exp: print ns
+PASS: gdb.python/py-prettyprint.exp:
+PASS: gdb.python/py-prettyprint.exp: print ns2
+PASS: gdb.python/py-prettyprint.exp: print x
+PASS: gdb.python/py-prettyprint.exp: print cstring
+PASS: gdb.python/py-prettyprint.exp: print estring
+PASS: gdb.python/py-prettyprint.exp: python pp_ls_encoding = 'UTF-8'
+PASS: gdb.python/py-prettyprint.exp: print estring2
+PASS: gdb.python/py-prettyprint.exp: set python print-stack full
+PASS: gdb.python/py-prettyprint.exp: print hint_error
+PASS: gdb.python/py-prettyprint.exp: print c
+PASS: gdb.python/py-prettyprint.exp: print nstype
+PASS: gdb.python/py-prettyprint.exp: set print pretty off
+PASS: gdb.python/py-prettyprint.exp: print nstype on one line
+PASS: gdb.python/py-prettyprint.exp: continue until exit
+PASS: gdb.python/py-prettyprint.exp: python exec (open ('py-prettyprint.py').read ())
+PASS: gdb.python/py-prettyprint.exp: continue to breakpoint: eval-break
+PASS: gdb.python/py-prettyprint.exp: info locals
+PASS: gdb.python/py-prettyprint.exp: b 351
+PASS: gdb.python/py-prettyprint.exp: continue
+PASS: gdb.python/py-prettyprint.exp: print ss enabled #1
+PASS: gdb.python/py-prettyprint.exp: python disable_lookup_function ()
+PASS: gdb.python/py-prettyprint.exp: print ss disabled
+PASS: gdb.python/py-prettyprint.exp: python enable_lookup_function ()
+PASS: gdb.python/py-prettyprint.exp: print ss enabled #2
+Running ./gdb.python/py-progspace.exp ...
+PASS: gdb.python/py-progspace.exp: current progspace filename (None)
+PASS: gdb.python/py-progspace.exp: python print (gdb.progspaces())
+PASS: gdb.python/py-progspace.exp: current progspace filename (py-progspace)
+Running ./gdb.python/py-prompt.exp ...
+Running ./gdb.python/py-section-script.exp ...
+PASS: gdb.python/py-section-script.exp: set auto-load safe-path
+PASS: gdb.python/py-section-script.exp: info auto-load python-scripts
+PASS: gdb.python/py-section-script.exp: info auto-load python-scripts py-section-script
+PASS: gdb.python/py-section-script.exp: info auto-load python-scripts no-script-matches-this
+PASS: gdb.python/py-section-script.exp: b 51
+PASS: gdb.python/py-section-script.exp: continue
+PASS: gdb.python/py-section-script.exp: print ss
+Running ./gdb.python/py-shared.exp ...
+PASS: gdb.python/py-shared.exp: func1 address
+PASS: gdb.python/py-shared.exp: Aquire func1 address
+PASS: gdb.python/py-shared.exp: test func1 solib location
+PASS: gdb.python/py-shared.exp: main address
+PASS: gdb.python/py-shared.exp: Aquire main address
+PASS: gdb.python/py-shared.exp: test main solib location
+Running ./gdb.python/py-strfns.exp ...
+PASS: gdb.python/py-strfns.exp: p $_streq (str1, str2)
+PASS: gdb.python/py-strfns.exp: p $_streq (str1, str3)
+PASS: gdb.python/py-strfns.exp: p $_strlen (str1)
+PASS: gdb.python/py-strfns.exp: p $_strlen (buf1)
+PASS: gdb.python/py-strfns.exp: p $_memeq (buf1, buf2, 4)
+PASS: gdb.python/py-strfns.exp: p $_memeq (buf1, buf3, 4)
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "Hello")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "Help")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "^Hello")
+PASS: gdb.python/py-strfns.exp: p $_regex (str1, "^Hello.$")
+PASS: gdb.python/py-strfns.exp: condition $bpnum $_streq (arg, "Goodbye.")
+PASS: gdb.python/py-strfns.exp: continue to breakpoint: Break func here.
+PASS: gdb.python/py-strfns.exp: p arg
+PASS: gdb.python/py-strfns.exp: condition $bpnum $_memeq (arg, buf3, 4)
+PASS: gdb.python/py-strfns.exp: continue to breakpoint: Break bfunc here.
+PASS: gdb.python/py-strfns.exp: p /d {char[4]} arg
+PASS: gdb.python/py-strfns.exp: save a corefile
+FAIL: gdb.python/py-strfns.exp: re-load generated corefile
+Running ./gdb.python/py-symbol.exp ...
+PASS: gdb.python/py-symbol.exp: Lookup main
+PASS: gdb.python/py-symbol.exp: Test main_func.is_function
+PASS: gdb.python/py-symbol.exp: Test lookup_global_symbol("junk")
+PASS: gdb.python/py-symbol.exp: print value of main
+PASS: gdb.python/py-symbol.exp: print line number of qq
+PASS: gdb.python/py-symbol.exp: print value of qq
+PASS: gdb.python/py-symbol.exp: print whether qq needs a frame
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-symbol.exp: Test arg.is_variable
+PASS: gdb.python/py-symbol.exp: Test arg.is_constant
+PASS: gdb.python/py-symbol.exp: Test arg.is_argument
+PASS: gdb.python/py-symbol.exp: Test arg.is_function
+PASS: gdb.python/py-symbol.exp: Test func.is_variable
+PASS: gdb.python/py-symbol.exp: Test func.is_constant
+PASS: gdb.python/py-symbol.exp: Test func.is_argument
+PASS: gdb.python/py-symbol.exp: Test func.is_function
+PASS: gdb.python/py-symbol.exp: Test func.name
+PASS: gdb.python/py-symbol.exp: Test func.print_name
+PASS: gdb.python/py-symbol.exp: Test func.linkage_name
+PASS: gdb.python/py-symbol.exp: Test func.addr_class
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Break at end.
+PASS: gdb.python/py-symbol.exp: Test a.is_variable
+PASS: gdb.python/py-symbol.exp: Test a.is_constant
+PASS: gdb.python/py-symbol.exp: Test a.is_argument
+PASS: gdb.python/py-symbol.exp: Test a.is_function
+PASS: gdb.python/py-symbol.exp: Test a.addr_class
+PASS: gdb.python/py-symbol.exp: try to print value of a without a frame
+PASS: gdb.python/py-symbol.exp: print value of a
+PASS: gdb.python/py-symbol.exp: print whether a needs a frame
+PASS: gdb.python/py-symbol.exp: Test t.is_variable
+PASS: gdb.python/py-symbol.exp: Test t.is_constant
+PASS: gdb.python/py-symbol.exp: Test t.is_argument
+PASS: gdb.python/py-symbol.exp: Test t.is_function
+PASS: gdb.python/py-symbol.exp: Test t.addr_class
+PASS: gdb.python/py-symbol.exp: Get type
+PASS: gdb.python/py-symbol.exp: Get symtab
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Break in class.
+PASS: gdb.python/py-symbol.exp: Test func.is_variable
+PASS: gdb.python/py-symbol.exp: Test func.is_constant
+PASS: gdb.python/py-symbol.exp: Test func.is_argument
+PASS: gdb.python/py-symbol.exp: Test func.is_function
+PASS: gdb.python/py-symbol.exp: Test func.name
+PASS: gdb.python/py-symbol.exp: Test func.print_name
+PASS: gdb.python/py-symbol.exp: Test func.linkage_name
+PASS: gdb.python/py-symbol.exp: Test func.addr_class
+PASS: gdb.python/py-symbol.exp: continue to breakpoint: Break at end.
+PASS: gdb.python/py-symbol.exp: Test symbol validity
+PASS: gdb.python/py-symbol.exp: Test symbol validity
+PASS: gdb.python/py-symbol.exp: Test symbol destructor
+Running ./gdb.python/py-symtab.exp ...
+PASS: gdb.python/py-symtab.exp: continue to breakpoint: Block break here.
+PASS: gdb.python/py-symtab.exp: Test symtab
+PASS: gdb.python/py-symtab.exp: Test sal.pc
+PASS: gdb.python/py-symtab.exp: Test sal.last
+PASS: gdb.python/py-symtab.exp: Test sal.line
+PASS: gdb.python/py-symtab.exp: Test sal.is_valid
+PASS: gdb.python/py-symtab.exp: Test symtab.filename
+PASS: gdb.python/py-symtab.exp: Test symtab.objfile
+PASS: gdb.python/py-symtab.exp: Test symtab.fullname
+PASS: gdb.python/py-symtab.exp: Test symtab.is_valid()
+PASS: gdb.python/py-symtab.exp: Test qq in global symbols
+PASS: gdb.python/py-symtab.exp: Test func in global symbols
+PASS: gdb.python/py-symtab.exp: Test main in global symbols
+PASS: gdb.python/py-symtab.exp: Test int in static symbols
+PASS: gdb.python/py-symtab.exp: Test char in static symbols
+PASS: gdb.python/py-symtab.exp: Test simple_struct in static symbols
+PASS: gdb.python/py-symtab.exp: Test sal.is_valid
+PASS: gdb.python/py-symtab.exp: Test symtab.is_valid()
+PASS: gdb.python/py-symtab.exp: Test sal destructor
+PASS: gdb.python/py-symtab.exp: Test symtab destructor
+Running ./gdb.python/py-template.exp ...
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int &
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int &
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int * const
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: volatile int * const *
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int * volatile
+PASS: gdb.python/py-template.exp: print (foo)
+PASS: gdb.python/py-template.exp: python foo = gdb.history(0)
+PASS: gdb.python/py-template.exp: const int * volatile * const * volatile *
+Running ./gdb.python/python.exp ...
+PASS: gdb.python/python.exp: multi-line python command - python
+PASS: gdb.python/python.exp: multi-line python command - print (23)
+PASS: gdb.python/python.exp: multi-line python command - end
+PASS: gdb.python/python.exp: show python command - define zzq
+PASS: gdb.python/python.exp: show python command - python
+PASS: gdb.python/python.exp: show python command - print (23)
+PASS: gdb.python/python.exp: show python command - end
+PASS: gdb.python/python.exp: show python command - end
+PASS: gdb.python/python.exp: show python command - show user zzq
+PASS: gdb.python/python.exp: indented multi-line python command - python
+PASS: gdb.python/python.exp: indented multi-line python command - def foo ():
+PASS: gdb.python/python.exp: indented multi-line python command -   print ('hello, world!')
+PASS: gdb.python/python.exp: indented multi-line python command - foo ()
+PASS: gdb.python/python.exp: indented multi-line python command - end
+PASS: gdb.python/python.exp: source source2.py
+PASS: gdb.python/python.exp: source -s source2.py
+PASS: gdb.python/python.exp: python print (gdb.current_objfile())
+PASS: gdb.python/python.exp: python print (gdb.objfiles())
+PASS: gdb.python/python.exp: pythonX.Y/lib-dynload/*.so
+PASS: gdb.python/python.exp: python x = gdb.execute('printf "%d", 23', to_string = True)
+PASS: gdb.python/python.exp: python print (x)
+PASS: gdb.python/python.exp: post event insertion - python
+PASS: gdb.python/python.exp: post event insertion - someVal = 0
+PASS: gdb.python/python.exp: post event insertion - class Foo(object):
+PASS: gdb.python/python.exp: post event insertion -   def __call__(self):
+PASS: gdb.python/python.exp: post event insertion -     global someVal
+PASS: gdb.python/python.exp: post event insertion -     someVal += 1
+PASS: gdb.python/python.exp: post event insertion - gdb.post_event(Foo())
+PASS: gdb.python/python.exp: post event insertion - end
+PASS: gdb.python/python.exp: test post event execution
+PASS: gdb.python/python.exp: Test non callable class
+PASS: gdb.python/python.exp: show height
+PASS: gdb.python/python.exp: set height 10
+PASS: gdb.python/python.exp: verify pagination beforehand
+PASS: gdb.python/python.exp: verify pagination beforehand: q
+PASS: gdb.python/python.exp: gdb.execute does not page
+PASS: gdb.python/python.exp: verify pagination afterwards
+PASS: gdb.python/python.exp: verify pagination afterwards: q
+PASS: gdb.python/python.exp: set height 0
+PASS: gdb.python/python.exp: collect help from uiout
+PASS: gdb.python/python.exp: verify help to uiout
+PASS: gdb.python/python.exp: Attempt to aquire thread with no inferior
+PASS: gdb.python/python.exp: Ensure that no threads are returned
+PASS: gdb.python/python.exp: register atexit function - python
+PASS: gdb.python/python.exp: register atexit function - import atexit
+PASS: gdb.python/python.exp: register atexit function - def printit(arg):
+PASS: gdb.python/python.exp: register atexit function -   print (arg)
+PASS: gdb.python/python.exp: register atexit function - atexit.register(printit, 'good bye world')
+PASS: gdb.python/python.exp: register atexit function - end
+PASS: gdb.python/python.exp: atexit handling
+PASS: gdb.python/python.exp: test decode_line no source named main
+PASS: gdb.python/python.exp: test decode_line current location
+PASS: gdb.python/python.exp: Test decode_line current location
+PASS: gdb.python/python.exp: Test decode_line expression parse
+PASS: gdb.python/python.exp: Test decode_line current location
+PASS: gdb.python/python.exp: Test decode_line current locationn filename
+PASS: gdb.python/python.exp: Test decode_line current location line number
+PASS: gdb.python/python.exp: test decode_line python.c:26
+PASS: gdb.python/python.exp: Test decode_line python.c:26 length
+PASS: gdb.python/python.exp: Test decode_line expression parse
+PASS: gdb.python/python.exp: Test decode_line python.c:26 length
+PASS: gdb.python/python.exp: Test decode_line python.c:26 filename
+PASS: gdb.python/python.exp: Test decode_line python.c:26 line number
+PASS: gdb.python/python.exp: test decode_line randomfunc
+PASS: gdb.python/python.exp: test decode_line func1()
+PASS: gdb.python/python.exp: Test decode_line func1 length
+PASS: gdb.python/python.exp: Test decode_line func1 length
+PASS: gdb.python/python.exp: Test decode_line func1 filename
+PASS: gdb.python/python.exp: Test decode_line func1 line number
+PASS: gdb.python/python.exp: test decode_line func1,func2
+PASS: gdb.python/python.exp: stop at comma in linespec
+PASS: gdb.python/python.exp: Test stderr location
+PASS: gdb.python/python.exp: Test stdout location
+PASS: gdb.python/python.exp: Test default write
+PASS: gdb.python/python.exp: Test stderr write
+PASS: gdb.python/python.exp: Test stdout write
+PASS: gdb.python/python.exp: Test stdlog write
+PASS: gdb.python/python.exp: Test print-backtrace show setting. Default is message.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: Test print-backtrace show setting to full.
+PASS: gdb.python/python.exp: prompt substitution - python
+PASS: gdb.python/python.exp: prompt substitution - someCounter = 0
+PASS: gdb.python/python.exp: prompt substitution - def prompt(current):
+PASS: gdb.python/python.exp: prompt substitution -    global someCounter
+PASS: gdb.python/python.exp: prompt substitution -    if (current == "testfake "):
+PASS: gdb.python/python.exp: prompt substitution -       return None
+PASS: gdb.python/python.exp: prompt substitution -    someCounter = someCounter + 1
+PASS: gdb.python/python.exp: prompt substitution -    return "py prompt " + str (someCounter) + " "
+PASS: gdb.python/python.exp: prompt substitution - end
+PASS: gdb.python/python.exp: prompt substitution readline - python
+PASS: gdb.python/python.exp: prompt substitution readline - pCounter = 0
+PASS: gdb.python/python.exp: prompt substitution readline - def program_prompt(current):
+PASS: gdb.python/python.exp: prompt substitution readline -    global pCounter
+PASS: gdb.python/python.exp: prompt substitution readline -    if (current == ">"):
+PASS: gdb.python/python.exp: prompt substitution readline -       pCounter = pCounter + 1
+PASS: gdb.python/python.exp: prompt substitution readline -       return "python line " + str (pCounter) + ": "
+PASS: gdb.python/python.exp: prompt substitution readline -    return None
+PASS: gdb.python/python.exp: prompt substitution readline - end
+PASS: gdb.python/python.exp: set hook
+PASS: gdb.python/python.exp: set prompt testfake
+PASS: gdb.python/python.exp: show prompt shows guarded prompt
+PASS: gdb.python/python.exp: set prompt blah overriden
+PASS: gdb.python/python.exp: Delete old hook
+PASS: gdb.python/python.exp: set default prompt
+PASS: gdb.python/python.exp: set programming hook
+PASS: gdb.python/python.exp: readline secondary are not substituted
+PASS: gdb.python/python.exp: end programming
+PASS: gdb.python/python.exp: prompt substitution readline - python
+PASS: gdb.python/python.exp: prompt substitution readline - import gdb.command.prompt
+PASS: gdb.python/python.exp: prompt substitution readline - end
+PASS: gdb.python/python.exp: set basic extended prompt
+PASS: gdb.python/python.exp: set extended prompt working directory
+PASS: gdb.python/python.exp: set extended prompt parameter
+PASS: gdb.python/python.exp: Test print-backtrace show setting. Default is message.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: Test print-backtrace show setting to full.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: Test print-backtrace show setting to none.
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: prompt substitution readline - python
+PASS: gdb.python/python.exp: prompt substitution readline - pCounter = 0
+PASS: gdb.python/python.exp: prompt substitution readline - def error_prompt(current):
+PASS: gdb.python/python.exp: prompt substitution readline -    raise RuntimeError("Python exception called")
+PASS: gdb.python/python.exp: prompt substitution readline - end
+PASS: gdb.python/python.exp: set hook
+PASS: gdb.python/python.exp: set the hook to default
+PASS: gdb.python/python.exp: Test print-backtrace set setting
+PASS: gdb.python/python.exp: set hook
+PASS: gdb.python/python.exp: set the hook to default
+PASS: gdb.python/python.exp: Get line number of func2 call site
+PASS: gdb.python/python.exp: Test find_pc_line at func2 call site
+PASS: gdb.python/python.exp: Step into func2
+PASS: gdb.python/python.exp: Step out of func2
+PASS: gdb.python/python.exp: Test find_pc_line with resume address
+Running ./gdb.python/py-type.exp ...
+PASS: gdb.python/py-type.exp: lang_c: continue to breakpoint: break to inspect struct and array.
+PASS: gdb.python/py-type.exp: lang_c: test_fields: c typedef field list
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (st)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (st) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get fields from st.type
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check number of fields (st)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check structure field a name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check structure field b name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check that dir includes name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check number of fields (st.type)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check fields lookup by name
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check fields iteration over values
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check fields items list
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check field name exists test
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check field name nonexists test
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check conversion to bool
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (len (st.type['a'].type))
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (st.type['a'].type.has_key ('x'))
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (st.type['a'].type.keys ())
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (st.type['a'].type['x'])
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (not not st.type['a'].type)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (ar)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python fields = ar.type.fields()
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check the number of fields
+PASS: gdb.python/py-type.exp: lang_c: test_fields: Check array field type
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to array with one argument
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to array with two arguments
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print (ar[0].type == ar[0].type)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (vec_data_1)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (vec_data_1) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: print value (vec_data_2)
+PASS: gdb.python/py-type.exp: lang_c: test_fields: get value (vec_data_2) from history
+PASS: gdb.python/py-type.exp: lang_c: test_fields: set vec1
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to vector with one argument
+PASS: gdb.python/py-type.exp: lang_c: test_fields: set vec2
+PASS: gdb.python/py-type.exp: lang_c: test_fields: cast to vector with two arguments
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print vec1 == vec2
+PASS: gdb.python/py-type.exp: lang_c: test_fields: set vec3
+PASS: gdb.python/py-type.exp: lang_c: test_fields: python print vec1 == vec3
+PASS: gdb.python/py-type.exp: lang_c: test_enum: print value (e)
+PASS: gdb.python/py-type.exp: lang_c: test_enum: get value (e) from history
+PASS: gdb.python/py-type.exp: lang_c: test_enum: extract type fields from e
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check the number of enum fields
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field[0] name
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field[1]name
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check the number of type fields
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field lookup by name (v1)
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum field lookup by name (v2)
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check num fields iteration over values
+PASS: gdb.python/py-type.exp: lang_c: test_enum: Check enum fields items list
+PASS: gdb.python/py-type.exp: lang_cpp: continue to breakpoint: break to inspect struct and array.
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: c++ typedef field list
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (c)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (c) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get fields from c.type
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check number of fields (c)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check class field c name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check class field d name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (c.type == gdb.parse_and_eval('d').type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (c.type == gdb.parse_and_eval('d').type.fields()[0].type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (st)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (st) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get fields from st.type
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check number of fields (st)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check structure field a name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check structure field b name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check that dir includes name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check number of fields (st.type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields lookup by name
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields iteration over values
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields items list
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check field name exists test
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check field name nonexists test
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check conversion to bool
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (len (st.type['a'].type))
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (st.type['a'].type.has_key ('x'))
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (st.type['a'].type.keys ())
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (st.type['a'].type['x'])
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (not not st.type['a'].type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (ar)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python fields = ar.type.fields()
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check the number of fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: Check array field type
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to array with one argument
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to array with two arguments
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print (ar[0].type == ar[0].type)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (vec_data_1)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (vec_data_1) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: print value (vec_data_2)
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: get value (vec_data_2) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: set vec1
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to vector with one argument
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: set vec2
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: cast to vector with two arguments
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print vec1 == vec2
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: set vec3
+PASS: gdb.python/py-type.exp: lang_cpp: test_fields: python print vec1 == vec3
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: print value (d)
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: get value (d) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: extract type fields from d
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: Check the number of fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: Check base class (fields[0])
+PASS: gdb.python/py-type.exp: lang_cpp: test_base_class: Check base class (fields[1])
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: print value (ar)
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: Check correct tuple length
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: Check range low bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: Check range high bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: print value (ar)
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: get value (ar) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: get fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: Check range low bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: Check range high bound
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on unranged value: print value (st)
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on unranged value: get value (st) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_range: on unranged value: Check range for non ranged type.
+PASS: gdb.python/py-type.exp: lang_cpp: get type of temvar
+PASS: gdb.python/py-type.exp: lang_cpp: python print (ttype.template_argument(0))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (isinstance(ttype.template_argument(0), gdb.Type))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (ttype.template_argument(1))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (isinstance(ttype.template_argument(1), gdb.Value))
+PASS: gdb.python/py-type.exp: lang_cpp: python print (ttype.template_argument(2))
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: print value (e)
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: get value (e) from history
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: extract type fields from e
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check the number of enum fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field[0] name
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field[1]name
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check the number of type fields
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field lookup by name (v1)
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum field lookup by name (v2)
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check num fields iteration over values
+PASS: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum fields items list
+Running ./gdb.python/py-typeprint.exp ...
+PASS: gdb.python/py-typeprint.exp: python exec (open ('py-typeprint.py').read ())
+PASS: gdb.python/py-typeprint.exp: basic test
+PASS: gdb.python/py-typeprint.exp: raw test
+PASS: gdb.python/py-typeprint.exp: disable type-printer string
+PASS: gdb.python/py-typeprint.exp: whatis with disabled printer
+PASS: gdb.python/py-typeprint.exp: info type-printers
+PASS: gdb.python/py-typeprint.exp: enable type-printer string
+PASS: gdb.python/py-typeprint.exp: whatis with enabled printer
+PASS: gdb.python/py-typeprint.exp: whatis s
+Running ./gdb.python/py-value-cc.exp ...
+PASS: gdb.python/py-value-cc.exp: continue to breakpoint: Break here
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("a").type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("a").referenced_value().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ref").type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ref").referenced_value().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ref").referenced_value()))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").dereference().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").referenced_value().type))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").referenced_value().dereference()))
+PASS: gdb.python/py-value-cc.exp: python print (str(gdb.parse_and_eval("int_ptr_ref").referenced_value().referenced_value()))
+Running ./gdb.python/py-value.exp ...
+PASS: gdb.python/py-value.exp: create boolean value
+PASS: gdb.python/py-value.exp: create integer value
+PASS: gdb.python/py-value.exp: create long value
+PASS: gdb.python/py-value.exp: create double value
+PASS: gdb.python/py-value.exp: create 8-bit string value
+PASS: gdb.python/py-value.exp: print 8-bit string
+PASS: gdb.python/py-value.exp: verify type of 8-bit string
+PASS: gdb.python/py-value.exp: create unicode value
+PASS: gdb.python/py-value.exp: print Unicode string
+PASS: gdb.python/py-value.exp: verify type of unicode string
+PASS: gdb.python/py-value.exp: Test address attribute in non-addressable value
+PASS: gdb.python/py-value.exp: add two integer values
+PASS: gdb.python/py-value.exp: verify type of integer add result
+PASS: gdb.python/py-value.exp: add two double values
+PASS: gdb.python/py-value.exp: subtract two integer values
+PASS: gdb.python/py-value.exp: subtract two double values
+PASS: gdb.python/py-value.exp: multiply two integer values
+PASS: gdb.python/py-value.exp: multiply two double values
+PASS: gdb.python/py-value.exp: divide two integer values
+PASS: gdb.python/py-value.exp: divide two double values
+PASS: gdb.python/py-value.exp: take remainder of two integer values
+PASS: gdb.python/py-value.exp: integer value raised to the power of another integer value
+PASS: gdb.python/py-value.exp: double value raised to the power of integer value
+PASS: gdb.python/py-value.exp: negated integer value
+PASS: gdb.python/py-value.exp: positive integer value
+PASS: gdb.python/py-value.exp: negated double value
+PASS: gdb.python/py-value.exp: positive double value
+PASS: gdb.python/py-value.exp: absolute of integer value
+PASS: gdb.python/py-value.exp: absolute of double value
+PASS: gdb.python/py-value.exp: subtract integer value from python integer
+PASS: gdb.python/py-value.exp: verify type of mixed integer subtraction result
+PASS: gdb.python/py-value.exp: add double value with python float
+PASS: gdb.python/py-value.exp: subtract python integer from integer value
+PASS: gdb.python/py-value.exp: add python float with double value
+PASS: gdb.python/py-value.exp: print evalue
+PASS: gdb.python/py-value.exp: python evalue = gdb.history (0)
+PASS: gdb.python/py-value.exp: python print (int (evalue))
+PASS: gdb.python/py-value.exp: add pointer value with python integer
+PASS: gdb.python/py-value.exp: subtract python integer from pointer value
+PASS: gdb.python/py-value.exp: subtract two pointer values
+PASS: gdb.python/py-value.exp: catch error in python type conversion
+PASS: gdb.python/py-value.exp: catch throw of GDB error
+PASS: gdb.python/py-value.exp: define function to test booleans - python
+PASS: gdb.python/py-value.exp: define function to test booleans - def test_bool (val):
+PASS: gdb.python/py-value.exp: define function to test booleans -   if val:
+PASS: gdb.python/py-value.exp: define function to test booleans -     print ('yay')
+PASS: gdb.python/py-value.exp: define function to test booleans -   else:
+PASS: gdb.python/py-value.exp: define function to test booleans -     print ('nay')
+PASS: gdb.python/py-value.exp: define function to test booleans - end
+PASS: gdb.python/py-value.exp: check evaluation of true boolean value in expression
+PASS: gdb.python/py-value.exp: check evaluation of false boolean value in expression
+PASS: gdb.python/py-value.exp: check evaluation of true integer value in expression
+PASS: gdb.python/py-value.exp: check evaluation of false integer value in expression
+PASS: gdb.python/py-value.exp: check evaluation of true integer value in expression
+PASS: gdb.python/py-value.exp: check evaluation of false integer value in expression
+PASS: gdb.python/py-value.exp: less than, equal
+PASS: gdb.python/py-value.exp: less than, less
+PASS: gdb.python/py-value.exp: less than, greater
+PASS: gdb.python/py-value.exp: less than, None
+PASS: gdb.python/py-value.exp: less or equal, equal
+PASS: gdb.python/py-value.exp: less or equal, less
+PASS: gdb.python/py-value.exp: less or equal, greater
+PASS: gdb.python/py-value.exp: less or equal, None
+PASS: gdb.python/py-value.exp: equality of gdb.Values
+PASS: gdb.python/py-value.exp: inequality of gdb.Values
+PASS: gdb.python/py-value.exp: equality of gdb.Value with Python value
+PASS: gdb.python/py-value.exp: inequality of gdb.Value with Python value
+PASS: gdb.python/py-value.exp: inequality of gdb.Value with None
+PASS: gdb.python/py-value.exp: inequality, false
+PASS: gdb.python/py-value.exp: inequality, true
+PASS: gdb.python/py-value.exp: inequality, None
+PASS: gdb.python/py-value.exp: greater than, equal
+PASS: gdb.python/py-value.exp: greater than, less
+PASS: gdb.python/py-value.exp: greater than, greater
+PASS: gdb.python/py-value.exp: greater than, None
+PASS: gdb.python/py-value.exp: greater or equal, equal
+PASS: gdb.python/py-value.exp: greater or equal, less
+PASS: gdb.python/py-value.exp: greater or equal, greater
+PASS: gdb.python/py-value.exp: greater or equal, None
+PASS: gdb.python/py-value.exp: py-value in file.filename
+PASS: gdb.python/py-value.exp: python print (gdb.objfiles()[0].pretty_printers)
+PASS: gdb.python/py-value.exp: python gdb.objfiles()[0].pretty_printers = 0
+PASS: gdb.python/py-value.exp: parse_and_eval constant test
+PASS: gdb.python/py-value.exp: parse_and_eval simple expression test
+PASS: gdb.python/py-value.exp: parse_and_eval type test
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - python
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - one = gdb.Value(1)
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - two = gdb.Value(2)
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - three = gdb.Value(3)
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - vdict = {one:"one str",two:"two str",three:"three str"}
+PASS: gdb.python/py-value.exp: Simple Python value dictionary - end
+PASS: gdb.python/py-value.exp: Test dictionary hash
+PASS: gdb.python/py-value.exp: Test dictionary hash
+PASS: gdb.python/py-value.exp: Test dictionary hash
+PASS: gdb.python/py-value.exp: Test inbuilt hash
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect struct and union
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: access element inside struct using 8-bit string name
+PASS: gdb.python/py-value.exp: access element inside struct using unicode name
+PASS: gdb.python/py-value.exp: dereference value
+PASS: gdb.python/py-value.exp: Test is_optimized_out attribute
+PASS: gdb.python/py-value.exp: Test address attribute
+PASS: gdb.python/py-value.exp: parse_and_eval with memory error
+PASS: gdb.python/py-value.exp: python inval = gdb.parse_and_eval('*(int*)0')
+PASS: gdb.python/py-value.exp: python print (inval.is_lazy)
+PASS: gdb.python/py-value.exp: memory error and lazy values
+PASS: gdb.python/py-value.exp: memory error and lazy values
+PASS: gdb.python/py-value.exp: python argc_lazy = gdb.parse_and_eval('argc')
+PASS: gdb.python/py-value.exp: python argc_notlazy = gdb.parse_and_eval('argc')
+PASS: gdb.python/py-value.exp: python argc_notlazy.fetch_lazy()
+PASS: gdb.python/py-value.exp: python print (argc_lazy.is_lazy)
+PASS: gdb.python/py-value.exp: python print (argc_notlazy.is_lazy)
+PASS: gdb.python/py-value.exp: sanity check argc
+PASS: gdb.python/py-value.exp: python print (argc_lazy.is_lazy)
+PASS: gdb.python/py-value.exp: set argc=2
+PASS: gdb.python/py-value.exp: python print (argc_notlazy)
+PASS: gdb.python/py-value.exp: python print (argc_lazy)
+PASS: gdb.python/py-value.exp: python print (argc_lazy.is_lazy)
+PASS: gdb.python/py-value.exp: print st
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: Test string with no length
+PASS: gdb.python/py-value.exp: Test string (length = -1) is all of the string
+PASS: gdb.python/py-value.exp: python print (st.string (length = 6))
+PASS: gdb.python/py-value.exp: Test string (length = 0) is empty
+PASS: gdb.python/py-value.exp: Test length is 0
+PASS: gdb.python/py-value.exp: print nullst
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: Test string to first null
+PASS: gdb.python/py-value.exp: get string beyond null
+PASS: gdb.python/py-value.exp: python print (repr(nullst))
+PASS: gdb.python/py-value.exp: p/x fp1
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python fp1 = fp1.dereference()
+PASS: gdb.python/py-value.exp: python result = fp1()
+PASS: gdb.python/py-value.exp: python print (result)
+PASS: gdb.python/py-value.exp: p/x fp2
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python fp2 = fp2.dereference()
+PASS: gdb.python/py-value.exp: python result2 = fp2(10,20)
+PASS: gdb.python/py-value.exp: python print (result2)
+PASS: gdb.python/py-value.exp: p i
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python result3 = i()
+PASS: gdb.python/py-value.exp: p/x fp2
+PASS: gdb.python/py-value.exp: get value from history
+PASS: gdb.python/py-value.exp: python fp3 = fp3.dereference()
+PASS: gdb.python/py-value.exp: python result2 = fp3(10)
+PASS: gdb.python/py-value.exp: print sptr
+PASS: gdb.python/py-value.exp: Get value from history
+PASS: gdb.python/py-value.exp: Aquire lazy string
+PASS: gdb.python/py-value.exp: Test type name equality
+PASS: gdb.python/py-value.exp: Test type name equality
+PASS: gdb.python/py-value.exp: print sn
+PASS: gdb.python/py-value.exp: Get value from history
+PASS: gdb.python/py-value.exp: Test lazy string
+PASS: gdb.python/py-value.exp: Succesfully create a lazy string
+PASS: gdb.python/py-value.exp: Test lazy string length
+PASS: gdb.python/py-value.exp: Test lazy string address
+PASS: gdb.python/py-value.exp: create PTR type
+PASS: gdb.python/py-value.exp: kill the inferior
+PASS: gdb.python/py-value.exp: Discard the symbols
+PASS: gdb.python/py-value.exp: cast arg0 to PTR
+PASS: gdb.python/py-value.exp: delete PTR type
+PASS: gdb.python/py-value.exp: print value's type
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect struct and union
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access a string with a subscript
+PASS: gdb.python/py-value.exp: Build pointer to array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Access array via pointer with int subscript
+PASS: gdb.python/py-value.exp: Access array via pointer with value subscript
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Build array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Test multiple subscript
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect pointer by reference
+PASS: gdb.python/py-value.exp: Obtain address
+PASS: gdb.python/py-value.exp: Obtains value from GDB
+PASS: gdb.python/py-value.exp: Check pointer passed as reference
+PASS: gdb.python/py-value.exp: python print (bool(gdb.parse_and_eval('base').dynamic_cast(gdb.lookup_type('Derived').pointer())))
+PASS: gdb.python/py-value.exp: python print (gdb.parse_and_eval('base').dynamic_type)
+PASS: gdb.python/py-value.exp: python print (gdb.parse_and_eval('5').dynamic_type)
+PASS: gdb.python/py-value.exp: continue to breakpoint: break to inspect struct and union
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Create a value for subscript test
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Baseline print of a Python value
+PASS: gdb.python/py-value.exp: Attempt to access a string with a subscript
+PASS: gdb.python/py-value.exp: Build pointer to array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Access array via pointer with int subscript
+PASS: gdb.python/py-value.exp: Access array via pointer with value subscript
+PASS: gdb.python/py-value.exp: Attempt to access an integer with a subscript
+PASS: gdb.python/py-value.exp: Build array
+PASS: gdb.python/py-value.exp:
+PASS: gdb.python/py-value.exp: Test multiple subscript
+Running ./gdb.reverse/amd64-tailcall-reverse.exp ...
+Running ./gdb.reverse/break-precsave.exp ...
+Running ./gdb.reverse/break-reverse.exp ...
+Running ./gdb.reverse/consecutive-precsave.exp ...
+Running ./gdb.reverse/consecutive-reverse.exp ...
+Running ./gdb.reverse/finish-precsave.exp ...
+Running ./gdb.reverse/finish-reverse-bkpt.exp ...
+Running ./gdb.reverse/finish-reverse.exp ...
+Running ./gdb.reverse/i386-precsave.exp ...
+Running ./gdb.reverse/i386-reverse.exp ...
+Running ./gdb.reverse/i386-sse-reverse.exp ...
+Running ./gdb.reverse/i387-env-reverse.exp ...
+Running ./gdb.reverse/i387-stack-reverse.exp ...
+Running ./gdb.reverse/machinestate.exp ...
+Running ./gdb.reverse/machinestate-precsave.exp ...
+Running ./gdb.reverse/next-reverse-bkpt-over-sr.exp ...
+Running ./gdb.reverse/sigall-precsave.exp ...
+Running ./gdb.reverse/sigall-reverse.exp ...
+Running ./gdb.reverse/singlejmp-reverse.exp ...
+Running ./gdb.reverse/solib-precsave.exp ...
+Running ./gdb.reverse/solib-reverse.exp ...
+Running ./gdb.reverse/step-precsave.exp ...
+Running ./gdb.reverse/step-reverse.exp ...
+Running ./gdb.reverse/until-precsave.exp ...
+Running ./gdb.reverse/until-reverse.exp ...
+Running ./gdb.reverse/watch-precsave.exp ...
+Running ./gdb.reverse/watch-reverse.exp ...
+Running ./gdb.server/ext-attach.exp ...
+Running ./gdb.server/ext-run.exp ...
+PASS: gdb.server/ext-run.exp: disconnect
+PASS: gdb.server/ext-run.exp: set remote exec-file
+PASS: gdb.server/ext-run.exp: continue to main
+PASS: gdb.server/ext-run.exp: get process list
+PASS: gdb.server/ext-run.exp: kill
+PASS: gdb.server/ext-run.exp: load new file without any gdbserver inferior
+PASS: gdb.server/ext-run.exp: monitor exit
+Running ./gdb.server/file-transfer.exp ...
+PASS: gdb.server/file-transfer.exp: disconnect
+FAIL: gdb.server/file-transfer.exp: put binary file
+FAIL: gdb.server/file-transfer.exp: get binary file
+FAIL: gdb.server/file-transfer.exp: compare binary file
+FAIL: gdb.server/file-transfer.exp: deleted binary file
+FAIL: gdb.server/file-transfer.exp: put text file
+FAIL: gdb.server/file-transfer.exp: get text file
+FAIL: gdb.server/file-transfer.exp: compare text file
+FAIL: gdb.server/file-transfer.exp: deleted text file
+Running ./gdb.server/no-thread-db.exp ...
+PASS: gdb.server/no-thread-db.exp: successfully compiled posix threads test case
+PASS: gdb.server/no-thread-db.exp: disconnect
+PASS: gdb.server/no-thread-db.exp: libthread-db is now unresolvable
+PASS: gdb.server/no-thread-db.exp: continue to breakpoint: after tls assignment
+PASS: gdb.server/no-thread-db.exp: print foo
+Running ./gdb.server/server-exec-info.exp ...
+PASS: gdb.server/server-exec-info.exp: file
+PASS: gdb.server/server-exec-info.exp: set sysroot remote:
+PASS: gdb.server/server-exec-info.exp: info files
+Running ./gdb.server/server-kill.exp ...
+PASS: gdb.server/server-kill.exp: disconnect
+FAIL: gdb.server/server-kill.exp: tstatus
+Running ./gdb.server/server-mon.exp ...
+PASS: gdb.server/server-mon.exp: disconnect
+PASS: gdb.server/server-mon.exp: monitor help
+PASS: gdb.server/server-mon.exp: monitor
+PASS: gdb.server/server-mon.exp: monitor set debug 1
+PASS: gdb.server/server-mon.exp: monitor set debug 0
+PASS: gdb.server/server-mon.exp: monitor set remote-debug 1
+PASS: gdb.server/server-mon.exp: monitor set remote-debug 0
+Running ./gdb.server/server-run.exp ...
+PASS: gdb.server/server-run.exp: disconnect
+PASS: gdb.server/server-run.exp: loaded dynamic linker
+PASS: gdb.server/server-run.exp: continue to main
+Running ./gdb.server/solib-list.exp ...
+Running ./gdb.stabs/exclfwd.exp ...
+PASS: gdb.stabs/exclfwd.exp: ptype v1
+PASS: gdb.stabs/exclfwd.exp: ptype v2
+PASS: gdb.stabs/exclfwd.exp: ptype v3
+Running ./gdb.stabs/gdb11479.exp ...
+PASS: gdb.stabs/gdb11479.exp: Set breakpoints forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test2 forced_stabs
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test2 forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test forced_stabs
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test forced_stabs
+PASS: gdb.stabs/gdb11479.exp: Set breakpoints natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test2 natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test2 natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Stop at first breakpoint natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: Inspect t in test natural_debug_format
+PASS: gdb.stabs/gdb11479.exp: sizeof (e) in test natural_debug_format
+Running ./gdb.stabs/weird.exp ...
+PASS: gdb.stabs/weird.exp: weirdx.o read without error
+PASS: gdb.stabs/weird.exp: stabs found
+PASS: gdb.stabs/weird.exp: variable var0 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var0)
+PASS: gdb.stabs/weird.exp: variable var1 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var1)
+PASS: gdb.stabs/weird.exp: variable var2 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var2)
+PASS: gdb.stabs/weird.exp: variable var3 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (var3)
+PASS: gdb.stabs/weird.exp: variable attr32 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr32)
+PASS: gdb.stabs/weird.exp: variable attr33 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr33)
+PASS: gdb.stabs/weird.exp: variable attr35 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr35)
+PASS: gdb.stabs/weird.exp: variable attr36 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr36)
+PASS: gdb.stabs/weird.exp: variable attr37 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr37)
+PASS: gdb.stabs/weird.exp: variable attr38 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr38)
+PASS: gdb.stabs/weird.exp: variable attr39 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr39)
+PASS: gdb.stabs/weird.exp: variable attr41 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr41)
+PASS: gdb.stabs/weird.exp: variable attr42 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr42)
+PASS: gdb.stabs/weird.exp: variable attr43 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr43)
+PASS: gdb.stabs/weird.exp: variable attr44 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr44)
+PASS: gdb.stabs/weird.exp: variable attr46 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr46)
+PASS: gdb.stabs/weird.exp: variable attr47 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr47)
+PASS: gdb.stabs/weird.exp: variable attr58 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr58)
+PASS: gdb.stabs/weird.exp: variable attr59 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr59)
+PASS: gdb.stabs/weird.exp: variable attr60 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr60)
+PASS: gdb.stabs/weird.exp: variable attr61 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr61)
+PASS: gdb.stabs/weird.exp: variable attr62 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr62)
+PASS: gdb.stabs/weird.exp: variable attr63 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr63)
+PASS: gdb.stabs/weird.exp: variable attr64 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr64)
+PASS: gdb.stabs/weird.exp: variable attr65 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr65)
+PASS: gdb.stabs/weird.exp: variable attr66 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr66)
+PASS: gdb.stabs/weird.exp: variable attr67 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr67)
+PASS: gdb.stabs/weird.exp: variable attr68 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr68)
+PASS: gdb.stabs/weird.exp: variable attr69 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr69)
+PASS: gdb.stabs/weird.exp: variable attr70 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr70)
+PASS: gdb.stabs/weird.exp: variable attr71 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr71)
+PASS: gdb.stabs/weird.exp: variable attr72 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr72)
+PASS: gdb.stabs/weird.exp: variable attr73 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr73)
+PASS: gdb.stabs/weird.exp: variable attr74 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr74)
+PASS: gdb.stabs/weird.exp: variable attr75 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr75)
+PASS: gdb.stabs/weird.exp: variable attr76 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr76)
+PASS: gdb.stabs/weird.exp: variable attr77 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr77)
+PASS: gdb.stabs/weird.exp: variable attr78 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr78)
+PASS: gdb.stabs/weird.exp: variable attr79 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr79)
+PASS: gdb.stabs/weird.exp: variable attr80 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr80)
+PASS: gdb.stabs/weird.exp: variable attr81 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr81)
+PASS: gdb.stabs/weird.exp: variable attr82 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr82)
+PASS: gdb.stabs/weird.exp: variable attr83 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr83)
+PASS: gdb.stabs/weird.exp: variable attr84 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr84)
+PASS: gdb.stabs/weird.exp: variable attr85 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr85)
+PASS: gdb.stabs/weird.exp: variable attr86 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr86)
+PASS: gdb.stabs/weird.exp: variable attr87 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr87)
+PASS: gdb.stabs/weird.exp: variable attr88 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr88)
+PASS: gdb.stabs/weird.exp: variable attr89 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr89)
+PASS: gdb.stabs/weird.exp: variable attr90 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr90)
+PASS: gdb.stabs/weird.exp: variable attr91 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr91)
+PASS: gdb.stabs/weird.exp: variable attr92 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr92)
+PASS: gdb.stabs/weird.exp: variable attr93 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr93)
+PASS: gdb.stabs/weird.exp: variable attr94 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr94)
+PASS: gdb.stabs/weird.exp: variable attr95 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr95)
+PASS: gdb.stabs/weird.exp: variable attr96 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr96)
+PASS: gdb.stabs/weird.exp: variable attr97 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr97)
+PASS: gdb.stabs/weird.exp: variable attr98 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr98)
+PASS: gdb.stabs/weird.exp: variable attr99 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr99)
+PASS: gdb.stabs/weird.exp: variable attr100 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr100)
+PASS: gdb.stabs/weird.exp: variable attr101 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr101)
+PASS: gdb.stabs/weird.exp: variable attr102 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr102)
+PASS: gdb.stabs/weird.exp: variable attr103 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr103)
+PASS: gdb.stabs/weird.exp: variable attr104 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr104)
+PASS: gdb.stabs/weird.exp: variable attr105 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr105)
+PASS: gdb.stabs/weird.exp: variable attr106 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr106)
+PASS: gdb.stabs/weird.exp: variable attr107 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr107)
+PASS: gdb.stabs/weird.exp: variable attr108 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr108)
+PASS: gdb.stabs/weird.exp: variable attr109 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr109)
+PASS: gdb.stabs/weird.exp: variable attr110 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr110)
+PASS: gdb.stabs/weird.exp: variable attr111 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr111)
+PASS: gdb.stabs/weird.exp: variable attr112 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr112)
+PASS: gdb.stabs/weird.exp: variable attr113 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr113)
+PASS: gdb.stabs/weird.exp: variable attr114 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr114)
+PASS: gdb.stabs/weird.exp: variable attr115 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr115)
+PASS: gdb.stabs/weird.exp: variable attr116 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr116)
+PASS: gdb.stabs/weird.exp: variable attr117 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr117)
+PASS: gdb.stabs/weird.exp: variable attr118 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr118)
+PASS: gdb.stabs/weird.exp: variable attr119 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr119)
+PASS: gdb.stabs/weird.exp: variable attr120 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr120)
+PASS: gdb.stabs/weird.exp: variable attr121 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr121)
+PASS: gdb.stabs/weird.exp: variable attr122 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr122)
+PASS: gdb.stabs/weird.exp: variable attr123 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr123)
+PASS: gdb.stabs/weird.exp: variable attr124 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr124)
+PASS: gdb.stabs/weird.exp: variable attr125 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr125)
+PASS: gdb.stabs/weird.exp: variable attr126 printed properly
+PASS: gdb.stabs/weird.exp: print sizeof (attr126)
+PASS: gdb.stabs/weird.exp: 'e' constant on non-enum type
+PASS: gdb.stabs/weird.exp: whatis const69
+PASS: gdb.stabs/weird.exp: 'e' constant with embedded type
+PASS: gdb.stabs/weird.exp: char constant
+PASS: gdb.stabs/weird.exp: String constant 1
+PASS: gdb.stabs/weird.exp: String constant 2
+PASS: gdb.stabs/weird.exp: String constant 3
+PASS: gdb.stabs/weird.exp: String constant 4
+PASS: gdb.stabs/weird.exp: p bad_neg0
+PASS: gdb.stabs/weird.exp: ptype on inttype
+PASS: gdb.stabs/weird.exp: unrecognized floating point type
+PASS: gdb.stabs/weird.exp: print very big integer
+PASS: gdb.stabs/weird.exp: whatis consth
+PASS: gdb.stabs/weird.exp: whatis consth2
+XFAIL: gdb.stabs/weird.exp: print struct constant
+PASS: gdb.stabs/weird.exp: print bad_type0
+PASS: gdb.stabs/weird.exp: print bad_type1
+XFAIL: gdb.stabs/weird.exp: array0 with strange index
+XFAIL: gdb.stabs/weird.exp: array1 with strange index
+PASS: gdb.stabs/weird.exp: whatis one_var (known failure in gdb 4.10)
+PASS: gdb.stabs/weird.exp: whatis one_var test 2
+PASS: gdb.stabs/weird.exp: whatis two_var (known failure in gdb 4.10)
+PASS: gdb.stabs/weird.exp: whatis two_var test 2
+XFAIL: gdb.stabs/weird.exp: whatis pointer_to_int_var
+XFAIL: gdb.stabs/weird.exp: whatis intp_var
+PASS: gdb.stabs/weird.exp: p common0var0
+XFAIL: gdb.stabs/weird.exp: p common0var1
+XFAIL: gdb.stabs/weird.exp: p common0var2
+Running ./gdb.threads/attach-into-signal.exp ...
+Running ./gdb.threads/attach-stopped.exp ...
+Running ./gdb.threads/bp_in_thread.exp ...
+PASS: gdb.threads/bp_in_thread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/bp_in_thread.exp: breakpoint on noreturn
+PASS: gdb.threads/bp_in_thread.exp: run to noreturn
+Running ./gdb.threads/clone-new-thread-event.exp ...
+PASS: gdb.threads/clone-new-thread-event.exp: catch SIGUSR1
+Running ./gdb.threads/corethreads.exp ...
+Running ./gdb.threads/create-fail.exp ...
+PASS: gdb.threads/create-fail.exp: successfully compiled posix threads test case
+PASS: gdb.threads/create-fail.exp: iteration 1: run till end
+PASS: gdb.threads/create-fail.exp: iteration 2: run till end
+PASS: gdb.threads/create-fail.exp: iteration 3: run till end
+PASS: gdb.threads/create-fail.exp: iteration 4: run till end
+PASS: gdb.threads/create-fail.exp: iteration 5: run till end
+PASS: gdb.threads/create-fail.exp: iteration 6: run till end
+PASS: gdb.threads/create-fail.exp: iteration 7: run till end
+PASS: gdb.threads/create-fail.exp: iteration 8: run till end
+PASS: gdb.threads/create-fail.exp: iteration 9: run till end
+PASS: gdb.threads/create-fail.exp: iteration 10: run till end
+Running ./gdb.threads/current-lwp-dead.exp ...
+PASS: gdb.threads/current-lwp-dead.exp: continue to breakpoint: fn_return
+Running ./gdb.threads/execl.exp ...
+Running ./gdb.threads/fork-child-threads.exp ...
+Running ./gdb.threads/fork-thread-pending.exp ...
+Running ./gdb.threads/gcore-thread.exp ...
+PASS: gdb.threads/gcore-thread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/gcore-thread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/gcore-thread.exp: help gcore
+PASS: gdb.threads/gcore-thread.exp: thread 1 is running
+PASS: gdb.threads/gcore-thread.exp: thread 2 is running
+PASS: gdb.threads/gcore-thread.exp: save a corefile
+PASS: gdb.threads/gcore-thread.exp: clear __stack_user.next
+PASS: gdb.threads/gcore-thread.exp: clear stack_used.next
+PASS: gdb.threads/gcore-thread.exp: save a zeroed-threads corefile
+FAIL: gdb.threads/gcore-thread.exp: corefile: re-load generated corefile (bad file format)
+FAIL: gdb.threads/gcore-thread.exp: core0file: re-load generated corefile (bad file format)
+Running ./gdb.threads/hand-call-in-threads.exp ...
+PASS: gdb.threads/hand-call-in-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/hand-call-in-threads.exp: breakpoint on all_threads_running
+PASS: gdb.threads/hand-call-in-threads.exp: breakpoint on hand_call
+PASS: gdb.threads/hand-call-in-threads.exp: run to all_threads_running
+PASS: gdb.threads/hand-call-in-threads.exp: enable scheduler locking
+PASS: gdb.threads/hand-call-in-threads.exp: show scheduler locking on
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to make hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: set confirm off
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 1
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: setting frame, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 5
+PASS: gdb.threads/hand-call-in-threads.exp: all dummies popped
+PASS: gdb.threads/hand-call-in-threads.exp: disable scheduler locking
+PASS: gdb.threads/hand-call-in-threads.exp: show scheduler locking off
+Running ./gdb.threads/ia64-sigill.exp ...
+PASS: gdb.threads/ia64-sigill.exp: successfully compiled posix threads test case
+PASS: gdb.threads/ia64-sigill.exp: info addr label
+PASS: gdb.threads/ia64-sigill.exp: set $sigill_bpnum=$bpnum
+PASS: gdb.threads/ia64-sigill.exp: set debug infrun 1
+PASS: gdb.threads/ia64-sigill.exp: continue
+PASS: gdb.threads/ia64-sigill.exp: delete $sigill_bpnum
+PASS: gdb.threads/ia64-sigill.exp: continue for the pending signal
+Running ./gdb.threads/interrupted-hand-call.exp ...
+PASS: gdb.threads/interrupted-hand-call.exp: successfully compiled posix threads test case
+PASS: gdb.threads/interrupted-hand-call.exp: breakpoint on all_threads_running
+PASS: gdb.threads/interrupted-hand-call.exp: run to all_threads_running
+PASS: gdb.threads/interrupted-hand-call.exp: hand-call interrupted by signal in another thread
+PASS: gdb.threads/interrupted-hand-call.exp: dummy stack frame present
+PASS: gdb.threads/interrupted-hand-call.exp: finish hand-call
+PASS: gdb.threads/interrupted-hand-call.exp: dummy frame popped
+PASS: gdb.threads/interrupted-hand-call.exp: continue until exit
+Running ./gdb.threads/killed.exp ...
+PASS: gdb.threads/killed.exp: successfully compiled posix threads test case
+PASS: gdb.threads/killed.exp: run program to completion
+PASS: gdb.threads/killed.exp: GDB exits after multi-threaded program exits messily
+Running ./gdb.threads/leader-exit.exp ...
+PASS: gdb.threads/leader-exit.exp: successfully compiled posix threads test case
+FAIL: gdb.threads/leader-exit.exp: continue to breakpoint: break-here (timeout)
+FAIL: gdb.threads/leader-exit.exp: Single thread has been left (timeout)
+Running ./gdb.threads/linux-dp.exp ...
+PASS: gdb.threads/linux-dp.exp: successfully compiled posix threads test case
+PASS: gdb.threads/linux-dp.exp: set print sevenbit-strings
+PASS: gdb.threads/linux-dp.exp: info threads 1
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 0
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 0
+PASS: gdb.threads/linux-dp.exp: info threads after: 0
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 1
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 1
+PASS: gdb.threads/linux-dp.exp: info threads after: 1
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 2
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 2
+PASS: gdb.threads/linux-dp.exp: info threads after: 2
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 3
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 3
+PASS: gdb.threads/linux-dp.exp: info threads after: 3
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 4
+UNSUPPORTED: gdb.threads/linux-dp.exp: create philosopher: 4
+PASS: gdb.threads/linux-dp.exp: info threads after: 4
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: main thread's sleep
+PASS: gdb.threads/linux-dp.exp: info threads 2
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print
+PASS: gdb.threads/linux-dp.exp: first thread-specific breakpoint hit
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 0
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 1
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 2
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 3
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 4
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 5
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 6
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 7
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 8
+PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 9
+PASS: gdb.threads/linux-dp.exp: thread-specific breakpoint is thread-specific
+PASS: gdb.threads/linux-dp.exp: selected thread: 1
+PASS: gdb.threads/linux-dp.exp: main is distinct: 1
+PASS: gdb.threads/linux-dp.exp: selected thread: 2
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 2
+PASS: gdb.threads/linux-dp.exp: selected thread: 3
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 3
+PASS: gdb.threads/linux-dp.exp: selected thread: 4
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 4
+PASS: gdb.threads/linux-dp.exp: selected thread: 5
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 5
+PASS: gdb.threads/linux-dp.exp: selected thread: 6
+PASS: gdb.threads/linux-dp.exp: philosopher is distinct: 6
+PASS: gdb.threads/linux-dp.exp: found an interesting thread
+PASS: gdb.threads/linux-dp.exp: manager thread found (not found) when expected
+Running ./gdb.threads/local-watch-wrong-thread.exp ...
+Running ./gdb.threads/manythreads.exp ...
+PASS: gdb.threads/manythreads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/manythreads.exp: set print sevenbit-strings
+PASS: gdb.threads/manythreads.exp: shell stty intr '^C'
+PASS: gdb.threads/manythreads.exp: first continue
+PASS: gdb.threads/manythreads.exp: stop threads 1
+PASS: gdb.threads/manythreads.exp: info threads
+PASS: gdb.threads/manythreads.exp: give a name to the thread
+PASS: gdb.threads/manythreads.exp: check thread name
+PASS: gdb.threads/manythreads.exp: second continue
+PASS: gdb.threads/manythreads.exp: check for duplicate SIGINT
+PASS: gdb.threads/manythreads.exp: stop threads 2
+PASS: gdb.threads/manythreads.exp: GDB exits after stopping multithreaded program
+Running ./gdb.threads/multi-create.exp ...
+PASS: gdb.threads/multi-create.exp: successfully compiled posix threads test case
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 0
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 1
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 2
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 3
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 4
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 5
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 6
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 7
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 8
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 9
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 10
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 11
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 12
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 13
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 14
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 15
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 16
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 17
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 18
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 19
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 20
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 21
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 22
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 23
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 24
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 25
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 26
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 27
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 28
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 29
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 30
+PASS: gdb.threads/multi-create.exp: continue to breakpoint 31
+Running ./gdb.threads/non-ldr-exc-1.exp ...
+Running ./gdb.threads/non-ldr-exc-2.exp ...
+Running ./gdb.threads/non-ldr-exc-3.exp ...
+Running ./gdb.threads/non-ldr-exc-4.exp ...
+Running ./gdb.threads/no-unwaited-for-left.exp ...
+PASS: gdb.threads/no-unwaited-for-left.exp: successfully compiled posix threads test case
+PASS: gdb.threads/no-unwaited-for-left.exp: continue to breakpoint: break-here
+PASS: gdb.threads/no-unwaited-for-left.exp: enable scheduler-locking, for thread 2
+FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when thread 2 exits (the program exited)
+FAIL: gdb.threads/no-unwaited-for-left.exp: only main thread left, thread 2 terminated
+PASS: gdb.threads/no-unwaited-for-left.exp: select main thread
+FAIL: gdb.threads/no-unwaited-for-left.exp: disable scheduler-locking, letting new thread start
+FAIL: gdb.threads/no-unwaited-for-left.exp: continue to breakpoint: break-here-2
+FAIL: gdb.threads/no-unwaited-for-left.exp: enable scheduler-locking, for main thread
+FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when the main thread exits (the program is no longer running)
+FAIL: gdb.threads/no-unwaited-for-left.exp: only thread 3 left, main thread terminated
+Running ./gdb.threads/pending-step.exp ...
+PASS: gdb.threads/pending-step.exp: successfully compiled posix threads test case
+PASS: gdb.threads/pending-step.exp: continue to breakpoint: continue to first breakpoint hit
+PASS: gdb.threads/pending-step.exp: next in multiple threads with breakpoints
+Running ./gdb.threads/print-threads.exp ...
+PASS: gdb.threads/print-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/print-threads.exp: set print sevenbit-strings
+PASS: gdb.threads/print-threads.exp: set width 0
+PASS: gdb.threads/print-threads.exp: shell stty intr '^C'
+PASS: gdb.threads/print-threads.exp: break thread_function
+PASS: gdb.threads/print-threads.exp: set var slow = 0
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 1 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 2 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 3 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 4 (fast)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 5 (fast)
+PASS: gdb.threads/print-threads.exp: program exited normally
+PASS: gdb.threads/print-threads.exp: all threads ran once (fast)
+PASS: gdb.threads/print-threads.exp: break thread_function (2)
+PASS: gdb.threads/print-threads.exp: set var slow = 1
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 1 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 2 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 3 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 4 (slow)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 5 (slow)
+PASS: gdb.threads/print-threads.exp: program exited normally
+PASS: gdb.threads/print-threads.exp: all threads ran once (slow)
+PASS: gdb.threads/print-threads.exp: break thread_function (3)
+PASS: gdb.threads/print-threads.exp: set var slow = 1 (2)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 1 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 2 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 3 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 4 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: Hit thread_function breakpoint, 5 (slow with kill breakpoint)
+PASS: gdb.threads/print-threads.exp: program exited normally
+PASS: gdb.threads/print-threads.exp: all threads ran once (slow with kill breakpoint)
+Running ./gdb.threads/pthread_cond_wait.exp ...
+PASS: gdb.threads/pthread_cond_wait.exp: successfully compiled posix threads test case
+PASS: gdb.threads/pthread_cond_wait.exp: breakpoint on break_me
+PASS: gdb.threads/pthread_cond_wait.exp: run to break_me
+PASS: gdb.threads/pthread_cond_wait.exp: backtrace in blocked thread
+Running ./gdb.threads/pthreads.exp ...
+PASS: gdb.threads/pthreads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/pthreads.exp: set print sevenbit-strings
+PASS: gdb.threads/pthreads.exp: set width 0
+PASS: gdb.threads/pthreads.exp: shell stty intr '^C'
+PASS: gdb.threads/pthreads.exp: info threads
+PASS: gdb.threads/pthreads.exp: break thread1
+PASS: gdb.threads/pthreads.exp: Continue to creation of first thread
+PASS: gdb.threads/pthreads.exp: disable
+PASS: gdb.threads/pthreads.exp: break thread2
+PASS: gdb.threads/pthreads.exp: Continue to creation of second thread
+PASS: gdb.threads/pthreads.exp: set var common_routine::hits=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread1=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread2=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_main=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::full_coverage=0
+PASS: gdb.threads/pthreads.exp: disable
+PASS: gdb.threads/pthreads.exp: tbreak common_routine if hits >= 15
+PASS: gdb.threads/pthreads.exp: stopped before calling common_routine 15 times
+PASS: gdb.threads/pthreads.exp: All threads running after startup
+PASS: gdb.threads/pthreads.exp: Continue with all threads running
+PASS: gdb.threads/pthreads.exp: Stopped with a ^C
+PASS: gdb.threads/pthreads.exp: bt
+PASS: gdb.threads/pthreads.exp: set var common_routine::hits=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread1=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_thread2=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::from_main=0
+PASS: gdb.threads/pthreads.exp: set var common_routine::full_coverage=0
+PASS: gdb.threads/pthreads.exp: disable
+PASS: gdb.threads/pthreads.exp: tbreak common_routine if hits >= 15
+PASS: gdb.threads/pthreads.exp: stopped before calling common_routine 15 times
+PASS: gdb.threads/pthreads.exp: All threads running after continuing from ^C stop
+PASS: gdb.threads/pthreads.exp: check backtrace from main thread
+PASS: gdb.threads/pthreads.exp: check backtrace from thread 1
+PASS: gdb.threads/pthreads.exp: check backtrace from thread 2
+PASS: gdb.threads/pthreads.exp: apply backtrace command to all three threads
+PASS: gdb.threads/pthreads.exp: set break at common_routine in thread 2
+PASS: gdb.threads/pthreads.exp: continue to bkpt at common_routine in thread 2
+PASS: gdb.threads/pthreads.exp: backtrace from thread 2 bkpt in common_routine
+Running ./gdb.threads/schedlock.exp ...
+PASS: gdb.threads/schedlock.exp: successfully compiled posix threads test case
+PASS: gdb.threads/schedlock.exp: shell stty intr '^C'
+PASS: gdb.threads/schedlock.exp: set print sevenbit-strings
+PASS: gdb.threads/schedlock.exp: set width 0
+PASS: gdb.threads/schedlock.exp: scheduler locking set to none
+PASS: gdb.threads/schedlock.exp: continue to breakpoint: all threads started
+PASS: gdb.threads/schedlock.exp: listed args (1)
+PASS: gdb.threads/schedlock.exp: continue (initial)
+PASS: gdb.threads/schedlock.exp: stop all threads (initial)
+PASS: gdb.threads/schedlock.exp: continue to breakpoint: return to loop (initial)
+PASS: gdb.threads/schedlock.exp: listed args (2)
+PASS: gdb.threads/schedlock.exp: all threads alive
+PASS: gdb.threads/schedlock.exp: find current thread (1)
+PASS: gdb.threads/schedlock.exp: set scheduler-locking off
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 0)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 1)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 2)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 3)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 4)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 5)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 6)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 7)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 8)
+PASS: gdb.threads/schedlock.exp: step to increment (unlocked 9)
+PASS: gdb.threads/schedlock.exp: find current thread (2)
+PASS: gdb.threads/schedlock.exp: step without lock does not change thread
+PASS: gdb.threads/schedlock.exp: listed args (3)
+PASS: gdb.threads/schedlock.exp: current thread stepped
+PASS: gdb.threads/schedlock.exp: other threads ran - unlocked
+PASS: gdb.threads/schedlock.exp: set scheduler-locking on
+PASS: gdb.threads/schedlock.exp: continue (with lock)
+PASS: gdb.threads/schedlock.exp: stop all threads (with lock)
+PASS: gdb.threads/schedlock.exp: continue to breakpoint: return to loop (with lock)
+PASS: gdb.threads/schedlock.exp: find current thread (3)
+PASS: gdb.threads/schedlock.exp: continue with lock does not change thread
+PASS: gdb.threads/schedlock.exp: listed args (4)
+PASS: gdb.threads/schedlock.exp: current thread ran
+PASS: gdb.threads/schedlock.exp: other threads didn't run - locked
+PASS: gdb.threads/schedlock.exp: step to increment (locked 0)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 1)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 2)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 3)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 4)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 5)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 6)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 7)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 8)
+PASS: gdb.threads/schedlock.exp: step to increment (locked 9)
+PASS: gdb.threads/schedlock.exp: find current thread (2)
+PASS: gdb.threads/schedlock.exp: step with lock does not change thread
+PASS: gdb.threads/schedlock.exp: listed args (5)
+PASS: gdb.threads/schedlock.exp: current thread stepped locked
+PASS: gdb.threads/schedlock.exp: other threads didn't run - step locked
+Running ./gdb.threads/siginfo-threads.exp ...
+PASS: gdb.threads/siginfo-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/siginfo-threads.exp: handle SIGUSR1 stop print pass
+PASS: gdb.threads/siginfo-threads.exp: handle SIGUSR2 stop print pass
+PASS: gdb.threads/siginfo-threads.exp: get pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 0
+PASS: gdb.threads/siginfo-threads.exp: signal 0 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 0 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 0 si_pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 1
+PASS: gdb.threads/siginfo-threads.exp: signal 1 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 1 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 1 si_pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 2
+PASS: gdb.threads/siginfo-threads.exp: signal 2 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 2 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 2 si_pid
+PASS: gdb.threads/siginfo-threads.exp: catch signal 3
+PASS: gdb.threads/siginfo-threads.exp: signal 3 si_signo
+PASS: gdb.threads/siginfo-threads.exp: signal 3 si_code is SI_TKILL
+PASS: gdb.threads/siginfo-threads.exp: signal 3 si_pid
+PASS: gdb.threads/siginfo-threads.exp: continue to breakpoint: break-at-exit
+Running ./gdb.threads/sigstep-threads.exp ...
+PASS: gdb.threads/sigstep-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/sigstep-threads.exp: handle SIGUSR1 nostop print pass
+PASS: gdb.threads/sigstep-threads.exp: set scheduler-locking off
+PASS: gdb.threads/sigstep-threads.exp: set $step1=$bpnum
+PASS: gdb.threads/sigstep-threads.exp: continue to breakpoint: step-1
+PASS: gdb.threads/sigstep-threads.exp: disable $step1
+PASS: gdb.threads/sigstep-threads.exp: step
+Running ./gdb.threads/sigthread.exp ...
+PASS: gdb.threads/sigthread.exp: successfully compiled posix threads test case
+PASS: gdb.threads/sigthread.exp: handle SIGUSR1 nostop noprint pass
+PASS: gdb.threads/sigthread.exp: handle SIGUSR2 nostop noprint pass
+PASS: gdb.threads/sigthread.exp: continue
+PASS: gdb.threads/sigthread.exp: stop with control-c
+Running ./gdb.threads/staticthreads.exp ...
+PASS: gdb.threads/staticthreads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/staticthreads.exp: set print sevenbit-strings
+PASS: gdb.threads/staticthreads.exp: break sem_post
+PASS: gdb.threads/staticthreads.exp: Continue to main's call of sem_post
+PASS: gdb.threads/staticthreads.exp: rerun to main
+PASS: gdb.threads/staticthreads.exp: handle SIG32 nostop noprint pass
+PASS: gdb.threads/staticthreads.exp: handle SIG32 helps
+PASS: gdb.threads/staticthreads.exp: info threads
+PASS: gdb.threads/staticthreads.exp: GDB exits with static thread program
+Running ./gdb.threads/switch-threads.exp ...
+PASS: gdb.threads/switch-threads.exp: successfully compiled posix threads test case
+PASS: gdb.threads/switch-threads.exp: continue to breakpoint: continue to thread_func
+PASS: gdb.threads/switch-threads.exp: next
+Running ./gdb.threads/threadapply.exp ...
+PASS: gdb.threads/threadapply.exp: successfully compiled posix threads test case
+PASS: gdb.threads/threadapply.exp: b 62
+PASS: gdb.threads/threadapply.exp: continue
+PASS: gdb.threads/threadapply.exp: macro details
+PASS: gdb.threads/threadapply.exp: defining macro
+PASS: gdb.threads/threadapply.exp: set backtrace limit 3
+PASS: gdb.threads/threadapply.exp: thread apply all backthread
+PASS: gdb.threads/threadapply.exp: step to the thread_function
+PASS: gdb.threads/threadapply.exp: go up in the stack frame
+PASS: gdb.threads/threadapply.exp: run a simple print command on all threads
+PASS: gdb.threads/threadapply.exp: go down and check selected frame
+Running ./gdb.threads/thread_check.exp ...
+PASS: gdb.threads/thread_check.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread_check.exp: breakpoint at tf
+PASS: gdb.threads/thread_check.exp: continue to tf
+PASS: gdb.threads/thread_check.exp: backtrace from thread function
+Running ./gdb.threads/thread_events.exp ...
+Running ./gdb.threads/thread-execl.exp ...
+Running ./gdb.threads/thread-find.exp ...
+PASS: gdb.threads/thread-find.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread-find.exp: set print sevenbit-strings
+PASS: gdb.threads/thread-find.exp: continue to breakpoint: main thread's sleep
+PASS: gdb.threads/thread-find.exp: info threads
+PASS: gdb.threads/thread-find.exp: name thread 1
+PASS: gdb.threads/thread-find.exp: name thread 2
+PASS: gdb.threads/thread-find.exp: name thread 3
+PASS: gdb.threads/thread-find.exp: name thread 4
+PASS: gdb.threads/thread-find.exp: name thread 5
+PASS: gdb.threads/thread-find.exp: name thread 6
+PASS: gdb.threads/thread-find.exp: collect thread id
+PASS: gdb.threads/thread-find.exp: got thread ids
+PASS: gdb.threads/thread-find.exp: collect process id
+PASS: gdb.threads/thread-find.exp: collect lwp id
+PASS: gdb.threads/thread-find.exp: find thread name 6
+PASS: gdb.threads/thread-find.exp: find thread name 5
+PASS: gdb.threads/thread-find.exp: find thread name 4
+PASS: gdb.threads/thread-find.exp: find thread name 3
+PASS: gdb.threads/thread-find.exp: find thread name 2
+PASS: gdb.threads/thread-find.exp: find thread name 1
+PASS: gdb.threads/thread-find.exp: find thread id 6
+PASS: gdb.threads/thread-find.exp: find thread id 5
+PASS: gdb.threads/thread-find.exp: find thread id 4
+PASS: gdb.threads/thread-find.exp: find thread id 3
+PASS: gdb.threads/thread-find.exp: find thread id 2
+PASS: gdb.threads/thread-find.exp: find thread id 1
+PASS: gdb.threads/thread-find.exp: no thread
+PASS: gdb.threads/thread-find.exp: test regular exp
+PASS: gdb.threads/thread-find.exp: info threads 2 4 6
+PASS: gdb.threads/thread-find.exp: info threads 3-5
+PASS: gdb.threads/thread-find.exp: test inverted range
+PASS: gdb.threads/thread-find.exp: info threads 3-3
+PASS: gdb.threads/thread-find.exp: info thread foo
+PASS: gdb.threads/thread-find.exp: info thread foo -1
+Running ./gdb.threads/thread-specific.exp ...
+PASS: gdb.threads/thread-specific.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread-specific.exp: set print sevenbit-strings
+PASS: gdb.threads/thread-specific.exp: set width 0
+PASS: gdb.threads/thread-specific.exp: thread var when not running
+PASS: gdb.threads/thread-specific.exp: continue to breakpoint: all threads started
+PASS: gdb.threads/thread-specific.exp: get threads list
+PASS: gdb.threads/thread-specific.exp: thread var in main
+PASS: gdb.threads/thread-specific.exp: breakpoint 59 main thread
+PASS: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint
+PASS: gdb.threads/thread-specific.exp: found breakpoint for thread number
+PASS: gdb.threads/thread-specific.exp: thread var at break
+Running ./gdb.threads/thread-unwindonsignal.exp ...
+PASS: gdb.threads/thread-unwindonsignal.exp: successfully compiled posix threads test case
+PASS: gdb.threads/thread-unwindonsignal.exp: breakpoint on all_threads_running
+PASS: gdb.threads/thread-unwindonsignal.exp: run to all_threads_running
+PASS: gdb.threads/thread-unwindonsignal.exp: setting unwindonsignal
+PASS: gdb.threads/thread-unwindonsignal.exp: showing unwindonsignal
+PASS: gdb.threads/thread-unwindonsignal.exp: hand-call interrupted by signal in another thread
+PASS: gdb.threads/thread-unwindonsignal.exp: dummy stack frame present
+PASS: gdb.threads/thread-unwindonsignal.exp: wrong thread not unwound
+PASS: gdb.threads/thread-unwindonsignal.exp: finish hand-call
+PASS: gdb.threads/thread-unwindonsignal.exp: dummy frame popped
+PASS: gdb.threads/thread-unwindonsignal.exp: continue until exit
+Running ./gdb.threads/threxit-hop-specific.exp ...
+PASS: gdb.threads/threxit-hop-specific.exp: successfully compiled posix threads test case
+PASS: gdb.threads/threxit-hop-specific.exp: continue to thread start
+PASS: gdb.threads/threxit-hop-specific.exp: set thread specific breakpoint
+PASS: gdb.threads/threxit-hop-specific.exp: get past the thread specific breakpoint
+Running ./gdb.threads/tls.exp ...
+PASS: gdb.threads/tls.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls.exp: set breakpoint at all threads
+PASS: gdb.threads/tls.exp: set breakpoint at synch point
+PASS: gdb.threads/tls.exp: set breakpoint at exit
+PASS: gdb.threads/tls.exp: continue to first thread: get to thread
+PASS: gdb.threads/tls.exp: at least one th in spin while stopped at first th
+PASS: gdb.threads/tls.exp: first thread print me
+PASS: gdb.threads/tls.exp: first thread local storage
+PASS: gdb.threads/tls.exp: first another thread local storage
+PASS: gdb.threads/tls.exp: first info address a_thread_local
+PASS: gdb.threads/tls.exp: first info address another_thread_local
+PASS: gdb.threads/tls.exp: continue to second thread
+PASS: gdb.threads/tls.exp: at least one th in spin while stopped at second th
+PASS: gdb.threads/tls.exp: second thread print me
+PASS: gdb.threads/tls.exp: second thread local storage
+PASS: gdb.threads/tls.exp: second another thread local storage
+PASS: gdb.threads/tls.exp: second info address a_thread_local
+PASS: gdb.threads/tls.exp: second info address another_thread_local
+PASS: gdb.threads/tls.exp: continue to third thread
+PASS: gdb.threads/tls.exp: at least one th in spin while stopped at third th
+PASS: gdb.threads/tls.exp: third thread print me
+PASS: gdb.threads/tls.exp: third thread local storage
+PASS: gdb.threads/tls.exp: third another thread local storage
+PASS: gdb.threads/tls.exp: third info address a_thread_local
+PASS: gdb.threads/tls.exp: third info address another_thread_local
+PASS: gdb.threads/tls.exp: continue to synch point
+PASS: gdb.threads/tls.exp: get number of threads
+PASS: gdb.threads/tls.exp: selected thread: 1
+PASS: gdb.threads/tls.exp: backtrace of thread number 1 not relevant
+PASS: gdb.threads/tls.exp: selected thread: 2
+PASS: gdb.threads/tls.exp: backtrace of thread number 2 in spin
+PASS: gdb.threads/tls.exp: selected thread: 3
+PASS: gdb.threads/tls.exp: backtrace of thread number 3 in spin
+PASS: gdb.threads/tls.exp: selected thread: 4
+PASS: gdb.threads/tls.exp: backtrace of thread number 4 in spin
+PASS: gdb.threads/tls.exp: selected thread: 4
+PASS: gdb.threads/tls.exp: thread 4 up
+PASS: gdb.threads/tls.exp: 4 thread print me
+PASS: gdb.threads/tls.exp: 4 thread local storage
+PASS: gdb.threads/tls.exp: 4 another thread local storage
+PASS: gdb.threads/tls.exp: 4 info address a_thread_local
+PASS: gdb.threads/tls.exp: 4 info address another_thread_local
+PASS: gdb.threads/tls.exp: selected thread: 2
+PASS: gdb.threads/tls.exp: thread 2 up
+PASS: gdb.threads/tls.exp: 2 thread print me
+PASS: gdb.threads/tls.exp: 2 thread local storage
+PASS: gdb.threads/tls.exp: 2 another thread local storage
+PASS: gdb.threads/tls.exp: 2 info address a_thread_local
+PASS: gdb.threads/tls.exp: 2 info address another_thread_local
+PASS: gdb.threads/tls.exp: selected thread: 3
+PASS: gdb.threads/tls.exp: thread 3 up
+PASS: gdb.threads/tls.exp: 3 thread print me
+PASS: gdb.threads/tls.exp: 3 thread local storage
+PASS: gdb.threads/tls.exp: 3 another thread local storage
+PASS: gdb.threads/tls.exp: 3 info address a_thread_local
+PASS: gdb.threads/tls.exp: 3 info address another_thread_local
+PASS: gdb.threads/tls.exp: threads exited
+PASS: gdb.threads/tls.exp: Expect only base thread at end
+PASS: gdb.threads/tls.exp: info address a_global
+PASS: gdb.threads/tls.exp: info address me
+PASS: gdb.threads/tls.exp: p a_thread_local
+FAIL: gdb.threads/tls.exp: p file2_thread_local
+PASS: gdb.threads/tls.exp: info address file2_thread_local
+PASS: gdb.threads/tls.exp: p a_thread_local second time
+PASS: gdb.threads/tls.exp: info address a_thread_local
+Running ./gdb.threads/tls-nodebug.exp ...
+PASS: gdb.threads/tls-nodebug.exp: successfully compiled posix threads test case
+FAIL: gdb.threads/tls-nodebug.exp: thread local storage
+Running ./gdb.threads/tls-shared.exp ...
+PASS: gdb.threads/tls-shared.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls-shared.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls-shared.exp: print thread local storage variable
+PASS: gdb.threads/tls-shared.exp: ptype of thread local storage variable
+PASS: gdb.threads/tls-shared.exp: print storage info for thread local storage variable
+PASS: gdb.threads/tls-shared.exp: break at and of main
+PASS: gdb.threads/tls-shared.exp: continue to break
+PASS: gdb.threads/tls-shared.exp: print result
+Running ./gdb.threads/tls-var.exp ...
+PASS: gdb.threads/tls-var.exp: successfully compiled posix threads test case
+PASS: gdb.threads/tls-var.exp: whatis tls_var
+PASS: gdb.threads/tls-var.exp: print tls_var
+Running ./gdb.threads/watchpoint-fork.exp ...
+KFAIL: gdb.threads/watchpoint-fork.exp: gdbserver does not support debugging across fork (PRMS: remote/13584)
+Running ./gdb.threads/watchthreads2.exp ...
+Running ./gdb.threads/watchthreads.exp ...
+Running ./gdb.threads/watchthreads-reorder.exp ...
+Running ./gdb.trace/actions.exp ...
+PASS: gdb.trace/actions.exp: 5.1a: set three tracepoints, no actions
+PASS: gdb.trace/actions.exp: 5.1b: set actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.1c: verify actions set for first tracepoint
+PASS: gdb.trace/actions.exp: 5.1d: set actions for second tracepoint
+PASS: gdb.trace/actions.exp: 5.1e: verify actions set for second tracepoint
+PASS: gdb.trace/actions.exp: 5.2a: set actions for last (default) tracepoint
+PASS: gdb.trace/actions.exp: 5.2b: verify actions set for second tracepoint
+PASS: gdb.trace/actions.exp: 5.3a: reset actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.3b: verify actions set for first tracepoint
+PASS: gdb.trace/actions.exp: 5.4: 'end' command out of context
+PASS: gdb.trace/actions.exp: 5.5a: set empty actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.5c: verify NO actions for first tracepoint
+PASS: gdb.trace/actions.exp: 5.6: actions for invalid tracepoint number
+PASS: gdb.trace/actions.exp: 5.7: invalid action
+PASS: gdb.trace/actions.exp: 5.8a: help actions
+PASS: gdb.trace/actions.exp: 5.8b: help collect
+PASS: gdb.trace/actions.exp: 5.8c: help while-stepping
+PASS: gdb.trace/actions.exp: 5.8d: help end
+PASS: gdb.trace/actions.exp: 5.9a: set default-collect
+PASS: gdb.trace/actions.exp: 5.9b: show default-collect
+PASS: gdb.trace/actions.exp: 5.9c: set default-collect
+PASS: gdb.trace/actions.exp: Create a trace state variable
+PASS: gdb.trace/actions.exp: 5.10a: set teval action for first tracepoint
+PASS: gdb.trace/actions.exp: 5.10a: set teval action for second tracepoint
+PASS: gdb.trace/actions.exp: 5.10a: verify teval actions set for two tracepoints
+Running ./gdb.trace/ax.exp ...
+PASS: gdb.trace/ax.exp: maint agent 12
+PASS: gdb.trace/ax.exp: maint agent gdb_char_test
+PASS: gdb.trace/ax.exp: maint agent gdb_arr_test[12]
+PASS: gdb.trace/ax.exp: maint agent gdb_arr_test[gdb_short_test]
+PASS: gdb.trace/ax.exp: maint agent gdb_struct1_test
+PASS: gdb.trace/ax.exp: maint agent gdb_struct1_test.s
+PASS: gdb.trace/ax.exp: maint agent gdb_struct1_test.arr[gdb_struct1_test.c]
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test->l
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test->bfield
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test + gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test - gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test * gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test / gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_structp_test + 1
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test == gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test != gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test < gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test <= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test > gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent gdb_long_test >= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent &gdb_long_test == &gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent &gdb_long_test < &gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval 12
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_char_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_arr_test[12]
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_arr_test[gdb_short_test]
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_struct1_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_struct1_test.s
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_struct1_test.arr[gdb_struct1_test.c]
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test->l
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test->bfield
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test + gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test - gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test * gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test / gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_structp_test + 1
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test == gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test != gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test < gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test <= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test > gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval gdb_long_test >= gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval &gdb_long_test == &gdb_short_test
+PASS: gdb.trace/ax.exp: maint agent-eval &gdb_long_test < &gdb_short_test
+Running ./gdb.trace/backtrace.exp ...
+PASS: gdb.trace/backtrace.exp: 8.6: setup TP to collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: setup TP to collect regs, args, and locals
+PASS: gdb.trace/backtrace.exp: 8.6: setup TP to collect stack mem cast expr
+PASS: gdb.trace/backtrace.exp: run trace experiment
+PASS: gdb.trace/backtrace.exp: init: make sure not debugging any trace frame
+PASS: gdb.trace/backtrace.exp: 8.6: find start frame
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect nothing
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 1
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 2
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect args and locals
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 4
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect stack mem expr
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 5
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 2, collect nothing
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 6
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 2, collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 7
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 2, collect args and locals
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 9
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect stack mem expr
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 10
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 3, collect nothing
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 11
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 3, collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 12
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 3, collect args and locals
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 14
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect stack mem expr
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 15
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 4, collect nothing
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 16
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 4, collect regs
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 17
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 4, collect args and locals
+PASS: gdb.trace/backtrace.exp: 8.6: find frame 19
+PASS: gdb.trace/backtrace.exp: 8.6: Backtrace, depth == 1, collect stack mem expr
+PASS: gdb.trace/backtrace.exp: 1.13: trace in recursion: depth not equal to 3
+Running ./gdb.trace/change-loc.exp ...
+PASS: gdb.trace/change-loc.exp: 1 trace: delete break 1
+PASS: gdb.trace/change-loc.exp: 1 trace: next
+PASS: gdb.trace/change-loc.exp: 1 trace: set tracepoint on main
+PASS: gdb.trace/change-loc.exp: 1 trace: breakpoint on marker
+PASS: gdb.trace/change-loc.exp: 1 trace: tstart
+PASS: gdb.trace/change-loc.exp: 1 trace: continue to marker 1
+PASS: gdb.trace/change-loc.exp: 1 trace: set tracepoint on set_tracepoint
+PASS: gdb.trace/change-loc.exp: 1 trace: set action for tracepoint
+FAIL: gdb.trace/change-loc.exp: 1 trace: tracepoint with two locations
+PASS: gdb.trace/change-loc.exp: 1 trace: continue to marker 2
+FAIL: gdb.trace/change-loc.exp: 1 trace: tracepoint with three locations
+PASS: gdb.trace/change-loc.exp: 1 trace: continue to marker 3
+FAIL: gdb.trace/change-loc.exp: 1 trace: tracepoint with two locations (unload)
+PASS: gdb.trace/change-loc.exp: 1 trace: tstop
+FAIL: gdb.trace/change-loc.exp: 1 trace: tfind frame 0
+PASS: gdb.trace/change-loc.exp: 1 trace: tfind
+PASS: gdb.trace/change-loc.exp: 2 trace: set pending tracepoint
+PASS: gdb.trace/change-loc.exp: 2 trace: set action for tracepoint
+PASS: gdb.trace/change-loc.exp: 2 trace: single pending tracepoint info (without symbols)
+PASS: gdb.trace/change-loc.exp: 2 trace: tracepoint with one location
+PASS: gdb.trace/change-loc.exp: 2 trace: run to main
+PASS: gdb.trace/change-loc.exp: 2 trace: delete break 2
+FAIL: gdb.trace/change-loc.exp: 2 trace: tracepoint with two locations
+PASS: gdb.trace/change-loc.exp: 2 trace: breakpoint on marker
+PASS: gdb.trace/change-loc.exp: 2 trace: tstart
+PASS: gdb.trace/change-loc.exp: 2 trace: continue to marker 1
+PASS: gdb.trace/change-loc.exp: 2 trace: continue to marker 2
+FAIL: gdb.trace/change-loc.exp: 2 trace: tracepoint with three locations
+PASS: gdb.trace/change-loc.exp: 2 trace: continue to marker 3
+FAIL: gdb.trace/change-loc.exp: 2 trace: tracepoint with two locations (unload)
+PASS: gdb.trace/change-loc.exp: 2 trace: tstop
+PASS: gdb.trace/change-loc.exp: 2 trace: tfind frame 0
+FAIL: gdb.trace/change-loc.exp: 2 trace: tfind frame 1
+FAIL: gdb.trace/change-loc.exp: 2 trace: tfind frame 2
+PASS: gdb.trace/change-loc.exp: 2 trace: tfind
+ERROR: (DejaGnu) proc "else\{" does not exist.
+Running ./gdb.xml/tdesc-arch.exp ...
+PASS: gdb.xml/tdesc-arch.exp: read valid architectures
+PASS: gdb.xml/tdesc-arch.exp: read default architecture
+PASS: gdb.xml/tdesc-arch.exp: set tdesc filename tdesc-arch.xml (first architecture)
+PASS: gdb.xml/tdesc-arch.exp: show architecture (first architecture)
+PASS: gdb.xml/tdesc-arch.exp: set tdesc filename tdesc-arch.xml (second architecture)
+PASS: gdb.xml/tdesc-arch.exp: show architecture (second architecture)
+PASS: gdb.xml/tdesc-arch.exp: set tdesc filename tdesc-arch.xml (invalid architecture)
+PASS: gdb.xml/tdesc-arch.exp: show architecture (invalid architecture)
+Running ./gdb.xml/tdesc-errors.exp ...
+PASS: gdb.xml/tdesc-errors.exp: set tdesc filename gdb.xml/tdesc-bogus.xml
+PASS: gdb.xml/tdesc-errors.exp: set tdesc filename gdb.xml/tdesc-unknown.xml
+Running ./gdb.xml/tdesc-regs.exp ...
+PASS: gdb.xml/tdesc-regs.exp: set tdesc file single-reg.xml
+PASS: gdb.xml/tdesc-regs.exp: set tdesc filename regs.xml - from extra-regs.xml
+PASS: gdb.xml/tdesc-regs.exp: ptype $extrareg
+PASS: gdb.xml/tdesc-regs.exp: ptype $uintreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $vecreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $unionreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $unionreg.v4
+PASS: gdb.xml/tdesc-regs.exp: ptype $structreg
+PASS: gdb.xml/tdesc-regs.exp: ptype $structreg.v4
+PASS: gdb.xml/tdesc-regs.exp: ptype $bitfields
+PASS: gdb.xml/tdesc-regs.exp: set tdesc filename regs.xml - from core-only.xml
+PASS: gdb.xml/tdesc-regs.exp: ptype $extrareg
+Running ./gdb.xml/tdesc-xinclude.exp ...
+PASS: gdb.xml/tdesc-xinclude.exp: set tdesc filename gdb.xml/includes.xml
+PASS: gdb.xml/tdesc-xinclude.exp: set tdesc filename gdb.xml/bad-include.xml
+PASS: gdb.xml/tdesc-xinclude.exp: set tdesc filename gdb.xml/loop.xml
+
+		=== gdb Summary ===
+
+# of expected passes		17760
+# of unexpected failures	276
+# of unexpected successes	1
+# of expected failures		32
+# of known failures		44
+# of untested testcases		50
+# of unresolved testcases	13
+# of unsupported tests		106
+/var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../../gdb/gdb version  7.6.1 -nw -nx -data-directory /var/tmp/portage/cross-x86_64-cros-linux-gnu/gdb-7.6.1/work/gdb-7.6.1/gdb/testsuite/../data-directory 
+
diff --git a/dejagnu/gdb_dejagnu.py b/dejagnu/gdb_dejagnu.py
new file mode 100755
index 0000000..c01d909
--- /dev/null
+++ b/dejagnu/gdb_dejagnu.py
@@ -0,0 +1,357 @@
+#! /usr/bin/python
+
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""The gdb dejagnu test wrapper."""
+import optparse
+import os
+from os import path
+import re
+import shutil
+import stat
+import sys
+import tempfile
+import time
+
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import misc
+
+from run_dejagnu import TryAcquireMachine
+
+_VALID_TEST_RESULTS = ['FAIL', 'UNRESOLVED', 'XPASS', 'ERROR', 'UNSUPPORTED',
+                       'PASS']
+
+
+def ProcessArguments(argv):
+  """Processing/validating script arguments."""
+  parser = optparse.OptionParser(description=(
+      'Launches gdb dejagnu test in chroot for chromeos toolchain, compares '
+      'the test result with a repository baseline and prints out the result.'),
+                                 usage='run_dejagnu options')
+  parser.add_option('-c',
+                    '--chromeos_root',
+                    dest='chromeos_root',
+                    help='Required. Specify chromeos root')
+  parser.add_option('-m',
+                    '--mount',
+                    dest='mount',
+                    help=('Specify gdb source to mount instead of "auto". '
+                          'Under "auto" mode, which is the default - gdb is '
+                          'checked out and built automatically at default '
+                          'directories. Under "mount" mode '
+                          '- the gdb_source is set to "$chromeos_'
+                          'root/chroot/usr/local/toolchain_root/gdb", which is '
+                          'the mount point for this option value.'))
+  parser.add_option('-b',
+                    '--board',
+                    dest='board',
+                    help=('Required. Specify board.'))
+  parser.add_option('-r',
+                    '--remote',
+                    dest='remote',
+                    help=('Required. Specify addresses/names of the board, '
+                          'seperate each address/name using comma(\',\').'))
+  parser.add_option('--cleanup',
+                    dest='cleanup',
+                    default=None,
+                    help=('Optional. Values to this option could be '
+                          '\'chroot\' (delete chroot) and '
+                          '\'chromeos\' (delete the whole chromeos tree).'))
+
+  options, args = parser.parse_args(argv)
+
+  if not options.chromeos_root:
+    raise SyntaxError('Missing argument for --chromeos_root.')
+  if not options.remote:
+    raise SyntaxError('Missing argument for --remote.')
+  if not options.board:
+    raise SyntaxError('Missing argument for --board.')
+  if options.cleanup == 'mount' and not options.mount:
+    raise SyntaxError('--cleanup=\'mount\' not valid unless --mount is given.')
+  if options.cleanup and not (options.cleanup == 'mount' or
+                              options.cleanup == 'chroot' or
+                              options.cleanup == 'chromeos'):
+    raise SyntaxError('Invalid option value for --cleanup')
+
+  return options
+
+
+class DejagnuExecuter(object):
+  """The class wrapper for dejagnu test executer."""
+
+  def __init__(self, base_dir, source_dir, chromeos_root, remote, board,
+               cleanup):
+    self._l = logger.GetLogger()
+    self._chromeos_root = chromeos_root
+    self._chromeos_chroot = path.join(chromeos_root, 'chroot')
+
+    self._remote = remote
+    self._board = board
+    ## Compute target from board
+    self._target = misc.GetCtargetFromBoard(board, chromeos_root)
+    if not self._target:
+      raise RuntimeError('Unsupported board "%s"' % board)
+    self._executer = command_executer.GetCommandExecuter()
+    self._base_dir = base_dir
+    self._tmp_abs = None
+    self._cleanup = cleanup
+    self._sshflag = ('-o StrictHostKeyChecking=no ' + '-o CheckHostIP=no ' +
+                     '-o UserKnownHostsFile=$(mktemp) ')
+
+    if source_dir:
+      self._source_dir = source_dir
+      self._mount_flag = 'USE="mounted_sources"'
+      self.MountSource()
+    else:
+      self._source_dir = None
+      self._mount_flag = ''
+
+  def SetupTestingDir(self):
+    self._tmp_abs = tempfile.mkdtemp(
+        prefix='dejagnu_',
+        dir=path.join(self._chromeos_chroot, 'tmp'))
+    self._tmp = self._tmp_abs[len(self._chromeos_chroot):]
+    self._tmp_testing_rsa = path.join(self._tmp, 'testing_rsa')
+    self._tmp_testing_rsa_abs = path.join(self._tmp_abs, 'testing_rsa')
+
+  def PrepareTestingRsaKeys(self):
+    if not path.isfile(self._tmp_testing_rsa_abs):
+      shutil.copy(
+          path.join(self._chromeos_root,
+                    'src/scripts/mod_for_test_scripts/ssh_keys/testing_rsa'),
+          self._tmp_testing_rsa_abs)
+      os.chmod(self._tmp_testing_rsa_abs, stat.S_IRUSR)
+
+  def PrepareTestFiles(self):
+    """Prepare site.exp and board exp files."""
+    # Create the boards directory.
+    os.mkdir('%s/boards' % self._tmp_abs)
+
+    # Generate the chromeos.exp file.
+    with open('%s/boards/gdb.exp.in' % self._base_dir, 'r') as template_file:
+      content = template_file.read()
+
+    substitutions = dict({
+        '__boardname__': self._board,
+        '__board_hostname__': self._remote,
+        '__tmp_testing_rsa__': self._tmp_testing_rsa,
+        '__tmp_dir__': self._tmp
+    })
+    for pat, sub in substitutions.items():
+      content = content.replace(pat, sub)
+
+    board_file_name = '%s/boards/%s.exp' % (self._tmp_abs, self._board)
+    with open(board_file_name, 'w') as board_file:
+      board_file.write(content)
+
+    # Generate the site file
+    with open('%s/site.exp' % self._tmp_abs, 'w') as site_file:
+      site_file.write('set target_list "%s"\n' % self._board)
+
+    with open('%s/boards/gdbserver.sh.in' % self._base_dir, 'r') \
+        as template_file:
+      content = template_file.read()
+    substitutions = dict({
+        '__board_hostname__': self._remote,
+        '__tmp_testing_rsa__': self._tmp_testing_rsa,
+        '__tmp_dir__': self._tmp
+    })
+    for pat, sub in substitutions.items():
+      content = content.replace(pat, sub)
+
+    gdbserver_file_name = '%s/boards/gdbserver.sh' % (self._tmp_abs)
+    with open(gdbserver_file_name, 'w') as board_file:
+      board_file.write(content)
+
+    st = os.stat(gdbserver_file_name)
+    os.chmod(gdbserver_file_name, st.st_mode | stat.S_IXGRP | stat.S_IXUSR)
+
+  def PrepareGdb(self):
+    self.PrepareGdbDefault()
+
+  def PrepareGdbDefault(self):
+    ret = self._executer.ChrootRunCommandWOutput(
+        self._chromeos_root, 'equery w cross-%s/gdb' % self._target)[1]
+    ret = path.basename(ret.strip())
+
+    matcher = re.match(r'(.*).ebuild', ret)
+    if matcher:
+      gdb_reversion = matcher.group(1)
+    else:
+      raise RuntimeError('Failed to get gdb reversion.')
+    gdb_version = gdb_reversion.split('-r')[0]
+    gdb_portage_dir = '/var/tmp/portage/cross-%s/%s/work' % (self._target,
+                                                             gdb_reversion)
+    self._gdb_source_dir = path.join(gdb_portage_dir, gdb_version)
+
+    ret = self._executer.ChrootRunCommand(self._chromeos_root, (
+        'sudo %s ebuild $(equery w cross-%s/gdb) clean compile' % (
+            self._mount_flag, self._target)))
+    if ret:
+      raise RuntimeError('ebuild gdb failed.')
+
+  def PrepareGdbserver(self):
+    self.PrepareGdbserverDefault()
+
+  def PrepareGdbserverDefault(self):
+    cmd = ('./setup_board --board {0}; '
+           '{1} emerge-{0} gdb'.format(self._board, self._mount_flag))
+    ret = self._executer.ChrootRunCommand(self._chromeos_root,
+                                          cmd,
+                                          print_to_console=True)
+    if ret:
+      raise RuntimeError('ebuild gdbserver failed.')
+
+    cmd = ('scp -i {0}  {1} '
+           '/build/{2}/usr/bin/gdbserver root@{3}:/usr/local/bin/'.format(
+               self._tmp_testing_rsa, self._sshflag, self._board, self._remote))
+    ret = self._executer.ChrootRunCommand(self._chromeos_root,
+                                          cmd,
+                                          print_to_console=True)
+    if ret:
+      raise RuntimeError('copy gdbserver failed.')
+
+    if self._mount_flag:
+      self.MountSource(unmount=False)
+
+  def Cleanup(self):
+    if not self._cleanup:
+      return
+
+    if self._cleanup == 'chroot' or self._cleanup == 'chromeos':
+      self._l.LogOutput('[Cleanup]: Deleting chroot inside \'{0}\''.format(
+          self._chromeos_root))
+      command = 'cd %s; cros_sdk --delete' % self._chromeos_root
+      rv = self._executer.RunCommand(command)
+      if rv:
+        self._l.LogWarning('Warning - failed to delete chroot.')
+      # Delete .cache - crosbug.com/34956
+      command = 'sudo rm -fr %s' % os.path.join(self._chromeos_root, '.cache')
+      rv = self._executer.RunCommand(command)
+      if rv:
+        self._l.LogWarning('Warning - failed to delete \'.cache\'.')
+
+    if self._cleanup == 'chromeos':
+      self._l.LogOutput('[Cleanup]: Deleting chromeos tree \'{0}\' ...'.format(
+          self._chromeos_root))
+      command = 'rm -fr {0}'.format(self._chromeos_root)
+      rv = self._executer.RunCommand(command)
+      if rv:
+        self._l.LogWarning('Warning - failed to remove chromeos tree.')
+
+  def MakeCheck(self):
+    cmd = ('ssh -i {0} {1}  root@{2} "reboot && exit"'
+           .format(self._tmp_testing_rsa, self._sshflag, self._remote))
+    self._executer.ChrootRunCommand(self._chromeos_root, cmd)
+    time.sleep(40)
+
+    cmd = ('ssh -i {0} {1}  root@{2} '
+           '"iptables -A INPUT -p tcp --dport 1234 -j ACCEPT"'.format(
+               self._tmp_testing_rsa, self._sshflag, self._remote))
+    self._executer.ChrootRunCommand(self._chromeos_root, cmd)
+
+    cmd = ('cd %s ; '
+           'DEJAGNU=%s make check' % (path.join(self._gdb_source_dir, 'gdb'),
+                                      path.join(self._tmp, 'site.exp')))
+    ret = self._executer.ChrootRunCommand(self._chromeos_root, cmd)
+    if ret:
+      raise RuntimeError('Make check failed.')
+
+  # This method ensures necessary mount points before executing chroot comamnd.
+  def MountSource(self, unmount=False):
+    script = os.path.join(self._base_dir, 'build_tc.py')
+    if unmount:
+      mount = '-u'
+    else:
+      mount = '-m'
+    cmd = ('python {0} --chromeos_root={1} '
+           '--gdb_dir={2} --board={3} {4}'.format(script, self._chromeos_root,
+                                                  self._source_dir, self._board,
+                                                  mount))
+    rv = self._executer.RunCommand(cmd)
+    if rv:
+      raise RuntimeError('Mount source failed.')
+
+  def ResultValidate(self):
+    self.PrepareResult()
+    result = []
+    for key, value in self.base_result.items():
+      if 'PASS' not in value:
+        continue
+      if key not in self.test_result:
+        continue
+      test_result = self.test_result[key]
+      if 'PASS' not in test_result:
+        result.append(key)
+    return result
+
+  def PrepareResult(self):
+    test_output = os.path.join(self._gdb_source_dir, 'gdb', 'testsuite',
+                               'gdb.sum')
+    test_output = misc.GetOutsideChrootPath(self._chromeos_root, test_output)
+    base_output = os.path.join(self._base_dir, 'gdb_baseline', self._target)
+
+    self.test_result = self.ParseResult(test_output)
+    self.base_result = self.ParseResult(base_output)
+
+  def ParseResult(self, gdb_sum):
+    result = {}
+    multi_keys = {}
+    with open(gdb_sum) as input_sum:
+      for line in input_sum:
+        line = line.strip()
+        r = line.split(':', 1)
+        if r[0] in _VALID_TEST_RESULTS:
+          key = r[1]
+          if r[1] in result:
+            if r[1] in multi_keys:
+              multi_keys[r[1]] += 1
+            else:
+              multi_keys[r[1]] = 2
+            key = r[1] + '_____{0}_____'.format(multi_keys[r[1]])
+          result[key] = r[0]
+    return result
+
+
+def Main(argv):
+  opts = ProcessArguments(argv)
+  available_machine = TryAcquireMachine(opts.remote)
+  executer = DejagnuExecuter(
+      misc.GetRoot(argv[0])[0], opts.mount, opts.chromeos_root,
+      available_machine._name, opts.board, opts.cleanup)
+  # Return value is a 3- or 4-element tuple
+  #   element#1 - exit code
+  #   element#2 - stdout
+  #   element#3 - stderr
+  #   element#4 - exception infor
+  # Some other scripts need these detailed information.
+  ret = (1, '', '')
+  try:
+    executer.SetupTestingDir()
+    executer.PrepareTestingRsaKeys()
+    executer.PrepareTestFiles()
+    executer.PrepareGdb()
+    executer.PrepareGdbserver()
+    executer.MakeCheck()
+    result = executer.ResultValidate()
+    print result
+    if result:
+      ret = (1, result, '')
+    else:
+      ret = (0, '', '')
+
+  except Exception as e:
+    # At least log the exception on console.
+    print e
+    # The #4 element encodes the runtime exception.
+    ret = (1, '', '', 'Exception happened during execution: \n' + str(e))
+  finally:
+    executer.Cleanup()
+    return ret
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)[0]
+  sys.exit(retval)
diff --git a/dejagnu/run_dejagnu.py b/dejagnu/run_dejagnu.py
new file mode 100755
index 0000000..b4cbc8f
--- /dev/null
+++ b/dejagnu/run_dejagnu.py
@@ -0,0 +1,418 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Tool script for auto dejagnu."""
+
+__author__ = 'shenhan@google.com (Han Shen)'
+
+import getpass
+import optparse
+import os
+from os import path
+import re
+import shutil
+import stat
+import sys
+import tempfile
+import time
+
+import lock_machine
+import tc_enter_chroot
+from cros_utils import command_executer
+from cros_utils import constants
+from cros_utils import logger
+from cros_utils import misc
+
+
+def ProcessArguments(argv):
+  """Processing/validating script arguments."""
+  parser = optparse.OptionParser(description=(
+      'Launches gcc dejagnu test in chroot for chromeos toolchain, compares '
+      'the test result with a repository baseline and prints out the result.'),
+                                 usage='run_dejagnu options')
+  parser.add_option('-c',
+                    '--chromeos_root',
+                    dest='chromeos_root',
+                    help='Required. Specify chromeos root')
+  parser.add_option('-m',
+                    '--mount',
+                    dest='mount',
+                    help=('Specify gcc source to mount instead of "auto". '
+                          'Under "auto" mode, which is the default - gcc is '
+                          'checked out and built automatically at default '
+                          'directories. Under "mount" mode '
+                          '- the gcc_source is set to "$chromeos_'
+                          'root/chroot/usr/local/toolchain_root/gcc", which is '
+                          'the mount point for this option value, the '
+                          'gcc-build-dir then is computed as '
+                          '"${gcc_source_dir}-build-${ctarget}". In this mode, '
+                          'a complete gcc build must be performed in the '
+                          'computed gcc-build-dir beforehand.'))
+  parser.add_option('-b',
+                    '--board',
+                    dest='board',
+                    help=('Required. Specify board.'))
+  parser.add_option('-r',
+                    '--remote',
+                    dest='remote',
+                    help=('Required. Specify addresses/names of the board, '
+                          'seperate each address/name using comma(\',\').'))
+  parser.add_option('-f',
+                    '--flags',
+                    dest='flags',
+                    help='Optional. Extra run test flags to pass to dejagnu.')
+  parser.add_option('-k',
+                    '--keep',
+                    dest='keep_intermediate_files',
+                    action='store_true',
+                    default=False,
+                    help=('Optional. Default to false. Do not remove dejagnu '
+                          'intermediate files after test run.'))
+  parser.add_option('--cleanup',
+                    dest='cleanup',
+                    default=None,
+                    help=('Optional. Values to this option could be '
+                          '\'mount\' (unmount gcc source and '
+                          'directory directory, '
+                          'only valid when --mount is given), '
+                          '\'chroot\' (delete chroot) and '
+                          '\'chromeos\' (delete the whole chromeos tree).'))
+  parser.add_option('-t',
+                    '--tools',
+                    dest='tools',
+                    default='gcc,g++',
+                    help=('Optional. Specify which tools to check, using '
+                          '","(comma) as separator. A typical value would be '
+                          '"g++" so that only g++ tests are performed. '
+                          'Defaults to "gcc,g++".'))
+
+  options, args = parser.parse_args(argv)
+
+  if not options.chromeos_root:
+    raise SyntaxError('Missing argument for --chromeos_root.')
+  if not options.remote:
+    raise SyntaxError('Missing argument for --remote.')
+  if not options.board:
+    raise SyntaxError('Missing argument for --board.')
+  if options.cleanup == 'mount' and not options.mount:
+    raise SyntaxError('--cleanup=\'mount\' not valid unless --mount is given.')
+  if options.cleanup and not (
+    options.cleanup == 'mount' or \
+      options.cleanup == 'chroot' or options.cleanup == 'chromeos'):
+    raise ValueError('Invalid option value for --cleanup')
+  if options.cleanup and options.keep_intermediate_files:
+    raise SyntaxError('Only one of --keep and --cleanup could be given.')
+
+  return options
+
+
+class DejagnuExecuter(object):
+  """The class wrapper for dejagnu test executer."""
+
+  def __init__(self, base_dir, mount, chromeos_root, remote, board, flags,
+               keep_intermediate_files, tools, cleanup):
+    self._l = logger.GetLogger()
+    self._chromeos_root = chromeos_root
+    self._chromeos_chroot = path.join(chromeos_root, 'chroot')
+    if mount:
+      self._gcc_source_dir_to_mount = mount
+      self._gcc_source_dir = path.join(constants.MOUNTED_TOOLCHAIN_ROOT, 'gcc')
+    else:
+      self._gcc_source_dir = None
+
+    self._remote = remote
+    self._board = board
+    ## Compute target from board
+    self._target = misc.GetCtargetFromBoard(board, chromeos_root)
+    if not self._target:
+      raise ValueError('Unsupported board "%s"' % board)
+    self._executer = command_executer.GetCommandExecuter()
+    self._flags = flags or ''
+    self._base_dir = base_dir
+    self._tmp_abs = None
+    self._keep_intermediate_files = keep_intermediate_files
+    self._tools = tools.split(',')
+    self._cleanup = cleanup
+
+  def SetupTestingDir(self):
+    self._tmp_abs = tempfile.mkdtemp(
+        prefix='dejagnu_',
+        dir=path.join(self._chromeos_chroot, 'tmp'))
+    self._tmp = self._tmp_abs[len(self._chromeos_chroot):]
+    self._tmp_testing_rsa = path.join(self._tmp, 'testing_rsa')
+    self._tmp_testing_rsa_abs = path.join(self._tmp_abs, 'testing_rsa')
+
+  def MakeCheckString(self):
+    return ' '.join(['check-{0}'.format(t) for t in self._tools if t])
+
+  def CleanupIntermediateFiles(self):
+    if self._tmp_abs and path.isdir(self._tmp_abs):
+      if self._keep_intermediate_files:
+        self._l.LogOutput(
+            'Your intermediate dejagnu files are kept, you can re-run '
+            'inside chroot the command:')
+        self._l.LogOutput(
+          ' DEJAGNU={0} make -C {1} {2} RUNTESTFLAGS="--target_board={3} {4}"' \
+            .format(path.join(self._tmp, 'site.exp'), self._gcc_build_dir,
+                    self.MakeCheckString(), self._board, self._flags))
+      else:
+        self._l.LogOutput('[Cleanup] - Removing temp dir - {0}'.format(
+            self._tmp_abs))
+        shutil.rmtree(self._tmp_abs)
+
+  def Cleanup(self):
+    if not self._cleanup:
+      return
+
+    # Optionally cleanup mounted diretory, chroot and chromeos tree.
+    if self._cleanup == 'mount' or self._cleanup == 'chroot' or \
+          self._cleanup == 'chromeos':
+      # No exceptions are allowed from this method.
+      try:
+        self._l.LogOutput('[Cleanup] - Unmounting directories ...')
+        self.MountGccSourceAndBuildDir(unmount=True)
+      except:
+        print 'Warning: failed to unmount gcc source/build directory.'
+
+    if self._cleanup == 'chroot' or self._cleanup == 'chromeos':
+      self._l.LogOutput('[Cleanup]: Deleting chroot inside \'{0}\''.format(
+          self._chromeos_root))
+      command = 'cd %s; cros_sdk --delete' % self._chromeos_root
+      rv = self._executer.RunCommand(command)
+      if rv:
+        self._l.LogWarning('Warning - failed to delete chroot.')
+      # Delete .cache - crosbug.com/34956
+      command = 'sudo rm -fr %s' % os.path.join(self._chromeos_root, '.cache')
+      rv = self._executer.RunCommand(command)
+      if rv:
+        self._l.LogWarning('Warning - failed to delete \'.cache\'.')
+
+    if self._cleanup == 'chromeos':
+      self._l.LogOutput('[Cleanup]: Deleting chromeos tree \'{0}\' ...'.format(
+          self._chromeos_root))
+      command = 'rm -fr {0}'.format(self._chromeos_root)
+      rv = self._executer.RunCommand(command)
+      if rv:
+        self._l.LogWarning('Warning - failed to remove chromeos tree.')
+
+  def PrepareTestingRsaKeys(self):
+    if not path.isfile(self._tmp_testing_rsa_abs):
+      shutil.copy(
+          path.join(self._chromeos_root,
+                    'src/scripts/mod_for_test_scripts/ssh_keys/testing_rsa'),
+          self._tmp_testing_rsa_abs)
+      os.chmod(self._tmp_testing_rsa_abs, stat.S_IRUSR)
+
+  def PrepareTestFiles(self):
+    """Prepare site.exp and board exp files."""
+    # Create the boards directory.
+    os.mkdir('%s/boards' % self._tmp_abs)
+
+    # Generate the chromeos.exp file.
+    with open('%s/chromeos.exp.in' % self._base_dir, 'r') as template_file:
+      content = template_file.read()
+    substitutions = dict({
+        '__boardname__': self._board,
+        '__board_hostname__': self._remote,
+        '__tmp_testing_rsa__': self._tmp_testing_rsa,
+        '__tmp_dir__': self._tmp
+    })
+    for pat, sub in substitutions.items():
+      content = content.replace(pat, sub)
+
+    board_file_name = '%s/boards/%s.exp' % (self._tmp_abs, self._board)
+    with open(board_file_name, 'w') as board_file:
+      board_file.write(content)
+
+    # Generate the site file
+    with open('%s/site.exp' % self._tmp_abs, 'w') as site_file:
+      site_file.write('set target_list "%s"\n' % self._board)
+
+  def PrepareGcc(self):
+    if self._gcc_source_dir:
+      self.PrepareGccFromCustomizedPath()
+    else:
+      self.PrepareGccDefault()
+    self._l.LogOutput('Gcc source dir - {0}'.format(self._gcc_source_dir))
+    self._l.LogOutput('Gcc build dir - {0}'.format(self._gcc_top_build_dir))
+
+  def PrepareGccFromCustomizedPath(self):
+    """Prepare gcc source, build directory from mounted source."""
+    # We have these source directories -
+    #   _gcc_source_dir
+    #     e.g. '/usr/local/toolchain_root/gcc'
+    #   _gcc_source_dir_abs
+    #     e.g. '/somewhere/chromeos.live/chroot/usr/local/toolchain_root/gcc'
+    #   _gcc_source_dir_to_mount
+    #     e.g. '/somewhere/gcc'
+    self._gcc_source_dir_abs = path.join(self._chromeos_chroot,
+                                         self._gcc_source_dir.lstrip('/'))
+    if not path.isdir(self._gcc_source_dir_abs) and \
+          self._executer.RunCommand(
+      'sudo mkdir -p {0}'.format(self._gcc_source_dir_abs)):
+      raise RuntimeError("Failed to create \'{0}\' inside chroot.".format(
+          self._gcc_source_dir))
+    if not (path.isdir(self._gcc_source_dir_to_mount) and
+            path.isdir(path.join(self._gcc_source_dir_to_mount, 'gcc'))):
+      raise RuntimeError('{0} is not a valid gcc source tree.'.format(
+          self._gcc_source_dir_to_mount))
+
+    # We have these build directories -
+    #   _gcc_top_build_dir
+    #     e.g. '/usr/local/toolchain_root/gcc-build-x86_64-cros-linux-gnu'
+    #   _gcc_top_build_dir_abs
+    #     e.g. '/somewhere/chromeos.live/chroo/tusr/local/toolchain_root/
+    #                 gcc-build-x86_64-cros-linux-gnu'
+    #   _gcc_build_dir
+    #     e.g. '/usr/local/toolchain_root/gcc-build-x86_64-cros-linux-gnu/gcc'
+    #   _gcc_build_dir_to_mount
+    #     e.g. '/somewhere/gcc-build-x86_64-cros-linux-gnu'
+    self._gcc_top_build_dir = '{0}-build-{1}'.format(
+        self._gcc_source_dir.rstrip('/'), self._target)
+    self._gcc_build_dir = path.join(self._gcc_top_build_dir, 'gcc')
+    self._gcc_build_dir_to_mount = '{0}-build-{1}'.format(
+        self._gcc_source_dir_to_mount, self._target)
+    self._gcc_top_build_dir_abs = path.join(self._chromeos_chroot,
+                                            self._gcc_top_build_dir.lstrip('/'))
+    if not path.isdir(self._gcc_top_build_dir_abs) and \
+          self._executer.RunCommand(
+      'sudo mkdir -p {0}'.format(self._gcc_top_build_dir_abs)):
+      raise RuntimeError('Failed to create \'{0}\' inside chroot.'.format(
+          self._gcc_top_build_dir))
+    if not (path.isdir(self._gcc_build_dir_to_mount) and path.join(
+        self._gcc_build_dir_to_mount, 'gcc')):
+      raise RuntimeError('{0} is not a valid gcc build tree.'.format(
+          self._gcc_build_dir_to_mount))
+
+    # All check passed. Now mount gcc source and build directories.
+    self.MountGccSourceAndBuildDir()
+
+  def PrepareGccDefault(self):
+    """Auto emerging gcc for building purpose only."""
+    ret = self._executer.ChrootRunCommandWOutput(
+        self._chromeos_root, 'equery w cross-%s/gcc' % self._target)[1]
+    ret = path.basename(ret.strip())
+    # ret is expected to be something like 'gcc-4.6.2-r11.ebuild' or
+    # 'gcc-9999.ebuild' parse it.
+    matcher = re.match('((.*)-r\d+).ebuild', ret)
+    if matcher:
+      gccrevision, gccversion = matcher.group(1, 2)
+    elif ret == 'gcc-9999.ebuild':
+      gccrevision = 'gcc-9999'
+      gccversion = 'gcc-9999'
+    else:
+      raise RuntimeError('Failed to get gcc version.')
+
+    gcc_portage_dir = '/var/tmp/portage/cross-%s/%s/work' % (self._target,
+                                                             gccrevision)
+    self._gcc_source_dir = path.join(gcc_portage_dir, gccversion)
+    self._gcc_top_build_dir = (gcc_portage_dir + '/%s-build-%s') % (
+        gccversion, self._target)
+    self._gcc_build_dir = path.join(self._gcc_top_build_dir, 'gcc')
+    gcc_build_dir_abs = path.join(self._chromeos_root, 'chroot',
+                                  self._gcc_build_dir.lstrip('/'))
+    if not path.isdir(gcc_build_dir_abs):
+      ret = self._executer.ChrootRunCommand(self._chromeos_root, (
+          'ebuild $(equery w cross-%s/gcc) clean prepare compile' % (
+              self._target)))
+      if ret:
+        raise RuntimeError('ebuild gcc failed.')
+
+  def MakeCheck(self):
+    self.MountGccSourceAndBuildDir()
+    cmd = ('cd %s ; '
+           'DEJAGNU=%s make %s RUNTESTFLAGS="--target_board=%s %s"' %
+           (self._gcc_build_dir, path.join(self._tmp, 'site.exp'),
+            self.MakeCheckString(), self._board, self._flags))
+    self._executer.ChrootRunCommand(self._chromeos_root, cmd)
+
+  def ValidateFailures(self):
+    validate_failures_py = path.join(
+        self._gcc_source_dir,
+        'contrib/testsuite-management/validate_failures.py')
+    cmd = 'cd {0} ; {1} --build_dir={0}'.format(self._gcc_top_build_dir,
+                                                validate_failures_py)
+    self.MountGccSourceAndBuildDir()
+    ret = self._executer.ChrootRunCommandWOutput(self._chromeos_root, cmd)
+    if ret[0] != 0:
+      self._l.LogWarning('*** validate_failures.py exited with non-zero code,'
+                         'please run it manually inside chroot - \n'
+                         '    ' + cmd)
+    return ret
+
+  # This method ensures necessary mount points before executing chroot comamnd.
+  def MountGccSourceAndBuildDir(self, unmount=False):
+    mount_points = [tc_enter_chroot.MountPoint(self._gcc_source_dir_to_mount,
+                                               self._gcc_source_dir_abs,
+                                               getpass.getuser(), 'ro'),
+                    tc_enter_chroot.MountPoint(self._gcc_build_dir_to_mount,
+                                               self._gcc_top_build_dir_abs,
+                                               getpass.getuser(), 'rw')]
+    for mp in mount_points:
+      if unmount:
+        if mp.UnMount():
+          raise RuntimeError('Failed to unmount {0}'.format(mp.mount_dir))
+        else:
+          self._l.LogOutput('{0} unmounted successfully.'.format(mp.mount_dir))
+      elif mp.DoMount():
+        raise RuntimeError(
+            'Failed to mount {0} onto {1}'.format(mp.external_dir,
+                                                  mp.mount_dir))
+      else:
+        self._l.LogOutput('{0} mounted successfully.'.format(mp.mount_dir))
+
+# The end of class DejagnuExecuter
+
+
+def TryAcquireMachine(remotes):
+  available_machine = None
+  for r in remotes.split(','):
+    machine = lock_machine.Machine(r)
+    if machine.TryLock(timeout=300, exclusive=True):
+      available_machine = machine
+      break
+    else:
+      logger.GetLogger().LogWarning(
+          '*** Failed to lock machine \'{0}\'.'.format(r))
+  if not available_machine:
+    raise RuntimeError("Failed to acquire one machine from \'{0}\'.".format(
+        remotes))
+  return available_machine
+
+
+def Main(argv):
+  opts = ProcessArguments(argv)
+  available_machine = TryAcquireMachine(opts.remote)
+  executer = DejagnuExecuter(
+      misc.GetRoot(argv[0])[0], opts.mount, opts.chromeos_root,
+      available_machine._name, opts.board, opts.flags,
+      opts.keep_intermediate_files, opts.tools, opts.cleanup)
+  # Return value is a 3- or 4-element tuple
+  #   element#1 - exit code
+  #   element#2 - stdout
+  #   element#3 - stderr
+  #   element#4 - exception infor
+  # Some other scripts need these detailed information.
+  ret = (1, '', '')
+  try:
+    executer.SetupTestingDir()
+    executer.PrepareTestingRsaKeys()
+    executer.PrepareTestFiles()
+    executer.PrepareGcc()
+    executer.MakeCheck()
+    ret = executer.ValidateFailures()
+  except Exception as e:
+    # At least log the exception on console.
+    print e
+    # The #4 element encodes the runtime exception.
+    ret = (1, '', '', 'Exception happened during execution: \n' + str(e))
+  finally:
+    available_machine.Unlock(exclusive=True)
+    executer.CleanupIntermediateFiles()
+    executer.Cleanup()
+    return ret
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)[0]
+  sys.exit(retval)
diff --git a/dejagnu/site.exp b/dejagnu/site.exp
new file mode 100644
index 0000000..beaa958
--- /dev/null
+++ b/dejagnu/site.exp
@@ -0,0 +1 @@
+set target_list "chromeos-machine"
diff --git a/deprecated/build_benchmarks.py b/deprecated/build_benchmarks.py
new file mode 100755
index 0000000..c10c74d
--- /dev/null
+++ b/deprecated/build_benchmarks.py
@@ -0,0 +1,306 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to build ChromeOS benchmarks
+
+Inputs:
+    chromeos_root
+    toolchain_root
+    board
+    [chromeos/cpu/<benchname> |
+     chromeos/browser/[pagecycler|sunspider] |
+     chromeos/startup]
+
+    This script assumes toolchain has already been built in toolchain_root.
+
+    chromeos/cpu/<benchname>
+       - Execute bench.py script within chroot to build benchmark
+       - Copy build results to perflab-bin
+
+    chromeos/startup
+       - Call build_chromeos to build image.
+       - Copy image to perflab-bin
+
+    chromeos/browser/*
+       - Call build_chromebrowser to build image with new browser
+       - Copy image to perflab-bin
+
+"""
+
+from __future__ import print_function
+
+__author__ = 'bjanakiraman@google.com (Bhaskar Janakiraman)'
+
+import argparse
+import os
+import sys
+import re
+
+import build_chromeos
+from cros_utils import command_executer
+from cros_utils import logger
+
+KNOWN_BENCHMARKS = [
+    'chromeos/startup', 'chromeos/browser/pagecycler',
+    'chromeos/browser/sunspider', 'chromeos/browser/v8bench',
+    'chromeos/cpu/bikjmp'
+]
+
+# Commands to build CPU benchmarks.
+
+CPU_BUILDCMD_CLEAN = ('cd /usr/local/toolchain_root/third_party/android_bench/'
+                      'v2_0/CLOSED_SOURCE/%s; python ../../scripts/bench.py '
+                      '--toolchain=/usr/bin --action=clean;')
+
+CPU_BUILDCMD_BUILD = ('cd /usr/local/toolchain_root/third_party/android_bench/'
+                      'v2_0/CLOSED_SOURCE/%s; python ../../scripts/bench.py '
+                      '--toolchain=/usr/bin --add_cflags=%s --add_ldflags=%s '
+                      '--makeopts=%s --action=build')
+
+# Common initializations
+cmd_executer = command_executer.GetCommandExecuter()
+
+
+def Usage(parser, message):
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def CreateRunsh(destdir, benchmark):
+  """Create run.sh script to run benchmark.
+
+  Perflab needs a run.sh that runs the benchmark.
+  """
+  run_cmd = os.path.dirname(os.path.abspath(__file__)) + '/run_benchmarks.py'
+  contents = '#!/bin/sh\n%s $@ %s\n' % (run_cmd, benchmark)
+  runshfile = destdir + '/run.sh'
+  f = open(runshfile, 'w')
+  f.write(contents)
+  f.close()
+  retval = cmd_executer.RunCommand('chmod +x %s' % runshfile)
+  return retval
+
+
+def CreateBinaryCopy(sourcedir, destdir, copy=None):
+  """Create links in perflab-bin/destdir/* to sourcedir/*, instead of copies
+
+  Args:
+    sourcedir: directory from which to copy.
+    destdir: directory to which to copy.
+    copy: when none, make soft links to everything under sourcedir, otherwise
+          copy all to destdir.
+          TODO: remove this parameter if it's determined that CopyFiles can use
+                rsync -L.
+  """
+  retval = 0
+  # check if sourcedir exists
+  if not os.path.exists(sourcedir):
+    logger.GetLogger().LogError('benchmark results %s does not exist.' %
+                                sourcedir)
+    return 1
+
+  # Deal with old copies - save off old ones for now.
+  # Note - if its a link, it doesn't save anything.
+  if os.path.exists(destdir):
+    command = 'rm -rf %s.old' % destdir
+    retval = cmd_executer.RunCommand(command)
+    if retval != 0:
+      return retval
+    command = 'mv %s %s.old' % (destdir, destdir)
+    retval = cmd_executer.RunCommand(command)
+    if retval != 0:
+      return retval
+  os.makedirs(destdir)
+  sourcedir = os.path.abspath(sourcedir)
+  if copy is None:
+    command = 'ln -s %s/* %s' % (sourcedir, destdir)
+  else:
+    command = 'cp -fr %s/* %s' % (sourcedir, destdir)
+  retval = cmd_executer.RunCommand(command)
+  return retval
+
+
+def Main(argv):
+  """Build ChromeOS."""
+  # Common initializations
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      help='Target directory for ChromeOS installation.')
+  parser.add_argument('-t',
+                      '--toolchain_root',
+                      dest='toolchain_root',
+                      help='This is obsolete. Do not use.')
+  parser.add_argument('-r',
+                      '--third_party',
+                      dest='third_party',
+                      help='The third_party dir containing android '
+                           'benchmarks.')
+  parser.add_argument('-C',
+                      '--clean',
+                      dest='clean',
+                      action='store_true',
+                      default=False,
+                      help='Clean up build.')
+  parser.add_argument('-B',
+                      '--build',
+                      dest='build',
+                      action='store_true',
+                      default=False,
+                      help='Build benchmark.')
+  parser.add_argument('-O',
+                      '--only_copy',
+                      dest='only_copy',
+                      action='store_true',
+                      default=False,
+                      help='Only copy to perflab-bin - no builds.')
+  parser.add_argument('--workdir',
+                      dest='workdir',
+                      default='.',
+                      help='Work directory for perflab outputs.')
+  parser.add_argument('--clobber_chroot',
+                      dest='clobber_chroot',
+                      action='store_true',
+                      help='Delete the chroot and start fresh',
+                      default=False)
+  parser.add_argument('--clobber_board',
+                      dest='clobber_board',
+                      action='store_true',
+                      help='Delete the board and start fresh',
+                      default=False)
+  parser.add_argument('--cflags',
+                      dest='cflags',
+                      default='',
+                      help='CFLAGS for the ChromeOS packages')
+  parser.add_argument('--cxxflags',
+                      dest='cxxflags',
+                      default='',
+                      help='CXXFLAGS for the ChromeOS packages')
+  parser.add_argument('--ldflags',
+                      dest='ldflags',
+                      default='',
+                      help='LDFLAGS for the ChromeOS packages')
+  parser.add_argument('--makeopts',
+                      dest='makeopts',
+                      default='',
+                      help='Make options for the ChromeOS packages')
+  parser.add_argument('--board',
+                      dest='board',
+                      help='ChromeOS target board, e.g. x86-generic')
+  # Leftover positional arguments
+  parser.add_argument('args', nargs='+', help='benchmarks')
+
+  options = parser.parse_args(argv[1:])
+
+  # validate args
+  for arg in options.args:
+    if arg not in KNOWN_BENCHMARKS:
+      logger.GetLogger().LogFatal('Bad benchmark %s specified' % arg)
+
+  if options.chromeos_root is None:
+    Usage(parser, '--chromeos_root must be set')
+
+  if options.board is None:
+    Usage(parser, '--board must be set')
+
+  if options.toolchain_root:
+    logger.GetLogger().LogWarning('--toolchain_root should not be set')
+
+  options.chromeos_root = os.path.expanduser(options.chromeos_root)
+  options.workdir = os.path.expanduser(options.workdir)
+
+  retval = 0
+  if options.third_party:
+    third_party = options.third_party
+  else:
+    third_party = '%s/../../../third_party' % os.path.dirname(__file__)
+    third_party = os.path.realpath(third_party)
+  for arg in options.args:
+    # CPU benchmarks
+    if re.match('chromeos/cpu', arg):
+      comps = re.split('/', arg)
+      benchname = comps[2]
+
+      tec_options = []
+      if third_party:
+        tec_options.append('--third_party=%s' % third_party)
+      if options.clean:
+        retval = cmd_executer.ChrootRunCommand(options.chromeos_root,
+                                               CPU_BUILDCMD_CLEAN % benchname,
+                                               tec_options=tec_options)
+        logger.GetLogger().LogErrorIf(retval,
+                                      'clean of benchmark %s failed.' % arg)
+      if options.build:
+        retval = cmd_executer.ChrootRunCommand(
+            options.chromeos_root,
+            CPU_BUILDCMD_BUILD % (benchname, options.cflags, options.ldflags,
+                                  options.makeopts),
+            tec_options=tec_options)
+        logger.GetLogger().LogErrorIf(retval,
+                                      'Build of benchmark %s failed.' % arg)
+      if retval == 0 and (options.build or options.only_copy):
+        benchdir = ('%s/android_bench/v2_0/CLOSED_SOURCE/%s' %
+                    (third_party, benchname))
+        linkdir = '%s/perflab-bin/%s' % (options.workdir, arg)
+
+        # For cpu/*, we need to copy (not symlinks) of all the contents,
+        # because they are part of the test fixutre.
+        retval = CreateBinaryCopy(benchdir, linkdir, True)
+        if retval != 0:
+          return retval
+        retval = CreateRunsh(linkdir, arg)
+        if retval != 0:
+          return retval
+    elif re.match('chromeos/startup', arg):
+      if options.build:
+        # Clean for chromeos/browser and chromeos/startup is a Nop
+        # since builds are always from scratch.
+        build_args = [
+            os.path.dirname(os.path.abspath(__file__)) + '/build_chromeos.py',
+            '--chromeos_root=' + options.chromeos_root,
+            '--board=' + options.board, '--cflags=' + options.cflags,
+            '--cxxflags=' + options.cxxflags, '--ldflags=' + options.ldflags,
+            '--clobber_board'
+        ]
+        retval = build_chromeos.Main(build_args)
+        logger.GetLogger().LogErrorIf(retval, 'Build of ChromeOS failed.')
+      if retval == 0 and (options.build or options.only_copy):
+        benchdir = '%s/src/build/images/%s/latest' % (options.chromeos_root,
+                                                      options.board)
+        linkdir = '%s/perflab-bin/%s' % (options.workdir, arg)
+        retval = CreateBinaryCopy(benchdir, linkdir)
+        if retval != 0:
+          return retval
+        CreateRunsh(linkdir, arg)
+        if retval != 0:
+          return retval
+    elif re.match('chromeos/browser', arg):
+      if options.build:
+        # For now, re-build os. TBD: Change to call build_browser
+        build_args = [os.path.dirname(os.path.abspath(__file__)) +
+                      '/build_chrome_browser.py',
+                      '--chromeos_root=' + options.chromeos_root,
+                      '--board=' + options.board, '--cflags=' + options.cflags,
+                      '--cxxflags=' + options.cxxflags,
+                      '--ldflags=' + options.ldflags]
+        retval = build_chromeos.Main(build_args)
+        logger.GetLogger().LogErrorIf(retval, 'Build of ChromeOS failed.')
+      if retval == 0 and (options.build or options.only_copy):
+        benchdir = '%s/src/build/images/%s/latest' % (options.chromeos_root,
+                                                      options.board)
+        linkdir = '%s/perflab-bin/%s' % (options.workdir, arg)
+        retval = CreateBinaryCopy(benchdir, linkdir)
+        if retval != 0:
+          return retval
+        retval = CreateRunsh(linkdir, arg)
+        if retval != 0:
+          return retval
+
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv))
diff --git a/deprecated/compare_benchmarks.py b/deprecated/compare_benchmarks.py
new file mode 100755
index 0000000..b6a30ca
--- /dev/null
+++ b/deprecated/compare_benchmarks.py
@@ -0,0 +1,176 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to compare ChromeOS benchmarks
+
+Inputs:
+    <perflab-output directory 1 - baseline>
+    <perflab-output directory 2 - results>
+    --csv - comma separated results
+
+This script doesn't really know much about benchmarks. It simply looks for
+similarly names directories and a results.txt file, and compares
+the results and presents it, along with a geometric mean.
+
+"""
+
+from __future__ import print_function
+
+__author__ = 'bjanakiraman@google.com (Bhaskar Janakiraman)'
+
+import glob
+import math
+import argparse
+import re
+import sys
+
+from cros_utils import command_executer
+
+BENCHDIRS = ('%s/default/default/*/gcc-4.4.3-glibc-2.11.1-grte-k8-opt/ref/*'
+             '/results.txt')
+
+# Common initializations
+cmd_executer = command_executer.GetCommandExecuter()
+
+
+def Usage(parser, message):
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def GetStats(in_file):
+  """Return stats from file"""
+  f = open(in_file, 'r')
+  pairs = []
+  for l in f:
+    line = l.strip()
+    # Look for match lines like the following:
+    #       METRIC isolated TotalTime_ms (down, scalar) trial_run_0: ['1524.4']
+    #       METRIC isolated isolated_walltime (down, scalar) trial_run_0: \
+    #         ['167.407445192']
+    m = re.match(r"METRIC\s+isolated\s+(\S+).*\['(\d+(?:\.\d+)?)'\]", line)
+    if not m:
+      continue
+    metric = m.group(1)
+    if re.match(r'isolated_walltime', metric):
+      continue
+
+    value = float(m.group(2))
+    pairs.append((metric, value))
+
+  return dict(pairs)
+
+
+def PrintDash(n):
+  tmpstr = ''
+  for _ in range(n):
+    tmpstr += '-'
+  print(tmpstr)
+
+
+def PrintHeaderCSV(hdr):
+  tmpstr = ''
+  for i in range(len(hdr)):
+    if tmpstr != '':
+      tmpstr += ','
+    tmpstr += hdr[i]
+  print(tmpstr)
+
+
+def PrintHeader(hdr):
+  tot_len = len(hdr)
+  PrintDash(tot_len * 15)
+
+  tmpstr = ''
+  for i in range(len(hdr)):
+    tmpstr += '%15.15s' % hdr[i]
+
+  print(tmpstr)
+  PrintDash(tot_len * 15)
+
+
+def Main(argv):
+  """Compare Benchmarks."""
+  # Common initializations
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--csv',
+                      dest='csv_output',
+                      action='store_true',
+                      default=False,
+                      help='Output in csv form.')
+  parser.add_argument('args', nargs='+', help='positional arguments: '
+                      '<baseline-output-dir> <results-output-dir>')
+
+  options = parser.parse_args(argv[1:])
+
+  # validate args
+  if len(options.args) != 2:
+    Usage(parser, 'Needs <baseline output dir> <results output dir>')
+
+  base_dir = options.args[0]
+  res_dir = options.args[1]
+
+  # find res benchmarks that have results
+  resbenches_glob = BENCHDIRS % res_dir
+  resbenches = glob.glob(resbenches_glob)
+
+  basebenches_glob = BENCHDIRS % base_dir
+  basebenches = glob.glob(basebenches_glob)
+
+  to_compare = []
+  for resbench in resbenches:
+    tmp = resbench.replace(res_dir, base_dir, 1)
+    if tmp in basebenches:
+      to_compare.append((resbench, tmp))
+
+  for (resfile, basefile) in to_compare:
+    stats = GetStats(resfile)
+    basestats = GetStats(basefile)
+    # Print a header
+    # benchname (remove results.txt), basetime, restime, %speed-up
+    hdr = []
+    benchname = re.split('/', resfile)[-2:-1][0]
+    benchname = benchname.replace('chromeos__', '', 1)
+    hdr.append(benchname)
+    hdr.append('basetime')
+    hdr.append('restime')
+    hdr.append('%speed up')
+    if options.csv_output:
+      PrintHeaderCSV(hdr)
+    else:
+      PrintHeader(hdr)
+
+    # For geomean computations
+    prod = 1.0
+    count = 0
+    for key in stats.keys():
+      if key in basestats.keys():
+        # ignore very small values.
+        if stats[key] < 0.01:
+          continue
+        count = count + 1
+        prod = prod * (stats[key] / basestats[key])
+        speedup = (basestats[key] - stats[key]) / basestats[key]
+        speedup = speedup * 100.0
+        if options.csv_output:
+          print('%s,%f,%f,%f' % (key, basestats[key], stats[key], speedup))
+        else:
+          print('%15.15s%15.2f%15.2f%14.2f%%' % (key, basestats[key],
+                                                 stats[key], speedup))
+
+    prod = math.exp(1.0 / count * math.log(prod))
+    prod = (1.0 - prod) * 100
+    if options.csv_output:
+      print('%s,,,%f' % ('Geomean', prod))
+    else:
+      print('%15.15s%15.15s%15.15s%14.2f%%' % ('Geomean', '', '', prod))
+      print('')
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/deprecated/repo_to_repo_files/binutils-master.json.rtr b/deprecated/repo_to_repo_files/binutils-master.json.rtr
new file mode 100644
index 0000000..e9baf80
--- /dev/null
+++ b/deprecated/repo_to_repo_files/binutils-master.json.rtr
@@ -0,0 +1,22 @@
+{
+  "input": [
+    {
+      "type": "p4", 
+      "mappings": [
+        "//depot2/branches/mobile_toolchain_v15_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-2.21/... ..."
+      ], 
+      "address": "perforce2:2666"
+    }
+  ], 
+  "output": [
+    {
+      "type": "git", 
+      "gerrit": true, 
+      "ignores": [
+        ".svn", 
+        ".git"
+      ], 
+      "address": "https://chromium.googlesource.com/chromiumos/third_party/binutils.git"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/deprecated/repo_to_repo_files/binutils-mobile_toolchain_v16.json.rtr b/deprecated/repo_to_repo_files/binutils-mobile_toolchain_v16.json.rtr
new file mode 100644
index 0000000..927a9a8
--- /dev/null
+++ b/deprecated/repo_to_repo_files/binutils-mobile_toolchain_v16.json.rtr
@@ -0,0 +1,23 @@
+{
+  "input": [
+    {
+      "type": "p4", 
+      "mappings": [
+        "//depot2/branches/mobile_toolchain_v16_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-2.22/... ..."
+      ], 
+      "address": "perforce2:2666"
+    }
+  ], 
+  "output": [
+    {
+      "gerrit": true, 
+      "type": "git", 
+      "branch": "mobile_toolchain_v16_release_branch", 
+      "ignores": [
+        ".svn", 
+        ".git"
+      ], 
+      "address": "https://chromium.googlesource.com/chromiumos/third_party/binutils.git"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/deprecated/repo_to_repo_files/crosperf.json.rtr b/deprecated/repo_to_repo_files/crosperf.json.rtr
new file mode 100644
index 0000000..95c8f62
--- /dev/null
+++ b/deprecated/repo_to_repo_files/crosperf.json.rtr
@@ -0,0 +1,38 @@
+{
+  "input": [
+    {
+      "type": "p4", 
+      "mappings": [
+        "//depot2/gcctools/chromeos/v14/crosperf/... crosperf/...", 
+        "//depot2/gcctools/chromeos/v14/utils/__init__.py utils/__init__.py", 
+        "//depot2/gcctools/chromeos/v14/utils/colortrans.py utils/colortrans.py", 
+        "//depot2/gcctools/chromeos/v14/utils/command_executer.py utils/command_executer.py", 
+        "//depot2/gcctools/chromeos/v14/utils/email_sender.py utils/email_sender.py", 
+        "//depot2/gcctools/chromeos/v14/utils/file_utils.py utils/file_utils.py", 
+        "//depot2/gcctools/chromeos/v14/utils/logger.py utils/logger.py", 
+        "//depot2/gcctools/chromeos/v14/utils/misc.py utils/misc.py", 
+        "//depot2/gcctools/chromeos/v14/utils/misc_test.py utils/misc_test.py", 
+        "//depot2/gcctools/chromeos/v14/utils/stats.py utils/stats.py", 
+        "//depot2/gcctools/chromeos/v14/utils/tabulator.py utils/tabulator.py", 
+        "//depot2/gcctools/chromeos/v14/utils/tabulator_test.py utils/tabulator_test.py", 
+        "//depot2/gcctools/chromeos/v14/utils/timeline.py utils/timeline.py", 
+        "//depot2/gcctools/chromeos/v14/utils/timeline_test.py utils/timeline_test.py", 
+        "//depot2/gcctools/chromeos/v14/image_chromeos.py image_chromeos.py", 
+        "//depot2/gcctools/chromeos/v14/lock_machine.py lock_machine.py", 
+        "//depot2/gcctools/chromeos/v14/README README"
+      ], 
+      "address": "perforce2:2666"
+    }
+  ], 
+  "output": [
+    {
+      "type": "git", 
+      "gerrit": true, 
+      "ignores": [
+        ".svn", 
+        ".git"
+      ], 
+      "address": "https://chromium.googlesource.com/chromiumos/third_party/toolchain-utils.git"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/deprecated/repo_to_repo_files/gcc-branches_google_4_7.json.rtr b/deprecated/repo_to_repo_files/gcc-branches_google_4_7.json.rtr
new file mode 100644
index 0000000..bc4dadf
--- /dev/null
+++ b/deprecated/repo_to_repo_files/gcc-branches_google_4_7.json.rtr
@@ -0,0 +1,22 @@
+{
+  "input": [
+    {
+      "type": "svn", 
+      "mappings": [
+        "branches/google/gcc-4_7-mobile"
+      ], 
+      "address": "svn://gcc.gnu.org/svn/gcc"
+    }
+  ], 
+  "output": [
+    {
+      "type": "git", 
+      "ignores": [
+        ".svn", 
+        ".git"
+      ], 
+      "branch": "gcc.gnu.org/branches/google/gcc-4_7-mobile", 
+      "address": "https://chromium.googlesource.com/chromiumos/third_party/gcc.git"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/deprecated/repo_to_repo_files/gcc-branches_google_main.json.rtr b/deprecated/repo_to_repo_files/gcc-branches_google_main.json.rtr
new file mode 100644
index 0000000..f34063d
--- /dev/null
+++ b/deprecated/repo_to_repo_files/gcc-branches_google_main.json.rtr
@@ -0,0 +1,22 @@
+{
+  "input": [
+    {
+      "type": "svn", 
+      "mappings": [
+        "branches/google/main"
+      ], 
+      "address": "svn://gcc.gnu.org/svn/gcc"
+    }
+  ], 
+  "output": [
+    {
+      "type": "git", 
+      "branch": "gcc.gnu.org/branches/google/main", 
+      "ignores": [
+        ".svn", 
+        ".git"
+      ], 
+      "address": "https://chromium.googlesource.com/chromiumos/third_party/gcc.git"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/deprecated/repo_to_repo_files/gcc-master.json.rtr b/deprecated/repo_to_repo_files/gcc-master.json.rtr
new file mode 100644
index 0000000..692ae7c
--- /dev/null
+++ b/deprecated/repo_to_repo_files/gcc-master.json.rtr
@@ -0,0 +1,23 @@
+{
+  "input": [
+    {
+      "type": "svn", 
+      "mappings": [
+        "branches/google/gcc-4_7-mobile"
+      ], 
+      "address": "svn://gcc.gnu.org/svn/gcc"
+    }
+  ], 
+  "output": [
+    {
+      "gerrit": true, 
+      "type": "git", 
+      "ignores": [
+        ".svn", 
+        ".git"
+      ], 
+      "branch": "master", 
+      "address": "https://chromium.googlesource.com/chromiumos/third_party/gcc.git"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/deprecated/repo_to_repo_files/gdb-master.json.rtr b/deprecated/repo_to_repo_files/gdb-master.json.rtr
new file mode 100644
index 0000000..b67ec6f
--- /dev/null
+++ b/deprecated/repo_to_repo_files/gdb-master.json.rtr
@@ -0,0 +1,20 @@
+{
+  "input": [
+    {
+      "type": "git", 
+      "branch": "202befe3cb3ad0eec07eaaf3f0706e42926b6bbb", 
+      "address": "git://sourceware.org/git/gdb.git"
+    }
+  ], 
+  "output": [
+    {
+      "type": "git", 
+      "ignores": [
+        ".svn", 
+        ".git"
+      ], 
+      "branch": "chromeos_master", 
+      "address": "https://chromium.googlesource.com/chromiumos/third_party/gdb.git"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/deprecated/repo_to_repo_files/toolchain-utils.json.rtr b/deprecated/repo_to_repo_files/toolchain-utils.json.rtr
new file mode 100644
index 0000000..1975d6b
--- /dev/null
+++ b/deprecated/repo_to_repo_files/toolchain-utils.json.rtr
@@ -0,0 +1,28 @@
+{
+  "input": [
+    {
+      "type": "p4", 
+      "mappings": [
+        "//depot2/gcctools/chromeos/v14/crosperf/... crosperf/...", 
+        "//depot2/gcctools/chromeos/v14/utils/... utils/...", 
+        "//depot2/gcctools/chromeos/v14/image_chromeos.py image_chromeos.py", 
+        "//depot2/gcctools/chromeos/v14/lock_machine.py lock_machine.py", 
+        "//depot2/gcctools/chromeos/v14/README README", 
+        "//depot2/gcctools/chromeos/v14/.gitignore .gitignore"
+      ], 
+      "address": "perforce2:2666"
+    }
+  ], 
+  "output": [
+    {
+      "type": "git", 
+      "ignores": [
+        ".svn", 
+        ".git", 
+        ".pyc", 
+        "logs"
+      ], 
+      "address": "https://chrome-internal.googlesource.com/chromeos/toolchain-utils.git"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/deprecated/report_generator.py b/deprecated/report_generator.py
new file mode 100755
index 0000000..c94b51c
--- /dev/null
+++ b/deprecated/report_generator.py
@@ -0,0 +1,145 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to  compare a baseline results file to a new results file."""
+
+from __future__ import print_function
+
+__author__ = 'raymes@google.com (Raymes Khoury)'
+
+import sys
+from cros_utils import logger
+from cros_utils import html_tools
+
+PASS = 'pass'
+FAIL = 'fail'
+NOT_EXECUTED = 'not executed'
+
+
+class ResultsReport(object):
+  """Class for holding report results."""
+
+  def __init__(self, report, num_tests_executed, num_passes, num_failures,
+               num_regressions):
+    self.report = report
+    self.num_tests_executed = num_tests_executed
+    self.num_passes = num_passes
+    self.num_failures = num_failures
+    self.num_regressions = num_regressions
+
+  def GetReport(self):
+    return self.report
+
+  def GetNumExecuted(self):
+    return self.num_tests_executed
+
+  def GetNumPasses(self):
+    return self.num_passes
+
+  def GetNumFailures(self):
+    return self.num_failures
+
+  def GetNumRegressions(self):
+    return self.num_regressions
+
+  def GetSummary(self):
+    summary = 'Tests executed: %s\n' % str(self.num_tests_executed)
+    summary += 'Tests Passing: %s\n' % str(self.num_passes)
+    summary += 'Tests Failing: %s\n' % str(self.num_failures)
+    summary += 'Regressions: %s\n' % str(self.num_regressions)
+    return summary
+
+
+def Usage():
+  print('Usage: %s baseline_results new_results' % sys.argv[0])
+  sys.exit(1)
+
+
+def ParseResults(results_filename):
+  results = []
+  try:
+    results_file = open(results_filename, 'rb')
+    for line in results_file:
+      if line.strip() != '':
+        results.append(line.strip().split('\t'))
+    results_file.close()
+  except IOError:
+    logger.GetLogger().LogWarning('Could not open results file: ' +
+                                  results_filename)
+  return results
+
+
+def GenerateResultsReport(baseline_file, new_result_file):
+  baseline_results = ParseResults(baseline_file)
+  new_results = ParseResults(new_result_file)
+
+  test_status = {}
+
+  for new_result in new_results:
+    new_test_name = new_result[0]
+    new_test_result = new_result[1]
+    test_status[new_test_name] = (new_test_result, NOT_EXECUTED)
+
+  for baseline_result in baseline_results:
+    baseline_test_name = baseline_result[0]
+    baseline_test_result = baseline_result[1]
+    if baseline_test_name in test_status:
+      new_test_result = test_status[baseline_test_name][0]
+      test_status[baseline_test_name] = (new_test_result, baseline_test_result)
+    else:
+      test_status[baseline_test_name] = (NOT_EXECUTED, baseline_test_result)
+
+  regressions = []
+  for result in test_status.keys():
+    if test_status[result][0] != test_status[result][1]:
+      regressions.append(result)
+
+  num_tests_executed = len(new_results)
+  num_regressions = len(regressions)
+  num_passes = 0
+  num_failures = 0
+  for result in new_results:
+    if result[1] == PASS:
+      num_passes += 1
+    else:
+      num_failures += 1
+
+  report = html_tools.GetPageHeader('Test Summary')
+  report += html_tools.GetHeader('Test Summary')
+  report += html_tools.GetListHeader()
+  report += html_tools.GetListItem('Tests executed: ' + str(num_tests_executed))
+  report += html_tools.GetListItem('Passes: ' + str(num_passes))
+  report += html_tools.GetListItem('Failures: ' + str(num_failures))
+  report += html_tools.GetListItem('Regressions: ' + str(num_regressions))
+  report += html_tools.GetListFooter()
+  report += html_tools.GetHeader('Regressions', 2)
+  report += html_tools.GetTableHeader(['Test name', 'Expected result',
+                                       'Actual result'])
+
+  for regression in regressions:
+    report += html_tools.GetTableRow([regression[:150], test_status[regression][
+        1], test_status[regression][0]])
+    report += '\n'
+  report += html_tools.GetTableFooter()
+  report += html_tools.GetHeader('All Tests', 2)
+  report += html_tools.GetTableHeader(['Test name', 'Expected result',
+                                       'Actual result'])
+  for result in test_status.keys():
+    report += html_tools.GetTableRow([result[:150], test_status[result][1],
+                                      test_status[result][0]])
+    report += '\n'
+  report += html_tools.GetTableFooter()
+  report += html_tools.GetFooter()
+  return ResultsReport(report, num_tests_executed, num_passes, num_failures,
+                       num_regressions)
+
+
+def Main(argv):
+  if len(argv) < 2:
+    Usage()
+
+  print(GenerateResultsReport(argv[1], argv[2])[0])
+
+
+if __name__ == '__main__':
+  Main(sys.argv)
diff --git a/deprecated/run_benchmarks.py b/deprecated/run_benchmarks.py
new file mode 100755
index 0000000..4818750
--- /dev/null
+++ b/deprecated/run_benchmarks.py
@@ -0,0 +1,245 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to run ChromeOS benchmarks
+
+Inputs:
+    chromeos_root
+    board
+    [chromeos/cpu/<benchname>|
+     chromeos/browser/[pagecycler|sunspider]|
+     chromeos/startup]
+    hostname/IP of Chromeos machine
+
+    chromeos/cpu/<benchname>
+       - Read run script rules from bench.mk perflab-bin, copy benchmark to
+       host, run
+       and return results.
+
+    chromeos/startup
+       - Re-image host with image in perflab-bin
+       - Call run_tests to run startup test, gather results.
+       - Restore host back to what it was.
+
+    chromeos/browser/*
+       - Call build_chromebrowser to build image with new browser
+       - Copy image to perflab-bin
+
+"""
+
+from __future__ import print_function
+
+__author__ = 'bjanakiraman@google.com (Bhaskar Janakiraman)'
+
+import argparse
+import os
+import re
+import sys
+
+import image_chromeos
+import run_tests
+from cros_utils import command_executer
+from cros_utils import logger
+
+# pylint: disable=anomalous-backslash-in-string
+
+KNOWN_BENCHMARKS = [
+    'chromeos/startup', 'chromeos/browser/pagecycler',
+    'chromeos/browser/sunspider', 'chromeos/browser/v8bench',
+    'chromeos/cpu/bikjmp'
+]
+
+name_map = {
+    'pagecycler': 'Page',
+    'sunspider': 'SunSpider',
+    'v8bench': 'V8Bench',
+    'startup': 'BootPerfServer'
+}
+
+# Run command template
+
+# Common initializations
+cmd_executer = command_executer.GetCommandExecuter()
+
+
+def Usage(parser, message):
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def RunBrowserBenchmark(chromeos_root, board, bench, machine):
+  """Run browser benchmarks.
+
+  Args:
+    chromeos_root: ChromeOS src dir
+    board: Board being tested
+    bench: Name of benchmark (chromeos/browser/*)
+    machine: name of chromeos machine
+  """
+  benchname = re.split('/', bench)[2]
+  benchname = name_map[benchname]
+  ret = run_tests.RunRemoteTests(chromeos_root, machine, board, benchname)
+  return ret
+
+
+def RunStartupBenchmark(chromeos_root, board, machine):
+  """Run browser benchmarks.
+
+  Args:
+    chromeos_root: ChromeOS src dir
+    board: Board being tested
+    machine: name of chromeos machine
+  """
+  benchname = 'startup'
+  benchname = name_map[benchname]
+  ret = run_tests.RunRemoteTests(chromeos_root, machine, board, benchname)
+  return ret
+
+
+def RunCpuBenchmark(chromeos_root, bench, workdir, machine):
+  """Run CPU benchmark.
+
+  Args:
+    chromeos_root: ChromeOS src dir
+    bench: Name of benchmark
+    workdir: directory containing benchmark directory
+    machine: name of chromeos machine
+
+  Returns:
+    status: 0 on success
+  """
+
+  benchname = re.split('/', bench)[2]
+  benchdir = '%s/%s' % (workdir, benchname)
+
+  # Delete any existing run directories on machine.
+  # Since this has exclusive access to the machine,
+  # we do not worry about duplicates.
+  args = 'rm -rf /tmp/%s' % benchname
+  retv = cmd_executer.CrosRunCommand(args,
+                                     chromeos_root=chromeos_root,
+                                     machine=machine)
+  if retv:
+    return retv
+
+  # Copy benchmark directory.
+  retv = cmd_executer.CopyFiles(benchdir,
+                                '/tmp/' + benchname,
+                                chromeos_root=chromeos_root,
+                                dest_machine=machine,
+                                dest_cros=True)
+  if retv:
+    return retv
+
+  # Parse bench.mk to extract run flags.
+
+  benchmk_file = open('%s/bench.mk' % benchdir, 'r')
+  for line in benchmk_file:
+    line.rstrip()
+    if re.match('^run_cmd', line):
+      line = re.sub('^run_cmd.*\${PERFLAB_PATH}', './out', line)
+      line = re.sub('\${PERFLAB_INPUT}', './data', line)
+      run_cmd = line
+      break
+
+  # Execute on remote machine
+  # Capture output and process it.
+  sshargs = "'cd /tmp/%s;" % benchname
+  sshargs += "time -p %s'" % run_cmd
+  cmd_executer.CrosRunCommand(sshargs,
+                              chromeos_root=chromeos_root,
+                              machine=machine)
+
+  return retv
+
+
+def Main(argv):
+  """Build ChromeOS."""
+  # Common initializations
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      help='Target directory for ChromeOS installation.')
+  parser.add_argument('-m',
+                      '--machine',
+                      dest='machine',
+                      help='The chromeos host machine.')
+  parser.add_argument('--workdir',
+                      dest='workdir',
+                      default='./perflab-bin',
+                      help='Work directory for perflab outputs.')
+  parser.add_argument('--board',
+                      dest='board',
+                      help='ChromeOS target board, e.g. x86-generic')
+  parser.add_argumen('args', margs='+', help='Benchmarks to run.')
+
+  options = parser.parse_args(argv[1:])
+
+  # validate args
+  for arg in options.args:
+    if arg not in KNOWN_BENCHMARKS:
+      logger.GetLogger().LogFatal('Bad benchmark %s specified' % arg)
+
+  if options.chromeos_root is None:
+    Usage(parser, '--chromeos_root must be set')
+
+  if options.board is None:
+    Usage(parser, '--board must be set')
+
+  if options.machine is None:
+    Usage(parser, '--machine must be set')
+
+  found_err = 0
+  retv = 0
+  for arg in options.args:
+    # CPU benchmarks
+    comps = re.split('/', arg)
+    if re.match('chromeos/cpu', arg):
+      benchname = comps[2]
+      print('RUNNING %s' % benchname)
+      retv = RunCpuBenchmark(options.chromeos_root, arg, options.workdir,
+                             options.machine)
+      if not found_err:
+        found_err = retv
+    elif re.match('chromeos/startup', arg):
+      benchname = comps[1]
+      image_args = [
+          os.path.dirname(os.path.abspath(__file__)) + '/image_chromeos.py',
+          '--chromeos_root=' + options.chromeos_root,
+          '--remote=' + options.machine, '--image=' + options.workdir + '/' +
+          benchname + '/chromiumos_image.bin'
+      ]
+      logger.GetLogger().LogOutput('Reimaging machine %s' % options.machine)
+      image_chromeos.Main(image_args)
+
+      logger.GetLogger().LogOutput('Running %s' % arg)
+      retv = RunStartupBenchmark(options.chromeos_root, options.board,
+                                 options.machine)
+      if not found_err:
+        found_err = retv
+    elif re.match('chromeos/browser', arg):
+      benchname = comps[2]
+      image_args = [
+          os.path.dirname(os.path.abspath(__file__)) + '/image_chromeos.py',
+          '--chromeos_root=' + options.chromeos_root,
+          '--remote=' + options.machine, '--image=' + options.workdir + '/' +
+          benchname + '/chromiumos_image.bin'
+      ]
+      logger.GetLogger().LogOutput('Reimaging machine %s' % options.machine)
+      image_chromeos.Main(image_args)
+
+      logger.GetLogger().LogOutput('Running %s' % arg)
+      retv = RunBrowserBenchmark(options.chromeos_root, options.board, arg,
+                                 options.machine)
+      if not found_err:
+        found_err = retv
+
+  return found_err
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/deprecated/sheriff_rotation.py b/deprecated/sheriff_rotation.py
new file mode 100755
index 0000000..f687307
--- /dev/null
+++ b/deprecated/sheriff_rotation.py
@@ -0,0 +1,130 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to rotate the weekly team sheriff.
+
+This script determines who the next sheriff is, updates the file
+appropriately and sends out email notifying the team.
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import datetime
+import os
+import sys
+
+from cros_utils import constants
+from cros_utils import email_sender
+
+
+class SheriffHandler(object):
+  """Main class for handling sheriff rotations."""
+
+  SHERIFF_FILE = os.path.join(constants.CROSTC_WORKSPACE, 'sheriffs.txt')
+  SUBJECT = 'You (%s) are the sheriff for the week: %s - %s'
+  BODY = ('Please see instructions here: '
+          'https://sites.google.com/a/google.com/chromeos-toolchain-team-home2'
+          '/home/sheriff-s-corner/sheriff-duties')
+
+  def GetWeekInfo(self, day=datetime.datetime.today()):
+    """Return week_start, week_end."""
+
+    epoch = datetime.datetime.utcfromtimestamp(0)
+    delta_since_epoch = day - epoch
+
+    abs_days = abs(delta_since_epoch.days) - 2  # To get it to start from Sat.
+    day_of_week = abs_days % 7
+
+    week_begin = day - datetime.timedelta(days=day_of_week)
+    week_end = day + datetime.timedelta(days=(6 - day_of_week))
+
+    strftime_format = '%A, %B %d %Y'
+
+    return (week_begin.strftime(strftime_format),
+            week_end.strftime(strftime_format))
+
+  def GetCurrentSheriff(self):
+    """Return the current sheriff."""
+    return self.ReadSheriffsAsList()[0]
+
+  def ReadSheriffsAsList(self):
+    """Return the sheriff file contents."""
+    contents = ''
+    with open(self.SHERIFF_FILE, 'r') as f:
+      contents = f.read()
+    return contents.splitlines()
+
+  def WriteSheriffsAsList(self, to_write):
+    with open(self.SHERIFF_FILE, 'w') as f:
+      f.write('\n'.join(to_write))
+
+  def GetRotatedSheriffs(self, num_rotations=1):
+    """Return the sheriff file contents."""
+    sheriff_list = self.ReadSheriffsAsList()
+
+    new_sheriff_list = []
+    num_rotations = num_rotations % len(sheriff_list)
+    new_sheriff_list = (
+        sheriff_list[num_rotations:] + sheriff_list[:num_rotations])
+    return new_sheriff_list
+
+  def Email(self):
+    es = email_sender.EmailSender()
+    current_sheriff = self.GetCurrentSheriff()
+    week_start, week_end = self.GetWeekInfo()
+    subject = self.SUBJECT % (current_sheriff, week_start, week_end)
+    es.SendEmail([current_sheriff],
+                 subject,
+                 self.BODY,
+                 email_from=os.path.basename(__file__),
+                 email_cc=['c-compiler-chrome'])
+
+
+def Main(argv):
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-e',
+                      '--email',
+                      dest='email',
+                      action='store_true',
+                      help='Email the sheriff.')
+  parser.add_argument('-r',
+                      '--rotate',
+                      dest='rotate',
+                      help='Print sheriffs after n rotations.')
+  parser.add_argument('-w',
+                      '--write',
+                      dest='write',
+                      action='store_true',
+                      default=False,
+                      help='Wrote rotated contents to the sheriff file.')
+
+  options = parser.parse_args(argv)
+
+  sheriff_handler = SheriffHandler()
+
+  current_sheriff = sheriff_handler.GetCurrentSheriff()
+  week_start, week_end = sheriff_handler.GetWeekInfo()
+
+  print('Current sheriff: %s (%s - %s)' % (current_sheriff, week_start,
+                                           week_end))
+
+  if options.email:
+    sheriff_handler.Email()
+
+  if options.rotate:
+    rotated_sheriffs = sheriff_handler.GetRotatedSheriffs(int(options.rotate))
+    print('Rotated sheriffs (after %s rotations)' % options.rotate)
+    print('\n'.join(rotated_sheriffs))
+    if options.write:
+      sheriff_handler.WriteSheriffsAsList(rotated_sheriffs)
+      print('Rotated sheriffs written to file.')
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/deprecated/summarize_results.py b/deprecated/summarize_results.py
new file mode 100755
index 0000000..67d7e9a
--- /dev/null
+++ b/deprecated/summarize_results.py
@@ -0,0 +1,145 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to summarize the results of various log files."""
+
+from __future__ import print_function
+
+__author__ = 'raymes@google.com (Raymes Khoury)'
+
+from cros_utils import command_executer
+import os
+import sys
+import re
+
+RESULTS_DIR = 'results'
+RESULTS_FILE = RESULTS_DIR + '/results.csv'
+
+# pylint: disable=anomalous-backslash-in-string
+
+class DejaGNUSummarizer(object):
+  """DejaGNU Summarizer Class"""
+
+  def __int__(self):
+    pass
+
+  def Matches(self, log_file):
+    for log_line in log_file:
+      if log_line.find("""tests ===""") > -1:
+        return True
+    return False
+
+  def Summarize(self, log_file, filename):
+    result = ''
+    pass_statuses = ['PASS', 'XPASS']
+    fail_statuses = ['FAIL', 'XFAIL', 'UNSUPPORTED']
+    name_count = {}
+    for line in log_file:
+      line = line.strip().split(':')
+      if len(line) > 1 and (line[0] in pass_statuses or
+                            line[0] in fail_statuses):
+        test_name = (':'.join(line[1:])).replace('\t', ' ').strip()
+        count = name_count.get(test_name, 0) + 1
+        name_count[test_name] = count
+        test_name = '%s (%s)' % (test_name, str(count))
+        if line[0] in pass_statuses:
+          test_result = 'pass'
+        else:
+          test_result = 'fail'
+        result += '%s\t%s\t%s\n' % (test_name, test_result, filename)
+    return result
+
+
+class PerflabSummarizer(object):
+  """Perflab Summarizer class"""
+
+  def __init__(self):
+    pass
+
+  def Matches(self, log_file):
+    p = re.compile('METRIC isolated \w+')
+    for log_line in log_file:
+      if p.search(log_line):
+        return True
+    return False
+
+  def Summarize(self, log_file, filename):
+    result = ''
+    p = re.compile("METRIC isolated (\w+) .*\['(.*?)'\]")
+    log_file_lines = '\n'.join(log_file)
+    matches = p.findall(log_file_lines)
+    for match in matches:
+      if len(match) != 2:
+        continue
+      result += '%s\t%s\t%s\n' % (match[0], match[1], filename)
+    return result
+
+
+class AutoTestSummarizer(object):
+  """AutoTest Summarizer class"""
+
+  def __init__(self):
+    pass
+
+  def Matches(self, log_file):
+    for log_line in log_file:
+      if log_line.find("""Installing autotest on""") > -1:
+        return True
+    return False
+
+  def Summarize(self, log_file, filename):
+    result = ''
+    pass_statuses = ['PASS']
+    fail_statuses = ['FAIL']
+    for line in log_file:
+      line = line.strip().split(' ')
+      if len(line) > 1 and (line[-1].strip() in pass_statuses or
+                            line[-1].strip() in fail_statuses):
+        test_name = (line[0].strip())
+        if line[-1].strip() in pass_statuses:
+          test_result = 'pass'
+        else:
+          test_result = 'fail'
+        result += '%s\t%s\t%s\n' % (test_name, test_result, filename)
+    return result
+
+
+def Usage():
+  print('Usage: %s log_file' % sys.argv[0])
+  sys.exit(1)
+
+
+def SummarizeFile(filename):
+  summarizers = [DejaGNUSummarizer(), AutoTestSummarizer(), PerflabSummarizer()]
+  inp = open(filename, 'rb')
+  executer = command_executer.GetCommandExecuter()
+  for summarizer in summarizers:
+    inp.seek(0)
+    if summarizer.Matches(inp):
+      executer.CopyFiles(filename, RESULTS_DIR, recursive=False)
+      inp.seek(0)
+      result = summarizer.Summarize(inp, os.path.basename(filename))
+      inp.close()
+      return result
+  inp.close()
+  return None
+
+
+def Main(argv):
+  if len(argv) != 2:
+    Usage()
+  filename = argv[1]
+
+  executer = command_executer.GetCommandExecuter()
+  executer.RunCommand('mkdir -p %s' % RESULTS_DIR)
+  summary = SummarizeFile(filename)
+  if summary is not None:
+    output = open(RESULTS_FILE, 'a')
+    output.write(summary.strip() + '\n')
+    output.close()
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/fdo_scripts/divide_and_merge_profiles.py b/fdo_scripts/divide_and_merge_profiles.py
new file mode 100755
index 0000000..9915585
--- /dev/null
+++ b/fdo_scripts/divide_and_merge_profiles.py
@@ -0,0 +1,140 @@
+#!/usr/bin/python
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Script to divide and merge profiles."""
+
+import copy
+import optparse
+import os
+import pickle
+import re
+import sys
+import tempfile
+
+import build_chrome_browser
+import lock_machine
+import run_tests
+from cros_utils import command_executer
+from cros_utils import logger
+
+
+class ProfileMerger:
+
+  def __init__(self, inputs, output, chunk_size, merge_program, multipliers):
+    self._inputs = inputs
+    self._output = output
+    self._chunk_size = chunk_size
+    self._merge_program = merge_program
+    self._multipliers = multipliers
+    self._ce = command_executer.GetCommandExecuter()
+    self._l = logger.GetLogger()
+
+  def _GetFilesSetForInputDir(self, input_dir):
+    output_file = tempfile.mktemp()
+    command = "find %s -name '*.gcda' -o -name '*.imports' > %s" % (input_dir,
+                                                                    output_file)
+    self._ce.RunCommand(command)
+    files = open(output_file, 'r').read()
+    files_set = set([])
+    for f in files.splitlines():
+      stripped_file = f.replace(input_dir, '', 1)
+      stripped_file = stripped_file.lstrip('/')
+      files_set.add(stripped_file)
+    return files_set
+
+  def _PopulateFilesSet(self):
+    self._files_set = set([])
+    for i in self._inputs:
+      current_files_set = self._GetFilesSetForInputDir(i)
+      self._files_set.update(current_files_set)
+
+  def _GetSubset(self):
+    ret = []
+    for i in range(self._chunk_size):
+      if not self._files_set:
+        break
+      ret.append(self._files_set.pop())
+    return ret
+
+  def _CopyFilesTree(self, input_dir, files, output_dir):
+    for f in files:
+      src_file = os.path.join(input_dir, f)
+      dst_file = os.path.join(output_dir, f)
+      if not os.path.isdir(os.path.dirname(dst_file)):
+        command = 'mkdir -p %s' % os.path.dirname(dst_file)
+        self._ce.RunCommand(command)
+      command = 'cp %s %s' % (src_file, dst_file)
+      self._ce.RunCommand(command)
+
+  def _DoChunkMerge(self, current_files):
+    temp_dirs = []
+    for i in self._inputs:
+      temp_dir = tempfile.mkdtemp()
+      temp_dirs.append(temp_dir)
+      self._CopyFilesTree(i, current_files, temp_dir)
+    # Now do the merge.
+    command = ('%s --inputs=%s --output=%s' %
+               (self._merge_program, ','.join(temp_dirs), self._output))
+    if self._multipliers:
+      command = ('%s --multipliers=%s' % (command, self._multipliers))
+    ret = self._ce.RunCommand(command)
+    assert ret == 0, '%s command failed!' % command
+    for temp_dir in temp_dirs:
+      command = 'rm -rf %s' % temp_dir
+      self._ce.RunCommand(command)
+
+  def DoMerge(self):
+    self._PopulateFilesSet()
+    while True:
+      current_files = self._GetSubset()
+      if not current_files:
+        break
+      self._DoChunkMerge(current_files)
+
+
+def Main(argv):
+  """The main function."""
+  # Common initializations
+  ###  command_executer.InitCommandExecuter(True)
+  command_executer.InitCommandExecuter()
+  l = logger.GetLogger()
+  ce = command_executer.GetCommandExecuter()
+  parser = optparse.OptionParser()
+  parser.add_option('--inputs',
+                    dest='inputs',
+                    help='Comma-separated input profile directories to merge.')
+  parser.add_option('--output', dest='output', help='Output profile directory.')
+  parser.add_option('--chunk_size',
+                    dest='chunk_size',
+                    default='50',
+                    help='Chunk size to divide up the profiles into.')
+  parser.add_option('--merge_program',
+                    dest='merge_program',
+                    default='/home/xur/bin/profile_merge_v15.par',
+                    help='Merge program to use to do the actual merge.')
+  parser.add_option('--multipliers',
+                    dest='multipliers',
+                    help='multipliers to use when merging. (optional)')
+
+  options, _ = parser.parse_args(argv)
+
+  if not all([options.inputs, options.output]):
+    l.LogError('Must supply --inputs and --output')
+    return 1
+
+  try:
+    pm = ProfileMerger(
+        options.inputs.split(','), options.output, int(options.chunk_size),
+        options.merge_program, options.multipliers)
+    pm.DoMerge()
+    retval = 0
+  except:
+    retval = 1
+  finally:
+    print 'My work is done...'
+  return retval
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/fdo_scripts/divide_and_merge_profiles_test.py b/fdo_scripts/divide_and_merge_profiles_test.py
new file mode 100755
index 0000000..27141df
--- /dev/null
+++ b/fdo_scripts/divide_and_merge_profiles_test.py
@@ -0,0 +1,127 @@
+#!/usr/bin/python
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import os
+import random
+import shutil
+import tempfile
+import unittest
+
+from cros_utils import command_executer
+from cros_utils import misc
+
+
+class DivideAndMergeProfilesTest(unittest.TestCase):
+
+  def tearDown(self):
+    shutil.rmtree(self._program_dir)
+    for profile_dir in self._profile_dirs:
+      shutil.rmtree(profile_dir)
+
+  def setUp(self):
+    self._ce = command_executer.GetCommandExecuter()
+    self._program_dir = tempfile.mkdtemp()
+    self._writeProgram()
+    self._writeMakefile()
+    with misc.WorkingDirectory(self._program_dir):
+      self._ce.RunCommand('make')
+    num_profile_dirs = 2
+    self._profile_dirs = []
+    for i in range(num_profile_dirs):
+      profile_dir = tempfile.mkdtemp()
+      command = ('GCOV_PREFIX_STRIP=%s GCOV_PREFIX=$(/bin/pwd) '
+                 ' %s/program' % (profile_dir.count('/'), self._program_dir))
+      with misc.WorkingDirectory(profile_dir):
+        self._ce.RunCommand(command)
+      self._profile_dirs.append(profile_dir)
+    self._merge_program = '/home/build/static/projects/crosstool/profile-merge/v14.5/profile_merge.par'
+
+  def _writeMakefile(self):
+    makefile_contents = """
+CC = gcc
+
+CFLAGS = -fprofile-generate
+
+SRCS=$(wildcard *.c)
+
+OBJS=$(SRCS:.c=.o)
+
+all: program
+
+program: $(OBJS)
+	$(CC) -o $@ $^ $(CFLAGS)
+
+%.o: %.c
+	$(CC) -c -o $@ $^ $(CFLAGS)"""
+
+    makefile = os.path.join(self._program_dir, 'Makefile')
+    with open(makefile, 'w') as f:
+      print >> f, makefile_contents
+
+  def _writeProgram(self, num_files=100):
+    for i in range(num_files):
+      current_file = os.path.join(self._program_dir, '%s.c' % i)
+      with open(current_file, 'w') as f:
+        if i != num_files - 1:
+          print >> f, 'extern void foo%s();' % (i + 1)
+          print >> f, 'void foo%s(){foo%s();}' % (i, i + 1)
+        else:
+          print >> f, "void foo%s(){printf(\"\");}" % i
+        if i == 0:
+          print >> f, 'int main(){foo%s(); return 0;}' % i
+
+  def testMerge(self):
+    reference_output = self._getReferenceOutput()
+    my_output = self._getMyOutput()
+
+    ret = self._diffOutputs(reference_output, my_output)
+    shutil.rmtree(my_output)
+    shutil.rmtree(reference_output)
+    self.assertTrue(ret == 0)
+
+  def _diffOutputs(self, reference, mine):
+    command = 'diff -uNr %s %s' % (reference, mine)
+    return self._ce.RunCommand(command)
+
+  def _getMyOutput(self, args=''):
+    my_output = tempfile.mkdtemp()
+    my_merge_program = os.path.join(
+        os.path.dirname(__file__), 'divide_and_merge_profiles.py')
+    command = ('python %s --inputs=%s --output=%s '
+               '--chunk_size=10 '
+               '--merge_program=%s '
+               '%s' % (my_merge_program, ','.join(self._profile_dirs),
+                       my_output, self._merge_program, args))
+    self._ce.RunCommand(command)
+    return my_output
+
+  def _getReferenceOutput(self, args=''):
+    # First do a regular merge.
+    reference_output = tempfile.mkdtemp()
+    command = ('%s --inputs=%s --output=%s %s' %
+               (self._merge_program, ','.join(self._profile_dirs),
+                reference_output, args))
+    self._ce.RunCommand(command)
+    return reference_output
+
+  def testMergeWithMultipliers(self):
+    num_profiles = len(self._profile_dirs)
+    multipliers = [str(random.randint(0, num_profiles)) \
+                   for _ in range(num_profiles)]
+    args = '--multipliers=%s' % ','.join(multipliers)
+
+    reference_output = self._getReferenceOutput(args)
+    my_output = self._getMyOutput(args)
+
+    ret = self._diffOutputs(reference_output, my_output)
+
+    shutil.rmtree(my_output)
+    shutil.rmtree(reference_output)
+    self.assertTrue(ret == 0)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/fdo_scripts/profile_cycler.py b/fdo_scripts/profile_cycler.py
new file mode 100755
index 0000000..7715612
--- /dev/null
+++ b/fdo_scripts/profile_cycler.py
@@ -0,0 +1,199 @@
+#!/usr/bin/python
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Script to profile a page cycler, and get it back to the host."""
+
+import copy
+import optparse
+import os
+import pickle
+import re
+import sys
+import tempfile
+import time
+
+import build_chrome_browser
+import cros_login
+import lock_machine
+import run_tests
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import misc
+
+
+class CyclerProfiler:
+  REMOTE_TMP_DIR = '/tmp'
+
+  def __init__(self, chromeos_root, board, cycler, profile_dir, remote):
+    self._chromeos_root = chromeos_root
+    self._cycler = cycler
+    self._profile_dir = profile_dir
+    self._remote = remote
+    self._board = board
+    self._ce = command_executer.GetCommandExecuter()
+    self._l = logger.GetLogger()
+
+    self._gcov_prefix = os.path.join(self.REMOTE_TMP_DIR, self._GetProfileDir())
+
+  def _GetProfileDir(self):
+    return misc.GetCtargetFromBoard(self._board, self._chromeos_root)
+
+  def _CopyTestData(self):
+    page_cycler_dir = os.path.join(self._chromeos_root, 'distfiles', 'target',
+                                   'chrome-src-internal', 'src', 'data',
+                                   'page_cycler')
+    if not os.path.isdir(page_cycler_dir):
+      raise RuntimeError('Page cycler dir %s not found!' % page_cycler_dir)
+    self._ce.CopyFiles(page_cycler_dir,
+                       os.path.join(self.REMOTE_TMP_DIR, 'page_cycler'),
+                       dest_machine=self._remote,
+                       chromeos_root=self._chromeos_root,
+                       recursive=True,
+                       dest_cros=True)
+
+  def _PrepareTestData(self):
+    # chmod files so everyone can read them.
+    command = ('cd %s && find page_cycler -type f | xargs chmod a+r' %
+               self.REMOTE_TMP_DIR)
+    self._ce.CrosRunCommand(command,
+                            chromeos_root=self._chromeos_root,
+                            machine=self._remote)
+    command = ('cd %s && find page_cycler -type d | xargs chmod a+rx' %
+               self.REMOTE_TMP_DIR)
+    self._ce.CrosRunCommand(command,
+                            chromeos_root=self._chromeos_root,
+                            machine=self._remote)
+
+  def _CopyProfileToHost(self):
+    dest_dir = os.path.join(self._profile_dir,
+                            os.path.basename(self._gcov_prefix))
+    # First remove the dir if it exists already
+    if os.path.exists(dest_dir):
+      command = 'rm -rf %s' % dest_dir
+      self._ce.RunCommand(command)
+
+    # Strip out the initial prefix for the Chrome directory before doing the
+    # copy.
+    chrome_dir_prefix = misc.GetChromeSrcDir()
+
+    command = 'mkdir -p %s' % dest_dir
+    self._ce.RunCommand(command)
+    self._ce.CopyFiles(self._gcov_prefix,
+                       dest_dir,
+                       src_machine=self._remote,
+                       chromeos_root=self._chromeos_root,
+                       recursive=True,
+                       src_cros=True)
+
+  def _RemoveRemoteProfileDir(self):
+    command = 'rm -rf %s' % self._gcov_prefix
+    self._ce.CrosRunCommand(command,
+                            chromeos_root=self._chromeos_root,
+                            machine=self._remote)
+
+  def _LaunchCycler(self, cycler):
+    command = (
+        'DISPLAY=:0 '
+        'XAUTHORITY=/home/chronos/.Xauthority '
+        'GCOV_PREFIX=%s '
+        'GCOV_PREFIX_STRIP=3 '
+        '/opt/google/chrome/chrome '
+        '--no-sandbox '
+        '--renderer-clean-exit '
+        '--user-data-dir=$(mktemp -d) '
+        "--url \"file:///%s/page_cycler/%s/start.html?iterations=10&auto=1\" "
+        '--enable-file-cookies '
+        '--no-first-run '
+        '--js-flags=expose_gc &' % (self._gcov_prefix, self.REMOTE_TMP_DIR,
+                                    cycler))
+
+    self._ce.CrosRunCommand(command,
+                            chromeos_root=self._chromeos_root,
+                            machine=self._remote,
+                            command_timeout=60)
+
+  def _PkillChrome(self, signal='9'):
+    command = 'pkill -%s chrome' % signal
+    self._ce.CrosRunCommand(command,
+                            chromeos_root=self._chromeos_root,
+                            machine=self._remote)
+
+  def DoProfile(self):
+    # Copy the page cycler data to the remote
+    self._CopyTestData()
+    self._PrepareTestData()
+    self._RemoveRemoteProfileDir()
+
+    for cycler in self._cycler.split(','):
+      self._ProfileOneCycler(cycler)
+
+    # Copy the profile back
+    self._CopyProfileToHost()
+
+  def _ProfileOneCycler(self, cycler):
+    # With aura, all that's needed is a stop/start ui.
+    self._PkillChrome()
+    cros_login.RestartUI(self._remote, self._chromeos_root, login=False)
+    # Run the cycler
+    self._LaunchCycler(cycler)
+    self._PkillChrome(signal='INT')
+    # Let libgcov dump the profile.
+    # TODO(asharif): There is a race condition here. Fix it later.
+    time.sleep(30)
+
+
+def Main(argv):
+  """The main function."""
+  # Common initializations
+  ###  command_executer.InitCommandExecuter(True)
+  command_executer.InitCommandExecuter()
+  l = logger.GetLogger()
+  ce = command_executer.GetCommandExecuter()
+  parser = optparse.OptionParser()
+  parser.add_option('--cycler',
+                    dest='cycler',
+                    default='alexa_us',
+                    help=('Comma-separated cyclers to profile. '
+                          'Example: alexa_us,moz,moz2'
+                          'Use all to profile all cyclers.'))
+  parser.add_option('--chromeos_root',
+                    dest='chromeos_root',
+                    default='../../',
+                    help='Output profile directory.')
+  parser.add_option('--board',
+                    dest='board',
+                    default='x86-zgb',
+                    help='The target board.')
+  parser.add_option('--remote',
+                    dest='remote',
+                    help=('The remote chromeos machine that'
+                          ' has the profile image.'))
+  parser.add_option('--profile_dir',
+                    dest='profile_dir',
+                    default='profile_dir',
+                    help='Store profiles in this directory.')
+
+  options, _ = parser.parse_args(argv)
+
+  all_cyclers = ['alexa_us', 'bloat', 'dhtml', 'dom', 'intl1', 'intl2',
+                 'morejs', 'morejsnp', 'moz', 'moz2']
+
+  if options.cycler == 'all':
+    options.cycler = ','.join(all_cyclers)
+
+  try:
+    cp = CyclerProfiler(options.chromeos_root, options.board, options.cycler,
+                        options.profile_dir, options.remote)
+    cp.DoProfile()
+    retval = 0
+  except Exception as e:
+    retval = 1
+    print e
+  finally:
+    print 'Exiting...'
+  return retval
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/fdo_scripts/summarize_hot_blocks.py b/fdo_scripts/summarize_hot_blocks.py
new file mode 100644
index 0000000..20c07fa
--- /dev/null
+++ b/fdo_scripts/summarize_hot_blocks.py
@@ -0,0 +1,187 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Summarize hottest basic blocks found while doing a ChromeOS FDO build.
+
+Here is an example execution:
+
+  summarize_hot_blocks.py
+   --data_dir=~/chromeos/chroot/var/cache/chromeos-chrome/ --cutoff=10000
+   --output_dir=/home/x/y
+
+With the cutoff, it will ignore any basic blocks that have a count less
+than what is specified (in this example 10000)
+The script looks inside the directory (this is typically a directory where
+the object files are generated) for files with *.profile and *.optimized
+suffixes. To get these, the following flags were added to the compiler
+invokation within vanilla_vs_fdo.py in the profile-use phase.
+
+              "-fdump-tree-optimized-blocks-lineno "
+              "-fdump-ipa-profile-blocks-lineno "
+
+Here is an example of the *.profile and *.optimized files contents:
+
+# BLOCK 7 freq:3901 count:60342, starting at line 92
+# PRED: 6 [39.0%]  count:60342 (true,exec)
+  [url_canon_internal.cc : 92:28] MEM[(const char * *)source_6(D) + 16B] =
+  D.28080_17;
+  [url_canon_internal.cc : 93:41] MEM[(struct Component *)parsed_4(D) + 16B] =
+  MEM[(const struct Component &)repl_1(D) + 80];
+# SUCC: 8 [100.0%]  count:60342 (fallthru,exec)
+# BLOCK 8 freq:10000 count:154667, starting at line 321
+# PRED: 7 [100.0%]  count:60342 (fallthru,exec) 6 [61.0%]  count:94325
+(false,exec)
+  [url_canon_internal.cc : 321:51] # DEBUG D#10 =>
+  [googleurl/src/url_canon_internal.cc : 321] &parsed_4(D)->host
+
+this script finds the blocks with highest count and shows the first line
+of each block so that it is easy to identify the origin of the basic block.
+
+"""
+
+__author__ = 'llozano@google.com (Luis Lozano)'
+
+import optparse
+import os
+import re
+import shutil
+import sys
+import tempfile
+
+from cros_utils import command_executer
+
+
+# Given a line, check if it has a block count and return it.
+# Return -1 if there is no match
+def GetBlockCount(line):
+  match_obj = re.match('.*# BLOCK \d+ .*count:(\d+)', line)
+  if match_obj:
+    return int(match_obj.group(1))
+  else:
+    return -1
+
+
+class Collector(object):
+
+  def __init__(self, data_dir, cutoff, output_dir, tempdir):
+    self._data_dir = data_dir
+    self._cutoff = cutoff
+    self._output_dir = output_dir
+    self._tempdir = tempdir
+    self._ce = command_executer.GetCommandExecuter()
+
+  def CollectFileList(self, file_exp, list_file):
+    command = ("find %s -type f -name '%s' > %s" %
+               (self._data_dir, file_exp,
+                os.path.join(self._tempdir, list_file)))
+    ret = self._ce.RunCommand(command)
+    if ret:
+      raise RuntimeError('Failed: %s' % command)
+
+  def SummarizeLines(self, data_file):
+    sum_lines = []
+    search_lno = False
+    for line in data_file:
+      count = GetBlockCount(line)
+      if count != -1:
+        if count >= self._cutoff:
+          search_lno = True
+          sum_line = line.strip()
+          sum_count = count
+      # look for a line that starts with line number information
+      elif search_lno and re.match('^\s*\[.*: \d*:\d*]', line):
+        search_lno = False
+        sum_lines.append('%d:%s: %s %s' %
+                         (sum_count, data_file.name, sum_line, line))
+    return sum_lines
+
+  # Look for blocks in the data file that have a count larger than the cutoff
+  # and generate a sorted summary file of the hottest blocks.
+  def SummarizeFile(self, data_file, sum_file):
+    with open(data_file, 'r') as f:
+      sum_lines = self.SummarizeLines(f)
+
+    # sort reverse the list in place by the block count number
+    sum_lines.sort(key=GetBlockCount, reverse=True)
+
+    with open(sum_file, 'w') as sf:
+      sf.write(''.join(sum_lines))
+
+    print 'Generated file Summary: ', sum_file
+
+  # Find hottest blocks in the list of files, generate a sorted summary for
+  # each file and then do a sorted merge of all the summaries.
+  def SummarizeList(self, list_file, summary_file):
+    with open(os.path.join(self._tempdir, list_file)) as f:
+      sort_list = []
+      for file_name in f:
+        file_name = file_name.strip()
+        sum_file = '%s.sum' % file_name
+        sort_list.append('%s%s' % (sum_file, chr(0)))
+        self.SummarizeFile(file_name, sum_file)
+
+    tmp_list_file = os.path.join(self._tempdir, 'file_list.dat')
+    with open(tmp_list_file, 'w') as file_list_file:
+      for x in sort_list:
+        file_list_file.write(x)
+
+    merge_command = ('sort -nr -t: -k1 --merge --files0-from=%s > %s ' %
+                     (tmp_list_file, summary_file))
+
+    ret = self._ce.RunCommand(merge_command)
+    if ret:
+      raise RuntimeError('Failed: %s' % merge_command)
+    print 'Generated general summary: ', summary_file
+
+  def SummarizePreOptimized(self, summary_file):
+    self.CollectFileList('*.profile', 'chrome.profile.list')
+    self.SummarizeList('chrome.profile.list',
+                       os.path.join(self._output_dir, summary_file))
+
+  def SummarizeOptimized(self, summary_file):
+    self.CollectFileList('*.optimized', 'chrome.optimized.list')
+    self.SummarizeList('chrome.optimized.list',
+                       os.path.join(self._output_dir, summary_file))
+
+
+def Main(argv):
+  command_executer.InitCommandExecuter()
+  usage = ('usage: %prog --data_dir=<dir> --cutoff=<value> '
+           '--output_dir=<dir> [--keep_tmp]')
+  parser = optparse.OptionParser(usage=usage)
+  parser.add_option('--data_dir',
+                    dest='data_dir',
+                    help=('directory where the FDO (*.profile and '
+                          '*.optimized) files are located'))
+  parser.add_option('--cutoff',
+                    dest='cutoff',
+                    help='Minimum count to consider for each basic block')
+  parser.add_option('--output_dir',
+                    dest='output_dir',
+                    help=('directory where summary data will be generated'
+                          '(pre_optimized.txt, optimized.txt)'))
+  parser.add_option('--keep_tmp',
+                    action='store_true',
+                    dest='keep_tmp',
+                    default=False,
+                    help=('Keep directory with temporary files'
+                          '(for debugging purposes)'))
+  options = parser.parse_args(argv)[0]
+  if not all((options.data_dir, options.cutoff, options.output_dir)):
+    parser.print_help()
+    sys.exit(1)
+
+  tempdir = tempfile.mkdtemp()
+
+  co = Collector(options.data_dir, int(options.cutoff), options.output_dir,
+                 tempdir)
+  co.SummarizePreOptimized('pre_optimized.txt')
+  co.SummarizeOptimized('optimized.txt')
+
+  if not options.keep_tmp:
+    shutil.rmtree(tempdir, ignore_errors=True)
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/fdo_scripts/vanilla_vs_fdo.py b/fdo_scripts/vanilla_vs_fdo.py
new file mode 100644
index 0000000..6f42839
--- /dev/null
+++ b/fdo_scripts/vanilla_vs_fdo.py
@@ -0,0 +1,312 @@
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Script to build chrome with FDO and compare performance against no FDO."""
+
+import getpass
+import optparse
+import os
+import sys
+
+import image_chromeos
+import setup_chromeos
+from cros_utils import command_executer
+from cros_utils import misc
+from cros_utils import logger
+
+
+class Patcher(object):
+
+  def __init__(self, dir_to_patch, patch_file):
+    self._dir_to_patch = dir_to_patch
+    self._patch_file = patch_file
+    self._base_patch_command = 'patch -p0 %%s < %s' % patch_file
+    self._ce = command_executer.GetCommandExecuter()
+
+  def _RunPatchCommand(self, args):
+    patch_command = self._base_patch_command % args
+    command = ('cd %s && %s' % (self._dir_to_patch, patch_command))
+    return self._ce.RunCommand(command)
+
+  def _ApplyPatch(self, args):
+    full_args = '%s --dry-run' % args
+    ret = self._RunPatchCommand(full_args)
+    if ret:
+      raise RuntimeError('Patch dry run failed!')
+    ret = self._RunPatchCommand(args)
+    if ret:
+      raise RuntimeError('Patch application failed!')
+
+  def __enter__(self):
+    self._ApplyPatch('')
+
+  def __exit__(self, type, value, traceback):
+    self._ApplyPatch('-R')
+
+
+class FDOComparator(object):
+
+  def __init__(self, board, remotes, ebuild_version, plus_pgo, minus_pgo,
+               update_pgo, chromeos_root):
+    self._board = board
+    self._remotes = remotes
+    self._ebuild_version = ebuild_version
+    self._remote = remotes.split(',')[0]
+    self._chromeos_root = chromeos_root
+    self._profile_dir = 'profile_dir'
+    self._profile_path = os.path.join(self._chromeos_root, 'src', 'scripts',
+                                      os.path.basename(self._profile_dir))
+    self._plus_pgo = plus_pgo
+    self._minus_pgo = minus_pgo
+    self._update_pgo = update_pgo
+
+    self._ce = command_executer.GetCommandExecuter()
+    self._l = logger.GetLogger()
+
+  def _CheckoutChromeOS(self):
+    if not os.path.exists(self._chromeos_root):
+      setup_chromeos_args = [setup_chromeos.__file__,
+                             '--dir=%s' % self._chromeos_root, '--minilayout']
+      setup_chromeos.Main(setup_chromeos_args)
+
+  def _BuildChromeOSUsingBinaries(self):
+    image_dir = misc.GetImageDir(self._chromeos_root, self._board)
+    command = 'equery-%s l chromeos' % self._board
+    ret = self._ce.ChrootRunCommand(self._chromeos_root, command)
+    if ret:
+      command = misc.GetSetupBoardCommand(self._board, usepkg=True)
+      ret = self._ce.ChrootRunCommand(self._chromeos_root, command)
+      if ret:
+        raise RuntimeError("Couldn't run setup_board!")
+      command = misc.GetBuildPackagesCommand(self._board, True)
+      ret = self._ce.ChrootRunCommand(self._chromeos_root, command)
+      if ret:
+        raise RuntimeError("Couldn't run build_packages!")
+
+  def _ReportMismatches(self, build_log):
+    mismatch_signature = '-Wcoverage-mismatch'
+    mismatches = build_log.count(mismatch_signature)
+    self._l.LogOutput('Total mismatches: %s' % mismatches)
+    stale_files = set([])
+    for line in build_log.splitlines():
+      if mismatch_signature in line:
+        filename = line.split(':')[0]
+        stale_files.add(filename)
+    self._l.LogOutput('Total stale files: %s' % len(stale_files))
+
+  def _BuildChromeAndImage(self,
+                           ebuild_version='',
+                           env_dict={},
+                           cflags='',
+                           cxxflags='',
+                           ldflags='',
+                           label='',
+                           build_image_args=''):
+    env_string = misc.GetEnvStringFromDict(env_dict)
+    if not label:
+      label = ' '.join([env_string, cflags, cxxflags, ldflags, ebuild_version])
+      label = label.strip()
+      label = misc.GetFilenameFromString(label)
+    if not misc.DoesLabelExist(self._chromeos_root, self._board, label):
+      build_chrome_browser_args = ['--clean', '--chromeos_root=%s' %
+                                   self._chromeos_root, '--board=%s' %
+                                   self._board, '--env=%r' % env_string,
+                                   '--cflags=%r' % cflags, '--cxxflags=%r' %
+                                   cxxflags, '--ldflags=%r' % ldflags,
+                                   '--ebuild_version=%s' % ebuild_version,
+                                   '--build_image_args=%s' % build_image_args]
+
+      build_chrome_browser = os.path.join(
+          os.path.dirname(__file__), '..', 'build_chrome_browser.py')
+      command = 'python %s %s' % (build_chrome_browser,
+                                  ' '.join(build_chrome_browser_args))
+      ret, out, err = self._ce.RunCommandWOutput(command)
+      if '-fprofile-use' in cxxflags:
+        self._ReportMismatches(out)
+
+      if ret:
+        raise RuntimeError("Couldn't build chrome browser!")
+      misc.LabelLatestImage(self._chromeos_root, self._board, label)
+    return label
+
+  def _TestLabels(self, labels):
+    experiment_file = 'pgo_experiment.txt'
+    experiment_header = """
+    board: %s
+    remote: %s
+    """ % (self._board, self._remotes)
+    experiment_tests = """
+    benchmark: desktopui_PyAutoPerfTests {
+      iterations: 1
+    }
+    """
+
+    with open(experiment_file, 'w') as f:
+      print >> f, experiment_header
+      print >> f, experiment_tests
+      for label in labels:
+        # TODO(asharif): Fix crosperf so it accepts labels with symbols
+        crosperf_label = label
+        crosperf_label = crosperf_label.replace('-', 'minus')
+        crosperf_label = crosperf_label.replace('+', 'plus')
+        experiment_image = """
+        %s {
+          chromeos_image: %s
+        }
+        """ % (crosperf_label, os.path.join(
+            misc.GetImageDir(self._chromeos_root, self._board), label,
+            'chromiumos_test_image.bin'))
+        print >> f, experiment_image
+    crosperf = os.path.join(
+        os.path.dirname(__file__), '..', 'crosperf', 'crosperf')
+    command = '%s %s' % (crosperf, experiment_file)
+    ret = self._ce.RunCommand(command)
+    if ret:
+      raise RuntimeError("Couldn't run crosperf!")
+
+  def _ImageRemote(self, label):
+    image_path = os.path.join(
+        misc.GetImageDir(self._chromeos_root,
+                         self._board), label, 'chromiumos_test_image.bin')
+    image_chromeos_args = [image_chromeos.__file__, '--chromeos_root=%s' %
+                           self._chromeos_root, '--image=%s' % image_path,
+                           '--remote=%s' % self._remote,
+                           '--board=%s' % self._board]
+    image_chromeos.Main(image_chromeos_args)
+
+  def _ProfileRemote(self):
+    profile_cycler = os.path.join(
+        os.path.dirname(__file__), 'profile_cycler.py')
+    profile_cycler_args = ['--chromeos_root=%s' % self._chromeos_root,
+                           '--cycler=all', '--board=%s' % self._board,
+                           '--profile_dir=%s' % self._profile_path,
+                           '--remote=%s' % self._remote]
+    command = 'python %s %s' % (profile_cycler, ' '.join(profile_cycler_args))
+    ret = self._ce.RunCommand(command)
+    if ret:
+      raise RuntimeError("Couldn't profile cycler!")
+
+  def _BuildGenerateImage(self):
+    # TODO(asharif): add cflags as well.
+    labels_list = ['fprofile-generate', self._ebuild_version]
+    label = '_'.join(labels_list)
+    generate_label = self._BuildChromeAndImage(
+        env_dict={'USE': 'chrome_internal -pgo pgo_generate'},
+        label=label,
+        ebuild_version=self._ebuild_version,
+        build_image_args='--rootfs_boost_size=400')
+    return generate_label
+
+  def _BuildUseImage(self):
+    ctarget = misc.GetCtargetFromBoard(self._board, self._chromeos_root)
+    chroot_profile_dir = os.path.join('/home/%s/trunk' % getpass.getuser(),
+                                      'src', 'scripts', self._profile_dir,
+                                      ctarget)
+    cflags = ('-fprofile-use '
+              '-fprofile-correction '
+              '-Wno-error '
+              '-fdump-tree-optimized-blocks-lineno '
+              '-fdump-ipa-profile-blocks-lineno '
+              '-fno-vpt '
+              '-fprofile-dir=%s' % chroot_profile_dir)
+    labels_list = ['updated_pgo', self._ebuild_version]
+    label = '_'.join(labels_list)
+    pgo_use_label = self._BuildChromeAndImage(
+        env_dict={'USE': 'chrome_internal -pgo'},
+        cflags=cflags,
+        cxxflags=cflags,
+        ldflags=cflags,
+        label=label,
+        ebuild_version=self._ebuild_version)
+    return pgo_use_label
+
+  def DoAll(self):
+    self._CheckoutChromeOS()
+    self._BuildChromeOSUsingBinaries()
+    labels = []
+
+    if self._minus_pgo:
+      minus_pgo = self._BuildChromeAndImage(
+          env_dict={'USE': 'chrome_internal -pgo'},
+          ebuild_version=self._ebuild_version)
+      labels.append(minus_pgo)
+    if self._plus_pgo:
+      plus_pgo = self._BuildChromeAndImage(
+          env_dict={'USE': 'chrome_internal pgo'},
+          ebuild_version=self._ebuild_version)
+      labels.append(plus_pgo)
+
+    if self._update_pgo:
+      if not os.path.exists(self._profile_path):
+        # Build Chrome with -fprofile-generate
+        generate_label = self._BuildGenerateImage()
+        # Image to the remote box.
+        self._ImageRemote(generate_label)
+        # Profile it using all page cyclers.
+        self._ProfileRemote()
+
+      # Use the profile directory to rebuild it.
+      updated_pgo_label = self._BuildUseImage()
+      labels.append(updated_pgo_label)
+
+    # Run crosperf on all images now.
+    self._TestLabels(labels)
+    return 0
+
+
+def Main(argv):
+  """The main function."""
+  # Common initializations
+  ###  command_executer.InitCommandExecuter(True)
+  command_executer.InitCommandExecuter()
+  parser = optparse.OptionParser()
+  parser.add_option('--remote',
+                    dest='remote',
+                    help='Remote machines to run tests on.')
+  parser.add_option('--board',
+                    dest='board',
+                    default='x86-zgb',
+                    help='The target board.')
+  parser.add_option('--ebuild_version',
+                    dest='ebuild_version',
+                    default='',
+                    help='The Chrome ebuild version to use.')
+  parser.add_option('--plus_pgo',
+                    dest='plus_pgo',
+                    action='store_true',
+                    default=False,
+                    help='Build USE=+pgo.')
+  parser.add_option('--minus_pgo',
+                    dest='minus_pgo',
+                    action='store_true',
+                    default=False,
+                    help='Build USE=-pgo.')
+  parser.add_option('--update_pgo',
+                    dest='update_pgo',
+                    action='store_true',
+                    default=False,
+                    help='Update pgo and build Chrome with the update.')
+  parser.add_option('--chromeos_root',
+                    dest='chromeos_root',
+                    default=False,
+                    help='The chromeos root directory')
+  options, _ = parser.parse_args(argv)
+  if not options.board:
+    print 'Please give a board.'
+    return 1
+  if not options.remote:
+    print 'Please give at least one remote machine.'
+    return 1
+  if not options.chromeos_root:
+    print 'Please provide the chromeos root directory.'
+    return 1
+  if not any((options.minus_pgo, options.plus_pgo, options.update_pgo)):
+    print 'Please provide at least one build option.'
+    return 1
+  fc = FDOComparator(options.board, options.remote, options.ebuild_version,
+                     options.plus_pgo, options.minus_pgo, options.update_pgo,
+                     os.path.expanduser(options.chromeos_root))
+  return fc.DoAll()
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/file_lock_machine.py b/file_lock_machine.py
new file mode 100755
index 0000000..9b1d336
--- /dev/null
+++ b/file_lock_machine.py
@@ -0,0 +1,372 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to lock/unlock machines."""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import datetime
+import fcntl
+import getpass
+import glob
+import json
+import os
+import socket
+import sys
+import time
+
+from cros_utils import logger
+
+LOCK_SUFFIX = '_check_lock_liveness'
+
+# The locks file directory REQUIRES that 'group' only has read/write
+# privileges and 'world' has no privileges.  So the mask must be
+# '0027': 0777 - 0027 = 0750.
+LOCK_MASK = 0027
+
+
+def FileCheckName(name):
+  return name + LOCK_SUFFIX
+
+
+def OpenLiveCheck(file_name):
+  with FileCreationMask(LOCK_MASK):
+    fd = open(file_name, 'a')
+  try:
+    fcntl.lockf(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
+  except IOError:
+    raise
+  return fd
+
+
+class FileCreationMask(object):
+  """Class for the file creation mask."""
+
+  def __init__(self, mask):
+    self._mask = mask
+    self._old_mask = None
+
+  def __enter__(self):
+    self._old_mask = os.umask(self._mask)
+
+  def __exit__(self, typ, value, traceback):
+    os.umask(self._old_mask)
+
+
+class LockDescription(object):
+  """The description of the lock."""
+
+  def __init__(self, desc=None):
+    try:
+      self.owner = desc['owner']
+      self.exclusive = desc['exclusive']
+      self.counter = desc['counter']
+      self.time = desc['time']
+      self.reason = desc['reason']
+      self.auto = desc['auto']
+    except (KeyError, TypeError):
+      self.owner = ''
+      self.exclusive = False
+      self.counter = 0
+      self.time = 0
+      self.reason = ''
+      self.auto = False
+
+  def IsLocked(self):
+    return self.counter or self.exclusive
+
+  def __str__(self):
+    return ' '.join(['Owner: %s' % self.owner, 'Exclusive: %s' % self.exclusive,
+                     'Counter: %s' % self.counter, 'Time: %s' % self.time,
+                     'Reason: %s' % self.reason, 'Auto: %s' % self.auto])
+
+
+class FileLock(object):
+  """File lock operation class."""
+  FILE_OPS = []
+
+  def __init__(self, lock_filename):
+    self._filepath = lock_filename
+    lock_dir = os.path.dirname(lock_filename)
+    assert os.path.isdir(lock_dir), ("Locks dir: %s doesn't exist!" % lock_dir)
+    self._file = None
+    self._description = None
+
+  def getDescription(self):
+    return self._description
+
+  def getFilePath(self):
+    return self._filepath
+
+  def setDescription(self, desc):
+    self._description = desc
+
+  @classmethod
+  def AsString(cls, file_locks):
+    stringify_fmt = '%-30s %-15s %-4s %-4s %-15s %-40s %-4s'
+    header = stringify_fmt % ('machine', 'owner', 'excl', 'ctr', 'elapsed',
+                              'reason', 'auto')
+    lock_strings = []
+    for file_lock in file_locks:
+
+      elapsed_time = datetime.timedelta(
+          seconds=int(time.time() - file_lock.getDescription().time))
+      elapsed_time = '%s ago' % elapsed_time
+      lock_strings.append(
+          stringify_fmt %
+          (os.path.basename(file_lock.getFilePath),
+           file_lock.getDescription().owner,
+           file_lock.getDescription().exclusive,
+           file_lock.getDescription().counter,
+           elapsed_time, file_lock.getDescription().reason,
+           file_lock.getDescription().auto))
+    table = '\n'.join(lock_strings)
+    return '\n'.join([header, table])
+
+  @classmethod
+  def ListLock(cls, pattern, locks_dir):
+    if not locks_dir:
+      locks_dir = Machine.LOCKS_DIR
+    full_pattern = os.path.join(locks_dir, pattern)
+    file_locks = []
+    for lock_filename in glob.glob(full_pattern):
+      if LOCK_SUFFIX in lock_filename:
+        continue
+      file_lock = FileLock(lock_filename)
+      with file_lock as lock:
+        if lock.IsLocked():
+          file_locks.append(file_lock)
+    logger.GetLogger().LogOutput('\n%s' % cls.AsString(file_locks))
+
+  def __enter__(self):
+    with FileCreationMask(LOCK_MASK):
+      try:
+        self._file = open(self._filepath, 'a+')
+        self._file.seek(0, os.SEEK_SET)
+
+        if fcntl.flock(self._file.fileno(), fcntl.LOCK_EX) == -1:
+          raise IOError('flock(%s, LOCK_EX) failed!' % self._filepath)
+
+        try:
+          desc = json.load(self._file)
+        except (EOFError, ValueError):
+          desc = None
+        self._description = LockDescription(desc)
+
+        if self._description.exclusive and self._description.auto:
+          locked_byself = False
+          for fd in self.FILE_OPS:
+            if fd.name == FileCheckName(self._filepath):
+              locked_byself = True
+              break
+          if not locked_byself:
+            try:
+              fp = OpenLiveCheck(FileCheckName(self._filepath))
+            except IOError:
+              pass
+            else:
+              self._description = LockDescription()
+              fcntl.lockf(fp, fcntl.LOCK_UN)
+              fp.close()
+        return self._description
+      # Check this differently?
+      except IOError as ex:
+        logger.GetLogger().LogError(ex)
+        return None
+
+  def __exit__(self, typ, value, traceback):
+    self._file.truncate(0)
+    self._file.write(json.dumps(self._description.__dict__, skipkeys=True))
+    self._file.close()
+
+  def __str__(self):
+    return self.AsString([self])
+
+
+class Lock(object):
+  """Lock class"""
+
+  def __init__(self, lock_file, auto=True):
+    self._to_lock = os.path.basename(lock_file)
+    self._lock_file = lock_file
+    self._logger = logger.GetLogger()
+    self._auto = auto
+
+  def NonBlockingLock(self, exclusive, reason=''):
+    with FileLock(self._lock_file) as lock:
+      if lock.exclusive:
+        self._logger.LogError(
+            'Exclusive lock already acquired by %s. Reason: %s' %
+            (lock.owner, lock.reason))
+        return False
+
+      if exclusive:
+        if lock.counter:
+          self._logger.LogError('Shared lock already acquired')
+          return False
+        lock_file_check = FileCheckName(self._lock_file)
+        fd = OpenLiveCheck(lock_file_check)
+        FileLock.FILE_OPS.append(fd)
+
+        lock.exclusive = True
+        lock.reason = reason
+        lock.owner = getpass.getuser()
+        lock.time = time.time()
+        lock.auto = self._auto
+      else:
+        lock.counter += 1
+    self._logger.LogOutput('Successfully locked: %s' % self._to_lock)
+    return True
+
+  def Unlock(self, exclusive, force=False):
+    with FileLock(self._lock_file) as lock:
+      if not lock.IsLocked():
+        self._logger.LogWarning("Can't unlock unlocked machine!")
+        return True
+
+      if lock.exclusive != exclusive:
+        self._logger.LogError('shared locks must be unlocked with --shared')
+        return False
+
+      if lock.exclusive:
+        if lock.owner != getpass.getuser() and not force:
+          self._logger.LogError("%s can't unlock lock owned by: %s" %
+                                (getpass.getuser(), lock.owner))
+          return False
+        if lock.auto != self._auto:
+          self._logger.LogError("Can't unlock lock with different -a"
+                                ' parameter.')
+          return False
+        lock.exclusive = False
+        lock.reason = ''
+        lock.owner = ''
+
+        if self._auto:
+          del_list = [i
+                      for i in FileLock.FILE_OPS
+                      if i.name == FileCheckName(self._lock_file)]
+          for i in del_list:
+            FileLock.FILE_OPS.remove(i)
+          for f in del_list:
+            fcntl.lockf(f, fcntl.LOCK_UN)
+            f.close()
+          del del_list
+          os.remove(FileCheckName(self._lock_file))
+
+      else:
+        lock.counter -= 1
+    return True
+
+
+class Machine(object):
+  """Machine class"""
+
+  LOCKS_DIR = '/google/data/rw/users/mo/mobiletc-prebuild/locks'
+
+  def __init__(self, name, locks_dir=LOCKS_DIR, auto=True):
+    self._name = name
+    self._auto = auto
+    try:
+      self._full_name = socket.gethostbyaddr(name)[0]
+    except socket.error:
+      self._full_name = self._name
+    self._full_name = os.path.join(locks_dir, self._full_name)
+
+  def Lock(self, exclusive=False, reason=''):
+    lock = Lock(self._full_name, self._auto)
+    return lock.NonBlockingLock(exclusive, reason)
+
+  def TryLock(self, timeout=300, exclusive=False, reason=''):
+    locked = False
+    sleep = timeout / 10
+    while True:
+      locked = self.Lock(exclusive, reason)
+      if locked or not timeout >= 0:
+        break
+      print('Lock not acquired for {0}, wait {1} seconds ...'.format(
+          self._name,
+          sleep))
+      time.sleep(sleep)
+      timeout -= sleep
+    return locked
+
+  def Unlock(self, exclusive=False, ignore_ownership=False):
+    lock = Lock(self._full_name, self._auto)
+    return lock.Unlock(exclusive, ignore_ownership)
+
+
+def Main(argv):
+  """The main function."""
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-r',
+                      '--reason',
+                      dest='reason',
+                      default='',
+                      help='The lock reason.')
+  parser.add_argument('-u',
+                      '--unlock',
+                      dest='unlock',
+                      action='store_true',
+                      default=False,
+                      help='Use this to unlock.')
+  parser.add_argument('-l',
+                      '--list_locks',
+                      dest='list_locks',
+                      action='store_true',
+                      default=False,
+                      help='Use this to list locks.')
+  parser.add_argument('-f',
+                      '--ignore_ownership',
+                      dest='ignore_ownership',
+                      action='store_true',
+                      default=False,
+                      help="Use this to force unlock on a lock you don't own.")
+  parser.add_argument('-s',
+                      '--shared',
+                      dest='shared',
+                      action='store_true',
+                      default=False,
+                      help='Use this for a shared (non-exclusive) lock.')
+  parser.add_argument('-d',
+                      '--dir',
+                      dest='locks_dir',
+                      action='store',
+                      default=Machine.LOCKS_DIR,
+                      help='Use this to set different locks_dir')
+  parser.add_argument('args', nargs='*', help='Machine arg.')
+
+  options = parser.parse_args(argv)
+
+  options.locks_dir = os.path.abspath(options.locks_dir)
+  exclusive = not options.shared
+
+  if not options.list_locks and len(options.args) != 2:
+    logger.GetLogger().LogError(
+        'Either --list_locks or a machine arg is needed.')
+    return 1
+
+  if len(options.args) > 1:
+    machine = Machine(options.args[1], options.locks_dir, auto=False)
+  else:
+    machine = None
+
+  if options.list_locks:
+    FileLock.ListLock('*', options.locks_dir)
+    retval = True
+  elif options.unlock:
+    retval = machine.Unlock(exclusive, options.ignore_ownership)
+  else:
+    retval = machine.Lock(exclusive, options.reason)
+
+  if retval:
+    return 0
+  else:
+    return 1
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv[1:]))
diff --git a/generate-waterfall-reports.py b/generate-waterfall-reports.py
new file mode 100755
index 0000000..ed8e369
--- /dev/null
+++ b/generate-waterfall-reports.py
@@ -0,0 +1,845 @@
+#!/usr/bin/env python2
+"""Generate summary report for ChromeOS toolchain waterfalls."""
+
+# Desired future features (to be added):
+# - arguments to allow generating only the main waterfall report,
+#   or only the rotating builder reports, or only the failures
+#   report; or the waterfall reports without the failures report.
+# - Better way of figuring out which dates/builds to generate
+#   reports for: probably an argument specifying a date or a date
+#   range, then use something like the new buildbot utils to
+#   query the build logs to find the right build numbers for the
+#   builders for the specified dates.
+# - Store/get the json/data files in mobiletc-prebuild's x20 area.
+# - Update data in json file to reflect, for each testsuite, which
+#   tests are not expected to run on which boards; update this
+#   script to use that data appropriately.
+# - Make sure user's prodaccess is up-to-date before trying to use
+#   this script.
+# - Add some nice formatting/highlighting to reports.
+
+from __future__ import print_function
+
+import argparse
+import getpass
+import json
+import os
+import re
+import shutil
+import sys
+import time
+
+from cros_utils import command_executer
+
+# All the test suites whose data we might want for the reports.
+TESTS = (
+    ('bvt-inline', 'HWTest'),
+    ('bvt-cq', 'HWTest'),
+    ('toolchain-tests', 'HWTest'),
+    ('security', 'HWTest'),
+    ('kernel_daily_regression', 'HWTest'),
+    ('kernel_daily_benchmarks', 'HWTest'),)
+
+# The main waterfall builders, IN THE ORDER IN WHICH WE WANT THEM
+# LISTED IN THE REPORT.
+WATERFALL_BUILDERS = [
+    'amd64-gcc-toolchain', 'arm-gcc-toolchain', 'arm64-gcc-toolchain',
+    'x86-gcc-toolchain', 'amd64-llvm-toolchain', 'arm-llvm-toolchain',
+    'arm64-llvm-toolchain', 'x86-llvm-toolchain', 'amd64-llvm-next-toolchain',
+    'arm-llvm-next-toolchain', 'arm64-llvm-next-toolchain',
+    'x86-llvm-next-toolchain'
+]
+
+DATA_DIR = '/google/data/rw/users/mo/mobiletc-prebuild/waterfall-report-data/'
+ARCHIVE_DIR = '/google/data/rw/users/mo/mobiletc-prebuild/waterfall-reports/'
+DOWNLOAD_DIR = '/tmp/waterfall-logs'
+MAX_SAVE_RECORDS = 7
+BUILD_DATA_FILE = '%s/build-data.txt' % DATA_DIR
+GCC_ROTATING_BUILDER = 'gcc_toolchain'
+LLVM_ROTATING_BUILDER = 'llvm_next_toolchain'
+ROTATING_BUILDERS = [GCC_ROTATING_BUILDER, LLVM_ROTATING_BUILDER]
+
+# For int-to-string date conversion.  Note, the index of the month in this
+# list needs to correspond to the month's integer value.  i.e. 'Sep' must
+# be as MONTHS[9].
+MONTHS = [
+    '', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
+    'Nov', 'Dec'
+]
+
+
+def format_date(int_date):
+  """Convert an integer date to a string date. YYYYMMDD -> YYYY-MMM-DD"""
+
+  if int_date == 0:
+    return 'today'
+
+  tmp_date = int_date
+  day = tmp_date % 100
+  tmp_date = tmp_date / 100
+  month = tmp_date % 100
+  year = tmp_date / 100
+
+  month_str = MONTHS[month]
+  date_str = '%d-%s-%d' % (year, month_str, day)
+  return date_str
+
+
+def EmailReport(report_file, report_type, date):
+  subject = '%s Waterfall Summary report, %s' % (report_type, date)
+  email_to = getpass.getuser()
+  sendgmr_path = '/google/data/ro/projects/gws-sre/sendgmr'
+  command = ('%s --to=%s@google.com --subject="%s" --body_file=%s' %
+             (sendgmr_path, email_to, subject, report_file))
+  command_executer.GetCommandExecuter().RunCommand(command)
+
+
+def PruneOldFailures(failure_dict, int_date):
+  earliest_date = int_date - MAX_SAVE_RECORDS
+  for suite in failure_dict:
+    suite_dict = failure_dict[suite]
+    test_keys_to_remove = []
+    for test in suite_dict:
+      test_dict = suite_dict[test]
+      msg_keys_to_remove = []
+      for msg in test_dict:
+        fails = test_dict[msg]
+        i = 0
+        while i < len(fails) and fails[i][0] <= earliest_date:
+          i += 1
+        new_fails = fails[i:]
+        test_dict[msg] = new_fails
+        if len(new_fails) == 0:
+          msg_keys_to_remove.append(msg)
+
+      for k in msg_keys_to_remove:
+        del test_dict[k]
+
+      suite_dict[test] = test_dict
+      if len(test_dict) == 0:
+        test_keys_to_remove.append(test)
+
+    for k in test_keys_to_remove:
+      del suite_dict[k]
+
+    failure_dict[suite] = suite_dict
+
+
+def GetBuildID(build_bot, date):
+  """Get the build id for a build_bot at a given date."""
+  day = '{day:02d}'.format(day=date%100)
+  mon = MONTHS[date/100%100]
+  date_string = mon + ' ' + day
+  if build_bot in WATERFALL_BUILDERS:
+    url = 'https://uberchromegw.corp.google.com/i/chromeos/' + \
+          'builders/%s?numbuilds=200' % build_bot
+  if build_bot in ROTATING_BUILDERS:
+    url = 'https://uberchromegw.corp.google.com/i/chromiumos.tryserver/' + \
+          'builders/%s?numbuilds=200' % build_bot
+  command = 'sso_client %s' %url
+  retval = 1
+  retry_time = 3
+  while retval and retry_time:
+    retval, output, _ = \
+        command_executer.GetCommandExecuter().RunCommandWOutput(command, \
+        print_to_console=False)
+    retry_time -= 1
+
+  if retval:
+    return []
+
+  out = output.split('\n')
+  line_num = 0
+  build_id = []
+  # Parse the output like this
+  # <td>Dec 14 10:55</td>
+  # <td class="revision">??</td>
+  # <td failure</td><td><a href="../builders/gcc_toolchain/builds/109">#109</a>
+  while line_num < len(out):
+    if date_string in out[line_num]:
+      if line_num + 2 < len(out):
+        build_num_line = out[line_num + 2]
+        raw_num = re.findall(r'builds/\d+', build_num_line)
+        # raw_num is ['builds/109'] in the example.
+        if raw_num:
+          build_id.append(int(raw_num[0].split('/')[1]))
+    line_num += 1
+  return build_id
+
+
+def GenerateFailuresReport(fail_dict, date):
+  filename = 'waterfall_report.failures.%s.txt' % date
+  date_string = format_date(date)
+  with open(filename, 'w') as out_file:
+    # Write failure report section.
+    out_file.write('\n\nSummary of Test Failures as of %s\n\n' % date_string)
+
+    # We want to sort the errors and output them in order of the ones that occur
+    # most often.  So we have to collect the data about all of them, then sort
+    # it.
+    error_groups = []
+    for suite in fail_dict:
+      suite_dict = fail_dict[suite]
+      if suite_dict:
+        for test in suite_dict:
+          test_dict = suite_dict[test]
+          for err_msg in test_dict:
+            err_list = test_dict[err_msg]
+            sorted_list = sorted(err_list, key=lambda x: x[0], reverse=True)
+            err_group = [len(sorted_list), suite, test, err_msg, sorted_list]
+            error_groups.append(err_group)
+
+    # Sort the errors by the number of errors of each type. Then output them in
+    # order.
+    sorted_errors = sorted(error_groups, key=lambda x: x[0], reverse=True)
+    for i in range(0, len(sorted_errors)):
+      err_group = sorted_errors[i]
+      suite = err_group[1]
+      test = err_group[2]
+      err_msg = err_group[3]
+      err_list = err_group[4]
+      out_file.write('Suite: %s\n' % suite)
+      out_file.write('    %s (%d failures)\n' % (test, len(err_list)))
+      out_file.write('    (%s)\n' % err_msg)
+      for i in range(0, len(err_list)):
+        err = err_list[i]
+        out_file.write('        %s, %s, %s\n' % (format_date(err[0]), err[1],
+                                                 err[2]))
+      out_file.write('\n')
+
+  print('Report generated in %s.' % filename)
+  return filename
+
+
+def GenerateWaterfallReport(report_dict, fail_dict, waterfall_type, date,
+                            omit_failures):
+  """Write out the actual formatted report."""
+
+  filename = 'waterfall_report.%s_waterfall.%s.txt' % (waterfall_type, date)
+
+  date_string = ''
+  date_list = report_dict['date']
+  num_dates = len(date_list)
+  i = 0
+  for d in date_list:
+    date_string += d
+    if i < num_dates - 1:
+      date_string += ', '
+    i += 1
+
+  if waterfall_type == 'main':
+    report_list = WATERFALL_BUILDERS
+  else:
+    report_list = report_dict.keys()
+
+  with open(filename, 'w') as out_file:
+    # Write Report Header
+    out_file.write('\nStatus of %s Waterfall Builds from %s\n\n' %
+                   (waterfall_type, date_string))
+    out_file.write('                                                          '
+                   '                          kernel       kernel\n')
+    out_file.write('                         Build    bvt-         bvt-cq     '
+                   'toolchain-   security     daily        daily\n')
+    out_file.write('                         status  inline                   '
+                   '  tests                 regression   benchmarks\n')
+    out_file.write('                               [P/ F/ DR]*   [P/ F /DR]*  '
+                   '[P/ F/ DR]* [P/ F/ DR]* [P/ F/ DR]* [P/ F/ DR]*\n\n')
+
+    # Write daily waterfall status section.
+    for i in range(0, len(report_list)):
+      builder = report_list[i]
+      if builder == 'date':
+        continue
+
+      if builder not in report_dict:
+        out_file.write('Unable to find information for %s.\n\n' % builder)
+        continue
+
+      build_dict = report_dict[builder]
+      status = build_dict.get('build_status', 'bad')
+      inline = build_dict.get('bvt-inline', '[??/ ?? /??]')
+      cq = build_dict.get('bvt-cq', '[??/ ?? /??]')
+      inline_color = build_dict.get('bvt-inline-color', '')
+      cq_color = build_dict.get('bvt-cq-color', '')
+      if 'x86' not in builder:
+        toolchain = build_dict.get('toolchain-tests', '[??/ ?? /??]')
+        security = build_dict.get('security', '[??/ ?? /??]')
+        toolchain_color = build_dict.get('toolchain-tests-color', '')
+        security_color = build_dict.get('security-color', '')
+        if 'gcc' in builder:
+          regression = build_dict.get('kernel_daily_regression', '[??/ ?? /??]')
+          bench = build_dict.get('kernel_daily_benchmarks', '[??/ ?? /??]')
+          regression_color = build_dict.get('kernel_daily_regression-color', '')
+          bench_color = build_dict.get('kernel_daily_benchmarks-color', '')
+          out_file.write('                                  %6s        %6s'
+                         '       %6s      %6s      %6s      %6s\n' %
+                         (inline_color, cq_color, toolchain_color,
+                          security_color, regression_color, bench_color))
+          out_file.write('%25s %3s  %s %s %s %s %s %s\n' % (builder, status,
+                                                            inline, cq,
+                                                            toolchain, security,
+                                                            regression, bench))
+        else:
+          out_file.write('                                  %6s        %6s'
+                         '       %6s      %6s\n' % (inline_color, cq_color,
+                                                    toolchain_color,
+                                                    security_color))
+          out_file.write('%25s %3s  %s %s %s %s\n' % (builder, status, inline,
+                                                      cq, toolchain, security))
+      else:
+        out_file.write('                                  %6s        %6s\n' %
+                       (inline_color, cq_color))
+        out_file.write('%25s %3s  %s %s\n' % (builder, status, inline, cq))
+      if 'build_link' in build_dict:
+        out_file.write('%s\n\n' % build_dict['build_link'])
+
+    out_file.write('\n\n*P = Number of tests in suite that Passed; F = '
+                   'Number of tests in suite that Failed; DR = Number of tests'
+                   ' in suite that Didn\'t Run.\n')
+
+    if omit_failures:
+      print('Report generated in %s.' % filename)
+      return filename
+
+    # Write failure report section.
+    out_file.write('\n\nSummary of Test Failures as of %s\n\n' % date_string)
+
+    # We want to sort the errors and output them in order of the ones that occur
+    # most often.  So we have to collect the data about all of them, then sort
+    # it.
+    error_groups = []
+    for suite in fail_dict:
+      suite_dict = fail_dict[suite]
+      if suite_dict:
+        for test in suite_dict:
+          test_dict = suite_dict[test]
+          for err_msg in test_dict:
+            err_list = test_dict[err_msg]
+            sorted_list = sorted(err_list, key=lambda x: x[0], reverse=True)
+            err_group = [len(sorted_list), suite, test, err_msg, sorted_list]
+            error_groups.append(err_group)
+
+    # Sort the errors by the number of errors of each type. Then output them in
+    # order.
+    sorted_errors = sorted(error_groups, key=lambda x: x[0], reverse=True)
+    for i in range(0, len(sorted_errors)):
+      err_group = sorted_errors[i]
+      suite = err_group[1]
+      test = err_group[2]
+      err_msg = err_group[3]
+      err_list = err_group[4]
+      out_file.write('Suite: %s\n' % suite)
+      out_file.write('    %s (%d failures)\n' % (test, len(err_list)))
+      out_file.write('    (%s)\n' % err_msg)
+      for i in range(0, len(err_list)):
+        err = err_list[i]
+        out_file.write('        %s, %s, %s\n' % (format_date(err[0]), err[1],
+                                                 err[2]))
+      out_file.write('\n')
+
+  print('Report generated in %s.' % filename)
+  return filename
+
+
+def UpdateReport(report_dict, builder, test, report_date, build_link,
+                 test_summary, board, color):
+  """Update the data in our report dictionary with current test's data."""
+
+  if 'date' not in report_dict:
+    report_dict['date'] = [report_date]
+  elif report_date not in report_dict['date']:
+    # It is possible that some of the builders started/finished on different
+    # days, so we allow for multiple dates in the reports.
+    report_dict['date'].append(report_date)
+
+  build_key = ''
+  if builder == GCC_ROTATING_BUILDER:
+    build_key = '%s-gcc-toolchain' % board
+  elif builder == LLVM_ROTATING_BUILDER:
+    build_key = '%s-llvm-next-toolchain' % board
+  else:
+    build_key = builder
+
+  if build_key not in report_dict.keys():
+    build_dict = dict()
+  else:
+    build_dict = report_dict[build_key]
+
+  if 'build_link' not in build_dict:
+    build_dict['build_link'] = build_link
+
+  if 'date' not in build_dict:
+    build_dict['date'] = report_date
+
+  if 'board' in build_dict and build_dict['board'] != board:
+    raise RuntimeError('Error: Two different boards (%s,%s) in one build (%s)!'
+                       % (board, build_dict['board'], build_link))
+  build_dict['board'] = board
+
+  color_key = '%s-color' % test
+  build_dict[color_key] = color
+
+  # Check to see if we already have a build status for this build_key
+  status = ''
+  if 'build_status' in build_dict.keys():
+    # Use current build_status, unless current test failed (see below).
+    status = build_dict['build_status']
+
+  if not test_summary:
+    # Current test data was not available, so something was bad with build.
+    build_dict['build_status'] = 'bad'
+    build_dict[test] = '[  no data  ]'
+  else:
+    build_dict[test] = test_summary
+    if not status:
+      # Current test ok; no other data, so assume build was ok.
+      build_dict['build_status'] = 'ok'
+
+  report_dict[build_key] = build_dict
+
+
+def UpdateBuilds(builds):
+  """Update the data in our build-data.txt file."""
+
+  # The build data file records the last build number for which we
+  # generated a report.  When we generate the next report, we read
+  # this data and increment it to get the new data; when we finish
+  # generating the reports, we write the updated values into this file.
+  # NOTE: One side effect of doing this at the end:  If the script
+  # fails in the middle of generating a report, this data does not get
+  # updated.
+  with open(BUILD_DATA_FILE, 'w') as fp:
+    gcc_max = 0
+    llvm_max = 0
+    for b in builds:
+      if b[0] == GCC_ROTATING_BUILDER:
+        gcc_max = max(gcc_max, b[1])
+      elif b[0] == LLVM_ROTATING_BUILDER:
+        llvm_max = max(llvm_max, b[1])
+      else:
+        fp.write('%s,%d\n' % (b[0], b[1]))
+    if gcc_max > 0:
+      fp.write('%s,%d\n' % (GCC_ROTATING_BUILDER, gcc_max))
+    if llvm_max > 0:
+      fp.write('%s,%d\n' % (LLVM_ROTATING_BUILDER, llvm_max))
+
+
+def GetBuilds(date=0):
+  """Get build id from builds."""
+
+  # If date is set, get the build id from waterfall.
+  builds = []
+
+  if date:
+    for builder in WATERFALL_BUILDERS + ROTATING_BUILDERS:
+      build_ids = GetBuildID(builder, date)
+      for build_id in build_ids:
+        builds.append((builder, build_id))
+    return builds
+
+  # If date is not set, we try to get the most recent builds.
+  # Read the values of the last builds used to generate a report, and
+  # increment them appropriately, to get values for generating the
+  # current report.  (See comments in UpdateBuilds).
+  with open(BUILD_DATA_FILE, 'r') as fp:
+    lines = fp.readlines()
+
+  for l in lines:
+    l = l.rstrip()
+    words = l.split(',')
+    builder = words[0]
+    build = int(words[1])
+    builds.append((builder, build + 1))
+    # NOTE: We are assuming here that there are always 2 daily builds in
+    # each of the rotating builders.  I am not convinced this is a valid
+    # assumption.
+    if builder in ROTATING_BUILDERS:
+      builds.append((builder, build + 2))
+
+  return builds
+
+
+def RecordFailures(failure_dict, platform, suite, builder, int_date, log_file,
+                   build_num, failed):
+  """Read and update the stored data about test  failures."""
+
+  # Get the dictionary for this particular test suite from the failures
+  # dictionary.
+  suite_dict = failure_dict[suite]
+
+  # Read in the entire log file for this test/build.
+  with open(log_file, 'r') as in_file:
+    lines = in_file.readlines()
+
+  # Update the entries in the failure dictionary for each test within this suite
+  # that failed.
+  for test in failed:
+    # Check to see if there is already an entry in the suite dictionary for this
+    # test; if so use that, otherwise create a new entry.
+    if test in suite_dict:
+      test_dict = suite_dict[test]
+    else:
+      test_dict = dict()
+    # Parse the lines from the log file, looking for lines that indicate this
+    # test failed.
+    msg = ''
+    for l in lines:
+      words = l.split()
+      if len(words) < 3:
+        continue
+      if ((words[0] == test and words[1] == 'ERROR:') or
+          (words[0] == 'provision' and words[1] == 'FAIL:')):
+        words = words[2:]
+        # Get the error message for the failure.
+        msg = ' '.join(words)
+    if not msg:
+      msg = 'Unknown_Error'
+
+    # Look for an existing entry for this error message in the test dictionary.
+    # If found use that, otherwise create a new entry for this error message.
+    if msg in test_dict:
+      error_list = test_dict[msg]
+    else:
+      error_list = list()
+    # Create an entry for this new failure
+    new_item = [int_date, platform, builder, build_num]
+    # Add this failure to the error list if it's not already there.
+    if new_item not in error_list:
+      error_list.append([int_date, platform, builder, build_num])
+    # Sort the error list by date.
+    error_list.sort(key=lambda x: x[0])
+    # Calculate the earliest date to save; delete records for older failures.
+    earliest_date = int_date - MAX_SAVE_RECORDS
+    i = 0
+    while i < len(error_list) and error_list[i][0] <= earliest_date:
+      i += 1
+    if i > 0:
+      error_list = error_list[i:]
+    # Save the error list in the test's dictionary, keyed on error_msg.
+    test_dict[msg] = error_list
+
+    # Save the updated test dictionary in the test_suite dictionary.
+    suite_dict[test] = test_dict
+
+  # Save the updated test_suite dictionary in the failure dictionary.
+  failure_dict[suite] = suite_dict
+
+
+def ParseLogFile(log_file, test_data_dict, failure_dict, test, builder,
+                 build_num, build_link):
+  """Parse the log file from the given builder, build_num and test.
+
+     Also adds the results for this test to our test results dictionary,
+     and calls RecordFailures, to update our test failure data.
+  """
+
+  lines = []
+  with open(log_file, 'r') as infile:
+    lines = infile.readlines()
+
+  passed = {}
+  failed = {}
+  not_run = {}
+  date = ''
+  status = ''
+  board = ''
+  num_provision_errors = 0
+  build_ok = True
+  afe_line = ''
+
+  for line in lines:
+    if line.rstrip() == '<title>404 Not Found</title>':
+      print('Warning: File for %s (build number %d), %s was not found.' %
+            (builder, build_num, test))
+      build_ok = False
+      break
+    if '[ PASSED ]' in line:
+      test_name = line.split()[0]
+      if test_name != 'Suite':
+        passed[test_name] = True
+    elif '[ FAILED ]' in line:
+      test_name = line.split()[0]
+      if test_name == 'provision':
+        num_provision_errors += 1
+        not_run[test_name] = True
+      elif test_name != 'Suite':
+        failed[test_name] = True
+    elif line.startswith('started: '):
+      date = line.rstrip()
+      date = date[9:]
+      date_obj = time.strptime(date, '%a %b %d %H:%M:%S %Y')
+      int_date = (
+          date_obj.tm_year * 10000 + date_obj.tm_mon * 100 + date_obj.tm_mday)
+      date = time.strftime('%a %b %d %Y', date_obj)
+    elif not status and line.startswith('status: '):
+      status = line.rstrip()
+      words = status.split(':')
+      status = words[-1]
+    elif line.find('Suite passed with a warning') != -1:
+      status = 'WARNING'
+    elif line.startswith('@@@STEP_LINK@Link to suite@'):
+      afe_line = line.rstrip()
+      words = afe_line.split('@')
+      for w in words:
+        if w.startswith('http'):
+          afe_line = w
+          afe_line = afe_line.replace('&amp;', '&')
+    elif 'INFO: RunCommand:' in line:
+      words = line.split()
+      for i in range(0, len(words) - 1):
+        if words[i] == '--board':
+          board = words[i + 1]
+
+  test_dict = test_data_dict[test]
+  test_list = test_dict['tests']
+
+  if build_ok:
+    for t in test_list:
+      if not t in passed and not t in failed:
+        not_run[t] = True
+
+    total_pass = len(passed)
+    total_fail = len(failed)
+    total_notrun = len(not_run)
+
+  else:
+    total_pass = 0
+    total_fail = 0
+    total_notrun = 0
+    status = 'Not found.'
+  if not build_ok:
+    return [], date, board, 0, '     '
+
+  build_dict = dict()
+  build_dict['id'] = build_num
+  build_dict['builder'] = builder
+  build_dict['date'] = date
+  build_dict['build_link'] = build_link
+  build_dict['total_pass'] = total_pass
+  build_dict['total_fail'] = total_fail
+  build_dict['total_not_run'] = total_notrun
+  build_dict['afe_job_link'] = afe_line
+  build_dict['provision_errors'] = num_provision_errors
+  if status.strip() == 'SUCCESS':
+    build_dict['color'] = 'green '
+  elif status.strip() == 'FAILURE':
+    build_dict['color'] = ' red  '
+  elif status.strip() == 'WARNING':
+    build_dict['color'] = 'orange'
+  else:
+    build_dict['color'] = '      '
+
+  # Use YYYYMMDD (integer) as the build record key
+  if build_ok:
+    if board in test_dict:
+      board_dict = test_dict[board]
+    else:
+      board_dict = dict()
+    board_dict[int_date] = build_dict
+
+  # Only keep the last 5 records (based on date)
+  keys_list = board_dict.keys()
+  if len(keys_list) > MAX_SAVE_RECORDS:
+    min_key = min(keys_list)
+    del board_dict[min_key]
+
+  # Make sure changes get back into the main dictionary
+  test_dict[board] = board_dict
+  test_data_dict[test] = test_dict
+
+  if len(failed) > 0:
+    RecordFailures(failure_dict, board, test, builder, int_date, log_file,
+                   build_num, failed)
+
+  summary_result = '[%2d/ %2d/ %2d]' % (total_pass, total_fail, total_notrun)
+
+  return summary_result, date, board, int_date, build_dict['color']
+
+
+def DownloadLogFile(builder, buildnum, test, test_family):
+
+  ce = command_executer.GetCommandExecuter()
+  os.system('mkdir -p %s/%s/%s' % (DOWNLOAD_DIR, builder, test))
+  if builder in ROTATING_BUILDERS:
+    source = ('https://uberchromegw.corp.google.com/i/chromiumos.tryserver'
+              '/builders/%s/builds/%d/steps/%s%%20%%5B%s%%5D/logs/stdio' %
+              (builder, buildnum, test_family, test))
+    build_link = ('https://uberchromegw.corp.google.com/i/chromiumos.tryserver'
+                  '/builders/%s/builds/%d' % (builder, buildnum))
+  else:
+    source = ('https://uberchromegw.corp.google.com/i/chromeos/builders/%s/'
+              'builds/%d/steps/%s%%20%%5B%s%%5D/logs/stdio' %
+              (builder, buildnum, test_family, test))
+    build_link = ('https://uberchromegw.corp.google.com/i/chromeos/builders/%s'
+                  '/builds/%d' % (builder, buildnum))
+
+  target = '%s/%s/%s/%d' % (DOWNLOAD_DIR, builder, test, buildnum)
+  if not os.path.isfile(target) or os.path.getsize(target) == 0:
+    cmd = 'sso_client %s > %s' % (source, target)
+    status = ce.RunCommand(cmd)
+    if status != 0:
+      return '', ''
+
+  return target, build_link
+
+
+# Check for prodaccess.
+def CheckProdAccess():
+  status, output, _ = command_executer.GetCommandExecuter().RunCommandWOutput(
+      'prodcertstatus')
+  if status != 0:
+    return False
+  # Verify that status is not expired
+  if 'expires' in output:
+    return True
+  return False
+
+
+def ValidOptions(parser, options):
+  too_many_options = False
+  if options.main:
+    if options.rotating or options.failures_report:
+      too_many_options = True
+  elif options.rotating and options.failures_report:
+    too_many_options = True
+
+  if too_many_options:
+    parser.error('Can only specify one of --main, --rotating or'
+                 ' --failures_report.')
+
+  conflicting_failure_options = False
+  if options.failures_report and options.omit_failures:
+    conflicting_failure_options = True
+    parser.error('Cannot specify both --failures_report and --omit_failures.')
+
+  return not too_many_options and not conflicting_failure_options
+
+
+def Main(argv):
+  """Main function for this script."""
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '--main',
+      dest='main',
+      default=False,
+      action='store_true',
+      help='Generate report only for main waterfall '
+      'builders.')
+  parser.add_argument(
+      '--rotating',
+      dest='rotating',
+      default=False,
+      action='store_true',
+      help='Generate report only for rotating builders.')
+  parser.add_argument(
+      '--failures_report',
+      dest='failures_report',
+      default=False,
+      action='store_true',
+      help='Only generate the failures section of the report.')
+  parser.add_argument(
+      '--omit_failures',
+      dest='omit_failures',
+      default=False,
+      action='store_true',
+      help='Do not generate the failures section of the report.')
+  parser.add_argument(
+      '--no_update',
+      dest='no_update',
+      default=False,
+      action='store_true',
+      help='Run reports, but do not update the data files.')
+  parser.add_argument(
+      '--date',
+      dest='date',
+      default=0,
+      type=int,
+      help='The date YYYYMMDD of waterfall report.')
+
+  options = parser.parse_args(argv)
+
+  if not ValidOptions(parser, options):
+    return 1
+
+  main_only = options.main
+  rotating_only = options.rotating
+  failures_report = options.failures_report
+  omit_failures = options.omit_failures
+  date = options.date
+
+  test_data_dict = dict()
+  failure_dict = dict()
+
+  prod_access = CheckProdAccess()
+  if not prod_access:
+    print('ERROR: Please run prodaccess first.')
+    return
+
+  with open('%s/waterfall-test-data.json' % DATA_DIR, 'r') as input_file:
+    test_data_dict = json.load(input_file)
+
+  with open('%s/test-failure-data.json' % DATA_DIR, 'r') as fp:
+    failure_dict = json.load(fp)
+
+  builds = GetBuilds(date)
+
+  waterfall_report_dict = dict()
+  rotating_report_dict = dict()
+  int_date = 0
+  for test_desc in TESTS:
+    test, test_family = test_desc
+    for build in builds:
+      (builder, buildnum) = build
+      if test.startswith('kernel') and 'llvm' in builder:
+        continue
+      if 'x86' in builder and not test.startswith('bvt'):
+        continue
+      target, build_link = DownloadLogFile(builder, buildnum, test, test_family)
+
+      if os.path.exists(target):
+        test_summary, report_date, board, tmp_date, color = ParseLogFile(
+            target, test_data_dict, failure_dict, test, builder, buildnum,
+            build_link)
+
+        if tmp_date != 0:
+          int_date = tmp_date
+
+        if builder in ROTATING_BUILDERS:
+          UpdateReport(rotating_report_dict, builder, test, report_date,
+                       build_link, test_summary, board, color)
+        else:
+          UpdateReport(waterfall_report_dict, builder, test, report_date,
+                       build_link, test_summary, board, color)
+
+  PruneOldFailures(failure_dict, int_date)
+
+  if waterfall_report_dict and not rotating_only and not failures_report:
+    main_report = GenerateWaterfallReport(waterfall_report_dict, failure_dict,
+                                          'main', int_date, omit_failures)
+    EmailReport(main_report, 'Main', format_date(int_date))
+    shutil.copy(main_report, ARCHIVE_DIR)
+  if rotating_report_dict and not main_only and not failures_report:
+    rotating_report = GenerateWaterfallReport(rotating_report_dict,
+                                              failure_dict, 'rotating',
+                                              int_date, omit_failures)
+    EmailReport(rotating_report, 'Rotating', format_date(int_date))
+    shutil.copy(rotating_report, ARCHIVE_DIR)
+
+  if failures_report:
+    failures_report = GenerateFailuresReport(failure_dict, int_date)
+    EmailReport(failures_report, 'Failures', format_date(int_date))
+    shutil.copy(failures_report, ARCHIVE_DIR)
+
+  if not options.no_update:
+    with open('%s/waterfall-test-data.json' % DATA_DIR, 'w') as out_file:
+      json.dump(test_data_dict, out_file, indent=2)
+
+    with open('%s/test-failure-data.json' % DATA_DIR, 'w') as out_file:
+      json.dump(failure_dict, out_file, indent=2)
+
+    UpdateBuilds(builds)
+
+
+if __name__ == '__main__':
+  Main(sys.argv[1:])
+  sys.exit(0)
diff --git a/get_common_image_version.py b/get_common_image_version.py
new file mode 100755
index 0000000..da36b98
--- /dev/null
+++ b/get_common_image_version.py
@@ -0,0 +1,92 @@
+#!/usr/bin/python2
+#
+# Copyright 2013 Google Inc. All Rights Reserved.
+"""Script to find list of common images (first beta releases) in Chromeos.
+
+Display information about stable ChromeOS/Chrome versions to be used
+by the team developers. The purpose is to increase team productivity
+by using stable (known and tested) ChromeOS/Chrome versions instead of
+using randomly selected versions. Currently we define as a "stable"
+version the first Beta release in a particular release cycle.
+"""
+
+from __future__ import print_function
+
+__author__ = 'llozano@google.com (Luis Lozano)'
+
+import argparse
+import pickle
+import re
+import sys
+import urllib
+
+VERSIONS_HISTORY_URL = 'http://cros-omahaproxy.appspot.com/history'
+
+
+def DisplayBetas(betas):
+  print('List of betas from %s' % VERSIONS_HISTORY_URL)
+  for beta in betas:
+    print('  Release', beta['chrome_major_version'], beta)
+  return
+
+
+def FindAllBetas(all_versions):
+  """Get ChromeOS first betas from History URL."""
+
+  all_betas = []
+  prev_beta = {}
+  for line in all_versions:
+    match_obj = re.match(
+        r'(?P<date>.*),(?P<chromeos_version>.*),'
+        r'(?P<chrome_major_version>\d*).(?P<chrome_minor_version>.*),'
+        r'(?P<chrome_appid>.*),beta-channel,,Samsung Chromebook Series 5 550',
+        line)
+    if match_obj:
+      if prev_beta:
+        if (prev_beta['chrome_major_version'] !=
+            match_obj.group('chrome_major_version')):
+          all_betas.append(prev_beta)
+      prev_beta = match_obj.groupdict()
+  if prev_beta:
+    all_betas.append(prev_beta)
+  return all_betas
+
+
+def SerializeBetas(all_betas, serialize_file):
+  with open(serialize_file, 'wb') as f:
+    pickle.dump(all_betas, f)
+    print('Serialized list of betas into', serialize_file)
+  return
+
+
+def Main(argv):
+  """Get ChromeOS first betas list from history URL."""
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('--serialize',
+                      dest='serialize',
+                      default=None,
+                      help='Save list of common images into the specified '
+                      'file.')
+  options = parser.parse_args(argv)
+
+  try:
+    opener = urllib.URLopener()
+    all_versions = opener.open(VERSIONS_HISTORY_URL)
+  except IOError as ioe:
+    print('Cannot open', VERSIONS_HISTORY_URL)
+    print(ioe)
+    return 1
+
+  all_betas = FindAllBetas(all_versions)
+  DisplayBetas(all_betas)
+  if options.serialize:
+    SerializeBetas(all_betas, options.serialize)
+  all_versions.close()
+
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/go/android/adb_shamu b/go/android/adb_shamu
new file mode 100755
index 0000000..1c53ecc
--- /dev/null
+++ b/go/android/adb_shamu
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# This wrapper runs adb with the serial number of the shamu device.
+# Replace XXXXXXXX with the actual serial number of the device.
+# This is just an example. Create one such wrapper for each Android
+# device used for running Go tests.
+
+exec adb -s XXXXXXXX "$@"
diff --git a/go/android/adb_volantis b/go/android/adb_volantis
new file mode 100755
index 0000000..4712eec
--- /dev/null
+++ b/go/android/adb_volantis
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# This wrapper runs adb with the serial number of the volantis device.
+# Replace YYYYYYYY with the actual serial number of the device.
+# This is just an example. Create one such wrapper for each Android
+# device used for running Go tests.
+
+exec adb -s YYYYYYYY "$@"
diff --git a/go/android/build_go b/go/android/build_go
new file mode 100755
index 0000000..65b7ec2
--- /dev/null
+++ b/go/android/build_go
@@ -0,0 +1,26 @@
+#!/bin/bash
+set -e -o pipefail
+
+# This script builds the go cross compilers for Android targets.
+#
+# Usage: build_go
+#
+# It assumes that the "arm-linux-androideabi" toolchain is already installed.
+# It assumes that the "aarch64-linux-android" toolchain is already installed.
+
+if [[ ! -e "make.bash" && -e "src/make.bash" ]]
+then
+	cd src
+fi
+
+# Build the Go toolchain for arm devices.
+GOOS="android" GOARCH="arm" CGO_ENABLED="1" \
+	CC_FOR_TARGET="arm-linux-androideabi-gcc" \
+	CXX_FOR_TARGET="arm-linux-androideabi-g++" \
+	./make.bash --no-clean
+
+# Build the Go toolchain for arm64 devices.
+GOOS="android" GOARCH="arm64" CGO_ENABLED="1" \
+	CC_FOR_TARGET="aarch64-linux-android-gcc" \
+	CXX_FOR_TARGET="aarch64-linux-android-g++" \
+	./make.bash --no-clean
diff --git a/go/android/go_shamu b/go/android/go_shamu
new file mode 100755
index 0000000..7e1ffbe
--- /dev/null
+++ b/go/android/go_shamu
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Invoke the Go cross compiler for shamu.
+# Uses ../go_target to add PIE flags.
+#
+# This is just an example for an arm device.
+
+GOOS="android" GOARCH="arm" CGO_ENABLED="1" \
+	CC="arm-linux-androideabi-gcc" \
+	CXX="arm-linux-androideabi-g++" \
+	exec go_target "$@"
diff --git a/go/android/go_shamu_exec b/go/android/go_shamu_exec
new file mode 100755
index 0000000..2c16902
--- /dev/null
+++ b/go/android/go_shamu_exec
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# Copy and remotely execute a binary on the shamu device.
+#
+# For this to work, the corresponding adb_shamu wrapper
+# must exist to tell adb the serial number of the device.
+
+GOOS="android" GOARCH="arm" exec go_target_exec shamu "$@"
diff --git a/go/android/go_volantis b/go/android/go_volantis
new file mode 100755
index 0000000..bfeab19
--- /dev/null
+++ b/go/android/go_volantis
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Invoke the Go cross compiler for volantis.
+# Uses ../go_target to add PIE flags.
+#
+# This is just an example for an arm64 device.
+
+GOOS="android" GOARCH="arm64" CGO_ENABLED="1" \
+	CC="aarch64-linux-android-gcc" \
+	CXX="aarch64-linux-android-g++" \
+	exec go_target "$@"
diff --git a/go/android/go_volantis_exec b/go/android/go_volantis_exec
new file mode 100755
index 0000000..86cb2cf
--- /dev/null
+++ b/go/android/go_volantis_exec
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# Copy and remotely execute a binary on the volantis device.
+#
+# For this to work, the corresponding adb_volantis wrapper
+# must exist to tell adb the serial number of the device.
+
+GOOS="android" GOARCH="arm64" exec go_target_exec volantis "$@"
diff --git a/go/android/target_cp b/go/android/target_cp
new file mode 100755
index 0000000..8a31153
--- /dev/null
+++ b/go/android/target_cp
@@ -0,0 +1,28 @@
+#!/bin/bash
+set -e -o pipefail
+
+# Copy a file or directory to the target Android device.
+#
+# Usage: target_cp <src> <target>:<dest>
+
+src="$1"
+shift
+
+targetdest="$1"
+shift
+
+target="${targetdest%:*}"
+dest="${targetdest#*:}"
+
+if [[ -z "${src}" || -z "${target}" || -z "${dest}" || "${targetdest}" != "${target}:${dest}" || -n "$*" ]]
+then
+	echo "Usage: target_cp <src> <target>:<dest>"
+	exit 1
+fi
+
+if [[ -d ${src} ]]
+then
+	adb_${target} push ${src} ${dest}/${src##*/} 2>/dev/null
+else
+	adb_${target} push ${src} ${dest} 2>/dev/null
+fi
diff --git a/go/android/target_sh b/go/android/target_sh
new file mode 100755
index 0000000..241843e
--- /dev/null
+++ b/go/android/target_sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -e -o pipefail
+
+# Run a command on the target Android device.
+#
+# Usage: target_sh <cmd> <args>...
+
+target="$1"
+shift
+
+exitcode="$(target_tmpdir)/exitcode"
+adb_${target} shell "$*; echo -n \$? > ${exitcode}" | sed -e 's:\r$::' -u
+exit $(adb_${target} shell "cat ${exitcode}")
diff --git a/go/android/target_tmpdir b/go/android/target_tmpdir
new file mode 100755
index 0000000..b595369
--- /dev/null
+++ b/go/android/target_tmpdir
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+# Temporary directory to be used on Android devices.
+
+echo "/data/local/tmp"
diff --git a/go/chromeos/build_go b/go/chromeos/build_go
new file mode 100755
index 0000000..cb882ea
--- /dev/null
+++ b/go/chromeos/build_go
@@ -0,0 +1,45 @@
+#!/bin/bash
+set -e -o pipefail
+
+# This script builds the go cross compilers for ChromeOS targets.
+#
+# Usage: build_go
+#
+# It assumes that the "x86_64-cros-linux-gnu" toolchain is already installed.
+# It assumes that the "i686-pc-linux-gnu" toolchain is already installed.
+# It assumes that the "armv7a-cros-linux-gnueabi" toolchain is already installed.
+
+if [[ ! -e "make.bash" && -e "src/make.bash" ]]
+then
+	cd src
+fi
+
+# Build the Go toolchain for amd64 targets.
+GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" \
+	CC_FOR_TARGET="x86_64-cros-linux-gnu-gcc" \
+	CXX_FOR_TARGET="x86_64-cros-linux-gnu-g++" \
+	./make.bash --no-clean
+GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" \
+	CC="x86_64-cros-linux-gnu-gcc" \
+	CXX="x86_64-cros-linux-gnu-g++" \
+	../bin/go install -v -buildmode=pie std
+
+# Build the Go toolchain for 386 targets.
+GOOS="linux" GOARCH="386" CGO_ENABLED="1" \
+	CC_FOR_TARGET="i686-pc-linux-gnu-gcc" \
+	CXX_FOR_TARGET="i686-pc-linux-gnu-g++" \
+	./make.bash --no-clean
+GOOS="linux" GOARCH="386" CGO_ENABLED="1" \
+	CC="i686-pc-linux-gnu-gcc" \
+	CXX="i686-pc-linux-gnu-g++" \
+	../bin/go install -v -buildmode=pie std
+
+# Build the Go toolchain for arm targets.
+GOOS="linux" GOARCH="arm" CGO_ENABLED="1" \
+	CC_FOR_TARGET="armv7a-cros-linux-gnueabi-gcc" \
+	CXX_FOR_TARGET="armv7a-cros-linux-gnueabi-g++" \
+	./make.bash --no-clean
+GOOS="linux" GOARCH="arm" CGO_ENABLED="1" \
+	CC="armv7a-cros-linux-gnueabi-gcc" \
+	CXX="armv7a-cros-linux-gnueabi-g++" \
+	../bin/go install -v -buildmode=pie std
diff --git a/go/chromeos/go_daisy b/go/chromeos/go_daisy
new file mode 100755
index 0000000..db4a95a
--- /dev/null
+++ b/go/chromeos/go_daisy
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Invoke the Go cross compiler for daisy.
+# Uses ../go_target to add PIE flags.
+#
+# This is just an example for an arm board.
+
+GOOS="linux" GOARCH="arm" CGO_ENABLED="1" \
+	CC="armv7a-cros-linux-gnueabi-gcc" \
+	CXX="armv7a-cros-linux-gnueabi-g++" \
+	exec go_target "$@"
diff --git a/go/chromeos/go_daisy_exec b/go/chromeos/go_daisy_exec
new file mode 100755
index 0000000..3b9a63d
--- /dev/null
+++ b/go/chromeos/go_daisy_exec
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# Copy and remotely execute a binary on the daisy device.
+#
+# For this to work, the corresponding entry must exist in
+# ~/.ssh/config and the device must already be setup for
+# password-less authentication. See setup instructions at
+# http://go/chromeos-toolchain-team/go-toolchain
+
+GOOS="linux" GOARCH="arm" exec go_target_exec daisy "$@"
diff --git a/go/chromeos/go_panther b/go/chromeos/go_panther
new file mode 100755
index 0000000..5c06f43
--- /dev/null
+++ b/go/chromeos/go_panther
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Invoke the Go cross compiler for panther.
+# Uses ../go_target to add PIE flags.
+#
+# This is just an example for an amd64 board.
+
+GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" \
+	CC="x86_64-cros-linux-gnu-gcc" \
+	CXX="x86_64-cros-linux-gnu-g++" \
+	exec go_target "$@"
diff --git a/go/chromeos/go_panther_exec b/go/chromeos/go_panther_exec
new file mode 100755
index 0000000..64f77b1
--- /dev/null
+++ b/go/chromeos/go_panther_exec
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# Copy and remotely execute a binary on the panther device.
+#
+# For this to work, the corresponding entry must exist in
+# ~/.ssh/config and the device must already be setup for
+# password-less authentication. See setup instructions at
+# http://go/chromeos-toolchain-team/go-toolchain
+
+GOOS="linux" GOARCH="amd64" exec go_target_exec panther "$@"
diff --git a/go/chromeos/go_x86-zgb b/go/chromeos/go_x86-zgb
new file mode 100755
index 0000000..272efb5
--- /dev/null
+++ b/go/chromeos/go_x86-zgb
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Invoke the Go cross compiler for x86-zgb.
+# Uses ../go_target to add PIE flags.
+#
+# This is just an example for an 386 board.
+
+GOOS="linux" GOARCH="386" CGO_ENABLED="1" \
+	CC="i686-pc-linux-gnu-gcc" \
+	CXX="i686-pc-linux-gnu-g++" \
+	exec go_target "$@"
diff --git a/go/chromeos/go_x86-zgb_exec b/go/chromeos/go_x86-zgb_exec
new file mode 100755
index 0000000..b0341f2
--- /dev/null
+++ b/go/chromeos/go_x86-zgb_exec
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# Copy and remotely execute a binary on the x86-zgb device.
+#
+# For this to work, the corresponding entry must exist in
+# ~/.ssh/config and the device must already be setup for
+# password-less authentication. See setup instructions at
+# http://go/chromeos-toolchain-team/go-toolchain
+
+GOOS="linux" GOARCH="386" exec go_target_exec x86-zgb "$@"
diff --git a/go/chromeos/target_cp b/go/chromeos/target_cp
new file mode 100755
index 0000000..6df476e
--- /dev/null
+++ b/go/chromeos/target_cp
@@ -0,0 +1,28 @@
+#!/bin/bash
+set -e -o pipefail
+
+# Copy a file or directory to the target ChromeOS device.
+#
+# Usage: target_cp <src> <target>:<dest>
+
+src="$1"
+shift
+
+targetdest="$1"
+shift
+
+target="${targetdest%:*}"
+dest="${targetdest#*:}"
+
+if [[ -z "${src}" || -z "${target}" || -z "${dest}" || "${targetdest}" != "${target}:${dest}" || -n "$*" ]]
+then
+	echo "Usage: target_cp <src> <target>:<dest>"
+	exit 1
+fi
+
+if [[ -d ${src} ]]
+then
+	scp -rq ${src} ${target}:${dest}
+else
+	scp -q ${src} ${target}:${dest}
+fi
diff --git a/go/chromeos/target_sh b/go/chromeos/target_sh
new file mode 100755
index 0000000..43c5fac
--- /dev/null
+++ b/go/chromeos/target_sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+set -e -o pipefail
+
+# Run a command on the target ChromeOS device.
+#
+# Usage: target_sh <cmd> <args>...
+
+target="$1"
+shift
+
+ssh ${target} "$*"
diff --git a/go/chromeos/target_tmpdir b/go/chromeos/target_tmpdir
new file mode 100755
index 0000000..382a033
--- /dev/null
+++ b/go/chromeos/target_tmpdir
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+# Temporary directory to be used on ChromeOS devices.
+
+echo "/tmp"
diff --git a/go/go_local b/go/go_local
new file mode 100755
index 0000000..92954ef
--- /dev/null
+++ b/go/go_local
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# Invoke the Go compiler for localhost.
+
+GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" \
+	CC="gcc" \
+	CXX="g++" \
+	exec go "$@"
diff --git a/go/go_target b/go/go_target
new file mode 100755
index 0000000..0578637
--- /dev/null
+++ b/go/go_target
@@ -0,0 +1,83 @@
+#!/bin/bash
+set -e -o pipefail
+
+# This script wraps the go cross compilers.
+#
+# It ensures that Go binaries are linked with an external linker
+# by default (cross gcc). Appropriate flags are added to build a
+# position independent executable (PIE) for ASLR.
+# "export GOPIE=0" to temporarily disable this behavior.
+
+function pie_enabled()
+	{
+	[[ "${GOPIE}" != "0" ]]
+	}
+
+function has_ldflags()
+	{
+	# Check if any linker flags are present in argv.
+	for arg in "$@"
+	do
+		case "${arg}" in
+			-ldflags | -ldflags=*) return 0 ;;
+			-linkmode | -linkmode=*) return 0 ;;
+			-buildmode | -buildmode=*) return 0 ;;
+			-installsuffix | -installsuffix=*) return 0 ;;
+			-extld | -extld=*) return 0 ;;
+			-extldflags | -extldflags=*) return 0 ;;
+		esac
+	done
+	return 1
+	}
+
+pie_flags=()
+if pie_enabled && ! has_ldflags "$@"
+then
+	case "$1" in
+		build | install | run | test)
+			# Add "-buildmode=pie" to "go build|install|run|test" commands.
+			pie_flags=(
+				"$1"
+				"-buildmode=pie"
+			)
+			shift
+			;;
+		tool)
+			case "$2" in
+				asm)
+					# Handle direct assembler invocations ("go tool asm <args>").
+					pie_flags=(
+						"$1"
+						"$2"
+						"-shared"
+					)
+					shift 2
+					;;
+				compile)
+					# Handle direct compiler invocations ("go tool compile <args>").
+					pie_flags=(
+						"$1"
+						"$2"
+						"-shared"
+						"-installsuffix=shared"
+					)
+					shift 2
+					;;
+				link)
+					# Handle direct linker invocations ("go tool link <args>").
+					pie_flags=(
+						"$1"
+						"$2"
+						"-installsuffix=shared"
+						"-buildmode=pie"
+						"-extld"
+						"${CC}"
+					)
+					shift 2
+					;;
+			esac
+			;;
+	esac
+fi
+
+exec go "${pie_flags[@]}" "$@"
diff --git a/go/go_target_exec b/go/go_target_exec
new file mode 100755
index 0000000..34d9e79
--- /dev/null
+++ b/go/go_target_exec
@@ -0,0 +1,41 @@
+#!/bin/bash
+set -e -o pipefail
+
+# This wrapper copies an executable to a target device and executes it there.
+#
+# Usage: go_target_exec <target> <binary> <args>...
+#
+# This script can work with both ChromeOS/Android devices.
+#
+# It uses "target_tmpdir" to get the path to the temporary directory on the device.
+# It uses "target_cp" to copy the binary to the temporary directory on the device.
+# It uses "target_sh" to execute the binary remotely and get the output/exitcode.
+
+target="$1"
+shift
+
+binary="$1"
+shift
+
+# Get path to temporary directory on device and copy the binary over.
+tmpdir="$(target_tmpdir)"
+target_cp ${binary} ${target}:${tmpdir}/a.out
+
+# If current directory is inside GOROOT, then execute the binary in the
+# corresponding directory inside GOROOT on the device.
+targetdir="${tmpdir}"
+goroot="$(go_${target} env GOROOT)"
+if [[ "${PWD}" == ${goroot}/src/* ]]
+then
+	targetdir="${tmpdir}/go/src/${PWD#${goroot}/src/}"
+fi
+
+# Set GOROOT, and forward some environment variables to the remote shell.
+vars="GOROOT=${tmpdir}/go"
+vars+="${GOOS:+ GOOS=${GOOS}}"
+vars+="${GOARCH:+ GOARCH=${GOARCH}}"
+vars+="${GOMAXPROCS:+ GOMAXPROCS=${GOMAXPROCS}}"
+vars+="${GOTRACEBACK:+ GOTRACEBACK=${GOTRACEBACK}}"
+
+# Remotely execute the binary using ssh (for ChromeOS) or adb (for Android).
+target_sh ${target} "cd ${targetdir} && ${vars} ${tmpdir}/a.out $*"
diff --git a/go/patch/go0.patch b/go/patch/go0.patch
new file mode 100644
index 0000000..27e1451
--- /dev/null
+++ b/go/patch/go0.patch
@@ -0,0 +1,33 @@
+testenv: look for "go" executable in path.
+
+--- src/go/build/deps_test.go
++++ src/go/build/deps_test.go
+@@ -168,7 +168,7 @@ var pkgDeps = map[string][]string{
+ 	"testing":          {"L2", "flag", "fmt", "os", "runtime/debug", "runtime/pprof", "runtime/trace", "time"},
+ 	"testing/iotest":   {"L2", "log"},
+ 	"testing/quick":    {"L2", "flag", "fmt", "reflect"},
+-	"internal/testenv": {"L2", "os", "testing"},
++	"internal/testenv": {"L2", "os", "os/exec", "testing"},
+ 
+ 	// L4 is defined as L3+fmt+log+time, because in general once
+ 	// you're using L3 packages, use of fmt, log, or time is not a big deal.
+--- src/internal/testenv/testenv.go
++++ src/internal/testenv/testenv.go
+@@ -12,6 +12,7 @@ package testenv
+ 
+ import (
+ 	"os"
++	"os/exec"
+ 	"runtime"
+ 	"strings"
+ 	"testing"
+@@ -36,6 +37,9 @@ func HasGoBuild() bool {
+ 			return false
+ 		}
+ 	}
++	if _, err := exec.LookPath("go"); err != nil {
++		return false
++	}
+ 	return true
+ }
+ 
diff --git a/go/patch/go1.patch b/go/patch/go1.patch
new file mode 100644
index 0000000..49d229e
--- /dev/null
+++ b/go/patch/go1.patch
@@ -0,0 +1,50 @@
+test: enable some tests on android/arm64.
+
+--- test/chanlinear.go
++++ test/chanlinear.go
+@@ -1,4 +1,4 @@
+-// +build darwin linux
++// +build darwin linux android
+ // run
+ 
+ // Copyright 2014 The Go Authors. All rights reserved.
+--- test/fixedbugs/bug385_64.go
++++ test/fixedbugs/bug385_64.go
+@@ -1,4 +1,4 @@
+-// +build amd64
++// +build amd64 arm64
+ // errorcheck
+ 
+ // Copyright 2011 The Go Authors.  All rights reserved.
+--- test/fixedbugs/issue10607.go
++++ test/fixedbugs/issue10607.go
+@@ -1,4 +1,4 @@
+-// +build linux,!ppc64,!ppc64le,!mips64,!mips64le
++// +build linux,!ppc64,!ppc64le,!mips64,!mips64le android
+ // run
+ 
+ // Copyright 2015 The Go Authors. All rights reserved.
+--- test/fixedbugs/issue6036.go
++++ test/fixedbugs/issue6036.go
+@@ -1,4 +1,4 @@
+-// +build amd64
++// +build amd64 arm64
+ // compile
+ 
+ // Copyright 2013 The Go Authors.  All rights reserved.
+--- test/maplinear.go
++++ test/maplinear.go
+@@ -1,4 +1,4 @@
+-// +build darwin linux
++// +build darwin linux android
+ // run
+ 
+ // Copyright 2013 The Go Authors. All rights reserved.
+--- test/recover4.go
++++ test/recover4.go
+@@ -1,4 +1,4 @@
+-// +build linux darwin
++// +build linux android darwin
+ // run
+ 
+ // Copyright 2015 The Go Authors.  All rights reserved.
diff --git a/go/patch/go2.patch b/go/patch/go2.patch
new file mode 100644
index 0000000..dfc236a
--- /dev/null
+++ b/go/patch/go2.patch
@@ -0,0 +1,173 @@
+test: add -target flag.
+
+--- test/run.go
++++ test/run.go
+@@ -37,9 +37,9 @@ var (
+ 	numParallel    = flag.Int("n", runtime.NumCPU(), "number of parallel tests to run")
+ 	summary        = flag.Bool("summary", false, "show summary of results")
+ 	showSkips      = flag.Bool("show_skips", false, "show skipped tests")
+-	linkshared     = flag.Bool("linkshared", false, "")
+ 	updateErrors   = flag.Bool("update_errors", false, "update error messages in test file based on compiler output")
+ 	runoutputLimit = flag.Int("l", defaultRunOutputLimit(), "number of parallel runoutput tests to run")
++	target         = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
+ 
+ 	shard  = flag.Int("shard", 0, "shard index to run. Only applicable if -shards is non-zero.")
+ 	shards = flag.Int("shards", 0, "number of shards. If 0, all tests are run. This is used by the continuous build.")
+@@ -192,19 +192,11 @@ func goFiles(dir string) []string {
+ type runCmd func(...string) ([]byte, error)
+ 
+ func compileFile(runcmd runCmd, longname string) (out []byte, err error) {
+-	cmd := []string{"go", "tool", "compile", "-e"}
+-	if *linkshared {
+-		cmd = append(cmd, "-dynlink", "-installsuffix=dynlink")
+-	}
+-	cmd = append(cmd, longname)
+-	return runcmd(cmd...)
++	return runcmd(findGoCmd(), "tool", "compile", "-e", longname)
+ }
+ 
+ func compileInDir(runcmd runCmd, dir string, names ...string) (out []byte, err error) {
+-	cmd := []string{"go", "tool", "compile", "-e", "-D", ".", "-I", "."}
+-	if *linkshared {
+-		cmd = append(cmd, "-dynlink", "-installsuffix=dynlink")
+-	}
++	cmd := []string{findGoCmd(), "tool", "compile", "-e", "-D", ".", "-I", "."}
+ 	for _, name := range names {
+ 		cmd = append(cmd, filepath.Join(dir, name))
+ 	}
+@@ -213,15 +205,21 @@ func compileInDir(runcmd runCmd, dir string, names ...string) (out []byte, err e
+ 
+ func linkFile(runcmd runCmd, goname string) (err error) {
+ 	pfile := strings.Replace(goname, ".go", ".o", -1)
+-	cmd := []string{"go", "tool", "link", "-w", "-o", "a.exe", "-L", "."}
+-	if *linkshared {
+-		cmd = append(cmd, "-linkshared", "-installsuffix=dynlink")
+-	}
+-	cmd = append(cmd, pfile)
+-	_, err = runcmd(cmd...)
++	_, err = runcmd(findGoCmd(), "tool", "link", "-w", "-o", "a.exe", "-L", ".", pfile)
+ 	return
+ }
+ 
++func goRun(runcmd runCmd, goname string, args ...string) (out []byte, err error) {
++	cmd := []string{findGoCmd(), "run"}
++	if len(findExecCmd()) > 0 {
++		cmd = append(cmd, "-exec")
++		cmd = append(cmd, findExecCmd()...)
++	}
++	cmd = append(cmd, goname)
++	cmd = append(cmd, args...)
++	return runcmd(cmd...)
++}
++
+ // skipError describes why a test was skipped.
+ type skipError string
+ 
+@@ -530,8 +528,7 @@ func (t *test) run() {
+ 		t.err = fmt.Errorf("unimplemented action %q", action)
+ 
+ 	case "errorcheck":
+-		cmdline := []string{"go", "tool", "compile", "-e", "-o", "a.o"}
+-		// No need to add -dynlink even if linkshared if we're just checking for errors...
++		cmdline := []string{findGoCmd(), "tool", "compile", "-e", "-o", "a.o"}
+ 		cmdline = append(cmdline, flags...)
+ 		cmdline = append(cmdline, long)
+ 		out, err := runcmd(cmdline...)
+@@ -640,19 +637,14 @@ func (t *test) run() {
+ 		}
+ 
+ 	case "build":
+-		_, err := runcmd("go", "build", "-o", "a.exe", long)
++		_, err := runcmd(findGoCmd(), "build", "-o", "a.exe", long)
+ 		if err != nil {
+ 			t.err = err
+ 		}
+ 
+ 	case "run":
+ 		useTmp = false
+-		cmd := []string{"go", "run"}
+-		if *linkshared {
+-			cmd = append(cmd, "-linkshared")
+-		}
+-		cmd = append(cmd, t.goFileName())
+-		out, err := runcmd(append(cmd, args...)...)
++		out, err := goRun(runcmd, t.goFileName(), args...)
+ 		if err != nil {
+ 			t.err = err
+ 			return
+@@ -667,12 +659,7 @@ func (t *test) run() {
+ 			<-rungatec
+ 		}()
+ 		useTmp = false
+-		cmd := []string{"go", "run"}
+-		if *linkshared {
+-			cmd = append(cmd, "-linkshared")
+-		}
+-		cmd = append(cmd, t.goFileName())
+-		out, err := runcmd(append(cmd, args...)...)
++		out, err := goRun(runcmd, t.goFileName(), args...)
+ 		if err != nil {
+ 			t.err = err
+ 			return
+@@ -682,12 +669,7 @@ func (t *test) run() {
+ 			t.err = fmt.Errorf("write tempfile:%s", err)
+ 			return
+ 		}
+-		cmd = []string{"go", "run"}
+-		if *linkshared {
+-			cmd = append(cmd, "-linkshared")
+-		}
+-		cmd = append(cmd, tfile)
+-		out, err = runcmd(cmd...)
++		out, err = goRun(runcmd, tfile)
+ 		if err != nil {
+ 			t.err = err
+ 			return
+@@ -698,12 +680,7 @@ func (t *test) run() {
+ 
+ 	case "errorcheckoutput":
+ 		useTmp = false
+-		cmd := []string{"go", "run"}
+-		if *linkshared {
+-			cmd = append(cmd, "-linkshared")
+-		}
+-		cmd = append(cmd, t.goFileName())
+-		out, err := runcmd(append(cmd, args...)...)
++		out, err := goRun(runcmd, t.goFileName(), args...)
+ 		if err != nil {
+ 			t.err = err
+ 			return
+@@ -714,7 +691,7 @@ func (t *test) run() {
+ 			t.err = fmt.Errorf("write tempfile:%s", err)
+ 			return
+ 		}
+-		cmdline := []string{"go", "tool", "compile", "-e", "-o", "a.o"}
++		cmdline := []string{findGoCmd(), "tool", "compile", "-e", "-o", "a.o"}
+ 		cmdline = append(cmdline, flags...)
+ 		cmdline = append(cmdline, tfile)
+ 		out, err = runcmd(cmdline...)
+@@ -741,6 +718,10 @@ func findExecCmd() []string {
+ 		return execCmd
+ 	}
+ 	execCmd = []string{} // avoid work the second time
++	if *target != "" {
++		execCmd = []string{"go_" + *target + "_exec"}
++		return execCmd
++	}
+ 	if goos == runtime.GOOS && goarch == runtime.GOARCH {
+ 		return execCmd
+ 	}
+@@ -751,6 +732,13 @@ func findExecCmd() []string {
+ 	return execCmd
+ }
+ 
++func findGoCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
+ func (t *test) String() string {
+ 	return filepath.Join(t.dir, t.gofile)
+ }
diff --git a/go/patch/go3.patch b/go/patch/go3.patch
new file mode 100644
index 0000000..37bd562
--- /dev/null
+++ b/go/patch/go3.patch
@@ -0,0 +1,711 @@
+test: add runtarget action.
+
+--- test/fixedbugs/bug248.go
++++ test/fixedbugs/bug248.go
+@@ -1,5 +1,5 @@
+ // +build !nacl,!plan9,!windows
+-// run
++// runtarget
+ 
+ // Copyright 2009 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -8,13 +8,32 @@
+ package main
+ 
+ import (
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+ 	"path/filepath"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
++func goRun(cmd ...string) {
++	if *target == "" {
++		run(cmd[0], cmd[1:]...)
++	} else {
++		run("go_"+*target+"_exec", cmd...)
++	}
++}
++
+ func main() {
++	flag.Parse()
+ 	// TODO: If we get rid of errchk, re-enable this test on Windows.
+ 	errchk, err := filepath.Abs("errchk")
+ 	check(err)
+@@ -22,12 +41,12 @@ func main() {
+ 	err = os.Chdir(filepath.Join("fixedbugs", "bug248.dir"))
+ 	check(err)
+ 
+-	run("go", "tool", "compile", "bug0.go")
+-	run("go", "tool", "compile", "bug1.go")
+-	run("go", "tool", "compile", "bug2.go")
+-	run(errchk, "go", "tool", "compile", "-e", "bug3.go")
+-	run("go", "tool", "link", "bug2.o")
+-	run(fmt.Sprintf(".%ca.out", filepath.Separator))
++	run(goCmd(), "tool", "compile", "bug0.go")
++	run(goCmd(), "tool", "compile", "bug1.go")
++	run(goCmd(), "tool", "compile", "bug2.go")
++	run(errchk, goCmd(), "tool", "compile", "-e", "bug3.go")
++	run(goCmd(), "tool", "link", "bug2.o")
++	goRun(fmt.Sprintf(".%ca.out", filepath.Separator))
+ 
+ 	os.Remove("bug0.o")
+ 	os.Remove("bug1.o")
+--- test/fixedbugs/bug302.go
++++ test/fixedbugs/bug302.go
+@@ -1,5 +1,5 @@
+ // +build !nacl
+-// run
++// runtarget
+ 
+ // Copyright 2010 The Go Authors.  All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -8,16 +8,27 @@
+ package main
+ 
+ import (
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+ 	"path/filepath"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
+ func main() {
+-	run("go", "tool", "compile", filepath.Join("fixedbugs", "bug302.dir", "p.go"))
+-	run("go", "tool", "pack", "grc", "pp.a", "p.o")
+-	run("go", "tool", "compile", "-I", ".", filepath.Join("fixedbugs", "bug302.dir", "main.go"))
++	flag.Parse()
++	run(goCmd(), "tool", "compile", filepath.Join("fixedbugs", "bug302.dir", "p.go"))
++	run(goCmd(), "tool", "pack", "grc", "pp.a", "p.o")
++	run(goCmd(), "tool", "compile", "-I", ".", filepath.Join("fixedbugs", "bug302.dir", "main.go"))
+ 	os.Remove("p.o")
+ 	os.Remove("pp.a")
+ 	os.Remove("main.o")
+--- test/fixedbugs/bug345.go
++++ test/fixedbugs/bug345.go
+@@ -1,5 +1,5 @@
+ // +build !nacl,!plan9,!windows
+-// run
++// runtarget
+ 
+ // Copyright 2011 The Go Authors.  All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -8,13 +8,24 @@
+ package main
+ 
+ import (
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+ 	"path/filepath"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
+ func main() {
++	flag.Parse()
+ 	// TODO: If we get rid of errchk, re-enable this test on Plan 9 and Windows.
+ 	errchk, err := filepath.Abs("errchk")
+ 	check(err)
+@@ -22,8 +33,8 @@ func main() {
+ 	err = os.Chdir(filepath.Join(".", "fixedbugs", "bug345.dir"))
+ 	check(err)
+ 
+-	run("go", "tool", "compile", "io.go")
+-	run(errchk, "go", "tool", "compile", "-e", "main.go")
++	run(goCmd(), "tool", "compile", "io.go")
++	run(errchk, goCmd(), "tool", "compile", "-e", "main.go")
+ 	os.Remove("io.o")
+ }
+ 
+--- test/fixedbugs/bug369.go
++++ test/fixedbugs/bug369.go
+@@ -1,5 +1,5 @@
+ // +build !nacl,!windows
+-// run
++// runtarget
+ 
+ // Copyright 2011 The Go Authors.  All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -10,21 +10,40 @@
+ package main
+ 
+ import (
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+ 	"path/filepath"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
++func goRun(cmd ...string) {
++	if *target == "" {
++		run(cmd[0], cmd[1:]...)
++	} else {
++		run("go_"+*target+"_exec", cmd...)
++	}
++}
++
+ func main() {
++	flag.Parse()
+ 	err := os.Chdir(filepath.Join(".", "fixedbugs", "bug369.dir"))
+ 	check(err)
+ 
+-	run("go", "tool", "compile", "-N", "-o", "slow.o", "pkg.go")
+-	run("go", "tool", "compile", "-o", "fast.o", "pkg.go")
+-	run("go", "tool", "compile", "-o", "main.o", "main.go")
+-	run("go", "tool", "link", "-o", "a.exe", "main.o")
+-	run("." + string(filepath.Separator) + "a.exe")
++	run(goCmd(), "tool", "compile", "-N", "-o", "slow.o", "pkg.go")
++	run(goCmd(), "tool", "compile", "-o", "fast.o", "pkg.go")
++	run(goCmd(), "tool", "compile", "-o", "main.o", "main.go")
++	run(goCmd(), "tool", "link", "-o", "a.exe", "main.o")
++	goRun("." + string(filepath.Separator) + "a.exe")
+ 
+ 	os.Remove("slow.o")
+ 	os.Remove("fast.o")
+--- test/fixedbugs/bug429_run.go
++++ test/fixedbugs/bug429_run.go
+@@ -1,5 +1,5 @@
+ // +build !nacl
+-// run
++// runtarget
+ 
+ // Copyright 2014 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -10,6 +10,7 @@
+ package main
+ 
+ import (
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+@@ -17,8 +18,27 @@ import (
+ 	"strings"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
++func goRun(args ...string) *exec.Cmd {
++	cmd := []string{"run"}
++	if *target != "" {
++		cmd = append(cmd, "-exec", "go_"+*target+"_exec")
++	}
++	cmd = append(cmd, args...)
++	return exec.Command(goCmd(), cmd...)
++}
++
+ func main() {
+-	cmd := exec.Command("go", "run", filepath.Join("fixedbugs", "bug429.go"))
++	flag.Parse()
++	cmd := goRun(filepath.Join("fixedbugs", "bug429.go"))
+ 	out, err := cmd.CombinedOutput()
+ 	if err == nil {
+ 		fmt.Println("expected deadlock")
+--- test/fixedbugs/issue10607.go
++++ test/fixedbugs/issue10607.go
+@@ -1,5 +1,5 @@
+ // +build linux,!ppc64,!ppc64le,!mips64,!mips64le android
+-// run
++// runtarget
+ 
+ // Copyright 2015 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -11,19 +11,39 @@
+ package main
+ 
+ import (
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+ 	"path/filepath"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
++func goRun(args ...string) *exec.Cmd {
++	cmd := []string{"run"}
++	if *target != "" {
++		cmd = append(cmd, "-exec", "go_"+*target+"_exec")
++	}
++	cmd = append(cmd, args...)
++	return exec.Command(goCmd(), cmd...)
++}
++
+ func main() {
++	flag.Parse()
+ 	test("internal")
+ 	test("external")
+ }
+ 
+ func test(linkmode string) {
+-	out, err := exec.Command("go", "run", "-ldflags", "-B=0x12345678 -linkmode="+linkmode, filepath.Join("fixedbugs", "issue10607a.go")).CombinedOutput()
++	out, err := goRun("-ldflags", "-B=0x12345678 -linkmode="+linkmode, filepath.Join("fixedbugs", "issue10607a.go")).CombinedOutput()
+ 	if err != nil {
+ 		fmt.Printf("BUG: linkmode=%s %v\n%s\n", linkmode, err, out)
+ 		os.Exit(1)
+--- test/fixedbugs/issue11771.go
++++ test/fixedbugs/issue11771.go
+@@ -1,5 +1,5 @@
+ // +build !nacl
+-// run
++// runtarget
+ 
+ // Copyright 2015 The Go Authors.  All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -11,6 +11,7 @@ package main
+ 
+ import (
+ 	"bytes"
++	"flag"
+ 	"fmt"
+ 	"io/ioutil"
+ 	"log"
+@@ -20,7 +21,17 @@ import (
+ 	"runtime"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
+ func main() {
++	flag.Parse()
+ 	if runtime.Compiler != "gc" {
+ 		return
+ 	}
+@@ -52,7 +63,7 @@ func x() {
+ 		log.Fatal(err)
+ 	}
+ 
+-	cmd := exec.Command("go", "tool", "compile", "x.go")
++	cmd := exec.Command(goCmd(), "tool", "compile", "x.go")
+ 	cmd.Dir = dir
+ 	output, err := cmd.CombinedOutput()
+ 	if err == nil {
+--- test/fixedbugs/issue9355.go
++++ test/fixedbugs/issue9355.go
+@@ -1,4 +1,4 @@
+-// run
++// runtarget
+ 
+ // Copyright 2014 The Go Authors.  All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -7,6 +7,7 @@
+ package main
+ 
+ import (
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+@@ -15,7 +16,17 @@ import (
+ 	"runtime"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
+ func main() {
++	flag.Parse()
+ 	if runtime.Compiler != "gc" || runtime.GOOS == "nacl" {
+ 		return
+ 	}
+@@ -23,7 +34,7 @@ func main() {
+ 	err := os.Chdir(filepath.Join("fixedbugs", "issue9355.dir"))
+ 	check(err)
+ 
+-	out := run("go", "tool", "compile", "-S", "a.go")
++	out := run(goCmd(), "tool", "compile", "-S", "a.go")
+ 	os.Remove("a.o")
+ 
+ 	// 6g/8g print the offset as dec, but 5g/9g print the offset as hex.
+--- test/fixedbugs/issue9862_run.go
++++ test/fixedbugs/issue9862_run.go
+@@ -1,5 +1,5 @@
+ // +build !nacl
+-// run
++// runtarget
+ 
+ // Copyright 2015 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -10,12 +10,32 @@
+ package main
+ 
+ import (
++	"flag"
+ 	"os/exec"
+ 	"strings"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
++func goRun(args ...string) *exec.Cmd {
++	cmd := []string{"run"}
++	if *target != "" {
++		cmd = append(cmd, "-exec", "go_"+*target+"_exec")
++	}
++	cmd = append(cmd, args...)
++	return exec.Command(goCmd(), cmd...)
++}
++
+ func main() {
+-	out, err := exec.Command("go", "run", "fixedbugs/issue9862.go").CombinedOutput()
++	flag.Parse()
++	out, err := goRun("fixedbugs/issue9862.go").CombinedOutput()
+ 	outstr := string(out)
+ 	if err == nil {
+ 		println("go run issue9862.go succeeded, should have failed\n", outstr)
+--- test/linkmain_run.go
++++ test/linkmain_run.go
+@@ -1,5 +1,5 @@
+ // +build !nacl
+-// run
++// runtarget
+ 
+ // Copyright 2014 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -10,12 +10,22 @@
+ package main
+ 
+ import (
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+ 	"strings"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
+ func cleanup() {
+ 	os.Remove("linkmain.o")
+ 	os.Remove("linkmain.a")
+@@ -51,16 +61,18 @@ func runFail(cmdline string) {
+ }
+ 
+ func main() {
++	flag.Parse()
++
+ 	// helloworld.go is package main
+-	run("go tool compile -o linkmain.o helloworld.go")
+-	run("go tool compile -pack -o linkmain.a helloworld.go")
+-	run("go tool link -o linkmain.exe linkmain.o")
+-	run("go tool link -o linkmain.exe linkmain.a")
++	run(goCmd() + " tool compile -o linkmain.o helloworld.go")
++	run(goCmd() + " tool compile -pack -o linkmain.a helloworld.go")
++	run(goCmd() + " tool link -o linkmain.exe linkmain.o")
++	run(goCmd() + " tool link -o linkmain.exe linkmain.a")
+ 
+ 	// linkmain.go is not
+-	run("go tool compile -o linkmain1.o linkmain.go")
+-	run("go tool compile -pack -o linkmain1.a linkmain.go")
+-	runFail("go tool link -o linkmain.exe linkmain1.o")
+-	runFail("go tool link -o linkmain.exe linkmain1.a")
++	run(goCmd() + " tool compile -o linkmain1.o linkmain.go")
++	run(goCmd() + " tool compile -pack -o linkmain1.a linkmain.go")
++	runFail(goCmd() + " tool link -o linkmain.exe linkmain1.o")
++	runFail(goCmd() + " tool link -o linkmain.exe linkmain1.a")
+ 	cleanup()
+ }
+--- test/linkx_run.go
++++ test/linkx_run.go
+@@ -1,5 +1,5 @@
+ // +build !nacl
+-// run
++// runtarget
+ 
+ // Copyright 2014 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -11,20 +11,40 @@ package main
+ 
+ import (
+ 	"bytes"
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+ 	"strings"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
++func goRun(args ...string) *exec.Cmd {
++	cmd := []string{"run"}
++	if *target != "" {
++		cmd = append(cmd, "-exec", "go_"+*target+"_exec")
++	}
++	cmd = append(cmd, args...)
++	return exec.Command(goCmd(), cmd...)
++}
++
+ func main() {
++	flag.Parse()
+ 	test(" ") // old deprecated syntax
+ 	test("=") // new syntax
+ }
+ 
+ func test(sep string) {
+ 	// Successful run
+-	cmd := exec.Command("go", "run", "-ldflags=-X main.tbd"+sep+"hello -X main.overwrite"+sep+"trumped -X main.nosuchsymbol"+sep+"neverseen", "linkx.go")
++	cmd := goRun("-ldflags=-X main.tbd"+sep+"hello -X main.overwrite"+sep+"trumped -X main.nosuchsymbol"+sep+"neverseen", "linkx.go")
+ 	var out, errbuf bytes.Buffer
+ 	cmd.Stdout = &out
+ 	cmd.Stderr = &errbuf
+@@ -44,7 +64,7 @@ func test(sep string) {
+ 	}
+ 
+ 	// Issue 8810
+-	cmd = exec.Command("go", "run", "-ldflags=-X main.tbd", "linkx.go")
++	cmd = goRun("-ldflags=-X main.tbd", "linkx.go")
+ 	_, err = cmd.CombinedOutput()
+ 	if err == nil {
+ 		fmt.Println("-X linker flag should not accept keys without values")
+@@ -52,7 +72,7 @@ func test(sep string) {
+ 	}
+ 
+ 	// Issue 9621
+-	cmd = exec.Command("go", "run", "-ldflags=-X main.b=false -X main.x=42", "linkx.go")
++	cmd = goRun("-ldflags=-X main.b=false -X main.x=42", "linkx.go")
+ 	outx, err := cmd.CombinedOutput()
+ 	if err == nil {
+ 		fmt.Println("-X linker flag should not overwrite non-strings")
+--- test/nosplit.go
++++ test/nosplit.go
+@@ -1,5 +1,5 @@
+ // +build !nacl
+-// run
++// runtarget
+ 
+ // Copyright 2014 The Go Authors.  All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -9,6 +9,7 @@ package main
+ 
+ import (
+ 	"bytes"
++	"flag"
+ 	"fmt"
+ 	"io/ioutil"
+ 	"log"
+@@ -16,11 +17,28 @@ import (
+ 	"os/exec"
+ 	"path/filepath"
+ 	"regexp"
+-	"runtime"
+ 	"strconv"
+ 	"strings"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
++func goArch() string {
++	goarch, err := exec.Command(goCmd(), "env", "GOARCH").Output()
++	if err != nil {
++		bug()
++		fmt.Printf("running go env GOARCH: %v\n", err)
++	}
++	return strings.TrimSpace(string(goarch))
++}
++
+ var tests = `
+ # These are test cases for the linker analysis that detects chains of
+ # nosplit functions that would cause a stack overflow.
+@@ -193,12 +211,13 @@ var (
+ )
+ 
+ func main() {
+-	goarch := os.Getenv("GOARCH")
++	flag.Parse()
++	goarch := goArch()
+ 	if goarch == "" {
+-		goarch = runtime.GOARCH
++		return
+ 	}
+ 
+-	version, err := exec.Command("go", "tool", "compile", "-V").Output()
++	version, err := exec.Command(goCmd(), "tool", "compile", "-V").Output()
+ 	if err != nil {
+ 		bug()
+ 		fmt.Printf("running go tool compile -V: %v\n", err)
+@@ -338,7 +357,7 @@ TestCases:
+ 			log.Fatal(err)
+ 		}
+ 
+-		cmd := exec.Command("go", "build")
++		cmd := exec.Command(goCmd(), "build")
+ 		cmd.Dir = dir
+ 		output, err := cmd.CombinedOutput()
+ 		if err == nil {
+--- test/run.go
++++ test/run.go
+@@ -220,6 +220,16 @@ func goRun(runcmd runCmd, goname string, args ...string) (out []byte, err error)
+ 	return runcmd(cmd...)
+ }
+ 
++func goRunTarget(runcmd runCmd, goname string, args ...string) (out []byte, err error) {
++	cmd := []string{"go_local", "run"}
++	cmd = append(cmd, goname)
++	if *target != "" {
++		cmd = append(cmd, "-target", *target)
++	}
++	cmd = append(cmd, args...)
++	return runcmd(cmd...)
++}
++
+ // skipError describes why a test was skipped.
+ type skipError string
+ 
+@@ -469,7 +479,7 @@ func (t *test) run() {
+ 	case "cmpout":
+ 		action = "run" // the run case already looks for <dir>/<test>.out files
+ 		fallthrough
+-	case "compile", "compiledir", "build", "run", "runoutput", "rundir":
++	case "compile", "compiledir", "build", "run", "runtarget", "runoutput", "rundir":
+ 		t.action = action
+ 	case "errorcheck", "errorcheckdir", "errorcheckoutput":
+ 		t.action = action
+@@ -653,6 +663,17 @@ func (t *test) run() {
+ 			t.err = fmt.Errorf("incorrect output\n%s", out)
+ 		}
+ 
++	case "runtarget":
++		useTmp = false
++		out, err := goRunTarget(runcmd, t.goFileName(), args...)
++		if err != nil {
++			t.err = err
++			return
++		}
++		if strings.Replace(string(out), "\r\n", "\n", -1) != t.expectedOutput() {
++			t.err = fmt.Errorf("incorrect output\n%s", out)
++		}
++
+ 	case "runoutput":
+ 		rungatec <- true
+ 		defer func() {
+--- test/sinit_run.go
++++ test/sinit_run.go
+@@ -1,5 +1,5 @@
+ // +build !nacl
+-// run
++// runtarget
+ 
+ // Copyright 2014 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+@@ -11,13 +11,24 @@ package main
+ 
+ import (
+ 	"bytes"
++	"flag"
+ 	"fmt"
+ 	"os"
+ 	"os/exec"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
+ func main() {
+-	cmd := exec.Command("go", "tool", "compile", "-S", "sinit.go")
++	flag.Parse()
++	cmd := exec.Command(goCmd(), "tool", "compile", "-S", "sinit.go")
+ 	out, err := cmd.CombinedOutput()
+ 	if err != nil {
+ 		fmt.Println(string(out))
diff --git a/go/patch/go4.patch b/go/patch/go4.patch
new file mode 100644
index 0000000..1c96c09
--- /dev/null
+++ b/go/patch/go4.patch
@@ -0,0 +1,101 @@
+runtime, crypto/x509: add -target flag.
+
+--- src/crypto/x509/x509_test.go
++++ src/crypto/x509/x509_test.go
+@@ -19,6 +19,7 @@ import (
+ 	"encoding/hex"
+ 	"encoding/pem"
+ 	"fmt"
++	"flag"
+ 	"internal/testenv"
+ 	"math/big"
+ 	"net"
+@@ -28,6 +29,8 @@ import (
+ 	"time"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
+ func TestParsePKCS1PrivateKey(t *testing.T) {
+ 	block, _ := pem.Decode([]byte(pemPrivateKey))
+ 	priv, err := ParsePKCS1PrivateKey(block.Bytes)
+@@ -862,7 +865,13 @@ func TestParsePEMCRL(t *testing.T) {
+ func TestImports(t *testing.T) {
+ 	testenv.MustHaveGoRun(t)
+ 
+-	if err := exec.Command("go", "run", "x509_test_import.go").Run(); err != nil {
++	var cmd *exec.Cmd
++	if *target == "" {
++		cmd = exec.Command("go", "run", "x509_test_import.go")
++	} else {
++		cmd = exec.Command("go_"+*target, "run", "-exec", "go_"+*target+"_exec", "x509_test_import.go")
++	}
++	if err := cmd.Run(); err != nil {
+ 		t.Errorf("failed to run x509_test_import.go: %s", err)
+ 	}
+ }
+--- src/runtime/crash_test.go
++++ src/runtime/crash_test.go
+@@ -5,6 +5,7 @@
+ package runtime_test
+ 
+ import (
++	"flag"
+ 	"fmt"
+ 	"internal/testenv"
+ 	"io/ioutil"
+@@ -18,6 +19,25 @@ import (
+ 	"testing"
+ )
+ 
++var target = flag.String("target", "", "if non empty, use 'go_target' to compile test files and 'go_target_exec' to run the binaries")
++
++func goCmd() string {
++	if *target != "" {
++		return "go_" + *target
++	}
++	return "go"
++}
++
++func goExecCmd(name string, arg ...string) *exec.Cmd {
++	var cmd []string
++	if *target != "" {
++		cmd = append(cmd, "go_"+*target+"_exec")
++	}
++	cmd = append(cmd, name)
++	cmd = append(cmd, arg...)
++	return exec.Command(cmd[0], cmd[1:]...)
++}
++
+ var toRemove []string
+ 
+ func TestMain(m *testing.M) {
+@@ -65,7 +85,7 @@ func runTestProg(t *testing.T, binary, name string) string {
+ 	if err != nil {
+ 		t.Fatal(err)
+ 	}
+-	got, _ := testEnv(exec.Command(exe, name)).CombinedOutput()
++	got, _ := testEnv(goExecCmd(exe, name)).CombinedOutput()
+ 	return string(got)
+ }
+ 
+@@ -92,7 +112,7 @@ func buildTestProg(t *testing.T, binary string) (string, error) {
+ 	}
+ 
+ 	exe := filepath.Join(testprog.dir, binary+".exe")
+-	cmd := exec.Command("go", "build", "-o", exe)
++	cmd := exec.Command(goCmd(), "build", "-o", exe)
+ 	cmd.Dir = "testdata/" + binary
+ 	out, err := testEnv(cmd).CombinedOutput()
+ 	if err != nil {
+--- src/runtime/crash_unix_test.go
++++ src/runtime/crash_unix_test.go
+@@ -157,7 +157,7 @@ func TestSignalExitStatus(t *testing.T) {
+ 	if err != nil {
+ 		t.Fatal(err)
+ 	}
+-	err = testEnv(exec.Command(exe, "SignalExitStatus")).Run()
++	err = testEnv(goExecCmd(exe, "SignalExitStatus")).Run()
+ 	if err == nil {
+ 		t.Error("test program succeeded unexpectedly")
+ 	} else if ee, ok := err.(*exec.ExitError); !ok {
diff --git a/go/patch/go5.patch b/go/patch/go5.patch
new file mode 100644
index 0000000..fa65658
--- /dev/null
+++ b/go/patch/go5.patch
@@ -0,0 +1,198 @@
+misc/cgo/testcshared: add support for -target.
+
+--- misc/cgo/testcshared/test.bash
++++ misc/cgo/testcshared/test.bash
+@@ -14,9 +14,23 @@ if [ ! -f src/libgo/libgo.go ]; then
+ 	exit 1
+ fi
+ 
+-goos=$(go env GOOS)
+-goarch=$(go env GOARCH)
+-goroot=$(go env GOROOT)
++function target()
++	{
++	[[ -n "${target}" ]]
++	}
++
++function go_target()
++	{
++	if target; then
++		go_${target} "$@"
++	else
++		go "$@"
++	fi
++	}
++
++goos=$(go_target env GOOS)
++goarch=$(go_target env GOARCH)
++goroot=$(go_target env GOROOT)
+ if [ ! -d "$goroot" ]; then
+ 	echo 'misc/cgo/testcshared/test.bash cannnot find GOROOT' 1>&2
+ 	echo '$GOROOT:' "$GOROOT" 1>&2
+@@ -31,8 +45,10 @@ if [ "${goos}" == "darwin" ]; then
+ 	installdir=pkg/${goos}_${goarch}_testcshared
+ fi
+ 
+-# Temporary directory on the android device.
+-androidpath=/data/local/tmp/testcshared-$$
++# Temporary directory on the android/chromeos device.
++if target; then
++	remotepath=$(target_tmpdir)/testcshared-$$
++fi
+ 
+ function cleanup() {
+ 	rm -f libgo.$libext libgo2.$libext libgo4.$libext libgo5.$libext
+@@ -40,37 +56,33 @@ function cleanup() {
+ 	rm -f testp testp2 testp3 testp4 testp5
+ 	rm -rf pkg "${goroot}/${installdir}"
+ 
+-	if [ "$goos" == "android" ]; then
+-		adb shell rm -rf "$androidpath"
++	if target; then
++		target_sh "${target}" "rm -rf $remotepath"
+ 	fi
+ }
+ trap cleanup EXIT
+ 
+-if [ "$goos" == "android" ]; then
+-	adb shell mkdir -p "$androidpath"
++if target; then
++	target_sh "${target}" "mkdir -p $remotepath"
+ fi
+ 
+ function run() {
+-	case "$goos" in
+-	"android")
++	if target; then
+ 		local args=$@
+-		output=$(adb shell "cd ${androidpath}; $@")
+-		output=$(echo $output|tr -d '\r')
++		output=$(target_sh "${target}" "cd ${remotepath}; $@")
+ 		case $output in
+ 			*PASS) echo "PASS";; 
+ 			*) echo "$output";;
+ 		esac
+-		;;
+-	*)
++	else
+ 		echo $(env $@)
+-		;;
+-	esac
++	fi
+ }
+ 
+ function binpush() {
+ 	bin=${1}
+-	if [ "$goos" == "android" ]; then
+-		adb push "$bin"  "${androidpath}/${bin}" 2>/dev/null
++	if target; then
++		target_cp "$bin" "${target}:${remotepath}/${bin}"
+ 	fi
+ }
+ 
+@@ -84,9 +96,9 @@ if [ "$goos" == "darwin" ]; then
+ fi
+ 
+ # Create the header files.
+-GOPATH=$(pwd) go install -buildmode=c-shared $suffix libgo
++GOPATH=$(pwd) go_target install -buildmode=c-shared $suffix libgo
+ 
+-GOPATH=$(pwd) go build -buildmode=c-shared $suffix -o libgo.$libext src/libgo/libgo.go
++GOPATH=$(pwd) go_target build -buildmode=c-shared $suffix -o libgo.$libext src/libgo/libgo.go
+ binpush libgo.$libext
+ 
+ if [ "$goos" == "linux" ] || [ "$goos" == "android" ] ; then
+@@ -96,8 +108,8 @@ if [ "$goos" == "linux" ] || [ "$goos" == "android" ] ; then
+     fi
+ fi
+ 
+-GOGCCFLAGS=$(go env GOGCCFLAGS)
+-if [ "$goos" == "android" ]; then
++GOGCCFLAGS=$(go_target env GOGCCFLAGS)
++if target; then
+ 	GOGCCFLAGS="${GOGCCFLAGS} -pie"
+ fi
+ 
+@@ -105,7 +117,7 @@ status=0
+ 
+ # test0: exported symbols in shared lib are accessible.
+ # TODO(iant): using _shared here shouldn't really be necessary.
+-$(go env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c libgo.$libext
++$(go_target env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c libgo.$libext
+ binpush testp
+ 
+ output=$(run LD_LIBRARY_PATH=. ./testp)
+@@ -115,7 +127,7 @@ if [ "$output" != "PASS" ]; then
+ fi
+ 
+ # test1: shared library can be dynamically loaded and exported symbols are accessible.
+-$(go env CC) ${GOGCCFLAGS} -o testp main1.c -ldl
++$(go_target env CC) ${GOGCCFLAGS} -o testp main1.c -ldl
+ binpush testp
+ output=$(run ./testp ./libgo.$libext)
+ if [ "$output" != "PASS" ]; then
+@@ -124,13 +136,13 @@ if [ "$output" != "PASS" ]; then
+ fi
+ 
+ # test2: tests libgo2 which does not export any functions.
+-GOPATH=$(pwd) go build -buildmode=c-shared $suffix -o libgo2.$libext libgo2
++GOPATH=$(pwd) go_target build -buildmode=c-shared $suffix -o libgo2.$libext libgo2
+ binpush libgo2.$libext
+ linkflags="-Wl,--no-as-needed"
+ if [ "$goos" == "darwin" ]; then
+ 	linkflags=""
+ fi
+-$(go env CC) ${GOGCCFLAGS} -o testp2 main2.c $linkflags libgo2.$libext
++$(go_target env CC) ${GOGCCFLAGS} -o testp2 main2.c $linkflags libgo2.$libext
+ binpush testp2
+ output=$(run LD_LIBRARY_PATH=. ./testp2)
+ if [ "$output" != "PASS" ]; then
+@@ -138,9 +150,9 @@ if [ "$output" != "PASS" ]; then
+ 	status=1
+ fi
+ 
+-# test3: tests main.main is exported on android.
+-if [ "$goos" == "android" ]; then
+-	$(go env CC) ${GOGCCFLAGS} -o testp3 main3.c -ldl
++# test3: tests main.main is exported on android/chromeos.
++if target; then
++	$(go_target env CC) ${GOGCCFLAGS} -o testp3 main3.c -ldl
+ 	binpush testp3
+ 	output=$(run ./testp ./libgo.so)
+ 	if [ "$output" != "PASS" ]; then
+@@ -150,14 +162,14 @@ if [ "$goos" == "android" ]; then
+ fi
+ 
+ # test4: tests signal handlers
+-GOPATH=$(pwd) go build -buildmode=c-shared $suffix -o libgo4.$libext libgo4
++GOPATH=$(pwd) go_target build -buildmode=c-shared $suffix -o libgo4.$libext libgo4
+ binpush libgo4.$libext
+-$(go env CC) ${GOGCCFLAGS} -pthread -o testp4 main4.c -ldl
++$(go_target env CC) ${GOGCCFLAGS} -pthread -o testp4 main4.c -ldl
+ binpush testp4
+ output=$(run ./testp4 ./libgo4.$libext 2>&1)
+ if test "$output" != "PASS"; then
+     echo "FAIL test4 got ${output}"
+-    if test "$goos" != "android"; then
++    if ! target; then
+ 	echo "re-running test4 in verbose mode"
+ 	./testp4 ./libgo4.$libext verbose
+     fi
+@@ -165,14 +177,14 @@ if test "$output" != "PASS"; then
+ fi
+ 
+ # test5: tests signal handlers with os/signal.Notify
+-GOPATH=$(pwd) go build -buildmode=c-shared $suffix -o libgo5.$libext libgo5
++GOPATH=$(pwd) go_target build -buildmode=c-shared $suffix -o libgo5.$libext libgo5
+ binpush libgo5.$libext
+-$(go env CC) ${GOGCCFLAGS} -pthread -o testp5 main5.c -ldl
++$(go_target env CC) ${GOGCCFLAGS} -pthread -o testp5 main5.c -ldl
+ binpush testp5
+ output=$(run ./testp5 ./libgo5.$libext 2>&1)
+ if test "$output" != "PASS"; then
+     echo "FAIL test5 got ${output}"
+-    if test "$goos" != "android"; then
++    if ! target; then
+ 	echo "re-running test5 in verbose mode"
+ 	./testp5 ./libgo5.$libext verbose
+     fi
diff --git a/go/patch/go6.patch b/go/patch/go6.patch
new file mode 100644
index 0000000..7f1e4c0
--- /dev/null
+++ b/go/patch/go6.patch
@@ -0,0 +1,65 @@
+runtime: deadlock detection does not work when using external linker.
+
+--- src/runtime/crash_test.go
++++ src/runtime/crash_test.go
+@@ -177,22 +177,27 @@ func testDeadlock(t *testing.T, name string) {
+ }
+ 
+ func TestSimpleDeadlock(t *testing.T) {
++	t.Skip("deadlock detection fails with external linker")
+ 	testDeadlock(t, "SimpleDeadlock")
+ }
+ 
+ func TestInitDeadlock(t *testing.T) {
++	t.Skip("deadlock detection fails with external linker")
+ 	testDeadlock(t, "InitDeadlock")
+ }
+ 
+ func TestLockedDeadlock(t *testing.T) {
++	t.Skip("deadlock detection fails with external linker")
+ 	testDeadlock(t, "LockedDeadlock")
+ }
+ 
+ func TestLockedDeadlock2(t *testing.T) {
++	t.Skip("deadlock detection fails with external linker")
+ 	testDeadlock(t, "LockedDeadlock2")
+ }
+ 
+ func TestGoexitDeadlock(t *testing.T) {
++	t.Skip("deadlock detection fails with external linker")
+ 	output := runTestProg(t, "testprog", "GoexitDeadlock")
+ 	want := "no goroutines (main called runtime.Goexit) - deadlock!"
+ 	if !strings.Contains(output, want) {
+@@ -229,6 +234,7 @@ panic: again
+ }
+ 
+ func TestGoexitCrash(t *testing.T) {
++	t.Skip("deadlock detection fails with external linker")
+ 	output := runTestProg(t, "testprog", "GoexitExit")
+ 	want := "no goroutines (main called runtime.Goexit) - deadlock!"
+ 	if !strings.Contains(output, want) {
+@@ -285,6 +291,7 @@ func TestBreakpoint(t *testing.T) {
+ }
+ 
+ func TestGoexitInPanic(t *testing.T) {
++	t.Skip("deadlock detection fails with external linker")
+ 	// see issue 8774: this code used to trigger an infinite recursion
+ 	output := runTestProg(t, "testprog", "GoexitInPanic")
+ 	want := "fatal error: no goroutines (main called runtime.Goexit) - deadlock!"
+@@ -303,6 +310,7 @@ func TestPanicAfterGoexit(t *testing.T) {
+ }
+ 
+ func TestRecoveredPanicAfterGoexit(t *testing.T) {
++	t.Skip("deadlock detection fails with external linker")
+ 	output := runTestProg(t, "testprog", "RecoveredPanicAfterGoexit")
+ 	want := "fatal error: no goroutines (main called runtime.Goexit) - deadlock!"
+ 	if !strings.HasPrefix(output, want) {
+--- test/fixedbugs/bug429_run.go
++++ test/fixedbugs/bug429_run.go
+@@ -1,5 +1,5 @@
+ // +build !nacl
+-// runtarget
++// skip
+ 
+ // Copyright 2014 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
diff --git a/go/patch/go7.patch b/go/patch/go7.patch
new file mode 100644
index 0000000..7b769cf
--- /dev/null
+++ b/go/patch/go7.patch
@@ -0,0 +1,139 @@
+all: disable some tests that take a long time or allocate a lot of memory.
+
+--- src/encoding/gob/encoder_test.go
++++ src/encoding/gob/encoder_test.go
+@@ -1003,10 +1003,7 @@ func TestBadData(t *testing.T) {
+ 
+ // TestHugeWriteFails tests that enormous messages trigger an error.
+ func TestHugeWriteFails(t *testing.T) {
+-	if testing.Short() {
+-		// Requires allocating a monster, so don't do this from all.bash.
+-		t.Skip("skipping huge allocation in short mode")
+-	}
++	t.Skip("skipping test due to huge memory requirement")
+ 	huge := make([]byte, tooBig)
+ 	huge[0] = 7 // Make sure it's not all zeros.
+ 	buf := new(bytes.Buffer)
+--- src/math/big/float_test.go
++++ src/math/big/float_test.go
+@@ -1428,10 +1428,7 @@ func TestFloatQuo(t *testing.T) {
+ // TestFloatQuoSmoke tests all divisions x/y for values x, y in the range [-n, +n];
+ // it serves as a smoke test for basic correctness of division.
+ func TestFloatQuoSmoke(t *testing.T) {
+-	n := 1000
+-	if testing.Short() {
+-		n = 10
+-	}
++	n := 10
+ 
+ 	const dprec = 3         // max. precision variation
+ 	const prec = 10 + dprec // enough bits to hold n precisely
+--- src/math/big/rat_test.go
++++ src/math/big/rat_test.go
+@@ -430,10 +430,7 @@ func TestFloat64Distribution(t *testing.T) {
+ 		9,
+ 		11,
+ 	}
+-	var winc, einc = uint64(1), 1 // soak test (~75s on x86-64)
+-	if testing.Short() {
+-		winc, einc = 10, 500 // quick test (~12ms on x86-64)
+-	}
++	var winc, einc = uint64(10), 500
+ 
+ 	for _, sign := range "+-" {
+ 		for _, a := range add {
+--- src/math/big/ratconv_test.go
++++ src/math/big/ratconv_test.go
+@@ -344,9 +344,7 @@ func isFinite(f float64) bool {
+ func TestFloat32SpecialCases(t *testing.T) {
+ 	for _, input := range float64inputs {
+ 		if strings.HasPrefix(input, "long:") {
+-			if testing.Short() {
+-				continue
+-			}
++			continue
+ 			input = input[len("long:"):]
+ 		}
+ 
+@@ -400,9 +398,7 @@ func TestFloat32SpecialCases(t *testing.T) {
+ func TestFloat64SpecialCases(t *testing.T) {
+ 	for _, input := range float64inputs {
+ 		if strings.HasPrefix(input, "long:") {
+-			if testing.Short() {
+-				continue
+-			}
++			continue
+ 			input = input[len("long:"):]
+ 		}
+ 
+--- src/net/dial_test.go
++++ src/net/dial_test.go
+@@ -77,10 +77,7 @@ func TestSelfConnect(t *testing.T) {
+ 	l.Close()
+ 
+ 	// Try to connect to that address repeatedly.
+-	n := 100000
+-	if testing.Short() {
+-		n = 1000
+-	}
++	n := 1000
+ 	switch runtime.GOOS {
+ 	case "darwin", "dragonfly", "freebsd", "netbsd", "openbsd", "plan9", "solaris", "windows":
+ 		// Non-Linux systems take a long time to figure
+--- src/runtime/fastlog2_test.go
++++ src/runtime/fastlog2_test.go
+@@ -16,11 +16,7 @@ func TestFastLog2(t *testing.T) {
+ 	const randomBitCount = 26
+ 	var e float64
+ 
+-	inc := 1
+-	if testing.Short() {
+-		// Check 1K total values, down from 64M.
+-		inc = 1 << 16
+-	}
++	inc := 1 << 16
+ 	for i := 1; i < 1<<randomBitCount; i += inc {
+ 		l, fl := math.Log2(float64(i)), runtime.Fastlog2(float64(i))
+ 		d := l - fl
+--- src/runtime/hash_test.go
++++ src/runtime/hash_test.go
+@@ -126,9 +126,7 @@ func TestSmhasherZeros(t *testing.T) {
+ 
+ // Strings with up to two nonzero bytes all have distinct hashes.
+ func TestSmhasherTwoNonzero(t *testing.T) {
+-	if testing.Short() {
+-		t.Skip("Skipping in short mode")
+-	}
++	t.Skip("skipping test due to huge memory requirement")
+ 	h := newHashSet()
+ 	for n := 2; n <= 16; n++ {
+ 		twoNonZero(h, n)
+@@ -229,9 +227,7 @@ func setbits(h *HashSet, b []byte, i int, k int) {
+ // Test all possible combinations of n blocks from the set s.
+ // "permutation" is a bad name here, but it is what Smhasher uses.
+ func TestSmhasherPermutation(t *testing.T) {
+-	if testing.Short() {
+-		t.Skip("Skipping in short mode")
+-	}
++	t.Skip("skipping test due to huge memory requirement")
+ 	permutation(t, []uint32{0, 1, 2, 3, 4, 5, 6, 7}, 8)
+ 	permutation(t, []uint32{0, 1 << 29, 2 << 29, 3 << 29, 4 << 29, 5 << 29, 6 << 29, 7 << 29}, 8)
+ 	permutation(t, []uint32{0, 1}, 20)
+--- src/runtime/pprof/pprof_test.go
++++ src/runtime/pprof/pprof_test.go
+@@ -257,14 +257,7 @@ func profileOk(t *testing.T, need []string, prof bytes.Buffer, duration time.Dur
+ func TestCPUProfileWithFork(t *testing.T) {
+ 	testenv.MustHaveExec(t)
+ 
+-	heap := 1 << 30
+-	if runtime.GOOS == "android" {
+-		// Use smaller size for Android to avoid crash.
+-		heap = 100 << 20
+-	}
+-	if testing.Short() {
+-		heap = 100 << 20
+-	}
++	heap := 100 << 20
+ 	// This makes fork slower.
+ 	garbage := make([]byte, heap)
+ 	// Need to touch the slice, otherwise it won't be paged in.
diff --git a/go/push_goroot b/go/push_goroot
new file mode 100755
index 0000000..41612f7
--- /dev/null
+++ b/go/push_goroot
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -e -o pipefail
+
+# This script copies a locally built GOROOT to a remote device.
+#
+# Usage: push_goroot <target>...
+#
+# This script can work with both ChromeOS/Android devices.
+#
+# It uses "target_tmpdir" to figure out where to copy GOROOT on the device.
+# It uses "target_sh" to remotely execute commands on the device.
+# It uses "target_cp" to transfer files to the device.
+
+goroot="$(target_tmpdir)/go"
+for target in "$@"
+do
+	echo -n "pushing to ${target} ... "
+	target_sh ${target} "rm -rf ${goroot}"
+	target_sh ${target} "mkdir -p ${goroot}/pkg"
+
+	pkgdir="$(go_${target} env GOOS)_$(go_${target} env GOARCH)"
+	if [[ -d "pkg/${pkgdir}_shared" ]]
+	then
+		target_cp "pkg/${pkgdir}_shared" ${target}:${goroot}/pkg
+		target_sh ${target} "ln -s ${pkgdir}_shared ${goroot}/pkg/${pkgdir}"
+	else
+		target_cp "pkg/${pkgdir}" ${target}:${goroot}/pkg
+	fi
+
+	target_cp "src" ${target}:${goroot}
+	target_cp "lib" ${target}:${goroot}
+	target_cp "test" ${target}:${goroot}
+	echo "done"
+done
diff --git a/go/test_go b/go/test_go
new file mode 100755
index 0000000..3740c1b
--- /dev/null
+++ b/go/test_go
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+# This script runs tests for the Go toolchain on target devices.
+# It can be used for both ChromeOS and Android targets.
+#
+# Many of the test drivers that come from upstream do not support
+# cross-compiling and running the tests remotely. The patches in
+# the ./patch/ directory must be applied to the upstream sources
+# to add this support.
+#
+# Usage: test_go [-v] [-vv] [-full] <target>...
+#   -v: enable verbose test output from compiler tests.
+#   -v: enable verbose test output from standard library tests.
+#   -full: run all standard library tests (without the -short flag).
+
+verbose_run_test=""
+verbose_go_test=""
+testflags="-short"
+while [[ "$1" == -* ]]
+do
+	case "$1" in
+		-v) verbose_run_test="-v" ;;
+		-vv) verbose_go_test="-v" ;;
+		-full) testflags="-timeout=2h" ;;
+		*) echo "unrecognized flag: $1" ;;
+	esac
+	shift
+done
+
+go_local build -o runtest test/run.go
+runtest="${PWD}/runtest"
+
+function run_test()
+	{
+	GOOS="$(go_${target} env GOOS)" GOARCH="$(go_${target} env GOARCH)" ${runtest} -n=1 ${verbose_run_test} -show_skips -summary -target="${target}" "$@"
+	}
+
+function go_test()
+	{
+	go_${target} test -p=1 ${verbose_go_test} -exec="go_${target}_exec" ${testflags} "$@"
+	}
+
+function go_test_target()
+	{
+	go_local test -p=1 ${verbose_go_test} ${testflags} "$@" -target="${target}"
+	}
+
+for target in "$@"
+do
+	echo
+	echo "## ${target}"
+
+	echo
+	echo "# test"
+	(cd test && run_test)
+
+	echo
+	echo "# std"
+	go_test std
+
+	echo
+	echo "# GOMAXPROCS=2 -cpu=1,2,4 runtime"
+	GOMAXPROCS=2 go_test -cpu=1,2,4 runtime
+
+	echo
+	echo "# -cpu=10 sync"
+	go_test -cpu=10 sync
+
+	echo
+	echo "# runtime crypto/x509 -target=${target}"
+	go_test_target runtime crypto/x509
+
+	echo
+	echo "# misc/cgo/{stdio,life}"
+	run_test misc/cgo/{stdio,life}
+
+	echo
+	echo "# misc/cgo/{test,testtls,nocgo}"
+	GOTRACEBACK=2 go_test ./misc/cgo/{test,testtls,nocgo}
+
+	echo
+	echo "# misc/cgo/testcshared"
+	(cd misc/cgo/testcshared && target="${target}" ./test.bash)
+
+	echo
+	echo "# misc/cgo/testsigfwd"
+	(cd misc/cgo/testsigfwd && go_${target} run -exec="go_${target}_exec" main.go)
+done
diff --git a/heat_map.py b/heat_map.py
new file mode 100755
index 0000000..ae234b5
--- /dev/null
+++ b/heat_map.py
@@ -0,0 +1,146 @@
+#!/usr/bin/python2
+# Copyright 2015 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Wrapper to generate heat maps for chrome."""
+
+from __future__ import print_function
+
+import argparse
+import shutil
+import os
+import sys
+import tempfile
+from sets import Set
+
+from cros_utils import command_executer
+
+def IsARepoRoot(directory):
+  """Returns True if directory is the root of a repo checkout."""
+  return os.path.exists(os.path.join(directory, '.repo'))
+
+
+class HeatMapProducer(object):
+  """Class to produce heat map."""
+
+  def __init__(self, chromeos_root, perf_data, page_size, binary):
+    self.chromeos_root = os.path.realpath(chromeos_root)
+    self.perf_data = os.path.realpath(perf_data)
+    self.page_size = page_size
+    self.dir = os.path.dirname(os.path.realpath(__file__))
+    self.binary = binary
+    self.tempDir = ''
+    self.ce = command_executer.GetCommandExecuter()
+    self.loading_address = None
+    self.temp_perf = ''
+    self.temp_perf_inchroot = ''
+    self.perf_report = ''
+
+  def copyFileToChroot(self):
+    self.tempDir = tempfile.mkdtemp(
+        prefix=os.path.join(self.chromeos_root, 'src/'))
+    self.temp_perf = os.path.join(self.tempDir, 'perf.data')
+    shutil.copy2(self.perf_data, self.temp_perf)
+    self.temp_perf_inchroot = os.path.join('~/trunk/src',
+                                           os.path.basename(self.tempDir))
+
+  def getPerfReport(self):
+    cmd = ('cd %s; perf report -D -i perf.data > perf_report.txt' %
+           self.temp_perf_inchroot)
+    retval = self.ce.ChrootRunCommand(self.chromeos_root, cmd)
+    if retval:
+      raise RuntimeError('Failed to generate perf report')
+    self.perf_report = os.path.join(self.tempDir, 'perf_report.txt')
+
+  def getBinaryBaseAddress(self):
+    cmd = 'grep PERF_RECORD_MMAP %s | grep "%s$"' % (self.perf_report,
+                                                     self.binary)
+    retval, output, _ = self.ce.RunCommandWOutput(cmd)
+    if retval:
+      raise RuntimeError('Failed to run grep to get base address')
+    baseAddresses = Set()
+    for line in output.strip().split('\n'):
+      head = line.split('[')[2]
+      address = head.split('(')[0]
+      baseAddresses.add(address)
+    if len(baseAddresses) > 1:
+      raise RuntimeError(
+          'Multiple base address found, please disable ASLR and collect '
+          'profile again')
+    if not len(baseAddresses):
+      raise RuntimeError('Could not find the base address in the profile')
+    self.loading_address = baseAddresses.pop()
+
+  def RemoveFiles(self):
+    shutil.rmtree(self.tempDir)
+    if os.path.isfile(os.path.join(os.getcwd(), 'out.txt')):
+      os.remove(os.path.join(os.getcwd(), 'out.txt'))
+    if os.path.isfile(os.path.join(os.getcwd(), 'inst-histo.txt')):
+      os.remove(os.path.join(os.getcwd(), 'inst-histo.txt'))
+
+  def getHeatmap(self):
+    if not self.loading_address:
+      return
+    heatmap_script = os.path.join(self.dir, 'perf-to-inst-page.sh')
+    cmd = '{0} {1} {2} {3} {4}'.format(heatmap_script, self.binary,
+                                       self.perf_report, self.loading_address,
+                                       self.page_size)
+    retval = self.ce.RunCommand(cmd)
+    if retval:
+      raise RuntimeError('Failed to run script to generate heatmap')
+
+
+def main(argv):
+  """Parse the options.
+
+  Args:
+    argv: The options with which this script was invoked.
+
+  Returns:
+    0 unless an exception is raised.
+  """
+  parser = argparse.ArgumentParser()
+
+  parser.add_argument('--chromeos_root',
+                      dest='chromeos_root',
+                      required=True,
+                      help='ChromeOS root to use for generate heatmaps.')
+  parser.add_argument('--perf_data',
+                      dest='perf_data',
+                      required=True,
+                      help='The raw perf data.')
+  parser.add_argument('--binary',
+                      dest='binary',
+                      required=False,
+                      help='The name of the binary.',
+                      default='chrome')
+  parser.add_argument('--page_size',
+                      dest='page_size',
+                      required=False,
+                      help='The page size for heat maps.',
+                      default=4096)
+  options = parser.parse_args(argv)
+
+  if not IsARepoRoot(options.chromeos_root):
+    parser.error('% does not contain .repo dir.' % options.chromeos_root)
+
+  if not os.path.isfile(options.perf_data):
+    parser.error('Cannot find perf_data: %s.' % options.perf_data)
+
+  heatmap_producer = HeatMapProducer(options.chromeos_root, options.perf_data,
+                                     options.page_size, options.binary)
+  try:
+    heatmap_producer.copyFileToChroot()
+    heatmap_producer.getPerfReport()
+    heatmap_producer.getBinaryBaseAddress()
+    heatmap_producer.getHeatmap()
+    print('\nheat map and time histgram genereated in the current directory '
+          'with name heat_map.png and timeline.png accordingly.')
+  except RuntimeError, e:
+    print(e)
+  finally:
+    heatmap_producer.RemoveFiles()
+
+
+if __name__ == '__main__':
+  sys.exit(main(sys.argv[1:]))
diff --git a/image_chromeos.py b/image_chromeos.py
new file mode 100755
index 0000000..d95434a
--- /dev/null
+++ b/image_chromeos.py
@@ -0,0 +1,430 @@
+#!/usr/bin/python2
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+"""Script to image a ChromeOS device.
+
+This script images a remote ChromeOS device with a specific image."
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import filecmp
+import glob
+import os
+import re
+import shutil
+import sys
+import tempfile
+import time
+
+from cros_utils import command_executer
+from cros_utils import locks
+from cros_utils import logger
+from cros_utils import misc
+from cros_utils.file_utils import FileUtils
+
+checksum_file = '/usr/local/osimage_checksum_file'
+lock_file = '/tmp/image_chromeos_lock/image_chromeos_lock'
+
+
+def Usage(parser, message):
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def CheckForCrosFlash(chromeos_root, remote, log_level):
+  cmd_executer = command_executer.GetCommandExecuter(log_level=log_level)
+
+  # Check to see if remote machine has cherrypy, ctypes
+  command = "python -c 'import cherrypy, ctypes'"
+  ret = cmd_executer.CrosRunCommand(command,
+                                    chromeos_root=chromeos_root,
+                                    machine=remote)
+  logger.GetLogger().LogFatalIf(
+      ret == 255, 'Failed ssh to %s (for checking cherrypy)' % remote)
+  logger.GetLogger().LogFatalIf(
+      ret != 0, "Failed to find cherrypy or ctypes on remote '{}', "
+      'cros flash cannot work.'.format(remote))
+
+
+def DoImage(argv):
+  """Image ChromeOS."""
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      help='Target directory for ChromeOS installation.')
+  parser.add_argument('-r', '--remote', dest='remote', help='Target device.')
+  parser.add_argument('-i', '--image', dest='image', help='Image binary file.')
+  parser.add_argument('-b',
+                      '--board',
+                      dest='board',
+                      help='Target board override.')
+  parser.add_argument('-f',
+                      '--force',
+                      dest='force',
+                      action='store_true',
+                      default=False,
+                      help='Force an image even if it is non-test.')
+  parser.add_argument('-n',
+                      '--no_lock',
+                      dest='no_lock',
+                      default=False,
+                      action='store_true',
+                      help='Do not attempt to lock remote before imaging.  '
+                      'This option should only be used in cases where the '
+                      'exclusive lock has already been acquired (e.g. in '
+                      'a script that calls this one).')
+  parser.add_argument('-l',
+                      '--logging_level',
+                      dest='log_level',
+                      default='verbose',
+                      help='Amount of logging to be used. Valid levels are '
+                      "'quiet', 'average', and 'verbose'.")
+  parser.add_argument('-a', '--image_args', dest='image_args')
+
+  options = parser.parse_args(argv[1:])
+
+  if not options.log_level in command_executer.LOG_LEVEL:
+    Usage(parser, "--logging_level must be 'quiet', 'average' or 'verbose'")
+  else:
+    log_level = options.log_level
+
+  # Common initializations
+  cmd_executer = command_executer.GetCommandExecuter(log_level=log_level)
+  l = logger.GetLogger()
+
+  if options.chromeos_root is None:
+    Usage(parser, '--chromeos_root must be set')
+
+  if options.remote is None:
+    Usage(parser, '--remote must be set')
+
+  options.chromeos_root = os.path.expanduser(options.chromeos_root)
+
+  if options.board is None:
+    board = cmd_executer.CrosLearnBoard(options.chromeos_root, options.remote)
+  else:
+    board = options.board
+
+  if options.image is None:
+    images_dir = misc.GetImageDir(options.chromeos_root, board)
+    image = os.path.join(images_dir, 'latest', 'chromiumos_test_image.bin')
+    if not os.path.exists(image):
+      image = os.path.join(images_dir, 'latest', 'chromiumos_image.bin')
+    is_xbuddy_image = False
+  else:
+    image = options.image
+    is_xbuddy_image = image.startswith('xbuddy://')
+    if not is_xbuddy_image:
+      image = os.path.expanduser(image)
+
+  if not is_xbuddy_image:
+    image = os.path.realpath(image)
+
+  if not os.path.exists(image) and not is_xbuddy_image:
+    Usage(parser, 'Image file: ' + image + ' does not exist!')
+
+  try:
+    should_unlock = False
+    if not options.no_lock:
+      try:
+        _ = locks.AcquireLock(
+            list(options.remote.split()), options.chromeos_root)
+        should_unlock = True
+      except Exception as e:
+        raise RuntimeError('Error acquiring machine: %s' % str(e))
+
+    reimage = False
+    local_image = False
+    if not is_xbuddy_image:
+      local_image = True
+      image_checksum = FileUtils().Md5File(image, log_level=log_level)
+
+      command = 'cat ' + checksum_file
+      ret, device_checksum, _ = cmd_executer.CrosRunCommandWOutput(
+          command,
+          chromeos_root=options.chromeos_root,
+          machine=options.remote)
+
+      device_checksum = device_checksum.strip()
+      image_checksum = str(image_checksum)
+
+      l.LogOutput('Image checksum: ' + image_checksum)
+      l.LogOutput('Device checksum: ' + device_checksum)
+
+      if image_checksum != device_checksum:
+        [found, located_image] = LocateOrCopyImage(options.chromeos_root,
+                                                   image,
+                                                   board=board)
+
+        reimage = True
+        l.LogOutput('Checksums do not match. Re-imaging...')
+
+        is_test_image = IsImageModdedForTest(options.chromeos_root,
+                                             located_image, log_level)
+
+        if not is_test_image and not options.force:
+          logger.GetLogger().LogFatal('Have to pass --force to image a '
+                                      'non-test image!')
+    else:
+      reimage = True
+      found = True
+      l.LogOutput('Using non-local image; Re-imaging...')
+
+    if reimage:
+      # If the device has /tmp mounted as noexec, image_to_live.sh can fail.
+      command = 'mount -o remount,rw,exec /tmp'
+      cmd_executer.CrosRunCommand(command,
+                                  chromeos_root=options.chromeos_root,
+                                  machine=options.remote)
+
+      real_src_dir = os.path.join(
+          os.path.realpath(options.chromeos_root), 'src')
+      real_chroot_dir = os.path.join(
+          os.path.realpath(options.chromeos_root), 'chroot')
+      if local_image:
+        if located_image.find(real_src_dir) != 0:
+          if located_image.find(real_chroot_dir) != 0:
+            raise RuntimeError('Located image: %s not in chromeos_root: %s' %
+                               (located_image, options.chromeos_root))
+          else:
+            chroot_image = located_image[len(real_chroot_dir):]
+        else:
+          chroot_image = os.path.join(
+              '~/trunk/src', located_image[len(real_src_dir):].lstrip('/'))
+
+      # Check to see if cros flash will work for the remote machine.
+      CheckForCrosFlash(options.chromeos_root, options.remote, log_level)
+
+      cros_flash_args = ['cros', 'flash', '--board=%s' % board,
+                         '--clobber-stateful', options.remote]
+      if local_image:
+        cros_flash_args.append(chroot_image)
+      else:
+        cros_flash_args.append(image)
+
+      command = ' '.join(cros_flash_args)
+
+      # Workaround for crosbug.com/35684.
+      os.chmod(misc.GetChromeOSKeyFile(options.chromeos_root), 0600)
+
+      if log_level == 'average':
+        cmd_executer.SetLogLevel('verbose')
+      retries = 0
+      while True:
+        if log_level == 'quiet':
+          l.LogOutput('CMD : %s' % command)
+        ret = cmd_executer.ChrootRunCommand(options.chromeos_root,
+                                            command,
+                                            command_timeout=1800)
+        if ret == 0 or retries >= 2:
+          break
+        retries += 1
+        if log_level == 'quiet':
+          l.LogOutput('Imaging failed. Retry # %d.' % retries)
+
+      if log_level == 'average':
+        cmd_executer.SetLogLevel(log_level)
+
+      if found == False:
+        temp_dir = os.path.dirname(located_image)
+        l.LogOutput('Deleting temp image dir: %s' % temp_dir)
+        shutil.rmtree(temp_dir)
+
+      logger.GetLogger().LogFatalIf(ret, 'Image command failed')
+
+      # Unfortunately cros_image_to_target.py sometimes returns early when the
+      # machine isn't fully up yet.
+      ret = EnsureMachineUp(options.chromeos_root, options.remote, log_level)
+
+      # If this is a non-local image, then the ret returned from
+      # EnsureMachineUp is the one that will be returned by this function;
+      # in that case, make sure the value in 'ret' is appropriate.
+      if not local_image and ret == True:
+        ret = 0
+      else:
+        ret = 1
+
+      if local_image:
+        if log_level == 'average':
+          l.LogOutput('Verifying image.')
+        command = 'echo %s > %s && chmod -w %s' % (image_checksum,
+                                                   checksum_file,
+                                                   checksum_file)
+        ret = cmd_executer.CrosRunCommand(
+            command,
+            chromeos_root=options.chromeos_root,
+            machine=options.remote)
+        logger.GetLogger().LogFatalIf(ret, 'Writing checksum failed.')
+
+        successfully_imaged = VerifyChromeChecksum(options.chromeos_root,
+                                                   image, options.remote,
+                                                   log_level)
+        logger.GetLogger().LogFatalIf(not successfully_imaged,
+                                      'Image verification failed!')
+        TryRemountPartitionAsRW(options.chromeos_root, options.remote,
+                                log_level)
+    else:
+      l.LogOutput('Checksums match. Skipping reimage')
+    return ret
+  finally:
+    if should_unlock:
+      locks.ReleaseLock(list(options.remote.split()), options.chromeos_root)
+
+
+def LocateOrCopyImage(chromeos_root, image, board=None):
+  l = logger.GetLogger()
+  if board is None:
+    board_glob = '*'
+  else:
+    board_glob = board
+
+  chromeos_root_realpath = os.path.realpath(chromeos_root)
+  image = os.path.realpath(image)
+
+  if image.startswith('%s/' % chromeos_root_realpath):
+    return [True, image]
+
+  # First search within the existing build dirs for any matching files.
+  images_glob = ('%s/src/build/images/%s/*/*.bin' % (chromeos_root_realpath,
+                                                     board_glob))
+  images_list = glob.glob(images_glob)
+  for potential_image in images_list:
+    if filecmp.cmp(potential_image, image):
+      l.LogOutput('Found matching image %s in chromeos_root.' %
+                  potential_image)
+      return [True, potential_image]
+  # We did not find an image. Copy it in the src dir and return the copied
+  # file.
+  if board is None:
+    board = ''
+  base_dir = ('%s/src/build/images/%s' % (chromeos_root_realpath, board))
+  if not os.path.isdir(base_dir):
+    os.makedirs(base_dir)
+  temp_dir = tempfile.mkdtemp(prefix='%s/tmp' % base_dir)
+  new_image = '%s/%s' % (temp_dir, os.path.basename(image))
+  l.LogOutput('No matching image found. Copying %s to %s' % (image, new_image))
+  shutil.copyfile(image, new_image)
+  return [False, new_image]
+
+
+def GetImageMountCommand(chromeos_root, image, rootfs_mp, stateful_mp):
+  image_dir = os.path.dirname(image)
+  image_file = os.path.basename(image)
+  mount_command = ('cd %s/src/scripts &&'
+                   './mount_gpt_image.sh --from=%s --image=%s'
+                   ' --safe --read_only'
+                   ' --rootfs_mountpt=%s'
+                   ' --stateful_mountpt=%s' % (chromeos_root, image_dir,
+                                               image_file, rootfs_mp,
+                                               stateful_mp))
+  return mount_command
+
+
+def MountImage(chromeos_root,
+               image,
+               rootfs_mp,
+               stateful_mp,
+               log_level,
+               unmount=False):
+  cmd_executer = command_executer.GetCommandExecuter(log_level=log_level)
+  command = GetImageMountCommand(chromeos_root, image, rootfs_mp, stateful_mp)
+  if unmount:
+    command = '%s --unmount' % command
+  ret = cmd_executer.RunCommand(command)
+  logger.GetLogger().LogFatalIf(ret, 'Mount/unmount command failed!')
+  return ret
+
+
+def IsImageModdedForTest(chromeos_root, image, log_level):
+  if log_level != 'verbose':
+    log_level = 'quiet'
+  rootfs_mp = tempfile.mkdtemp()
+  stateful_mp = tempfile.mkdtemp()
+  MountImage(chromeos_root, image, rootfs_mp, stateful_mp, log_level)
+  lsb_release_file = os.path.join(rootfs_mp, 'etc/lsb-release')
+  lsb_release_contents = open(lsb_release_file).read()
+  is_test_image = re.search('test', lsb_release_contents, re.IGNORECASE)
+  MountImage(chromeos_root,
+             image,
+             rootfs_mp,
+             stateful_mp,
+             log_level,
+             unmount=True)
+  return is_test_image
+
+
+def VerifyChromeChecksum(chromeos_root, image, remote, log_level):
+  cmd_executer = command_executer.GetCommandExecuter(log_level=log_level)
+  rootfs_mp = tempfile.mkdtemp()
+  stateful_mp = tempfile.mkdtemp()
+  MountImage(chromeos_root, image, rootfs_mp, stateful_mp, log_level)
+  image_chrome_checksum = FileUtils().Md5File('%s/opt/google/chrome/chrome' %
+                                              rootfs_mp,
+                                              log_level=log_level)
+  MountImage(chromeos_root,
+             image,
+             rootfs_mp,
+             stateful_mp,
+             log_level,
+             unmount=True)
+
+  command = 'md5sum /opt/google/chrome/chrome'
+  [_, o, _] = cmd_executer.CrosRunCommandWOutput(command,
+                                                 chromeos_root=chromeos_root,
+                                                 machine=remote)
+  device_chrome_checksum = o.split()[0]
+  if image_chrome_checksum.strip() == device_chrome_checksum.strip():
+    return True
+  else:
+    return False
+
+
+# Remount partition as writable.
+# TODO: auto-detect if an image is built using --noenable_rootfs_verification.
+def TryRemountPartitionAsRW(chromeos_root, remote, log_level):
+  l = logger.GetLogger()
+  cmd_executer = command_executer.GetCommandExecuter(log_level=log_level)
+  command = 'sudo mount -o remount,rw /'
+  ret = cmd_executer.CrosRunCommand(\
+    command, chromeos_root=chromeos_root, machine=remote,
+    terminated_timeout=10)
+  if ret:
+    ## Safely ignore.
+    l.LogWarning('Failed to remount partition as rw, '
+                 'probably the image was not built with '
+                 "\"--noenable_rootfs_verification\", "
+                 'you can safely ignore this.')
+  else:
+    l.LogOutput('Re-mounted partition as writable.')
+
+
+def EnsureMachineUp(chromeos_root, remote, log_level):
+  l = logger.GetLogger()
+  cmd_executer = command_executer.GetCommandExecuter(log_level=log_level)
+  timeout = 600
+  magic = 'abcdefghijklmnopqrstuvwxyz'
+  command = 'echo %s' % magic
+  start_time = time.time()
+  while True:
+    current_time = time.time()
+    if current_time - start_time > timeout:
+      l.LogError('Timeout of %ss reached. Machine still not up. Aborting.' %
+                 timeout)
+      return False
+    ret = cmd_executer.CrosRunCommand(command,
+                                      chromeos_root=chromeos_root,
+                                      machine=remote)
+    if not ret:
+      return True
+
+
+if __name__ == '__main__':
+  retval = DoImage(sys.argv)
+  sys.exit(retval)
diff --git a/lock_machine_test.py b/lock_machine_test.py
new file mode 100644
index 0000000..0ffe094
--- /dev/null
+++ b/lock_machine_test.py
@@ -0,0 +1,121 @@
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""lock_machine.py related unit-tests.
+
+MachineManagerTest tests MachineManager.
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+from multiprocessing import Process
+import time
+import unittest
+
+import file_lock_machine
+
+
+def LockAndSleep(machine):
+  file_lock_machine.Machine(machine, auto=True).Lock(exclusive=True)
+  time.sleep(1)
+
+
+class MachineTest(unittest.TestCase):
+  """Class for testing machine locking."""
+
+  def setUp(self):
+    pass
+
+  def testRepeatedUnlock(self):
+    mach = file_lock_machine.Machine('qqqraymes.mtv')
+    for _ in range(10):
+      self.assertFalse(mach.Unlock())
+    mach = file_lock_machine.Machine('qqqraymes.mtv', auto=True)
+    for _ in range(10):
+      self.assertFalse(mach.Unlock())
+
+  def testLockUnlock(self):
+    mach = file_lock_machine.Machine('otter.mtv', '/tmp')
+    for _ in range(10):
+      self.assertTrue(mach.Lock(exclusive=True))
+      self.assertTrue(mach.Unlock(exclusive=True))
+
+    mach = file_lock_machine.Machine('otter.mtv', '/tmp', True)
+    for _ in range(10):
+      self.assertTrue(mach.Lock(exclusive=True))
+      self.assertTrue(mach.Unlock(exclusive=True))
+
+  def testSharedLock(self):
+    mach = file_lock_machine.Machine('chrotomation.mtv')
+    for _ in range(10):
+      self.assertTrue(mach.Lock(exclusive=False))
+    for _ in range(10):
+      self.assertTrue(mach.Unlock(exclusive=False))
+    self.assertTrue(mach.Lock(exclusive=True))
+    self.assertTrue(mach.Unlock(exclusive=True))
+
+    mach = file_lock_machine.Machine('chrotomation.mtv', auto=True)
+    for _ in range(10):
+      self.assertTrue(mach.Lock(exclusive=False))
+    for _ in range(10):
+      self.assertTrue(mach.Unlock(exclusive=False))
+    self.assertTrue(mach.Lock(exclusive=True))
+    self.assertTrue(mach.Unlock(exclusive=True))
+
+  def testExclusiveLock(self):
+    mach = file_lock_machine.Machine('atree.mtv')
+    self.assertTrue(mach.Lock(exclusive=True))
+    for _ in range(10):
+      self.assertFalse(mach.Lock(exclusive=True))
+      self.assertFalse(mach.Lock(exclusive=False))
+    self.assertTrue(mach.Unlock(exclusive=True))
+
+    mach = file_lock_machine.Machine('atree.mtv', auto=True)
+    self.assertTrue(mach.Lock(exclusive=True))
+    for _ in range(10):
+      self.assertFalse(mach.Lock(exclusive=True))
+      self.assertFalse(mach.Lock(exclusive=False))
+    self.assertTrue(mach.Unlock(exclusive=True))
+
+  def testExclusiveState(self):
+    mach = file_lock_machine.Machine('testExclusiveState')
+    self.assertTrue(mach.Lock(exclusive=True))
+    for _ in range(10):
+      self.assertFalse(mach.Lock(exclusive=False))
+    self.assertTrue(mach.Unlock(exclusive=True))
+
+    mach = file_lock_machine.Machine('testExclusiveState', auto=True)
+    self.assertTrue(mach.Lock(exclusive=True))
+    for _ in range(10):
+      self.assertFalse(mach.Lock(exclusive=False))
+    self.assertTrue(mach.Unlock(exclusive=True))
+
+  def testAutoLockGone(self):
+    mach = file_lock_machine.Machine('lockgone', auto=True)
+    p = Process(target=LockAndSleep, args=('lockgone',))
+    p.start()
+    time.sleep(1.1)
+    p.join()
+    self.assertTrue(mach.Lock(exclusive=True))
+
+  def testAutoLockFromOther(self):
+    mach = file_lock_machine.Machine('other_lock', auto=True)
+    p = Process(target=LockAndSleep, args=('other_lock',))
+    p.start()
+    time.sleep(0.5)
+    self.assertFalse(mach.Lock(exclusive=True))
+    p.join()
+    time.sleep(0.6)
+    self.assertTrue(mach.Lock(exclusive=True))
+
+  def testUnlockByOthers(self):
+    mach = file_lock_machine.Machine('other_unlock', auto=True)
+    p = Process(target=LockAndSleep, args=('other_unlock',))
+    p.start()
+    time.sleep(0.5)
+    self.assertTrue(mach.Unlock(exclusive=True))
+    self.assertTrue(mach.Lock(exclusive=True))
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/mem_tests/README b/mem_tests/README
new file mode 100644
index 0000000..4e35f68
--- /dev/null
+++ b/mem_tests/README
@@ -0,0 +1,46 @@
+Usage
+-----
+
+These scripts are made to parse TCMalloc output in order to extract certain
+info from them.
+
+In particular, these scripts rely on the error logging system for ChromeOS in
+order to extract information. In order to use a script (e.g. total_mem.py), you
+just have the command:
+
+./total_mem.py FILENAME
+
+where FILENAME is the name of the log file to be parsed.
+
+Codebase Changes
+----------------
+
+There are two ideas that motivate these changes:
+
+1- Turn on TCMalloc sampling.
+2- Use perf to collect the sample information.
+
+The following files have to be changed:
+
+in chrome/browser/metrics/perf_provider_chrome_os:
+
+add:
+    #include "third_party/tcmalloc/chromium/src/gperftools/malloc_extension.h"
+
+Change the perf profiling interval to something small (60*1000 milliseconds).
+
+inside DoPeriodicCollection, insert the following code:
+
+    std::string output;
+    char* chr_arr = new char[9999];
+    MallocExtension::instance() ->GetHeapSample(&output);
+    MallocExtension::instance() ->GetStats(chr_arr, 9999);
+    LOG(ERROR) << "Output Heap Data: ";
+    LOG(ERROR) << output;
+    LOG(ERROR) << "Output Heap Stats: ";
+    output = "";
+    for (unsigned int i = 0; i < strlen(chr_arr); i++) {
+        output += chr_arr[i];
+    }
+    LOG(ERROR) << output;
+    delete[] chr_arr;
diff --git a/mem_tests/clean_data.py b/mem_tests/clean_data.py
new file mode 100755
index 0000000..f9a11e7
--- /dev/null
+++ b/mem_tests/clean_data.py
@@ -0,0 +1,29 @@
+#! /usr/bin/python
+"""Cleans output from other scripts to eliminate duplicates.
+
+When frequently sampling data, we see that records occasionally will contain
+the same timestamp (due to perf recording twice in the same second).
+
+This removes all of the duplicate timestamps for every record. Order with
+respect to timestamps is not preserved. Also, the assumption is that the log
+file is a csv with the first value in each row being the time in seconds from a
+standard time.
+
+"""
+
+import argparse
+
+parser = argparse.ArgumentParser()
+parser.add_argument('filename')
+args = parser.parse_args()
+
+my_file = open(args.filename)
+output_file = open('clean2.csv', 'a')
+dictionary = dict()
+
+for line in my_file:
+  new_time = int(line.split(',')[0])
+  dictionary[new_time] = line
+
+for key in dictionary.keys():
+  output_file.write(dictionary[key])
diff --git a/mem_tests/mem_groups.py b/mem_tests/mem_groups.py
new file mode 100755
index 0000000..e2fbf27
--- /dev/null
+++ b/mem_tests/mem_groups.py
@@ -0,0 +1,55 @@
+#! /usr/bin/python
+"""Groups memory by allocation sizes.
+
+Takes a log entry and sorts sorts everything into groups based on what size
+chunks the memory has been allocated in. groups is an array that contains the
+divisions (in bytes).
+
+The output format is:
+
+timestamp, percent of memory in chunks < groups[0], percent between groups[0]
+and groups[1], etc.
+
+"""
+
+import argparse
+from cros_utils import compute_total_diff
+from datetime import datetime
+
+pretty_print = True
+
+parser = argparse.ArgumentParser()
+parser.add_argument('filename')
+args = parser.parse_args()
+
+my_file = open(args.filename)
+output_file = open('groups.csv', 'a')
+
+# The cutoffs for each group in the output (in bytes)
+groups = [1024, 8192, 65536, 524288, 4194304]
+
+base_time = datetime(2014, 6, 11, 0, 0)
+prev_line = ''
+half_entry = (None, None)
+
+for line in my_file:
+  if 'heap profile:' in line:
+    if half_entry[0] is not None:
+      group_totals = half_entry[1]
+      total = sum(group_totals) * 1.0
+      to_join = [half_entry[0]] + [value / total for value in group_totals]
+      to_output = ','.join([str(elem) for elem in to_join])
+      output_file.write(to_output)
+    total_diff = compute_total_diff(line, base_time)
+    half_entry = (total_diff, [0] * (len(groups) + 1))
+  if '] @ ' in line and 'heap profile:' not in line:
+    mem_samples = line.strip().split('[')[0]
+    num_samples, total_mem = map(int, mem_samples.strip().split(':'))
+    mem_per_sample = total_mem // num_samples
+    group_totals = half_entry[1]
+    for cutoff_index in range(len(groups)):
+      if mem_per_sample <= groups[cutoff_index]:
+        group_totals[cutoff_index] += total_mem
+        break
+    if mem_per_sample > groups[-1]:
+      group_totals[-1] += total_mem
diff --git a/mem_tests/total_mem_actual.py b/mem_tests/total_mem_actual.py
new file mode 100755
index 0000000..2d53beb
--- /dev/null
+++ b/mem_tests/total_mem_actual.py
@@ -0,0 +1,37 @@
+#! /usr/bin/python
+"""Parses the actual memory usage from TCMalloc.
+
+This goes through logs that have the actual allocated memory (not sampled) in
+the logs. The output is of the form of:
+
+time (in seconds from some base time), amount of memory allocated by the
+application
+
+"""
+
+import argparse
+from cros_utils import compute_total_diff
+from datetime import datetime
+
+pretty_print = True
+
+parser = argparse.ArgumentParser()
+parser.add_argument('filename')
+args = parser.parse_args()
+
+my_file = open(args.filename)
+output_file = open('raw_memory_data.csv', 'a')
+
+base_time = datetime(2014, 6, 11, 0, 0)
+prev_line = ''
+half_entry = (None, None)
+
+for line in my_file:
+  if 'Output Heap Stats:' in line:
+    total_diff = compute_total_diff(line, base_time)
+    half_entry = (total_diff, None)
+  if 'Bytes in use by application' in line:
+    total_diff = half_entry[0]
+    memory_used = int(line.strip().split()[1])
+    half_entry = (None, None)
+    output_file.write('{0},{1}\n'.format(total_diff, memory_used))
diff --git a/mem_tests/total_mem_sampled.py b/mem_tests/total_mem_sampled.py
new file mode 100755
index 0000000..77dd681
--- /dev/null
+++ b/mem_tests/total_mem_sampled.py
@@ -0,0 +1,31 @@
+#! /usr/bin/python
+"""Parses the total amount of sampled memory from log files.
+
+This file outputs the total amount of memory that has been sampled by tcmalloc.
+The output is of the format:
+
+time in seconds from a base time, amount of memory that has been sampled
+
+"""
+
+import argparse
+from cros_utils import compute_total_diff
+from datetime import datetime
+
+parser = argparse.ArgumentParser()
+parser.add_argument('filename')
+args = parser.parse_args()
+
+my_file = open(args.filename)
+output_file = open('memory_data.csv', 'a')
+
+base_time = datetime(2014, 6, 11, 0, 0)
+prev_line = ''
+half_entry = (None, None)
+
+for line in my_file:
+  if 'heap profile: ' not in line:
+    continue
+  memory_used = line.strip().split(':')[-1].strip().split(']')[0].strip()
+  total_diff = compute_total_diff(line, base_time)
+  output_file.write('{0},{1}\n'.format(int(total_diff), memory_used))
diff --git a/mem_tests/utils.py b/mem_tests/utils.py
new file mode 100644
index 0000000..38bd89c
--- /dev/null
+++ b/mem_tests/utils.py
@@ -0,0 +1,22 @@
+"""Utility functions for the memory tests.
+"""
+
+from datetime import datetime
+
+
+def compute_total_diff(line, base_time):
+  """
+    Computes the difference in time the line was recorded from the base time.
+
+    An example of a line is:
+    [4688:4688:0701/010151:ERROR:perf_provider_chromeos.cc(228)]...
+
+    Here, the month is 07, the day is 01 and the time is 01:01:51.
+
+    line- the line that contains the time the record was taken
+    base_time- the base time to measure our timestamp from
+    """
+  date = line.strip().split(':')[2].split('/')
+  timestamp = datetime(2014, int(date[0][0:2]), int(date[0][2:4]),
+                       int(date[1][0:2]), int(date[1][2:4]), int(date[1][4:6]))
+  return (timestamp - base_time).total_seconds()
diff --git a/perf-to-inst-page.sh b/perf-to-inst-page.sh
new file mode 100755
index 0000000..ba1d258
--- /dev/null
+++ b/perf-to-inst-page.sh
@@ -0,0 +1,85 @@
+#! /bin/bash -u
+# Copyright 2015 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This script first collects the addresses of the instructions being tracked by
+# the profile. After that, it calculates the offset of the addresses compared
+# to the base address and then gets the number of execution times for each
+# address. After that, it draws the heat map and the time map. A heap map shows
+# the overall hotness of instructions being executed while the time map shows the
+# hotness of instruction at different time.
+
+# binary : the name of the binary
+# profile : output of 'perf report -D'
+# loading_address  : the loading address of the binary
+# page_size : the size to be displayed, usually 4096(byte).
+
+if [[ $# -ne 4 ]]; then
+     echo 'Illegal number of parameters' exit 1
+fi
+
+binary=$1
+profile=$2
+loading_address=$3
+page_size=$4
+
+# size of binary supported.
+binary_maximum=1000000000
+
+if ! [[ -e $profile ]] ; then
+     echo "error: profile does not exist" >&2; exit 1
+fi
+
+re='^[0-9]+$'
+if ! [[ $page_size =~ $re ]] ; then
+     echo "error: page_size is not a number" >&2; exit 1
+fi
+
+function test {
+    "$@"
+    local status=$?
+    if [ $status -ne 0 ]; then
+        echo "error with $1" >&2
+    fi
+    return $status
+}
+
+HEAT_PNG="heat_map.png"
+TIMELINE_PNG="timeline.png"
+
+test  grep -A 2 PERF_RECORD_SAMPLE $profile | grep -A 1 -B 1 "thread: $binary" | \
+grep -B 2 "dso.*$binary$" | awk -v base=$loading_address \
+     "BEGIN { count=0; } /PERF_RECORD_SAMPLE/ {addr = strtonum(\$8) - strtonum(base); \
+     if (addr < $binary_maximum) count++; \
+     if (addr < $binary_maximum) print \$7,count,int(addr/$page_size)*$page_size}" >  out.txt
+
+
+test  awk '{print $3}' out.txt | sort -n | uniq -c > inst-histo.txt
+
+# generate inst heat map
+echo "
+set terminal png size 600,450
+set xlabel \"Instruction Virtual Address (MB)\"
+set ylabel \"Sample Occurance\"
+set grid
+
+set output \"${HEAT_PNG}\"
+set title \"Instruction Heat Map\"
+
+plot 'inst-histo.txt' using (\$2/1024/1024):1 with impulses notitle
+" | test gnuplot
+
+# generate instruction page access timeline
+num=$(awk 'END {print NR+1}' out.txt)
+
+echo "
+set terminal png size 600,450
+set xlabel \"time (sec)\"
+set ylabel \"Instruction Virtual Address (MB)\"
+
+set output \"${TIMELINE_PNG}\"
+set title \"instruction page accessd timeline\"
+
+plot 'out.txt' using (\$0/$num*10):(\$3/1024/1024) with dots notitle
+" | test gnuplot
diff --git a/produce_output.py b/produce_output.py
new file mode 100755
index 0000000..30deea8
--- /dev/null
+++ b/produce_output.py
@@ -0,0 +1,27 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""This simulates a real job by producing a lot of output.
+
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import time
+
+
+def Main():
+  """The main function."""
+
+  for j in range(10):
+    for i in range(10000):
+      print(str(j) + 'The quick brown fox jumped over the lazy dog.' + str(i))
+    time.sleep(60)
+
+  return 0
+
+
+if __name__ == '__main__':
+  Main()
diff --git a/pyrun b/pyrun
new file mode 100755
index 0000000..d9f5d75
--- /dev/null
+++ b/pyrun
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+DIRECTORY=$(cd `dirname $0` && pwd)
+PYTHONPATH=$DIRECTORY:$PYTHONPATH
+
+$*
diff --git a/remote_gcc_build.py b/remote_gcc_build.py
new file mode 100755
index 0000000..52cedfb
--- /dev/null
+++ b/remote_gcc_build.py
@@ -0,0 +1,471 @@
+#!/usr/bin/python2
+
+# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Script to use remote try-bot build image with local gcc."""
+
+from __future__ import print_function
+
+import argparse
+import glob
+import os
+import re
+import shutil
+import socket
+import sys
+import tempfile
+import time
+
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import manifest_versions
+from cros_utils import misc
+
+BRANCH = 'the_actual_branch_used_in_this_script'
+TMP_BRANCH = 'tmp_branch'
+SLEEP_TIME = 600
+
+# pylint: disable=anomalous-backslash-in-string
+
+def GetPatchNum(output):
+  lines = output.splitlines()
+  line = [l for l in lines if 'googlesource' in l][0]
+  patch_num = re.findall(r'\d+', line)[0]
+  if 'chrome-internal' in line:
+    patch_num = '*' + patch_num
+  return str(patch_num)
+
+
+def GetPatchString(patch):
+  if patch:
+    return '+'.join(patch)
+  return 'NO_PATCH'
+
+
+def FindVersionForToolchain(branch, chromeos_root):
+  """Find the version number in artifacts link in the tryserver email."""
+  # For example: input:  toolchain-3701.42.B
+  #              output: R26-3701.42.1
+  digits = branch.split('-')[1].split('B')[0]
+  manifest_dir = os.path.join(chromeos_root, 'manifest-internal')
+  os.chdir(manifest_dir)
+  major_version = digits.split('.')[0]
+  ce = command_executer.GetCommandExecuter()
+  command = 'repo sync . && git branch -a | grep {0}'.format(major_version)
+  _, branches, _ = ce.RunCommandWOutput(command, print_to_console=False)
+  m = re.search(r'(R\d+)', branches)
+  if not m:
+    logger.GetLogger().LogFatal('Cannot find version for branch {0}'
+                                .format(branch))
+  version = m.group(0) + '-' + digits + '1'
+  return version
+
+
+def FindBuildId(description):
+  """Find the build id of the build at trybot server."""
+  running_time = 0
+  while True:
+    (result, number) = FindBuildIdFromLog(description)
+    if result >= 0:
+      return (result, number)
+    logger.GetLogger().LogOutput('{0} minutes passed.'
+                                 .format(running_time / 60))
+    logger.GetLogger().LogOutput('Sleeping {0} seconds.'.format(SLEEP_TIME))
+    time.sleep(SLEEP_TIME)
+    running_time += SLEEP_TIME
+
+
+def FindBuildIdFromLog(description):
+  """Get the build id from build log."""
+  # returns tuple (result, buildid)
+  # result == 0, buildid > 0, the build was successful and we have a build id
+  # result > 0, buildid > 0,  the whole build failed for some reason but we
+  #                           do have a build id.
+  # result == -1, buildid == -1, we have not found a finished build for this
+  #                              description yet
+
+  file_dir = os.path.dirname(os.path.realpath(__file__))
+  commands = ('{0}/cros_utils/buildbot_json.py builds '
+              'http://chromegw/p/tryserver.chromiumos/'.format(file_dir))
+  ce = command_executer.GetCommandExecuter()
+  _, buildinfo, _ = ce.RunCommandWOutput(commands, print_to_console=False)
+
+  my_info = buildinfo.splitlines()
+  current_line = 1
+  running_job = False
+  result = -1
+
+  # result == 0, we have a successful build
+  # result > 0, we have a failed build but build id may be valid
+  # result == -1, we have not found a finished build for this description
+  while current_line < len(my_info):
+    my_dict = {}
+    while True:
+      key = my_info[current_line].split(':')[0].strip()
+      value = my_info[current_line].split(':', 1)[1].strip()
+      my_dict[key] = value
+      current_line += 1
+      if 'Build' in key or current_line == len(my_info):
+        break
+    if ('True' not in my_dict['completed'] and
+        str(description) in my_dict['reason']):
+      running_job = True
+    if ('True' not in my_dict['completed'] or
+        str(description) not in my_dict['reason']):
+      continue
+    result = int(my_dict['result'])
+    build_id = int(my_dict['number'])
+    if result == 0:
+      return (result, build_id)
+    else:
+      # Found a finished failed build.
+      # Keep searching to find a successful one
+      pass
+
+  if result > 0 and not running_job:
+    return (result, build_id)
+  return (-1, -1)
+
+
+def DownloadImage(target, index, dest, version):
+  """Download artifacts from cloud."""
+  if not os.path.exists(dest):
+    os.makedirs(dest)
+
+  rversion = manifest_versions.RFormatCrosVersion(version)
+  print(str(rversion))
+  #  ls_cmd = ("gsutil ls gs://chromeos-image-archive/trybot-{0}/{1}-b{2}"
+  #            .format(target, rversion, index))
+  ls_cmd = ('gsutil ls gs://chromeos-image-archive/trybot-{0}/*-b{2}'
+            .format(target, index))
+
+  download_cmd = ('$(which gsutil) cp {0} {1}'.format('{0}', dest))
+  ce = command_executer.GetCommandExecuter()
+
+  _, out, _ = ce.RunCommandWOutput(ls_cmd, print_to_console=True)
+  lines = out.splitlines()
+  download_files = ['autotest.tar', 'chromeos-chrome', 'chromiumos_test_image',
+                    'debug.tgz', 'sysroot_chromeos-base_chromeos-chrome.tar.xz']
+  for line in lines:
+    if any([e in line for e in download_files]):
+      cmd = download_cmd.format(line)
+      if ce.RunCommand(cmd):
+        logger.GetLogger().LogFatal('Command {0} failed, existing...'
+                                    .format(cmd))
+
+
+def UnpackImage(dest):
+  """Unpack the image, the chroot build dir."""
+  chrome_tbz2 = glob.glob(dest + '/*.tbz2')[0]
+  commands = ('tar xJf {0}/sysroot_chromeos-base_chromeos-chrome.tar.xz '
+              '-C {0} &&'
+              'tar xjf {1} -C {0} &&'
+              'tar xzf {0}/debug.tgz  -C {0}/usr/lib/ &&'
+              'tar xf {0}/autotest.tar -C {0}/usr/local/ &&'
+              'tar xJf {0}/chromiumos_test_image.tar.xz -C {0}'
+              .format(dest, chrome_tbz2))
+  ce = command_executer.GetCommandExecuter()
+  return ce.RunCommand(commands)
+
+
+def RemoveOldBranch():
+  """Remove the branch with name BRANCH."""
+  ce = command_executer.GetCommandExecuter()
+  command = 'git rev-parse --abbrev-ref HEAD'
+  _, out, _ = ce.RunCommandWOutput(command)
+  if BRANCH in out:
+    command = 'git checkout -B {0}'.format(TMP_BRANCH)
+    ce.RunCommand(command)
+  command = "git commit -m 'nouse'"
+  ce.RunCommand(command)
+  command = 'git branch -D {0}'.format(BRANCH)
+  ce.RunCommand(command)
+
+
+def UploadManifest(manifest, chromeos_root, branch='master'):
+  """Copy the manifest to $chromeos_root/manifest-internal and upload."""
+  chromeos_root = misc.CanonicalizePath(chromeos_root)
+  manifest_dir = os.path.join(chromeos_root, 'manifest-internal')
+  os.chdir(manifest_dir)
+  ce = command_executer.GetCommandExecuter()
+
+  RemoveOldBranch()
+
+  if branch != 'master':
+    branch = '{0}'.format(branch)
+  command = 'git checkout -b {0} -t cros-internal/{1}'.format(BRANCH, branch)
+  ret = ce.RunCommand(command)
+  if ret:
+    raise RuntimeError('Command {0} failed'.format(command))
+
+  # We remove the default.xml, which is the symbolic link of full.xml.
+  # After that, we copy our xml file to default.xml.
+  # We did this because the full.xml might be updated during the
+  # run of the script.
+  os.remove(os.path.join(manifest_dir, 'default.xml'))
+  shutil.copyfile(manifest, os.path.join(manifest_dir, 'default.xml'))
+  return UploadPatch(manifest)
+
+
+def GetManifestPatch(manifests, version, chromeos_root, branch='master'):
+  """Return a gerrit patch number given a version of manifest file."""
+  temp_dir = tempfile.mkdtemp()
+  to_file = os.path.join(temp_dir, 'default.xml')
+  manifests.GetManifest(version, to_file)
+  return UploadManifest(to_file, chromeos_root, branch)
+
+
+def UploadPatch(source):
+  """Up load patch to gerrit, return patch number."""
+  commands = ('git add -A . &&'
+              "git commit -m 'test' -m 'BUG=None' -m 'TEST=None' "
+              "-m 'hostname={0}' -m 'source={1}'"
+              .format(socket.gethostname(), source))
+  ce = command_executer.GetCommandExecuter()
+  ce.RunCommand(commands)
+
+  commands = ('yes | repo upload .   --cbr --no-verify')
+  _, _, err = ce.RunCommandWOutput(commands)
+  return GetPatchNum(err)
+
+
+def ReplaceSysroot(chromeos_root, dest_dir, target):
+  """Copy unpacked sysroot and image to chromeos_root."""
+  ce = command_executer.GetCommandExecuter()
+  # get the board name from "board-release". board may contain "-"
+  board = target.rsplit('-', 1)[0]
+  board_dir = os.path.join(chromeos_root, 'chroot', 'build', board)
+  command = 'sudo rm -rf {0}'.format(board_dir)
+  ce.RunCommand(command)
+
+  command = 'sudo mv {0} {1}'.format(dest_dir, board_dir)
+  ce.RunCommand(command)
+
+  image_dir = os.path.join(chromeos_root, 'src', 'build', 'images', board,
+                           'latest')
+  command = 'rm -rf {0} && mkdir -p {0}'.format(image_dir)
+  ce.RunCommand(command)
+
+  command = 'mv {0}/chromiumos_test_image.bin {1}'.format(board_dir, image_dir)
+  return ce.RunCommand(command)
+
+
+def GccBranchForToolchain(branch):
+  if branch == 'toolchain-3428.65.B':
+    return 'release-R25-3428.B'
+  else:
+    return None
+
+
+def GetGccBranch(branch):
+  """Get the remote branch name from branch or version."""
+  ce = command_executer.GetCommandExecuter()
+  command = 'git branch -a | grep {0}'.format(branch)
+  _, out, _ = ce.RunCommandWOutput(command)
+  if not out:
+    release_num = re.match(r'.*(R\d+)-*', branch)
+    if release_num:
+      release_num = release_num.group(0)
+      command = 'git branch -a | grep {0}'.format(release_num)
+      _, out, _ = ce.RunCommandWOutput(command)
+      if not out:
+        GccBranchForToolchain(branch)
+  if not out:
+    out = 'remotes/cros/master'
+  new_branch = out.splitlines()[0]
+  return new_branch
+
+
+def UploadGccPatch(chromeos_root, gcc_dir, branch):
+  """Upload local gcc to gerrit and get the CL number."""
+  ce = command_executer.GetCommandExecuter()
+  gcc_dir = misc.CanonicalizePath(gcc_dir)
+  gcc_path = os.path.join(chromeos_root, 'src/third_party/gcc')
+  assert os.path.isdir(gcc_path), ('{0} is not a valid chromeos root'
+                                   .format(chromeos_root))
+  assert os.path.isdir(gcc_dir), ('{0} is not a valid dir for gcc'
+                                  'source'.format(gcc_dir))
+  os.chdir(gcc_path)
+  RemoveOldBranch()
+  if not branch:
+    branch = 'master'
+  branch = GetGccBranch(branch)
+  command = ('git checkout -b {0} -t {1} && ' 'rm -rf *'.format(BRANCH, branch))
+  ce.RunCommand(command, print_to_console=False)
+
+  command = ("rsync -az --exclude='*.svn' --exclude='*.git'"
+             ' {0}/ .'.format(gcc_dir))
+  ce.RunCommand(command)
+  return UploadPatch(gcc_dir)
+
+
+def RunRemote(chromeos_root, branch, patches, is_local, target, chrome_version,
+              dest_dir):
+  """The actual running commands."""
+  ce = command_executer.GetCommandExecuter()
+
+  if is_local:
+    local_flag = '--local -r {0}'.format(dest_dir)
+  else:
+    local_flag = '--remote'
+  patch = ''
+  for p in patches:
+    patch += ' -g {0}'.format(p)
+  cbuildbot_path = os.path.join(chromeos_root, 'chromite/cbuildbot')
+  os.chdir(cbuildbot_path)
+  branch_flag = ''
+  if branch != 'master':
+    branch_flag = ' -b {0}'.format(branch)
+  chrome_version_flag = ''
+  if chrome_version:
+    chrome_version_flag = ' --chrome_version={0}'.format(chrome_version)
+  description = '{0}_{1}_{2}'.format(branch, GetPatchString(patches), target)
+  command = ('yes | ./cbuildbot {0} {1} {2} {3} {4} {5}'
+             ' --remote-description={6}'
+             ' --chrome_rev=tot'.format(patch, branch_flag, chrome_version,
+                                        local_flag, chrome_version_flag, target,
+                                        description))
+  ce.RunCommand(command)
+
+  return description
+
+
+def Main(argv):
+  """The main function."""
+  # Common initializations
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      required=True,
+                      dest='chromeos_root',
+                      help='The chromeos_root')
+  parser.add_argument('-g',
+                      '--gcc_dir',
+                      default='',
+                      dest='gcc_dir',
+                      help='The gcc dir')
+  parser.add_argument('-t',
+                      '--target',
+                      required=True,
+                      dest='target',
+                      help=('The target to be build, the list is at'
+                            ' $(chromeos_root)/chromite/buildbot/cbuildbot'
+                            ' --list -all'))
+  parser.add_argument('-l', '--local', action='store_true')
+  parser.add_argument('-d',
+                      '--dest_dir',
+                      dest='dest_dir',
+                      help=('The dir to build the whole chromeos if'
+                            ' --local is set'))
+  parser.add_argument('--chrome_version',
+                      dest='chrome_version',
+                      default='',
+                      help='The chrome version to use. '
+                      'Default it will use the latest one.')
+  parser.add_argument('--chromeos_version',
+                      dest='chromeos_version',
+                      default='',
+                      help=('The chromeos version to use.'
+                            '(1) A release version in the format: '
+                            "'\d+\.\d+\.\d+\.\d+.*'"
+                            "(2) 'latest_lkgm' for the latest lkgm version"))
+  parser.add_argument('-r',
+                      '--replace_sysroot',
+                      action='store_true',
+                      help=('Whether or not to replace the build/$board dir'
+                            'under the chroot of chromeos_root and copy '
+                            'the image to src/build/image/$board/latest.'
+                            ' Default is False'))
+  parser.add_argument('-b',
+                      '--branch',
+                      dest='branch',
+                      default='',
+                      help=('The branch to run trybot, default is None'))
+  parser.add_argument('-p',
+                      '--patch',
+                      dest='patch',
+                      default='',
+                      help=('The patches to be applied, the patches numbers '
+                            "be seperated by ','"))
+
+  script_dir = os.path.dirname(os.path.realpath(__file__))
+
+  args = parser.parse_args(argv[1:])
+  target = args.target
+  if args.patch:
+    patch = args.patch.split(',')
+  else:
+    patch = []
+  chromeos_root = misc.CanonicalizePath(args.chromeos_root)
+  if args.chromeos_version and args.branch:
+    raise RuntimeError('You can not set chromeos_version and branch at the '
+                      'same time.')
+
+  manifests = None
+  if args.branch:
+    chromeos_version = ''
+    branch = args.branch
+  else:
+    chromeos_version = args.chromeos_version
+    manifests = manifest_versions.ManifestVersions()
+    if chromeos_version == 'latest_lkgm':
+      chromeos_version = manifests.TimeToVersion(time.mktime(time.gmtime()))
+      logger.GetLogger().LogOutput('found version %s for latest LKGM' %
+                                   (chromeos_version))
+    # TODO: this script currently does not handle the case where the version
+    # is not in the "master" branch
+    branch = 'master'
+
+  if chromeos_version:
+    manifest_patch = GetManifestPatch(manifests, chromeos_version,
+                                      chromeos_root)
+    patch.append(manifest_patch)
+  if args.gcc_dir:
+    # TODO: everytime we invoke this script we are getting a different
+    # patch for GCC even if GCC has not changed. The description should
+    # be based on the MD5 of the GCC patch contents.
+    patch.append(UploadGccPatch(chromeos_root, args.gcc_dir, branch))
+  description = RunRemote(chromeos_root, branch, patch, args.local, target,
+                          args.chrome_version, args.dest_dir)
+  if args.local or not args.dest_dir:
+    # TODO: We are not checktng the result of cbuild_bot in here!
+    return 0
+
+  # return value:
+  # 0 => build bot was successful and image was put where requested
+  # 1 => Build bot FAILED but image was put where requested
+  # 2 => Build bot failed or BUild bot was successful but and image was
+  #      not generated or could not be put where expected
+
+  os.chdir(script_dir)
+  dest_dir = misc.CanonicalizePath(args.dest_dir)
+  (bot_result, build_id) = FindBuildId(description)
+  if bot_result > 0 and build_id > 0:
+    logger.GetLogger().LogError('Remote trybot failed but image was generated')
+    bot_result = 1
+  elif bot_result > 0:
+    logger.GetLogger().LogError('Remote trybot failed. No image was generated')
+    return 2
+  if 'toolchain' in branch:
+    chromeos_version = FindVersionForToolchain(branch, chromeos_root)
+    assert not manifest_versions.IsRFormatCrosVersion(chromeos_version)
+  DownloadImage(target, build_id, dest_dir, chromeos_version)
+  ret = UnpackImage(dest_dir)
+  if ret != 0:
+    return 2
+  # todo: return a more inteligent return value
+  if not args.replace_sysroot:
+    return bot_result
+
+  ret = ReplaceSysroot(chromeos_root, args.dest_dir, target)
+  if ret != 0:
+    return 2
+
+  # got an image and we were successful in placing it where requested
+  return bot_result
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/remote_kill_test.py b/remote_kill_test.py
new file mode 100755
index 0000000..71a6690
--- /dev/null
+++ b/remote_kill_test.py
@@ -0,0 +1,45 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to wrap test_that script.
+
+Run this script and kill it. Then run ps -ef to see if sleep
+is still running,.
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import os
+import sys
+
+from cros_utils import command_executer
+
+
+def Usage(parser, message):
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def Main(argv):
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      help='ChromeOS root checkout directory')
+  parser.add_argument('-r',
+                      '--remote',
+                      dest='remote',
+                      help='Remote chromeos device.')
+
+  _ = parser.parse_args(argv)
+  ce = command_executer.GetCommandExecuter()
+  ce.RunCommand('ls; sleep 10000', machine=os.uname()[1])
+  return 0
+
+
+if __name__ == '__main__':
+  Main(sys.argv[1:])
diff --git a/remote_test.py b/remote_test.py
new file mode 100755
index 0000000..82f54ed
--- /dev/null
+++ b/remote_test.py
@@ -0,0 +1,98 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to wrap test_that script.
+
+This script can login to the chromeos machine using the test private key.
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import os
+import sys
+
+from cros_utils import command_executer
+from cros_utils import misc
+
+
+def Usage(parser, message):
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def Main(argv):
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      help='ChromeOS root checkout directory')
+  parser.add_argument('-r',
+                      '--remote',
+                      dest='remote',
+                      help='Remote chromeos device.')
+  options = parser.parse_args(argv)
+  if options.chromeos_root is None:
+    Usage(parser, 'chromeos_root must be given')
+
+  if options.remote is None:
+    Usage(parser, 'remote must be given')
+
+  options.chromeos_root = os.path.expanduser(options.chromeos_root)
+
+  command = 'ls -lt /'
+  ce = command_executer.GetCommandExecuter()
+  ce.CrosRunCommand(command,
+                    chromeos_root=options.chromeos_root,
+                    machine=options.remote)
+
+  version_dir_path, script_name = misc.GetRoot(sys.argv[0])
+  version_dir = misc.GetRoot(version_dir_path)[1]
+
+  # Tests to copy directories and files to the chromeos box.
+  ce.CopyFiles(version_dir_path,
+               '/tmp/' + version_dir,
+               dest_machine=options.remote,
+               dest_cros=True,
+               chromeos_root=options.chromeos_root)
+  ce.CopyFiles(version_dir_path,
+               '/tmp/' + version_dir + '1',
+               dest_machine=options.remote,
+               dest_cros=True,
+               chromeos_root=options.chromeos_root)
+  ce.CopyFiles(sys.argv[0],
+               '/tmp/' + script_name,
+               recursive=False,
+               dest_machine=options.remote,
+               dest_cros=True,
+               chromeos_root=options.chromeos_root)
+  ce.CopyFiles(sys.argv[0],
+               '/tmp/' + script_name + '1',
+               recursive=False,
+               dest_machine=options.remote,
+               dest_cros=True,
+               chromeos_root=options.chromeos_root)
+
+  # Test to copy directories and files from the chromeos box.
+  ce.CopyFiles('/tmp/' + script_name,
+               '/tmp/hello',
+               recursive=False,
+               src_machine=options.remote,
+               src_cros=True,
+               chromeos_root=options.chromeos_root)
+  ce.CopyFiles('/tmp/' + script_name,
+               '/tmp/' + script_name,
+               recursive=False,
+               src_machine=options.remote,
+               src_cros=True,
+               chromeos_root=options.chromeos_root)
+  board = ce.CrosLearnBoard(options.chromeos_root, options.remote)
+  print(board)
+  return 0
+
+
+if __name__ == '__main__':
+  Main(sys.argv[1:])
diff --git a/repo_to_repo.py b/repo_to_repo.py
new file mode 100755
index 0000000..3b3b9bc
--- /dev/null
+++ b/repo_to_repo.py
@@ -0,0 +1,421 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Module for transferring files between various types of repositories."""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import datetime
+import json
+import os
+import re
+import socket
+import sys
+import tempfile
+
+from automation.clients.helper import perforce
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import misc
+
+# pylint: disable=anomalous-backslash-in-string
+
+def GetCanonicalMappings(mappings):
+  canonical_mappings = []
+  for mapping in mappings:
+    remote_path, local_path = mapping.split()
+    if local_path.endswith('/') and not remote_path.endswith('/'):
+      local_path = os.path.join(local_path, os.path.basename(remote_path))
+    remote_path = remote_path.lstrip('/').split('/', 1)[1]
+    canonical_mappings.append(perforce.PathMapping(remote_path, local_path))
+  return canonical_mappings
+
+
+def SplitMapping(mapping):
+  parts = mapping.split()
+  assert len(parts) <= 2, 'Mapping %s invalid' % mapping
+  remote_path = parts[0]
+  if len(parts) == 2:
+    local_path = parts[1]
+  else:
+    local_path = '.'
+  return remote_path, local_path
+
+
+class Repo(object):
+  """Basic repository base class."""
+
+  def __init__(self, no_create_tmp_dir=False):
+    self.repo_type = None
+    self.address = None
+    self.mappings = None
+    self.revision = None
+    self.ignores = ['.gitignore', '.p4config', 'README.google']
+    if no_create_tmp_dir:
+      self._root_dir = None
+    else:
+      self._root_dir = tempfile.mkdtemp()
+    self._ce = command_executer.GetCommandExecuter()
+    self._logger = logger.GetLogger()
+
+  def PullSources(self):
+    """Pull all sources into an internal dir."""
+    pass
+
+  def SetupForPush(self):
+    """Setup a repository for pushing later."""
+    pass
+
+  def PushSources(self, commit_message=None, dry_run=False, message_file=None):
+    """Push to the external repo with the commit message."""
+    pass
+
+  def _RsyncExcludingRepoDirs(self, source_dir, dest_dir):
+    for f in os.listdir(source_dir):
+      if f in ['.git', '.svn', '.p4config']:
+        continue
+      dest_file = os.path.join(dest_dir, f)
+      source_file = os.path.join(source_dir, f)
+      if os.path.exists(dest_file):
+        command = 'rm -rf %s' % dest_file
+        self._ce.RunCommand(command)
+      command = 'rsync -a %s %s' % (source_file, dest_dir)
+      self._ce.RunCommand(command)
+    return 0
+
+  def MapSources(self, dest_dir):
+    """Copy sources from the internal dir to root_dir."""
+    return self._RsyncExcludingRepoDirs(self._root_dir, dest_dir)
+
+  def GetRoot(self):
+    return self._root_dir
+
+  def SetRoot(self, directory):
+    self._root_dir = directory
+
+  def CleanupRoot(self):
+    command = 'rm -rf %s' % self._root_dir
+    return self._ce.RunCommand(command)
+
+  def __str__(self):
+    return '\n'.join(str(s)
+                     for s in [self.repo_type, self.address, self.mappings])
+
+
+# Note - this type of repo is used only for "readonly", in other words, this
+# only serves as a incoming repo.
+class FileRepo(Repo):
+  """Class for file repositories."""
+
+  def __init__(self, address, ignores=None):
+    Repo.__init__(self, no_create_tmp_dir=True)
+    self.repo_type = 'file'
+    self.address = address
+    self.mappings = None
+    self.branch = None
+    self.revision = '{0} (as of "{1}")'.format(address, datetime.datetime.now())
+    self.gerrit = None
+    self._root_dir = self.address
+    if ignores:
+      self.ignores += ignores
+
+  def CleanupRoot(self):
+    """Override to prevent deletion."""
+    pass
+
+
+class P4Repo(Repo):
+  """Class for P4 repositories."""
+
+
+  def __init__(self, address, mappings, revision=None):
+    Repo.__init__(self)
+    self.repo_type = 'p4'
+    self.address = address
+    self.mappings = mappings
+    self.revision = revision
+
+  def PullSources(self):
+    client_name = socket.gethostname()
+    client_name += tempfile.mkstemp()[1].replace('/', '-')
+    mappings = self.mappings
+    p4view = perforce.View('depot2', GetCanonicalMappings(mappings))
+    p4client = perforce.CommandsFactory(self._root_dir,
+                                        p4view,
+                                        name=client_name)
+    command = p4client.SetupAndDo(p4client.Sync(self.revision))
+    ret = self._ce.RunCommand(command)
+    assert ret == 0, 'Could not setup client.'
+    command = p4client.InCheckoutDir(p4client.SaveCurrentCLNumber())
+    ret, o, _ = self._ce.RunCommandWOutput(command)
+    assert ret == 0, 'Could not get version from client.'
+    self.revision = re.search('^\d+$', o.strip(), re.MULTILINE).group(0)
+    command = p4client.InCheckoutDir(p4client.Remove())
+    ret = self._ce.RunCommand(command)
+    assert ret == 0, 'Could not delete client.'
+    return 0
+
+
+class SvnRepo(Repo):
+  """Class for svn repositories."""
+
+  def __init__(self, address, mappings):
+    Repo.__init__(self)
+    self.repo_type = 'svn'
+    self.address = address
+    self.mappings = mappings
+
+  def PullSources(self):
+    with misc.WorkingDirectory(self._root_dir):
+      for mapping in self.mappings:
+        remote_path, local_path = SplitMapping(mapping)
+        command = 'svn co %s/%s %s' % (self.address, remote_path, local_path)
+      ret = self._ce.RunCommand(command)
+      if ret:
+        return ret
+
+      self.revision = ''
+      for mapping in self.mappings:
+        remote_path, local_path = SplitMapping(mapping)
+        command = 'cd %s && svnversion -c .' % (local_path)
+        ret, o, _ = self._ce.RunCommandWOutput(command)
+        self.revision += o.strip().split(':')[-1]
+        if ret:
+          return ret
+    return 0
+
+
+class GitRepo(Repo):
+  """Class for git repositories."""
+
+  def __init__(self, address, branch, mappings=None, ignores=None, gerrit=None):
+    Repo.__init__(self)
+    self.repo_type = 'git'
+    self.address = address
+    self.branch = branch or 'master'
+    if ignores:
+      self.ignores += ignores
+    self.mappings = mappings
+    self.gerrit = gerrit
+
+  def _CloneSources(self):
+    with misc.WorkingDirectory(self._root_dir):
+      command = 'git clone %s .' % (self.address)
+      return self._ce.RunCommand(command)
+
+  def PullSources(self):
+    with misc.WorkingDirectory(self._root_dir):
+      ret = self._CloneSources()
+      if ret:
+        return ret
+
+      command = 'git checkout %s' % self.branch
+      ret = self._ce.RunCommand(command)
+      if ret:
+        return ret
+
+      command = 'git describe --always'
+      ret, o, _ = self._ce.RunCommandWOutput(command)
+      self.revision = o.strip()
+      return ret
+
+  def SetupForPush(self):
+    with misc.WorkingDirectory(self._root_dir):
+      ret = self._CloneSources()
+      logger.GetLogger().LogFatalIf(ret, 'Could not clone git repo %s.' %
+                                    self.address)
+
+      command = 'git branch -a | grep -wq %s' % self.branch
+      ret = self._ce.RunCommand(command)
+
+      if ret == 0:
+        if self.branch != 'master':
+          command = ('git branch --track %s remotes/origin/%s' %
+                     (self.branch, self.branch))
+        else:
+          command = 'pwd'
+        command += '&& git checkout %s' % self.branch
+      else:
+        command = 'git symbolic-ref HEAD refs/heads/%s' % self.branch
+      command += '&& rm -rf *'
+      ret = self._ce.RunCommand(command)
+      return ret
+
+  def CommitLocally(self, commit_message=None, message_file=None):
+    with misc.WorkingDirectory(self._root_dir):
+      command = 'pwd'
+      for ignore in self.ignores:
+        command += '&& echo \'%s\' >> .git/info/exclude' % ignore
+      command += '&& git add -Av .'
+      if message_file:
+        message_arg = '-F %s' % message_file
+      elif commit_message:
+        message_arg = '-m \'%s\'' % commit_message
+      else:
+        raise RuntimeError('No commit message given!')
+      command += '&& git commit -v %s' % message_arg
+      return self._ce.RunCommand(command)
+
+  def PushSources(self, commit_message=None, dry_run=False, message_file=None):
+    ret = self.CommitLocally(commit_message, message_file)
+    if ret:
+      return ret
+    push_args = ''
+    if dry_run:
+      push_args += ' -n '
+    with misc.WorkingDirectory(self._root_dir):
+      if self.gerrit:
+        label = 'somelabel'
+        command = 'git remote add %s %s' % (label, self.address)
+        command += ('&& git push %s %s HEAD:refs/for/master' %
+                    (push_args, label))
+      else:
+        command = 'git push -v %s origin %s:%s' % (push_args, self.branch,
+                                                   self.branch)
+      ret = self._ce.RunCommand(command)
+    return ret
+
+  def MapSources(self, root_dir):
+    if not self.mappings:
+      self._RsyncExcludingRepoDirs(self._root_dir, root_dir)
+      return
+    with misc.WorkingDirectory(self._root_dir):
+      for mapping in self.mappings:
+        remote_path, local_path = SplitMapping(mapping)
+        remote_path.rstrip('...')
+        local_path.rstrip('...')
+        full_local_path = os.path.join(root_dir, local_path)
+        ret = self._RsyncExcludingRepoDirs(remote_path, full_local_path)
+        if ret:
+          return ret
+    return 0
+
+
+class RepoReader(object):
+  """Class for reading repositories."""
+
+  def __init__(self, filename):
+    self.filename = filename
+    self.main_dict = {}
+    self.input_repos = []
+    self.output_repos = []
+
+  def ParseFile(self):
+    with open(self.filename) as f:
+      self.main_dict = json.load(f)
+      self.CreateReposFromDict(self.main_dict)
+    return [self.input_repos, self.output_repos]
+
+  def CreateReposFromDict(self, main_dict):
+    for key, repo_list in main_dict.items():
+      for repo_dict in repo_list:
+        repo = self.CreateRepoFromDict(repo_dict)
+        if key == 'input':
+          self.input_repos.append(repo)
+        elif key == 'output':
+          self.output_repos.append(repo)
+        else:
+          logger.GetLogger().LogFatal('Unknown key: %s found' % key)
+
+  def CreateRepoFromDict(self, repo_dict):
+    repo_type = repo_dict.get('type', None)
+    repo_address = repo_dict.get('address', None)
+    repo_mappings = repo_dict.get('mappings', None)
+    repo_ignores = repo_dict.get('ignores', None)
+    repo_branch = repo_dict.get('branch', None)
+    gerrit = repo_dict.get('gerrit', None)
+    revision = repo_dict.get('revision', None)
+
+    if repo_type == 'p4':
+      repo = P4Repo(repo_address, repo_mappings, revision=revision)
+    elif repo_type == 'svn':
+      repo = SvnRepo(repo_address, repo_mappings)
+    elif repo_type == 'git':
+      repo = GitRepo(repo_address,
+                     repo_branch,
+                     mappings=repo_mappings,
+                     ignores=repo_ignores,
+                     gerrit=gerrit)
+    elif repo_type == 'file':
+      repo = FileRepo(repo_address)
+    else:
+      logger.GetLogger().LogFatal('Unknown repo type: %s' % repo_type)
+    return repo
+
+
+@logger.HandleUncaughtExceptions
+def Main(argv):
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-i',
+                      '--input_file',
+                      dest='input_file',
+                      help='The input file that contains repo descriptions.')
+
+  parser.add_argument('-n',
+                      '--dry_run',
+                      dest='dry_run',
+                      action='store_true',
+                      default=False,
+                      help='Do a dry run of the push.')
+
+  parser.add_argument('-F',
+                      '--message_file',
+                      dest='message_file',
+                      default=None,
+                      help=('Use contents of the log file as the commit '
+                            'message.'))
+
+  options = parser.parse_args(argv)
+  if not options.input_file:
+    parser.print_help()
+    return 1
+  rr = RepoReader(options.input_file)
+  [input_repos, output_repos] = rr.ParseFile()
+
+  # Make sure FileRepo is not used as output destination.
+  for output_repo in output_repos:
+    if output_repo.repo_type == 'file':
+      logger.GetLogger().LogFatal(
+          'FileRepo is only supported as an input repo.')
+
+  for output_repo in output_repos:
+    ret = output_repo.SetupForPush()
+    if ret:
+      return ret
+
+  input_revisions = []
+  for input_repo in input_repos:
+    ret = input_repo.PullSources()
+    if ret:
+      return ret
+    input_revisions.append(input_repo.revision)
+
+  for input_repo in input_repos:
+    for output_repo in output_repos:
+      ret = input_repo.MapSources(output_repo.GetRoot())
+      if ret:
+        return ret
+
+  commit_message = 'Synced repos to: %s' % ','.join(input_revisions)
+  for output_repo in output_repos:
+    ret = output_repo.PushSources(commit_message=commit_message,
+                                  dry_run=options.dry_run,
+                                  message_file=options.message_file)
+    if ret:
+      return ret
+
+  if not options.dry_run:
+    for output_repo in output_repos:
+      output_repo.CleanupRoot()
+    for input_repo in input_repos:
+      input_repo.CleanupRoot()
+
+  return ret
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/run_tests.py b/run_tests.py
new file mode 100755
index 0000000..c755278
--- /dev/null
+++ b/run_tests.py
@@ -0,0 +1,23 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to wrap run_remote_tests.sh script.
+
+This script calls run_remote_tests.sh with standard tests.
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+
+import sys
+
+def Main():
+  """The main function."""
+  print('This script is deprecated.  Use crosperf for running tests.')
+  return 1
+
+
+if __name__ == '__main__':
+  sys.exit(Main())
diff --git a/setup_chromeos.py b/setup_chromeos.py
new file mode 100755
index 0000000..b6f9f4d
--- /dev/null
+++ b/setup_chromeos.py
@@ -0,0 +1,252 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Script to checkout the ChromeOS source.
+
+This script sets up the ChromeOS source in the given directory, matching a
+particular release of ChromeOS.
+"""
+
+from __future__ import print_function
+
+__author__ = 'raymes@google.com (Raymes Khoury)'
+
+from datetime import datetime
+
+import argparse
+import os
+import pickle
+import sys
+import tempfile
+import time
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import manifest_versions
+
+GCLIENT_FILE = """solutions = [
+  { "name"        : "CHROME_DEPS",
+    "url"         :
+    "svn://svn.chromium.org/chrome-internal/trunk/tools/buildspec/releases/%s",
+    "custom_deps" : {
+      "src/third_party/WebKit/LayoutTests": None,
+      "src-pdf": None,
+      "src/pdf": None,
+    },
+    "safesync_url": "",
+   },
+]
+"""
+
+# List of stable versions used for common team image
+# Sheriff must update this list when a new common version becomes available
+COMMON_VERSIONS = '/home/mobiletc-prebuild/common_images/common_list.txt'
+
+
+def Usage(parser):
+  parser.print_help()
+  sys.exit(0)
+
+
+# Get version spec file, either from "paladin" or "buildspec" directory.
+def GetVersionSpecFile(version, versions_git):
+  temp = tempfile.mkdtemp()
+  commands = ['cd {0}'.format(temp), \
+              'git clone {0} versions'.format(versions_git)]
+  cmd_executer = command_executer.GetCommandExecuter()
+  ret = cmd_executer.RunCommands(commands)
+  err_msg = None
+  if ret:
+    err_msg = 'Failed to checkout versions_git - {0}'.format(versions_git)
+    ret = None
+  else:
+    v, m = version.split('.', 1)
+    paladin_spec = 'paladin/buildspecs/{0}/{1}.xml'.format(v, m)
+    generic_spec = 'buildspecs/{0}/{1}.xml'.format(v, m)
+    paladin_path = '{0}/versions/{1}'.format(temp, paladin_spec)
+    generic_path = '{0}/versions/{1}'.format(temp, generic_spec)
+    if os.path.exists(paladin_path):
+      ret = paladin_spec
+    elif os.path.exists(generic_path):
+      ret = generic_spec
+    else:
+      err_msg = 'No spec found for version {0}'.format(version)
+      ret = None
+    # Fall through to clean up.
+
+  commands = ['rm -rf {0}'.format(temp)]
+  cmd_executer.RunCommands(commands)
+  if err_msg:
+    logger.GetLogger().LogFatal(err_msg)
+  return ret
+
+
+def TimeToCommonVersion(timestamp):
+  """Convert timestamp to common image version."""
+  tdt = datetime.fromtimestamp(float(timestamp))
+  with open(COMMON_VERSIONS, 'r') as f:
+    common_list = pickle.load(f)
+    for sv in common_list:
+      sdt = datetime.strptime(sv['date'], '%Y-%m-%d %H:%M:%S.%f')
+      if tdt >= sdt:
+        return '%s.%s' % (sv['chrome_major_version'], sv['chromeos_version'])
+    # should never reach here
+    logger.GetLogger().LogFatal('No common version for timestamp')
+  return None
+
+
+def Main(argv):
+  """Checkout the ChromeOS source."""
+  parser = argparse.ArgumentParser()
+  parser.add_argument('--dir',
+                      dest='directory',
+                      help='Target directory for ChromeOS installation.')
+  parser.add_argument('--version',
+                      dest='version',
+                      default='latest_lkgm',
+                      help="""ChromeOS version. Can be:
+(1) A release version in the format: 'X.X.X.X'
+(2) 'top' for top of trunk
+(3) 'latest_lkgm' for the latest lkgm version
+(4) 'lkgm' for the lkgm release before timestamp
+(5) 'latest_common' for the latest team common stable version
+(6) 'common' for the team common stable version before timestamp
+Default is 'latest_lkgm'.""")
+  parser.add_argument('--timestamp',
+                      dest='timestamp',
+                      default=None,
+                      help='Timestamps in epoch format. It will check out the'
+                      'latest LKGM or the latest COMMON version of ChromeOS'
+                      ' before the timestamp. Use in combination with'
+                      ' --version=latest or --version=common. Use '
+                      '"date -d <date string> +%s" to find epoch time')
+  parser.add_argument('--minilayout',
+                      dest='minilayout',
+                      default=False,
+                      action='store_true',
+                      help='Whether to checkout the minilayout (smaller '
+                      'checkout).')
+  parser.add_argument('--jobs',
+                      '-j',
+                      dest='jobs',
+                      help='Number of repo sync threads to use.')
+  parser.add_argument('--public',
+                      '-p',
+                      dest='public',
+                      default=False,
+                      action='store_true',
+                      help='Use the public checkout instead of the private '
+                      'one.')
+
+  options = parser.parse_args(argv)
+
+  if not options.version:
+    parser.print_help()
+    logger.GetLogger().LogFatal('No version specified.')
+  else:
+    version = options.version.strip()
+
+  if not options.timestamp:
+    timestamp = ''
+  else:
+    timestamp = options.timestamp.strip()
+    if version not in ('lkgm', 'common'):
+      parser.print_help()
+      logger.GetLogger().LogFatal('timestamp option only applies for '
+                                  "versions \"lkgm\" or \"common\"")
+
+  if not options.directory:
+    parser.print_help()
+    logger.GetLogger().LogFatal('No directory specified.')
+
+  directory = options.directory.strip()
+
+  if options.public:
+    manifest_repo = 'https://chromium.googlesource.com/chromiumos/manifest.git'
+    versions_repo = ('https://chromium.googlesource.com/'
+                     'chromiumos/manifest-versions.git')
+  else:
+    manifest_repo = (
+        'https://chrome-internal.googlesource.com/chromeos/'
+        'manifest-internal.git'
+    )
+    versions_repo = (
+        'https://chrome-internal.googlesource.com/chromeos/'
+        'manifest-versions.git'
+    )
+
+  if version == 'top':
+    init = 'repo init -u %s' % manifest_repo
+  elif version == 'latest_lkgm':
+    manifests = manifest_versions.ManifestVersions()
+    version = manifests.TimeToVersion(time.mktime(time.gmtime()))
+    version, manifest = version.split('.', 1)
+    logger.GetLogger().LogOutput('found version %s.%s for latest LKGM' %
+                                 (version, manifest))
+    init = ('repo init -u %s -m paladin/buildspecs/%s/%s.xml' %
+            (versions_repo, version, manifest))
+    del manifests
+  elif version == 'lkgm':
+    if not timestamp:
+      parser.print_help()
+      logger.GetLogger().LogFatal('No timestamp specified for version=lkgm')
+    manifests = manifest_versions.ManifestVersions()
+    version = manifests.TimeToVersion(timestamp)
+    version, manifest = version.split('.', 1)
+    logger.GetLogger().LogOutput('found version %s.%s for LKGM at timestamp %s'
+                                 % (version, manifest, timestamp))
+    init = ('repo init -u %s -m paladin/buildspecs/%s/%s.xml' %
+            (versions_repo, version, manifest))
+    del manifests
+  elif version == 'latest_common':
+    version = TimeToCommonVersion(time.mktime(time.gmtime()))
+    version, manifest = version.split('.', 1)
+    logger.GetLogger().LogOutput('found version %s.%s for latest Common image' %
+                                 (version, manifest))
+    init = ('repo init -u %s -m buildspecs/%s/%s.xml' % (versions_repo, version,
+                                                         manifest))
+  elif version == 'common':
+    if not timestamp:
+      parser.print_help()
+      logger.GetLogger().LogFatal('No timestamp specified for version=lkgm')
+    version = TimeToCommonVersion(timestamp)
+    version, manifest = version.split('.', 1)
+    logger.GetLogger().LogOutput('found version %s.%s for latest common image '
+                                 'at timestamp %s' % (version, manifest,
+                                                      timestamp))
+    init = ('repo init -u %s -m buildspecs/%s/%s.xml' % (versions_repo, version,
+                                                         manifest))
+  else:
+    # user specified a specific version number
+    version_spec_file = GetVersionSpecFile(version, versions_repo)
+    if not version_spec_file:
+      return 1
+    init = 'repo init -u %s -m %s' % (versions_repo, version_spec_file)
+
+  if options.minilayout:
+    init += ' -g minilayout'
+
+  init += ' --repo-url=https://chromium.googlesource.com/external/repo.git'
+
+  # crosbug#31837 - "Sources need to be world-readable to properly
+  # function inside the chroot"
+  sync = 'umask 022 && repo sync'
+  if options.jobs:
+    sync += ' -j %s' % options.jobs
+
+  commands = ['mkdir -p %s' % directory, 'cd %s' % directory, init, sync]
+  cmd_executer = command_executer.GetCommandExecuter()
+  ret = cmd_executer.RunCommands(commands)
+  if ret:
+    return ret
+
+  return cmd_executer.RunCommand(
+      'git ls-remote '
+      'https://chrome-internal.googlesource.com/chrome/src-internal.git '
+      '> /dev/null')
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/tc_enter_chroot.py b/tc_enter_chroot.py
new file mode 100755
index 0000000..573e558
--- /dev/null
+++ b/tc_enter_chroot.py
@@ -0,0 +1,299 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script to enter the ChromeOS chroot with mounted sources.
+
+This script enters the chroot with mounted sources.
+"""
+
+from __future__ import print_function
+
+__author__ = 'asharif@google.com (Ahmad Sharif)'
+
+import argparse
+import getpass
+import os
+import pwd
+import sys
+
+from cros_utils import command_executer
+from cros_utils import logger
+from cros_utils import misc
+
+
+class MountPoint(object):
+  """Mount point class"""
+
+  def __init__(self, external_dir, mount_dir, owner, options=None):
+    self.external_dir = os.path.realpath(external_dir)
+    self.mount_dir = os.path.realpath(mount_dir)
+    self.owner = owner
+    self.options = options
+
+  def CreateAndOwnDir(self, dir_name):
+    retv = 0
+    if not os.path.exists(dir_name):
+      command = 'mkdir -p ' + dir_name
+      command += ' || sudo mkdir -p ' + dir_name
+      retv = command_executer.GetCommandExecuter().RunCommand(command)
+    if retv != 0:
+      return retv
+    pw = pwd.getpwnam(self.owner)
+    if os.stat(dir_name).st_uid != pw.pw_uid:
+      command = 'sudo chown -f ' + self.owner + ' ' + dir_name
+      retv = command_executer.GetCommandExecuter().RunCommand(command)
+    return retv
+
+  def DoMount(self):
+    ce = command_executer.GetCommandExecuter()
+    mount_signature = '%s on %s' % (self.external_dir, self.mount_dir)
+    command = 'mount'
+    retv, out, _ = ce.RunCommandWOutput(command)
+    if mount_signature not in out:
+      retv = self.CreateAndOwnDir(self.mount_dir)
+      logger.GetLogger().LogFatalIf(retv, 'Cannot create mount_dir!')
+      retv = self.CreateAndOwnDir(self.external_dir)
+      logger.GetLogger().LogFatalIf(retv, 'Cannot create external_dir!')
+      retv = self.MountDir()
+      logger.GetLogger().LogFatalIf(retv, 'Cannot mount!')
+      return retv
+    else:
+      return 0
+
+  def UnMount(self):
+    ce = command_executer.GetCommandExecuter()
+    return ce.RunCommand('sudo umount %s' % self.mount_dir)
+
+  def MountDir(self):
+    command = 'sudo mount --bind ' + self.external_dir + ' ' + self.mount_dir
+    if self.options == 'ro':
+      command += ' && sudo mount --bind -oremount,ro ' + self.mount_dir
+    retv = command_executer.GetCommandExecuter().RunCommand(command)
+    return retv
+
+  def __str__(self):
+    ret = ''
+    ret += self.external_dir + '\n'
+    ret += self.mount_dir + '\n'
+    if self.owner:
+      ret += self.owner + '\n'
+    if self.options:
+      ret += self.options + '\n'
+    return ret
+
+
+def Main(argv, return_output=False):
+  """The main function."""
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      default='../..',
+                      help='ChromeOS root checkout directory.')
+  parser.add_argument('-t',
+                      '--toolchain_root',
+                      dest='toolchain_root',
+                      help='Toolchain root directory.')
+  parser.add_argument('-o',
+                      '--output',
+                      dest='output',
+                      help='Toolchain output directory')
+  parser.add_argument('--sudo',
+                      dest='sudo',
+                      action='store_true',
+                      default=False,
+                      help='Run the command with sudo.')
+  parser.add_argument('-r',
+                      '--third_party',
+                      dest='third_party',
+                      help='The third_party directory to mount.')
+  parser.add_argument('-m',
+                      '--other_mounts',
+                      dest='other_mounts',
+                      help='Other mount points in the form: '
+                      'dir:mounted_dir:options')
+  parser.add_argument('-s',
+                      '--mount-scripts-only',
+                      dest='mount_scripts_only',
+                      action='store_true',
+                      default=False,
+                      help='Mount only the scripts dir, and not the sources.')
+  parser.add_argument('passthrough_argv', nargs='*',
+                      help='Command to be executed inside the chroot.')
+
+  options = parser.parse_args(argv)
+
+  chromeos_root = options.chromeos_root
+
+  chromeos_root = os.path.expanduser(chromeos_root)
+  if options.toolchain_root:
+    options.toolchain_root = os.path.expanduser(options.toolchain_root)
+
+  chromeos_root = os.path.abspath(chromeos_root)
+
+  tc_dirs = []
+  if options.toolchain_root is None or options.mount_scripts_only:
+    m = 'toolchain_root not specified. Will not mount toolchain dirs.'
+    logger.GetLogger().LogWarning(m)
+  else:
+    tc_dirs = [options.toolchain_root + '/google_vendor_src_branch/gcc',
+               options.toolchain_root + '/google_vendor_src_branch/binutils']
+
+  for tc_dir in tc_dirs:
+    if not os.path.exists(tc_dir):
+      logger.GetLogger().LogError('toolchain path ' + tc_dir +
+                                  ' does not exist!')
+      parser.print_help()
+      sys.exit(1)
+
+  if not os.path.exists(chromeos_root):
+    logger.GetLogger().LogError('chromeos_root ' + options.chromeos_root +
+                                ' does not exist!')
+    parser.print_help()
+    sys.exit(1)
+
+  if not os.path.exists(chromeos_root + '/src/scripts/build_packages'):
+    logger.GetLogger(
+    ).LogError(options.chromeos_root + '/src/scripts/build_packages'
+               ' not found!')
+    parser.print_help()
+    sys.exit(1)
+
+  version_dir = os.path.realpath(os.path.expanduser(os.path.dirname(__file__)))
+
+  mounted_tc_root = '/usr/local/toolchain_root'
+  full_mounted_tc_root = chromeos_root + '/chroot/' + mounted_tc_root
+  full_mounted_tc_root = os.path.abspath(full_mounted_tc_root)
+
+  mount_points = []
+  for tc_dir in tc_dirs:
+    last_dir = misc.GetRoot(tc_dir)[1]
+    mount_point = MountPoint(tc_dir, full_mounted_tc_root + '/' + last_dir,
+                             getpass.getuser(), 'ro')
+    mount_points.append(mount_point)
+
+  # Add the third_party mount point if it exists
+  if options.third_party:
+    third_party_dir = options.third_party
+    logger.GetLogger().LogFatalIf(
+        not os.path.isdir(third_party_dir),
+        '--third_party option is not a valid dir.')
+  else:
+    third_party_dir = os.path.abspath('%s/../../../third_party' %
+                                      os.path.dirname(__file__))
+
+  if os.path.isdir(third_party_dir):
+    mount_point = MountPoint(third_party_dir, ('%s/%s' % (
+        full_mounted_tc_root, os.path.basename(third_party_dir))),
+                             getpass.getuser())
+    mount_points.append(mount_point)
+
+  output = options.output
+  if output is None and options.toolchain_root:
+    # Mount the output directory at /usr/local/toolchain_root/output
+    output = options.toolchain_root + '/output'
+
+  if output:
+    mount_points.append(MountPoint(output, full_mounted_tc_root + '/output',
+                                   getpass.getuser()))
+
+  # Mount the other mount points
+  mount_points += CreateMountPointsFromString(options.other_mounts,
+                                              chromeos_root + '/chroot/')
+
+  last_dir = misc.GetRoot(version_dir)[1]
+
+  # Mount the version dir (v14) at /usr/local/toolchain_root/v14
+  mount_point = MountPoint(version_dir, full_mounted_tc_root + '/' + last_dir,
+                           getpass.getuser())
+  mount_points.append(mount_point)
+
+  for mount_point in mount_points:
+    retv = mount_point.DoMount()
+    if retv != 0:
+      return retv
+
+  # Finally, create the symlink to build-gcc.
+  command = 'sudo chown ' + getpass.getuser() + ' ' + full_mounted_tc_root
+  retv = command_executer.GetCommandExecuter().RunCommand(command)
+
+  try:
+    CreateSymlink(last_dir + '/build-gcc', full_mounted_tc_root + '/build-gcc')
+    CreateSymlink(last_dir + '/build-binutils',
+                  full_mounted_tc_root + '/build-binutils')
+  except Exception as e:
+    logger.GetLogger().LogError(str(e))
+
+  # Now call cros_sdk --enter with the rest of the arguments.
+  command = 'cd %s/src/scripts && cros_sdk --enter' % chromeos_root
+
+  if len(options.passthrough_argv) > 1:
+    inner_command = ' '.join(options.passthrough_argv[1:])
+    inner_command = inner_command.strip()
+    if inner_command.startswith('-- '):
+      inner_command = inner_command[3:]
+    command_file = 'tc_enter_chroot.cmd'
+    command_file_path = chromeos_root + '/src/scripts/' + command_file
+    retv = command_executer.GetCommandExecuter().RunCommand('sudo rm -f ' +
+                                                            command_file_path)
+    if retv != 0:
+      return retv
+    f = open(command_file_path, 'w')
+    f.write(inner_command)
+    f.close()
+    logger.GetLogger().LogCmd(inner_command)
+    retv = command_executer.GetCommandExecuter().RunCommand('chmod +x ' +
+                                                            command_file_path)
+    if retv != 0:
+      return retv
+
+    if options.sudo:
+      command += ' sudo ./' + command_file
+    else:
+      command += ' ./' + command_file
+    retv = command_executer.GetCommandExecuter().RunCommandGeneric(
+        command, return_output)
+    return retv
+  else:
+    os.chdir('%s/src/scripts' % chromeos_root)
+    ce = command_executer.GetCommandExecuter()
+    _, out, _ = ce.RunCommandWOutput('which cros_sdk')
+    cros_sdk_binary = out.split()[0]
+    return os.execv(cros_sdk_binary, ['', '--enter'])
+
+
+def CreateMountPointsFromString(mount_strings, chroot_dir):
+  # String has options in the form dir:mount:options
+  mount_points = []
+  if not mount_strings:
+    return mount_points
+  mount_list = mount_strings.split()
+  for mount_string in mount_list:
+    mount_values = mount_string.split(':')
+    external_dir = mount_values[0]
+    mount_dir = mount_values[1]
+    if len(mount_values) > 2:
+      options = mount_values[2]
+    else:
+      options = None
+    mount_point = MountPoint(external_dir, chroot_dir + '/' + mount_dir,
+                             getpass.getuser(), options)
+    mount_points.append(mount_point)
+  return mount_points
+
+
+def CreateSymlink(target, link_name):
+  logger.GetLogger().LogFatalIf(
+      target.startswith('/'), "Can't create symlink to absolute path!")
+  real_from_file = misc.GetRoot(link_name)[0] + '/' + target
+  if os.path.realpath(real_from_file) != os.path.realpath(link_name):
+    if os.path.exists(link_name):
+      command = 'rm -rf ' + link_name
+      command_executer.GetCommandExecuter().RunCommand(command)
+    os.symlink(target, link_name)
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
diff --git a/test_gcc_dejagnu.py b/test_gcc_dejagnu.py
new file mode 100755
index 0000000..41304a0
--- /dev/null
+++ b/test_gcc_dejagnu.py
@@ -0,0 +1,218 @@
+#!/usr/bin/python2
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+"""Script adapter used by automation client for testing dejagnu.
+
+   This is not intended to be run on command line.
+   To kick off a single dejagnu run, use ./dejagnu/run_dejagnu.py
+"""
+
+from __future__ import print_function
+
+__author__ = 'shenhan@google.com (Han Shen)'
+
+import argparse
+import sys
+import setup_chromeos
+import build_tc
+
+from dejagnu import run_dejagnu
+from cros_utils import command_executer
+from cros_utils import email_sender
+
+
+class DejagnuAdapter(object):
+  """Dejagnu Adapter class"""
+
+  # TODO(shenhan): move these to constants.py.
+  _CHROMIUM_GCC_GIT = ('https://chromium.googlesource.com/'
+                       'chromiumos/third_party/gcc.git')
+  _CHROMIUM_GCC_BRANCH = 'gcc.gnu.org/branches/google/gcc-4_7-mobile'
+
+  _cmd_exec = command_executer.GetCommandExecuter()
+
+  def __init__(self, board, remote, gcc_dir, chromeos_root, runtestflags,
+               cleanup):
+    self._board = board
+    self._remote = remote
+    self._gcc_dir = gcc_dir
+    self._chromeos_root = chromeos_root
+    self._runtestflags = runtestflags
+    self._cleanup = cleanup
+
+  def SetupChromeOS(self):
+    cmd = [setup_chromeos.__file__, '--dir=' + self._chromeos_root,
+           '--minilayout', '--jobs=8']
+    ret = setup_chromeos.Main(cmd)
+    if ret:
+      raise RuntimeError('Failed to checkout chromeos')
+    ## Do cros_sdk and setup_board, otherwise build_tc in next step will fail.
+    cmd = 'cd {0} && cros_sdk --download'.format(self._chromeos_root)
+    ret = self._cmd_exec.RunCommand(cmd, terminated_timeout=9000)
+    if ret:
+      raise RuntimeError('Failed to create chroot.')
+
+  def SetupBoard(self):
+    cmd = './setup_board --board=' + self._board
+    ret = self._cmd_exec.ChrootRunCommand(self._chromeos_root,
+                                          cmd,
+                                          terminated_timeout=4000)
+    if ret:
+      raise RuntimeError('Failed to setup board.')
+
+  def CheckoutGCC(self):
+    cmd = 'git clone {0} {1} && cd {1} && git checkout {2}'.format(
+        self._CHROMIUM_GCC_GIT, self._gcc_dir, self._CHROMIUM_GCC_BRANCH)
+
+    ret = self._cmd_exec.RunCommand(cmd, terminated_timeout=300)
+    if ret:
+      raise RuntimeError('Failed to checkout gcc.')
+    ## Handle build_tc bug.
+    cmd = ('touch {0}/gcc/config/arm/arm-tune.md ' + \
+        '{0}/gcc/config/arm/arm-tables.opt').format(self._gcc_dir)
+    ret = self._cmd_exec.RunCommand(cmd)
+
+  def BuildGCC(self):
+    build_gcc_args = [build_tc.__file__, '--board=' + self._board,
+                      '--chromeos_root=' + self._chromeos_root,
+                      '--gcc_dir=' + self._gcc_dir]
+    ret = build_tc.Main(build_gcc_args)
+    if ret:
+      raise RuntimeError('Building gcc failed.')
+
+  def CheckGCC(self):
+    args = [run_dejagnu.__file__, '--board=' + self._board,
+            '--chromeos_root=' + self._chromeos_root,
+            '--mount=' + self._gcc_dir, '--remote=' + self._remote]
+    if self._cleanup:
+      args.append('--cleanup=' + self._cleanup)
+    if self._runtestflags:
+      args.append('--flags=' + self._runtestflags)
+    return run_dejagnu.Main(args)
+
+
+# Parse the output log to determine how many failures we have.
+# Return -1 if parse output log failed.
+def GetNumNewFailures(input_str):
+  if not input_str:
+    return 0
+  start_counting = False
+  n_failures = 0
+  for l in input_str.splitlines():
+    print(l)
+    if not start_counting and 'Build results not in the manifest' in l:
+      start_counting = True
+    elif start_counting and l and (
+        l.find('UNRESOLVED:') == 0 or l.find('FAIL:') == 0 or
+        l.find('XFAIL:') == 0 or l.find('XPASS:') == 0):
+      n_failures = n_failures + 1
+  if not start_counting:
+    return -1
+  return n_failures
+
+
+# Do not throw any exception in this function!
+def EmailResult(result):
+  email_to = ['c-compiler-chrome@google.com']
+  if len(result) == 4:
+    subject = 'Job failed: dejagnu test didn\'t finish'
+    email_text = 'Job failed prematurely, check exception below.\n' + \
+        result[3]
+  elif result[0]:
+    subject = 'Job finished: dejagnu test failed'
+    num_new_failures = GetNumNewFailures(result[1])
+    if num_new_failures >= 0:
+      summary = '{0} new fail(s), check log below.'.format(num_new_failures)
+    else:
+      summary = 'At least 1 new fail found, check log below.'
+    email_text = summary + \
+        ('\nStdout ====\n'
+         '{0}\n'
+         '\nStderr ===\n'
+         '{1}\n').format(result[1], result[2])
+  else:
+    subject = 'Job finished: dejagnu test passed'
+    email_text = ('Cool! No new fail found.\n'
+                  '\nStdout ====\n'
+                  '{0}\n'
+                  '\nStderr ====\n'
+                  '{1}\n').format(result[1], result[2])
+
+  try:
+    email_sender.EmailSender().SendEmail(email_to, subject, email_text)
+    print('Email sent.')
+  except Exception as e:
+    # Do not propagate this email sending exception, you want to email an
+    # email exception? Just log it on console.
+    print('Sending email failed - {0}'
+          'Subject: {1}'
+          'Text: {2}').format(
+              str(e), subject, email_text)
+
+
+def ProcessArguments(argv):
+  """Processing script arguments."""
+  parser = argparse.ArgumentParser(
+      description=('This script is used by nightly client to test gcc. '
+                   'DO NOT run it unless you know what you are doing.'),
+      usage='test_gcc_dejagnu.py options')
+  parser.add_argument('-b',
+                      '--board',
+                      dest='board',
+                      help=('Required. Specify board type. For example '
+                            '\'lumpy\' and \'daisy\''))
+  parser.add_argument('-r',
+                      '--remote',
+                      dest='remote',
+                      help=('Required. Specify remote board address'))
+  parser.add_argument('-g',
+                      '--gcc_dir',
+                      dest='gcc_dir',
+                      default='gcc.live',
+                      help=('Optional. Specify gcc checkout directory.'))
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      default='chromeos.live',
+                      help=('Optional. Specify chromeos checkout directory.'))
+  parser.add_argument('--cleanup',
+                      dest='cleanup',
+                      default=None,
+                      help=('Optional. Do cleanup after the test.'))
+  parser.add_argument('--runtestflags',
+                      dest='runtestflags',
+                      default=None,
+                      help=('Optional. Options to RUNTESTFLAGS env var '
+                            'while invoking make check. '
+                            '(Mainly used for testing purpose.)'))
+
+  options = parser.parse_args(argv[1:])
+
+  if not options.board or not options.remote:
+    raise SyntaxError('--board and --remote are mandatory options.')
+
+  return options
+
+
+def Main(argv):
+  opt = ProcessArguments(argv)
+  adapter = DejagnuAdapter(opt.board, opt.remote, opt.gcc_dir,
+                           opt.chromeos_root, opt.runtestflags, opt.cleanup)
+  try:
+    adapter.SetupChromeOS()
+    adapter.SetupBoard()
+    adapter.CheckoutGCC()
+    adapter.BuildGCC()
+    ret = adapter.CheckGCC()
+  except Exception as e:
+    print(e)
+    ret = (1, '', '', str(e))
+  finally:
+    EmailResult(ret)
+
+  return ret
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval[0])
diff --git a/test_gdb_dejagnu.py b/test_gdb_dejagnu.py
new file mode 100755
index 0000000..4f44527
--- /dev/null
+++ b/test_gdb_dejagnu.py
@@ -0,0 +1,163 @@
+#!/usr/bin/python2
+"""Script adapter used by automation client for testing dejagnu.
+
+   This is not intended to be run on command line.
+   To kick off a single dejagnu run, use ./dejagnu/run_dejagnu.py
+"""
+
+from __future__ import print_function
+
+import argparse
+import sys
+import setup_chromeos
+
+from dejagnu import gdb_dejagnu
+from cros_utils import command_executer
+from cros_utils import email_sender
+
+
+class DejagnuAdapter(object):
+  """Dejagnu Adapter class."""
+
+  def __init__(self, board, remote, gdb_dir, chromeos_root, cleanup):
+    self._board = board
+    self._remote = remote
+    self._gdb_dir = gdb_dir
+    self._chromeos_root = chromeos_root
+    self._cleanup = cleanup
+    self._cmd_exec = command_executer.GetCommandExecuter()
+
+  def SetupChromeOS(self):
+    cmd = [setup_chromeos.__file__, '--dir=' + self._chromeos_root,
+           '--minilayout', '--jobs=8']
+    ret = setup_chromeos.Main(cmd)
+    if ret:
+      raise RuntimeError('Failed to checkout chromeos')
+    ## Do cros_sdk and setup_board, otherwise build_tc in next step will fail.
+    cmd = 'cd {0} && cros_sdk --download'.format(self._chromeos_root)
+    ret = self._cmd_exec.RunCommand(cmd, terminated_timeout=9000)
+    if ret:
+      raise RuntimeError('Failed to create chroot.')
+
+  def SetupBoard(self):
+    cmd = './setup_board --board=' + self._board
+    ret = self._cmd_exec.ChrootRunCommand(self._chromeos_root,
+                                          cmd,
+                                          terminated_timeout=4000)
+    if ret:
+      raise RuntimeError('Failed to setup board.')
+
+  def CheckGDB(self):
+    args = [gdb_dejagnu.__file__, '--board=' + self._board,
+            '--chromeos_root=' + self._chromeos_root,
+            '--mount=' + self._gdb_dir, '--remote=' + self._remote]
+    if self._cleanup:
+      args.append('--cleanup=' + self._cleanup)
+    return gdb_dejagnu.Main(args)
+
+
+# Parse the output log to determine how many failures we have.
+# Return -1 if parse output log failed.
+def GetNumNewFailures(result):
+  if not result:
+    return 0
+  return len(result)
+
+
+# Do not throw any exception in this function!
+def EmailResult(result):
+  email_to = ['yunlian@google.com']
+  if len(result) == 4:
+    subject = 'Job failed: dejagnu test didn\'t finish'
+    email_text = (
+        'Job failed prematurely, check exception below.\n' + result[3])
+  elif result[0]:
+    subject = 'Job finished: dejagnu test failed'
+    num_new_failures = GetNumNewFailures(result[1])
+    if num_new_failures >= 0:
+      summary = '{0} new fail(s), check log below.'.format(num_new_failures)
+    else:
+      summary = 'At least 1 new fail found, check log below.'
+    email_text = (summary + ('\nStdout ====\n'
+                             '{0}\n'
+                             '\nStderr ===\n'
+                             '{1}\n').format(result[1], result[2]))
+  else:
+    subject = 'Job finished: dejagnu test passed'
+    email_text = ('Cool! No new fail found.\n'
+                  '\nStdout ====\n'
+                  '{0}\n'
+                  '\nStderr ====\n'
+                  '{1}\n').format(result[1], result[2])
+
+  try:
+    email_sender.EmailSender().SendEmail(email_to, subject, email_text)
+    print('Email sent.')
+  except Exception as e:
+    # Do not propagate this email sending exception, you want to email an
+    # email exception? Just log it on console.
+    print('Sending email failed - {0}'
+          'Subject: {1}'
+          'Text: {2}').format(
+              str(e), subject, email_text)
+
+
+def ProcessArguments(argv):
+  """Processing script arguments."""
+  parser = argparse.ArgumentParser(
+      description=('This script is used by nightly client to test gdb. '
+                   'DO NOT run it unless you know what you are doing.'),
+      usage='test_gdb_dejagnu.py options')
+  parser.add_argument('-b',
+                      '--board',
+                      dest='board',
+                      help=('Required. Specify board type. For example '
+                            '\'lumpy\' and \'daisy\''))
+  parser.add_argument('-r',
+                      '--remote',
+                      dest='remote',
+                      help=('Required. Specify remote board address'))
+  parser.add_argument('-g',
+                      '--gdb_dir',
+                      dest='gdb_dir',
+                      default='',
+                      help=('Optional. Specify gdb checkout directory.'))
+  parser.add_argument('-c',
+                      '--chromeos_root',
+                      dest='chromeos_root',
+                      default='chromeos.live',
+                      help=('Optional. Specify chromeos checkout directory.'))
+  parser.add_argument('--cleanup',
+                      dest='cleanup',
+                      default=None,
+                      help=('Optional. Do cleanup after the test.'))
+
+  options = parser.parse_args(argv)
+
+  if not options.board or not options.remote:
+    raise SyntaxError('--board and --remote are mandatory options.')
+
+  return options
+
+
+def Main(argv):
+  opt = ProcessArguments(argv)
+  print(opt)
+  adapter = DejagnuAdapter(opt.board, opt.remote, opt.gdb_dir,
+                           opt.chromeos_root, opt.cleanup)
+  try:
+    adapter.SetupChromeOS()
+    adapter.SetupBoard()
+    ret = adapter.CheckGDB()
+  except Exception as e:
+    print(e)
+    ret = (1, '', '', str(e))
+  finally:
+    EmailResult(ret)
+
+  return ret
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval[0])
diff --git a/test_toolchains.py b/test_toolchains.py
new file mode 100755
index 0000000..ecae6f4
--- /dev/null
+++ b/test_toolchains.py
@@ -0,0 +1,365 @@
+#!/usr/bin/python2
+
+# Script to test different toolchains against ChromeOS benchmarks.
+"""Toolchain team nightly performance test script (local builds)."""
+
+from __future__ import print_function
+
+import argparse
+import datetime
+import os
+import sys
+import build_chromeos
+import setup_chromeos
+import time
+from cros_utils import command_executer
+from cros_utils import misc
+from cros_utils import logger
+
+CROSTC_ROOT = '/usr/local/google/crostc'
+MAIL_PROGRAM = '~/var/bin/mail-sheriff'
+PENDING_ARCHIVES_DIR = os.path.join(CROSTC_ROOT, 'pending_archives')
+NIGHTLY_TESTS_DIR = os.path.join(CROSTC_ROOT, 'nightly_test_reports')
+
+
+class GCCConfig(object):
+  """GCC configuration class."""
+
+  def __init__(self, githash):
+    self.githash = githash
+
+
+class ToolchainConfig(object):
+  """Toolchain configuration class."""
+
+  def __init__(self, gcc_config=None):
+    self.gcc_config = gcc_config
+
+
+class ChromeOSCheckout(object):
+  """Main class for checking out, building and testing ChromeOS."""
+
+  def __init__(self, board, chromeos_root):
+    self._board = board
+    self._chromeos_root = chromeos_root
+    self._ce = command_executer.GetCommandExecuter()
+    self._l = logger.GetLogger()
+    self._build_num = None
+
+  def _DeleteChroot(self):
+    command = 'cd %s; cros_sdk --delete' % self._chromeos_root
+    return self._ce.RunCommand(command)
+
+  def _DeleteCcahe(self):
+    # crosbug.com/34956
+    command = 'sudo rm -rf %s' % os.path.join(self._chromeos_root, '.cache')
+    return self._ce.RunCommand(command)
+
+  def _GetBuildNumber(self):
+    """Get the build number of the ChromeOS image from the chroot.
+
+    This function assumes a ChromeOS image has been built in the chroot.
+    It translates the 'latest' symlink in the
+    <chroot>/src/build/images/<board> directory, to find the actual
+    ChromeOS build number for the image that was built.  For example, if
+    src/build/image/lumpy/latest ->  R37-5982.0.2014_06_23_0454-a1, then
+    This function would parse it out and assign 'R37-5982' to self._build_num.
+    This is used to determine the official, vanilla build to use for
+    comparison tests.
+    """
+    # Get the path to 'latest'
+    sym_path = os.path.join(
+        misc.GetImageDir(self._chromeos_root, self._board), 'latest')
+    # Translate the symlink to its 'real' path.
+    real_path = os.path.realpath(sym_path)
+    # Break up the path and get the last piece
+    # (e.g. 'R37-5982.0.2014_06_23_0454-a1"
+    path_pieces = real_path.split('/')
+    last_piece = path_pieces[-1]
+    # Break this piece into the image number + other pieces, and get the
+    # image number [ 'R37-5982', '0', '2014_06_23_0454-a1']
+    image_parts = last_piece.split('.')
+    self._build_num = image_parts[0]
+
+  def _BuildLabelName(self, config):
+    pieces = config.split('/')
+    compiler_version = pieces[-1]
+    label = compiler_version + '_tot_afdo'
+    return label
+
+  def _BuildAndImage(self, label=''):
+    if (not label or
+        not misc.DoesLabelExist(self._chromeos_root, self._board, label)):
+      build_chromeos_args = [
+          build_chromeos.__file__, '--chromeos_root=%s' % self._chromeos_root,
+          '--board=%s' % self._board, '--rebuild'
+      ]
+      if self._public:
+        build_chromeos_args.append('--env=USE=-chrome_internal')
+
+      ret = build_chromeos.Main(build_chromeos_args)
+      if ret != 0:
+        raise RuntimeError("Couldn't build ChromeOS!")
+
+      if not self._build_num:
+        self._GetBuildNumber()
+      # Check to see if we need to create the symbolic link for the vanilla
+      # image, and do so if appropriate.
+      if not misc.DoesLabelExist(self._chromeos_root, self._board, 'vanilla'):
+        build_name = '%s-release/%s.0.0' % (self._board, self._build_num)
+        full_vanilla_path = os.path.join(os.getcwd(), self._chromeos_root,
+                                         'chroot/tmp', build_name)
+        misc.LabelLatestImage(self._chromeos_root, self._board, label,
+                              full_vanilla_path)
+      else:
+        misc.LabelLatestImage(self._chromeos_root, self._board, label)
+    return label
+
+  def _SetupBoard(self, env_dict, usepkg_flag, clobber_flag):
+    env_string = misc.GetEnvStringFromDict(env_dict)
+    command = ('%s %s' % (env_string, misc.GetSetupBoardCommand(
+        self._board, usepkg=usepkg_flag, force=clobber_flag)))
+    ret = self._ce.ChrootRunCommand(self._chromeos_root, command)
+    error_str = "Could not setup board: '%s'" % command
+    assert ret == 0, error_str
+
+  def _UnInstallToolchain(self):
+    command = ('sudo CLEAN_DELAY=0 emerge -C cross-%s/gcc' %
+               misc.GetCtargetFromBoard(self._board, self._chromeos_root))
+    ret = self._ce.ChrootRunCommand(self._chromeos_root, command)
+    if ret != 0:
+      raise RuntimeError("Couldn't uninstall the toolchain!")
+
+  def _CheckoutChromeOS(self):
+    # TODO(asharif): Setup a fixed ChromeOS version (quarterly snapshot).
+    if not os.path.exists(self._chromeos_root):
+      setup_chromeos_args = ['--dir=%s' % self._chromeos_root]
+      if self._public:
+        setup_chromeos_args.append('--public')
+      ret = setup_chromeos.Main(setup_chromeos_args)
+      if ret != 0:
+        raise RuntimeError("Couldn't run setup_chromeos!")
+
+  def _BuildToolchain(self, config):
+    # Call setup_board for basic, vanilla setup.
+    self._SetupBoard({}, usepkg_flag=True, clobber_flag=False)
+    # Now uninstall the vanilla compiler and setup/build our custom
+    # compiler.
+    self._UnInstallToolchain()
+    envdict = {
+        'USE': 'git_gcc',
+        'GCC_GITHASH': config.gcc_config.githash,
+        'EMERGE_DEFAULT_OPTS': '--exclude=gcc'
+    }
+    self._SetupBoard(envdict, usepkg_flag=False, clobber_flag=False)
+
+
+class ToolchainComparator(ChromeOSCheckout):
+  """Main class for running tests and generating reports."""
+
+  def __init__(self,
+               board,
+               remotes,
+               configs,
+               clean,
+               public,
+               force_mismatch,
+               noschedv2=False):
+    self._board = board
+    self._remotes = remotes
+    self._chromeos_root = 'chromeos'
+    self._configs = configs
+    self._clean = clean
+    self._public = public
+    self._force_mismatch = force_mismatch
+    self._ce = command_executer.GetCommandExecuter()
+    self._l = logger.GetLogger()
+    timestamp = datetime.datetime.strftime(datetime.datetime.now(),
+                                           '%Y-%m-%d_%H:%M:%S')
+    self._reports_dir = os.path.join(
+        NIGHTLY_TESTS_DIR,
+        '%s.%s' % (timestamp, board),)
+    self._noschedv2 = noschedv2
+    ChromeOSCheckout.__init__(self, board, self._chromeos_root)
+
+  def _FinishSetup(self):
+    # Get correct .boto file
+    current_dir = os.getcwd()
+    src = '/usr/local/google/home/mobiletc-prebuild/.boto'
+    dest = os.path.join(current_dir, self._chromeos_root,
+                        'src/private-overlays/chromeos-overlay/'
+                        'googlestorage_account.boto')
+    # Copy the file to the correct place
+    copy_cmd = 'cp %s %s' % (src, dest)
+    retv = self._ce.RunCommand(copy_cmd)
+    if retv != 0:
+      raise RuntimeError("Couldn't copy .boto file for google storage.")
+
+    # Fix protections on ssh key
+    command = ('chmod 600 /var/cache/chromeos-cache/distfiles/target'
+               '/chrome-src-internal/src/third_party/chromite/ssh_keys'
+               '/testing_rsa')
+    retv = self._ce.ChrootRunCommand(self._chromeos_root, command)
+    if retv != 0:
+      raise RuntimeError('chmod for testing_rsa failed')
+
+  def _TestLabels(self, labels):
+    experiment_file = 'toolchain_experiment.txt'
+    image_args = ''
+    if self._force_mismatch:
+      image_args = '--force-mismatch'
+    experiment_header = """
+    board: %s
+    remote: %s
+    retries: 1
+    """ % (self._board, self._remotes)
+    experiment_tests = """
+    benchmark: all_toolchain_perf {
+      suite: telemetry_Crosperf
+      iterations: 3
+    }
+    """
+
+    with open(experiment_file, 'w') as f:
+      f.write(experiment_header)
+      f.write(experiment_tests)
+      for label in labels:
+        # TODO(asharif): Fix crosperf so it accepts labels with symbols
+        crosperf_label = label
+        crosperf_label = crosperf_label.replace('-', '_')
+        crosperf_label = crosperf_label.replace('+', '_')
+        crosperf_label = crosperf_label.replace('.', '')
+
+        # Use the official build instead of building vanilla ourselves.
+        if label == 'vanilla':
+          build_name = '%s-release/%s.0.0' % (self._board, self._build_num)
+
+          # Now add 'official build' to test file.
+          official_image = """
+          official_image {
+            chromeos_root: %s
+            build: %s
+          }
+          """ % (self._chromeos_root, build_name)
+          f.write(official_image)
+
+        else:
+          experiment_image = """
+          %s {
+            chromeos_image: %s
+            image_args: %s
+          }
+          """ % (crosperf_label, os.path.join(
+              misc.GetImageDir(self._chromeos_root, self._board), label,
+              'chromiumos_test_image.bin'), image_args)
+          f.write(experiment_image)
+
+    crosperf = os.path.join(os.path.dirname(__file__), 'crosperf', 'crosperf')
+    noschedv2_opts = '--noschedv2' if self._noschedv2 else ''
+    command = ('{crosperf} --no_email=True --results_dir={r_dir} '
+               '--json_report=True {noschedv2_opts} {exp_file}').format(
+                   crosperf=crosperf,
+                   r_dir=self._reports_dir,
+                   noschedv2_opts=noschedv2_opts,
+                   exp_file=experiment_file)
+
+    ret = self._ce.RunCommand(command)
+    if ret != 0:
+      raise RuntimeError('Crosperf execution error!')
+    else:
+      # Copy json report to pending archives directory.
+      command = 'cp %s/*.json %s/.' % (self._reports_dir, PENDING_ARCHIVES_DIR)
+      ret = self._ce.RunCommand(command)
+    return
+
+  def _SendEmail(self):
+    """Find email msesage generated by crosperf and send it."""
+    filename = os.path.join(self._reports_dir, 'msg_body.html')
+    if (os.path.exists(filename) and
+        os.path.exists(os.path.expanduser(MAIL_PROGRAM))):
+      command = ('cat %s | %s -s "Nightly test results, %s" -team -html' %
+                 (filename, MAIL_PROGRAM, self._board))
+      self._ce.RunCommand(command)
+
+  def DoAll(self):
+    self._CheckoutChromeOS()
+    labels = []
+    labels.append('vanilla')
+    for config in self._configs:
+      label = self._BuildLabelName(config.gcc_config.githash)
+      if not misc.DoesLabelExist(self._chromeos_root, self._board, label):
+        self._BuildToolchain(config)
+        label = self._BuildAndImage(label)
+      labels.append(label)
+    self._FinishSetup()
+    self._TestLabels(labels)
+    self._SendEmail()
+    if self._clean:
+      ret = self._DeleteChroot()
+      if ret != 0:
+        return ret
+      ret = self._DeleteCcahe()
+      if ret != 0:
+        return ret
+    return 0
+
+
+def Main(argv):
+  """The main function."""
+  # Common initializations
+  ###  command_executer.InitCommandExecuter(True)
+  command_executer.InitCommandExecuter()
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '--remote', dest='remote', help='Remote machines to run tests on.')
+  parser.add_argument(
+      '--board', dest='board', default='x86-alex', help='The target board.')
+  parser.add_argument(
+      '--githashes',
+      dest='githashes',
+      default='master',
+      help='The gcc githashes to test.')
+  parser.add_argument(
+      '--clean',
+      dest='clean',
+      default=False,
+      action='store_true',
+      help='Clean the chroot after testing.')
+  parser.add_argument(
+      '--public',
+      dest='public',
+      default=False,
+      action='store_true',
+      help='Use the public checkout/build.')
+  parser.add_argument(
+      '--force-mismatch',
+      dest='force_mismatch',
+      default='',
+      help='Force the image regardless of board mismatch')
+  parser.add_argument(
+      '--noschedv2',
+      dest='noschedv2',
+      action='store_true',
+      default=False,
+      help='Pass --noschedv2 to crosperf.')
+  options = parser.parse_args(argv)
+  if not options.board:
+    print('Please give a board.')
+    return 1
+  if not options.remote:
+    print('Please give at least one remote machine.')
+    return 1
+  toolchain_configs = []
+  for githash in options.githashes.split(','):
+    gcc_config = GCCConfig(githash=githash)
+    toolchain_config = ToolchainConfig(gcc_config=gcc_config)
+    toolchain_configs.append(toolchain_config)
+  fc = ToolchainComparator(options.board, options.remote, toolchain_configs,
+                           options.clean, options.public,
+                           options.force_mismatch, options.noschedv2)
+  return fc.DoAll()
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv[1:])
+  sys.exit(retval)
diff --git a/toolchain_utils_githooks/pre-push b/toolchain_utils_githooks/pre-push
new file mode 100755
index 0000000..eef8a09
--- /dev/null
+++ b/toolchain_utils_githooks/pre-push
@@ -0,0 +1,9 @@
+#!/bin/bash
+#
+# Copyright (c) 2016 Google Inc.
+#
+
+# Just execute our custom pre-push script.
+# Do this trick so that this file does not need to be updated each time
+# we modify our pre-push script
+exec ./toolchain_utils_githooks/pre-push.real "$@"
diff --git a/toolchain_utils_githooks/pre-push.real b/toolchain_utils_githooks/pre-push.real
new file mode 100755
index 0000000..0f6856e
--- /dev/null
+++ b/toolchain_utils_githooks/pre-push.real
@@ -0,0 +1,71 @@
+#!/bin/bash
+#
+# Copyright (c) 2015 Google Inc.
+#
+# This is a pre-push hook that does the following before uploading a
+# CL for review:
+# 1) check that python sources have been formatted with pyformat.
+# 2) allows the user to run the unit tests.
+
+# This redirects stdin. Make sure to run after stdin has been read.
+run_UnitTests() {
+  save_dir=$(pwd)
+  status=0
+  valid=0
+
+  # Make sure we can read the stdin from terminal
+  exec < /dev/tty
+
+  while [[ $valid -eq 0 ]] ; do
+    read -p "Run unit tests? [y/n] " choice
+    case "$choice" in
+      n|N ) valid=1 ;;
+      y|Y ) valid=1; cd crosperf; ./run_tests.sh; status=$? ;
+        cd $save_dir;;
+      * ) echo "Must choose y or n."
+    esac
+  done
+  if [[ $status -ne 0 ]]; then
+    exit $status
+  fi
+}
+
+run_PyFormat() {
+  pyformat="./bin/tc_pyformat"
+  range=$1
+  files=$(git show --pretty="format:" --name-only $range)
+  for f in $files; do
+    [[ $f == *.py ]] || continue
+    # File could have been removed as part of the commit.
+    [[ -e $f ]] || continue
+    diffs=$($pyformat -d $f)
+    if [[ $? -ne 0 ]]; then
+      echo "Error: $pyformat $f returned with error code $?"
+      exit 1
+    fi
+    if [[ -n "$diffs" ]]; then
+      echo -e "Error: $f is not formatted correctly. Run $pyformat -i $f\n"
+      echo -e "diffs:\n$diffs\n"
+      exit 2
+    fi
+  done
+}
+
+z40=0000000000000000000000000000000000000000
+
+while IFS=' ' read local_ref local_sha remote_ref remote_sha; do
+  if [[ "$local_sha" != $z40 ]]; then
+    if [[ "$remote_sha" == $z40 ]]; then
+      # New branch, examine commit on top of branch.
+      range="$local_sha"
+    else
+      # Update to existing branch, examine new commits
+      range="$remote_sha..$local_sha"
+    fi
+    run_PyFormat $range
+  fi
+done
+
+run_UnitTests
+
+exit 0
diff --git a/update_telemetry_defaults.py b/update_telemetry_defaults.py
new file mode 100755
index 0000000..9ee7d8b
--- /dev/null
+++ b/update_telemetry_defaults.py
@@ -0,0 +1,203 @@
+#!/usr/bin/python2
+#
+# Copyright 2013 Google Inc. All Rights Reserved.
+"""Script to maintain the Telemetry benchmark default results file.
+
+This script allows the user to see and update the set of default
+results to be used in generating reports from running the Telemetry
+benchmarks.
+
+"""
+
+from __future__ import print_function
+
+__author__ = 'cmtice@google.com (Caroline Tice)'
+
+import os
+import sys
+import json
+
+from cros_utils import misc
+
+Defaults = {}
+
+
+class TelemetryDefaults(object):
+  """Class for handling telemetry default return result fields."""
+
+  DEFAULTS_FILE_NAME = 'crosperf/default-telemetry-results.json'
+
+  def __init__(self):
+    # Get the Crosperf directory; that is where the defaults
+    # file should be.
+    dirname, __ = misc.GetRoot(__file__)
+    fullname = os.path.join(dirname, self.DEFAULTS_FILE_NAME)
+    self._filename = fullname
+    self._defaults = {}
+
+  def ReadDefaultsFile(self):
+    if os.path.exists(self._filename):
+      with open(self._filename, 'r') as fp:
+        self._defaults = json.load(fp)
+
+  def WriteDefaultsFile(self):
+    with open(self._filename, 'w') as fp:
+      json.dump(self._defaults, fp, indent=2)
+
+  def ListCurrentDefaults(self, benchmark=all):
+    # Show user current defaults. By default, show all.  The user
+    # can specify the name of a particular benchmark to see only that
+    # benchmark's default values.
+    if len(self._defaults) == 0:
+      print('The benchmark default results are currently empty.')
+    if benchmark == all:
+      for b in self._defaults.keys():
+        results = self._defaults[b]
+        out_str = b + ' : '
+        for r in results:
+          out_str += r + ' '
+        print(out_str)
+    elif benchmark in self._defaults:
+      results = self._defaults[benchmark]
+      out_str = benchmark + ' : '
+      for r in results:
+        out_str += r + ' '
+      print(out_str)
+    else:
+      print("Error:  Unrecognized benchmark '%s'" % benchmark)
+
+  def AddDefault(self, benchmark, result):
+    if benchmark in self._defaults:
+      resultList = self._defaults[benchmark]
+    else:
+      resultList = []
+    resultList.append(result)
+    self._defaults[benchmark] = resultList
+    print("Updated results set for '%s': " % benchmark)
+    print('%s : %s' % (benchmark, repr(self._defaults[benchmark])))
+
+  def RemoveDefault(self, benchmark, result):
+    if benchmark in self._defaults:
+      resultList = self._defaults[benchmark]
+      if result in resultList:
+        resultList.remove(result)
+        print("Updated results set for '%s': " % benchmark)
+        print('%s : %s' % (benchmark, repr(self._defaults[benchmark])))
+      else:
+        print("'%s' is not in '%s's default results list." %
+              (result, benchmark))
+    else:
+      print("Cannot find benchmark named '%s'" % benchmark)
+
+  def GetDefault(self):
+    return self._defaults
+
+  def RemoveBenchmark(self, benchmark):
+    if benchmark in self._defaults:
+      del self._defaults[benchmark]
+      print("Deleted benchmark '%s' from list of benchmarks." % benchmark)
+    else:
+      print("Cannot find benchmark named '%s'" % benchmark)
+
+  def RenameBenchmark(self, old_name, new_name):
+    if old_name in self._defaults:
+      resultsList = self._defaults[old_name]
+      del self._defaults[old_name]
+      self._defaults[new_name] = resultsList
+      print("Renamed '%s' to '%s'." % (old_name, new_name))
+    else:
+      print("Cannot find benchmark named '%s'" % old_name)
+
+  def UsageError(self, user_input):
+    # Print error message, then show options
+    print("Error:Invalid user input: '%s'" % user_input)
+    self.ShowOptions()
+
+  def ShowOptions(self):
+    print("""
+Below are the valid user options and their arguments, and an explanation
+of what each option does.  You may either print out the full name of the
+option, or you may use the first letter of the option.  Case (upper or
+lower) does not matter, for the command (case of the result name DOES matter):
+
+    (L)ist                           - List all current defaults
+    (L)ist <benchmark>               - List current defaults for benchmark
+    (H)elp                           - Show this information.
+    (A)dd <benchmark> <result>       - Add a default result for a particular
+                                       benchmark (appends to benchmark's list
+                                       of results, if list already exists)
+    (D)elete <benchmark> <result>    - Delete a default result for a
+                                       particular benchmark
+    (R)emove <benchmark>             - Remove an entire benchmark (and its
+                                       results)
+    (M)ove <old-benchmark> <new-benchmark>    - Rename a benchmark
+    (Q)uit                           - Exit this program, saving changes.
+    (T)erminate                      - Exit this program; abandon changes.
+
+""")
+
+  def GetUserInput(self):
+    # Prompt user
+    print('Enter option> ')
+    # Process user input
+    inp = sys.stdin.readline()
+    inp = inp[:-1]
+    # inp = inp.lower()
+    words = inp.split(' ')
+    option = words[0]
+    option = option.lower()
+    if option == 'h' or option == 'help':
+      self.ShowOptions()
+    elif option == 'l' or option == 'list':
+      if len(words) == 1:
+        self.ListCurrentDefaults()
+      else:
+        self.ListCurrentDefaults(benchmark=words[1])
+    elif option == 'a' or option == 'add':
+      if len(words) < 3:
+        self.UsageError(inp)
+      else:
+        benchmark = words[1]
+        resultList = words[2:]
+        for r in resultList:
+          self.AddDefault(benchmark, r)
+    elif option == 'd' or option == 'delete':
+      if len(words) != 3:
+        self.UsageError(inp)
+      else:
+        benchmark = words[1]
+        result = words[2]
+        self.RemoveDefault(benchmark, result)
+    elif option == 'r' or option == 'remove':
+      if len(words) != 2:
+        self.UsageError(inp)
+      else:
+        benchmark = words[1]
+        self.RemoveBenchmark(benchmark)
+    elif option == 'm' or option == 'move':
+      if len(words) != 3:
+        self.UsageError(inp)
+      else:
+        old_name = words[1]
+        new_name = words[2]
+        self.RenameBenchmark(old_name, new_name)
+    elif option == 'q' or option == 'quit':
+      self.WriteDefaultsFile()
+
+    return (option == 'q' or option == 'quit' or option == 't' or
+            option == 'terminate')
+
+
+def Main():
+  defaults = TelemetryDefaults()
+  defaults.ReadDefaultsFile()
+  defaults.ShowOptions()
+  done = defaults.GetUserInput()
+  while not done:
+    done = defaults.GetUserInput()
+  return 0
+
+
+if __name__ == '__main__':
+  retval = Main()
+  sys.exit(retval)
diff --git a/user_activity_benchmarks/benchmark_metrics.py b/user_activity_benchmarks/benchmark_metrics.py
new file mode 100644
index 0000000..30ae31e
--- /dev/null
+++ b/user_activity_benchmarks/benchmark_metrics.py
@@ -0,0 +1,306 @@
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Computes the metrics for functions, Chrome OS components and benchmarks."""
+
+from collections import defaultdict
+
+
+def ComputeDistanceForFunction(child_functions_statistics_sample,
+                               child_functions_statistics_reference):
+  """Computes the distance metric for a function.
+
+  Args:
+    child_functions_statistics_sample: A dict that has as a key the name of a
+      function and as a value the inclusive count fraction. The keys are
+      the child functions of a sample parent function.
+    child_functions_statistics_reference: A dict that has as a key the name of
+      a function and as a value the inclusive count fraction. The keys are
+      the child functions of a reference parent function.
+
+  Returns:
+    A float value representing the sum of inclusive count fraction
+    differences of pairs of common child functions. If a child function is
+    present in a single data set, then we consider the missing inclusive
+    count fraction as 0. This value describes the difference in behaviour
+    between a sample and the reference parent function.
+  """
+  # We initialize the distance with a small value to avoid the further
+  # division by zero.
+  distance = 1.0
+
+  for child_function, inclusive_count_fraction_reference in \
+      child_functions_statistics_reference.iteritems():
+    inclusive_count_fraction_sample = 0.0
+
+    if child_function in child_functions_statistics_sample:
+      inclusive_count_fraction_sample = \
+          child_functions_statistics_sample[child_function]
+    distance += \
+        abs(inclusive_count_fraction_sample -
+            inclusive_count_fraction_reference)
+
+  for child_function, inclusive_count_fraction_sample in \
+      child_functions_statistics_sample.iteritems():
+    if child_function not in child_functions_statistics_reference:
+      distance += inclusive_count_fraction_sample
+
+  return distance
+
+
+def ComputeScoreForFunction(distance, reference_fraction, sample_fraction):
+  """Computes the score for a function.
+
+  Args:
+    distance: A float value representing the difference in behaviour between
+      the sample and the reference function.
+    reference_fraction: A float value representing the inclusive count
+      fraction of the reference function.
+    sample_fraction: A float value representing the inclusive count
+      fraction of the sample function.
+
+  Returns:
+    A float value representing the score of the function.
+  """
+  return reference_fraction * sample_fraction / distance
+
+
+def ComputeMetricsForComponents(cwp_function_groups, function_metrics):
+  """Computes the metrics for a set of Chrome OS components.
+
+  For every Chrome OS group, we compute the number of functions matching the
+  group, the cumulative and average score, the cumulative and average distance
+  of all those functions. A function matches a group if the path of the file
+  containing its definition contains the common path describing the group.
+
+  Args:
+    cwp_function_groups: A dict having as a key the name of the group and as a
+      value a common path describing the group.
+    function_metrics: A dict having as a key the name of the function and the
+      name of the file where it is declared concatenated by a ',', and as a
+      value a tuple containing the distance and the score metrics.
+
+  Returns:
+    A dict containing as a key the name of the group and as a value a tuple
+    with the group file path, the number of functions matching the group,
+    the cumulative and average score, cumulative and average distance of all
+    those functions.
+  """
+  function_groups_metrics = defaultdict(lambda: (0, 0.0, 0.0, 0.0, 0.0))
+
+  for function_key, metric in function_metrics.iteritems():
+    _, function_file = function_key.split(',')
+
+    for group, common_path in cwp_function_groups:
+      if common_path not in function_file:
+        continue
+
+      function_distance = metric[0]
+      function_score = metric[1]
+      group_statistic = function_groups_metrics[group]
+
+      function_count = group_statistic[1] + 1
+      function_distance_cum = function_distance + group_statistic[2]
+      function_distance_avg = function_distance_cum / float(function_count)
+      function_score_cum = function_score + group_statistic[4]
+      function_score_avg = function_score_cum / float(function_count)
+
+      function_groups_metrics[group] = \
+          (common_path,
+           function_count,
+           function_distance_cum,
+           function_distance_avg,
+           function_score_cum,
+           function_score_avg)
+      break
+
+  return function_groups_metrics
+
+
+def ComputeMetricsForBenchmark(function_metrics):
+  function_count = len(function_metrics.keys())
+  distance_cum = 0.0
+  distance_avg = 0.0
+  score_cum = 0.0
+  score_avg = 0.0
+
+  for distance, score in function_metrics.values():
+    distance_cum += distance
+    score_cum += score
+
+  distance_avg = distance_cum / float(function_count)
+  score_avg = score_cum / float(function_count)
+  return function_count, distance_cum, distance_avg, score_cum, score_avg
+
+
+def ComputeFunctionCountForBenchmarkSet(set_function_metrics, cwp_functions,
+                                        metric_string):
+  """Computes the function count metric pair for the benchmark set.
+
+     For the function count metric, we count the unique functions covered by the
+     set of benchmarks. We compute the fraction of unique functions out
+     of the amount of CWP functions given.
+
+     We compute also the same metric pair for every group from the keys of the
+     set_function_metrics dict.
+
+  Args:
+    set_function_metrics: A list of dicts having as a key the name of a group
+      and as value a list of functions that match the given group.
+    cwp_functions: A dict having as a key the name of the groups and as a value
+      the list of CWP functions that match an individual group.
+    metric_string: A tuple of strings that will be mapped to the tuple of metric
+      values in the returned function group dict. This is done for convenience
+      for the JSON output.
+
+  Returns:
+    A tuple with the metric pair and a dict with the group names and values
+    of the metric pair. The first value of the metric pair represents the
+    function count and the second value the function count fraction.
+    The dict has as a key the name of the group and as a value a dict that
+    maps the metric_string  to the values of the metric pair of the group.
+  """
+  cwp_functions_count = sum(len(functions)
+                            for functions in cwp_functions.itervalues())
+  set_groups_functions = defaultdict(set)
+  for benchmark_function_metrics in set_function_metrics:
+    for group_name in benchmark_function_metrics:
+      set_groups_functions[group_name] |= \
+          set(benchmark_function_metrics[group_name])
+
+  set_groups_functions_count = {}
+  set_functions_count = 0
+  for group_name, functions \
+      in set_groups_functions.iteritems():
+    set_group_functions_count = len(functions)
+    if group_name in cwp_functions:
+      set_groups_functions_count[group_name] = {
+          metric_string[0]: set_group_functions_count,
+          metric_string[1]:
+          set_group_functions_count / float(len(cwp_functions[group_name]))}
+    else:
+      set_groups_functions_count[group_name] = \
+          {metric_string[0]: set_group_functions_count, metric_string[1]: 0.0}
+    set_functions_count += set_group_functions_count
+
+  set_functions_count_fraction = \
+      set_functions_count / float(cwp_functions_count)
+  return (set_functions_count, set_functions_count_fraction), \
+      set_groups_functions_count
+
+
+def ComputeDistanceForBenchmarkSet(set_function_metrics, cwp_functions,
+                                   metric_string):
+  """Computes the distance variation metric pair for the benchmark set.
+
+     For the distance variation metric, we compute the sum of the distance
+     variations of the functions covered by a set of benchmarks.
+     We define the distance variation as the difference between the distance
+     value of a functions and the ideal distance value (1.0).
+     If a function appears in multiple common functions files, we consider
+     only the minimum value. We compute also the distance variation per
+     function.
+
+     In addition, we compute also the same metric pair for every group from
+     the keys of the set_function_metrics dict.
+
+  Args:
+    set_function_metrics: A list of dicts having as a key the name of a group
+      and as value a list of functions that match the given group.
+    cwp_functions: A dict having as a key the name of the groups and as a value
+      the list of CWP functions that match an individual group.
+    metric_string: A tuple of strings that will be mapped to the tuple of metric
+      values in the returned function group dict. This is done for convenience
+      for the JSON output.
+
+  Returns:
+    A tuple with the metric pair and a dict with the group names and values
+    of the metric pair. The first value of the metric pair represents the
+    distance variation per function and the second value the distance variation.
+    The dict has as a key the name of the group and as a value a dict that
+    maps the metric_string to the values of the metric pair of the group.
+  """
+  set_unique_functions = defaultdict(lambda: defaultdict(lambda: float('inf')))
+  set_function_count = 0
+  total_distance_variation = 0.0
+  for benchmark_function_metrics in set_function_metrics:
+    for group_name in benchmark_function_metrics:
+      for function_key, metrics in \
+          benchmark_function_metrics[group_name].iteritems():
+        previous_distance = \
+            set_unique_functions[group_name][function_key]
+        min_distance = min(metrics[0], previous_distance)
+        set_unique_functions[group_name][function_key] = min_distance
+  groups_distance_variations = defaultdict(lambda: (0.0, 0.0))
+  for group_name, functions_distances in set_unique_functions.iteritems():
+    group_function_count = len(functions_distances)
+    group_distance_variation = \
+        sum(functions_distances.itervalues()) - float(group_function_count)
+    total_distance_variation += group_distance_variation
+    set_function_count += group_function_count
+    groups_distance_variations[group_name] = \
+        {metric_string[0]:
+         group_distance_variation / float(group_function_count),
+         metric_string[1]: group_distance_variation}
+
+  return (total_distance_variation / set_function_count,
+          total_distance_variation), groups_distance_variations
+
+
+def ComputeScoreForBenchmarkSet(set_function_metrics, cwp_functions,
+                                metric_string):
+  """Computes the function count metric pair for the benchmark set.
+
+     For the score metric, we compute the sum of the scores of the functions
+     from a set of benchmarks. If a function appears in multiple common
+     functions files, we consider only the maximum value. We compute also the
+     fraction of this sum from the sum of all the scores of the functions from
+     the CWP data covering the given groups, in the ideal case (the ideal
+     score of a function is 1.0).
+
+     In addition, we compute the same metric pair for every group from the
+     keys of the set_function_metrics dict.
+
+  Args:
+    set_function_metrics: A list of dicts having as a key the name of a group
+      and as value a list of functions that match the given group.
+    cwp_functions: A dict having as a key the name of the groups and as a value
+      the list of CWP functions that match an individual group.
+    metric_string: A tuple of strings that will be mapped to the tuple of metric
+      values in the returned function group dict. This is done for convenience
+      for the JSON output.
+
+  Returns:
+    A tuple with the metric pair and a dict with the group names and values
+    of the metric pair. The first value of the pair is the fraction of the sum
+    of the scores from the ideal case and the second value represents the
+    sum of scores of the functions. The dict has as a key the name of the group
+    and as a value a dict that maps the metric_string to the values of the
+    metric pair of the group.
+  """
+  cwp_functions_count = sum(len(functions)
+                            for functions in cwp_functions.itervalues())
+  set_unique_functions = defaultdict(lambda: defaultdict(lambda: 0.0))
+  total_score = 0.0
+
+  for benchmark_function_metrics in set_function_metrics:
+    for group_name in benchmark_function_metrics:
+      for function_key, metrics in \
+          benchmark_function_metrics[group_name].iteritems():
+        previous_score = \
+            set_unique_functions[group_name][function_key]
+        max_score = max(metrics[1], previous_score)
+        set_unique_functions[group_name][function_key] = max_score
+
+  groups_scores = defaultdict(lambda: (0.0, 0.0))
+
+  for group_name, function_scores in set_unique_functions.iteritems():
+    group_function_count = float(len(cwp_functions[group_name]))
+    group_score = sum(function_scores.itervalues())
+    total_score += group_score
+    groups_scores[group_name] = {
+        metric_string[0]: group_score / group_function_count,
+        metric_string[1]: group_score
+    }
+
+  return (total_score / cwp_functions_count, total_score), groups_scores
diff --git a/user_activity_benchmarks/benchmark_metrics_experiment.py b/user_activity_benchmarks/benchmark_metrics_experiment.py
new file mode 100755
index 0000000..e8152e7
--- /dev/null
+++ b/user_activity_benchmarks/benchmark_metrics_experiment.py
@@ -0,0 +1,233 @@
+#!/usr/bin/python2
+#
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Runs an experiment with the benchmark metrics on a pair of CWP data sets.
+
+A data set should contain the files with the pairwise inclusive and the
+inclusive statistics. The pairwise inclusive file contains pairs of
+parent and child functions with their inclusive count fractions out of the
+total amount of inclusive count values and the files of the child functions.
+The inclusive file contains the functions with their inclusive count fraction
+out of the total amount of inclusive count values and the file name of the
+function. The input data should be collected using the scripts
+collect_experiment_data.sh or collect_experiment_data_odd_even_session.sh
+
+For every function, this script computes the distance and the score values.
+The output is stored in the file cwp_functions_statistics_file.
+
+For every Chrome OS component, this script computes a set of metrics consisting
+in the number of functions, the average and cumulative distance and score of
+the functions matching the group. The output is stored in the file
+cwp_function_groups_statistics_file.
+"""
+
+import argparse
+import sys
+
+import benchmark_metrics
+import utils
+
+
+class MetricsExperiment(object):
+  """Runs an experiment with the benchmark metrics on a pair of data sets."""
+
+  def __init__(self, cwp_pairwise_inclusive_reference,
+               cwp_pairwise_inclusive_test, cwp_inclusive_reference,
+               cwp_inclusive_test, cwp_function_groups_file,
+               cwp_function_groups_statistics_file,
+               cwp_function_statistics_file):
+    """Initializes the MetricsExperiment class.
+
+    Args:
+      cwp_pairwise_inclusive_reference: The CSV file containing the pairwise
+        inclusive values from the reference data set.
+      cwp_pairwise_inclusive_test: The CSV file containing the pairwise
+        inclusive values from the test data set.
+      cwp_inclusive_reference: The CSV file containing the inclusive values
+        from the reference data set.
+      cwp_inclusive_test: The CSV file containing the inclusive values from
+        the test data set.
+      cwp_function_groups_file: The CSV file containing the groups of functions.
+      cwp_function_groups_statistics_file: The output CSV file that will
+        contain the metrics for the function groups.
+      cwp_function_statistics_file: The output CSV file that will contain the
+        metrics for the CWP functions.
+    """
+    self._cwp_pairwise_inclusive_reference = cwp_pairwise_inclusive_reference
+    self._cwp_pairwise_inclusive_test = cwp_pairwise_inclusive_test
+    self._cwp_inclusive_reference = cwp_inclusive_reference
+    self._cwp_inclusive_test = cwp_inclusive_test
+    self._cwp_function_groups_file = cwp_function_groups_file
+    self._cwp_function_groups_statistics_file = \
+        cwp_function_groups_statistics_file
+    self._cwp_function_statistics_file = cwp_function_statistics_file
+
+  def PerformComputation(self):
+    """Does the benchmark metrics experimental computation.
+
+    For every function, it is computed a distance based on the sum of the
+    differences of the fractions spent in the child functions. Afterwards,
+    it is computed a score based on the inclusive values fractions and the
+    distance value. The statistics for all the function are written in the file
+    self._cwp_function_statistics_file.
+
+    The functions are grouped on Chrome OS components based on the path of the
+    file where a function is defined. For every group, there are computed the
+    total number of functions matching that group, the cumulative distance, the
+    average distance and the cumulative score of the functions.
+    """
+
+    inclusive_statistics_reference = \
+        utils.ParseCWPInclusiveCountFile(self._cwp_inclusive_reference)
+    inclusive_statistics_cum_reference = \
+        utils.ComputeCWPCummulativeInclusiveStatistics(
+            inclusive_statistics_reference)
+    inclusive_statistics_test = \
+        utils.ParseCWPInclusiveCountFile(self._cwp_inclusive_test)
+    inclusive_statistics_cum_test = \
+        utils.ComputeCWPCummulativeInclusiveStatistics(
+            inclusive_statistics_test)
+    pairwise_inclusive_statistics_reference = \
+        utils.ParseCWPPairwiseInclusiveCountFile(
+            self._cwp_pairwise_inclusive_reference)
+    pairwise_inclusive_fractions_reference = \
+        utils.ComputeCWPChildFunctionsFractions(
+            inclusive_statistics_cum_reference,
+            pairwise_inclusive_statistics_reference)
+    pairwise_inclusive_statistics_test = \
+        utils.ParseCWPPairwiseInclusiveCountFile(
+            self._cwp_pairwise_inclusive_test)
+    pairwise_inclusive_fractions_test = \
+        utils.ComputeCWPChildFunctionsFractions(
+            inclusive_statistics_cum_test,
+            pairwise_inclusive_statistics_test)
+    parent_function_statistics = {}
+
+    with open(self._cwp_function_groups_file) as input_file:
+      cwp_function_groups = utils.ParseFunctionGroups(input_file.readlines())
+
+    for parent_function_key, parent_function_statistics_test \
+        in inclusive_statistics_test.iteritems():
+      parent_function_name, _ = parent_function_key.split(',')
+      parent_function_fraction_test = parent_function_statistics_test[2]
+
+      parent_function_fraction_reference = \
+          inclusive_statistics_reference[parent_function_key][2]
+
+      child_functions_fractions_test = \
+          pairwise_inclusive_fractions_test.get(parent_function_name, {})
+
+      child_functions_fractions_reference = \
+          pairwise_inclusive_fractions_reference.get(parent_function_name, {})
+
+      distance = benchmark_metrics.ComputeDistanceForFunction(
+          child_functions_fractions_test, child_functions_fractions_reference)
+
+      parent_function_score_test = benchmark_metrics.ComputeScoreForFunction(
+          distance, parent_function_fraction_test,
+          parent_function_fraction_reference)
+
+      parent_function_statistics[parent_function_key] = \
+          (distance, parent_function_score_test)
+
+    with open(self._cwp_function_statistics_file, 'w') as output_file:
+      statistics_lines = ['function,file,distance,score']
+      statistics_lines += \
+          [','.join([parent_function_key.replace(';;', ','),
+                     str(statistic[0]),
+                     str(statistic[1])])
+           for parent_function_key, statistic
+           in parent_function_statistics.iteritems()]
+      output_file.write('\n'.join(statistics_lines))
+
+    cwp_groups_statistics_test = benchmark_metrics.ComputeMetricsForComponents(
+        cwp_function_groups, parent_function_statistics)
+
+    with open(self._cwp_function_groups_statistics_file, 'w') as output_file:
+      group_statistics_lines = \
+          ['group,file_path,function_count,distance_cum,distance_avg,score_cum,'
+           'score_avg']
+      group_statistics_lines += \
+          [','.join([group_name,
+                     str(statistic[0]),
+                     str(statistic[1]),
+                     str(statistic[2]),
+                     str(statistic[3]),
+                     str(statistic[4]),
+                     str(statistic[5])])
+           for group_name, statistic
+           in cwp_groups_statistics_test.iteritems()]
+      output_file.write('\n'.join(group_statistics_lines))
+
+
+def ParseArguments(arguments):
+  parser = argparse.ArgumentParser(
+      description='Runs an experiment with the benchmark metrics on a pair of '
+      'CWP data sets.')
+  parser.add_argument(
+      '--cwp_pairwise_inclusive_reference',
+      required=True,
+      help='The reference CSV file that will contain a pair of parent and '
+      'child functions with their inclusive count fractions out of the total '
+      'amount of inclusive count values.')
+  parser.add_argument(
+      '--cwp_pairwise_inclusive_test',
+      required=True,
+      help='The test CSV file that will contain a pair of parent and '
+      'child functions with their inclusive count fractions out of the total '
+      'amount of inclusive count values.')
+  parser.add_argument(
+      '--cwp_inclusive_reference',
+      required=True,
+      help='The reference CSV file that will contain a function with its '
+      'inclusive count fraction out of the total amount of inclusive count '
+      'values.')
+  parser.add_argument(
+      '--cwp_inclusive_test',
+      required=True,
+      help='The test CSV file that will contain a function with its '
+      'inclusive count fraction out of the total amount of inclusive count '
+      'values.')
+  parser.add_argument(
+      '-g',
+      '--cwp_function_groups_file',
+      required=True,
+      help='The file that will contain the CWP function groups.'
+      'A line consists in the group name and a file path. A group must '
+      'represent a ChromeOS component.')
+  parser.add_argument(
+      '-s',
+      '--cwp_function_groups_statistics_file',
+      required=True,
+      help='The output file that will contain the metric statistics for the '
+      'CWP function groups in CSV format. A line consists in the group name, '
+      'file path, number of functions matching the group, the total score '
+      'and distance values.')
+  parser.add_argument(
+      '-f',
+      '--cwp_function_statistics_file',
+      required=True,
+      help='The output file that will contain the metric statistics for the '
+      'CWP functions in CSV format. A line consists in the function name, file '
+      'name, cummulative distance, average distance, cummulative score and '
+      'average score values.')
+
+  options = parser.parse_args(arguments)
+  return options
+
+
+def Main(argv):
+  options = ParseArguments(argv)
+  metrics_experiment = MetricsExperiment(
+      options.cwp_pairwise_inclusive_reference,
+      options.cwp_pairwise_inclusive_test, options.cwp_inclusive_reference,
+      options.cwp_inclusive_test, options.cwp_function_groups_file,
+      options.cwp_function_groups_statistics_file,
+      options.cwp_function_statistics_file)
+  metrics_experiment.PerformComputation()
+
+
+if __name__ == '__main__':
+  Main(sys.argv[1:])
diff --git a/user_activity_benchmarks/benchmark_metrics_experiment_unittest.py b/user_activity_benchmarks/benchmark_metrics_experiment_unittest.py
new file mode 100755
index 0000000..c4755ef
--- /dev/null
+++ b/user_activity_benchmarks/benchmark_metrics_experiment_unittest.py
@@ -0,0 +1,79 @@
+#!/usr/bin/python2
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Unit tests for the benchmark_metrics_experiment module."""
+
+import os
+import tempfile
+import unittest
+
+from benchmark_metrics_experiment import MetricsExperiment
+
+
+class MetricsExperimentTest(unittest.TestCase):
+  """Test class for MetricsExperiment class."""
+
+  def __init__(self, *args, **kwargs):
+    super(MetricsExperimentTest, self).__init__(*args, **kwargs)
+    self._pairwise_inclusive_count_test_file = \
+        'testdata/input/pairwise_inclusive_count_test.csv'
+    self._pairwise_inclusive_count_reference_file = \
+        'testdata/input/pairwise_inclusive_count_reference.csv'
+    self._inclusive_count_test_file = \
+        'testdata/input/inclusive_count_test.csv'
+    self._inclusive_count_reference_file = \
+        'testdata/input/inclusive_count_reference.csv'
+    self._cwp_function_groups_file = \
+        'testdata/input/cwp_function_groups.txt'
+
+  def _CheckFileContents(self, file_name, expected_content_lines):
+    with open(file_name) as input_file:
+      result_content_lines = input_file.readlines()
+      self.assertListEqual(expected_content_lines, result_content_lines)
+
+  def testExperiment(self):
+    group_statistics_file, group_statistics_filename = tempfile.mkstemp()
+
+    os.close(group_statistics_file)
+
+    function_statistics_file, function_statistics_filename = tempfile.mkstemp()
+
+    os.close(function_statistics_file)
+
+
+    expected_group_statistics_lines = \
+        ['group,file_path,function_count,distance_cum,distance_avg,score_cum,'
+         'score_avg\n',
+         'ab,/a/b,2.0,3.01,1.505,8.26344228895,4.13172114448\n',
+         'e,/e,2.0,2.0,1.0,27.5,13.75\n',
+         'cd,/c/d,2.0,2.0,1.0,27.5,13.75']
+    expected_function_statistics_lines = \
+        ['function,file,distance,score\n',
+         'func_i,/c/d/file_i,1.0,17.6\n',
+         'func_j,/e/file_j,1.0,27.5\n',
+         'func_f,/a/b/file_f,1.59,1.4465408805\n',
+         'func_h,/c/d/file_h,1.0,9.9\n',
+         'func_k,/e/file_k,1.0,0.0\n',
+         'func_g,/a/b/file_g,1.42,6.81690140845']
+    metric_experiment = \
+        MetricsExperiment(self._pairwise_inclusive_count_reference_file,
+                          self._pairwise_inclusive_count_test_file,
+                          self._inclusive_count_reference_file,
+                          self._inclusive_count_test_file,
+                          self._cwp_function_groups_file,
+                          group_statistics_filename,
+                          function_statistics_filename)
+
+    metric_experiment.PerformComputation()
+    self._CheckFileContents(group_statistics_filename,
+                            expected_group_statistics_lines)
+    self._CheckFileContents(function_statistics_filename,
+                            expected_function_statistics_lines)
+    os.remove(group_statistics_filename)
+    os.remove(function_statistics_filename)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/user_activity_benchmarks/benchmark_metrics_unittest.py b/user_activity_benchmarks/benchmark_metrics_unittest.py
new file mode 100755
index 0000000..a48361f
--- /dev/null
+++ b/user_activity_benchmarks/benchmark_metrics_unittest.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python2
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Unit tests for the benchmark_metrics module."""
+
+import mock
+import unittest
+import benchmark_metrics
+
+
+class MetricsComputationTest(unittest.TestCase):
+  """Test class for MetricsComputation class."""
+
+  def __init__(self, *args, **kwargs):
+    super(MetricsComputationTest, self).__init__(*args, **kwargs)
+
+  def testComputeDistanceForFunction(self):
+    child_functions_statistics_sample = {
+        'f,file_f': 0.1,
+        'g,file_g': 0.2,
+        'h,file_h': 0.3,
+        'i,file_i': 0.4
+    }
+    child_functions_statistics_reference = {
+        'f,file_f': 0.4,
+        'i,file_i': 0.4,
+        'h,file_h2': 0.2
+    }
+    distance = benchmark_metrics.ComputeDistanceForFunction(
+        child_functions_statistics_sample, child_functions_statistics_reference)
+    self.assertEqual(distance, 2.0)
+
+    distance = benchmark_metrics.ComputeDistanceForFunction({}, {})
+    self.assertEqual(distance, 1.0)
+
+    distance = benchmark_metrics.ComputeDistanceForFunction(
+        child_functions_statistics_sample, {})
+    self.assertEqual(distance, 2.0)
+
+    distance = benchmark_metrics.ComputeDistanceForFunction(
+        {}, child_functions_statistics_reference)
+    self.assertEqual(distance, 2.0)
+
+  def testComputeScoreForFunction(self):
+    score = benchmark_metrics.ComputeScoreForFunction(1.2, 0.3, 0.4)
+    self.assertEqual(score, 0.1)
+
+  def testComputeMetricsForComponents(self):
+    function_metrics = {
+        'func_f,/a/b/file_f': (1.0, 2.3),
+        'func_g,/a/b/file_g': (1.1, 1.5),
+        'func_h,/c/d/file_h': (2.0, 1.7),
+        'func_i,/c/d/file_i': (1.9, 1.8),
+        'func_j,/c/d/file_j': (1.8, 1.9),
+        'func_k,/e/file_k': (1.2, 2.1),
+        'func_l,/e/file_l': (1.3, 3.1)
+    }
+    cwp_function_groups = [('ab', '/a/b'), ('cd', '/c/d'), ('e', '/e')]
+    expected_metrics = {'ab': ('/a/b', 2.0, 2.1, 1.05, 3.8, 1.9),
+                        'e': ('/e', 2.0, 2.5, 1.25, 5.2, 2.6),
+                        'cd': ('/c/d', 3.0, 5.7, 1.9000000000000001, 5.4, 1.8)}
+    result_metrics = benchmark_metrics.ComputeMetricsForComponents(
+        cwp_function_groups, function_metrics)
+
+    self.assertDictEqual(expected_metrics, result_metrics)
+
+  def testComputeMetricsForBenchmark(self):
+    function_metrics = {'func_f': (1.0, 2.0),
+                        'func_g': (1.1, 2.1),
+                        'func_h': (1.2, 2.2),
+                        'func_i': (1.3, 2.3)}
+    expected_benchmark_metrics = \
+        (4, 4.6000000000000005, 1.1500000000000001, 8.6, 2.15)
+    result_benchmark_metrics = \
+        benchmark_metrics.ComputeMetricsForBenchmark(function_metrics)
+
+    self.assertEqual(expected_benchmark_metrics, result_benchmark_metrics)
+
+  def testComputeMetricsForBenchmarkSet(self):
+    """TODO(evelinad): Add unit test for ComputeMetricsForBenchmarkSet."""
+    pass
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/user_activity_benchmarks/collect_experiment_data.sh b/user_activity_benchmarks/collect_experiment_data.sh
new file mode 100755
index 0000000..a76cec8
--- /dev/null
+++ b/user_activity_benchmarks/collect_experiment_data.sh
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# Uses Dremel queries to collect the inclusive and pairwise inclusive
+# statistics.
+
+set -e
+
+if [ "$#" -ne 7 ]; then
+  echo "USAGE: collect_experiment_data.sh cwp_table board board_arch " \
+  "Chrome_version Chrome_OS_version inclusive_output_file " \
+  "pairwise_inclusive_output_file"
+  exit 1
+fi
+
+readonly TABLE=$1
+readonly INCLUSIVE_OUTPUT_FILE=$6
+readonly PAIRWISE_INCLUSIVE_OUTPUT_FILE=$7
+readonly PERIODIC_COLLECTION=1
+readonly WHERE_CLAUSE_SPECIFICATIONS="meta.cros.board = '$2' AND  \
+  meta.cros.cpu_architecture = '$3' AND  \
+  meta.cros.chrome_version LIKE '%$4%' AND  \
+  meta.cros.version = '$5' AND \
+  meta.cros.collection_info.trigger_event = $PERIODIC_COLLECTION AND \
+  session.total_count > 2000"
+
+# Collects the function, with its file, the object and inclusive count
+# fraction out of the total amount of inclusive count values.
+echo "
+SELECT
+  replace(frame.function_name, \", \", \"; \") AS function,
+  frame.filename AS file,
+  frame.load_module_path AS dso,
+  SUM(frame.inclusive_count) AS inclusive_count,
+  SUM(frame.inclusive_count)/ANY_VALUE(total.value) AS inclusive_count_fraction
+FROM
+  $TABLE table,
+  table.frame frame
+CROSS JOIN (
+  SELECT
+    SUM(count) AS value
+  FROM
+    $TABLE
+  WHERE
+    $WHERE_CLAUSE_SPECIFICATIONS
+) AS total
+WHERE
+  $WHERE_CLAUSE_SPECIFICATIONS
+GROUP BY
+  function,
+  file,
+  dso
+HAVING
+  inclusive_count_fraction > 0.0
+ORDER BY
+  inclusive_count_fraction DESC;
+" | dremel  --sql_dialect=GoogleSQL --min_completion_ratio=1.0 --output=csv \
+  > "$INCLUSIVE_OUTPUT_FILE"
+
+# Collects the pair of parent and child functions, with the file and object
+# where the child function is declared and the inclusive count fraction of the
+# pair out of the total amount of inclusive count values.
+echo "
+SELECT
+  CONCAT(replace(frame.parent_function_name, \", \", \"; \"), \";;\",
+    replace(frame.function_name, \", \", \"; \")) AS parent_child_functions,
+  frame.filename AS child_function_file,
+  frame.load_module_path AS child_function_dso,
+  SUM(frame.inclusive_count)/ANY_VALUE(total.value) AS inclusive_count
+FROM
+  $TABLE table,
+  table.frame frame
+CROSS JOIN (
+  SELECT
+    SUM(count) AS value
+  FROM $TABLE
+  WHERE
+    $WHERE_CLAUSE_SPECIFICATIONS
+) AS total
+WHERE
+  $WHERE_CLAUSE_SPECIFICATIONS
+GROUP BY
+  parent_child_functions,
+  child_function_file,
+  child_function_dso
+HAVING
+  inclusive_count > 0.0
+ORDER BY
+  inclusive_count DESC;
+" | dremel --sql_dialect=GoogleSQL --min_completion_ratio=1.0 --output=csv > \
+  "$PAIRWISE_INCLUSIVE_OUTPUT_FILE"
diff --git a/user_activity_benchmarks/collect_experiment_data_odd_even_session.sh b/user_activity_benchmarks/collect_experiment_data_odd_even_session.sh
new file mode 100755
index 0000000..900e582
--- /dev/null
+++ b/user_activity_benchmarks/collect_experiment_data_odd_even_session.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# Uses Dremel queries to collect the inclusive and pairwise inclusive statistics
+# for odd/even profile collection session ids.
+# The data is collected for an odd or even collection session id.
+
+set -e
+
+if [ $# -lt 8 ]; then
+  echo "Usage: collect_experiment_data_odd_even_session.sh cwp_table board " \
+    "board_arch Chrome_version Chrome_OS_version odd_even " \
+    "inclusive_output_file pairwise_inclusive_output_file"
+  exit 1
+fi
+
+readonly TABLE=$1
+readonly INCLUSIVE_OUTPUT_FILE=$7
+readonly PAIRWISE_INCLUSIVE_OUTPUT_FILE=$8
+readonly PERIODIC_COLLECTION=1
+WHERE_CLAUSE_SPECIFICATIONS="meta.cros.board = '$2' AND \
+  meta.cros.cpu_architecture = '$3' AND \
+  meta.cros.chrome_version LIKE '%$4%' AND \
+  meta.cros.version = '$5' AND \
+  meta.cros.collection_info.trigger_event = $PERIODIC_COLLECTION AND \
+  MOD(session.id, 2) = $6 AND \
+  session.total_count > 2000"
+
+# Collects the function, with its file, the object and inclusive count
+# fraction out of the total amount of inclusive count values.
+echo "
+SELECT
+  replace(frame.function_name, \", \", \"; \") AS function,
+  frame.filename AS file,
+  frame.load_module_path AS dso,
+  SUM(frame.inclusive_count) AS inclusive_count,
+  SUM(frame.inclusive_count)/ANY_VALUE(total.value) AS inclusive_count_fraction
+FROM
+  $TABLE table,
+  table.frame frame
+CROSS JOIN (
+  SELECT
+    SUM(count) AS value
+  FROM $TABLE
+  WHERE
+    $WHERE_CLAUSE_SPECIFICATIONS
+) AS total
+WHERE
+    $WHERE_CLAUSE_SPECIFICATIONS
+GROUP BY
+  function,
+  file,
+  dso
+HAVING
+  inclusive_count_fraction > 0.0
+ORDER BY
+  inclusive_count_fraction DESC;
+" | dremel --sql_dialect=GoogleSQL --min_completion_ratio=1.0 --output=csv > \
+  "$INCLUSIVE_OUTPUT_FILE"
+
+# Collects the pair of parent and child functions, with the file and object
+# where the child function is declared and the inclusive count fraction of the
+# pair out of the total amount of inclusive count values.
+echo "
+SELECT
+  CONCAT(replace(frame.parent_function_name, \", \", \"; \"), \";;\",
+    replace(frame.function_name, \", \", \"; \")) AS parent_child_functions,
+  frame.filename AS child_function_file,
+  frame.load_module_path AS child_function_dso,
+  SUM(frame.inclusive_count)/ANY_VALUE(total.value) AS inclusive_count
+FROM
+  $TABLE table,
+  table.frame frame
+CROSS JOIN (
+  SELECT
+    SUM(count) AS value
+  FROM
+    $TABLE
+  WHERE
+    $WHERE_CLAUSE_SPECIFICATIONS
+) AS total
+WHERE
+  $WHERE_CLAUSE_SPECIFICATIONS
+GROUP BY
+  parent_child_functions,
+  child_function_file,
+  child_function_dso
+HAVING
+  inclusive_count > 0.0
+ORDER BY
+  inclusive_count DESC;
+" | dremel --sql_dialect=GoogleSQL --min_completion_ratio=1.0 --output=csv > \
+  "$PAIRWISE_INCLUSIVE_OUTPUT_FILE"
diff --git a/user_activity_benchmarks/collect_pprof_data.sh b/user_activity_benchmarks/collect_pprof_data.sh
new file mode 100755
index 0000000..5b89f18
--- /dev/null
+++ b/user_activity_benchmarks/collect_pprof_data.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# Collects the pprof tree and top outputs.
+# All the local_cwp symbolized profiles are taken from the
+# local_cwp_results_path.
+# The pprof top output is stored in the pprof_top_results_path and the pprof
+# tree output is stored in the pprof_tree_results_path.
+
+set -e
+
+if [ "$#" -ne 3 ]; then
+  echo "USAGE: collect_pprof_data.sh local_cwp_results_path " \
+    "pprof_top_results_path pprof_tree_results_path"
+  exit 1
+fi
+
+readonly LOCAL_CWP_RESULTS_PATH=$1
+readonly PPROF_TOP_RESULTS_PATH=$2
+readonly PPROF_TREE_RESULTS_PATH=$3
+readonly SYMBOLIZED_PROFILES=`ls $LOCAL_CWP_RESULTS_PATH`
+
+for symbolized_profile in "${SYMBOLIZED_PROFILES[@]}"
+do
+  pprof --top "$LOCAL_CWP_RESULTS_PATH/${symbolized_profile}" > \
+    "$PPROF_TOP_RESULTS_PATH/${symbolized_profile}.pprof"
+  if [ $? -ne 0 ]; then
+    echo "Failed to extract the pprof top output for the $symbolized_profile."
+    continue
+  fi
+
+  pprof --tree "$LOCAL_CWP_RESULTS_PATH/${symbolized_profile}" > \
+    "$PPROF_TREE_RESULTS_PATH/${symbolized_profile}.pprof"
+  if [ $? -ne 0 ]; then
+    echo "Failed to extract the pprof tree output for the " \
+      "$symbolized_profile."
+    continue
+  fi
+done
diff --git a/user_activity_benchmarks/collect_telemetry_profiles.sh b/user_activity_benchmarks/collect_telemetry_profiles.sh
new file mode 100755
index 0000000..0583adc
--- /dev/null
+++ b/user_activity_benchmarks/collect_telemetry_profiles.sh
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# Runs the Telemetry benchmarks with AutoTest and collects their perf profiles.
+# Reads the benchmark names from the telemetry_benchmark_file. Each benchmark
+# should be placed on a separate line.
+# The profile results are placed in the results_path.
+
+set -e
+
+if [ "$#" -ne 5 ]; then
+  echo "USAGE: collect_telemetry_profiles.sh board chrome_root_path " \
+  "machine_ip results_path telemetry_benchmarks_file"
+  exit 1
+fi
+
+# CHROME_ROOT should contain the path with the source of Chrome. This is used by
+# AutoTest.
+export CHROME_ROOT=$2
+
+readonly BOARD=$1
+readonly IP=$3
+readonly RESULTS_PATH=$4
+readonly TELEMETRY_BENCHMARKS_FILE=$5
+
+# The following Telemetry benchmarks failed for the R52-8350.68.0 Chrome OS
+# version: page_cycler_v2.top_10_mobile,
+# page_cycler_v2.basic_oopif, smoothness.tough_filters_cases,
+# page_cycler_v2.intl_hi_ru,
+# image_decoding.image_decoding_measurement, system_health.memory_mobile,
+# memory.top_7_stress, smoothness.tough_path_rendering_cases,
+# page_cycler_v2.tough_layout_cases,
+# memory.long_running_idle_gmail_background_tbmv2, smoothness.tough_webgl_cases,
+# smoothness.tough_canvas_cases, smoothness.tough_texture_upload_cases,
+# top_10_mobile_memory_ignition, startup.large_profile.cold.blank_page,
+# page_cycler_v2.intl_ar_fa_he, start_with_ext.cold.blank_page,
+# start_with_ext.warm.blank_page, page_cycler_v2.intl_ko_th_vi,
+# smoothness.scrolling_tough_ad_case, page_cycler_v2_site_isolation.basic_oopif,
+# smoothness.tough_scrolling_cases, startup.large_profile.warm.blank_page,
+# page_cycler_v2.intl_es_fr_pt-BR, page_cycler_v2.intl_ja_zh,
+# memory.long_running_idle_gmail_tbmv2, smoothness.scrolling_tough_ad_cases,
+# page_cycler_v2.typical_25, smoothness.tough_webgl_ad_cases,
+# smoothness.tough_image_decode_cases.
+#
+# However, we did not manage to collect the profiles only from the following
+# benchmarks: smoothness.tough_filters_cases,
+# smoothness.tough_path_rendering_cases, page_cycler_v2.tough_layout_cases,
+# smoothness.tough_webgl_cases, smoothness.tough_canvas_cases,
+# smoothness.tough_texture_upload_cases, smoothness.tough_scrolling_cases,
+# smoothness.tough_webgl_ad_cases, smoothness.tough_image_decode_cases.
+#
+# Use ./run_benchmark --browser=cros-chrome --remote=$IP list to get the list of
+# Telemetry benchmarks.
+readonly LATEST_PERF_PROFILE=/tmp/test_that_latest/results-1-telemetry_Crosperf/telemetry_Crosperf/profiling/perf.data
+
+while read benchmark
+do
+  # TODO(evelinad): We should add -F 4000000 to the list of profiler_args
+  # arguments because we need to use the same sampling period as the one used
+  # to collect the CWP user data (4M number of cycles for cycles.callgraph).
+  test_that --debug  --board=${BOARD} --args=" profiler=custom_perf \
+    profiler_args='record -g -a -e cycles,instructions' \
+    run_local=False test=$benchmark " $IP telemetry_Crosperf
+  if [ $? -ne 0 ]; then
+    echo "Failed to run the $benchmark telemetry benchmark with Autotest."
+    continue
+  fi
+  echo "Warning: Sampling period is too high. It should be set to 4M samples."
+
+  cp "$LATEST_PERF_PROFILE" "$RESULTS_PATH/${benchmark}.data"
+  if [ $? -ne 0 ]; then
+    echo "Failed to move the perf profile file from $LATEST_PERF_PROFILE to " \
+      "$PERF_DATA_RESULTS_PATH/${benchmark}.data for the $benchmark " \
+      "telemetry benchmark."
+    continue
+  fi
+
+  # The ssh connection should be configured without password. We need to do
+  # this step because we might run out of disk space if we run multiple
+  # benchmarks.
+  ssh root@$IP "rm -rf /usr/local/profilers/*"
+  if [ $? -ne 0 ]; then
+    echo "Failed to remove the output files from /usr/local/profilers/ for " \
+      "the $benchmark telemetry benchmark."
+    continue
+  fi
+done < $TELEMETRY_BENCHMARKS_FILE
+
diff --git a/user_activity_benchmarks/cwp_hot_functions_groups.txt b/user_activity_benchmarks/cwp_hot_functions_groups.txt
new file mode 100644
index 0000000..3a1f893
--- /dev/null
+++ b/user_activity_benchmarks/cwp_hot_functions_groups.txt
@@ -0,0 +1,314 @@
+third_party_accessibility_audit home/chrome-bot/chrome_root/src/third_party/accessibility-audit
+third_party_accessibility_test_framework home/chrome-bot/chrome_root/src/third_party/accessibility_test_framework
+third_party_adobe home/chrome-bot/chrome_root/src/third_party/adobe
+third_party_afl home/chrome-bot/chrome_root/src/third_party/afl
+third_party_analytics home/chrome-bot/chrome_root/src/third_party/analytics
+third_party_android_async_task home/chrome-bot/chrome_root/src/third_party/android_async_task
+third_party_android_crazy_linker home/chrome-bot/chrome_root/src/third_party/android_crazy_linker
+third_party_android_data_chart home/chrome-bot/chrome_root/src/third_party/android_data_chart
+third_party_android_media home/chrome-bot/chrome_root/src/third_party/android_media
+third_party_android_opengl home/chrome-bot/chrome_root/src/third_party/android_opengl
+third_party_android_platform home/chrome-bot/chrome_root/src/third_party/android_platform
+third_party_android_protobuf home/chrome-bot/chrome_root/src/third_party/android_protobuf
+third_party_android_support_test_runner home/chrome-bot/chrome_root/src/third_party/android_support_test_runner
+third_party_android_swipe_refresh home/chrome-bot/chrome_root/src/third_party/android_swipe_refresh
+third_party_angle home/chrome-bot/chrome_root/src/third_party/angle
+third_party_apache-portable-runtime home/chrome-bot/chrome_root/src/third_party/apache-portable-runtime
+third_party_apache_velocity home/chrome-bot/chrome_root/src/third_party/apache_velocity
+third_party_apache-win32 home/chrome-bot/chrome_root/src/third_party/apache-win32
+third_party_apple_apsl home/chrome-bot/chrome_root/src/third_party/apple_apsl
+third_party_apple_sample_code home/chrome-bot/chrome_root/src/third_party/apple_sample_code
+third_party_appurify-python home/chrome-bot/chrome_root/src/third_party/appurify-python
+third_party_ashmem home/chrome-bot/chrome_root/src/third_party/ashmem
+third_party_bidichecker home/chrome-bot/chrome_root/src/third_party/bidichecker
+third_party_bintrees home/chrome-bot/chrome_root/src/third_party/bintrees
+third_party_binutils home/chrome-bot/chrome_root/src/third_party/binutils
+third_party_blanketjs home/chrome-bot/chrome_root/src/third_party/blanketjs
+third_party_blimp_fonts home/chrome-bot/chrome_root/src/third_party/blimp_fonts
+third_party_boringssl home/chrome-bot/chrome_root/src/third_party/boringssl
+third_party_boringssl home/chrome-bot/chrome_root/src/third_party/boringssl/
+third_party_bouncycastle home/chrome-bot/chrome_root/src/third_party/bouncycastle
+third_party_brotli home/chrome-bot/chrome_root/src/third_party/brotli
+third_party_bspatch home/chrome-bot/chrome_root/src/third_party/bspatch
+third_party_cacheinvalidation home/chrome-bot/chrome_root/src/third_party/cacheinvalidation
+third_party_cardboard-java home/chrome-bot/chrome_root/src/third_party/cardboard-java
+third_party_catapult home/chrome-bot/chrome_root/src/third_party/catapult
+third_party_ced home/chrome-bot/chrome_root/src/third_party/ced
+third_party_chaijs home/chrome-bot/chrome_root/src/third_party/chaijs
+third_party_checkstyle home/chrome-bot/chrome_root/src/third_party/checkstyle
+third_party_chromite home/chrome-bot/chrome_root/src/third_party/chromite
+third_party_class-dump home/chrome-bot/chrome_root/src/third_party/class-dump
+third_party_cld_2 home/chrome-bot/chrome_root/src/third_party/cld_2
+third_party_cld_3 home/chrome-bot/chrome_root/src/third_party/cld_3
+third_party_closure_compiler home/chrome-bot/chrome_root/src/third_party/closure_compiler
+third_party_closure_linter home/chrome-bot/chrome_root/src/third_party/closure_linter
+third_party_codesighs home/chrome-bot/chrome_root/src/third_party/codesighs
+third_party_colorama home/chrome-bot/chrome_root/src/third_party/colorama
+third_party_crashpad home/chrome-bot/chrome_root/src/third_party/crashpad
+third_party_cros_system_api home/chrome-bot/chrome_root/src/third_party/cros_system_api
+third_party_custom_tabs_client home/chrome-bot/chrome_root/src/third_party/custom_tabs_client
+third_party_cython home/chrome-bot/chrome_root/src/third_party/cython
+third_party_d3 home/chrome-bot/chrome_root/src/third_party/d3
+third_party_decklink home/chrome-bot/chrome_root/src/third_party/decklink
+third_party_deqp home/chrome-bot/chrome_root/src/third_party/deqp
+third_party_devscripts home/chrome-bot/chrome_root/src/third_party/devscripts
+third_party_dom_distiller_js home/chrome-bot/chrome_root/src/third_party/dom_distiller_js
+third_party_drmemory home/chrome-bot/chrome_root/src/third_party/drmemory
+third_party_elfutils home/chrome-bot/chrome_root/src/third_party/elfutils
+third_party_errorprone home/chrome-bot/chrome_root/src/third_party/errorprone
+third_party_espresso home/chrome-bot/chrome_root/src/third_party/espresso
+third_party_expat home/chrome-bot/chrome_root/src/third_party/expat
+third_party_ffmpeg home/chrome-bot/chrome_root/src/third_party/ffmpeg
+third_party_fips181 home/chrome-bot/chrome_root/src/third_party/fips181
+third_party_flac home/chrome-bot/chrome_root/src/third_party/flac
+third_party_flatbuffers home/chrome-bot/chrome_root/src/third_party/flatbuffers
+third_party_flot home/chrome-bot/chrome_root/src/third_party/flot
+third_party_fontconfig home/chrome-bot/chrome_root/src/third_party/fontconfig
+third_party_freetype2 home/chrome-bot/chrome_root/src/third_party/freetype2
+third_party_freetype-android home/chrome-bot/chrome_root/src/third_party/freetype-android
+third_party_fuzzymatch home/chrome-bot/chrome_root/src/third_party/fuzzymatch
+third_party_gardiner_mod home/chrome-bot/chrome_root/src/third_party/gardiner_mod
+third_party_gif_player home/chrome-bot/chrome_root/src/third_party/gif_player
+third_party_gles2_conform home/chrome-bot/chrome_root/src/third_party/gles2_conform
+third_party_glslang home/chrome-bot/chrome_root/src/third_party/glslang
+third_party_google_appengine_cloudstorage home/chrome-bot/chrome_root/src/third_party/google_appengine_cloudstorage
+third_party_google_input_tools home/chrome-bot/chrome_root/src/third_party/google_input_tools
+third_party_google_toolbox_for_mac home/chrome-bot/chrome_root/src/third_party/google_toolbox_for_mac
+third_party_grpc home/chrome-bot/chrome_root/src/third_party/grpc
+third_party_guava home/chrome-bot/chrome_root/src/third_party/guava
+third_party_haha home/chrome-bot/chrome_root/src/third_party/haha
+third_party_hamcrest home/chrome-bot/chrome_root/src/third_party/hamcrest
+third_party_harfbuzz-ng home/chrome-bot/chrome_root/src/third_party/harfbuzz-ng
+third_party_hunspell home/chrome-bot/chrome_root/src/third_party/hunspell
+third_party_hunspell_dictionaries home/chrome-bot/chrome_root/src/third_party/hunspell_dictionaries
+third_party_hwcplus home/chrome-bot/chrome_root/src/third_party/hwcplus
+third_party_iaccessible2 home/chrome-bot/chrome_root/src/third_party/iaccessible2
+third_party_iccjpeg home/chrome-bot/chrome_root/src/third_party/iccjpeg
+third_party_icu home/chrome-bot/chrome_root/src/third_party/icu
+third_party_icu4j home/chrome-bot/chrome_root/src/third_party/icu4j
+third_party_ijar home/chrome-bot/chrome_root/src/third_party/ijar
+third_party_instrumented_libraries home/chrome-bot/chrome_root/src/third_party/instrumented_libraries
+third_party_intellij home/chrome-bot/chrome_root/src/third_party/intellij
+third_party_isimpledom home/chrome-bot/chrome_root/src/third_party/isimpledom
+third_party_javax_inject home/chrome-bot/chrome_root/src/third_party/javax_inject
+third_party_jinja2 home/chrome-bot/chrome_root/src/third_party/jinja2
+third_party_jmake home/chrome-bot/chrome_root/src/third_party/jmake
+third_party_jsoncpp home/chrome-bot/chrome_root/src/third_party/jsoncpp
+third_party_jsr-305 home/chrome-bot/chrome_root/src/third_party/jsr-305
+third_party_jstemplate home/chrome-bot/chrome_root/src/third_party/jstemplate
+third_party_junit home/chrome-bot/chrome_root/src/third_party/junit
+third_party_kasko home/chrome-bot/chrome_root/src/third_party/kasko
+third_party_khronos home/chrome-bot/chrome_root/src/third_party/khronos
+third_party_khronos_glcts home/chrome-bot/chrome_root/src/third_party/khronos_glcts
+third_party_lcov home/chrome-bot/chrome_root/src/third_party/lcov
+third_party_leakcanary home/chrome-bot/chrome_root/src/third_party/leakcanary
+third_party_leveldatabase home/chrome-bot/chrome_root/src/third_party/leveldatabase
+third_party_libaddressinput home/chrome-bot/chrome_root/src/third_party/libaddressinput
+third_party_libc++-static home/chrome-bot/chrome_root/src/third_party/libc++-static
+third_party_libFuzzer home/chrome-bot/chrome_root/src/third_party/libFuzzer
+third_party_libjingle home/chrome-bot/chrome_root/src/third_party/libjingle
+third_party_libjpeg home/chrome-bot/chrome_root/src/third_party/libjpeg
+third_party_libjpeg_turbo home/chrome-bot/chrome_root/src/third_party/libjpeg_turbo
+third_party_liblouis home/chrome-bot/chrome_root/src/third_party/liblouis
+third_party_libphonenumber home/chrome-bot/chrome_root/src/third_party/libphonenumber
+third_party_libpng home/chrome-bot/chrome_root/src/third_party/libpng
+third_party_libsecret home/chrome-bot/chrome_root/src/third_party/libsecret
+third_party_libsrtp home/chrome-bot/chrome_root/src/third_party/libsrtp
+third_party_libsync home/chrome-bot/chrome_root/src/third_party/libsync
+third_party_libudev home/chrome-bot/chrome_root/src/third_party/libudev
+third_party_libusb home/chrome-bot/chrome_root/src/third_party/libusb
+third_party_libva home/chrome-bot/chrome_root/src/third_party/libva
+third_party_libvpx home/chrome-bot/chrome_root/src/third_party/libvpx
+third_party_libwebm home/chrome-bot/chrome_root/src/third_party/libwebm
+third_party_libwebp home/chrome-bot/chrome_root/src/third_party/libwebp
+third_party_libxml home/chrome-bot/chrome_root/src/third_party/libxml
+third_party_libXNVCtrl home/chrome-bot/chrome_root/src/third_party/libXNVCtrl
+third_party_libxslt home/chrome-bot/chrome_root/src/third_party/libxslt
+third_party_libyuv home/chrome-bot/chrome_root/src/third_party/libyuv
+third_party_llvm-build home/chrome-bot/chrome_root/src/third_party/llvm-build
+third_party_logilab home/chrome-bot/chrome_root/src/third_party/logilab
+third_party_lss home/chrome-bot/chrome_root/src/third_party/lss
+third_party_lzma_sdk home/chrome-bot/chrome_root/src/third_party/lzma_sdk
+third_party_mach_override home/chrome-bot/chrome_root/src/third_party/mach_override
+third_party_markdown home/chrome-bot/chrome_root/src/third_party/markdown
+third_party_markupsafe home/chrome-bot/chrome_root/src/third_party/markupsafe
+third_party_mesa home/chrome-bot/chrome_root/src/third_party/mesa
+third_party_minigbm home/chrome-bot/chrome_root/src/third_party/minigbm
+third_party_mocha home/chrome-bot/chrome_root/src/third_party/mocha
+third_party_mockito home/chrome-bot/chrome_root/src/third_party/mockito
+third_party_modp_b64 home/chrome-bot/chrome_root/src/third_party/modp_b64
+third_party_molokocacao home/chrome-bot/chrome_root/src/third_party/molokocacao
+third_party_motemplate home/chrome-bot/chrome_root/src/third_party/motemplate
+third_party_mozilla home/chrome-bot/chrome_root/src/third_party/mozilla
+third_party_mt19937ar home/chrome-bot/chrome_root/src/third_party/mt19937ar
+third_party_netty4 home/chrome-bot/chrome_root/src/third_party/netty4
+third_party_netty-tcnative home/chrome-bot/chrome_root/src/third_party/netty-tcnative
+third_party_ocmock home/chrome-bot/chrome_root/src/third_party/ocmock
+third_party_openh264 home/chrome-bot/chrome_root/src/third_party/openh264
+third_party_openmax_dl home/chrome-bot/chrome_root/src/third_party/openmax_dl
+third_party_opus home/chrome-bot/chrome_root/src/third_party/opus
+third_party_ots home/chrome-bot/chrome_root/src/third_party/ots
+third_party_ow2_asm home/chrome-bot/chrome_root/src/third_party/ow2_asm
+third_party_pdfium home/chrome-bot/chrome_root/src/third_party/pdfium
+third_party_pexpect home/chrome-bot/chrome_root/src/third_party/pexpect
+third_party_ply home/chrome-bot/chrome_root/src/third_party/ply
+third_party_polymer home/chrome-bot/chrome_root/src/third_party/polymer
+third_party_PRESUBMIT.py home/chrome-bot/chrome_root/src/third_party/PRESUBMIT.py
+third_party_proguard home/chrome-bot/chrome_root/src/third_party/proguard
+third_party_protobuf home/chrome-bot/chrome_root/src/third_party/protobuf
+third_party_pycoverage home/chrome-bot/chrome_root/src/third_party/pycoverage
+third_party_pyelftools home/chrome-bot/chrome_root/src/third_party/pyelftools
+third_party_pyftpdlib home/chrome-bot/chrome_root/src/third_party/pyftpdlib
+third_party_pylint home/chrome-bot/chrome_root/src/third_party/pylint
+third_party_pymock home/chrome-bot/chrome_root/src/third_party/pymock
+third_party_python_gflags home/chrome-bot/chrome_root/src/third_party/python_gflags
+third_party_Python-Markdown home/chrome-bot/chrome_root/src/third_party/Python-Markdown
+third_party_py_trace_event home/chrome-bot/chrome_root/src/third_party/py_trace_event
+third_party_pywebsocket home/chrome-bot/chrome_root/src/third_party/pywebsocket
+third_party_qcms home/chrome-bot/chrome_root/src/third_party/qcms
+third_party_qunit home/chrome-bot/chrome_root/src/third_party/qunit
+third_party_re2 home/chrome-bot/chrome_root/src/third_party/re2
+third_party_requests home/chrome-bot/chrome_root/src/third_party/requests
+third_party_robolectric home/chrome-bot/chrome_root/src/third_party/robolectric
+third_party_scons-2.0.1 home/chrome-bot/chrome_root/src/third_party/scons-2.0.1
+third_party_sfntly home/chrome-bot/chrome_root/src/third_party/sfntly
+third_party_shaderc home/chrome-bot/chrome_root/src/third_party/shaderc
+third_party_simplejson home/chrome-bot/chrome_root/src/third_party/simplejson
+third_party_sinonjs home/chrome-bot/chrome_root/src/third_party/sinonjs
+third_party_skia home/chrome-bot/chrome_root/src/third_party/skia
+third_party_smhasher home/chrome-bot/chrome_root/src/third_party/smhasher
+third_party_snappy home/chrome-bot/chrome_root/src/third_party/snappy
+third_party_speech-dispatcher home/chrome-bot/chrome_root/src/third_party/speech-dispatcher
+third_party_SPIRV-Tools home/chrome-bot/chrome_root/src/third_party/SPIRV-Tools
+third_party_sqlite home/chrome-bot/chrome_root/src/third_party/sqlite
+third_party_sqlite4java home/chrome-bot/chrome_root/src/third_party/sqlite4java
+third_party_sudden_motion_sensor home/chrome-bot/chrome_root/src/third_party/sudden_motion_sensor
+third_party_swiftshader home/chrome-bot/chrome_root/src/third_party/swiftshader
+third_party_talloc home/chrome-bot/chrome_root/src/third_party/talloc
+third_party_tcmalloc home/chrome-bot/chrome_root/src/third_party/tcmalloc
+third_party_tlslite home/chrome-bot/chrome_root/src/third_party/tlslite
+third_party_typ home/chrome-bot/chrome_root/src/third_party/typ
+third_party_ub-uiautomator home/chrome-bot/chrome_root/src/third_party/ub-uiautomator
+third_party_usb_ids home/chrome-bot/chrome_root/src/third_party/usb_ids
+third_party_usrsctp home/chrome-bot/chrome_root/src/third_party/usrsctp
+third_party_v4l2capture home/chrome-bot/chrome_root/src/third_party/v4l2capture
+third_party_v4l-utils home/chrome-bot/chrome_root/src/third_party/v4l-utils
+third_party_vulkan home/chrome-bot/chrome_root/src/third_party/vulkan
+third_party_wayland home/chrome-bot/chrome_root/src/third_party/wayland
+third_party_wayland-protocols home/chrome-bot/chrome_root/src/third_party/wayland-protocols
+third_party_wds home/chrome-bot/chrome_root/src/third_party/wds
+third_party_web-animations-js home/chrome-bot/chrome_root/src/third_party/web-animations-js
+third_party_webdriver home/chrome-bot/chrome_root/src/third_party/webdriver
+third_party_webgl home/chrome-bot/chrome_root/src/third_party/webgl
+third_party_WebKit home/chrome-bot/chrome_root/src/third_party/WebKit
+third_party_webpagereplay home/chrome-bot/chrome_root/src/third_party/webpagereplay
+third_party_webrtc home/chrome-bot/chrome_root/src/third_party/webrtc
+third_party_webrtc_overrides home/chrome-bot/chrome_root/src/third_party/webrtc_overrides
+third_party_webtreemap home/chrome-bot/chrome_root/src/third_party/webtreemap
+third_party_widevine home/chrome-bot/chrome_root/src/third_party/widevine
+third_party_woff2 home/chrome-bot/chrome_root/src/third_party/woff2
+third_party_wtl home/chrome-bot/chrome_root/src/third_party/wtl
+third_party_x86inc home/chrome-bot/chrome_root/src/third_party/x86inc
+third_party_xdg-utils home/chrome-bot/chrome_root/src/third_party/xdg-utils
+third_party_yasm home/chrome-bot/chrome_root/src/third_party/yasm
+third_party_zlib home/chrome-bot/chrome_root/src/third_party/zlib
+android_webview home/chrome-bot/chrome_root/src/android_webview
+apps home/chrome-bot/chrome_root/src/apps
+ash home/chrome-bot/chrome_root/src/ash
+base home/chrome-bot/chrome_root/src/base
+blimp home/chrome-bot/chrome_root/src/blimp
+blink home/chrome-bot/chrome_root/src/blink
+breakpad home/chrome-bot/chrome_root/src/breakpad
+build home/chrome-bot/chrome_root/src/build
+build_overrides home/chrome-bot/chrome_root/src/build_overrides
+buildtools home/chrome-bot/chrome_root/src/buildtools
+cc home/chrome-bot/chrome_root/src/cc/
+chrome home/chrome-bot/chrome_root/src/chrome/
+chromecast home/chrome-bot/chrome_root/src/chromecast/
+chrome_elf home/chrome-bot/chrome_root/src/chrome_elf
+chromeos home/chrome-bot/chrome_root/src/chromeos
+components home/chrome-bot/chrome_root/src/components
+content home/chrome-bot/chrome_root/src/content
+courgette home/chrome-bot/chrome_root/src/courgette
+crypto home/chrome-bot/chrome_root/src/crypto
+data home/chrome-bot/chrome_root/src/data
+dbus home/chrome-bot/chrome_root/src/dbus
+DEPS home/chrome-bot/chrome_root/src/DEPS
+device home/chrome-bot/chrome_root/src/device
+docs home/chrome-bot/chrome_root/src/docs
+extensions home/chrome-bot/chrome_root/src/extensions
+gin home/chrome-bot/chrome_root/src/gin
+google_apis home/chrome-bot/chrome_root/src/google_apis
+google_update home/chrome-bot/chrome_root/src/google_update
+gpu home/chrome-bot/chrome_root/src/gpu
+headless home/chrome-bot/chrome_root/src/headless
+infra home/chrome-bot/chrome_root/src/infra
+internal_gyp home/chrome-bot/chrome_root/src/internal_gyp
+ios home/chrome-bot/chrome_root/src/ios
+ipc home/chrome-bot/chrome_root/src/ipc
+jingle home/chrome-bot/chrome_root/src/jingle
+mash home/chrome-bot/chrome_root/src/mash
+media home/chrome-bot/chrome_root/src/media
+mojo home/chrome-bot/chrome_root/src/mojo
+native_client home/chrome-bot/chrome_root/src/native_client
+native_client_sdk home/chrome-bot/chrome_root/src/native_client_sdk
+net home/chrome-bot/chrome_root/src/net
+out home/chrome-bot/chrome_root/src/out
+out_BOARD home/chrome-bot/chrome_root/src/out_BOARD
+pdf home/chrome-bot/chrome_root/src/pdf
+ppapi home/chrome-bot/chrome_root/src/ppapi
+printing home/chrome-bot/chrome_root/src/printing
+remoting home/chrome-bot/chrome_root/src/remoting
+rlz home/chrome-bot/chrome_root/src/rlz
+sandbox home/chrome-bot/chrome_root/src/sandbox
+sdch home/chrome-bot/chrome_root/src/sdch
+services home/chrome-bot/chrome_root/src/services
+skia home/chrome-bot/chrome_root/src/skia
+sql home/chrome-bot/chrome_root/src/sql
+storage home/chrome-bot/chrome_root/src/storage
+styleguide home/chrome-bot/chrome_root/src/styleguide
+sync home/chrome-bot/chrome_root/src/sync
+testing home/chrome-bot/chrome_root/src/testing
+tools home/chrome-bot/chrome_root/src/tools
+ui home/chrome-bot/chrome_root/src/ui
+url home/chrome-bot/chrome_root/src/url
+v8 home/chrome-bot/chrome_root/src/v8
+webkit home/chrome-bot/chrome_root/src/webkit
+third_party_kernel /mnt/host/source/src/third_party/kernel
+build_sys-kernel /build/BOARD/var/cache/portage/sys-kernel
+build_var_cache_portage /build/BOARD/var/cache/portage
+build_pepper_flash /build/BOARD/tmp/portage/chromeos-base/pepper-flash
+build_media_sound /build/BOARD/tmp/portage/media-sound/
+build_media_libs /build/BOARD/tmp/portage/media-libs/
+build_net_dns /build/BOARD/tmp/portage/net-dns
+build_sys_apps /build/BOARD/tmp/portage/sys-apps
+build_app_shells /build/BOARD/tmp/portage/app-shells
+build_x11_libs /build/BOARD/tmp/portage/x11-libs
+build_dev_libs /build/BOARD/tmp/portage/dev-libs
+build_dev_db /build/BOARD/tmp/portage/dev-db
+build_sys_libs /build/BOARD/tmp/portage/sys-libs
+build_app_arch /build/BOARD/tmp/portage/app-arch
+build_app_crypt /build/BOARD/tmp/portage/app-crypt
+build_rsyslog /build/BOARD/tmp/portage/app-admin/rsyslog
+build_net_misc /build/BOARD/tmp/portage/net-misc
+build_sys_fs /build/BOARD/tmp/portage/sys-fs
+build_update_engine /build/BOARD/tmp/portage/chromeos-base/update_engine
+build_libchrome /build/BOARD/tmp/portage/chromeos-base/libchrome
+build_gestures /build/BOARD/tmp/portage/chromeos-base/gestures
+build_libbrillo /build/BOARD/tmp/portage/chromeos-base/libbrillo
+build_shill /build/BOARD/tmp/portage/chromeos-base/shill
+build_libevdev /build/BOARD/tmp/portage/chromeos-base/libevdev
+build_chromeos_base /build/BOARD/tmp/portage/chromeos-base
+build_net_wireless /build/BOARD/tmp/portage/net-wireless
+build_sys_power /build/BOARD/tmp/portage/sys-power/
+build_tmp_portage /build/BOARD/tmp/portage
+usr_include /build/BOARD/usr/include
+blink_bindings /var/cache/chromeos-chrome/chrome-src-internal/src/out_BOARD/Release/gen/blink/bindings/
+var_cache /var/cache
+gcc_stl /usr/lib/gcc/x86_64-cros-linux-gnu/
+gcc_stl /mnt/host/source/src/third_party/gcc/
+libc /var/tmp/portage/cross-x86_64-cros-linux-gnu/
+libc sysdeps/
+libc nptl/
+others /
+others .
diff --git a/user_activity_benchmarks/process_hot_functions.py b/user_activity_benchmarks/process_hot_functions.py
new file mode 100755
index 0000000..2fbf3f9
--- /dev/null
+++ b/user_activity_benchmarks/process_hot_functions.py
@@ -0,0 +1,482 @@
+#!/usr/bin/python2
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Processes the functions from the pprof(go/pprof) files and CWP(go/cwp) data.
+
+The pprof --top and pprof --tree outputs should be extracted from the benchmark
+profiles. The outputs contain the hot functions and the call chains.
+
+For each pair of pprof --top and --tree output files, the tool will create a
+file that contains the hot functions present also in the extracted CWP data.
+The common functions are organized in groups that represent a Chrome OS
+component. A function belongs to a group that is defined by a given file path
+if it is declared in a file that shares that path.
+
+A set of metrics are computed for each function, benchmark and Chrome OS group
+covered by a benchmark.
+
+Afterwards, this script extracts the functions that are present in the CWP
+data and not in the benchmark profiles. The extra functions are also groupped
+in Chrome OS components.
+"""
+
+from collections import defaultdict
+
+import argparse
+import os
+import shutil
+import sys
+
+import benchmark_metrics
+import utils
+
+
+class HotFunctionsProcessor(object):
+  """Does the pprof and CWP output processing.
+
+  Extracts the common, extra functions from the pprof files, groups them in
+  Chrome OS components. Computes the metrics for the common functions,
+  benchmark and Chrome OS groups covered by a benchmark.
+  """
+
+  def __init__(self, pprof_top_path, pprof_tree_path, cwp_inclusive_count_file,
+               cwp_pairwise_inclusive_count_file, cwp_function_groups_file,
+               common_functions_path, common_functions_groups_path,
+               benchmark_set_metrics_file, extra_cwp_functions_file,
+               extra_cwp_functions_groups_file,
+               extra_cwp_functions_groups_path):
+    """Initializes the HotFunctionsProcessor.
+
+    Args:
+      pprof_top_path: The directory containing the files with the pprof --top
+        output.
+      pprof_tree_path: The directory containing the files with the pprof --tree
+        output.
+      cwp_inclusive_count_file: The CSV file containing the CWP functions with
+        the inclusive count values.
+      cwp_pairwise_inclusive_count_file: The CSV file containing the CWP pairs
+        of parent and child functions with their inclusive count values.
+      cwp_function_groups_file: The file that contains the CWP function groups.
+      common_functions_path: The directory containing the CSV output files
+        with the common functions of the benchmark profiles and CWP data.
+      common_functions_groups_path: The directory containing the CSV output
+        files with the CWP groups and their metrics that match the common
+        functions of the benchmark profiles and CWP.
+      benchmark_set_metrics_file: The CSV output file containing the metrics for
+        each benchmark.
+      extra_cwp_functions_file: The CSV output file containing the functions
+        that are in the CWP data, but are not in any of the benchmark profiles.
+      extra_cwp_functions_groups_file: The CSV output file containing the groups
+        that match the extra CWP functions and their statistics.
+      extra_cwp_functions_groups_path: The directory containing the CSV output
+        files with the extra CWP functions that match a particular group.
+    """
+    self._pprof_top_path = pprof_top_path
+    self._pprof_tree_path = pprof_tree_path
+    self._cwp_inclusive_count_file = cwp_inclusive_count_file
+    self._cwp_pairwise_inclusive_count_file = cwp_pairwise_inclusive_count_file
+    self._cwp_function_groups_file = cwp_function_groups_file
+    self._common_functions_path = common_functions_path
+    self._common_functions_groups_path = common_functions_groups_path
+    self._benchmark_set_metrics_file = benchmark_set_metrics_file
+    self._extra_cwp_functions_file = extra_cwp_functions_file
+    self._extra_cwp_functions_groups_file = extra_cwp_functions_groups_file
+    self._extra_cwp_functions_groups_path = extra_cwp_functions_groups_path
+
+  def ProcessHotFunctions(self):
+    """Does the processing of the hot functions."""
+    with open(self._cwp_function_groups_file) as input_file:
+      cwp_function_groups = utils.ParseFunctionGroups(input_file.readlines())
+    cwp_statistics = \
+      self.ExtractCommonFunctions(self._pprof_top_path,
+                                  self._pprof_tree_path,
+                                  self._cwp_inclusive_count_file,
+                                  self._cwp_pairwise_inclusive_count_file,
+                                  cwp_function_groups,
+                                  self._common_functions_path,
+                                  self._common_functions_groups_path,
+                                  self._benchmark_set_metrics_file)
+    self.ExtractExtraFunctions(cwp_statistics, self._extra_cwp_functions_file)
+    self.GroupExtraFunctions(cwp_statistics, cwp_function_groups,
+                             self._extra_cwp_functions_groups_path,
+                             self._extra_cwp_functions_groups_file)
+
+  def ExtractCommonFunctions(self, pprof_top_path, pprof_tree_path,
+                             cwp_inclusive_count_file,
+                             cwp_pairwise_inclusive_count_file,
+                             cwp_function_groups, common_functions_path,
+                             common_functions_groups_path,
+                             benchmark_set_metrics_file):
+    """Extracts the common functions of the benchmark profiles and the CWP data.
+
+    For each pair of pprof --top and --tree output files, it creates a separate
+    file with the same name containing the common functions specifications and
+    metrics, that will be placed in the common_functions_path directory.
+
+    The resulting file is in CSV format, containing the following fields:
+    function name, file name, object, inclusive count, inclusive_count_fraction,
+    flat, flat%, sum%, cum, cum%, distance and score.
+
+    For each pair of pprof files, an additional file is created with the
+    Chrome OS groups that match the common functions.
+
+    The file is in CSV format containing the fields: group name, group path,
+    the number of functions that match the group, the average and cumulative
+    distance, the average and cumulative score.
+    The file has the same name with the pprof file and it is placed in the
+    common_functions_groups_path directory.
+
+    For all the analyzed benchmarks, the method creates a CSV output file
+    containing the metrics for each benchmark. The CSV fields include the
+    benchmark name, the number of common functions, the average and
+    cumulative distance and score.
+
+    It builds a dict of the CWP statistics by calling the
+    utils.ParseCWPInclusiveCountFile method and if a function is common, it is
+    marked as a COMMON_FUNCTION.
+
+    Args:
+      pprof_top_path: The name of the directory with the files with the
+        pprof --top output.
+      pprof_tree_path: The name of the directory with the files with the
+        pprof --tree output.
+      cwp_inclusive_count_file: A dict with the inclusive count values.
+      cwp_pairwise_inclusive_count_file: A dict with the pairwise inclusive
+        count values.
+      cwp_function_groups: A list of tuples containing the name of the group
+        and the corresponding file path.
+      common_functions_path: The path containing the output files with the
+        common functions and their metrics.
+      common_functions_groups_path: The path containing the output files with
+        the Chrome OS groups that match the common functions and their metrics.
+      benchmark_set_metrics_file: The CSV output file containing the metrics for
+        all the analyzed benchmarks.
+
+    Returns:
+      A dict containing the CWP statistics with the common functions marked as
+      COMMON_FUNCTION.
+    """
+    cwp_inclusive_count_statistics = \
+        utils.ParseCWPInclusiveCountFile(cwp_inclusive_count_file)
+    cwp_pairwise_inclusive_count_statistics = \
+        utils.ParseCWPPairwiseInclusiveCountFile(
+            cwp_pairwise_inclusive_count_file)
+    cwp_inclusive_count_statistics_cumulative = \
+        utils.ComputeCWPCummulativeInclusiveStatistics(
+            cwp_inclusive_count_statistics)
+    cwp_pairwise_inclusive_count_fractions = \
+        utils.ComputeCWPChildFunctionsFractions(
+            cwp_inclusive_count_statistics_cumulative,
+            cwp_pairwise_inclusive_count_statistics)
+    benchmark_set_metrics = {}
+    pprof_files = os.listdir(pprof_top_path)
+
+    for pprof_file in pprof_files:
+      pprof_top_statistics = \
+          utils.ParsePprofTopOutput(os.path.join(pprof_top_path, pprof_file))
+      pprof_tree_statistics = \
+          utils.ParsePprofTreeOutput(os.path.join(pprof_tree_path, pprof_file))
+      common_functions_lines = []
+      benchmark_function_metrics = {}
+
+      for function_key, function_statistic in pprof_top_statistics.iteritems():
+        if function_key not in cwp_inclusive_count_statistics:
+          continue
+
+        cwp_dso_name, cwp_inclusive_count, cwp_inclusive_count_fraction, _ = \
+            cwp_inclusive_count_statistics[function_key]
+        cwp_inclusive_count_statistics[function_key] = \
+            (cwp_dso_name, cwp_inclusive_count, cwp_inclusive_count_fraction,
+             utils.COMMON_FUNCTION)
+
+        function_name, _ = function_key.split(',')
+        distance = benchmark_metrics.ComputeDistanceForFunction(
+            pprof_tree_statistics[function_key],
+            cwp_pairwise_inclusive_count_fractions.get(function_name, {}))
+        benchmark_cum_p = float(function_statistic[4])
+        score = benchmark_metrics.ComputeScoreForFunction(
+            distance, cwp_inclusive_count_fraction, benchmark_cum_p)
+        benchmark_function_metrics[function_key] = (distance, score)
+
+        common_functions_lines.append(','.join([function_key, cwp_dso_name, str(
+            cwp_inclusive_count), str(cwp_inclusive_count_fraction), ','.join(
+                function_statistic), str(distance), str(score)]))
+      benchmark_function_groups_statistics = \
+          benchmark_metrics.ComputeMetricsForComponents(
+              cwp_function_groups, benchmark_function_metrics)
+      benchmark_set_metrics[pprof_file] = \
+          benchmark_metrics.ComputeMetricsForBenchmark(
+              benchmark_function_metrics)
+
+      with open(os.path.join(common_functions_path, pprof_file), 'w') \
+          as output_file:
+        common_functions_lines.sort(
+            key=lambda x: float(x.split(',')[11]), reverse=True)
+        common_functions_lines.insert(0, 'function,file,dso,inclusive_count,'
+                                      'inclusive_count_fraction,flat,flat%,'
+                                      'sum%,cum,cum%,distance,score')
+        output_file.write('\n'.join(common_functions_lines))
+
+      with open(os.path.join(common_functions_groups_path, pprof_file), 'w') \
+          as output_file:
+        common_functions_groups_lines = \
+            [','.join([group_name, ','.join(
+                [str(statistic) for statistic in group_statistic])])
+             for group_name, group_statistic in
+             benchmark_function_groups_statistics.iteritems()]
+        common_functions_groups_lines.sort(
+            key=lambda x: float(x.split(',')[5]), reverse=True)
+        common_functions_groups_lines.insert(
+            0, 'group_name,file_path,number_of_functions,distance_cum,'
+            'distance_avg,score_cum,score_avg')
+        output_file.write('\n'.join(common_functions_groups_lines))
+
+    with open(benchmark_set_metrics_file, 'w') as output_file:
+      benchmark_set_metrics_lines = []
+
+      for benchmark_name, metrics in benchmark_set_metrics.iteritems():
+        benchmark_set_metrics_lines.append(','.join([benchmark_name, ','.join(
+            [str(metric) for metric in metrics])]))
+      benchmark_set_metrics_lines.sort(
+          key=lambda x: float(x.split(',')[4]), reverse=True)
+      benchmark_set_metrics_lines.insert(
+          0, 'benchmark_name,number_of_functions,distance_cum,distance_avg,'
+          'score_cum,score_avg')
+      output_file.write('\n'.join(benchmark_set_metrics_lines))
+
+    return cwp_inclusive_count_statistics
+
+  def GroupExtraFunctions(self, cwp_statistics, cwp_function_groups,
+                          extra_cwp_functions_groups_path,
+                          extra_cwp_functions_groups_file):
+    """Groups the extra functions.
+
+    Writes the data of the functions that belong to each group in a separate
+    file, sorted by their inclusive count value, in descending order. The file
+    name is the same as the group name.
+
+    The file is in CSV format, containing the fields: function name, file name,
+    object name, inclusive count, inclusive count fraction.
+
+    It creates a CSV file containing the name of the group, their
+    common path, the total inclusive count and inclusive count fraction values
+    of all the functions declared in files that share the common path, sorted
+    in descending order by the inclusive count value.
+
+    Args:
+      cwp_statistics: A dict containing the CWP statistics.
+      cwp_function_groups: A list of tuples with the groups names and the path
+        describing the groups.
+      extra_cwp_functions_groups_path: The name of the directory containing
+        the CSV output files with the extra CWP functions that match a
+        particular group.
+      extra_cwp_functions_groups_file: The CSV output file containing the groups
+        that match the extra functions and their statistics.
+    """
+    cwp_function_groups_statistics = defaultdict(lambda: ([], '', 0, 0.0))
+    for function, statistics in cwp_statistics.iteritems():
+      if statistics[3] == utils.COMMON_FUNCTION:
+        continue
+
+      file_name = function.split(',')[1]
+      group_inclusive_count = int(statistics[1])
+      group_inclusive_count_fraction = float(statistics[2])
+
+      for group in cwp_function_groups:
+        group_common_path = group[1]
+
+        if group_common_path not in file_name:
+          continue
+
+        group_name = group[0]
+        group_statistics = cwp_function_groups_statistics[group_name]
+        group_lines = group_statistics[0]
+        group_inclusive_count += group_statistics[2]
+        group_inclusive_count_fraction += group_statistics[3]
+
+        group_lines.append(','.join([function, statistics[0],
+                                     str(statistics[1]), str(statistics[2])]))
+        cwp_function_groups_statistics[group_name] = \
+            (group_lines, group_common_path, group_inclusive_count,
+             group_inclusive_count_fraction)
+        break
+
+    extra_cwp_functions_groups_lines = []
+    for group_name, group_statistics \
+        in cwp_function_groups_statistics.iteritems():
+      group_output_lines = group_statistics[0]
+      group_output_lines.sort(key=lambda x: int(x.split(',')[3]), reverse=True)
+      group_output_lines.insert(
+          0, 'function,file,dso,inclusive_count,inclusive_count_fraction')
+      with open(os.path.join(extra_cwp_functions_groups_path, group_name),
+                'w') as output_file:
+        output_file.write('\n'.join(group_output_lines))
+      extra_cwp_functions_groups_lines.append(','.join(
+          [group_name, group_statistics[1], str(group_statistics[2]), str(
+              group_statistics[3])]))
+
+    extra_cwp_functions_groups_lines.sort(
+        key=lambda x: int(x.split(',')[2]), reverse=True)
+    extra_cwp_functions_groups_lines.insert(
+        0, 'group,shared_path,inclusive_count,inclusive_count_fraction')
+    with open(extra_cwp_functions_groups_file, 'w') as output_file:
+      output_file.write('\n'.join(extra_cwp_functions_groups_lines))
+
+  def ExtractExtraFunctions(self, cwp_statistics, extra_cwp_functions_file):
+    """Gets the functions that are in the CWP data, but not in the pprof output.
+
+    Writes the functions and their statistics in the extra_cwp_functions_file
+    file. The output is sorted based on the inclusive_count value. The file is
+    in CSV format, containing the fields: function name, file name, object name,
+    inclusive count and inclusive count fraction.
+
+    Args:
+      cwp_statistics: A dict containing the CWP statistics indexed by the
+        function and the file name, comma separated.
+      extra_cwp_functions_file: The file where it should be stored the CWP
+        functions and statistics that are marked as EXTRA_FUNCTION.
+    """
+    output_lines = []
+
+    for function, statistics in cwp_statistics.iteritems():
+      if statistics[3] == utils.EXTRA_FUNCTION:
+        output_lines.append(','.join([function, statistics[0],
+                                      str(statistics[1]), str(statistics[2])]))
+
+    with open(extra_cwp_functions_file, 'w') as output_file:
+      output_lines.sort(key=lambda x: int(x.split(',')[3]), reverse=True)
+      output_lines.insert(0, 'function,file,dso,inclusive_count,'
+                          'inclusive_count_fraction')
+      output_file.write('\n'.join(output_lines))
+
+
+def ParseArguments(arguments):
+  parser = argparse.ArgumentParser()
+
+  parser.add_argument(
+      '--pprof_top_path',
+      required=True,
+      help='The directory containing the files with the pprof --top output of '
+      'the benchmark profiles (the hot functions). The name of the files '
+      'should match with the ones from the pprof tree output files.')
+  parser.add_argument(
+      '--pprof_tree_path',
+      required=True,
+      help='The directory containing the files with the pprof --tree output '
+      'of the benchmark profiles (the call chains). The name of the files '
+      'should match with the ones of the pprof top output files.')
+  parser.add_argument(
+      '--cwp_inclusive_count_file',
+      required=True,
+      help='The CSV file containing the CWP hot functions with their '
+      'inclusive_count values. The CSV fields include the name of the '
+      'function, the file and the object with the definition, the inclusive '
+      'count value and the inclusive count fraction out of the total amount of '
+      'inclusive count values.')
+  parser.add_argument(
+      '--cwp_pairwise_inclusive_count_file',
+      required=True,
+      help='The CSV file containing the CWP pairs of parent and child '
+      'functions with their inclusive count values. The CSV fields include the '
+      'name of the parent and child functions concatenated by ;;, the file '
+      'and the object with the definition of the child function, and the '
+      'inclusive count value.')
+  parser.add_argument(
+      '--cwp_function_groups_file',
+      required=True,
+      help='The file that contains the CWP function groups. A line consists in '
+      'the group name and a file path describing the group. A group must '
+      'represent a ChromeOS component.')
+  parser.add_argument(
+      '--common_functions_path',
+      required=True,
+      help='The directory containing the CSV output files with the common '
+      'functions of the benchmark profiles and CWP data. A file will contain '
+      'all the hot functions from a pprof top output file that are also '
+      'included in the file containing the cwp inclusive count values. The CSV '
+      'fields are: the function name, the file and the object where the '
+      'function is declared, the CWP inclusive count and inclusive count '
+      'fraction values, the cumulative and average distance, the cumulative '
+      'and average score. The files with the common functions will have the '
+      'same names with the corresponding pprof output files.')
+  parser.add_argument(
+      '--common_functions_groups_path',
+      required=True,
+      help='The directory containing the CSV output files with the Chrome OS '
+      'groups and their metrics that match the common functions of the '
+      'benchmark profiles and CWP. The files with the groups will have the '
+      'same names with the corresponding pprof output files. The CSV fields '
+      'include the group name, group path, the number of functions that match '
+      'the group, the average and cumulative distance, the average and '
+      'cumulative score.')
+  parser.add_argument(
+      '--benchmark_set_metrics_file',
+      required=True,
+      help='The CSV output file containing the metrics for each benchmark. The '
+      'CSV fields include the benchmark name, the number of common functions, '
+      'the average and cumulative distance and score.')
+  parser.add_argument(
+      '--extra_cwp_functions_file',
+      required=True,
+      help='The CSV output file containing the functions that are in the CWP '
+      'data, but are not in any of the benchmark profiles. The CSV fields '
+      'include the name of the function, the file name and the object with the '
+      'definition, and the CWP inclusive count and inclusive count fraction '
+      'values. The entries are sorted in descending order based on the '
+      'inclusive count value.')
+  parser.add_argument(
+      '--extra_cwp_functions_groups_file',
+      required=True,
+      help='The CSV output file containing the groups that match the extra CWP '
+      'functions and their statistics. The CSV fields include the group name, '
+      'the file path, the total inclusive count and inclusive count fraction '
+      'values of the functions matching a particular group.')
+  parser.add_argument(
+      '--extra_cwp_functions_groups_path',
+      required=True,
+      help='The directory containing the CSV output files with the extra CWP '
+      'functions that match a particular group. The name of the file is the '
+      'same as the group name. The CSV fields include the name of the '
+      'function, the file name and the object with the definition, and the CWP '
+      'inclusive count and inclusive count fraction values. The entries are '
+      'sorted in descending order based on the inclusive count value.')
+
+  options = parser.parse_args(arguments)
+
+  return options
+
+
+def Main(argv):
+  options = ParseArguments(argv)
+
+  if os.path.exists(options.common_functions_path):
+    shutil.rmtree(options.common_functions_path)
+
+  os.makedirs(options.common_functions_path)
+
+  if os.path.exists(options.common_functions_groups_path):
+    shutil.rmtree(options.common_functions_groups_path)
+
+  os.makedirs(options.common_functions_groups_path)
+
+  if os.path.exists(options.extra_cwp_functions_groups_path):
+    shutil.rmtree(options.extra_cwp_functions_groups_path)
+
+  os.makedirs(options.extra_cwp_functions_groups_path)
+
+  hot_functions_processor = HotFunctionsProcessor(
+      options.pprof_top_path, options.pprof_tree_path,
+      options.cwp_inclusive_count_file,
+      options.cwp_pairwise_inclusive_count_file,
+      options.cwp_function_groups_file, options.common_functions_path,
+      options.common_functions_groups_path, options.benchmark_set_metrics_file,
+      options.extra_cwp_functions_file, options.extra_cwp_functions_groups_file,
+      options.extra_cwp_functions_groups_path)
+
+  hot_functions_processor.ProcessHotFunctions()
+
+
+if __name__ == '__main__':
+  Main(sys.argv[1:])
diff --git a/user_activity_benchmarks/process_hot_functions_unittest.py b/user_activity_benchmarks/process_hot_functions_unittest.py
new file mode 100755
index 0000000..0ad248b
--- /dev/null
+++ b/user_activity_benchmarks/process_hot_functions_unittest.py
@@ -0,0 +1,223 @@
+#!/usr/bin/python2
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Unit tests for the process_hot_functions module."""
+
+from process_hot_functions import HotFunctionsProcessor, ParseArguments
+
+import mock
+import os
+import shutil
+import tempfile
+import unittest
+
+
+class ParseArgumentsTest(unittest.TestCase):
+  """Test class for command line argument parsing."""
+
+  def __init__(self, *args, **kwargs):
+    super(ParseArgumentsTest, self).__init__(*args, **kwargs)
+
+  def testParseArguments(self):
+    arguments = \
+      ['-p', 'dummy_pprof', '-c', 'dummy_common', '-e', 'dummy_extra', '-w',
+       'dummy_cwp']
+    options = ParseArguments(arguments)
+
+    self.assertEqual(options.pprof_path, 'dummy_pprof')
+    self.assertEqual(options.cwp_hot_functions_file, 'dummy_cwp')
+    self.assertEqual(options.common_functions_path, 'dummy_common')
+    self.assertEqual(options.extra_cwp_functions_file, 'dummy_extra')
+
+  @mock.patch('sys.exit')
+  def testDeathParseArguments(self, sys_exit_method):
+    self.assertFalse(sys_exit_method.called)
+    ParseArguments([])
+    self.assertTrue(sys_exit_method.called)
+    self.assertNotEqual(sys_exit_method.return_value, 0)
+
+
+class HotFunctionsProcessorTest(unittest.TestCase):
+  """Test class for HotFunctionsProcessor class."""
+
+  def __init__(self, *args, **kwargs):
+    super(HotFunctionsProcessorTest, self).__init__(*args, **kwargs)
+    self._pprof_path = 'testdata/input/pprof'
+    self._cwp_functions_file = 'testdata/input/cwp_functions_file.csv'
+    self._cwp_functions_file_parsing = \
+      'testdata/input/parse_cwp_statistics.csv'
+    self._common_functions_path = ''
+    self._expected_common_functions_path = 'testdata/expected/pprof_common'
+    self._extra_cwp_functions_file = ''
+    self._cwp_function_groups_file = 'testdata/input/cwp_function_groups'
+    self._cwp_function_groups_statistics_file = 'dummy'
+    self._cwp_function_groups_file_prefix = 'dummy'
+
+  def _CreateHotFunctionsProcessor(self,
+                                   extra_cwp_functions_file,
+                                   cwp_function_groups_file=None,
+                                   cwp_function_groups_statistics_file=None,
+                                   cwp_function_groups_file_prefix=None):
+    return HotFunctionsProcessor(self._pprof_path, self._cwp_functions_file,
+                                 self._common_functions_path,
+                                 extra_cwp_functions_file,
+                                 cwp_function_groups_file,
+                                 cwp_function_groups_statistics_file,
+                                 cwp_function_groups_file_prefix)
+
+  def checkFileContents(self, file_name, expected_content_lines):
+    with open(file_name, 'r') as input_file:
+      result_content_lines = input_file.readlines()
+    self.assertListEqual(expected_content_lines, result_content_lines)
+
+  @mock.patch.object(HotFunctionsProcessor, 'ExtractCommonFunctions')
+  @mock.patch.object(HotFunctionsProcessor, 'ExtractExtraFunctions')
+  @mock.patch.object(HotFunctionsProcessor, 'GroupExtraFunctions')
+  def testProcessHotFunctionsNoGroupping(self, group_functions_method,
+                                         extra_functions_method,
+                                         common_functions_method):
+    hot_functions_processor = self._CreateHotFunctionsProcessor(
+        self._extra_cwp_functions_file)
+
+    hot_functions_processor.ProcessHotFunctions()
+
+    self.assertTrue(common_functions_method.called)
+    self.assertTrue(extra_functions_method.called)
+    self.assertEqual(common_functions_method.call_count, 1)
+    self.assertEqual(extra_functions_method.call_count, 1)
+    self.assertFalse(group_functions_method.called)
+
+  @mock.patch.object(HotFunctionsProcessor, 'ExtractCommonFunctions')
+  @mock.patch.object(HotFunctionsProcessor, 'ExtractExtraFunctions')
+  @mock.patch.object(HotFunctionsProcessor, 'GroupExtraFunctions')
+  def testProcessHotFunctionsGroupping(self, group_functions_method,
+                                       extra_functions_method,
+                                       common_functions_method):
+    hot_functions_processor = self._CreateHotFunctionsProcessor(
+        self._extra_cwp_functions_file, self._cwp_function_groups_file,
+        self._cwp_function_groups_statistics_file,
+        self._cwp_function_groups_file_prefix)
+
+    hot_functions_processor.ProcessHotFunctions()
+
+    self.assertTrue(common_functions_method.called)
+    self.assertTrue(extra_functions_method.called)
+    self.assertEqual(common_functions_method.call_count, 1)
+    self.assertEqual(extra_functions_method.call_count, 1)
+    self.assertTrue(group_functions_method.called)
+    self.assertEqual(group_functions_method.call_count, 1)
+
+  def testParseCWPStatistics(self):
+    cwp_statistics = {'dummy_method1,dummy_file1': ('dummy_object1,1', 0),
+                      'dummy_method2,dummy_file2': ('dummy_object2,2', 0),
+                      'dummy_method3,dummy_file3': ('dummy_object3,3', 0),
+                      'dummy_method4,dummy_file4': ('dummy_object4,4', 0)}
+    hot_functions_processor = self._CreateHotFunctionsProcessor(
+        self._extra_cwp_functions_file)
+    result = hot_functions_processor.ParseCWPStatistics(
+        self._cwp_functions_file_parsing)
+
+    self.assertDictEqual(result, cwp_statistics)
+
+  def testExtractCommonFunctions(self):
+    hot_functions_processor = self._CreateHotFunctionsProcessor(
+        self._extra_cwp_functions_file)
+    common_functions_path = tempfile.mkdtemp()
+    hot_functions_processor.ExtractCommonFunctions(self._pprof_path,
+                                                   common_functions_path,
+                                                   self._cwp_functions_file)
+    expected_files = \
+      [os.path.join(self._expected_common_functions_path, expected_file)
+       for expected_file in os.listdir(self._expected_common_functions_path)]
+    result_files = \
+      [os.path.join(common_functions_path, result_file)
+       for result_file in os.listdir(common_functions_path)]
+
+    expected_files.sort()
+    result_files.sort()
+
+    for expected_file_name, result_file_name in \
+      zip(expected_files, result_files):
+      with open(expected_file_name) as expected_file:
+        expected_output_lines = expected_file.readlines()
+        self.checkFileContents(result_file_name, expected_output_lines)
+    shutil.rmtree(common_functions_path)
+
+  def testExtractExtraFunctions(self):
+    cwp_statistics = {'dummy_method1,dummy_file1': ('dummy_object1,1', 0),
+                      'dummy_method2,dummy_file2': ('dummy_object2,2', 1),
+                      'dummy_method3,dummy_file3': ('dummy_object3,3', 1),
+                      'dummy_method4,dummy_file4': ('dummy_object4,4', 0)}
+    expected_output_lines = ['function,file,dso,inclusive_count\n',
+                             'dummy_method4,dummy_file4,dummy_object4,4\n',
+                             'dummy_method1,dummy_file1,dummy_object1,1']
+    temp_file, temp_filename = tempfile.mkstemp()
+    os.close(temp_file)
+    hot_functions_processor = self._CreateHotFunctionsProcessor(temp_filename)
+
+    hot_functions_processor.ExtractExtraFunctions(cwp_statistics, temp_filename)
+    self.checkFileContents(temp_filename, expected_output_lines)
+    os.remove(temp_filename)
+
+  def testParseFunctionGroups(self):
+    cwp_function_groups_lines = ['group1 /a\n', 'group2 /b\n', 'group3 /c\n',
+                                 'group4 /d\n']
+    expected_output = [('group1', '/a', 0, []), ('group2', '/b', 0, []),
+                       ('group3', '/c', 0, []), ('group4', '/d', 0, [])]
+    result = HotFunctionsProcessor.ParseFunctionGroups(
+        cwp_function_groups_lines)
+    self.assertListEqual(expected_output, result)
+
+  def testGroupExtraFunctions(self):
+    cwp_statistics = {'dummy_method1,/a/b': ('dummy_object1,1', 1),
+                      'dummy_method2,/c/d': ('dummy_object2,2', 0),
+                      'dummy_method3,/a/b': ('dummy_object3,3', 0),
+                      'dummy_method4,/c/d': ('dummy_object4,4', 1),
+                      'dummy_method5,/a/b': ('dummy_object5,5', 0),
+                      'dummy_method6,/e': ('dummy_object6,6', 0),
+                      'dummy_method7,/c/d': ('dummy_object7,7', 0),
+                      'dummy_method8,/e': ('dummy_object8,8', 0)}
+    cwp_groups_statistics_file, \
+        cwp_groups_statistics_filename = tempfile.mkstemp()
+
+    os.close(cwp_groups_statistics_file)
+
+    cwp_groups_file_path = tempfile.mkdtemp()
+    cwp_groups_file_prefix = os.path.join(cwp_groups_file_path, 'dummy')
+    hot_functions_processor = self._CreateHotFunctionsProcessor(
+        self._extra_cwp_functions_file)
+
+    hot_functions_processor.GroupExtraFunctions(cwp_statistics,
+                                                cwp_groups_file_prefix,
+                                                self._cwp_function_groups_file,
+                                                cwp_groups_statistics_filename)
+
+    expected_group_ab_lines = ['function,file,dso,inclusive_count\n',
+                               'dummy_method5,/a/b,dummy_object5,5\n',
+                               'dummy_method3,/a/b,dummy_object3,3']
+    expected_group_cd_lines = ['function,file,dso,inclusive_count\n',
+                               'dummy_method7,/c/d,dummy_object7,7\n',
+                               'dummy_method2,/c/d,dummy_object2,2']
+    expected_group_e_lines = ['function,file,dso,inclusive_count\n',
+                              'dummy_method8,/e,dummy_object8,8\n',
+                              'dummy_method6,/e,dummy_object6,6']
+    expected_group_statistics_lines = ['group,shared_path,inclusive_count\n',
+                                       'e,/e,14\n', 'cd,/c/d,9\n', 'ab,/a/b,8']
+
+    self.checkFileContents('%sab' % (cwp_groups_file_prefix,),
+                           expected_group_ab_lines)
+    self.checkFileContents('%scd' % (cwp_groups_file_prefix,),
+                           expected_group_cd_lines)
+    self.checkFileContents('%se' % (cwp_groups_file_prefix,),
+                           expected_group_e_lines)
+    self.checkFileContents(cwp_groups_statistics_filename,
+                           expected_group_statistics_lines)
+
+    shutil.rmtree(cwp_groups_file_path)
+    os.remove(cwp_groups_statistics_filename)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/user_activity_benchmarks/select_hot_functions.sql b/user_activity_benchmarks/select_hot_functions.sql
new file mode 100644
index 0000000..d121d61
--- /dev/null
+++ b/user_activity_benchmarks/select_hot_functions.sql
@@ -0,0 +1,27 @@
+-- Collects the function, with its file, the object and inclusive count value.
+-- The limits here are entirely arbitrary.
+-- For more background, look at
+-- https://sites.google.com/a/google.com/cwp/about/callgraphs.
+SELECT
+  frame.function_name AS function,
+  frame.filename AS file,
+  frame.load_module_path AS dso,
+  sum(frame.inclusive_count) AS inclusive_count
+FROM
+  -- Collect the data stored in CWP over the last 30 days.
+  FLATTEN(chromeos_wide_profiling.sampledb.cycles.callgraph.last30days, frame)
+WHERE
+  meta.cros.report_id % UINT64("1") == 0
+  -- The reports were collected periodically.
+  AND meta.cros.collection_info.trigger_event == 1
+  AND `profile.duration_usec` < 2100000
+  -- The reports were from a busy machine.
+  AND session.total_count > 2000
+  --  The reports are from the gnawty board, x86_64 architecture.
+  AND meta.cros.board == "gnawty"
+  AND meta.cros.cpu_architecture == "x86_64"
+  -- The reports include callchain data.
+  AND left(meta.cros.version, 4) > "6970"
+  GROUP BY function, dso, file
+ORDER BY `inclusive_count` DESC
+LIMIT 50000 ;
diff --git a/user_activity_benchmarks/select_optimal_benchmark_set.py b/user_activity_benchmarks/select_optimal_benchmark_set.py
new file mode 100755
index 0000000..1c8305c
--- /dev/null
+++ b/user_activity_benchmarks/select_optimal_benchmark_set.py
@@ -0,0 +1,347 @@
+#!/usr/bin/python2
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Selects the optimal set of benchmarks.
+
+For each benchmark, there is a file with the common functions, as extracted by
+the process_hot_functions module.
+
+The script receives as input the CSV file with the CWP inclusive count values,
+the file with Chrome OS groups and the path containing a file with common
+functions for every benchmark.
+
+It extracts for every benchmark and for the CWP data all the functions that
+match the given Chrome OS groups.
+
+It generates all possible combinations of benchmark sets of a given size and
+it computes for every set a metric.
+It outputs the optimal sets, based on which ones have the best metric.
+
+Three different metrics have been used: function count, distance
+variation and score.
+
+For the function count metric, we count the unique functions covered by a
+set of benchmarks. Besides the number of unique functions, we compute also
+the fraction of unique functions out of the amount of CWP functions from the
+given groups. The benchmark set with the highest amount of unique functions
+that belong to all the given groups is considered better.
+
+For the distance variation metric, we compute the sum of the distance variations
+of the functions covered by a set of benchmarks. We define the distance
+variation as the difference between the distance value of a function and the
+ideal distance value (1.0). If a function appears in multiple common functions
+files, we consider only the minimum value. We compute also the distance
+variation per function. The set that has the smaller value for the
+distance variation per function is considered better.
+
+For the score metric, we compute the sum of the scores of the functions from a
+set of benchmarks. If a function appears in multiple common functions files,
+we consider only the maximum value. We compute also the fraction of this sum
+from the sum of all the scores of the functions from the CWP data covering the
+given groups, in the ideal case (the ideal score of a function is 1.0).
+
+We compute the metrics in the same manner for individual Chrome OS groups.
+"""
+
+from collections import defaultdict
+
+import argparse
+import csv
+import itertools
+import json
+import operator
+import os
+import sys
+
+import benchmark_metrics
+import utils
+
+
+class BenchmarkSet(object):
+  """Selects the optimal set of benchmarks of given size."""
+
+  # Constants that specify the metric type.
+  FUNCTION_COUNT_METRIC = 'function_count'
+  DISTANCE_METRIC = 'distance_variation'
+  SCORE_METRIC = 'score_fraction'
+
+  def __init__(self, benchmark_set_size, benchmark_set_output_file,
+               benchmark_set_common_functions_path, cwp_inclusive_count_file,
+               cwp_function_groups_file, metric):
+    """Initializes the BenchmarkSet.
+
+    Args:
+      benchmark_set_size: Constant representing the size of a benchmark set.
+      benchmark_set_output_file: The output file that will contain the set of
+        optimal benchmarks with the metric values.
+      benchmark_set_common_functions_path: The directory containing the files
+        with the common functions for the list of benchmarks.
+      cwp_inclusive_count_file: The CSV file containing the CWP functions with
+        their inclusive count values.
+      cwp_function_groups_file: The file that contains the CWP function groups.
+      metric: The type of metric used for the analysis.
+    """
+    self._benchmark_set_size = int(benchmark_set_size)
+    self._benchmark_set_output_file = benchmark_set_output_file
+    self._benchmark_set_common_functions_path = \
+        benchmark_set_common_functions_path
+    self._cwp_inclusive_count_file = cwp_inclusive_count_file
+    self._cwp_function_groups_file = cwp_function_groups_file
+    self._metric = metric
+
+  @staticmethod
+  def OrganizeCWPFunctionsInGroups(cwp_inclusive_count_statistics,
+                                   cwp_function_groups):
+    """Selects the CWP functions that match the given Chrome OS groups.
+
+    Args:
+      cwp_inclusive_count_statistics: A dict with the CWP functions.
+      cwp_function_groups: A list with the CWP function groups.
+
+    Returns:
+      A dict having as a key the name of the groups and as a value the list of
+      CWP functions that match an individual group.
+    """
+    cwp_functions_grouped = defaultdict(list)
+    for function_key in cwp_inclusive_count_statistics:
+      _, file_name = function_key.split(',')
+      for group_name, file_path in cwp_function_groups:
+        if file_path not in file_name:
+          continue
+        cwp_functions_grouped[group_name].append(function_key)
+        break
+    return cwp_functions_grouped
+
+  @staticmethod
+  def OrganizeBenchmarkSetFunctionsInGroups(benchmark_set_files,
+                                            benchmark_set_common_functions_path,
+                                            cwp_function_groups):
+    """Selects the benchmark functions that match the given Chrome OS groups.
+
+    Args:
+      benchmark_set_files: The list of common functions files corresponding to a
+        benchmark.
+      benchmark_set_common_functions_path: The directory containing the files
+        with the common functions for the list of benchmarks.
+      cwp_function_groups: A list with the CWP function groups.
+
+    Returns:
+      A dict having as a key the name of a common functions file. The value is
+      a dict having as a key the name of a group and as value a list of
+      functions that match the given group.
+    """
+
+    benchmark_set_functions_grouped = {}
+    for benchmark_file_name in benchmark_set_files:
+      benchmark_full_file_path = \
+          os.path.join(benchmark_set_common_functions_path,
+                       benchmark_file_name)
+      with open(benchmark_full_file_path) as input_file:
+        statistics_reader = \
+            csv.DictReader(input_file, delimiter=',')
+        benchmark_functions_grouped = defaultdict(dict)
+        for statistic in statistics_reader:
+          function_name = statistic['function']
+          file_name = statistic['file']
+          for group_name, file_path in cwp_function_groups:
+            if file_path not in file_name:
+              continue
+            function_key = ','.join([function_name, file_name])
+            distance = float(statistic['distance'])
+            score = float(statistic['score'])
+            benchmark_functions_grouped[group_name][function_key] = \
+                (distance, score)
+            break
+          benchmark_set_functions_grouped[benchmark_file_name] = \
+              benchmark_functions_grouped
+    return benchmark_set_functions_grouped
+
+  @staticmethod
+  def SelectOptimalBenchmarkSetBasedOnMetric(all_benchmark_combinations_sets,
+                                             benchmark_set_functions_grouped,
+                                             cwp_functions_grouped,
+                                             metric_function_for_set,
+                                             metric_comparison_operator,
+                                             metric_default_value,
+                                             metric_string):
+    """Generic method that selects the optimal benchmark set based on a metric.
+
+    The reason of implementing a generic function is to avoid logic duplication
+    for selecting a benchmark set based on the three different metrics.
+
+    Args:
+      all_benchmark_combinations_sets: The list with all the sets of benchmark
+        combinations.
+      benchmark_set_functions_grouped: A dict with benchmark functions as
+        returned by OrganizeBenchmarkSetFunctionsInGroups.
+      cwp_functions_grouped: A dict with the CWP functions as returned by
+        OrganizeCWPFunctionsInGroups.
+      metric_function_for_set: The method used to compute the metric for a given
+        benchmark set.
+      metric_comparison_operator: A comparison operator used to compare two
+        values of the same metric (i.e: operator.lt or operator.gt).
+      metric_default_value: The default value for the metric.
+      metric_string: A tuple of strings used in the JSON output for the pair of
+        the values of the metric.
+
+    Returns:
+      A list of tuples containing for each optimal benchmark set. A tuple
+      contains the list of benchmarks from the set, the pair of metric values
+      and a dictionary with the metrics for each group.
+    """
+    optimal_sets = [([], metric_default_value, {})]
+
+    for benchmark_combination_set in all_benchmark_combinations_sets:
+      function_metrics = [benchmark_set_functions_grouped[benchmark]
+                          for benchmark in benchmark_combination_set]
+      set_metrics, set_groups_metrics = \
+          metric_function_for_set(function_metrics, cwp_functions_grouped,
+                                  metric_string)
+      optimal_value = optimal_sets[0][1][0]
+      if metric_comparison_operator(set_metrics[0], optimal_value):
+        optimal_sets = \
+            [(benchmark_combination_set, set_metrics, set_groups_metrics)]
+      elif set_metrics[0] == optimal_sets[0][1][0]:
+        optimal_sets.append(
+            (benchmark_combination_set, set_metrics, set_groups_metrics))
+
+    return optimal_sets
+
+  def SelectOptimalBenchmarkSet(self):
+    """Selects the optimal benchmark sets and writes them in JSON format.
+
+    Parses the CWP inclusive count statistics and benchmark common functions
+    files. Organizes the functions into groups. For every optimal benchmark
+    set, the method writes in the self._benchmark_set_output_file the list of
+    benchmarks, the pair of metrics and a dictionary with the pair of
+    metrics for each group covered by the benchmark set.
+    """
+
+    benchmark_set_files = os.listdir(self._benchmark_set_common_functions_path)
+    all_benchmark_combinations_sets = \
+        itertools.combinations(benchmark_set_files, self._benchmark_set_size)
+
+    with open(self._cwp_function_groups_file) as input_file:
+      cwp_function_groups = utils.ParseFunctionGroups(input_file.readlines())
+
+    cwp_inclusive_count_statistics = \
+        utils.ParseCWPInclusiveCountFile(self._cwp_inclusive_count_file)
+    cwp_functions_grouped = self.OrganizeCWPFunctionsInGroups(
+        cwp_inclusive_count_statistics, cwp_function_groups)
+    benchmark_set_functions_grouped = \
+        self.OrganizeBenchmarkSetFunctionsInGroups(
+            benchmark_set_files, self._benchmark_set_common_functions_path,
+            cwp_function_groups)
+
+    if self._metric == self.FUNCTION_COUNT_METRIC:
+      metric_function_for_benchmark_set = \
+          benchmark_metrics.ComputeFunctionCountForBenchmarkSet
+      metric_comparison_operator = operator.gt
+      metric_default_value = (0, 0.0)
+      metric_string = ('function_count', 'function_count_fraction')
+    elif self._metric == self.DISTANCE_METRIC:
+      metric_function_for_benchmark_set = \
+          benchmark_metrics.ComputeDistanceForBenchmarkSet
+      metric_comparison_operator = operator.lt
+      metric_default_value = (float('inf'), float('inf'))
+      metric_string = \
+          ('distance_variation_per_function', 'total_distance_variation')
+    elif self._metric == self.SCORE_METRIC:
+      metric_function_for_benchmark_set = \
+          benchmark_metrics.ComputeScoreForBenchmarkSet
+      metric_comparison_operator = operator.gt
+      metric_default_value = (0.0, 0.0)
+      metric_string = ('score_fraction', 'total_score')
+    else:
+      raise ValueError("Invalid metric")
+
+    optimal_benchmark_sets = \
+        self.SelectOptimalBenchmarkSetBasedOnMetric(
+            all_benchmark_combinations_sets, benchmark_set_functions_grouped,
+            cwp_functions_grouped, metric_function_for_benchmark_set,
+            metric_comparison_operator, metric_default_value, metric_string)
+
+    json_output = []
+
+    for benchmark_set in optimal_benchmark_sets:
+      json_entry = {
+          'benchmark_set':
+              list(benchmark_set[0]),
+          'metrics': {
+              metric_string[0]: benchmark_set[1][0],
+              metric_string[1]: benchmark_set[1][1]
+          },
+          'groups':
+              dict(benchmark_set[2])
+      }
+      json_output.append(json_entry)
+
+    with open(self._benchmark_set_output_file, 'w') as output_file:
+      json.dump(json_output, output_file)
+
+
+def ParseArguments(arguments):
+  parser = argparse.ArgumentParser()
+
+  parser.add_argument(
+      '--benchmark_set_common_functions_path',
+      required=True,
+      help='The directory containing the CSV files with the common functions '
+      'of the benchmark profiles and CWP data. A file will contain all the hot '
+      'functions from a pprof top output file that are also included in the '
+      'file containing the cwp inclusive count values. The CSV fields are: the '
+      'function name, the file and the object where the function is declared, '
+      'the CWP inclusive count and inclusive count fraction values, the '
+      'cumulative and average distance, the cumulative and average score. The '
+      'files with the common functions will have the same names with the '
+      'corresponding pprof output files.')
+  parser.add_argument(
+      '--cwp_inclusive_count_file',
+      required=True,
+      help='The CSV file containing the CWP hot functions with their '
+      'inclusive_count values. The CSV fields include the name of the '
+      'function, the file and the object with the definition, the inclusive '
+      'count value and the inclusive count fraction out of the total amount of '
+      'inclusive count values.')
+  parser.add_argument(
+      '--benchmark_set_size',
+      required=True,
+      help='The size of the benchmark sets.')
+  parser.add_argument(
+      '--benchmark_set_output_file',
+      required=True,
+      help='The JSON output file containing optimal benchmark sets with their '
+      'metrics. For every optimal benchmark set, the file contains the list of '
+      'benchmarks, the pair of metrics and a dictionary with the pair of '
+      'metrics for each group covered by the benchmark set.')
+  parser.add_argument(
+      '--metric',
+      required=True,
+      help='The metric used to select the optimal benchmark set. The possible '
+      'values are: distance_variation, function_count and score_fraction.')
+  parser.add_argument(
+      '--cwp_function_groups_file',
+      required=True,
+      help='The file that contains the CWP function groups. A line consists in '
+      'the group name and a file path describing the group. A group must '
+      'represent a Chrome OS component.')
+
+  options = parser.parse_args(arguments)
+
+  return options
+
+
+def Main(argv):
+  options = ParseArguments(argv)
+  benchmark_set = BenchmarkSet(options.benchmark_set_size,
+                               options.benchmark_set_output_file,
+                               options.benchmark_set_common_functions_path,
+                               options.cwp_inclusive_count_file,
+                               options.cwp_function_groups_file, options.metric)
+  benchmark_set.SelectOptimalBenchmarkSet()
+
+
+if __name__ == '__main__':
+  Main(sys.argv[1:])
diff --git a/user_activity_benchmarks/symbolize_profiles.sh b/user_activity_benchmarks/symbolize_profiles.sh
new file mode 100755
index 0000000..904cc1b
--- /dev/null
+++ b/user_activity_benchmarks/symbolize_profiles.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# Uses local_cwp to do the profile symbolization.
+# The profiles that need to be symbolized are placed in the profiles_path.
+# The results are placed in the local_cwp_results_path.
+
+set -e
+
+if [ "$#" -ne 3 ]; then
+  echo "USAGE: symbolize_profiles.sh profiles_path local_cwp_binary_path " \
+    "local_cwp_results_path"
+  exit 1
+fi
+
+readonly PROFILES_PATH=$1
+readonly LOCAL_CWP_BINARY_PATH=$2
+readonly LOCAL_CWP_RESULTS_PATH=$3
+readonly PROFILES=$(ls $PROFILES_PATH)
+
+for profile in "${PROFILES[@]}"
+do
+  $LOCAL_CWP_BINARY_PATH --output="$LOCAL_CWP_RESULTS_PATH/${profile}.pb.gz" \
+    "$PROFILES_PATH/$profile"
+  if [ $? -ne 0 ]; then
+    echo "Failed to symbolize the perf profile output with local_cwp for " \
+      "$profile."
+    continue
+  fi
+done
diff --git a/user_activity_benchmarks/telemetry_benchmarks_R52_8350.68 b/user_activity_benchmarks/telemetry_benchmarks_R52_8350.68
new file mode 100644
index 0000000..0177dab
--- /dev/null
+++ b/user_activity_benchmarks/telemetry_benchmarks_R52_8350.68
@@ -0,0 +1,113 @@
+blink_perf.bindings
+blink_perf.canvas
+blink_perf.css
+blink_perf.dom
+blink_perf.events
+blink_perf.layout
+blink_perf.paint
+blink_perf.parser
+blink_perf.shadow_dom
+blink_perf.svg
+blink_style.top_25
+blob_storage.blob_storage
+dromaeo.cssqueryjquery
+dromaeo.domcoreattr
+dromaeo.domcoremodify
+dromaeo.domcorequery
+dromaeo.domcoretraverse
+dromaeo.jslibattrjquery
+dromaeo.jslibattrprototype
+dromaeo.jslibeventjquery
+dromaeo.jslibeventprototype
+dromaeo.jslibmodifyjquery
+dromaeo.jslibmodifyprototype
+dromaeo.jslibstylejquery
+dromaeo.jslibstyleprototype
+dromaeo.jslibtraversejquery
+dromaeo.jslibtraverseprototype
+dummy_benchmark.noisy_benchmark_1
+dummy_benchmark.stable_benchmark_1
+image_decoding.image_decoding_measurement
+indexeddb_perf
+jetstream
+jitter
+kraken
+media.chromeOS4kOnly.tough_video_cases
+media.chromeOS.tough_video_cases
+media.media_cns_cases
+media.mse_cases
+media.tough_video_cases_extra
+media.tough_video_cases
+memory.long_running_idle_gmail_background_tbmv2
+memory.long_running_idle_gmail_tbmv2
+memory.top_7_stress
+octane
+oilpan_gc_times.tough_animation_cases
+oortonline
+page_cycler.basic_oopif
+page_cycler.intl_hi_ru
+page_cycler.intl_ko_th_vi
+page_cycler_site_isolation.basic_oopif
+page_cycler.typical_25
+page_cycler_v2.basic_oopif
+page_cycler_v2.intl_ar_fa_he
+page_cycler_v2.intl_es_fr_pt-BR
+page_cycler_v2.intl_hi_ru
+page_cycler_v2.intl_ja_zh
+page_cycler_v2.intl_ko_th_vi
+page_cycler_v2_site_isolation.basic_oopif
+page_cycler_v2.top_10_mobile
+page_cycler_v2.typical_25
+rasterize_and_record_micro.key_mobile_sites_smooth
+rasterize_and_record_micro.key_silk_cases
+rasterize_and_record_micro.top_25_smooth
+robohornet_pro
+scheduler.tough_scheduling_cases
+service_worker.service_worker_micro_benchmark
+service_worker.service_worker
+smoothness.gpu_rasterization_and_decoding.image_decoding_cases
+smoothness.gpu_rasterization.tough_filters_cases
+smoothness.gpu_rasterization.tough_path_rendering_cases
+smoothness.image_decoding_cases
+smoothness.key_desktop_move_cases
+smoothness.scrolling_tough_ad_case
+smoothness.scrolling_tough_ad_cases
+smoothness.top_25_smooth
+smoothness.tough_ad_cases
+spaceport
+speedometer-ignition
+speedometer
+startup.cold.blank_page
+startup.large_profile.cold.blank_page
+startup.large_profile.warm.blank_page
+startup.large_profile.warm.blank
+startup.warm.blank_page
+start_with_ext.cold.blank_page
+start_with_ext.warm.blank_page
+storage.indexeddb_endure
+storage.indexeddb_endure_tracing
+sunspider
+system_health.memory_mobile
+tab_switching.five_blank_pages
+tab_switching.top_10
+tab_switching.tough_energy_cases
+tab_switching.tough_image_cases
+tab_switching.typical_25
+thread_times.tough_compositor_cases
+thread_times.tough_scrolling_cases
+top_10_mobile_memory_ignition
+top_10_mobile_memory
+tracing.tracing_with_background_memory_infra
+tracing.tracing_with_debug_overhead
+v8.browsing_mobile
+v8.detached_context_age_in_gc
+v8.google
+v8.infinite_scroll-ignition_tbmv2
+v8.infinite_scroll_tbmv2
+v8.todomvc-ignition
+v8.todomvc
+v8.top_25_smooth
+webrtc.datachannel
+webrtc.getusermedia
+webrtc.peerconnection
+webrtc.webrtc_smoothness
diff --git a/user_activity_benchmarks/testdata/expected/pprof_common/file1.pprof b/user_activity_benchmarks/testdata/expected/pprof_common/file1.pprof
new file mode 100644
index 0000000..30d4c83
--- /dev/null
+++ b/user_activity_benchmarks/testdata/expected/pprof_common/file1.pprof
@@ -0,0 +1,3 @@
+function,file,dso,inclusive_count,flat,flat%,sum%,cum,cum%
+blink::ElementV8Internal::getAttributeMethodCallback,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Element.cpp,debug/opt/google/chrome/chrome,30638548,3007599556,0.81%,42.16%,13057167098,3.51%
+base::RunLoop::Run,/home/chrome-bot/chrome_root/src/base/run_loop.cc,/opt/google/chrome/chrome,21484525,2725201614,0.73%,45.17%,3511333688,0.94%
\ No newline at end of file
diff --git a/user_activity_benchmarks/testdata/expected/pprof_common/file2.pprof b/user_activity_benchmarks/testdata/expected/pprof_common/file2.pprof
new file mode 100644
index 0000000..bef9266
--- /dev/null
+++ b/user_activity_benchmarks/testdata/expected/pprof_common/file2.pprof
@@ -0,0 +1,2 @@
+function,file,dso,inclusive_count,flat,flat%,sum%,cum,cum%
+blink::InvalidationSet::invalidatesElement,/home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/invalidation/InvalidationSet.cpp,debug/opt/google/chrome/chrome,42293369,4585860529,3.95%,3.95%,13583834527,11.70%
\ No newline at end of file
diff --git a/user_activity_benchmarks/testdata/expected/pprof_common/file3.pprof b/user_activity_benchmarks/testdata/expected/pprof_common/file3.pprof
new file mode 100644
index 0000000..7bac48e
--- /dev/null
+++ b/user_activity_benchmarks/testdata/expected/pprof_common/file3.pprof
@@ -0,0 +1,4 @@
+function,file,dso,inclusive_count,flat,flat%,sum%,cum,cum%
+SkPackARGB32,/home/chrome-bot/chrome_root/src/third_party/skia/include/core/SkColorPriv.h,/opt/google/chrome/chrome,15535764,1628614163,1.64%,27.31%,1633246854,1.64%
+MOZ_Z_adler32,/home/chrome-bot/chrome_root/src/third_party/pdfium/third_party/zlib_v128/adler32.c,/opt/google/chrome/chrome,17825054,1455734663,1.46%,31.79%,1456692596,1.46%
+unpack_ubyte_b8g8r8a8_unorm,/build/gnawty/tmp/portage/media-libs/mesa-11.3.0-r14/work/Mesa-11.3.0/src/mesa/main/format_unpack.c,debug/opt/google/chrome/chrome,19183960,1137455802,1.14%,34.21%,1150209506,1.16%
\ No newline at end of file
diff --git a/user_activity_benchmarks/testdata/input/cwp_function_groups.txt b/user_activity_benchmarks/testdata/input/cwp_function_groups.txt
new file mode 100644
index 0000000..4233d03
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/cwp_function_groups.txt
@@ -0,0 +1,3 @@
+ab /a/b
+cd /c/d
+e /e
diff --git a/user_activity_benchmarks/testdata/input/cwp_functions_file.csv b/user_activity_benchmarks/testdata/input/cwp_functions_file.csv
new file mode 100644
index 0000000..6c5ed58
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/cwp_functions_file.csv
@@ -0,0 +1,38 @@
+function,file,dso,inclusive_count
+base::RunLoop::Run,/home/chrome-bot/chrome_root/src/base/run_loop.cc,debug/opt/google/chrome/chrome,45766441
+blink::InvalidationSet::invalidatesElement,/home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/invalidation/InvalidationSet.cpp,debug/opt/google/chrome/chrome,42293369
+base::MessageLoop::Run,/home/chrome-bot/chrome_root/src/base/message_loop/message_loop.cc,debug/opt/google/chrome/chrome,41135127
+blink::StyleInvalidator::RecursionCheckpoint::RecursionCheckpoint,debug/opt/google/chrome/chrome,38403286
+base::MessageLoop::RunTask,/home/chrome-bot/chrome_root/src/base/message_loop/message_loop.cc,debug/opt/google/chrome/chrome,38397557
+base::debug::TaskAnnotator::RunTask,/home/chrome-bot/chrome_root/src/base/debug/task_annotator.cc,debug/opt/google/chrome/chrome,38322520
+WTF::HashTableConstIterator::skipEmptyBuckets,debug/opt/google/chrome/chrome,34950293
+unpack_ubyte_b8g8r8a8_unorm /build/gnawty/tmp/portage/media-libs/mesa-11.3.0-r14/work/Mesa-11.3.0/src/mesa/main/format_unpack.c,debug/opt/google/chrome/chrome,34486616
+base::internal::RunnableAdapter::Run,/home/chrome-bot/chrome_root/src/base/bind_internal.h,debug/opt/google/chrome/chrome,34281237
+blink::Element::hasID /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/dom/Element.h,debug/opt/google/chrome/chrome,34237955
+blink::ElementV8Internal::idAttributeGetterCallback,debug/opt/google/chrome/chrome,32481250
+_start,,debug/opt/google/chrome/chrome,32451253
+__libc_start_main,/var/tmp/portage/cross-x86_64-cros-linux-gnu/glibc-2.19-r9/work/glibc-2.19/csu/libc-start.c,debug/lib64/libc-2.19.so,32124944
+blink::ElementV8Internal::getAttributeMethodCallback,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Element.cpp,debug/opt/google/chrome/chrome,30638548
+sha_transform /mnt/host/source/src/third_party/kernel/v3.10/lib/sha1.c,debug/opt/google/chrome/chrome,30615551
+ChromeMain,/home/chrome-bot/chrome_root/src/chrome/app/chrome_main.cc,debug/opt/google/chrome/chrome,30595408
+__clone,sysdeps/unix/sysv/linux/x86_64/clone.S,debug/lib64/libc-2.19.so,25480585
+start_thread,/var/tmp/portage/cross-x86_64-cros-linux-gnu/glibc-2.19-r9/work/glibc-2.19/nptl/pthread_create.c,debug/lib64/libpthread-2.19.so,24504351
+base::RunLoop::Run,/home/chrome-bot/chrome_root/src/base/run_loop.cc,/opt/google/chrome/chrome,21484525
+base::(anonymous namespace)::ThreadFunc,/home/chrome-bot/chrome_root/src/base/threading/platform_thread_posix.cc,debug/opt/google/chrome/chrome,20700177
+base::Callback::Run,/home/chrome-bot/chrome_root/src/base/callback.h,/opt/google/chrome/chrome,20455633
+,,//anon,20220979
+SkSwizzle_RB /home/chrome-bot/chrome_root/src/third_party/skia/include/core/SkColorPriv.h,debug/opt/google/chrome/chrome,19673187
+base::MessageLoop::Run,/home/chrome-bot/chrome_root/src/base/message_loop/message_loop.cc,/opt/google/chrome/chrome,19247788
+scheduler::TaskQueueManager::DoWork,/home/chrome-bot/chrome_root/src/components/scheduler/base/task_queue_manager.cc,debug/opt/google/chrome/chrome,19207528
+unpack_ubyte_b8g8r8a8_unorm,/build/gnawty/tmp/portage/media-libs/mesa-11.3.0-r14/work/Mesa-11.3.0/src/mesa/main/format_unpack.c,debug/opt/google/chrome/chrome,19183960
+scheduler::TaskQueueManager::ProcessTaskFromWorkQueue,/home/chrome-bot/chrome_root/src/components/scheduler/base/task_queue_manager.cc,debug/opt/google/chrome/chrome,18975400
+base::MessageLoop::DeferOrRunPendingTask,/home/chrome-bot/chrome_root/src/base/message_loop/message_loop.cc,/opt/google/chrome/chrome,17864182
+,[anon],100011
+blink::DocumentV8Internal::getElementByIdMethodCallbackForMainWorld /var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Document.cpp,/opt/google/chrome/chrome,17862466
+MOZ_Z_adler32,/home/chrome-bot/chrome_root/src/third_party/pdfium/third_party/zlib_v128/adler32.c,/opt/google/chrome/chrome,17825054
+base::internal::Invoker::Run,/home/chrome-bot/chrome_root/src/base/bind_internal.h,/opt/google/chrome/chrome,16438965
+base::MessageLoop::DoWork,/home/chrome-bot/chrome_root/src/base/message_loop/message_loop.cc,/opt/google/chrome/chrome,16029394
+base::internal::InvokeHelper::MakeItSo,/home/chrome-bot/chrome_root/src/base/bind_internal.h,/opt/google/chrome/chrome,15569953
+SkPackARGB32,/home/chrome-bot/chrome_root/src/third_party/skia/include/core/SkColorPriv.h,/opt/google/chrome/chrome,15535764
+base::Thread::ThreadMain,/home/chrome-bot/chrome_root/src/base/threading/thread.cc,debug/opt/google/chrome/chrome,15094458
+_start,,/opt/google/chrome/chrome,15014598
diff --git a/user_activity_benchmarks/testdata/input/inclusive_count_reference.csv b/user_activity_benchmarks/testdata/input/inclusive_count_reference.csv
new file mode 100644
index 0000000..bc0cca6
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/inclusive_count_reference.csv
@@ -0,0 +1,8 @@
+function,file,dso,inclusive_count,inclusive_count_fraction
+func_f,/a/b/file_f,f,1,1
+func_g,/a/b/file_g,g,2,2
+func_g,/a/b/../../a/b/file_g,g,3,2.4
+func_h,/c/d/file_h,h,4,3
+func_i,/c/d/file_i,i,5,4
+func_j,/e/file_j,j,6,5
+func_l,/e/file_l,l,7,6
diff --git a/user_activity_benchmarks/testdata/input/inclusive_count_test.csv b/user_activity_benchmarks/testdata/input/inclusive_count_test.csv
new file mode 100644
index 0000000..c993827
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/inclusive_count_test.csv
@@ -0,0 +1,8 @@
+function,file,dso,inclusive_count,inclusive_count_fraction
+func_f,/a/b/file_f,f,1,1.1
+func_g,/a/b/file_g,g,2,2.2
+func_f,/a/b/file_f,f,3,1.2
+func_h,/c/d/../../c/d/file_h,h,1,3.3
+func_i,/c/d/file_i,i,5,4.4
+func_j,/e/file_j,j,6,5.5
+func_k,/e/file_k,k,7,6.6
diff --git a/user_activity_benchmarks/testdata/input/pairwise_inclusive_count_reference.csv b/user_activity_benchmarks/testdata/input/pairwise_inclusive_count_reference.csv
new file mode 100644
index 0000000..7d7a49a
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/pairwise_inclusive_count_reference.csv
@@ -0,0 +1,5 @@
+parent_child_functions,child_function_file,inclusive_count
+func_f;;func_g,/a/../a/b/file_g,0.1
+func_f;;func_h,/c/d/../d/file_h,0.2
+func_f;;func_i,/c/d/file_i,0.3
+func_g;;func_j,/e/file_j,0.4
diff --git a/user_activity_benchmarks/testdata/input/pairwise_inclusive_count_test.csv b/user_activity_benchmarks/testdata/input/pairwise_inclusive_count_test.csv
new file mode 100644
index 0000000..a3fb72f
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/pairwise_inclusive_count_test.csv
@@ -0,0 +1,6 @@
+parent_child_functions,child_function_file,inclusive_count
+func_f;;func_g,/a/b/file_g2,0.01
+func_f;;func_h,/c/../c/d/file_h,0.02
+func_f;;func_i,/c/../c/d/file_i,0.03
+func_g;;func_j,/e/file_j,0.4
+func_g;;func_m,/e/file_m,0.6
diff --git a/user_activity_benchmarks/testdata/input/parse_cwp_statistics.csv b/user_activity_benchmarks/testdata/input/parse_cwp_statistics.csv
new file mode 100644
index 0000000..a4c7ced
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/parse_cwp_statistics.csv
@@ -0,0 +1,6 @@
+function,file,dso,inclusive_count
+dummy_method1,dummy_file1/a/b/../../,dummy_object1,1
+dummy_method2,dummy_file2//,dummy_object2,2
+,,321223321,1
+dummy_method3,dummy_file3/a/../,dummy_object3,3
+dummy_method4,dummy_file4/./,dummy_object4,4
diff --git a/user_activity_benchmarks/testdata/input/pprof_top/file1.pprof b/user_activity_benchmarks/testdata/input/pprof_top/file1.pprof
new file mode 100644
index 0000000..62e327b
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/pprof_top/file1.pprof
@@ -0,0 +1,20 @@
+File: perf
+Build ID: 1000000000
+Type: instructions_event
+Showing nodes accounting for 239632475284, 64.41% of 372058624378 total
+Dropped 33979 nodes (cum <= 1860293121)
+      flat  flat%   sum%        cum   cum%
+      115734836217 31.11% 31.11% 329503350629 88.56%  [anon]
+      9839378797  2.64% 33.75% 14384869492  3.87%  blink::v8StringToWebCoreString /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/bindings/core/v8/V8StringResource.cpp
+      6054608957  1.63% 35.38% 8069380147  2.17%  v8::Object::GetAlignedPointerFromInternalField /home/chrome-bot/chrome_root/src/v8/include/v8.h (inline)
+      4651723038  1.25% 36.63% 8205985387  2.21%  blink::ElementV8Internal::idAttributeGetterCallback /var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Element.cpp
+      4569044106  1.23% 37.86% 6408862507  1.72%  blink::NodeV8Internal::firstChildAttributeGetterCallbackForMainWorld /var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Node.cpp
+      3354819815   0.9% 38.76% 3361796139   0.9%  v8::internal::Internals::ReadField /home/chrome-bot/chrome_root/src/v8/include/v8.h (inline)
+      3277220829  0.88% 39.64% 14077115947  3.78%  blink::DocumentV8Internal::getElementByIdMethodCallbackForMainWorld /var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Document.cpp
+      3225711531  0.87% 40.51% 3228415743  0.87%  v8::internal::Internals::HasHeapObjectTag /home/chrome-bot/chrome_root/src/v8/include/v8.h (inline)
+      3139339048  0.84% 41.35% 3144663928  0.85%  v8::internal::Bitmap::MarkBitFromIndex /home/chrome-bot/chrome_root/src/v8/src/heap/spaces.h (inline)
+      3007599556  0.81% 42.16% 13057167098  3.51%  blink::ElementV8Internal::getAttributeMethodCallback /var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Element.cpp
+      2907238921  0.78% 42.94% 2930031660  0.79%  v8::base::NoBarrier_Load /home/chrome-bot/chrome_root/src/v8/src/base/atomicops_internals_x86_gcc.h (inline)
+      2791274646  0.75% 43.69% 11058283504  2.97%  v8::internal::MarkCompactMarkingVisitor::VisitUnmarkedObjects /home/chrome-bot/chrome_root/src/v8/src/heap/mark-compact.cc (inline)
+      2786321388  0.75% 44.44% 2794002850  0.75%  WTF::hashInt /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/wtf/HashFunctions.h (inline)
+      2725201614  0.73% 45.17% 3511333688  0.94%  base::RunLoop::Run /home/chrome-bot/chrome_root/src/base/run_loop.cc
diff --git a/user_activity_benchmarks/testdata/input/pprof_top/file2.pprof b/user_activity_benchmarks/testdata/input/pprof_top/file2.pprof
new file mode 100644
index 0000000..6d22bff
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/pprof_top/file2.pprof
@@ -0,0 +1,17 @@
+File: perf
+Build ID: 1000000000
+Type: instructions_event
+Showing nodes accounting for 48939666671, 42.14% of 116136877744 total
+Dropped 35196 nodes (cum <= 580684388)
+      flat  flat%   sum%        cum   cum%
+      4585860529  3.95%  3.95% 13583834527 11.70%  blink::InvalidationSet::invalidatesElement /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/invalidation/a/b/../../InvalidationSet.cpp
+      3791928512  3.27%  7.21% 35145646088 30.26%  blink::StyleInvalidator::invalidate /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp
+      2871318565  2.47%  9.69% 2979878602  2.57%  blink::StyleInvalidator::RecursionCheckpoint::~RecursionCheckpoint /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.h (inline)
+      1914657964  1.65% 11.33% 2164475253  1.86%  WTF::StringImpl::lower /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/wtf/text/StringImpl.cpp
+      1841071698  1.59% 12.92% 13112332809 11.29%  blink::StyleInvalidator::RecursionData::matchesCurrentInvalidationSets /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp (inline)
+      1825142681  1.57% 14.49% 1828134467  1.57%  blink::StyleInvalidator::RecursionCheckpoint::RecursionCheckpoint /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.h (inline)
+      1727655605  1.49% 15.98% 1925839708  1.66%  blink::Element::hasID /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/dom/Element.h (inline)
+      1548329435  1.33% 17.31% 14927333582 12.85%  blink::StyleInvalidator::checkInvalidationSetsAgainstElement /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp (inline)
+      1429307046  1.23% 18.54% 1931177544  1.66%  WTF::HashTableConstIterator::skipEmptyBuckets /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/wtf/HashTable.h
+      1298665649  1.12% 19.66% 4872203383  4.20%  blink::SelectorChecker::matchSelector /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/SelectorChecker.cpp
+      1241347773  1.07% 20.73% 88048746121 75.81%  [anon]
diff --git a/user_activity_benchmarks/testdata/input/pprof_top/file3.pprof b/user_activity_benchmarks/testdata/input/pprof_top/file3.pprof
new file mode 100644
index 0000000..6cbf124
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/pprof_top/file3.pprof
@@ -0,0 +1,21 @@
+File: perf
+Build ID: 1000000000
+Type: instructions_event
+Showing nodes accounting for 53216795676, 53.50% of 99475025143 total
+Dropped 39931 nodes (cum <= 497375125)
+      flat  flat%   sum%        cum   cum%
+      6447071173  6.48%  6.48% 6461127774  6.50%  s_mpv_mul_add_vec64 mpi/mpi_amd64_gas.s
+      5026798026  5.05% 11.53% 5033673091  5.06%  SkMulDiv255Round /home/chrome-bot/chrome_root/src/third_party/skia/include/core/SkMath.h (inline)
+      3520577246  3.54% 15.07% 4431002672  4.45%  wk_png_write_find_filter /home/chrome-bot/chrome_root/src/third_party/libpng/pngwutil.c
+      2907776944  2.92% 18.00% 3738572984  3.76%  __memcpy_sse2_unaligned ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S
+      2632046464  2.65% 20.64% 2636062338  2.65%  longest_match /home/chrome-bot/chrome_root/src/third_party/zlib/deflate.c (inline)
+      1699966816  1.71% 22.35% 1699966816  1.71%  _mm_set_epi32 /usr/lib/gcc/x86_64-cros-linux-gnu/4.9.x/include/emmintrin.h (inline)
+      1669101893  1.68% 24.03% 1673814801  1.68%  s_mp_sqr_comba_16 /build/gnawty/tmp/portage/dev-libs/nss-3.23-r1/work/nss-3.23/nss-.amd64/lib/freebl/mpi/mp_comba.c
+      1634108599  1.64% 25.67% 4636591817  4.66%  convert32_row /home/chrome-bot/chrome_root/src/third_party/skia/src/core/SkConfig8888.cpp
+      1628614163  1.64% 27.31% 1633246854  1.64%  SkPackARGB32 /home/chrome-bot/chrome_root/src/third_party/skia/include/core/SkColorPriv.h (inline)
+      1541044177  1.55% 28.86% 3001680713  3.02%  convert32 /home/chrome-bot/chrome_root/src/third_party/skia/src/core/SkConfig8888.cpp (inline)
+      1458290775  1.47% 30.32% 1459976296  1.47%  SkSwizzle_RB /home/chrome-bot/chrome_root/src/third_party/skia/include/core/SkColorPriv.h (inline)
+      1455734663  1.46% 31.79% 1456692596  1.46%  MOZ_Z_adler32 /home/chrome-bot/chrome_root/src/third_party/pdfium/third_party/zlib_v128/adler32.c
+      1272700545  1.28% 33.07% 1858067219  1.87%  sha_transform /mnt/host/source/src/third_party/kernel/v3.10/lib/sha1.c
+      1137455802  1.14% 34.21% 1150209506  1.16%  unpack_ubyte_b8g8r8a8_unorm /build/gnawty/tmp/portage/media-libs/mesa-11.3.0-r14/work/Mesa-11.3.0/src/mesa/main/format_unpack.c (inline)
+      1036731662  1.04% 35.25% 32561535338 32.73%  [anon]
diff --git a/user_activity_benchmarks/testdata/input/pprof_top_csv/file1.csv b/user_activity_benchmarks/testdata/input/pprof_top_csv/file1.csv
new file mode 100644
index 0000000..67af724
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/pprof_top_csv/file1.csv
@@ -0,0 +1,15 @@
+function,file,flat,flat_p,sum_p,cum,cum_p
+v8::internal::Bitmap::MarkBitFromIndex,/home/chrome-bot/chrome_root/src/v8/src/heap/spaces.h,3139339048,0.0084,0.4135,3144663928,0.0085
+v8::base::NoBarrier_Load,/home/chrome-bot/chrome_root/src/v8/src/base/atomicops_internals_x86_gcc.h,2907238921,0.0078,0.4294,2930031660,0.0079
+v8::Object::GetAlignedPointerFromInternalField,/home/chrome-bot/chrome_root/src/v8/include/v8.h,6054608957,0.0163,0.3538,8069380147,0.0217
+[anon],,115734836217,0.3111,0.3111,329503350629,0.8856
+base::RunLoop::Run,/home/chrome-bot/chrome_root/src/base/run_loop.cc,2725201614,0.0073,0.4517,3511333688,0.0094
+WTF::hashInt,/home/chrome-bot/chrome_root/src/third_party/WebKit/Source/wtf/HashFunctions.h,2786321388,0.0075,0.4444,2794002850,0.0075
+blink::ElementV8Internal::idAttributeGetterCallback,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Element.cpp,4651723038,0.0125,0.3663,8205985387,0.0221
+v8::internal::Internals::ReadField,/home/chrome-bot/chrome_root/src/v8/include/v8.h,3354819815,0.009,0.3876,3361796139,0.009
+blink::v8StringToWebCoreString,/home/chrome-bot/chrome_root/src/third_party/WebKit/Source/bindings/core/v8/V8StringResource.cpp,9839378797,0.0264,0.3375,14384869492,0.0387
+blink::NodeV8Internal::firstChildAttributeGetterCallbackForMainWorld,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Node.cpp,4569044106,0.0123,0.3786,6408862507,0.0172
+blink::DocumentV8Internal::getElementByIdMethodCallbackForMainWorld,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Document.cpp,3277220829,0.0088,0.3964,14077115947,0.0378
+v8::internal::MarkCompactMarkingVisitor::VisitUnmarkedObjects,/home/chrome-bot/chrome_root/src/v8/src/heap/mark-compact.cc,2791274646,0.0075,0.4369,11058283504,0.0297
+blink::ElementV8Internal::getAttributeMethodCallback,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Element.cpp,3007599556,0.0081,0.4216,13057167098,0.0351
+v8::internal::Internals::HasHeapObjectTag,/home/chrome-bot/chrome_root/src/v8/include/v8.h,3225711531,0.0087,0.4051,3228415743,0.0087
diff --git a/user_activity_benchmarks/testdata/input/pprof_tree/file1.pprof b/user_activity_benchmarks/testdata/input/pprof_tree/file1.pprof
new file mode 100644
index 0000000..69b5606
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/pprof_tree/file1.pprof
@@ -0,0 +1,29 @@
+File: perf
+Build ID: 37750b32016528ac896fc238e0d00513e218fd9e
+Type: instructions_event
+Showing nodes accounting for 234768811461, 63.10% of 372058624378 total
+Dropped 33979 nodes (cum <= 1860293121)
+Showing top 80 nodes out of 271
+----------------------------------------------------------+-------------
+      flat  flat%   sum%        cum   cum%   calls calls% + context 	 	 
+----------------------------------------------------------+-------------
+                                       13412390629 93.24% |   blink::V8StringResource::toString /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/bindings/core/v8/V8StringResource.h
+                                         437497332  3.04% |   [anon]
+                                         378465996  2.63% |   blink::V8StringResource::operator WTF::AtomicString /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/bindings/core/v8/V8StringResource.h
+9839378797  2.64% 33.75% 14384869492  3.87%                | blink::v8StringToWebCoreString /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/bindings/core/v8/V8StringResource.cpp
+                                        3180428647 22.11% |   v8::String::GetExternalStringResourceBase /home/chrome-bot/chrome_root/src/v8/include/v8.h (inline)
+                                         514301458  3.58% |   WTF::RefPtr::RefPtr /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/wtf/RefPtr.h (inline)
+----------------------------------------------------------+-------------
+                                        8205985387   100% |   [anon]
+4651723038  1.25% 36.63% 8205985387  2.21%                | blink::ElementV8Internal::idAttributeGetterCallback /var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Element.cpp
+                                         717786059  8.75% |   v8::Object::GetAlignedPointerFromInternalField /home/chrome-bot/chrome_root/src/v8/include/v8.h (inline)
+----------------------------------------------------------+-------------
+                                        6408862507   100% |   [anon]
+4569044106  1.23% 37.86% 6408862507  1.72%                | blink::NodeV8Internal::firstChildAttributeGetterCallbackForMainWorld /var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Node.cpp
+                                         773479621 12.07% |   v8::Object::GetAlignedPointerFromInternalField /home/chrome-bot/chrome_root/src/v8/include/v8.h (inline)
+                                         690710254 10.78% |   blink::v8SetReturnValueForMainWorld /home/chrome-bot/chrome_root/src/third_party/WebKit/Source/bindings/core/v8/V8Binding.h (inline)
+----------------------------------------------------------+-------------
+                                        2005371070 59.65% |   v8::Object::GetAlignedPointerFromInternalField /home/chrome-bot/chrome_root/src/v8/include/v8.h (inline)
+                                         954968101 28.41% |   v8::String::GetExternalStringResourceBase /home/chrome-bot/chrome_root/src/v8/include/v8.h (inline)
+3354819815   0.9% 38.76% 3361796139   0.9%                | v8::internal::Internals::ReadField /home/chrome-bot/chrome_root/src/v8/include/v8.h
+----------------------------------------------------------+-------------
diff --git a/user_activity_benchmarks/testdata/input/pprof_tree_csv/file1.csv b/user_activity_benchmarks/testdata/input/pprof_tree_csv/file1.csv
new file mode 100644
index 0000000..9b15561
--- /dev/null
+++ b/user_activity_benchmarks/testdata/input/pprof_tree_csv/file1.csv
@@ -0,0 +1,6 @@
+parent_function,parent_function_file,child_function,child_function_file,inclusive_count_fraction
+blink::ElementV8Internal::idAttributeGetterCallback,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Element.cpp,v8::Object::GetAlignedPointerFromInternalField,/home/chrome-bot/chrome_root/src/v8/include/v8.h,0.0875
+blink::v8StringToWebCoreString,/home/chrome-bot/chrome_root/src/third_party/WebKit/Source/bindings/core/v8/V8StringResource.cpp,WTF::RefPtr::RefPtr,/home/chrome-bot/chrome_root/src/third_party/WebKit/Source/wtf/RefPtr.h,0.0358
+blink::v8StringToWebCoreString,/home/chrome-bot/chrome_root/src/third_party/WebKit/Source/bindings/core/v8/V8StringResource.cpp,v8::String::GetExternalStringResourceBase,/home/chrome-bot/chrome_root/src/v8/include/v8.h,0.2211
+blink::NodeV8Internal::firstChildAttributeGetterCallbackForMainWorld,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Node.cpp,blink::v8SetReturnValueForMainWorld,/home/chrome-bot/chrome_root/src/third_party/WebKit/Source/bindings/core/v8/V8Binding.h,0.10779999999999999
+blink::NodeV8Internal::firstChildAttributeGetterCallbackForMainWorld,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Node.cpp,v8::Object::GetAlignedPointerFromInternalField,/home/chrome-bot/chrome_root/src/v8/include/v8.h,0.1207
diff --git a/user_activity_benchmarks/testdata/results/pprof_common/file1.pprof b/user_activity_benchmarks/testdata/results/pprof_common/file1.pprof
new file mode 100644
index 0000000..30d4c83
--- /dev/null
+++ b/user_activity_benchmarks/testdata/results/pprof_common/file1.pprof
@@ -0,0 +1,3 @@
+function,file,dso,inclusive_count,flat,flat%,sum%,cum,cum%
+blink::ElementV8Internal::getAttributeMethodCallback,/var/cache/chromeos-chrome/chrome-src-internal/src/out_gnawty/Release/gen/blink/bindings/core/v8/V8Element.cpp,debug/opt/google/chrome/chrome,30638548,3007599556,0.81%,42.16%,13057167098,3.51%
+base::RunLoop::Run,/home/chrome-bot/chrome_root/src/base/run_loop.cc,/opt/google/chrome/chrome,21484525,2725201614,0.73%,45.17%,3511333688,0.94%
\ No newline at end of file
diff --git a/user_activity_benchmarks/testdata/results/pprof_common/file2.pprof b/user_activity_benchmarks/testdata/results/pprof_common/file2.pprof
new file mode 100644
index 0000000..bef9266
--- /dev/null
+++ b/user_activity_benchmarks/testdata/results/pprof_common/file2.pprof
@@ -0,0 +1,2 @@
+function,file,dso,inclusive_count,flat,flat%,sum%,cum,cum%
+blink::InvalidationSet::invalidatesElement,/home/chrome-bot/chrome_root/src/third_party/WebKit/Source/core/css/invalidation/InvalidationSet.cpp,debug/opt/google/chrome/chrome,42293369,4585860529,3.95%,3.95%,13583834527,11.70%
\ No newline at end of file
diff --git a/user_activity_benchmarks/testdata/results/pprof_common/file3.pprof b/user_activity_benchmarks/testdata/results/pprof_common/file3.pprof
new file mode 100644
index 0000000..7bac48e
--- /dev/null
+++ b/user_activity_benchmarks/testdata/results/pprof_common/file3.pprof
@@ -0,0 +1,4 @@
+function,file,dso,inclusive_count,flat,flat%,sum%,cum,cum%
+SkPackARGB32,/home/chrome-bot/chrome_root/src/third_party/skia/include/core/SkColorPriv.h,/opt/google/chrome/chrome,15535764,1628614163,1.64%,27.31%,1633246854,1.64%
+MOZ_Z_adler32,/home/chrome-bot/chrome_root/src/third_party/pdfium/third_party/zlib_v128/adler32.c,/opt/google/chrome/chrome,17825054,1455734663,1.46%,31.79%,1456692596,1.46%
+unpack_ubyte_b8g8r8a8_unorm,/build/gnawty/tmp/portage/media-libs/mesa-11.3.0-r14/work/Mesa-11.3.0/src/mesa/main/format_unpack.c,debug/opt/google/chrome/chrome,19183960,1137455802,1.14%,34.21%,1150209506,1.16%
\ No newline at end of file
diff --git a/user_activity_benchmarks/utils.py b/user_activity_benchmarks/utils.py
new file mode 100644
index 0000000..009b241
--- /dev/null
+++ b/user_activity_benchmarks/utils.py
@@ -0,0 +1,402 @@
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Utility functions for parsing pprof, CWP data and Chrome OS groups files."""
+
+from collections import defaultdict
+
+import csv
+import os
+import re
+
+SEPARATOR_REGEX = re.compile(r'-+\+-+')
+FUNCTION_STATISTIC_REGEX = \
+    re.compile(r'(\S+)\s+(\S+)%\s+(\S+)%\s+(\S+)\s+(\S+)%')
+CHILD_FUNCTION_PERCENTAGE_REGEX = re.compile(r'([0-9.]+)%')
+FUNCTION_KEY_SEPARATOR_REGEX = re.compile(r'\|\s+')
+# Constants used to identify if a function is common in the pprof and CWP
+# files.
+COMMON_FUNCTION = 'common'
+EXTRA_FUNCTION = 'extra'
+PARENT_CHILD_FUNCTIONS_SEPARATOR = ';;'
+# List of pairs of strings used for make substitutions in file names to make
+# CWP and pprof data consistent.
+FILE_NAME_REPLACING_PAIR_STRINGS = [('gnawty', 'BOARD'),
+                                    ('amd64-generic', 'BOARD'),
+                                    (' ../sysdeps', ',sysdeps'),
+                                    (' ../nptl', ',nptl'),
+                                    ('  aes-x86_64.s', ',aes-x86_64.s'),
+                                    (' (inline)', ''),
+                                    (' (partial-inline)', ''),
+                                    (' ../', ','),
+                                    ('../', '')]
+# Separator used to delimit the function from the file name.
+FUNCTION_FILE_SEPARATOR = ' /'
+
+
+def MakeCWPAndPprofFileNamesConsistent(file_name):
+  """Makes the CWP and pprof file names consistent.
+
+  For the same function, it may happen for some file paths to differ slightly
+  in the CWP data compared to the pprof output. In a file name, for each tuple
+  element of the list, we substitute the first element with the second one.
+
+  Args:
+    file_name: A string representing the name of the file.
+
+  Returns:
+    A string representing the modified name of tihe file.
+  """
+  file_name = file_name.replace(', ', '; ')
+  for replacing_pair_string in FILE_NAME_REPLACING_PAIR_STRINGS:
+    file_name = file_name.replace(replacing_pair_string[0],
+                                  replacing_pair_string[1])
+
+  return file_name
+
+def MakePprofFunctionKey(function_and_file_name):
+  """Creates the function key from the function and file name.
+
+  Parsing the the pprof --top and --tree outputs is difficult due to the fact
+  that it hard to extract the function and file name (i.e the function names
+  can have a lot of unexpected charachters such as spaces, operators etc).
+  For the moment, we used FUNCTION_FILE_SEPARATOR as delimiter between the
+  function and the file name. However, there are some cases where the file name
+  does not start with / and we treat this cases separately (i.e ../sysdeps,
+  ../nptl, aes-x86_64.s).
+
+  Args:
+    function_and_file_name: A string representing the function and the file name
+      as it appears in the pprof output.
+
+  Returns:
+    A string representing the function key, composed from the function and file
+    name, comma separated.
+  """
+  # TODO(evelinad): Use pprof --topproto instead of pprof --top to parse
+  # protobuffers instead of text output. Investigate if there is an equivalent
+  # for pprof --tree that gives protobuffer output.
+  #
+  # In the CWP output, we replace the , with ; as a workaround for parsing
+  # csv files. We do the same for the pprof output.
+  #
+  # TODO(evelinad): Use dremel --csv_dialect=excel-tab in the queries for
+  # replacing the , delimiter with tab.
+  function_and_file_name = function_and_file_name.replace(', ', '; ')
+  # If the function and file name sequence contains the FUNCTION_FILE_SEPARATOR,
+  # we normalize the path name of the file and make the string subtitutions
+  # to make the CWP and pprof data  consistent. The returned key is composed
+  # from the function name and normalized file path name, separated by a comma.
+  # If the function and file name does not contain the FUNCTION_FILE_SEPARATOR,
+  # we just do the strings substitution.
+  if FUNCTION_FILE_SEPARATOR in function_and_file_name:
+    function_name, file_name = \
+        function_and_file_name.split(FUNCTION_FILE_SEPARATOR)
+    file_name = \
+        MakeCWPAndPprofFileNamesConsistent(os.path.normpath("/" + file_name))
+    return ','.join([function_name, file_name])
+
+  return MakeCWPAndPprofFileNamesConsistent(function_and_file_name)
+
+
+def ComputeCWPCummulativeInclusiveStatistics(cwp_inclusive_count_statistics):
+  """Computes the cumulative inclusive count value of a function.
+
+  A function might appear declared in multiple files or objects. When
+  computing the fraction of the inclusive count value from a child function to
+  the parent function, we take into consideration the sum of the
+  inclusive_count
+  count values from all the ocurences of that function.
+
+  Args:
+    cwp_inclusive_count_statistics: A dict containing the inclusive count
+    statistics extracted by the ParseCWPInclusiveCountFile method.
+
+  Returns:
+    A dict having as a ket the name of the function and as a value the sum of
+    the inclusive count values of the occurences of the functions from all
+    the files and objects.
+  """
+  cwp_inclusive_count_statistics_cumulative = defaultdict(int)
+
+  for function_key, function_statistics \
+      in cwp_inclusive_count_statistics.iteritems():
+    function_name, _ = function_key.split(',')
+    cwp_inclusive_count_statistics_cumulative[function_name] += \
+        function_statistics[1]
+
+  return cwp_inclusive_count_statistics_cumulative
+
+def ComputeCWPChildFunctionsFractions(cwp_inclusive_count_statistics_cumulative,
+                                      cwp_pairwise_inclusive_count_statistics):
+  """Computes the fractions of the inclusive count values for child functions.
+
+  The fraction represents the inclusive count value of a child function over
+  the one of the parent function.
+
+  Args:
+    cwp_inclusive_count_statistics_cumulative: A dict containing the
+      cumulative inclusive count values of the CWP functions.
+    cwp_pairwise_inclusive_count_statistics: A dict containing the inclusive
+      count statistics for pairs of parent and child functions. The key is the
+      parent function. The value is a dict with the key the name of the child
+      function and the file name, comma separated, and the value is the
+      inclusive count value of the pair of parent and child functions.
+
+  Returns:
+      A dict containing the inclusive count statistics for pairs of parent
+      and child functions. The key is the parent function. The value is a
+      dict with the key the name of the child function and the file name,
+      comma separated, and the value is the inclusive count fraction of the
+      child function out of the parent function.
+  """
+
+  pairwise_inclusive_count_fractions = {}
+
+  for parent_function_key, child_functions_metrics in \
+      cwp_pairwise_inclusive_count_statistics.iteritems():
+    child_functions_fractions = {}
+    parent_function_inclusive_count = \
+    cwp_inclusive_count_statistics_cumulative.get(parent_function_key, 0.0)
+
+    if parent_function_key in cwp_inclusive_count_statistics_cumulative:
+      for child_function_key, child_function_inclusive_count \
+          in child_functions_metrics.iteritems():
+        child_functions_fractions[child_function_key] = \
+           child_function_inclusive_count / parent_function_inclusive_count
+    else:
+      for child_function_key, child_function_inclusive_count \
+          in child_functions_metrics.iteritems():
+        child_functions_fractions[child_function_key] = 0.0
+    pairwise_inclusive_count_fractions[parent_function_key] = \
+        child_functions_fractions
+
+  return pairwise_inclusive_count_fractions
+
+def ParseFunctionGroups(cwp_function_groups_lines):
+  """Parses the contents of the function groups file.
+
+  Args:
+    cwp_function_groups_lines: A list of the lines contained in the CWP
+      function groups file. A line contains the group name and the file path
+      that describes the group, separated by a space.
+
+  Returns:
+    A list of tuples containing the group name and the file path.
+  """
+  # The order of the groups mentioned in the cwp_function_groups file
+  # matters. A function declared in a file will belong to the first
+  # mentioned group that matches its path to the one of the file.
+  # It is possible to have multiple paths that belong to the same group.
+  return [tuple(line.split()) for line in cwp_function_groups_lines]
+
+
+def ParsePprofTopOutput(file_name):
+  """Parses a file that contains the output of the pprof --top command.
+
+  Args:
+    file_name: The name of the file containing the pprof --top output.
+
+  Returns:
+    A dict having as a key the name of the function and the file containing
+    the declaration of the function, separated by a comma, and as a value
+    a tuple containing the flat, flat percentage, sum percentage, cummulative
+    and cummulative percentage values.
+  """
+
+  pprof_top_statistics = {}
+
+  # In the pprof top output, the statistics of the functions start from the
+  # 6th line.
+  with open(file_name) as input_file:
+    pprof_top_content = input_file.readlines()[6:]
+
+  for line in pprof_top_content:
+    function_statistic_match = FUNCTION_STATISTIC_REGEX.search(line)
+    flat, flat_p, sum_p, cum, cum_p = function_statistic_match.groups()
+    flat_p = str(float(flat_p) / 100.0)
+    sum_p = str(float(sum_p) / 100.0)
+    cum_p = str(float(cum_p) / 100.0)
+    lookup_index = function_statistic_match.end()
+    function_and_file_name = line[lookup_index + 2 : -1]
+    key = MakePprofFunctionKey(function_and_file_name)
+    pprof_top_statistics[key] = (flat, flat_p, sum_p, cum, cum_p)
+  return pprof_top_statistics
+
+
+def ParsePprofTreeOutput(file_name):
+  """Parses a file that contains the output of the pprof --tree command.
+
+  Args:
+    file_name: The name of the file containing the pprof --tree output.
+
+  Returns:
+    A dict including the statistics for pairs of parent and child functions.
+    The key is the name of the parent function and the file where the
+    function is declared, separated by a comma. The value is a dict having as
+    a key the name of the child function and the file where the function is
+    delcared, comma separated and as a value the percentage of time the
+    parent function spends in the child function.
+  """
+
+  # In the pprof output, the statistics of the functions start from the 9th
+  # line.
+  with open(file_name) as input_file:
+    pprof_tree_content = input_file.readlines()[9:]
+
+  pprof_tree_statistics = defaultdict(lambda: defaultdict(float))
+  track_child_functions = False
+
+  # The statistics of a given function, its parent and child functions are
+  # included between two separator marks.
+  # All the parent function statistics are above the line containing the
+  # statistics of the given function.
+  # All the statistics of a child function are below the statistics of the
+  # given function.
+  # The statistics of a parent or a child function contain the calls, calls
+  # percentage, the function name and the file where the function is declared.
+  # The statistics of the given function contain the flat, flat percentage,
+  # sum percentage, cummulative, cummulative percentage, function name and the
+  # name of the file containing the declaration of the function.
+  for line in pprof_tree_content:
+    separator_match = SEPARATOR_REGEX.search(line)
+
+    if separator_match:
+      track_child_functions = False
+      continue
+
+    parent_function_statistic_match = FUNCTION_STATISTIC_REGEX.search(line)
+
+    if parent_function_statistic_match:
+      track_child_functions = True
+      lookup_index = parent_function_statistic_match.end()
+      parent_function_key_match = \
+          FUNCTION_KEY_SEPARATOR_REGEX.search(line, pos=lookup_index)
+      lookup_index = parent_function_key_match.end()
+      parent_function_key = MakePprofFunctionKey(line[lookup_index:-1])
+      continue
+
+    if not track_child_functions:
+      continue
+
+    child_function_statistic_match = \
+        CHILD_FUNCTION_PERCENTAGE_REGEX.search(line)
+    child_function_percentage = \
+        float(child_function_statistic_match.group(1))
+    lookup_index = child_function_statistic_match.end()
+    child_function_key_match = \
+        FUNCTION_KEY_SEPARATOR_REGEX.search(line, pos=lookup_index)
+    lookup_index = child_function_key_match.end()
+    child_function_key = MakePprofFunctionKey(line[lookup_index:-1])
+
+    pprof_tree_statistics[parent_function_key][child_function_key] += \
+        child_function_percentage / 100.0
+
+  return pprof_tree_statistics
+
+
+def ParseCWPInclusiveCountFile(file_name):
+  """Parses the CWP inclusive count files.
+
+  A line should contain the name of the function, the file name with the
+  declaration, the inclusive count and inclusive count fraction out of the
+  total extracted inclusive count values.
+
+  Args:
+    file_name: The file containing the inclusive count values of the CWP
+    functions.
+
+  Returns:
+    A dict containing the inclusive count statistics. The key is the name of
+    the function and the file name, comma separated. The value represents a
+    tuple with the object name containing the function declaration, the
+    inclusive count and inclusive count fraction values, and a marker to
+    identify if the function is present in one of the benchmark profiles.
+  """
+  cwp_inclusive_count_statistics = defaultdict(lambda: ('', 0, 0.0, 0))
+
+  with open(file_name) as input_file:
+    statistics_reader = csv.DictReader(input_file, delimiter=',')
+    for statistic in statistics_reader:
+      function_name = statistic['function']
+      file_name = MakeCWPAndPprofFileNamesConsistent(
+          os.path.normpath(statistic['file']))
+      dso_name = statistic['dso']
+      inclusive_count = statistic['inclusive_count']
+      inclusive_count_fraction = statistic['inclusive_count_fraction']
+
+      # We ignore the lines that have empty fields(i.e they specify only the
+      # addresses of the functions and the inclusive counts values).
+      if all([
+          function_name, file_name, dso_name, inclusive_count,
+          inclusive_count_fraction
+      ]):
+        key = '%s,%s' % (function_name, file_name)
+
+        # There might be situations where a function appears in multiple files
+        # or objects. Such situations can occur when in the Dremel queries there
+        # are not specified the Chrome OS version and the name of the board (i.e
+        # the files can belong to different kernel or library versions).
+        inclusive_count_sum = \
+            cwp_inclusive_count_statistics[key][1] + int(inclusive_count)
+        inclusive_count_fraction_sum = \
+            cwp_inclusive_count_statistics[key][2] + \
+            float(inclusive_count_fraction)
+
+        # All the functions are initially marked as EXTRA_FUNCTION.
+        value = \
+            (dso_name, inclusive_count_sum, inclusive_count_fraction_sum,
+             EXTRA_FUNCTION)
+        cwp_inclusive_count_statistics[key] = value
+
+  return cwp_inclusive_count_statistics
+
+
+def ParseCWPPairwiseInclusiveCountFile(file_name):
+  """Parses the CWP pairwise inclusive count files.
+
+  A line of the file should contain a pair of a parent and a child function,
+  concatenated by the PARENT_CHILD_FUNCTIONS_SEPARATOR, the name of the file
+  where the child function is declared and the inclusive count fractions of
+  the pair of functions out of the total amount of inclusive count values.
+
+  Args:
+    file_name: The file containing the pairwise inclusive_count statistics of
+      the
+    CWP functions.
+
+  Returns:
+    A dict containing the statistics of the parent functions and each of
+    their child functions. The key of the dict is the name of the parent
+    function. The value is a dict having as a key the name of the child
+    function with its file name separated by a ',' and as a value the
+    inclusive count value of the parent-child function pair.
+  """
+  pairwise_inclusive_count_statistics = defaultdict(lambda: defaultdict(float))
+
+  with open(file_name) as input_file:
+    statistics_reader = csv.DictReader(input_file, delimiter=',')
+
+    for statistic in statistics_reader:
+      parent_function_name, child_function_name = \
+          statistic['parent_child_functions'].split(
+              PARENT_CHILD_FUNCTIONS_SEPARATOR)
+      child_function_file_name = MakeCWPAndPprofFileNamesConsistent(
+          os.path.normpath(statistic['child_function_file']))
+      inclusive_count = statistic['inclusive_count']
+
+      # There might be situations where a child function appears in
+      # multiple files or objects. Such situations can occur when in the
+      # Dremel queries are not specified the Chrome OS version and the
+      # name of the board (i.e the files can belong to different kernel or
+      # library versions), when the child function is a template function
+      # that is declared in a header file or there are name collisions
+      # between multiple executable objects.
+      # If a pair of child and parent functions appears multiple times, we
+      # add their inclusive count values.
+      child_function_key = ','.join(
+          [child_function_name, child_function_file_name])
+      pairwise_inclusive_count_statistics[parent_function_name] \
+          [child_function_key] += float(inclusive_count)
+
+  return pairwise_inclusive_count_statistics
diff --git a/user_activity_benchmarks/utils_unittest.py b/user_activity_benchmarks/utils_unittest.py
new file mode 100755
index 0000000..31bf83d
--- /dev/null
+++ b/user_activity_benchmarks/utils_unittest.py
@@ -0,0 +1,133 @@
+#!/usr/bin/python2
+
+# Copyright 2016 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Unit tests for the utility module."""
+
+import collections
+import csv
+import unittest
+
+import utils
+
+
+class UtilsTest(unittest.TestCase):
+  """Test class for utility module."""
+
+  def __init__(self, *args, **kwargs):
+    super(UtilsTest, self).__init__(*args, **kwargs)
+    self._pprof_top_csv_file = 'testdata/input/pprof_top_csv/file1.csv'
+    self._pprof_top_file = 'testdata/input/pprof_top/file1.pprof'
+    self._pprof_tree_csv_file = 'testdata/input/pprof_tree_csv/file1.csv'
+    self._pprof_tree_file = 'testdata/input/pprof_tree/file1.pprof'
+    self._pairwise_inclusive_count_test_file = \
+        'testdata/input/pairwise_inclusive_count_test.csv'
+    self._pairwise_inclusive_count_reference_file = \
+        'testdata/input/pairwise_inclusive_count_reference.csv'
+    self._inclusive_count_test_file = \
+       'testdata/input/inclusive_count_test.csv'
+    self._inclusive_count_reference_file = \
+        'testdata/input/inclusive_count_reference.csv'
+
+  def testParseFunctionGroups(self):
+    cwp_function_groups_lines = \
+        ['group1 /a\n', 'group2 /b\n', 'group3 /c\n', 'group4 /d\n']
+    expected_output = [('group1', '/a'), ('group2', '/b'), ('group3', '/c'),
+                       ('group4', '/d')]
+    result = utils.ParseFunctionGroups(cwp_function_groups_lines)
+
+    self.assertListEqual(expected_output, result)
+
+  def testParsePProfTopOutput(self):
+    result_pprof_top_output = utils.ParsePprofTopOutput(self._pprof_top_file)
+    expected_pprof_top_output = {}
+
+    with open(self._pprof_top_csv_file) as input_file:
+      statistics_reader = csv.DictReader(input_file, delimiter=',')
+
+      for statistic in statistics_reader:
+        if statistic['file']:
+          function_key = ','.join([statistic['function'], statistic['file']])
+        else:
+          function_key = statistic['function']
+        expected_pprof_top_output[function_key] = \
+            (statistic['flat'], statistic['flat_p'], statistic['sum_p'],
+             statistic['cum'], statistic['cum_p'])
+
+    self.assertDictEqual(result_pprof_top_output, expected_pprof_top_output)
+
+  def testParsePProfTreeOutput(self):
+    result_pprof_tree_output = utils.ParsePprofTreeOutput(self._pprof_tree_file)
+    expected_pprof_tree_output = collections.defaultdict(dict)
+
+    with open(self._pprof_tree_csv_file) as input_file:
+      statistics_reader = csv.DictReader(input_file, delimiter=',')
+
+      for statistic in statistics_reader:
+        parent_function_key = \
+            ','.join([statistic['parent_function'],
+                      statistic['parent_function_file']])
+        child_function_key = \
+            ','.join([statistic['child_function'],
+                      statistic['child_function_file']])
+
+        expected_pprof_tree_output[parent_function_key][child_function_key] = \
+            float(statistic['inclusive_count_fraction'])
+
+    self.assertDictEqual(result_pprof_tree_output, expected_pprof_tree_output)
+
+  def testParseCWPInclusiveCountFile(self):
+    expected_inclusive_statistics_test = \
+        {'func_i,/c/d/file_i': ('i', 5, 4.4, utils.EXTRA_FUNCTION),
+         'func_j,/e/file_j': ('j', 6, 5.5, utils.EXTRA_FUNCTION),
+         'func_f,/a/b/file_f': ('f', 4, 2.3, utils.EXTRA_FUNCTION),
+         'func_h,/c/d/file_h': ('h', 1, 3.3, utils.EXTRA_FUNCTION),
+         'func_k,/e/file_k': ('k', 7, 6.6, utils.EXTRA_FUNCTION),
+         'func_g,/a/b/file_g': ('g', 2, 2.2, utils.EXTRA_FUNCTION)}
+    expected_inclusive_statistics_reference = \
+        {'func_i,/c/d/file_i': ('i', 5, 4.0, utils.EXTRA_FUNCTION),
+         'func_j,/e/file_j': ('j', 6, 5.0, utils.EXTRA_FUNCTION),
+         'func_f,/a/b/file_f': ('f', 1, 1.0, utils.EXTRA_FUNCTION),
+         'func_l,/e/file_l': ('l', 7, 6.0, utils.EXTRA_FUNCTION),
+         'func_h,/c/d/file_h': ('h', 4, 3.0, utils.EXTRA_FUNCTION),
+         'func_g,/a/b/file_g': ('g', 5, 4.4, utils.EXTRA_FUNCTION)}
+    result_inclusive_statistics_test = \
+        utils.ParseCWPInclusiveCountFile(self._inclusive_count_test_file)
+    result_inclusive_statistics_reference = \
+        utils.ParseCWPInclusiveCountFile(self._inclusive_count_reference_file)
+
+    self.assertDictEqual(result_inclusive_statistics_test,
+                         expected_inclusive_statistics_test)
+    self.assertDictEqual(result_inclusive_statistics_reference,
+                         expected_inclusive_statistics_reference)
+
+  def testParseCWPPairwiseInclusiveCountFile(self):
+    expected_pairwise_inclusive_statistics_test = {
+        'func_f': {'func_g,/a/b/file_g2': 0.01,
+                   'func_h,/c/d/file_h': 0.02,
+                   'func_i,/c/d/file_i': 0.03},
+        'func_g': {'func_j,/e/file_j': 0.4,
+                   'func_m,/e/file_m': 0.6}
+    }
+    expected_pairwise_inclusive_statistics_reference = {
+        'func_f': {'func_g,/a/b/file_g': 0.1,
+                   'func_h,/c/d/file_h': 0.2,
+                   'func_i,/c/d/file_i': 0.3},
+        'func_g': {'func_j,/e/file_j': 0.4}
+    }
+    result_pairwise_inclusive_statistics_test = \
+        utils.ParseCWPPairwiseInclusiveCountFile(
+            self._pairwise_inclusive_count_test_file)
+    result_pairwise_inclusive_statistics_reference = \
+        utils.ParseCWPPairwiseInclusiveCountFile(
+            self._pairwise_inclusive_count_reference_file)
+
+    self.assertDictEqual(result_pairwise_inclusive_statistics_test,
+                         expected_pairwise_inclusive_statistics_test)
+    self.assertDictEqual(result_pairwise_inclusive_statistics_reference,
+                         expected_pairwise_inclusive_statistics_reference)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/verify_compiler.py b/verify_compiler.py
new file mode 100755
index 0000000..9eafbb8
--- /dev/null
+++ b/verify_compiler.py
@@ -0,0 +1,234 @@
+#!/usr/bin/env python2
+"""Verify that a ChromeOS sub-tree was built with a particular compiler"""
+
+from __future__ import print_function
+
+import argparse
+import fnmatch
+import os
+import sys
+
+from cros_utils import command_executer
+
+COMPILERS = ['gcc', 'clang']
+
+COMPILER_STRINGS = {'gcc': 'GNU C', 'clang': 'clang version'}
+
+ERR_NO_DEBUG_INFO = 1024
+
+
+def UsageError(parser, message):
+  """Output error message and help/usage info."""
+
+  print('ERROR: %s' % message)
+  parser.print_help()
+  sys.exit(0)
+
+
+def CreateTmpDwarfFile(filename, dwarf_file, cmd_executer):
+  """Create temporary dwarfdump file, to be parsed later."""
+
+  cmd = ('readelf --debug-dump=info %s | grep -A5 DW_AT_producer > %s' %
+         (filename, dwarf_file))
+  retval = cmd_executer.RunCommand(cmd, print_to_console=False)
+  return retval
+
+
+def FindAllFiles(root_dir, cmd_executer):
+  """Create a list of all the *.debug and *.dwp files to be checked."""
+
+  file_list = []
+  tmp_list = [
+      os.path.join(dirpath, f)
+      for dirpath, dirnames, files in os.walk(root_dir)
+      for f in fnmatch.filter(files, '*.debug')
+  ]
+  for f in tmp_list:
+    if 'build-id' not in f:
+      file_list.append(f)
+  tmp_list = [
+      os.path.join(dirpath, f)
+      for dirpath, dirnames, files in os.walk(root_dir)
+      for f in fnmatch.filter(files, '*.dwp')
+  ]
+  file_list += tmp_list
+  return file_list
+
+
+def VerifyArgs(compiler, filename, tmp_dir, root_dir, options, parser):
+  """Verify that the option values and combinations are valid."""
+
+  if options.filename and options.all_files:
+    UsageError(parser, 'Cannot use both --file and --all_files.')
+  if options.filename and options.root_dir:
+    UsageError(parser, 'Cannot use both --file and --root_dir.')
+  if options.all_files and not options.root_dir:
+    UsageError(parser, 'Missing --root_dir option.')
+  if options.root_dir and not options.all_files:
+    UsageError(parser, 'Missing --all_files option.')
+  if not options.filename and not options.all_files:
+    UsageError(parser, 'Must specify either --file or --all_files.')
+
+  # Verify that the values specified are valid.
+  if filename:
+    if not os.path.exists(filename):
+      UsageError(parser, 'Cannot find %s' % filename)
+  compiler = options.compiler.lower()
+  if compiler not in COMPILERS:
+    UsageError(parser, '%s is not a valid compiler (gcc or clang).' % compiler)
+  if root_dir and not os.path.exists(root_dir):
+    UsageError(parser, '%s does not exist.' % root_dir)
+  if not os.path.exists(tmp_dir):
+    os.makedirs(tmp_dir)
+
+
+def CheckFile(filename, compiler, tmp_dir, options, cmd_executer):
+  """Verify the information in a single file."""
+
+  print('Checking %s' % filename)
+  # Verify that file contains debug information.
+  cmd = 'readelf -SW %s | grep debug_info' % filename
+  retval = cmd_executer.RunCommand(cmd, print_to_console=False)
+  if retval != 0:
+    print('No debug info in this file. Unable to verify compiler.')
+    # There's no debug info in this file, so skip it.
+    return ERR_NO_DEBUG_INFO
+
+  tmp_name = os.path.basename(filename) + '.dwarf'
+  dwarf_file = os.path.join(tmp_dir, tmp_name)
+  status = CreateTmpDwarfFile(filename, dwarf_file, cmd_executer)
+
+  if status != 0:
+    print('Unable to create dwarf file for %s (status: %d).' %
+          (filename, status))
+    return status
+
+  comp_str = COMPILER_STRINGS[compiler]
+
+  retval = 0
+  with open(dwarf_file, 'r') as in_file:
+    lines = in_file.readlines()
+    looking_for_name = False
+    for line in lines:
+      if 'DW_AT_producer' in line:
+        looking_for_name = False
+        if 'GNU AS' in line:
+          continue
+        if comp_str not in line:
+          looking_for_name = True
+          retval = 1
+      elif looking_for_name:
+        if 'DW_AT_name' in line:
+          words = line.split(':')
+          bad_file = words[-1]
+          print('FAIL:  %s was not compiled with %s.' %
+                (bad_file.rstrip(), compiler))
+          looking_for_name = False
+        elif 'DW_TAG_' in line:
+          looking_for_name = False
+
+  if not options.keep_file:
+    os.remove(dwarf_file)
+
+  return retval
+
+
+def Main(argv):
+
+  cmd_executer = command_executer.GetCommandExecuter()
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '--file', dest='filename', help='Name of file to be verified.')
+  parser.add_argument(
+      '--compiler',
+      dest='compiler',
+      required=True,
+      help='Desired compiler (gcc or clang)')
+  parser.add_argument(
+      '--tmp_dir',
+      dest='tmp_dir',
+      help='Directory in which to put dwarf dump file.'
+      ' Defaults to /tmp')
+  parser.add_argument(
+      '--keep_file',
+      dest='keep_file',
+      default=False,
+      action='store_true',
+      help='Do not delete dwarf file when done.')
+  parser.add_argument(
+      '--all_files',
+      dest='all_files',
+      default=False,
+      action='store_true',
+      help='Find and check ALL .debug/.dwp files '
+      'in subtree.  Must be used with --root_dir '
+      '(and NOT with --file).')
+  parser.add_argument(
+      '--root_dir',
+      dest='root_dir',
+      help='Root of subtree in which to look for '
+      'files.  Must be used with --all_files, and'
+      ' not with --file.')
+
+  options = parser.parse_args(argv)
+
+  compiler = options.compiler
+  filename = None
+  if options.filename:
+    filename = os.path.realpath(os.path.expanduser(options.filename))
+  tmp_dir = '/tmp'
+  if options.tmp_dir:
+    tmp_dir = os.path.realpath(os.path.expanduser(options.tmp_dir))
+  root_dir = None
+  if options.root_dir:
+    root_dir = os.path.realpath(os.path.expanduser(options.root_dir))
+
+  VerifyArgs(compiler, filename, tmp_dir, root_dir, options, parser)
+
+  file_list = []
+  if filename:
+    file_list.append(filename)
+  else:
+    file_list = FindAllFiles(root_dir, cmd_executer)
+
+  bad_files = []
+  unknown_files = []
+  all_pass = True
+  for f in file_list:
+    result = CheckFile(f, compiler, tmp_dir, options, cmd_executer)
+    if result == ERR_NO_DEBUG_INFO:
+      unknown_files.append(f)
+      all_pass = False
+    elif result != 0:
+      bad_files.append(f)
+      all_pass = False
+
+  if all_pass:
+    print('\n\nSUCCESS:  All compilation units were compiled with %s.\n' %
+          compiler)
+    return 0
+  else:
+    if len(bad_files) == 0:
+      print(
+          '\n\n*Mostly* SUCCESS: All files that could be checked were compiled '
+          'with %s.' % compiler)
+      print(
+          '\n\nUnable to verify the following files (no debug info in them):\n')
+      for f in unknown_files:
+        print(f)
+    else:
+      print('\n\nFAILED:  The following files were not compiled with %s:\n' %
+            compiler)
+      for f in bad_files:
+        print(f)
+      if len(unknown_files) > 0:
+        print(
+            '\n\nUnable to verify the following files (no debug info in them):\n'
+        )
+        for f in unknown_files:
+          print(f)
+    return 1
+
+
+if __name__ == '__main__':
+  sys.exit(Main(sys.argv[1:]))
diff --git a/weekly_report.py b/weekly_report.py
new file mode 100755
index 0000000..e74c623
--- /dev/null
+++ b/weekly_report.py
@@ -0,0 +1,255 @@
+#!/usr/bin/python2
+#
+# Copyright Google Inc. 2014
+"""Module to generate the 7-day crosperf reports."""
+
+from __future__ import print_function
+
+import argparse
+import datetime
+import os
+import sys
+
+from cros_utils import constants
+from cros_utils import command_executer
+
+WEEKDAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
+DATA_ROOT_DIR = os.path.join(constants.CROSTC_WORKSPACE, 'weekly_test_data')
+EXPERIMENT_FILE = os.path.join(DATA_ROOT_DIR, 'weekly_report')
+MAIL_PROGRAM = '~/var/bin/mail-sheriff'
+
+
+def Generate_Vanilla_Report_File(vanilla_image_paths, board, remote,
+                                 chromeos_root, cmd_executer):
+
+  experiment_header = """
+name: weekly_vanilla_report
+cache_only: True
+same_specs: False
+board: %s
+remote: %s
+""" % (board, remote)
+
+  experiment_tests = """
+benchmark: all_toolchain_perf {
+  suite: telemetry_Crosperf
+  iterations: 3
+}
+"""
+
+  filename = '%s_%s_vanilla.exp' % (EXPERIMENT_FILE, board)
+  if os.path.exists(filename):
+    cmd = 'rm %s' % filename
+    cmd_executer.RunCommand(cmd)
+
+  with open(filename, 'w') as f:
+    f.write(experiment_header)
+    f.write(experiment_tests)
+
+    # Add each vanilla image
+    for test_path in vanilla_image_paths:
+      pieces = test_path.split('/')
+      test_name = pieces[-1]
+      test_image = """
+%s {
+  chromeos_root: %s
+  chromeos_image: %s
+}
+""" % (test_name, chromeos_root, os.path.join(test_path,
+                                              'chromiumos_test_image.bin'))
+      f.write(test_image)
+
+  return filename
+
+
+def Generate_Test_File(test_image_paths, vanilla_image_path, board, remote,
+                       chromeos_root, cmd_executer):
+
+  experiment_header = """
+name: weekly_report
+cache_only: True
+same_specs: False
+board: %s
+remote: %s
+""" % (board, remote)
+
+  experiment_tests = """
+benchmark: all_toolchain_perf {
+  suite: telemetry_Crosperf
+  iterations: 3
+}
+"""
+
+  filename = '%s_%s.exp' % (EXPERIMENT_FILE, board)
+  if os.path.exists(filename):
+    cmd = 'rm %s' % filename
+    cmd_executer.RunCommand(cmd)
+
+  with open(filename, 'w') as f:
+    f.write(experiment_header)
+    f.write(experiment_tests)
+
+    # Add vanilla image (first)
+    vanilla_image = """
+%s {
+  chromeos_root: %s
+  chromeos_image: %s
+}
+""" % (vanilla_image_path.split('/')[-1], chromeos_root,
+       os.path.join(vanilla_image_path, 'chromiumos_test_image.bin'))
+
+    f.write(vanilla_image)
+
+    # Add each test image
+    for test_path in test_image_paths:
+      pieces = test_path.split('/')
+      test_name = pieces[-1]
+      test_image = """
+%s {
+  chromeos_root: %s
+  chromeos_image: %s
+}
+""" % (test_name, chromeos_root, os.path.join(test_path,
+                                              'chromiumos_test_image.bin'))
+      f.write(test_image)
+
+  return filename
+
+
+def Main(argv):
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-b', '--board', dest='board', help='Target board.')
+  parser.add_argument('-r', '--remote', dest='remote', help='Target device.')
+  parser.add_argument('-v',
+                      '--vanilla_only',
+                      dest='vanilla_only',
+                      action='store_true',
+                      default=False,
+                      help='Generate a report comparing only the vanilla '
+                      'images.')
+
+  options = parser.parse_args(argv[1:])
+
+  if not options.board:
+    print('Must specify a board.')
+    return 1
+
+  if not options.remote:
+    print('Must specify at least one remote.')
+    return 1
+
+  cmd_executer = command_executer.GetCommandExecuter(log_level='average')
+
+  # Find starting index, for cycling through days of week, generating
+  # reports starting 6 days ago from today. Generate list of indices for
+  # order in which to look at weekdays for report:
+  todays_index = datetime.datetime.today().isoweekday()
+  indices = []
+  start = todays_index + 1
+  end = start + 7
+  for i in range(start, end):
+    indices.append(i % 7)
+  # E.g. if today is Sunday, then start report with last Monday, so
+  # indices = [1, 2, 3, 4, 5, 6, 0].
+
+  # Find all the test image tar files, untar them and add them to
+  # the list. Also find and untar vanilla image tar files, and keep
+  # track of the first vanilla image.
+  report_image_paths = []
+  vanilla_image_paths = []
+  first_vanilla_image = None
+  for i in indices:
+    day = WEEKDAYS[i]
+    data_path = os.path.join(DATA_ROOT_DIR, options.board, day)
+    if os.path.exists(data_path):
+      # First, untar the test image.
+      tar_file_name = '%s_test_image.tar' % day
+      tar_file_path = os.path.join(data_path, tar_file_name)
+      image_dir = '%s_test_image' % day
+      image_path = os.path.join(data_path, image_dir)
+      if os.path.exists(tar_file_path):
+        if not os.path.exists(image_path):
+          os.makedirs(image_path)
+        cmd = ('cd %s; tar -xvf %s -C %s --strip-components 1' %
+               (data_path, tar_file_path, image_path))
+        ret = cmd_executer.RunCommand(cmd)
+        if not ret:
+          report_image_paths.append(image_path)
+      # Next, untar the vanilla image.
+      vanilla_file = '%s_vanilla_image.tar' % day
+      v_file_path = os.path.join(data_path, vanilla_file)
+      image_dir = '%s_vanilla_image' % day
+      image_path = os.path.join(data_path, image_dir)
+      if os.path.exists(v_file_path):
+        if not os.path.exists(image_path):
+          os.makedirs(image_path)
+        cmd = ('cd %s; tar -xvf %s -C %s --strip-components 1' %
+               (data_path, v_file_path, image_path))
+        ret = cmd_executer.RunCommand(cmd)
+        if not ret:
+          vanilla_image_paths.append(image_path)
+        if not first_vanilla_image:
+          first_vanilla_image = image_path
+
+  # Find a chroot we can use.  Look for a directory containing both
+  # an experiment file and a chromeos directory (the experiment file will
+  # only be created if both images built successfully, i.e. the chroot is
+  # good).
+  chromeos_root = None
+  timestamp = datetime.datetime.strftime(datetime.datetime.now(),
+                                         '%Y-%m-%d_%H:%M:%S')
+  results_dir = os.path.join(
+      os.path.expanduser('~/nightly_test_reports'), '%s.%s' % (
+          timestamp, options.board), 'weekly_tests')
+
+  for day in WEEKDAYS:
+    startdir = os.path.join(constants.CROSTC_WORKSPACE, day)
+    num_dirs = os.listdir(startdir)
+    for d in num_dirs:
+      exp_file = os.path.join(startdir, d, 'toolchain_experiment.txt')
+      chroot = os.path.join(startdir, d, 'chromeos')
+      if os.path.exists(chroot) and os.path.exists(exp_file):
+        chromeos_root = chroot
+      if chromeos_root:
+        break
+    if chromeos_root:
+      break
+
+  if not chromeos_root:
+    print('Unable to locate a usable chroot. Exiting without report.')
+    return 1
+
+  # Create the Crosperf experiment file for generating the weekly report.
+  if not options.vanilla_only:
+    filename = Generate_Test_File(report_image_paths, first_vanilla_image,
+                                  options.board, options.remote, chromeos_root,
+                                  cmd_executer)
+  else:
+    filename = Generate_Vanilla_Report_File(vanilla_image_paths, options.board,
+                                            options.remote, chromeos_root,
+                                            cmd_executer)
+
+  # Run Crosperf on the file to generate the weekly report.
+  cmd = ('%s/toolchain-utils/crosperf/crosperf '
+         '%s --no_email=True --results_dir=%s' %
+         (constants.CROSTC_WORKSPACE, filename, results_dir))
+  retv = cmd_executer.RunCommand(cmd)
+  if retv == 0:
+    # Send the email, if the crosperf command worked.
+    filename = os.path.join(results_dir, 'msg_body.html')
+    if (os.path.exists(filename) and
+        os.path.exists(os.path.expanduser(MAIL_PROGRAM))):
+      vanilla_string = ' '
+      if options.vanilla_only:
+        vanilla_string = ' Vanilla '
+      command = ('cat %s | %s -s "Weekly%sReport results, %s" -team -html' %
+                 (filename, MAIL_PROGRAM, vanilla_string, options.board))
+    retv = cmd_executer.RunCommand(command)
+
+  return retv
+
+
+if __name__ == '__main__':
+  retval = Main(sys.argv)
+  sys.exit(retval)
