systemd/test/test-bootctl-json.sh
Zbigniew Jędrzejewski-Szmek 50f2c32cd5 tests: add a simple test that bootctl output is valid json
python's json.tool module is used because it does validation. jq is more forgiving.
Also, json is in the stdlib, so it should be always available.
2022-12-01 18:01:00 +01:00

25 lines
548 B
Bash
Executable file

#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -e
set -o pipefail
bootctl="${1:?}"
"$bootctl" --no-pager list >/dev/null || {
echo "$bootctl list failed, skipping tests" 1>&2
exit 77
}
set -x
"$bootctl" list --json=pretty | python3 -m json.tool >/dev/null
"$bootctl" list --json=short | python3 -m json.tool >/dev/null
command -v jq >/dev/null || {
echo "jq is not available, skipping jq tests" 1>&2
exit 0
}
"$bootctl" list --json=pretty | jq . >/dev/null
"$bootctl" list --json=short | jq . >/dev/null