Skip to content

Commit

Permalink
test/system: Test that D-Bus works on Arch Linux, RHEL, Ubuntu, etc.
Browse files Browse the repository at this point in the history
#1330

Signed-off-by: Nieves Montero <[email protected]>
  • Loading branch information
nievesmontero authored and debarshiray committed Nov 30, 2023
1 parent bc75133 commit f3aa40e
Showing 1 changed file with 357 additions and 2 deletions.
359 changes: 357 additions & 2 deletions test/system/211-dbus.bats
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ teardown() {
cleanup_containers
}

@test "dbus: session bus" {
@test "dbus: session bus inside the default container" {
local expected_response
expected_response="$(gdbus call \
--session \
Expand Down Expand Up @@ -58,7 +58,159 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: system bus" {
@test "dbus: session bus inside Arch Linux" {
local expected_response
expected_response="$(gdbus call \
--session \
--dest org.freedesktop.DBus \
--object-path /org/freedesktop/DBus \
--method org.freedesktop.DBus.Peer.Ping)"

create_distro_container arch latest arch-toolbox-latest

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro arch \
gdbus call \
--session \
--dest org.freedesktop.DBus \
--object-path /org/freedesktop/DBus \
--method org.freedesktop.DBus.Peer.Ping

assert_success
assert_line --index 0 "$expected_response"

if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
else
assert [ ${#lines[@]} -eq 2 ]
fi

# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: session bus inside Fedora 34" {
local expected_response
expected_response="$(gdbus call \
--session \
--dest org.freedesktop.DBus \
--object-path /org/freedesktop/DBus \
--method org.freedesktop.DBus.Peer.Ping)"

create_distro_container fedora 34 fedora-toolbox-34

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro fedora \
--release 34 \
gdbus call \
--session \
--dest org.freedesktop.DBus \
--object-path /org/freedesktop/DBus \
--method org.freedesktop.DBus.Peer.Ping

assert_success
assert_line --index 0 "$expected_response"

if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
else
assert [ ${#lines[@]} -eq 2 ]
fi

# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: session bus inside RHEL 8.7" {
local expected_response
expected_response="$(gdbus call \
--session \
--dest org.freedesktop.DBus \
--object-path /org/freedesktop/DBus \
--method org.freedesktop.DBus.Peer.Ping)"

create_distro_container rhel 8.7 rhel-toolbox-8.7

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro rhel \
--release 8.7 \
gdbus call \
--session \
--dest org.freedesktop.DBus \
--object-path /org/freedesktop/DBus \
--method org.freedesktop.DBus.Peer.Ping

assert_success
assert_line --index 0 "$expected_response"

if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
else
assert [ ${#lines[@]} -eq 2 ]
fi

# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: session bus inside Ubuntu 16.04" {
busctl --user call org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.Peer Ping

create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro ubuntu \
--release 16.04 \
busctl --user call \
org.freedesktop.DBus \
/org/freedesktop/DBus \
org.freedesktop.DBus.Peer \
Ping

assert_success
assert [ ${#lines[@]} -eq 0 ]
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: session bus inside Ubuntu 18.04" {
busctl --user call org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.Peer Ping

create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro ubuntu \
--release 18.04 \
busctl --user call \
org.freedesktop.DBus \
/org/freedesktop/DBus \
org.freedesktop.DBus.Peer \
Ping

assert_success
assert [ ${#lines[@]} -eq 0 ]
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: session bus inside Ubuntu 20.04" {
busctl --user call org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.Peer Ping

create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro ubuntu \
--release 20.04 \
busctl --user call \
org.freedesktop.DBus \
/org/freedesktop/DBus \
org.freedesktop.DBus.Peer \
Ping

assert_success
assert [ ${#lines[@]} -eq 0 ]
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: system bus inside the default container" {
local expected_response
expected_response="$(gdbus call \
--system \
Expand Down Expand Up @@ -90,3 +242,206 @@ teardown() {
# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: system bus inside Arch Linux" {
local expected_response
expected_response="$(gdbus call \
--system \
--dest org.freedesktop.systemd1 \
--object-path /org/freedesktop/systemd1 \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.systemd1.Manager \
Version)"

create_distro_container arch latest arch-toolbox-latest

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro arch \
gdbus call \
--system \
--dest org.freedesktop.systemd1 \
--object-path /org/freedesktop/systemd1 \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.systemd1.Manager \
Version

assert_success
assert_line --index 0 "$expected_response"

if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
else
assert [ ${#lines[@]} -eq 2 ]
fi

# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: system bus inside Fedora 34" {
local expected_response
expected_response="$(gdbus call \
--system \
--dest org.freedesktop.systemd1 \
--object-path /org/freedesktop/systemd1 \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.systemd1.Manager \
Version)"

create_distro_container fedora 34 fedora-toolbox-34

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro fedora \
--release 34 \
gdbus call \
--system \
--dest org.freedesktop.systemd1 \
--object-path /org/freedesktop/systemd1 \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.systemd1.Manager \
Version

assert_success
assert_line --index 0 "$expected_response"

if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
else
assert [ ${#lines[@]} -eq 2 ]
fi

# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: system bus inside RHEL 8.7" {
local expected_response
expected_response="$(gdbus call \
--system \
--dest org.freedesktop.systemd1 \
--object-path /org/freedesktop/systemd1 \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.systemd1.Manager \
Version)"

create_distro_container rhel 8.7 rhel-toolbox-8.7

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro rhel \
--release 8.7 \
gdbus call \
--system \
--dest org.freedesktop.systemd1 \
--object-path /org/freedesktop/systemd1 \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.systemd1.Manager \
Version

assert_success
assert_line --index 0 "$expected_response"

if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
else
assert [ ${#lines[@]} -eq 2 ]
fi

# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: system bus inside Ubuntu 16.04" {
local expected_response
expected_response="$(busctl --system get-property \
org.freedesktop.systemd1 \
/org/freedesktop/systemd1 \
org.freedesktop.systemd1.Manager \
Version)"

create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro ubuntu \
--release 16.04 \
busctl --system get-property \
org.freedesktop.systemd1 \
/org/freedesktop/systemd1 \
org.freedesktop.systemd1.Manager \
Version

assert_success
assert_line --index 0 "$expected_response"

if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
else
assert [ ${#lines[@]} -eq 2 ]
fi

# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: system bus inside Ubuntu 18.04" {
local expected_response
expected_response="$(busctl --system get-property \
org.freedesktop.systemd1 \
/org/freedesktop/systemd1 \
org.freedesktop.systemd1.Manager \
Version)"

create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro ubuntu \
--release 18.04 \
busctl --system get-property \
org.freedesktop.systemd1 \
/org/freedesktop/systemd1 \
org.freedesktop.systemd1.Manager \
Version

assert_success
assert_line --index 0 "$expected_response"

if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
else
assert [ ${#lines[@]} -eq 2 ]
fi

# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

@test "dbus: system bus inside Ubuntu 20.04" {
local expected_response
expected_response="$(busctl --system get-property \
org.freedesktop.systemd1 \
/org/freedesktop/systemd1 \
org.freedesktop.systemd1.Manager \
Version)"

create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04

run --keep-empty-lines --separate-stderr "$TOOLBOX" run \
--distro ubuntu \
--release 20.04 \
busctl --system get-property \
org.freedesktop.systemd1 \
/org/freedesktop/systemd1 \
org.freedesktop.systemd1.Manager \
Version

assert_success
assert_line --index 0 "$expected_response"

if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
else
assert [ ${#lines[@]} -eq 2 ]
fi

# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}

0 comments on commit f3aa40e

Please sign in to comment.