I have added another important functional test. Now, during the tests, I check if the FPS are “ok”. So, you should not receive builds with a low FPS count. Moreover, I have added several tests that check that every state leaves a “clean” environment i.e. there are not pending nodes, threads, tasks, events, …
The entire topic of functional tests that I developed should deserve a post on its own. Briefly:
- I run the unit tests &&
- I create the builds &&
- I run the functional tests &&
- I publish the builds
where && has the known semantics. The functional tests are the part that received most of my effort recently (since they will save me from manual testing, so I seriously hope that now I can develop faster). They are executed in a virtual machine, events are generated using xdotool, Windows builds are tested using Wine. During the test I capture some screenshots, and I compare them with the reference screenshots that I took on succesful executions. So, when I make a new build, I can assert that the build is running and it produces screens like the reference ones.
Please note that the gold here is Panda3D. I can run builds inside a virtual machine, and I can even run Windows builds in a Linux virtual machine. The Panda3D’s robustness allows this.