Download raw body.
net/synapse: fix tests
Le Wed, Aug 21, 2024 at 06:11:32PM +0200, Kirill A. Korinsky a écrit :
> On Wed, 21 Aug 2024 17:16:11 +0200,
> Landry Breuil <landry@openbsd.org> wrote:
> >
> > Le Wed, Aug 21, 2024 at 05:00:21PM +0200, Landry Breuil a écrit :
> > > Le Wed, Aug 21, 2024 at 03:49:45PM +0200, Kirill A. Korinsky a écrit :
> > > > ports@,
> > > >
> > > > Here a ping from another diff from my
> > >
> > > can you explain the dance about dropping/copying tests in pre-test ?
> > > why was that needed ? isn't doing MODPY_PYTEST_ARGS = --forked enough ?
> >
> > now that i've tested, this fails with a rather strange error (strange as
> > in "i dont understand why moving tests/ around helps") on all test files:
> >
>
> and I confirm that this is the problem I am overlooking by moving tests.
>
> I had discovered this problem at archivers/py-zstandard which I made for
> mitmproxy, but it was more than two months ago I and can not easily recall
> why it's help and how I discovered this hack.
>
> Probably it doesn't have the correct PYTHONPATH and I can't figure out how
> to set it correctly in case of cffi on this port.
i've tried playing with MODPY_TEST_LIBDIR to give it the right path to
the synapse_rust.abi3.so file, but everything i've tried so far fails.
one can easily reproduce the issue:
- go to WRKSRC
- LD_DEBUG=1 python3
>>> import tests.api.test_auth
dlopen: loading: /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so
objname [/usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so], dynp 0xdbef10a3840, objtype 4 lbase dbef107b000, obase dbef107b000
flags /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so = 0x0
head /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so
obj /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so has /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so as head
linking /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so as dlopen()ed
head [/usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so]
examining: '/usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so'
loading: libsodium.so.10.2 required by /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so
objname [/usr/local/lib/libsodium.so.10.2], dynp 0xdbe3db09858, objtype 3 lbase dbe3da87000, obase dbe3da87000
flags /usr/local/lib/libsodium.so.10.2 = 0x1
obj /usr/local/lib/libsodium.so.10.2 has /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so as head
linking dep /usr/local/lib/libsodium.so.10.2 as child of /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so
examining: '/usr/local/lib/libsodium.so.10.2'
loading: libpthread.so.27.1 required by /usr/local/lib/libsodium.so.10.2
linking dep /usr/lib/libpthread.so.27.1 as child of /usr/local/lib/libsodium.so.10.2
tail /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so
protect RELRO [0xdbe3db08090,0xdbe3db0a000) in /usr/local/lib/libsodium.so.10.2
doing ctors obj 0xdbe9f5ba000 @0xdbe3db05ac0: [/usr/local/lib/libsodium.so.10.2]
protect RELRO [0xdbef10a10f0,0xdbef10a5000) in /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so
doing ctors obj 0xdbe9f5b9000 @0xdbef109e4e0: [/usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so]
dlopen: /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so: done (success).
dlsym: PyInit__sodium in /usr/local/lib/python3.11/site-packages/nacl/_sodium.abi3.so: 0xdbef108b060
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/obj/ports/synapse-1.112.0/synapse-1.112.0/tests/api/test_auth.py", line 28, in <module>
from synapse.api.auth.internal import InternalAuth
File "/usr/obj/ports/synapse-1.112.0/synapse-1.112.0/synapse/__init__.py", line 32, in <module>
from synapse.util.rust import check_rust_lib_up_to_date
File "/usr/obj/ports/synapse-1.112.0/synapse-1.112.0/synapse/util/rust.py", line 27, in <module>
from synapse.synapse_rust import get_rust_file_digest
ImportError: cannot import name 'get_rust_file_digest' from 'synapse.synapse_rust' (unknown location)
>>>
so something doesnt set the right path to find
build/lib.openbsd-7.6-amd64-cpython-311/synapse/synapse_rust.abi3.so, but thats
not PYTHONPATH nor LD_LIBRARY_PATH.
as for the tests needing a database, its a bit more convoluted since it
needs a fullblown instance running:
synapse.storage.prepare_database.UpgradeDatabaseException: Uninitialised
database: run the main synapse process to prepare the database schema
before starting worker processes.
Landry
net/synapse: fix tests