91 lines
2.8 KiB
Bash
91 lines
2.8 KiB
Bash
# shellcheck shell=bash
|
||
#
|
||
# Copyright © 2021 – 2024 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.
|
||
#
|
||
|
||
missing_dependencies=false
|
||
|
||
if [ -f "$BATS_TEST_DIRNAME/libs/bats-assert/load.bash" ] && [ -f "$BATS_TEST_DIRNAME/libs/bats-support/load.bash" ]; then
|
||
load 'libs/helpers'
|
||
else
|
||
missing_dependencies=true
|
||
fi
|
||
|
||
setup_suite() {
|
||
bats_require_minimum_version 1.7.0
|
||
echo "# test suite: Set up" >&3
|
||
|
||
if $missing_dependencies; then
|
||
echo "# Missing dependencies" >&3
|
||
echo "# Forgot to run 'git submodule init' and 'git submodule update' ?" >&3
|
||
return 1
|
||
fi
|
||
|
||
local system_id
|
||
system_id="$(get_system_id)"
|
||
|
||
local system_version
|
||
system_version="$(get_system_version)"
|
||
|
||
_setup_environment
|
||
|
||
if echo "$TOOLBX_TEST_SYSTEM_TAGS" | grep "arch" >/dev/null 2>/dev/null; then
|
||
_pull_and_cache_distro_image arch latest || false
|
||
fi
|
||
|
||
if echo "$TOOLBX_TEST_SYSTEM_TAGS" | grep "fedora" >/dev/null 2>/dev/null; then
|
||
# Cache the default image for the system
|
||
_pull_and_cache_distro_image "$system_id" "$system_version" || false
|
||
# Cache all images that will be needed during the tests
|
||
_pull_and_cache_distro_image fedora 34 || false
|
||
_pull_and_cache_distro_image rhel 8.10 || false
|
||
fi
|
||
|
||
if echo "$TOOLBX_TEST_SYSTEM_TAGS" | grep "ubuntu" >/dev/null 2>/dev/null; then
|
||
_pull_and_cache_distro_image ubuntu 16.04 || false
|
||
_pull_and_cache_distro_image ubuntu 18.04 || false
|
||
_pull_and_cache_distro_image ubuntu 20.04 || false
|
||
fi
|
||
|
||
if echo "$TOOLBX_TEST_SYSTEM_TAGS" | grep "commands-options" >/dev/null 2>/dev/null; then
|
||
_pull_and_cache_distro_image busybox || false
|
||
# If run on Fedora Rawhide, cache 2 extra images (previous Fedora versions)
|
||
if is_fedora_rawhide && (echo "$TOOLBX_TEST_SYSTEM_TAGS" | grep "fedora" >/dev/null 2>/dev/null); then
|
||
_pull_and_cache_distro_image fedora "$((system_version-1))" || false
|
||
_pull_and_cache_distro_image fedora "$((system_version-2))" || false
|
||
fi
|
||
|
||
_setup_docker_registry
|
||
fi
|
||
}
|
||
|
||
teardown_suite() {
|
||
bats_require_minimum_version 1.7.0
|
||
echo "# test suite: Tear down" >&3
|
||
|
||
if $missing_dependencies; then
|
||
return 0
|
||
fi
|
||
|
||
_setup_environment
|
||
|
||
if echo "$TOOLBX_TEST_SYSTEM_TAGS" | grep "commands-options" >/dev/null 2>/dev/null; then
|
||
_clean_docker_registry
|
||
fi
|
||
|
||
_clean_cached_images
|
||
_clean_temporary_storage
|
||
}
|