Bug 57140 - tests fail on "narrow" Python builds
Summary: tests fail on "narrow" Python builds
Status: RESOLVED FIXED
Alias: None
Product: dbus
Classification: Unclassified
Component: python (show other bugs)
Version: unspecified
Hardware: x86 (IA32) All
: medium normal
Assignee: Simon McVittie
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-15 03:52 UTC by xcrdjn
Modified: 2016-03-06 00:09 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description xcrdjn 2012-11-15 03:52:20 UTC
Making check in _dbus_bindings
make[1]: Entering directory `/sources/blfs/xc/dbus-python-1.1.1/_dbus_bindings'
make  check-local
make[2]: Entering directory `/sources/blfs/xc/dbus-python-1.1.1/_dbus_bindings'
check-coding-style.mk: checking C sources...
make[2]: Leaving directory `/sources/blfs/xc/dbus-python-1.1.1/_dbus_bindings'
make[1]: Leaving directory `/sources/blfs/xc/dbus-python-1.1.1/_dbus_bindings'
Making check in _dbus_glib_bindings
make[1]: Entering directory `/sources/blfs/xc/dbus-python-1.1.1/_dbus_glib_bindings'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/sources/blfs/xc/dbus-python-1.1.1/_dbus_glib_bindings'
Making check in examples
make[1]: Entering directory `/sources/blfs/xc/dbus-python-1.1.1/examples'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/sources/blfs/xc/dbus-python-1.1.1/examples'
Making check in m4
make[1]: Entering directory `/sources/blfs/xc/dbus-python-1.1.1/m4'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/sources/blfs/xc/dbus-python-1.1.1/m4'
Making check in test
make[1]: Entering directory `/sources/blfs/xc/dbus-python-1.1.1/test'
make  test-import-repeatedly
make[2]: Entering directory `/sources/blfs/xc/dbus-python-1.1.1/test'
make[2]: `test-import-repeatedly' is up to date.
make[2]: Leaving directory `/sources/blfs/xc/dbus-python-1.1.1/test'
make  check-TESTS
make[2]: Entering directory `/sources/blfs/xc/dbus-python-1.1.1/test'
Running dbus-launch --sh-syntax --config-file=/sources/blfs/xc/dbus-python-1.1.1/test/tmp-session-bus.conf
Started bus pid 7015 at unix:abstract=/tmp/dbus-zeHIGmVvBL,guid=116ea05b510e7cf6c319f5b050a465c6
Running: ./run-test.sh 
DBUS_TOP_SRCDIR=/sources/blfs/xc/dbus-python-1.1.1
DBUS_TOP_BUILDDIR=/sources/blfs/xc/dbus-python-1.1.1
PYTHONPATH=/sources/blfs/xc/dbus-python-1.1.1/test/.libs:/sources/blfs/xc/dbus-python-1.1.1:/sources/blfs/xc/dbus-python-1.1.1/test:/sources/blfs/xc/dbus-python-1.1.1/_dbus_bindings/.libs:/sources/blfs/xc/dbus-python-1.1.1/_dbus_glib_bindings/.libs
PYTHON=/x1/bin/python
running test-standalone.py
test_object_path_no_match (__main__.TestMatching) ... ok
test_string_match (__main__.TestMatching) ... ok
test_append (__main__.TestMessageMarshalling) ... ok
test_append_Byte (__main__.TestMessageMarshalling) ... ok
test_append_ByteArray (__main__.TestMessageMarshalling) ... ok
test_append_Variant (__main__.TestMessageMarshalling) ... ok
test_count (__main__.TestMessageMarshalling) ... ok
test_destination (__main__.TestMessageMarshalling) ... ok
test_get_args_options (__main__.TestMessageMarshalling) ... ok
test_guess_signature (__main__.TestMessageMarshalling) ... ok
test_guess_signature_dbus_types (__main__.TestMessageMarshalling) ... ok
test_guess_signature_python_ints (__main__.TestMessageMarshalling) ... ok
test_interface (__main__.TestMessageMarshalling) ... ok
test_member (__main__.TestMessageMarshalling) ... ok
test_object_path_attr (__main__.TestMessageMarshalling) ... ok
test_path (__main__.TestMessageMarshalling) ... ok
test_sender (__main__.TestMessageMarshalling) ... ok
test_struct (__main__.TestMessageMarshalling) ... ok
test_utf8 (__main__.TestMessageMarshalling) ... ERROR
test_Array (__main__.TestTypes) ... ok
test_Byte (__main__.TestTypes) ... ok
test_ByteArray (__main__.TestTypes) ... ok
test_Dictionary (__main__.TestTypes) ... ok
test_Double (__main__.TestTypes) ... ok
test_Signature (__main__.TestTypes) ... ok
test_Struct (__main__.TestTypes) ... ok
test_integer_limits_16 (__main__.TestTypes) ... ok
test_integer_limits_32 (__main__.TestTypes) ... ok
test_integer_limits_64 (__main__.TestTypes) ... ok
test_integers (__main__.TestTypes) ... ok
test_object_path_attr (__main__.TestTypes) ... ok

======================================================================
ERROR: test_utf8 (__main__.TestMessageMarshalling)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/sources/blfs/xc/dbus-python-1.1.1/test/test-standalone.py", line 451, in test_utf8
    uni(0x0001FFFE),
  File "/sources/blfs/xc/dbus-python-1.1.1/test/test-standalone.py", line 437, in uni
    return unichr(x)
ValueError: unichr() arg not in range(0x10000) (narrow Python build)

----------------------------------------------------------------------
Ran 31 tests in 0.031s

FAILED (errors=1)
./run-test.sh: test-standalone.py failed
killing message bus 7015
/sources/blfs/xc/dbus-python-1.1.1/test/run-with-tmp-session-bus.sh: script "./run-test.sh" failed
FAIL: run-test.sh
PASS: test-import-repeatedly
========================================================================================
1 of 2 tests failed
Please report to http://bugs.freedesktop.org/enter_bug.cgi?product=dbus&component=python
========================================================================================
make[2]: *** [check-TESTS] Error 1
make[2]: Leaving directory `/sources/blfs/xc/dbus-python-1.1.1/test'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/sources/blfs/xc/dbus-python-1.1.1/test'
make: *** [check-recursive] Error 1
Comment 1 Simon McVittie 2012-11-15 12:20:23 UTC
(In reply to comment #0)
> ValueError: unichr() arg not in range(0x10000) (narrow Python build)

Python is not completely consistent about how it deals with high Unicode characters. A "narrow" Python build is one where unicode objects are UTF-16 internally (most characters are 2 bytes, but characters beyond U+FFFF get represented by a 4-byte "surrogate pair"), whereas in "wide" builds they're UCS-4 (every character takes 4 bytes).

Ideally, uni(0x0001FFFE) would return the UTF-16 encoding of U+1FFFE, which is { 0xD83F, 0xDFFE }, on narrow builds.

On any build, the intention is that uni(0x0001FFFE).encode('utf-8') should return the UTF-8 encoding of U+1FFFE, which is b"\xf0\x9f\xbf\xbe".
Comment 2 Simon McVittie 2016-03-06 00:09:28 UTC
I believe this is now fixed in git (thanks to travis-ci providing "narrow" Python builds, unlike just about every Linux distribution). The change will be released in 1.2.4.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.