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