#!/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"