Testsuite: Run UIs in Qemu and check running processes and more
Created by: ollieparanoid
Changes
- When
pmbootstrap qemu
gets killed, it now takes down the Qemu process with it -
test/check_checksums.py
got a new optional--build
parameter, which makes it build all changed packages instead of just checking the checksums - We run this before running the testsuite now, so all changed packages get built before running tests (otherwise tests would hang without any output while a changed package is building)
- New testcase, that zaps all chroots, installs a specific UI (xfce4 and plasma-mobile currently, easy to extend), runs it via Qemu and checks the running processes via SSH.
- Version checking testcase: rewritten to include Alpine's testsuite file in our source tree, so we don't need to clone their git repo anymore. Now it is enabled for Travis.
- All this gives us a nice 8% code coverage boost
- Increased the
hello-world
pkgrel to verify that the Travis job is working.
Note
Plasma doesn't work with Qemu's --display=none
yet, so we can only test if polkitd
is running.
TODO
-
pmbootstrap build device-samsung-i9100
and other device packages: automatically build for the right arch instead of telling the user that it needs to be specified. Only that way it works automatically, and that's more userfriendly anyway. We can add a NOTE in the debug log (pmbootstrap log), which tells that we've assumed that this is what the user means. -
I bet this won't work on first try with Travis 😉 - for some reason, it seems to run thehello-world
package building in background, so it clashes with the Python testcases.
Reviewing
Read through the code, you don't necessarily need to run it locally (as it runs on Travis).