[Python-checkins] cpython (merge default -> default): merge heads
benjamin.peterson
python-checkins at python.org
Thu Aug 9 02:23:06 CEST 2012
http://hg.python.org/cpython/rev/b3e56aa3cc99
changeset: 78469:b3e56aa3cc99
parent: 78468:e2df976b8a33
parent: 78467:4ee4cceda047
user: Benjamin Peterson <benjamin at python.org>
date: Wed Aug 08 17:22:57 2012 -0700
summary:
merge heads
files:
Lib/test/regrtest.py | 8 +++++---
Lib/test/test_array.py | 14 ++++++++++++--
Misc/NEWS | 3 +++
Modules/_testcapimodule.c | 2 +-
setup.py | 21 +++++++++++++++++++++
5 files changed, 42 insertions(+), 6 deletions(-)
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -440,8 +440,11 @@
args, kwargs = json.loads(a)
try:
result = runtest(*args, **kwargs)
+ except KeyboardInterrupt:
+ result = INTERRUPTED, ''
except BaseException as e:
- result = INTERRUPTED, e.__class__.__name__
+ traceback.print_exc()
+ result = CHILD_ERROR, str(e)
sys.stdout.flush()
print() # Force a newline (just in case)
print(json.dumps(result))
@@ -684,8 +687,7 @@
sys.stdout.flush()
sys.stderr.flush()
if result[0] == INTERRUPTED:
- assert result[1] == 'KeyboardInterrupt'
- raise KeyboardInterrupt # What else?
+ raise KeyboardInterrupt
if result[0] == CHILD_ERROR:
raise Exception("Child error on {}: {}".format(test, result[1]))
test_index += 1
diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py
--- a/Lib/test/test_array.py
+++ b/Lib/test/test_array.py
@@ -1029,9 +1029,19 @@
smallerexample = '\x01\u263a\x00\ufefe'
biggerexample = '\x01\u263a\x01\ufeff'
outside = str('\x33')
- minitemsize = 4
+ minitemsize = 2
def test_unicode(self):
+ try:
+ import ctypes
+ sizeof_wchar = ctypes.sizeof(ctypes.c_wchar)
+ except ImportError:
+ import sys
+ if sys.platform == 'win32':
+ sizeof_wchar = 2
+ else:
+ sizeof_wchar = 4
+
self.assertRaises(TypeError, array.array, 'b', 'foo')
a = array.array('u', '\xa0\xc2\u1234')
@@ -1041,7 +1051,7 @@
a.fromunicode('\x11abc\xff\u1234')
s = a.tounicode()
self.assertEqual(s, '\xa0\xc2\u1234 \x11abc\xff\u1234')
- self.assertEqual(a.itemsize, 4)
+ self.assertEqual(a.itemsize, sizeof_wchar)
s = '\x00="\'a\\b\x80\xff\u0000\u0001\u1234'
a = array.array('u', s)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -312,6 +312,9 @@
Build
-----
+- Issue #11715: Fix multiarch detection without having Debian development
+ tools (dpkg-dev) installed.
+
- Issue #15037: Build OS X installers with local copy of ncurses 5.9 libraries
to avoid curses.unget_wch bug present in older versions of ncurses such as
those shipped with OS X.
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -1210,7 +1210,7 @@
int result;
PyObject *return_value = NULL;
- char buffers[32][8];
+ double buffers[8][4]; /* double ensures alignment where necessary */
if (!PyArg_ParseTuple(args, "OOyO:parse_tuple_and_keywords",
&sub_args, &sub_kwargs,
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -379,6 +379,27 @@
def add_multiarch_paths(self):
# Debian/Ubuntu multiarch support.
# https://wiki.ubuntu.com/MultiarchSpec
+ cc = sysconfig.get_config_var('CC')
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
+ if not os.path.exists(self.build_temp):
+ os.makedirs(self.build_temp)
+ ret = os.system(
+ '%s -print-multiarch > %s 2> /dev/null' % (cc, tmpfile))
+ multiarch_path_component = ''
+ try:
+ if ret >> 8 == 0:
+ with open(tmpfile) as fp:
+ multiarch_path_component = fp.readline().strip()
+ finally:
+ os.unlink(tmpfile)
+
+ if multiarch_path_component != '':
+ add_dir_to_list(self.compiler.library_dirs,
+ '/usr/lib/' + multiarch_path_component)
+ add_dir_to_list(self.compiler.include_dirs,
+ '/usr/include/' + multiarch_path_component)
+ return
+
if not find_executable('dpkg-architecture'):
return
opt = ''
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list