forked from Mirror/pmbootstrap
* Testsuite: Run UIs in Qemu and check running processes (and other 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 10% code coverage boost * Increased the `hello-world` pkgrel to verify that the Travis job is working. * Various fixes * Build device-packages for the device arch and don't raise an exception, but print a note if --ignore-depends is not specified and therefore the kernel gets installed, too. * Don't use --force when building in Travis (because abuild doesn't check the checksums then. Bug report on the way.) * Don't run the building process in the background, but wait for its completion * Exit with 1 when showing usage in check_checksums.py
34 lines
955 B
Bash
Executable file
34 lines
955 B
Bash
Executable file
#!/bin/sh -e
|
|
|
|
# Disable slow testcases
|
|
# aport_in_sync_with_git: clones Alpine's aports repo
|
|
# aportgen: clones Alpine's aports repo
|
|
disabled="
|
|
aport_in_sync_with_git
|
|
aportgen
|
|
"
|
|
|
|
# Make sure we have a valid device (#1128)
|
|
cd "$(dirname "$0")/.."
|
|
device="$(./pmbootstrap.py config device)"
|
|
deviceinfo="$PWD/aports/device/device-$device/deviceinfo"
|
|
if ! [ -e "$deviceinfo" ]; then
|
|
echo "ERROR: Could not find deviceinfo file for selected device '$device'."
|
|
echo "Expected path: $deviceinfo"
|
|
echo "Maybe you have switched to a branch where your device does not exist?"
|
|
echo "Use 'pmbootstrap config device qemu-amd64' to switch to a valid device."
|
|
exit 1
|
|
fi
|
|
|
|
# Filter out disabled testcases
|
|
enabled=""
|
|
for file in test/test_*.py; do
|
|
for test in $disabled; do
|
|
[ "test/test_${test}.py" = "$file" ] && continue 2
|
|
done
|
|
enabled="$enabled $file"
|
|
done
|
|
|
|
# Run enabled testcases with coverage enabled
|
|
# shellcheck disable=SC2086
|
|
pytest --cov=pmb $enabled
|