Skip to content

Testsuite: Run UIs in Qemu and check running processes and more

postmarketOS Bot requested to merge feature/qemu-running-processes into master

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 the hello-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).

Merge request reports