#!/usr/bin/env bats -*- bats -*- # # Tests generated configurations for systemd. # load helpers load helpers.network load helpers.registry load helpers.systemd function setup() { skip_if_remote "podman quadlet is not implemented for remote setup yet" skip_if_rootless_cgroupsv1 "Can't use --cgroups=split w/ CGv1 (issue 17456, wontfix)" skip_if_journald_unavailable "Needed for RHEL. FIXME: we might be able to re-enable a subset of tests." test -x "$QUADLET" || die "Cannot run quadlet tests without executable \$QUADLET ($QUADLET)" basic_setup } function teardown() { systemctl daemon-reload basic_teardown } # Helper function to get the systemd install directory based on rootless/root mode function get_quadlet_install_dir() { if is_rootless; then # For rootless: $XDG_CONFIG_HOME/containers/systemd or ~/.config/containers/systemd local config_home=${XDG_CONFIG_HOME:-$HOME/.config} echo "$config_home/containers/systemd" else # For root: /etc/containers/systemd echo "/etc/containers/systemd" fi } @test "quadlet verb - install, list, rm" { # Determine the install directory path based on rootless/root local install_dir=$(get_quadlet_install_dir) # Create a test quadlet file local quadlet_file=$PODMAN_TMPDIR/alpine-quadlet.container cat > $quadlet_file < $quadlet_dir/alpine1.container < $quadlet_dir/alpine2.container < $quadlet_dir/nginx.container < $PODMAN_TMPDIR/ready local quadlet_dir="$PODMAN_TMPDIR/quadlet_diri_$(safe_name)" mkdir -p $quadlet_dir cat > $quadlet_dir/basic.container < $test_file # Create a quadlet directory for installation local quadlet_dir=$PODMAN_TMPDIR/quadlet-mount-test mkdir -p $quadlet_dir # Create quadlet file that mounts the external test.txt file local quadlet_file=$quadlet_dir/mount-test.container cat > $quadlet_file < $quadlet_file < $quadlet_file < $quadlet_file < $quadlet_file1 < $quadlet_file2 < $quadlet_file3 <