6fd9db246a
This stubs out sufficient infrastructure for us to register as a client and call the Moo API. A glaring problem here is the lack of extensive `glib::Variant` bindings; that's covered in the next gtk-rs release. My real goal was to try porting the `rpmostree-builtin-apply-live.cxx` code entirely to Rust, but there's more to do to expose the transaction helper APIs we have.
78 lines
2.6 KiB
Bash
Executable File
78 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
set -xeuo pipefail
|
|
|
|
. ${KOLA_EXT_DATA}/libtest.sh
|
|
cd $(mktemp -d)
|
|
|
|
# make sure that package-related entries are always present,
|
|
# even when they're empty.
|
|
# Validate there's no live state by default.
|
|
rpm-ostree status --json > status.json
|
|
assert_jq status.json \
|
|
'.deployments[0]["packages"]' \
|
|
'.deployments[0]["requested-packages"]' \
|
|
'.deployments[0]["requested-local-packages"]' \
|
|
'.deployments[0]["base-removals"]' \
|
|
'.deployments[0]["requested-base-removals"]' \
|
|
'.deployments[0]["live-inprogress"]|not' \
|
|
'.deployments[0]["live-replaced"]|not' \
|
|
'.deployments[0]["layered-commit-meta"]|not'
|
|
rm status.json
|
|
rpm-ostree testutils validate-parse-status
|
|
echo "ok empty pkg arrays, and commit meta correct in status json"
|
|
|
|
# Ensure we return an error when passing a wrong option.
|
|
rpm-ostree --help | awk '/^$/ {in_commands=0} {if(in_commands==1){print $0}} /^Builtin Commands:/ {in_commands=1}' > commands.txt
|
|
while read cmd; do
|
|
if rpm-ostree ${cmd} --n0t-3xisting-0ption &>/dev/null; then
|
|
assert_not_reached "command ${cmd} --n0t-3xisting-0ption was successful"
|
|
fi
|
|
done < commands.txt
|
|
echo "ok error on unknown command options"
|
|
|
|
rpm-ostree status --jsonpath '$.deployments[0].booted' > jsonpath.txt
|
|
assert_file_has_content_literal jsonpath.txt 'true'
|
|
echo "ok jsonpath"
|
|
|
|
# Verify operations as non-root
|
|
runuser -u core rpm-ostree status
|
|
echo "ok status doesn't require root"
|
|
|
|
# StateRoot is only in --verbose
|
|
rpm-ostree status > status.txt
|
|
assert_not_file_has_content status.txt StateRoot:
|
|
rpm-ostree status -v > status.txt
|
|
assert_file_has_content status.txt StateRoot:
|
|
echo "ok status text"
|
|
|
|
# Also check that we can do status as non-root non-active
|
|
runuser -u bin rpm-ostree status
|
|
echo "ok status doesn't require active PAM session"
|
|
|
|
rpm-ostree status -b > status.txt
|
|
assert_streq $(grep -F -e 'ostree://' status.txt | wc -l) "1"
|
|
assert_file_has_content status.txt BootedDeployment:
|
|
echo "ok status -b"
|
|
|
|
if rpm-ostree nosuchcommand --nosuchoption 2>err.txt; then
|
|
assert_not_reached "Expected an error for nosuchcommand"
|
|
fi
|
|
assert_file_has_content err.txt 'Unknown.*command'
|
|
echo "ok error on unknown command"
|
|
|
|
# related: https://github.com/coreos/fedora-coreos-config/issues/194
|
|
rpm-ostree testutils moo
|
|
echo "ok moo"
|
|
|
|
# Reload as root https://github.com/projectatomic/rpm-ostree/issues/976
|
|
rpm-ostree reload
|
|
echo "ok reload"
|
|
|
|
# See rpmostree-scripts.c
|
|
grep ^DEFAULT /etc/crypto-policies/config
|
|
echo "ok crypto-policies DEFAULT backend"
|
|
|
|
ldd /usr/lib64/librpmostree-1.so.1 > rpmostree-lib-deps.txt
|
|
assert_not_file_has_content rpmostree-lib-deps.txt libdnf
|
|
echo "ok lib deps"
|