Hi, I think this changed caused all of the OS X tests to fail:

http://lab.llvm.org:8011/builders/lldb-x86_64-darwin-13.4/builds/6969/steps/test1/logs/stdio

with this error:

Traceback (most recent call last):
  File "/Users/lldb_build/lldbSlave/buildDir/scripts/../lldb/test/dotest.py",
line 7, in <module>
    lldbsuite.test.run_suite()
  File 
"/Users/lldb_build/lldbSlave/buildDir/lldb/packages/Python/lldbsuite/test/dotest.py",
line 1487, in run_suite
    setupCrashInfoHook()
  File 
"/Users/lldb_build/lldbSlave/buildDir/lldb/packages/Python/lldbsuite/test/dotest.py",
line 390, in setupCrashInfoHook
    import lock
ImportError: No module named lock


On Thu, Nov 5, 2015 at 11:22 AM, Zachary Turner via lldb-commits <
lldb-commits@lists.llvm.org> wrote:

> Author: zturner
> Date: Thu Nov  5 13:22:28 2015
> New Revision: 252191
>
> URL: http://llvm.org/viewvc/llvm-project?rev=252191&view=rev
> Log:
> Python 3 - Turn on absolute imports, and fix existing imports.
>
> Absolute imports were introduced in Python 2.5 as a feature
> (e.g. from __future__ import absolute_import), and made default
> in Python 3.
>
> When absolute imports are enabled, the import system changes in
> a couple of ways:
>
> 1) The `import foo` syntax will *only* search sys.path.  If `foo`
>    isn't in sys.path, it won't be found.  Period.  Without absolute
>    imports, the import system will also search the same directory
>    that the importing file resides in, so that you can easily
>    import from the same folder.
>
> 2) From inside a package, you can use a dot syntax to refer to higher
>    levels of the current package.  For example, if you are in the
>    package lldbsuite.test.utility, then ..foo refers to
>    lldbsuite.test.foo.  You can use this notation with the
>    `from X import Y` syntax to write intra-package references.  For
>    example, using the previous locationa s a starting point, writing
>    `from ..support import seven` would import lldbsuite.support.seven
>
> Since this is now the default behavior in Python 3, this means that
> importing from the same directory with `import foo` *no longer works*.
> As a result, the only way to have portable code is to force absolute
> imports for all versions of Python.
>
> See PEP 0328 [https://www.python.org/dev/peps/pep-0328/] for more
> information about absolute and relative imports.
>
> Differential Revision: http://reviews.llvm.org/D14342
> Reviewed By: Todd Fiala
>
> Modified:
>     lldb/trunk/packages/Python/lldbsuite/test/__init__.py
>     lldb/trunk/packages/Python/lldbsuite/test/bench.py
>     lldb/trunk/packages/Python/lldbsuite/test/curses_results.py
>     lldb/trunk/packages/Python/lldbsuite/test/dosep.py
>     lldb/trunk/packages/Python/lldbsuite/test/dotest.py
>     lldb/trunk/packages/Python/lldbsuite/test/dotest_args.py
>     lldb/trunk/packages/Python/lldbsuite/test/dotest_channels.py
>     lldb/trunk/packages/Python/lldbsuite/test/lldb_pylint_helper.py
>     lldb/trunk/packages/Python/lldbsuite/test/lldbbench.py
>     lldb/trunk/packages/Python/lldbsuite/test/lldbcurses.py
>     lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py
>     lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py
>     lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py
>     lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py
>     lldb/trunk/packages/Python/lldbsuite/test/lldbutil.py
>     lldb/trunk/packages/Python/lldbsuite/test/test_categories.py
>     lldb/trunk/packages/Python/lldbsuite/test/test_results.py
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/__init__.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/__init__.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/__init__.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/__init__.py Thu Nov  5
> 13:22:28 2015
> @@ -1,4 +1,6 @@
>  # Module level initialization for the `lldbsuite.test` module.
>
> -import dotest
> +from __future__ import absolute_import
> +
> +from . import dotest
>  run_suite = dotest.run_suite
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/bench.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/bench.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/bench.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/bench.py Thu Nov  5 13:22:28
> 2015
> @@ -15,6 +15,7 @@ See also bench-history.
>  """
>
>  from __future__ import print_function
> +from __future__ import absolute_import
>
>  import os, sys
>  import re
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/curses_results.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/curses_results.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/curses_results.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/curses_results.py Thu Nov  5
> 13:22:28 2015
> @@ -10,15 +10,21 @@ Configuration options for lldbtest.py se
>  """
>
>  from __future__ import print_function
> +from __future__ import absolute_import
>
> +# System modules
>  import curses
>  import datetime
> -import lldbcurses
>  import math
>  import sys
>  import test_results
>  import time
>
> +# Third-party modules
> +
> +# LLDB modules
> +from . import lldbcurses
> +
>  class Curses(test_results.ResultsFormatter):
>      """Receives live results from tests that are running and reports them
> to the terminal in a curses GUI"""
>
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/dosep.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/dosep.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/dosep.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/dosep.py Thu Nov  5 13:22:28
> 2015
> @@ -33,8 +33,7 @@ echo core.%p | sudo tee /proc/sys/kernel
>  """
>
>  from __future__ import print_function
> -
> -
> +from __future__ import absolute_import
>
>  # system packages and modules
>  import asyncore
> @@ -51,15 +50,17 @@ import threading
>
>  from six.moves import queue
>
> -# Add our local test_runner/lib dir to the python path.
> -sys.path.append(os.path.join(os.path.dirname(__file__), "test_runner",
> "lib"))
> -
>  # Our packages and modules
> -import dotest_channels
> -import dotest_args
> +import lldbsuite.support.seven as seven
> +
> +from . import dotest_channels
> +from . import dotest_args
> +
> +# Todo: Convert this folder layout to be relative-import friendly and
> don't hack up
> +# sys.path like this
> +sys.path.append(os.path.join(os.path.dirname(__file__), "test_runner",
> "lib"))
>  import lldb_utils
>  import process_control
> -import lldbsuite.support.seven as seven
>
>  # Status codes for running command with timeout.
>  eTimedOut, ePassed, eFailed = 124, 0, 1
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/dotest.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/dotest.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/dotest.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/dotest.py Thu Nov  5
> 13:22:28 2015
> @@ -18,16 +18,14 @@ Type:
>  for available options.
>  """
>
> +from __future__ import absolute_import
>  from __future__ import print_function
> -import sys
> -
> -import lldbsuite
> -import lldbtest_config
>
> +# System modules
> +import sys
>  import atexit
>  import importlib
>  import os
> -import dotest_args
>  import errno
>  import platform
>  import progress
> @@ -35,14 +33,20 @@ import signal
>  import socket
>  import subprocess
>  import sys
> -import test_results
> -from test_results import EventBuilder
>  import inspect
> -import unittest2
> -import test_categories
>
> +# Third-party modules
>  import six
> -import lldbsuite.support.seven as seven
> +import unittest2
> +
> +# LLDB Modules
> +import lldbsuite
> +from . import dotest_args
> +from . import lldbtest_config
> +from . import test_categories
> +from . import test_results
> +from .test_results import EventBuilder
> +from ..support import seven
>
>  def is_exe(fpath):
>      """Returns true if fpath is an executable."""
> @@ -1470,7 +1474,7 @@ def run_suite():
>      # If we are running as the multiprocess test runner, kick off the
>      # multiprocess test runner here.
>      if isMultiprocessTestRunner():
> -        import dosep
> +        from . import dosep
>          dosep.main(output_on_success, num_threads,
> multiprocess_test_subdir,
>                     test_runner_name, results_formatter_object)
>          raise Exception("should never get here")
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/dotest_args.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/dotest_args.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/dotest_args.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/dotest_args.py Thu Nov  5
> 13:22:28 2015
> @@ -1,11 +1,17 @@
>  from __future__ import print_function
> +from __future__ import absolute_import
>
> +# System modules
>  import argparse
>  import sys
>  import multiprocessing
>  import os
>  import textwrap
>
> +# Third-party modules
> +
> +# LLDB modules
> +
>  class ArgParseNamespace(object):
>      pass
>
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/dotest_channels.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/dotest_channels.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/dotest_channels.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/dotest_channels.py Thu Nov
> 5 13:22:28 2015
> @@ -15,14 +15,18 @@ framework.
>  """
>
>  from __future__ import print_function
> +from __future__ import absolute_import
>
>
> -
> +# System modules
>  import asyncore
>  import socket
>
> +# Third-party modules
>  from six.moves import cPickle
>
> +# LLDB modules
> +
>  class UnpicklingForwardingReaderChannel(asyncore.dispatcher):
>      """Provides an unpickling, forwarding asyncore dispatch channel
> reader.
>
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lldb_pylint_helper.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldb_pylint_helper.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lldb_pylint_helper.py
> (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lldb_pylint_helper.py Thu
> Nov  5 13:22:28 2015
> @@ -13,12 +13,18 @@ Provides helper support for adding lldb
>  """
>
>  from __future__ import print_function
> +from __future__ import absolute_import
>
> +# System modules
>  import os
>  import platform
>  import subprocess
>  import sys
>
> +# Third-party modules
> +
> +# LLDB modules
> +
>
>  def add_lldb_test_paths(check_dir):
>      # pylint: disable=line-too-long
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbbench.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbbench.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lldbbench.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lldbbench.py Thu Nov  5
> 13:22:28 2015
> @@ -1,6 +1,12 @@
> +from __future__ import absolute_import
> +
> +# System modules
>  import time
> -#import numpy
> -from lldbtest import *
> +
> +# Third-party modules
> +
> +# LLDB modules
> +from .lldbtest import *
>
>  class Stopwatch(object):
>      """Stopwatch provides a simple utility to start/stop your stopwatch
> multiple
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbcurses.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbcurses.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lldbcurses.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lldbcurses.py Thu Nov  5
> 13:22:28 2015
> @@ -1,10 +1,16 @@
> +from __future__ import absolute_import
>
> -
> -import curses, curses.panel
> +# System modules
> +import curses
> +import curses.panel
>  import sys
> -import six
>  import time
>
> +# Third-party modules
> +import six
> +
> +# LLDB modules
> +
>  class Point(object):
>      def __init__(self, x, y):
>          self.x = x
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py Thu Nov  5
> 13:22:28 2015
> @@ -1,11 +1,17 @@
>  from __future__ import print_function
> +from __future__ import absolute_import
>
> -import lldb
> -from lldbtest import *
> -import lldbutil
> +# System modules
>  import os
>  import sys
>
> +# Third-party modules
> +
> +# LLDB modules
> +import lldb
> +from .lldbtest import *
> +from . import lldbutil
> +
>  def source_type(filename):
>      _, extension = os.path.splitext(filename)
>      return {
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py Thu Nov  5
> 13:22:28 2015
> @@ -1,14 +1,18 @@
>  from __future__ import print_function
> +from __future__ import absolute_import
>
> -
> -
> -import lldb
> -from lldbtest import *
> -import lldbutil
> +# System modules
>  import os
>  import sys
> +
> +# Third-party modules
>  import pexpect
>
> +# LLDB Modules
> +import lldb
> +from .lldbtest import *
> +from . import lldbutil
> +
>  class PExpectTest(TestBase):
>
>      mydir = TestBase.compute_mydir(__file__)
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py
> (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py Thu Nov
> 5 13:22:28 2015
> @@ -1,6 +1,14 @@
>  """ This module contains functions used by the test cases to hide the
>  architecture and/or the platform dependent nature of the tests. """
>
> +from __future__ import absolute_import
> +
> +# System modules
> +
> +# Third-party modules
> +
> +# LLDB modules
> +
>  def check_first_register_readable(test_case):
>      if test_case.getArchitecture() in ['x86_64', 'i386']:
>          test_case.expect("register read eax", substrs = ['eax = 0x'])
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Thu Nov  5
> 13:22:28 2015
> @@ -32,10 +32,11 @@ $
>  """
>
>  from __future__ import print_function
> +from __future__ import absolute_import
>
> -
> -
> +# System modules
>  import abc
> +import collections
>  import gc
>  import glob
>  import os, sys, traceback
> @@ -45,17 +46,19 @@ import signal
>  from subprocess import *
>  import time
>  import types
> -import unittest2
> -import lldb
> -import lldbtest_config
> -import  lldbutil
> -import test_categories
>
> +# Third-party modules
> +import unittest2
>  from six import add_metaclass
>  from six import StringIO as SixStringIO
>  from six.moves.urllib import parse as urlparse
>  import six
> -import collections
> +
> +# LLDB modules
> +import lldb
> +from . import lldbtest_config
> +from . import lldbutil
> +from . import test_categories
>
>  # dosep.py starts lots and lots of dotest instances
>  # This option helps you find if two (or more) dotest instances are using
> the same
> @@ -1890,7 +1893,7 @@ class Base(unittest2.TestCase):
>          """ Returns a string that represents the compiler version.
>              Supports: llvm, clang.
>          """
> -        from lldbutil import which
> +        from .lldbutil import which
>          version = 'unknown'
>
>          compiler = self.getCompilerBinary()
> @@ -2546,7 +2549,7 @@ class TestBase(Base):
>          Run the 'thread list' command, and select the thread with stop
> reason as
>          'stop_reason'.  If no such thread exists, no select action is
> done.
>          """
> -        from lldbutil import stop_reason_to_str
> +        from .lldbutil import stop_reason_to_str
>          self.runCmd('thread list')
>          output = self.res.GetOutput()
>          thread_line_pattern = re.compile("^[ *] thread #([0-9]+):.*stop
> reason = %s" %
> @@ -2801,7 +2804,7 @@ class TestBase(Base):
>
>      def DebugSBValue(self, val):
>          """Debug print a SBValue object, if traceAlways is True."""
> -        from lldbutil import value_type_to_str
> +        from .lldbutil import value_type_to_str
>
>          if not traceAlways:
>              return
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbutil.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbutil.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/lldbutil.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/lldbutil.py Thu Nov  5
> 13:22:28 2015
> @@ -5,16 +5,21 @@ They can also be useful for general purp
>  """
>
>  from __future__ import print_function
> +from __future__ import absolute_import
>
> -
> -
> -import lldb
> -import os, sys
> +# System modules
> +import collections
> +import os
>  import re
> +import sys
>
> +# Third-party modules
>  from six import StringIO as SixStringIO
>  import six
> -import collections
> +
> +# LLDB modules
> +import lldb
> +
>
>  # ===================================================
>  # Utilities for locating/checking executable programs
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/test_categories.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/test_categories.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/test_categories.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/test_categories.py Thu Nov
> 5 13:22:28 2015
> @@ -2,8 +2,15 @@
>  Provides definitions for various lldb test categories
>  """
>
> +from __future__ import absolute_import
> +
> +# System modules
>  import sys
>
> +# Third-party modules
> +
> +# LLDB modules
> +
>  all_categories = {
>      'dataformatters': 'Tests related to the type command and the data
> formatters subsystem',
>      'expression'    : 'Tests related to the expression parser',
>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/test_results.py
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/test_results.py?rev=252191&r1=252190&r2=252191&view=diff
>
> ==============================================================================
> --- lldb/trunk/packages/Python/lldbsuite/test/test_results.py (original)
> +++ lldb/trunk/packages/Python/lldbsuite/test/test_results.py Thu Nov  5
> 13:22:28 2015
> @@ -9,9 +9,9 @@ within the LLDB test suite.
>  """
>
>  from __future__ import print_function
> +from __future__ import absolute_import
>
> -
> -
> +# System modules
>  import argparse
>  import inspect
>  import os
> @@ -23,9 +23,11 @@ import time
>  import traceback
>  import xml.sax.saxutils
>
> +# Third-party modules
>  import six
>  from six.moves import cPickle
>
> +# LLDB modules
>
>  class EventBuilder(object):
>      """Helper class to build test result event dictionaries."""
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to