mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-22 13:33:56 +03:00
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.
This commit is contained in:
parent
b570204a97
commit
50f2c32cd5
10
meson.build
10
meson.build
@ -2583,7 +2583,7 @@ if conf.get('HAVE_BLKID') == 1 and conf.get('HAVE_GNU_EFI') == 1
|
||||
boot_link_with = [libsystemd_static, libshared_static]
|
||||
endif
|
||||
|
||||
public_programs += executable(
|
||||
exe = executable(
|
||||
'bootctl',
|
||||
'src/boot/bootctl.c',
|
||||
include_directories : includes,
|
||||
@ -2592,6 +2592,14 @@ if conf.get('HAVE_BLKID') == 1 and conf.get('HAVE_GNU_EFI') == 1
|
||||
versiondep],
|
||||
install_rpath : rootpkglibdir,
|
||||
install : true)
|
||||
public_programs += exe
|
||||
|
||||
if want_tests != 'false'
|
||||
test('test-bootctl-json',
|
||||
test_bootctl_json_sh,
|
||||
args : exe.full_path(),
|
||||
depends : exe)
|
||||
endif
|
||||
|
||||
public_programs += executable(
|
||||
'systemd-bless-boot',
|
||||
|
@ -89,6 +89,7 @@ if install_tests
|
||||
install_dir : testdata_dir)
|
||||
endif
|
||||
|
||||
test_bootctl_json_sh = find_program('test-bootctl-json.sh')
|
||||
test_fstab_generator_sh = find_program('test-fstab-generator.sh')
|
||||
test_network_generator_conversion_sh = find_program('test-network-generator-conversion.sh')
|
||||
test_systemctl_enable_sh = find_program('test-systemctl-enable.sh')
|
||||
|
24
test/test-bootctl-json.sh
Executable file
24
test/test-bootctl-json.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/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
|
Loading…
Reference in New Issue
Block a user