Skip to content

Commit

Permalink
test/system: Test startup on Rawhide with supported versions
Browse files Browse the repository at this point in the history
We need to know if the latest changes in the libc (that is dynamically
linked to the binary) causes problems in containers based on older
releases of Fedora.

The estimate of the version numbers ís very crude and does not follow
the upstream schedule. That should not be a problem.

A part of an existing test has been reused an made into a helper
function to implement this.

containers#899
  • Loading branch information
HarryMichal committed Oct 22, 2021
1 parent 69ffc88 commit fda018d
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 21 deletions.
15 changes: 12 additions & 3 deletions test/system/000-setup.bats
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,17 @@ load 'libs/helpers'

@test "test suite: Setup" {
# Cache the default image for the system
_pull_and_cache_distro_image $(get_system_id) $(get_system_version) || die
_pull_and_cache_distro_image $(get_system_id) $(get_system_version) || false
# Cache all images that will be needed during the tests
_pull_and_cache_distro_image fedora 32 || die
_pull_and_cache_distro_image busybox || die
_pull_and_cache_distro_image fedora 32 || false
_pull_and_cache_distro_image busybox || false
# If run on Fedora Rawhide, cache 2 extra images (previous Fedora versions)
local os_release="$(find_os_release)"
local system_id="$(get_system_id)"
local system_version="$(get_system_version)"
local rawhide_res="$(awk '/rawhide/' $os_release)"
if [ "$system_id" = "fedora" ] && [ -n "$rawhide_res" ]; then
_pull_and_cache_distro_image fedora "$((system_version-1))" || false
_pull_and_cache_distro_image fedora "$((system_version-2))" || false
fi
}
43 changes: 25 additions & 18 deletions test/system/103-container.bats
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,30 @@ teardown() {

create_default_container

run $PODMAN start $CONTAINER_NAME

CONTAINER_INITIALIZED=0

for TRIES in 1 2 3 4 5
do
run $PODMAN logs $CONTAINER_NAME
CONTAINER_OUTPUT=$output
run grep 'Listening to file system and ticker events' <<< $CONTAINER_OUTPUT
if [[ "$status" -eq 0 ]]; then
CONTAINER_INITIALIZED=1
break
fi
sleep 1
done

echo $CONTAINER_OUTPUT
assert [ "$CONTAINER_INITIALIZED" -eq 1 ]
res="$(container_started $CONTAINER_NAME)"

assert [ "$res" -eq 1 ]
}

@test "container(Fedora Rawhide): Containers with supported versions start without issues" {
local os_release="$(find_os_release)"
local system_id="$(get_system_id)"
local system_version="$(get_system_version)"
local rawhide_res="$(awk '/rawhide/' $os_release)"

if [ "$system_id" != "fedora" ] || [ -z "$rawhide_res" ]; then
skip "This test is only for Fedora Rawhide"
fi

create_distro_container "$system_id" "$system_version" latest
create_distro_container "$system_id" "$((system_version-1))" second
create_distro_container "$system_id" "$((system_version-2))" third

res1="$(container_started latest)"
res2="$(container_started second)"
res3="$(container_started third)"

assert [ "$res1" -eq 1 ]
assert [ "$res2" -eq 1 ]
assert [ "$res3" -eq 1 ]
}
32 changes: 32 additions & 0 deletions test/system/libs/helpers.bash
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,38 @@ function start_container() {
}


# Checks if a toolbox container started
#
# Parameters:
# ===========
# - container_name - name of the container
function container_started() {
local container_name

container_name="$1"

run $PODMAN start $container_name

container_initialized=0

for TRIES in 1 2 3 4 5
do
run $PODMAN logs $container_name
container_output=$output
run grep 'Listening to file system and ticker events' <<< $container_output
if [[ "$status" -eq 0 ]]; then
container_initialized=1
break
fi
sleep 1
done

echo $container_output >2

echo $container_initialized
}


function stop_container() {
local container_name
container_name="$1"
Expand Down

0 comments on commit fda018d

Please sign in to comment.