test/system: Test that networking works
Note that 'run --keep-empty-lines' counts the trailing newline on the last line as a separate line. https://github.com/containers/toolbox/pull/1325
This commit is contained in:
parent
d7d2fd90cb
commit
41215cf82e
4 changed files with 165 additions and 0 deletions
|
@ -111,5 +111,6 @@ subdir('data')
|
|||
subdir('doc')
|
||||
subdir('profile.d')
|
||||
subdir('src')
|
||||
subdir('test')
|
||||
|
||||
meson.add_install_script('meson_post_install.py')
|
||||
|
|
1
test/meson.build
Normal file
1
test/meson.build
Normal file
|
@ -0,0 +1 @@
|
|||
subdir('system')
|
156
test/system/203-network.bats
Normal file
156
test/system/203-network.bats
Normal file
|
@ -0,0 +1,156 @@
|
|||
# shellcheck shell=bats
|
||||
#
|
||||
# Copyright © 2023 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() {
|
||||
bats_require_minimum_version 1.7.0
|
||||
_setup_environment
|
||||
cleanup_containers
|
||||
}
|
||||
|
||||
teardown() {
|
||||
cleanup_containers
|
||||
}
|
||||
|
||||
@test "network: no namespace" {
|
||||
local ns_host
|
||||
ns_host=$(readlink /proc/$$/ns/net)
|
||||
|
||||
create_default_container
|
||||
|
||||
run --keep-empty-lines --separate-stderr "$TOOLBOX" run sh -c 'readlink /proc/$$/ns/net'
|
||||
|
||||
assert_success
|
||||
assert_line --index 0 "$ns_host"
|
||||
assert [ ${#lines[@]} -eq 2 ]
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
assert [ ${#stderr_lines[@]} -eq 0 ]
|
||||
}
|
||||
|
||||
@test "network: ping(8) inside the default container" {
|
||||
create_default_container
|
||||
|
||||
run --keep-empty-lines --separate-stderr "$TOOLBOX" run ping -c 2 f.root-servers.net
|
||||
|
||||
if [ "$status" -eq 1 ]; then
|
||||
skip "lost packets"
|
||||
fi
|
||||
|
||||
assert_success
|
||||
assert [ ${#lines[@]} -gt 0 ]
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
assert [ ${#stderr_lines[@]} -eq 0 ]
|
||||
}
|
||||
|
||||
@test "network: ping(8) inside Arch Linux" {
|
||||
create_distro_container arch latest arch-toolbox-latest
|
||||
|
||||
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch ping -c 2 f.root-servers.net
|
||||
|
||||
if [ "$status" -eq 1 ]; then
|
||||
skip "lost packets"
|
||||
fi
|
||||
|
||||
assert_success
|
||||
assert [ ${#lines[@]} -gt 0 ]
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
assert [ ${#stderr_lines[@]} -eq 0 ]
|
||||
}
|
||||
|
||||
@test "network: ping(8) inside Fedora 34" {
|
||||
create_distro_container fedora 34 fedora-toolbox-34
|
||||
|
||||
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 ping -c 2 f.root-servers.net
|
||||
|
||||
if [ "$status" -eq 1 ]; then
|
||||
skip "lost packets"
|
||||
fi
|
||||
|
||||
assert_success
|
||||
assert [ ${#lines[@]} -gt 0 ]
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
assert [ ${#stderr_lines[@]} -eq 0 ]
|
||||
}
|
||||
|
||||
@test "network: ping(8) inside RHEL 8.7" {
|
||||
create_distro_container rhel 8.7 rhel-toolbox-8.7
|
||||
|
||||
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 ping -c 2 f.root-servers.net
|
||||
|
||||
if [ "$status" -eq 1 ]; then
|
||||
skip "lost packets"
|
||||
fi
|
||||
|
||||
assert_success
|
||||
assert [ ${#lines[@]} -gt 0 ]
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
assert [ ${#stderr_lines[@]} -eq 0 ]
|
||||
}
|
||||
|
||||
@test "network: ping(8) inside Ubuntu 16.04" {
|
||||
create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
|
||||
|
||||
run -2 --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 ping -c 2 f.root-servers.net
|
||||
|
||||
assert_failure
|
||||
assert [ ${#lines[@]} -eq 0 ]
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
assert [ ${#stderr_lines[@]} -gt 0 ]
|
||||
|
||||
skip "doesn't use ICMP Echo sockets"
|
||||
}
|
||||
|
||||
@test "network: ping(8) inside Ubuntu 18.04" {
|
||||
create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
|
||||
|
||||
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 ping -c 2 f.root-servers.net
|
||||
|
||||
if [ "$status" -eq 1 ]; then
|
||||
skip "lost packets"
|
||||
fi
|
||||
|
||||
assert_success
|
||||
assert [ ${#lines[@]} -gt 0 ]
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
assert [ ${#stderr_lines[@]} -eq 0 ]
|
||||
}
|
||||
|
||||
@test "network: ping(8) inside Ubuntu 20.04" {
|
||||
create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04
|
||||
|
||||
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 ping -c 2 f.root-servers.net
|
||||
|
||||
if [ "$status" -eq 1 ]; then
|
||||
skip "lost packets"
|
||||
fi
|
||||
|
||||
assert_success
|
||||
assert [ ${#lines[@]} -gt 0 ]
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
assert [ ${#stderr_lines[@]} -eq 0 ]
|
||||
}
|
7
test/system/meson.build
Normal file
7
test/system/meson.build
Normal file
|
@ -0,0 +1,7 @@
|
|||
test_system = files(
|
||||
'203-network.bats',
|
||||
)
|
||||
|
||||
if shellcheck.found()
|
||||
test('shellcheck test/system', shellcheck, args: [test_system])
|
||||
endif
|
Loading…
Reference in a new issue