Hello,

pyopenssl runs the tests as follows:

for py in $(PYVERS); do  \
    for test in OpenSSL/test/test*; do \
        echo "running $$test for python$$py ..."; \
        PYTHONPATH=build/lib.$(DEB_BUILD_ARCH_OS)-$(shell uname -m)-$$py
python$$py $$test; \
        PYTHONPATH=`ls -d build/lib_d.*-$$py || ls -d
build/lib.*-$$py-pydebug` python$$py-dbg $$test; \
    done; \
done

This is missing set -e, which means the tests were failing however the
packages still get built.

The build/lib.$(DEB_BUILD_ARCH_OS)-$(shell uname -m)-$$py python$$py path
looks wrong. It seems to work for Python2, but Python 3 uses build/lib, so
all Python3 tests fail.

Any ideas how to fix this? I am not so familiar with packaging C libraries
for Python. I suspect the debian/rules file could be cleaned up a lot.


Upstream provides a runtests.py - however that relies on twisted, which is
not available for Python3. Have been told that twisted may not be available
for Python 3 until after Python 3.5 is released in fact.

I have submitted a patch to http://bugs.debian.org/751144 - think I have
done as much as I can here, I don't understand the code well enough to
understand why the Python2 tests are failing.



Full list of errors without set -e:


   debian/rules override_dh_auto_test
make[1]: Entering directory '/«PKGBUILDDIR»'
# run tests
for py in 2.7 3.4; do  \
    for test in OpenSSL/test/test*; do \
        echo "running $test for python$py ..."; \
        PYTHONPATH=build/lib.linux-x86_64-$py python$py $test; \
        PYTHONPATH=`ls -d build/lib_d.*-$py || ls -d
build/lib.*-$py-pydebug` python$py-dbg $test; \
    done; \
done
running OpenSSL/test/test_crypto.py for python2.7 ...
................writing RSA key
....................................MAC verified OK
MAC verified OK
..MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
...unable to write 'random state'
.......MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
MAC verified OK
....................................................F.............................FEE....................................
======================================================================
ERROR: test_extension_count (__main__.X509Tests)However, question about the
----------------------------------------------------------------------
Traceback (most recent call last):
  File "OpenSSL/test/test_crypto.py", line 1483, in test_extension_count
    c = self._extcert(pkey, [])
  File "OpenSSL/test/test_crypto.py", line 1468, in _extcert
    FILETYPE_PEM, dump_certificate(FILETYPE_PEM, cert))
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7/OpenSSL/crypto.py", line
1219, in load_certificate
    _raise_current_error()
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7/OpenSSL/_util.py", line
22, in exception_from_error_queue
    raise exceptionType(errors)
Error: [('asn1 encoding routines', 'c2i_ASN1_OBJECT', 'invalid object
encoding'), ('asn1 encoding routines', 'ASN1_TEMPLATE_NOEXP_D2I', 'nested
asn1 error'), ('asn1 encoding routines', 'ASN1_TEMPLATE_NOEXP_D2I', 'nested
asn1 error'), ('asn1 encoding routines', 'ASN1_TEMPLATE_NOEXP_D2I', 'nested
asn1 error'), ('PEM routines', 'PEM_ASN1_read_bio', 'ASN1 lib')]

======================================================================
ERROR: test_get_extension (__main__.X509Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "OpenSSL/test/test_crypto.py", line 1506, in test_get_extension
    cert = self._extcert(pkey, [ca, key, subjectAltName])
  File "OpenSSL/test/test_crypto.py", line 1468, in _extcert
    FILETYPE_PEM, dump_certificate(FILETYPE_PEM, cert))
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7/OpenSSL/crypto.py", line
1219, in load_certificate
    _raise_current_error()
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7/OpenSSL/_util.py", line
22, in exception_from_error_queue
    raise exceptionType(errors)
Error: [('asn1 encoding routines', 'c2i_ASN1_OBJECT', 'invalid object
encoding'), ('asn1 encoding routines', 'ASN1_TEMPLATE_NOEXP_D2I', 'nested
asn1 error'), ('asn1 encoding routines', 'ASN1_TEMPLATE_NOEXP_D2I', 'nested
asn1 error'), ('asn1 encoding routines', 'ASN1_TEMPLATE_NOEXP_D2I', 'nested
asn1 error'), ('PEM routines', 'PEM_ASN1_read_bio', 'ASN1 lib')]

======================================================================
FAIL: test_der (__main__.X509NameTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "OpenSSL/test/test_crypto.py", line 907, in test_der
    b('0\x1b1\x0b0\t\x06\x03U\x04\x06\x13\x02US'
AssertionError:
'0\x1b1\x0b0\t\x06\x03U\x04\x06\x13\x02US1\x0c0\n\x06\x03U\x04\x03\x0c\x03foo'
!=
'0\x1b1\x0b0\t\x06\x03U\x04\x06\x13\x02US1\x0c0\n\x06\x03U\x04\x03\x13\x03foo'

======================================================================
FAIL: test_digest (__main__.X509Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "OpenSSL/test/test_crypto.py", line 1454, in test_digest
    b("A8:EB:07:F8:53:25:0A:F2:56:05:C5:A5:C4:C4:C7:15"))
AssertionError: '6E:DB:AA:35:8C:39:8C:86:95:0E:D6:51:7E:42:FF:F4' !=
'A8:EB:07:F8:53:25:0A:F2:56:05:C5:A5:C4:C4:C7:15'

----------------------------------------------------------------------
Ran 185 tests in 0.775s

FAILED (failures=2, errors=2)
ls: cannot access build/lib_d.*-2.7: No such file or directory
Traceback (most recent call last):
  File "OpenSSL/test/test_crypto.py", line 16, in <module>
    from OpenSSL.crypto import TYPE_RSA, TYPE_DSA, Error, PKey, PKeyType
  File
"/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7-pydebug/OpenSSL/__init__.py",
line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7-pydebug/OpenSSL/rand.py",
line 11, in <module>
    from OpenSSL._util import (
  File
"/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7-pydebug/OpenSSL/_util.py", line
4, in <module>
    binding = Binding()
  File
"/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py",
line 89, in __init__
    self._ensure_ffi_initialized()
  File
"/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py",
line 109, in _ensure_ffi_initialized
    libraries=libraries,
  File
"/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/utils.py",
line 39, in build_ffi
    ffi = cffi.FFI()
  File "/usr/lib/python2.7/dist-packages/cffi/api.py", line 56, in __init__
    import _cffi_backend as backend
ImportError: /usr/lib/python2.7/dist-packages/_
cffi_backend.x86_64-linux-gnu.so: undefined symbol: Py_InitModule4_64
[55171 refs]
running OpenSSL/test/test_rand.py for python2.7 ...
.................
----------------------------------------------------------------------
Ran 17 tests in 0.021s

OK
ls: cannot access build/lib_d.*-2.7: No such file or directory
Traceback (most recent call last):
  File "OpenSSL/test/test_rand.py", line 13, in <module>
    from OpenSSL.test.util import TestCase, b
  File
"/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7-pydebug/OpenSSL/__init__.py",
line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7-pydebug/OpenSSL/rand.py",
line 11, in <module>
    from OpenSSL._util import (
  File
"/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7-pydebug/OpenSSL/_util.py", line
4, in <module>
    binding = Binding()
  File
"/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py",
line 89, in __init__
    self._ensure_ffi_initialized()
  File
"/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py",
line 109, in _ensure_ffi_initialized
    libraries=libraries,
  File
"/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/utils.py",
line 39, in build_ffi
    ffi = cffi.FFI()
  File "/usr/lib/python2.7/dist-packages/cffi/api.py", line 56, in __init__
    import _cffi_backend as backend
ImportError: /usr/lib/python2.7/dist-packages/_
cffi_backend.x86_64-linux-gnu.so: undefined symbol: Py_InitModule4_64
[54489 refs]
running OpenSSL/test/test_ssl.py for python2.7 ...
................................................F........................................E............................................................
======================================================================
ERROR: test_set_default_verify_paths (__main__.ContextTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "OpenSSL/test/test_ssl.py", line 933, in
test_set_default_verify_paths
    clientSSL.do_handshake()
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7/OpenSSL/SSL.py", line
1076, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7/OpenSSL/SSL.py", line
871, in _raise_ssl_error
    _raise_current_error()
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7/OpenSSL/_util.py", line
22, in exception_from_error_queue
    raise exceptionType(errors)
Error: [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify
failed')]

======================================================================
FAIL: test_wantWriteError (__main__.ConnectionTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "OpenSSL/test/test_ssl.py", line 1925, in test_wantWriteError
    "Failed to fill socket buffer, cannot test BIO want write")
AssertionError: Failed to fill socket buffer, cannot test BIO want write

----------------------------------------------------------------------
Ran 150 tests in 1.434s

FAILED (failures=1, errors=1)
ls: cannot access build/lib_d.*-2.7: No such file or directory
Traceback (most recent call last):
  File "OpenSSL/test/test_ssl.py", line 19, in <module>
    from OpenSSL.crypto import TYPE_RSA, FILETYPE_PEM
  File
"/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7-pydebug/OpenSSL/__init__.py",
line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7-pydebug/OpenSSL/rand.py",
line 11, in <module>
    from OpenSSL._util import (
  File
"/«PKGBUILDDIR»/build/lib.linux-x86_64-2.7-pydebug/OpenSSL/_util.py", line
4, in <module>
    binding = Binding()
  File
"/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py",
line 89, in __init__
    self._ensure_ffi_initialized()
  File
"/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py",
line 109, in _ensure_ffi_initialized
    libraries=libraries,
  File
"/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/utils.py",
line 39, in build_ffi
    ffi = cffi.FFI()
  File "/usr/lib/python2.7/dist-packages/cffi/api.py", line 56, in __init__
    import _cffi_backend as backend
ImportError: /usr/lib/python2.7/dist-packages/_
cffi_backend.x86_64-linux-gnu.so: undefined symbol: Py_InitModule4_64
[57013 refs]
running OpenSSL/test/test_crypto.py for python3.4 ...
Traceback (most recent call last):
  File "OpenSSL/test/test_crypto.py", line 16, in <module>
    from OpenSSL.crypto import TYPE_RSA, TYPE_DSA, Error, PKey, PKeyType
ImportError: No module named 'OpenSSL'
ls: cannot access build/lib_d.*-3.4: No such file or directory
ls: cannot access build/lib.*-3.4-pydebug: No such file or directory
Traceback (most recent call last):
  File "OpenSSL/test/test_crypto.py", line 16, in <module>
    from OpenSSL.crypto import TYPE_RSA, TYPE_DSA, Error, PKey, PKeyType
ImportError: No module named 'OpenSSL'
running OpenSSL/test/test_rand.py for python3.4 ...
Traceback (most recent call last):
  File "OpenSSL/test/test_rand.py", line 13, in <module>
    from OpenSSL.test.util import TestCase, b
ImportError: No module named 'OpenSSL'
ls: cannot access build/lib_d.*-3.4: No such file or directory
ls: cannot access build/lib.*-3.4-pydebug: No such file or directory
Traceback (most recent call last):
  File "OpenSSL/test/test_rand.py", line 13, in <module>
    from OpenSSL.test.util import TestCase, b
ImportError: No module named 'OpenSSL'
running OpenSSL/test/test_ssl.py for python3.4 ...
Traceback (most recent call last):
  File "OpenSSL/test/test_ssl.py", line 19, in <module>
    from OpenSSL.crypto import TYPE_RSA, FILETYPE_PEM
ImportError: No module named 'OpenSSL'
ls: cannot access build/lib_d.*-3.4: No such file or directory
ls: cannot access build/lib.*-3.4-pydebug: No such file or directory
Traceback (most recent call last):
  File "OpenSSL/test/test_ssl.py", line 19, in <module>
    from OpenSSL.crypto import TYPE_RSA, FILETYPE_PEM
ImportError: No module named 'OpenSSL'
make[1]: *** [override_dh_auto_test] Error 1
debian/rules:25: recipe for target 'override_dh_auto_test' failed
make[1]: Leaving directory '/«PKGBUILDDIR»'
make: *** [build] Error 2
debian/rules:11: recipe for target 'build' failed
dpkg-buildpackage: error: debian/rules build gave error exit status 2


Thanks
-- 
Brian May <br...@microcomaustralia.com.au>

Reply via email to