toolbox/toolbox-test-system-new.patch

895 lines
27 KiB
Diff
Raw Normal View History

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