I also have a branch that exposes some odd behavior. The unittests all pass locally on my machine, but the tests crash when running in gitlab ci. Both are running with the pytest runner, but local succeeds and gitlab fails. I haven't really had a chance to dig into that issue yet. Maybe someone has some insight on why the tests would pass locally but fail on gitlab?
That same branch also has the application tests re-enabled with no segfaults, but a couple of the tests do fail. (because of a shared_memory attribute that doesn't seem to exist in the OpenLP class?) Here's the branch: https://gitlab.com/benjaminhoving/openlp/tree/test_fix [https://gitlab.com/benjaminhoving/openlp/tree/test_fix] On 10/10/2019 1:38:28 AM, Raoul Snyman via openlp-dev <[email protected]> wrote: So I did some more digging... some observations: 1. The segfaults I'm running into are all in pytest's collection phase. 2. After a bunch of messing around I found two segfaults: - In settings.py, setting shortcuts when creating a new Settings object - In icons.py, getting the palette when creating a new UiIcons object 3. Both segfaults are due to no QApplication object existing at the time. >From this I can surmise that when collecting tests, pytest somehow runs the test methods, but doesn't run setUp or tearDown. Another reason to move to pytest fixtures, I guess. With some defensive programming techniques in those two classes, I was able to get past collection. I re-enabled the application tests, and now I'm running into a segfault there, but it's at least further than I was previously getting. Additionally, I removed the "global" QApplication object, and I introduced a "teardown_application()" to remove the app object. I've pushed this code up to here, if anyone is interested: https://gitlab.com/superfly/openlp/commit/6736c02c2dcc57343ca5a9e764fbf98a4c5c67e1 -- Raoul Snyman [email protected] _______________________________________________ openlp-dev mailing list [email protected] https://lists.openlp.io/mailman/listinfo/openlp-dev
_______________________________________________ openlp-dev mailing list [email protected] https://lists.openlp.io/mailman/listinfo/openlp-dev
