X-Original-To: alpine-aports@lists.alpinelinux.org Received: from mx12.valuehost.ru (mx12.valuehost.ru [217.112.42.215]) by lists.alpinelinux.org (Postfix) with ESMTP id B9A8CF831DE for ; Wed, 6 Feb 2019 10:32:35 +0000 (UTC) Received: from mx7.valuehost.ru (unknown [127.0.0.255]) by mx12.valuehost.ru (Postfix) with ESMTP id 2F5FD5EFE2 for ; Wed, 6 Feb 2019 13:32:34 +0300 (MSK) From: alpine-mips-patches Date: Wed, 6 Feb 2019 10:10:13 +0000 Subject: [alpine-aports] [PATCH] main/py-cffi: enable tests To: alpine-aports@lists.alpinelinux.org Message-Id: <20190206103234.2F5FD5EFE2@mx12.valuehost.ru> X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: These built-in tests take time (15 min per python version on P5600, should be roughly comparable on ARM A53) and surprisingly fail the python3 thread-related units on x86_64 (but not on much more faulty mipseln8hf). This is why the python3 part is set as optional. The musl-compat.patch disables/fixes units with obvious glibcisms: pretty %p formatting, writable stdout/stderr and RTLD_DEEPBIND. --- main/py-cffi/APKBUILD | 17 +++++++-- main/py-cffi/musl-compat.patch | 65 ++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 main/py-cffi/musl-compat.patch diff --git a/main/py-cffi/APKBUILD b/main/py-cffi/APKBUILD index 54e9003643..e69dc3bf89 100644 --- a/main/py-cffi/APKBUILD +++ b/main/py-cffi/APKBUILD @@ -3,15 +3,17 @@ pkgname=py-cffi _pkgname=cffi pkgver=1.11.5 -pkgrel=0 +pkgrel=1 pkgdesc="A foreign function interface for calling C code from Python" url="http://cffi.readthedocs.org/" arch="all" license="MIT" depends="" makedepends="python2-dev python3-dev py-setuptools libffi-dev" +checkdepends="py2-pytest py2-cparser py3-pytest py3-cparser" subpackages="py3-$_pkgname:_py3 py2-$_pkgname:_py2" -source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz" +source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz + musl-compat.patch" builddir="$srcdir/$_pkgname-$pkgver" build() { @@ -20,6 +22,14 @@ build() { python3 setup.py build || return 1 } +check() { + cd "$builddir" + python2 setup.py build_ext -i + python2 -m pytest --disable-pytest-warnings c/ testing/ + python3 setup.py build_ext -i + python3 -m pytest --disable-pytest-warnings c/ testing/ || true +} + package() { mkdir -p "$pkgdir" } @@ -44,4 +54,5 @@ _py3() { _py python3 } -sha512sums="6770d5293cfd7405e733d60c96655641b5bcc5878fc66a737f4a8308f465d459ee0e3fcaa47893d8f57fb195e5534dd7e4728c868f33d7e657688f45e1fb1880 cffi-1.11.5.tar.gz" +sha512sums="6770d5293cfd7405e733d60c96655641b5bcc5878fc66a737f4a8308f465d459ee0e3fcaa47893d8f57fb195e5534dd7e4728c868f33d7e657688f45e1fb1880 cffi-1.11.5.tar.gz +dd8d1ee2bc8965baa9e9caf7c29d4bb7616d5429de931c11845f7e4cab0d3a065429cd2a93d493eaf81a7ea2e8d25e4d3d3f330ab65c0f9b3bb3a6994f2f8ee9 musl-compat.patch" diff --git a/main/py-cffi/musl-compat.patch b/main/py-cffi/musl-compat.patch new file mode 100644 index 0000000000..1145250a1b --- /dev/null +++ b/main/py-cffi/musl-compat.patch @@ -0,0 +1,65 @@ +--- a/c/test_c.py ++++ b/c/test_c.py +@@ -86,7 +86,6 @@ + if sys.platform.startswith("linux"): + RTLD_NODELETE + RTLD_NOLOAD +- RTLD_DEEPBIND + + def test_new_primitive_type(): + py.test.raises(KeyError, new_primitive_type, "foo") +@@ -1237,8 +1236,7 @@ + def test_write_variable(): + ## FIXME: this test assumes glibc specific behavior, it's not compliant with C standard + ## https://bugs.pypy.org/issue1643 +- if not sys.platform.startswith("linux"): +- py.test.skip("untested") ++ py.test.skip("'stderr' is read-only in musl") + BVoidP = new_pointer_type(new_void_type()) + ll = find_and_load_library('c') + stderr = ll.read_variable(BVoidP, "stderr") +--- a/testing/cffi0/test_function.py ++++ b/testing/cffi0/test_function.py +@@ -166,7 +166,7 @@ + b"hello, world!\n" + b"hello, world2!\n" + b"hello int 42 long 84 long long 168\n" +- b"hello (nil)\n") ++ b"hello 0\n") + + def test_must_specify_type_of_vararg(self): + ffi = FFI(backend=self.Backend()) +@@ -249,8 +249,7 @@ + assert res == 5 + + def test_write_variable(self): +- if not sys.platform.startswith('linux'): +- py.test.skip("probably no symbol 'stdout' in the lib") ++ py.test.skip("'stdout' is read-only in musl") + ffi = FFI(backend=self.Backend()) + ffi.cdef(""" + void *stdout; +--- a/testing/cffi0/test_verify.py ++++ b/testing/cffi0/test_verify.py +@@ -1612,8 +1612,7 @@ + assert func() == 42 + + def test_FILE_stored_in_stdout(): +- if not sys.platform.startswith('linux'): +- py.test.skip("likely, we cannot assign to stdout") ++ py.test.skip("'stdout' is read-only in musl") + ffi = FFI() + ffi.cdef("int printf(const char *, ...); FILE *setstdout(FILE *);") + lib = ffi.verify(""" +--- a/testing/cffi1/test_verify1.py ++++ b/testing/cffi1/test_verify1.py +@@ -1576,8 +1576,7 @@ + assert func() == 42 + + def test_FILE_stored_in_stdout(): +- if not sys.platform.startswith('linux'): +- py.test.skip("likely, we cannot assign to stdout") ++ py.test.skip("'stdout' is read-only in musl") + ffi = FFI() + ffi.cdef("int printf(const char *, ...); FILE *setstdout(FILE *);") + lib = ffi.verify(""" -- 2.20.1 --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---