forked from OSchip/llvm-project
[lldb] Remove uses of six module (NFC)
With lldb (& llvm) requiring Python 3.6+, use of the `six` module can be removed. Differential Revision: https://reviews.llvm.org/D131304
This commit is contained in:
parent
256ba7738e
commit
56f9cfe30c
|
@ -157,7 +157,7 @@ public:
|
|||
for x in range(*key.indices(self.__len__())):
|
||||
list.append(self.__getitem__(x))
|
||||
return list
|
||||
if not (isinstance(key,six.integer_types)):
|
||||
if not (isinstance(key, int)):
|
||||
raise TypeError('must be int')
|
||||
key = key * self.item_size # SBData uses byte-based indexes, but we want to use itemsize-based indexes here
|
||||
error = SBError()
|
||||
|
|
|
@ -84,8 +84,6 @@ void name ## _set(type *t, int index, type val) {
|
|||
import uuid
|
||||
import re
|
||||
import os
|
||||
|
||||
import six
|
||||
%}
|
||||
|
||||
// Include the version of swig that was used to generate this interface.
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
from abc import ABCMeta, abstractmethod
|
||||
import six
|
||||
|
||||
import lldb
|
||||
|
||||
@six.add_metaclass(ABCMeta)
|
||||
class ScriptedProcess:
|
||||
class ScriptedProcess(metaclass=ABCMeta):
|
||||
|
||||
"""
|
||||
The base class for a scripted process.
|
||||
|
@ -193,8 +191,7 @@ class ScriptedProcess:
|
|||
"""
|
||||
return None
|
||||
|
||||
@six.add_metaclass(ABCMeta)
|
||||
class ScriptedThread:
|
||||
class ScriptedThread(metaclass=ABCMeta):
|
||||
|
||||
"""
|
||||
The base class for a scripted thread.
|
||||
|
|
|
@ -33,8 +33,7 @@ class PythonObjectSyntheticChildProvider(object):
|
|||
def gen_child(self, name, value):
|
||||
data = None
|
||||
type = None
|
||||
import six
|
||||
if isinstance(value, six.integer_types):
|
||||
if isinstance(value, int):
|
||||
data = lldb.SBData.CreateDataFromUInt64Array(
|
||||
self.bo, self.ps, [value])
|
||||
type = self.value.target.GetBasicType(lldb.eBasicTypeLong)
|
||||
|
|
|
@ -10,26 +10,12 @@ to see a description of the supported command line arguments.
|
|||
# Python modules:
|
||||
import io
|
||||
|
||||
# Third party modules
|
||||
import six
|
||||
|
||||
|
||||
def _encoded_read(old_read, encoding):
|
||||
def impl(size):
|
||||
result = old_read(size)
|
||||
# If this is Python 2 then we need to convert the resulting `unicode` back
|
||||
# into a `str` before returning
|
||||
if six.PY2:
|
||||
result = result.encode(encoding)
|
||||
return result
|
||||
return impl
|
||||
|
||||
|
||||
def _encoded_write(old_write, encoding):
|
||||
def impl(s):
|
||||
# If we were asked to write a `str` (in Py2) or a `bytes` (in Py3) decode it
|
||||
# as unicode before attempting to write.
|
||||
if isinstance(s, six.binary_type):
|
||||
# If we were asked to write a `bytes` decode it as unicode before
|
||||
# attempting to write.
|
||||
if isinstance(s, bytes):
|
||||
s = s.decode(encoding, "replace")
|
||||
# Filter unreadable characters, Python 3 is stricter than python 2 about them.
|
||||
import re
|
||||
|
@ -38,9 +24,8 @@ def _encoded_write(old_write, encoding):
|
|||
return impl
|
||||
|
||||
'''
|
||||
Create a Text I/O file object that can be written to with either unicode strings or byte strings
|
||||
under Python 2 and Python 3, and automatically encodes and decodes as necessary to return the
|
||||
native string type for the current Python version
|
||||
Create a Text I/O file object that can be written to with either unicode strings
|
||||
or byte strings.
|
||||
'''
|
||||
|
||||
|
||||
|
@ -60,8 +45,6 @@ def open(
|
|||
errors=errors,
|
||||
newline=newline,
|
||||
closefd=closefd)
|
||||
new_read = _encoded_read(getattr(wrapped_file, 'read'), encoding)
|
||||
new_write = _encoded_write(getattr(wrapped_file, 'write'), encoding)
|
||||
setattr(wrapped_file, 'read', new_read)
|
||||
setattr(wrapped_file, 'write', new_write)
|
||||
return wrapped_file
|
||||
|
|
|
@ -1,47 +1,31 @@
|
|||
import binascii
|
||||
import six
|
||||
import shlex
|
||||
import subprocess
|
||||
|
||||
if six.PY2:
|
||||
import commands
|
||||
get_command_output = commands.getoutput
|
||||
get_command_status_output = commands.getstatusoutput
|
||||
def get_command_output(command):
|
||||
try:
|
||||
return subprocess.check_output(
|
||||
command,
|
||||
shell=True,
|
||||
universal_newlines=True).rstrip()
|
||||
except subprocess.CalledProcessError as e:
|
||||
return e.output
|
||||
|
||||
cmp_ = cmp
|
||||
else:
|
||||
def get_command_status_output(command):
|
||||
try:
|
||||
import subprocess
|
||||
return (
|
||||
0,
|
||||
subprocess.check_output(
|
||||
command,
|
||||
shell=True,
|
||||
universal_newlines=True).rstrip())
|
||||
except subprocess.CalledProcessError as e:
|
||||
return (e.returncode, e.output)
|
||||
|
||||
def get_command_output(command):
|
||||
return get_command_status_output(command)[1]
|
||||
|
||||
cmp_ = lambda x, y: (x > y) - (x < y)
|
||||
|
||||
def bitcast_to_string(b):
|
||||
def bitcast_to_string(b: bytes) -> str:
|
||||
"""
|
||||
Take a string(PY2) or a bytes(PY3) object and return a string. The returned
|
||||
string contains the exact same bytes as the input object (latin1 <-> unicode
|
||||
transformation is an identity operation for the first 256 code points).
|
||||
Take a bytes object and return a string. The returned string contains the
|
||||
exact same bytes as the input object. (latin1 <-> unicode transformation is
|
||||
an identity operation for the first 256 code points).
|
||||
"""
|
||||
return b if six.PY2 else b.decode("latin1")
|
||||
return b.decode("latin1")
|
||||
|
||||
def bitcast_to_bytes(s):
|
||||
def bitcast_to_bytes(s: str) -> bytes:
|
||||
"""
|
||||
Take a string and return a string(PY2) or a bytes(PY3) object. The returned
|
||||
object contains the exact same bytes as the input string. (latin1 <->
|
||||
unicode transformation is an identity operation for the first 256 code
|
||||
points).
|
||||
Take a string and return a bytes object. The returned object contains the
|
||||
exact same bytes as the input string. (latin1 <-> unicode transformation isi
|
||||
an identity operation for the first 256 code points).
|
||||
"""
|
||||
return s if six.PY2 else s.encode("latin1")
|
||||
return s.encode("latin1")
|
||||
|
||||
def unhexlify(hexstr):
|
||||
"""Hex-decode a string. The result is always a string."""
|
||||
|
|
|
@ -13,7 +13,6 @@ import tempfile
|
|||
import subprocess
|
||||
|
||||
# Third-party modules
|
||||
import six
|
||||
import unittest2
|
||||
|
||||
# LLDB modules
|
||||
|
@ -71,7 +70,6 @@ def _check_expected_version(comparison, expected, actual):
|
|||
LooseVersion(expected_str))
|
||||
|
||||
|
||||
_re_pattern_type = type(re.compile(''))
|
||||
def _match_decorator_property(expected, actual):
|
||||
if expected is None:
|
||||
return True
|
||||
|
@ -82,7 +80,7 @@ def _match_decorator_property(expected, actual):
|
|||
if isinstance(expected, no_match):
|
||||
return not _match_decorator_property(expected.item, actual)
|
||||
|
||||
if isinstance(expected, (_re_pattern_type,) + six.string_types):
|
||||
if isinstance(expected, (re.Pattern, str)):
|
||||
return re.search(expected, actual) is not None
|
||||
|
||||
if hasattr(expected, "__iter__"):
|
||||
|
@ -131,7 +129,7 @@ def expectedFailureIfFn(expected_fn, bugnumber=None):
|
|||
# the first way, the first argument will be the actual function because decorators are
|
||||
# weird like that. So this is basically a check that says "which syntax was the original
|
||||
# function decorated with?"
|
||||
if six.callable(bugnumber):
|
||||
if callable(bugnumber):
|
||||
return expectedFailure_impl(bugnumber)
|
||||
else:
|
||||
return expectedFailure_impl
|
||||
|
@ -162,7 +160,7 @@ def skipTestIfFn(expected_fn, bugnumber=None):
|
|||
# the first way, the first argument will be the actual function because decorators are
|
||||
# weird like that. So this is basically a check that says "how was the
|
||||
# decorator used"
|
||||
if six.callable(bugnumber):
|
||||
if callable(bugnumber):
|
||||
return skipTestIfFn_impl(bugnumber)
|
||||
else:
|
||||
return skipTestIfFn_impl
|
||||
|
@ -249,7 +247,7 @@ def _decorateTest(mode,
|
|||
mode_str, reason_str)
|
||||
else:
|
||||
reason_str = "{} unconditionally".format(mode_str)
|
||||
if bugnumber is not None and not six.callable(bugnumber):
|
||||
if bugnumber is not None and not callable(bugnumber):
|
||||
reason_str = reason_str + " [" + str(bugnumber) + "]"
|
||||
return reason_str
|
||||
|
||||
|
@ -463,7 +461,7 @@ def expectedFlakey(expected_fn, bugnumber=None):
|
|||
# the first way, the first argument will be the actual function because decorators are
|
||||
# weird like that. So this is basically a check that says "which syntax was the original
|
||||
# function decorated with?"
|
||||
if six.callable(bugnumber):
|
||||
if callable(bugnumber):
|
||||
return expectedFailure_impl(bugnumber)
|
||||
else:
|
||||
return expectedFailure_impl
|
||||
|
|
|
@ -36,7 +36,6 @@ import sys
|
|||
import tempfile
|
||||
|
||||
# Third-party modules
|
||||
import six
|
||||
import unittest2
|
||||
|
||||
# LLDB Modules
|
||||
|
|
|
@ -4,9 +4,6 @@ from __future__ import absolute_import
|
|||
import os
|
||||
import sys
|
||||
|
||||
# Third-party modules
|
||||
import six
|
||||
|
||||
# LLDB Modules
|
||||
import lldb
|
||||
from .lldbtest import *
|
||||
|
@ -72,7 +69,7 @@ class PExpectTest(TestBase):
|
|||
self.assertNotIn('\n', cmd)
|
||||
# If 'substrs' is a string then this code would just check that every
|
||||
# character of the string is in the output.
|
||||
assert not isinstance(substrs, six.string_types), \
|
||||
assert not isinstance(substrs, str), \
|
||||
"substrs must be a collection of strings"
|
||||
|
||||
self.child.sendline(cmd)
|
||||
|
|
|
@ -5,9 +5,6 @@ from __future__ import absolute_import
|
|||
# System modules
|
||||
import itertools
|
||||
|
||||
# Third-party modules
|
||||
import six
|
||||
|
||||
# LLDB modules
|
||||
import lldb
|
||||
|
||||
|
@ -39,10 +36,10 @@ __name_lookup = {
|
|||
|
||||
def translate(values):
|
||||
|
||||
if isinstance(values, six.integer_types):
|
||||
if isinstance(values, int):
|
||||
# This is a value from the platform enumeration, translate it.
|
||||
return __name_lookup[values]
|
||||
elif isinstance(values, six.string_types):
|
||||
elif isinstance(values, str):
|
||||
# This is a raw string, return it.
|
||||
return [values]
|
||||
elif hasattr(values, "__iter__"):
|
||||
|
|
|
@ -9,10 +9,7 @@ import re
|
|||
import subprocess
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Third-party modules
|
||||
import six
|
||||
from six.moves.urllib import parse as urlparse
|
||||
from urllib.parse import urlparse
|
||||
|
||||
# LLDB modules
|
||||
from . import configuration
|
||||
|
@ -62,7 +59,7 @@ def android_device_api():
|
|||
if not hasattr(android_device_api, 'result'):
|
||||
assert configuration.lldb_platform_url is not None
|
||||
device_id = None
|
||||
parsed_url = urlparse.urlparse(configuration.lldb_platform_url)
|
||||
parsed_url = urlparse(configuration.lldb_platform_url)
|
||||
host_name = parsed_url.netloc.split(":")[0]
|
||||
if host_name != 'localhost':
|
||||
device_id = host_name
|
||||
|
|
|
@ -48,9 +48,6 @@ import traceback
|
|||
|
||||
# Third-party modules
|
||||
import unittest2
|
||||
from six import add_metaclass
|
||||
from six import StringIO as SixStringIO
|
||||
import six
|
||||
|
||||
# LLDB modules
|
||||
import lldb
|
||||
|
@ -320,7 +317,7 @@ class ValueCheck:
|
|||
child_error = "Checking child with index " + str(i) + ":\n" + error_msg
|
||||
expected_child.check_value(test_base, actual_child, child_error)
|
||||
|
||||
class recording(SixStringIO):
|
||||
class recording(io.StringIO):
|
||||
"""
|
||||
A nice little context manager for recording the debugger interactions into
|
||||
our session object. If trace flag is ON, it also emits the interactions
|
||||
|
@ -328,8 +325,8 @@ class recording(SixStringIO):
|
|||
"""
|
||||
|
||||
def __init__(self, test, trace):
|
||||
"""Create a SixStringIO instance; record the session obj and trace flag."""
|
||||
SixStringIO.__init__(self)
|
||||
"""Create a io.StringIO instance; record the session obj and trace flag."""
|
||||
io.StringIO.__init__(self)
|
||||
# The test might not have undergone the 'setUp(self)' phase yet, so that
|
||||
# the attribute 'session' might not even exist yet.
|
||||
self.session = getattr(test, "session", None) if test else None
|
||||
|
@ -338,7 +335,7 @@ class recording(SixStringIO):
|
|||
def __enter__(self):
|
||||
"""
|
||||
Context management protocol on entry to the body of the with statement.
|
||||
Just return the SixStringIO object.
|
||||
Just return the io.StringIO object.
|
||||
"""
|
||||
return self
|
||||
|
||||
|
@ -346,7 +343,7 @@ class recording(SixStringIO):
|
|||
"""
|
||||
Context management protocol on exit from the body of the with statement.
|
||||
If trace is ON, it emits the recordings into stderr. Always add the
|
||||
recordings to our session object. And close the SixStringIO object, too.
|
||||
recordings to our session object. And close the io.StringIO object, too.
|
||||
"""
|
||||
if self.trace:
|
||||
print(self.getvalue(), file=sys.stderr)
|
||||
|
@ -355,8 +352,7 @@ class recording(SixStringIO):
|
|||
self.close()
|
||||
|
||||
|
||||
@add_metaclass(abc.ABCMeta)
|
||||
class _BaseProcess(object):
|
||||
class _BaseProcess(object, metaclass=abc.ABCMeta):
|
||||
|
||||
@abc.abstractproperty
|
||||
def pid(self):
|
||||
|
@ -945,7 +941,7 @@ class Base(unittest2.TestCase):
|
|||
|
||||
Hooks are executed in a first come first serve manner.
|
||||
"""
|
||||
if six.callable(hook):
|
||||
if callable(hook):
|
||||
with recording(self, traceAlways) as sbuf:
|
||||
print(
|
||||
"Adding tearDown hook:",
|
||||
|
@ -1691,8 +1687,7 @@ class LLDBTestCaseFactory(type):
|
|||
# methods when a new class is loaded
|
||||
|
||||
|
||||
@add_metaclass(LLDBTestCaseFactory)
|
||||
class TestBase(Base):
|
||||
class TestBase(Base, metaclass=LLDBTestCaseFactory):
|
||||
"""
|
||||
This abstract base class is meant to be subclassed. It provides default
|
||||
implementations for setUpClass(), tearDownClass(), setUp(), and tearDown(),
|
||||
|
@ -2230,7 +2225,7 @@ FileCheck output:
|
|||
|
||||
def expect(
|
||||
self,
|
||||
str,
|
||||
string,
|
||||
msg=None,
|
||||
patterns=None,
|
||||
startstr=None,
|
||||
|
@ -2264,9 +2259,9 @@ FileCheck output:
|
|||
client is expecting the output of the command not to match the golden
|
||||
input.
|
||||
|
||||
Finally, the required argument 'str' represents the lldb command to be
|
||||
Finally, the required argument 'string' represents the lldb command to be
|
||||
sent to the command interpreter. In case the keyword argument 'exe' is
|
||||
set to False, the 'str' is treated as a string to be matched/not-matched
|
||||
set to False, the 'string' is treated as a string to be matched/not-matched
|
||||
against the golden input.
|
||||
"""
|
||||
# Catch cases where `expect` has been miscalled. Specifically, prevent
|
||||
|
@ -2280,9 +2275,9 @@ FileCheck output:
|
|||
assert False, "expect() missing a matcher argument"
|
||||
|
||||
# Check `patterns` and `substrs` are not accidentally given as strings.
|
||||
assert not isinstance(patterns, six.string_types), \
|
||||
assert not isinstance(patterns, str), \
|
||||
"patterns must be a collection of strings"
|
||||
assert not isinstance(substrs, six.string_types), \
|
||||
assert not isinstance(substrs, str), \
|
||||
"substrs must be a collection of strings"
|
||||
|
||||
trace = (True if traceAlways else trace)
|
||||
|
@ -2292,7 +2287,7 @@ FileCheck output:
|
|||
# Pass the assert message along since it provides more semantic
|
||||
# info.
|
||||
self.runCmd(
|
||||
str,
|
||||
string,
|
||||
msg=msg,
|
||||
trace=(
|
||||
True if trace else False),
|
||||
|
@ -2305,13 +2300,13 @@ FileCheck output:
|
|||
# If error is True, the API client expects the command to fail!
|
||||
if error:
|
||||
self.assertFalse(self.res.Succeeded(),
|
||||
"Command '" + str + "' is expected to fail!")
|
||||
"Command '" + string + "' is expected to fail!")
|
||||
else:
|
||||
# No execution required, just compare str against the golden input.
|
||||
if isinstance(str, lldb.SBCommandReturnObject):
|
||||
output = str.GetOutput()
|
||||
# No execution required, just compare string against the golden input.
|
||||
if isinstance(string, lldb.SBCommandReturnObject):
|
||||
output = string.GetOutput()
|
||||
else:
|
||||
output = str
|
||||
output = string
|
||||
with recording(self, trace) as sbuf:
|
||||
print("looking at:", output, file=sbuf)
|
||||
|
||||
|
@ -2322,7 +2317,7 @@ FileCheck output:
|
|||
# To be used as assert fail message and/or trace content
|
||||
log_lines = [
|
||||
"{}:".format("Ran command" if exe else "Checking string"),
|
||||
"\"{}\"".format(str),
|
||||
"\"{}\"".format(string),
|
||||
# Space out command and output
|
||||
"",
|
||||
]
|
||||
|
|
|
@ -9,16 +9,13 @@ from __future__ import absolute_import
|
|||
|
||||
# System modules
|
||||
import errno
|
||||
import io
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import subprocess
|
||||
from typing import Dict
|
||||
|
||||
# Third-party modules
|
||||
from six import StringIO as SixStringIO
|
||||
import six
|
||||
|
||||
# LLDB modules
|
||||
import lldb
|
||||
from . import lldbtest_config
|
||||
|
@ -111,7 +108,7 @@ def disassemble(target, function_or_symbol):
|
|||
|
||||
It returns the disassembly content in a string object.
|
||||
"""
|
||||
buf = SixStringIO()
|
||||
buf = io.StringIO()
|
||||
insts = function_or_symbol.GetInstructions(target)
|
||||
for i in insts:
|
||||
print(i, file=buf)
|
||||
|
@ -1080,7 +1077,7 @@ def get_stack_frames(thread):
|
|||
def print_stacktrace(thread, string_buffer=False):
|
||||
"""Prints a simple stack trace of this thread."""
|
||||
|
||||
output = SixStringIO() if string_buffer else sys.stdout
|
||||
output = io.StringIO() if string_buffer else sys.stdout
|
||||
target = thread.GetProcess().GetTarget()
|
||||
|
||||
depth = thread.GetNumFrames()
|
||||
|
@ -1142,7 +1139,7 @@ def print_stacktrace(thread, string_buffer=False):
|
|||
def print_stacktraces(process, string_buffer=False):
|
||||
"""Prints the stack traces of all the threads."""
|
||||
|
||||
output = SixStringIO() if string_buffer else sys.stdout
|
||||
output = io.StringIO() if string_buffer else sys.stdout
|
||||
|
||||
print("Stack traces for " + str(process), file=output)
|
||||
|
||||
|
@ -1258,7 +1255,7 @@ def get_args_as_string(frame, showFuncName=True):
|
|||
def print_registers(frame, string_buffer=False):
|
||||
"""Prints all the register sets of the frame."""
|
||||
|
||||
output = SixStringIO() if string_buffer else sys.stdout
|
||||
output = io.StringIO() if string_buffer else sys.stdout
|
||||
|
||||
print("Register sets for " + str(frame), file=output)
|
||||
|
||||
|
@ -1344,7 +1341,7 @@ class BasicFormatter(object):
|
|||
|
||||
def format(self, value, buffer=None, indent=0):
|
||||
if not buffer:
|
||||
output = SixStringIO()
|
||||
output = io.StringIO()
|
||||
else:
|
||||
output = buffer
|
||||
# If there is a summary, it suffices.
|
||||
|
@ -1374,7 +1371,7 @@ class ChildVisitingFormatter(BasicFormatter):
|
|||
|
||||
def format(self, value, buffer=None):
|
||||
if not buffer:
|
||||
output = SixStringIO()
|
||||
output = io.StringIO()
|
||||
else:
|
||||
output = buffer
|
||||
|
||||
|
@ -1401,7 +1398,7 @@ class RecursiveDecentFormatter(BasicFormatter):
|
|||
|
||||
def format(self, value, buffer=None):
|
||||
if not buffer:
|
||||
output = SixStringIO()
|
||||
output = io.StringIO()
|
||||
else:
|
||||
output = buffer
|
||||
|
||||
|
@ -1511,7 +1508,7 @@ class PrintableRegex(object):
|
|||
|
||||
|
||||
def skip_if_callable(test, mycallable, reason):
|
||||
if six.callable(mycallable):
|
||||
if callable(mycallable):
|
||||
if mycallable(test):
|
||||
test.skipTest(reason)
|
||||
return True
|
||||
|
|
|
@ -59,8 +59,7 @@ class GdbRemoteTestCaseFactory(type):
|
|||
return super(GdbRemoteTestCaseFactory, cls).__new__(
|
||||
cls, name, bases, newattrs)
|
||||
|
||||
@add_metaclass(GdbRemoteTestCaseFactory)
|
||||
class GdbRemoteTestCaseBase(Base):
|
||||
class GdbRemoteTestCaseBase(Base, metaclass=GdbRemoteTestCaseFactory):
|
||||
|
||||
# Default time out in seconds. The timeout is increased tenfold under Asan.
|
||||
DEFAULT_TIMEOUT = 20 * (10 if ('ASAN_OPTIONS' in os.environ) else 1)
|
||||
|
|
|
@ -8,7 +8,6 @@ import os
|
|||
import os.path
|
||||
import platform
|
||||
import re
|
||||
import six
|
||||
import socket
|
||||
import subprocess
|
||||
from lldbsuite.support import seven
|
||||
|
@ -803,7 +802,7 @@ def process_is_running(pid, unknown_value=True):
|
|||
If we don't know how to check running process ids on the given OS:
|
||||
return the value provided by the unknown_value arg.
|
||||
"""
|
||||
if not isinstance(pid, six.integer_types):
|
||||
if not isinstance(pid, int):
|
||||
raise Exception(
|
||||
"pid must be an integral type (actual type: %s)" % str(
|
||||
type(pid)))
|
||||
|
@ -878,7 +877,7 @@ class Server(object):
|
|||
@staticmethod
|
||||
def _checksum(packet):
|
||||
checksum = 0
|
||||
for c in six.iterbytes(packet):
|
||||
for c in iter(packet):
|
||||
checksum += c
|
||||
return checksum % 256
|
||||
|
||||
|
|
|
@ -429,7 +429,7 @@ ScriptInterpreterPythonImpl::ScriptInterpreterPythonImpl(Debugger &debugger)
|
|||
// Reloading modules requires a different syntax in Python 2 and Python 3.
|
||||
// This provides a consistent syntax no matter what version of Python.
|
||||
run_string.Clear();
|
||||
run_string.Printf("run_one_line (%s, 'from six.moves import reload_module')",
|
||||
run_string.Printf("run_one_line (%s, 'from importlib import reload as reload_module')",
|
||||
m_dictionary_name.c_str());
|
||||
PyRun_SimpleString(run_string.GetData());
|
||||
|
||||
|
|
|
@ -7,8 +7,6 @@ from lldbsuite.test.decorators import *
|
|||
from lldbsuite.test.lldbtest import *
|
||||
from lldbsuite.test import lldbutil
|
||||
|
||||
import six
|
||||
|
||||
class ListenToModuleLoadedEvents (TestBase):
|
||||
NO_DEBUG_INFO_TESTCASE = True
|
||||
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
|
||||
import six
|
||||
|
||||
|
||||
def command(debugger, command, result, internal_dict):
|
||||
result.PutCString(six.u("hello world A"))
|
||||
result.PutCString("hello world A")
|
||||
return None
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
|
||||
import six
|
||||
|
||||
|
||||
def command(debugger, command, result, internal_dict):
|
||||
result.PutCString(six.u("hello world B"))
|
||||
result.PutCString("hello world B")
|
||||
return None
|
||||
|
|
|
@ -11,8 +11,6 @@ from lldbsuite.test.decorators import *
|
|||
from lldbsuite.test.lldbtest import *
|
||||
from lldbsuite.test import lldbutil
|
||||
|
||||
import six
|
||||
|
||||
|
||||
class ProcessLaunchTestCase(TestBase):
|
||||
NO_DEBUG_INFO_TESTCASE = True
|
||||
|
|
|
@ -3,7 +3,6 @@ from lldbsuite.test.lldbtest import *
|
|||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.gdbclientutils import *
|
||||
from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase
|
||||
from lldbsuite.support import seven
|
||||
|
||||
class MyResponder(MockGDBServerResponder):
|
||||
"""
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
Test basics of Minidump debugging.
|
||||
"""
|
||||
|
||||
from six import iteritems
|
||||
|
||||
import shutil
|
||||
|
||||
import lldb
|
||||
|
@ -327,7 +325,7 @@ class MiniDumpNewTestCase(TestBase):
|
|||
|
||||
expected_stack = {1: 'bar', 2: 'foo', 3: '_start'}
|
||||
self.assertGreaterEqual(thread.GetNumFrames(), len(expected_stack))
|
||||
for index, name in iteritems(expected_stack):
|
||||
for index, name in expected_stack.items():
|
||||
frame = thread.GetFrameAtIndex(index)
|
||||
self.assertTrue(frame.IsValid())
|
||||
function_name = frame.GetFunctionName()
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
Test basics of Minidump debugging.
|
||||
"""
|
||||
|
||||
from six import iteritems
|
||||
|
||||
|
||||
import lldb
|
||||
import os
|
||||
from lldbsuite.test.decorators import *
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
Test basics of mini dump debugging.
|
||||
"""
|
||||
|
||||
from six import iteritems
|
||||
|
||||
|
||||
import lldb
|
||||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.lldbtest import *
|
||||
|
@ -130,7 +127,7 @@ class MiniDumpTestCase(TestBase):
|
|||
|
||||
expected_stack = {0: 'bar', 1: 'foo', 2: 'main'}
|
||||
self.assertGreaterEqual(thread.GetNumFrames(), len(expected_stack))
|
||||
for index, name in iteritems(expected_stack):
|
||||
for index, name in expected_stack.items():
|
||||
frame = thread.GetFrameAtIndex(index)
|
||||
self.assertTrue(frame.IsValid())
|
||||
function_name = frame.GetFunctionName()
|
||||
|
|
|
@ -7,9 +7,6 @@ end up with a dump of the WoW64 layer. In that case, LLDB must do extra work to
|
|||
get the 32-bit register contexts.
|
||||
"""
|
||||
|
||||
from six import iteritems
|
||||
|
||||
|
||||
import lldb
|
||||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.lldbtest import *
|
||||
|
|
|
@ -5,6 +5,7 @@ And other SBFrame API tests.
|
|||
|
||||
from __future__ import print_function
|
||||
|
||||
import io
|
||||
|
||||
import lldb
|
||||
from lldbsuite.test.decorators import *
|
||||
|
@ -42,8 +43,7 @@ class FrameAPITestCase(TestBase):
|
|||
# depth of 3 of the 'c' leaf function.
|
||||
callsOfA = 0
|
||||
|
||||
from six import StringIO as SixStringIO
|
||||
session = SixStringIO()
|
||||
session = io.StringIO()
|
||||
while process.GetState() == lldb.eStateStopped:
|
||||
thread = lldbutil.get_stopped_thread(
|
||||
process, lldb.eStopReasonBreakpoint)
|
||||
|
|
|
@ -6,7 +6,7 @@ from __future__ import print_function
|
|||
|
||||
|
||||
import lldb
|
||||
import six
|
||||
import io
|
||||
import sys
|
||||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.lldbtest import *
|
||||
|
@ -57,8 +57,8 @@ class TestSTTYBeforeAndAfter(TestBase):
|
|||
child.expect(expect_prompt)
|
||||
|
||||
# Turn on loggings for input/output to/from the child.
|
||||
child.logfile_send = child_send1 = six.StringIO()
|
||||
child.logfile_read = child_read1 = six.StringIO()
|
||||
child.logfile_send = child_send1 = io.StringIO()
|
||||
child.logfile_read = child_read1 = io.StringIO()
|
||||
child.sendline('stty -a')
|
||||
child.expect(expect_prompt)
|
||||
|
||||
|
@ -75,8 +75,8 @@ class TestSTTYBeforeAndAfter(TestBase):
|
|||
child.sendline('quit')
|
||||
child.expect(expect_prompt)
|
||||
|
||||
child.logfile_send = child_send2 = six.StringIO()
|
||||
child.logfile_read = child_read2 = six.StringIO()
|
||||
child.logfile_send = child_send2 = io.StringIO()
|
||||
child.logfile_read = child_read2 = io.StringIO()
|
||||
child.sendline('stty -a')
|
||||
child.expect(expect_prompt)
|
||||
|
||||
|
|
|
@ -2,9 +2,10 @@
|
|||
Test TestBase test functions.
|
||||
"""
|
||||
|
||||
import io
|
||||
|
||||
from lldbsuite.test.lldbtest import *
|
||||
from lldbsuite.test_event import build_exception
|
||||
import six
|
||||
|
||||
class TestBuildMethod(Base):
|
||||
|
||||
|
@ -15,9 +16,9 @@ class TestBuildMethod(Base):
|
|||
|
||||
# override the parent trace method
|
||||
def trace(self, *args, **kwargs):
|
||||
io = six.StringIO()
|
||||
print(*args, file=io, **kwargs)
|
||||
self._traces.append(io.getvalue())
|
||||
buf = io.StringIO()
|
||||
print(*args, file=buf, **kwargs)
|
||||
self._traces.append(buf.getvalue())
|
||||
|
||||
def test_build_fails_helpfully(self):
|
||||
try:
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
from __future__ import print_function
|
||||
|
||||
import use_lldb_suite
|
||||
import six
|
||||
|
||||
import sys
|
||||
import time
|
||||
|
@ -21,17 +20,17 @@ class ProgressBar(object):
|
|||
format Format
|
||||
incremental
|
||||
"""
|
||||
light_block = six.unichr(0x2591).encode("utf-8")
|
||||
solid_block = six.unichr(0x2588).encode("utf-8")
|
||||
solid_right_arrow = six.unichr(0x25BA).encode("utf-8")
|
||||
light_block = chr(0x2591).encode("utf-8")
|
||||
solid_block = chr(0x2588).encode("utf-8")
|
||||
solid_right_arrow = chr(0x25BA).encode("utf-8")
|
||||
|
||||
def __init__(self,
|
||||
start=0,
|
||||
end=10,
|
||||
width=12,
|
||||
fill=six.unichr(0x25C9).encode("utf-8"),
|
||||
blank=six.unichr(0x25CC).encode("utf-8"),
|
||||
marker=six.unichr(0x25CE).encode("utf-8"),
|
||||
fill=chr(0x25C9).encode("utf-8"),
|
||||
blank=chr(0x25CC).encode("utf-8"),
|
||||
marker=chr(0x25CE).encode("utf-8"),
|
||||
format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%',
|
||||
incremental=True):
|
||||
super(ProgressBar, self).__init__()
|
||||
|
@ -91,9 +90,9 @@ class AnimatedProgressBar(ProgressBar):
|
|||
start=0,
|
||||
end=10,
|
||||
width=12,
|
||||
fill=six.unichr(0x25C9).encode("utf-8"),
|
||||
blank=six.unichr(0x25CC).encode("utf-8"),
|
||||
marker=six.unichr(0x25CE).encode("utf-8"),
|
||||
fill=chr(0x25C9).encode("utf-8"),
|
||||
blank=chr(0x25CC).encode("utf-8"),
|
||||
marker=chr(0x25CE).encode("utf-8"),
|
||||
format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%',
|
||||
incremental=True,
|
||||
stdout=sys.stdout):
|
||||
|
@ -129,9 +128,9 @@ class ProgressWithEvents(AnimatedProgressBar):
|
|||
start=0,
|
||||
end=10,
|
||||
width=12,
|
||||
fill=six.unichr(0x25C9).encode("utf-8"),
|
||||
blank=six.unichr(0x25CC).encode("utf-8"),
|
||||
marker=six.unichr(0x25CE).encode("utf-8"),
|
||||
fill=chr(0x25C9).encode("utf-8"),
|
||||
blank=chr(0x25CC).encode("utf-8"),
|
||||
marker=chr(0x25CE).encode("utf-8"),
|
||||
format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%',
|
||||
incremental=True,
|
||||
stdout=sys.stdout):
|
||||
|
|
|
@ -7,8 +7,6 @@ import re
|
|||
import unittest
|
||||
import warnings
|
||||
|
||||
import six
|
||||
|
||||
from unittest2 import result
|
||||
from unittest2.util import (
|
||||
safe_repr, safe_str, strclass,
|
||||
|
@ -153,7 +151,7 @@ class _AssertRaisesContext(object):
|
|||
return True
|
||||
|
||||
expected_regexp = self.expected_regexp
|
||||
if isinstance(expected_regexp, six.string_types):
|
||||
if isinstance(expected_regexp, str):
|
||||
expected_regexp = re.compile(expected_regexp)
|
||||
if not expected_regexp.search(str(exc_value)):
|
||||
raise self.failureException(
|
||||
|
@ -173,7 +171,7 @@ class _TypeEqualityDict(object):
|
|||
|
||||
def __getitem__(self, key):
|
||||
value = self._store[key]
|
||||
if isinstance(value, six.string_types):
|
||||
if isinstance(value, str):
|
||||
return getattr(self.testcase, value)
|
||||
return value
|
||||
|
||||
|
@ -251,10 +249,7 @@ class TestCase(unittest.TestCase):
|
|||
self.addTypeEqualityFunc(tuple, 'assertTupleEqual')
|
||||
self.addTypeEqualityFunc(set, 'assertSetEqual')
|
||||
self.addTypeEqualityFunc(frozenset, 'assertSetEqual')
|
||||
if six.PY2:
|
||||
self.addTypeEqualityFunc(unicode, 'assertMultiLineEqual')
|
||||
else:
|
||||
self.addTypeEqualityFunc(str, 'assertMultiLineEqual')
|
||||
self.addTypeEqualityFunc(str, 'assertMultiLineEqual')
|
||||
|
||||
def addTypeEqualityFunc(self, typeobj, function):
|
||||
"""Add a type specific assertEqual style function to compare a type.
|
||||
|
@ -993,9 +988,9 @@ class TestCase(unittest.TestCase):
|
|||
|
||||
def assertMultiLineEqual(self, first, second, msg=None):
|
||||
"""Assert that two multi-line strings are equal."""
|
||||
self.assert_(isinstance(first, six.string_types), (
|
||||
self.assert_(isinstance(first, str), (
|
||||
'First argument is not a string'))
|
||||
self.assert_(isinstance(second, six.string_types), (
|
||||
self.assert_(isinstance(second, str), (
|
||||
'Second argument is not a string'))
|
||||
|
||||
if first != second:
|
||||
|
@ -1076,7 +1071,7 @@ class TestCase(unittest.TestCase):
|
|||
try:
|
||||
callable_obj(*args, **kwargs)
|
||||
except expected_exception as exc_value:
|
||||
if isinstance(expected_regexp, six.string_types):
|
||||
if isinstance(expected_regexp, str):
|
||||
expected_regexp = re.compile(expected_regexp)
|
||||
if not expected_regexp.search(str(exc_value)):
|
||||
raise self.failureException(
|
||||
|
@ -1091,7 +1086,7 @@ class TestCase(unittest.TestCase):
|
|||
|
||||
def assertRegexpMatches(self, text, expected_regexp, msg=None):
|
||||
"""Fail the test unless the text matches the regular expression."""
|
||||
if isinstance(expected_regexp, six.string_types):
|
||||
if isinstance(expected_regexp, str):
|
||||
expected_regexp = re.compile(expected_regexp)
|
||||
if not expected_regexp.search(text):
|
||||
msg = msg or "Regexp didn't match"
|
||||
|
@ -1101,7 +1096,7 @@ class TestCase(unittest.TestCase):
|
|||
|
||||
def assertNotRegexpMatches(self, text, unexpected_regexp, msg=None):
|
||||
"""Fail the test if the text matches the regular expression."""
|
||||
if isinstance(unexpected_regexp, six.string_types):
|
||||
if isinstance(unexpected_regexp, str):
|
||||
unexpected_regexp = re.compile(unexpected_regexp)
|
||||
match = unexpected_regexp.search(text)
|
||||
if match:
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
import sys
|
||||
import os
|
||||
import types
|
||||
import six
|
||||
|
||||
from unittest2 import loader, runner
|
||||
try:
|
||||
|
@ -77,7 +76,7 @@ class TestProgram(object):
|
|||
argv=None, testRunner=None,
|
||||
testLoader=loader.defaultTestLoader, exit=True,
|
||||
verbosity=1, failfast=None, catchbreak=None, buffer=None):
|
||||
if isinstance(module, six.string_types):
|
||||
if isinstance(module, str):
|
||||
self.module = __import__(module)
|
||||
for part in module.split('.')[1:]:
|
||||
self.module = getattr(self.module, part)
|
||||
|
|
|
@ -2,12 +2,11 @@
|
|||
|
||||
import use_lldb_suite
|
||||
|
||||
import io
|
||||
import sys
|
||||
import traceback
|
||||
import unittest
|
||||
|
||||
from six import StringIO as SixStringIO
|
||||
|
||||
from unittest2 import util
|
||||
from unittest2.compatibility import wraps
|
||||
|
||||
|
@ -65,8 +64,8 @@ class TestResult(unittest.TestResult):
|
|||
self._mirrorOutput = False
|
||||
if self.buffer:
|
||||
if self._stderr_buffer is None:
|
||||
self._stderr_buffer = SixStringIO()
|
||||
self._stdout_buffer = SixStringIO()
|
||||
self._stderr_buffer = io.StringIO()
|
||||
self._stdout_buffer = io.StringIO()
|
||||
sys.stdout = self._stdout_buffer
|
||||
sys.stderr = self._stderr_buffer
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
import sys
|
||||
import unittest
|
||||
from unittest2 import case, util
|
||||
import six
|
||||
|
||||
__unittest = True
|
||||
|
||||
|
@ -50,7 +49,7 @@ class BaseTestSuite(unittest.TestSuite):
|
|||
self._tests.append(test)
|
||||
|
||||
def addTests(self, tests):
|
||||
if isinstance(tests, six.string_types):
|
||||
if isinstance(tests, str):
|
||||
raise TypeError("tests must be an iterable of tests, not a string")
|
||||
for test in tests:
|
||||
self.addTest(test)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import difflib
|
||||
import pprint
|
||||
import re
|
||||
import six
|
||||
|
||||
from copy import deepcopy
|
||||
|
||||
|
@ -543,7 +542,7 @@ class Test_TestCase(unittest2.TestCase, EqualityMixin, HashingMixin):
|
|||
def runTest(self):
|
||||
pass
|
||||
|
||||
self.assertIsInstance(Foo().id(), six.string_types)
|
||||
self.assertIsInstance(Foo().id(), str)
|
||||
|
||||
# "If result is omitted or None, a temporary result object is created
|
||||
# and used, but is not made available to the caller. As TestCase owns the
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
import unittest2
|
||||
import six
|
||||
|
||||
from unittest2.test.support import LoggingResult
|
||||
|
||||
|
@ -125,7 +124,7 @@ class Test_FunctionTestCase(unittest2.TestCase):
|
|||
def test_id(self):
|
||||
test = unittest2.FunctionTestCase(lambda: None)
|
||||
|
||||
self.assertIsInstance(test.id(), six.string_types)
|
||||
self.assertIsInstance(test.id(), str)
|
||||
|
||||
# "Returns a one-line description of the test, or None if no description
|
||||
# has been provided. The default implementation of this method returns
|
||||
|
|
Loading…
Reference in New Issue