Unbreak Podman's downstream Fedora CI (part 2)

... and backport some new upstream tests.

https://bugzilla.redhat.com/show_bug.cgi?id=2263968

Resolves: RHEL-30245
This commit is contained in:
Debarshi Ray 2024-02-27 16:12:07 +01:00
parent 24f19e416e
commit 709a085a1c
3 changed files with 1067 additions and 5 deletions

View File

@ -1,7 +1,7 @@
From 6838e9347199e875f9869acd2afa64688161ca11 Mon Sep 17 00:00:00 2001
From a859f73d075ec0505994d8ce0f371ec28e466983 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Tue, 13 Feb 2024 21:56:06 +0100
Subject: [PATCH] test/system: Unbreak Podman's downstream Fedora CI
Subject: [PATCH 1/2] test/system: Unbreak Podman's downstream Fedora CI
The paths to bats-assert and bats-support are broken, if bats(1) is
invoked from any other location than the parent directory of the 'tests'
@ -30,7 +30,7 @@ https://github.com/containers/toolbox/pull/1448
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/system/setup_suite.bash b/test/system/setup_suite.bash
index 78507d660529..649018f01e96 100644
index e4edf232bcd8..01985b7f9afc 100644
--- a/test/system/setup_suite.bash
+++ b/test/system/setup_suite.bash
@@ -17,7 +17,7 @@
@ -45,3 +45,164 @@ index 78507d660529..649018f01e96 100644
--
2.43.0
From a183876eae2bb4ffd84bca4303fc28be6725ebc2 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Fri, 23 Feb 2024 10:38:16 +0100
Subject: [PATCH 2/2] test/system: Unbreak Podman's downstream Fedora CI (part
2)
The working directory from which bats(1) is invoked might not be part of
the Toolbx container. eg., Podman's downstream Fedora CI invokes the
tests as:
$ cd /path/to/toolbox/test/system
$ bats .
... and it led to [1]:
not ok 110 run: Smoke test with true(1)
# (from function `assert_output' in file
./libs/bats-assert/src/assert.bash, line 255,
# in test file ./104-run.bats, line 38)
# `assert_output ""' failed
#
# -- output differs --
# expected (0 lines):
#
# actual (3 lines):
# Error: crun: chdir to `/usr/share/toolbox/test/system`: No such
file or directory: OCI runtime attempted to invoke a command that
was not found
# Error: directory /usr/share/toolbox/test/system not found in
container fedora-toolbox-41
# Using /home/testuser instead.
# --
#
[1] https://bugzilla.redhat.com/show_bug.cgi?id=2263968
https://github.com/containers/toolbox/pull/1457
---
test/system/104-run.bats | 2 ++
test/system/201-ipc.bats | 2 ++
test/system/203-network.bats | 2 ++
test/system/206-user.bats | 2 ++
test/system/210-ulimit.bats | 2 ++
test/system/211-dbus.bats | 2 ++
test/system/220-environment-variables.bats | 2 ++
7 files changed, 14 insertions(+)
diff --git a/test/system/104-run.bats b/test/system/104-run.bats
index ff11a8477062..a0cb89fdeeca 100644
--- a/test/system/104-run.bats
+++ b/test/system/104-run.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/201-ipc.bats b/test/system/201-ipc.bats
index 15c791dec86d..09200b41d06c 100644
--- a/test/system/201-ipc.bats
+++ b/test/system/201-ipc.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/203-network.bats b/test/system/203-network.bats
index db1ba561f314..012374e3317f 100644
--- a/test/system/203-network.bats
+++ b/test/system/203-network.bats
@@ -35,9 +35,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/206-user.bats b/test/system/206-user.bats
index 2df7862f259e..473a6b40905a 100644
--- a/test/system/206-user.bats
+++ b/test/system/206-user.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/210-ulimit.bats b/test/system/210-ulimit.bats
index ea0c46685df1..ea08feea1513 100644
--- a/test/system/210-ulimit.bats
+++ b/test/system/210-ulimit.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/211-dbus.bats b/test/system/211-dbus.bats
index 295bb71b2789..61c543a56005 100644
--- a/test/system/211-dbus.bats
+++ b/test/system/211-dbus.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/220-environment-variables.bats b/test/system/220-environment-variables.bats
index 5b51d17dee55..c24e07d146ee 100644
--- a/test/system/220-environment-variables.bats
+++ b/test/system/220-environment-variables.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
--
2.43.0

View File

@ -0,0 +1,894 @@
From f51c4a4cd8ff1c51a68073a10eaddab8f16fdaf6 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Thu, 8 Feb 2024 22:18:33 +0100
Subject: [PATCH 1/4] test/system: Ensure that the user is part of a group with
the same name
https://github.com/containers/toolbox/pull/1447
---
test/system/206-user.bats | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/test/system/206-user.bats b/test/system/206-user.bats
index c295d8a61f39..cdd38c146024 100644
--- a/test/system/206-user.bats
+++ b/test/system/206-user.bats
@@ -434,6 +434,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^(sudo|wheel):x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -447,6 +448,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^wheel:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -460,6 +462,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^wheel:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -473,6 +476,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^wheel:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -486,6 +490,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^sudo:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -499,6 +504,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^sudo:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -512,6 +518,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^sudo:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
--
2.43.0
From b2d64fad1a23a07919efdb70de9247645e44f973 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Thu, 8 Feb 2024 22:51:43 +0100
Subject: [PATCH 2/4] test/system: Ensure that process started by 'podman exec'
has all groups
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commit 15173f8c25c81244 exposed a bug in crun(1) [1] where the process
started directly by 'podman exec --user ...' inside the Toolbx container
would not have the supplementary groups attached to the user by the
entry point.
This could be observed by differences in id(1):
⬢$ id
uid=1000(user) gid=1000(user) groups=1000(user)
⬢$ id user
uid=1000(user) gid=1000(user) groups=1000(user),10(wheel)
... and could be worked around by starting a new session with sudo(8).
[1] crun commit 9effaebb429a1aed
https://github.com/containers/crun/commit/9effaebb429a1aed
https://github.com/containers/crun/issues/644
https://github.com/containers/podman/issues/9986
https://github.com/containers/toolbox/issues/608
---
test/system/206-user.bats | 231 ++++++++++++++++++++++++++++++++++++++
1 file changed, 231 insertions(+)
diff --git a/test/system/206-user.bats b/test/system/206-user.bats
index cdd38c146024..2df7862f259e 100644
--- a/test/system/206-user.bats
+++ b/test/system/206-user.bats
@@ -525,3 +525,234 @@ teardown() {
# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}
+
+@test "user: id(1) for $USER inside the default container" {
+ create_default_container
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ 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 "user: id(1) for $USER inside Arch Linux" {
+ create_distro_container arch latest arch-toolbox-latest
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ 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 "user: id(1) for $USER inside Fedora 34" {
+ create_distro_container fedora 34 fedora-toolbox-34
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ 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 "user: id(1) for $USER 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 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ 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 "user: id(1) for $USER inside Ubuntu 16.04" {
+ create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ 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 "user: id(1) for $USER 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 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ 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 "user: id(1) for $USER 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 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ 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 ]
+}
--
2.43.0
From da2555d04f9ff677b3f2033ff36390f75c3a509d Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Thu, 18 Jan 2024 19:53:02 +0100
Subject: [PATCH 3/4] test/system: Group by higher-level objective, not
distribution
Fallout from 51ffd2793d882ffab45ace44c03edfdaeb3f138c
https://github.com/containers/toolbox/pull/1436
---
test/system/220-environment-variables.bats | 152 ++++++++++-----------
1 file changed, 76 insertions(+), 76 deletions(-)
diff --git a/test/system/220-environment-variables.bats b/test/system/220-environment-variables.bats
index 0e1356654468..dd74b1dc5142 100644
--- a/test/system/220-environment-variables.bats
+++ b/test/system/220-environment-variables.bats
@@ -1,6 +1,6 @@
# shellcheck shell=bats
#
-# Copyright © 2023 Red Hat, Inc.
+# Copyright © 2023 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.
@@ -57,25 +57,24 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside the default container" {
- skip "https://pagure.io/setup/pull-request/48"
-
- create_default_container
+@test "environment variables: HISTFILESIZE inside Arch Linux" {
+ create_distro_container arch latest arch-toolbox-latest
- if [ "$HISTSIZE" = "" ]; then
+ # shellcheck disable=SC2031
+ if [ "$HISTFILESIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTSIZE=1001
+ HISTFILESIZE=1001
else
- ((HISTSIZE++))
+ ((HISTFILESIZE++))
fi
- export HISTSIZE
+ export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HISTFILESIZE"'
assert_success
- assert_line --index 0 "$HISTSIZE"
+ assert_line --index 0 "$HISTFILESIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -87,8 +86,8 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Arch Linux" {
- create_distro_container arch latest arch-toolbox-latest
+@test "environment variables: HISTFILESIZE inside Fedora 34" {
+ create_distro_container fedora 34 fedora-toolbox-34
# shellcheck disable=SC2031
if [ "$HISTFILESIZE" = "" ]; then
@@ -101,7 +100,7 @@ teardown() {
export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HISTFILESIZE"'
assert_success
assert_line --index 0 "$HISTFILESIZE"
@@ -116,24 +115,24 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside Arch Linux" {
- create_distro_container arch latest arch-toolbox-latest
+@test "environment variables: HISTFILESIZE inside RHEL 8.7" {
+ create_distro_container rhel 8.7 rhel-toolbox-8.7
# shellcheck disable=SC2031
- if [ "$HISTSIZE" = "" ]; then
+ if [ "$HISTFILESIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTSIZE=1001
+ HISTFILESIZE=1001
else
- ((HISTSIZE++))
+ ((HISTFILESIZE++))
fi
- export HISTSIZE
+ export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HISTFILESIZE"'
assert_success
- assert_line --index 0 "$HISTSIZE"
+ assert_line --index 0 "$HISTFILESIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -145,8 +144,8 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Fedora 34" {
- create_distro_container fedora 34 fedora-toolbox-34
+@test "environment variables: HISTFILESIZE inside Ubuntu 16.04" {
+ create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
# shellcheck disable=SC2031
if [ "$HISTFILESIZE" = "" ]; then
@@ -159,7 +158,8 @@ teardown() {
export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 \
+ bash -c 'echo "$HISTFILESIZE"'
assert_success
assert_line --index 0 "$HISTFILESIZE"
@@ -174,26 +174,25 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside Fedora 34" {
- skip "https://pagure.io/setup/pull-request/48"
-
- create_distro_container fedora 34 fedora-toolbox-34
+@test "environment variables: HISTFILESIZE inside Ubuntu 18.04" {
+ create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
# shellcheck disable=SC2031
- if [ "$HISTSIZE" = "" ]; then
+ if [ "$HISTFILESIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTSIZE=1001
+ HISTFILESIZE=1001
else
- ((HISTSIZE++))
+ ((HISTFILESIZE++))
fi
- export HISTSIZE
+ export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 \
+ bash -c 'echo "$HISTFILESIZE"'
assert_success
- assert_line --index 0 "$HISTSIZE"
+ assert_line --index 0 "$HISTFILESIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -205,12 +204,11 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside RHEL 8.7" {
- create_distro_container rhel 8.7 rhel-toolbox-8.7
+@test "environment variables: HISTFILESIZE inside Ubuntu 20.04" {
+ create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04
# shellcheck disable=SC2031
if [ "$HISTFILESIZE" = "" ]; then
- # shellcheck disable=SC2030
HISTFILESIZE=1001
else
((HISTFILESIZE++))
@@ -219,7 +217,8 @@ teardown() {
export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 \
+ bash -c 'echo "$HISTFILESIZE"'
assert_success
assert_line --index 0 "$HISTFILESIZE"
@@ -234,12 +233,11 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside RHEL 8.7" {
+@test "environment variables: HISTSIZE inside the default container" {
skip "https://pagure.io/setup/pull-request/48"
- create_distro_container rhel 8.7 rhel-toolbox-8.7
+ create_default_container
- # shellcheck disable=SC2031
if [ "$HISTSIZE" = "" ]; then
# shellcheck disable=SC2030
HISTSIZE=1001
@@ -250,7 +248,7 @@ teardown() {
export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run bash -c 'echo "$HISTSIZE"'
assert_success
assert_line --index 0 "$HISTSIZE"
@@ -265,25 +263,24 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Ubuntu 16.04" {
- create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
+@test "environment variables: HISTSIZE inside Arch Linux" {
+ create_distro_container arch latest arch-toolbox-latest
# shellcheck disable=SC2031
- if [ "$HISTFILESIZE" = "" ]; then
+ if [ "$HISTSIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTFILESIZE=1001
+ HISTSIZE=1001
else
- ((HISTFILESIZE++))
+ ((HISTSIZE++))
fi
- export HISTFILESIZE
+ export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 \
- bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HISTSIZE"'
assert_success
- assert_line --index 0 "$HISTFILESIZE"
+ assert_line --index 0 "$HISTSIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -295,8 +292,10 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside Ubuntu 16.04" {
- create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
+@test "environment variables: HISTSIZE inside Fedora 34" {
+ skip "https://pagure.io/setup/pull-request/48"
+
+ create_distro_container fedora 34 fedora-toolbox-34
# shellcheck disable=SC2031
if [ "$HISTSIZE" = "" ]; then
@@ -309,7 +308,7 @@ teardown() {
export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HISTSIZE"'
assert_success
assert_line --index 0 "$HISTSIZE"
@@ -324,25 +323,26 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Ubuntu 18.04" {
- create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
+@test "environment variables: HISTSIZE inside RHEL 8.7" {
+ skip "https://pagure.io/setup/pull-request/48"
+
+ create_distro_container rhel 8.7 rhel-toolbox-8.7
# shellcheck disable=SC2031
- if [ "$HISTFILESIZE" = "" ]; then
+ if [ "$HISTSIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTFILESIZE=1001
+ HISTSIZE=1001
else
- ((HISTFILESIZE++))
+ ((HISTSIZE++))
fi
- export HISTFILESIZE
+ export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 \
- bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HISTSIZE"'
assert_success
- assert_line --index 0 "$HISTFILESIZE"
+ assert_line --index 0 "$HISTSIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -354,8 +354,8 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside Ubuntu 18.04" {
- create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
+@test "environment variables: HISTSIZE inside Ubuntu 16.04" {
+ create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
# shellcheck disable=SC2031
if [ "$HISTSIZE" = "" ]; then
@@ -368,7 +368,7 @@ teardown() {
export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 bash -c 'echo "$HISTSIZE"'
assert_success
assert_line --index 0 "$HISTSIZE"
@@ -383,24 +383,24 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Ubuntu 20.04" {
- create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04
+@test "environment variables: HISTSIZE inside Ubuntu 18.04" {
+ create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
# shellcheck disable=SC2031
- if [ "$HISTFILESIZE" = "" ]; then
- HISTFILESIZE=1001
+ if [ "$HISTSIZE" = "" ]; then
+ # shellcheck disable=SC2030
+ HISTSIZE=1001
else
- ((HISTFILESIZE++))
+ ((HISTSIZE++))
fi
- export HISTFILESIZE
+ export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 \
- bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 bash -c 'echo "$HISTSIZE"'
assert_success
- assert_line --index 0 "$HISTFILESIZE"
+ assert_line --index 0 "$HISTSIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
--
2.43.0
From ee2c92299d5488bab4e54cb04d9a120e0b9ed405 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Thu, 18 Jan 2024 20:17:50 +0100
Subject: [PATCH 4/4] test/system: Test that the HOSTNAME environment variable
is set
Bash automatically sets the HOSTNAME environment variable to the name of
the current host [1] as returned by gethostname(2), which is the same as
hostname(1).
However, on Fedora, from Fedora 33 onwards, /etc/profile sets the
HOSTNAME environment variable to 'hostnamectl --transient' [2], and,
from Fedora 35 onwards, it has a fallback to hostname(1) [3]. These two
approaches return different values when used inside a Toolbx container.
The former picks up the hostname of the host operating system, while the
fallback gets the name that was set when creating the container with
'podman create --hostname toolbox ...'.
Hence, the value of HOSTNAME inside a Toolbx container for Fedora
depends on whether the corresponding version of the fedora-toolbox image
contained hostnamectl(1) or not.
[1] https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html
[2] setup commit eb9cc4dce89be24f
https://pagure.io/setup/c/eb9cc4dce89be24f
https://bugzilla.redhat.com/show_bug.cgi?id=1745245
[3] setup commit ddd74b5d971a734c
https://pagure.io/setup/c/ddd74b5d971a734c
https://pagure.io/setup/pull-request/28
https://bugzilla.redhat.com/show_bug.cgi?id=1938223
https://github.com/containers/toolbox/issues/558
---
test/system/220-environment-variables.bats | 126 +++++++++++++++++++++
1 file changed, 126 insertions(+)
diff --git a/test/system/220-environment-variables.bats b/test/system/220-environment-variables.bats
index dd74b1dc5142..5b51d17dee55 100644
--- a/test/system/220-environment-variables.bats
+++ b/test/system/220-environment-variables.bats
@@ -439,3 +439,129 @@ teardown() {
# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}
+
+@test "environment variables: HOSTNAME inside the default container" {
+ create_default_container
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 --regexp "^(toolbox|$HOSTNAME)$"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Arch Linux" {
+ create_distro_container arch latest arch-toolbox-latest
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Fedora 34" {
+ create_distro_container fedora 34 fedora-toolbox-34
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "$HOSTNAME"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside RHEL 8.7" {
+ create_distro_container rhel 8.7 rhel-toolbox-8.7
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Ubuntu 16.04" {
+ create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Ubuntu 18.04" {
+ create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Ubuntu 20.04" {
+ create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
--
2.43.0

View File

@ -17,7 +17,7 @@ Version: 0.0.99.5
%endif
%endif
Release: 7%{?dist}
Release: 8%{?dist}
Summary: Tool for interactive command line environments on Linux
License: Apache-2.0
@ -28,7 +28,8 @@ Source0: https://github.com/containers/%{name}/releases/download/%{version
Source1: %{name}.conf
# Upstream
Patch0: toolbox-test-system-Unbreak-Podman-s-downstream-Fedora-CI.patch
Patch0: toolbox-test-system-new.patch
Patch1: toolbox-test-system-Unbreak-Podman-s-downstream-Fedora-CI.patch
# Fedora specific
Patch100: toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch
@ -111,6 +112,7 @@ The %{name}-tests package contains system tests for %{name}.
%setup -q
%patch -P0 -p1
%patch -P1 -p1
%if 0%{?fedora}
%ifnarch ppc64
@ -188,6 +190,11 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf
%changelog
* Tue Feb 27 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-8
- Unbreak Podman's downstream Fedora CI (part 2)
- Backport some new upstream tests
Resolves: RHEL-30245
* Tue Feb 13 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-7
- Unbreak Podman's downstream Fedora CI
- Update the BuildRequires on golang to reflect reality