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

Reply via email to