aeb5d8ec1a
Commitae43560d45
had added a test with a similar intention. When the test suite is run on a Fedora Rawhide host, it tests whether the containers for the two previous stable Fedora releases start or not. Fedora N-2 reaches End of Life 4 weeks after Fedora N is released [1]. So, testing the containers for Fedora Rawhide and the two previous stable releases on a Fedora Rawhide host is a decent test of general backwards compatibility. However, as seen recently [2], this isn't enough to catch some known ABI compatibility issues [3,4]. These involve toolbox binaries built on hosts with newer toolchains that aren't meant to be run against containers with older runtimes. A targeted test is needed to defend against these scenarios. The fedora-toolbox:34 image has glibc-2.33, which is old enough to be unable to run binaries compiled on Fedora 35 with glibc-2.34 and newer. [1] https://docs.fedoraproject.org/en-US/releases/ [2] https://github.com/containers/toolbox/pull/1180 [3] Commit6063eb27b9
https://github.com/containers/toolbox/issues/821 [4] Commit6ad9c63180
https://github.com/containers/toolbox/issues/529 https://github.com/containers/toolbox/pull/1187
69 lines
1.9 KiB
Bash
69 lines
1.9 KiB
Bash
#!/usr/bin/env bats
|
||
#
|
||
# Copyright © 2021 – 2022 Red Hat, Inc.
|
||
#
|
||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
# you may not use this file except in compliance with the License.
|
||
# You may obtain a copy of the License at
|
||
#
|
||
# http://www.apache.org/licenses/LICENSE-2.0
|
||
#
|
||
# Unless required by applicable law or agreed to in writing, software
|
||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
# See the License for the specific language governing permissions and
|
||
# limitations under the License.
|
||
#
|
||
|
||
load 'libs/bats-support/load'
|
||
load 'libs/bats-assert/load'
|
||
load 'libs/helpers'
|
||
|
||
setup() {
|
||
_setup_environment
|
||
cleanup_containers
|
||
}
|
||
|
||
teardown() {
|
||
cleanup_containers
|
||
}
|
||
|
||
|
||
@test "container: Check container starts without issues" {
|
||
readonly CONTAINER_NAME="$(get_system_id)-toolbox-$(get_system_version)"
|
||
|
||
create_default_container
|
||
|
||
run container_started $CONTAINER_NAME
|
||
assert_success
|
||
}
|
||
|
||
@test "container: Start with an old forward incompatible runtime" {
|
||
create_distro_container fedora 34 fedora-toolbox-34
|
||
|
||
run container_started fedora-toolbox-34
|
||
assert_success
|
||
}
|
||
|
||
@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
|
||
run container_started latest
|
||
assert_success
|
||
|
||
create_distro_container "$system_id" "$((system_version-1))" second
|
||
run container_started second
|
||
assert_success
|
||
|
||
create_distro_container "$system_id" "$((system_version-2))" third
|
||
run container_started third
|
||
assert_success
|
||
}
|