Another pipe dream came true 
- this time, a dream of mine.
Have you noticed a bunch of screenshots on the nightly builds page?
Were you wondering what's up with them?

These screenshots are created on the build server, by emulating the very builds available for download, unmodified, in QEMU.
In other words, most of the nightly builds are no longer 100% untested when they appear on the download page

This is not an overnight development - it's built upon
all these years of fiddling with QEMU. A short while ago I couldn't give a good answer regarding
the usefulness of the emulator - now you can see it live.
Right now there are only a few tests, with OCR-based menu navigation (using
tesseract):
1) navigate to Debug -> Free Memory and take a screenshot from there
2) load the Lua module and run the Hello World script
3) load the file_man module and browse the filesystem
4) play the first 3 levels of the Sokoban game (lua_fix only; example for
1200D)
TODO:
- add more tests (easy, but time-consuming)
- emulate more camera components (e.g. image playback to be able to test ML overlays)
- check code coverage
-
diff the screenshots- nicer reports
For now, have fun watching the testing script playing Sokoban in QEMU

Emulation logIf you are wondering what's the point of testing this game: it covers many backend items, such as menu navigation, module loading, script config files, making sure keys are not missed randomly during script execution, checking whether the camera has enough memory to run scripts - most of these are real bugs found on some camera models from the current nightly builds.
At least, these tests will catch the long-standing issue of some camera models running out of memory, thus not being able to boot. Not very funny for a build considered somewhat stable...
And the emulation is still pretty limited, so I'm just adding tests for what works

A while ago I've got the suggestion to use
openQA, but I'm still wrapping my head around it. If you can show how it could save us from reinventing the wheel, I'm all ears.