One task I’ve been doing in free moments is improving test coverage - and using automated tools (like Claude Code) is bug-hunting. This includes tests using “sanitizers” like Address Sanitizer, Thread Sanitizer, Leak Sanitizer as well as fuzz testing to particularly throw malformed input (e.g., random molecules) at the code to make sure it doesn’t crash.
I’m also looking at “test coverage” - in other words, what features, what lines of code are handled with tests:
| library | lines | covered | line % | branch % |
|---|---|---|---|---|
| core | 12097 | 9908 | 81.9% | 50.8% |
| calc | 1847 | 1207 | 65.3% | 40.0% |
| io | 8101 | 5973 | 73.7% | 43.0% |
| quantumio | 4524 | 2584 | 57.1% | 37.6% |
| qtgui | 8136 | 2948 | 36.2% | 19.2% |
In other words, a lot of the core code is tested, but not always every branch. Right now, some formats in io and quantumio aren’t tested because they’re less common. And qtgui is a bit harder because it requires a running app.
So that’s the need - testing the UI
I’m going to work on creating more tests, fixing more bugs.
Please try installing a nightly build: Install — Avogadro 2.0.0 documentation
If you run into bugs or crashes, please let me know.