Commit graph

15 commits

Author SHA1 Message Date
Debarshi Ray
f46fb3ba3c tests: Don't needlessly preserve environment variables in su(1) sessions
The TMT namespaced environment variables are not referenced anywhere
else and were recently removed from Podman too [1].  It's confusing to
have a long list of variables, which are either unused or don't need to
be explicitly preserved within the child session started by su(1).

ROOTLESS_USER is used when invoking su(1) and there's no need for it
within the child session started by su(1).

[1] Fedora podman commit b972298be7d228f4
    https://src.fedoraproject.org/rpms/podman/c/b972298be7d228f4

https://src.fedoraproject.org/rpms/toolbox/pull-request/36
2025-09-17 20:44:25 +02:00
Debarshi Ray
1ba0b4876e Update to 0.2
... and fix CVE-2025-23266, CVE-2025-23267, and GHSA-fv92-fjc5-jj9h or
GO-2025-3787.

The following rpmlint warning was silenced:
  toolbox.spec: W: no-%check-section

The timeout for the CI was increased to prevent it from timing out.  The
upstream CI runs the test suite in three parallel batches, with each
batch having a timeout of 2 hours.  The downstream CI doesn't run
parallelly, so a timeout of 4 hours was chosen.

https://src.fedoraproject.org/rpms/toolbox/pull-request/33
2025-08-09 23:29:50 +02:00
Lokesh Mandvekar
63c067cd19 TMT: Prevent Bats from hanging when tearing down the test suite
The CI needs to be run without 'p11-kit server' because the lingering
singleton process causes Bats to hang when tearing down the suite of
system tests [1].  To terminate the 'p11-kit server' instance run by the
system tests, it needs to be distinguishable from the instance run by
'normal' use of Toolbx by the user.  One way to do this is to isolate
the host operating system's XDG_RUNTIME_DIR from the system tests.
Unfortunately, this is easier said than done [2].  So, this workaround
has to suffice until the problem is solved.

With the recent expansion of the test suite, it's necessary to increase
the timeout to prevent the CI from timing out.

[1] https://bats-core.readthedocs.io/en/stable/writing-tests.html

[2] https://github.com/containers/toolbox/pull/1652

https://src.fedoraproject.org/rpms/toolbox/pull-request/30
2025-06-17 01:01:31 +02:00
Lokesh Mandvekar
0cbcff3ba4 TMT: Initial enablement
This PR will enable test runs using TMT. These tests can be maintained
here for starters and fetched and reused in the podman rpm for toolbox
tests on bodhi updates.

https://src.fedoraproject.org/rpms/toolbox/pull-request/24
2025-01-23 12:37:37 +01:00
Debarshi Ray
d91d2c8523 Don't use slirp4netns(1) in tests to work around bug in pasta(1) 2024-10-07 16:42:34 +02:00
Debarshi Ray
adcdf19861 tests: Silence deprecation warning
Otherwise, Ansible in Fedora CI would complain:
  # STDERR:
  ---v---v---v---v---v---
  [DEPRECATION WARNING]: "include" is deprecated, use
  include_tasks/import_tasks instead.  See
  https://docs.ansible.com/ansible-core/2.14/user_guide/playbooks_reuse_includes.html
  for details.  This feature will be removed in version 2.16.
  Deprecation warnings can be disabled by setting
  deprecation_warnings=False in ansible.cfg.

https://src.fedoraproject.org/rpms/toolbox/pull-request/21
2024-08-08 17:55:45 +02:00
Adam Williamson
ee2fa0eab4 tests: Ensure slirp4netns(1) is installed
Podman 5.0 switched to using pasta(1), instead of slirp4netns(1), by
default for rootless containers.  This change has led to a regression
causing 'skopeo copy' to get stuck uploading an OCI image to the local
temporary Docker registry run by the tests as a Podman container [1],
which breaks the test suite on Fedora 40 onwards.

This was worked around by forcing the use of slirp4netns(1).

The slirp4nets package needs to be explicitly installed on Fedora 40
onwards, because the dependency in containers-common-extra changed from
Recommends to Suggests [2].  Otherwise, it led to:
  1..320
  # test suite: Set up
  # test suite: Tear down
  not ok 1 setup_suite
  # (from function `assert_success' in file
       ./libs/bats-assert/src/assert.bash, line 114,
  #  from function `_setup_docker_registry' in file ./libs/helpers.bash,
       line 208,
  #  from function `setup_suite' in test file ./setup_suite.bash, line
       59)
  #   `_setup_docker_registry' failed
  #
  # -- command failed --
  # status : 127
  # output : Error: could not find slirp4netns, the network namespace
      can't be configured: exec: "slirp4netns": executable file not
      found in $PATH
  # --
  #
  # Untagged: quay.io/toolbox_tests/registry:latest
  # Deleted: fea5a12cde107bb407bc44ede6dd9edea1d2b4171cd8e52b0cb330bf45e517e1
  # bats warning: Executed 1 instead of expected 320 tests

The missing dependency on the slirp4netns package in toolbox-tests
doesn't affect Podman's downstream Fedora CI, which runs toolbox-tests,
because it separately installs slirp4netns for other tests [3].

Fallout from d8388da39e

[1] https://github.com/containers/podman/issues/22575

[2] Fedora containers-common commit 17934d87b2686ab5
    Fedora containers-common commit 13c232f064113860
    https://src.fedoraproject.org/rpms/containers-common/c/17934d87b2686ab5
    https://src.fedoraproject.org/rpms/containers-common/c/13c232f064113860

[3] Fedora podman commit 9667d0f5b5069acb
    https://src.fedoraproject.org/rpms/podman/c/9667d0f5b5069acb

https://src.fedoraproject.org/rpms/toolbox/pull-request/20

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-08-08 17:00:12 +02:00
Adam Williamson
8598325132 tests: Avoid running out of storage space
Toolbx's system tests download several images when setting up the test
suite, and cache them for later use by the tests [1].  This saves time
and avoids hitting rate limits imposed by OCI registries by not
downloading the same images repeatedly for several tests, but at the
cost of increased use of storage space to cache the images.

The images are cached under BATS_TMPDIR.  It defaults to the TMPDIR
environment variable, and if that's not set then to /tmp [2].  Normally,
TMPDIR isn't set, and the images end up getting cached under /tmp.  Now,
/tmp is typically on tmpfs backed by RAM or swap, which means that it
should be used for smaller size-bounded files only, and /var/tmp should
be used for everything else [3].

The images are big enough that a collection of them can't be described
as smaller and size-bounded, and it led to:
  1..306
  # test suite: Set up
  # test suite: Tear down
  not ok 1 setup_suite
  # (from function `setup_suite' in test file ./setup_suite.bash, line
      55)
  #   `_pull_and_cache_distro_image fedora "$((system_version-1))" ||
      false' failed
  # Failed to cache image registry.fedoraproject.org/fedora-toolbox:40
      to /tmp/bats-run-IPz4Cn/image-cache/fedora-toolbox-40
  # time="2024-02-19T11:41:43Z" level=fatal msg="copying system image
      from manifest list: writing blob: write
      /tmp/bats-run-IPz4Cn/image-cache/fedora-toolbox-40/dir-put-blob607392514:
      no space left on device"
  # bats warning: Executed 1 instead of expected 306 tests

So, change the default location of the BATS_TMPDIR environment variable
to /var/tmp by setting TMPDIR.

[1] Toolbx commit 50683c9d9a78adc9
    50683c9d9a
    https://github.com/containers/toolbox/pull/375

[2] https://bats-core.readthedocs.io/en/stable/writing-tests.html

[3] https://systemd.io/TEMPORARY_DIRECTORIES/

https://src.fedoraproject.org/rpms/toolbox/pull-request/20

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-07-31 14:44:35 +02:00
Adam Williamson
c8c1f44f2e tests: Don't use undefined variable
The test.environment variable was removed from the variables defined in
tests.yml in commit 1b207227f3, but it's still used, which causes
Ansible to break:
  The task includes an option with an undefined variable. The error was:
  'dict object' has no attribute 'environment'. 'dict object' has no
  attribute 'environment'

https://src.fedoraproject.org/rpms/toolbox/pull-request/19
2024-07-29 18:13:52 +02:00
Debarshi Ray
a7b53166a8 tests: Remove trailing whitespace 2023-12-19 13:25:48 +01:00
Debarshi Ray
1b207227f3 tests: Remove redundant environment variable
There's no need to explicitly set the PODMAN environment variable to its
default value of /usr/bin/podman.
2023-12-19 13:24:23 +01:00
Oliver Gutierrez
4fbf8c365e
Fixed playbooks for gating 2021-08-23 19:25:13 +01:00
Oliver Gutierrez
cff1e3addf
Fixed missing environment in gating ansible playbook 2021-08-20 10:40:24 +01:00
Oliver Gutierrez
146838a614
Fixed errors in gating ansible playbook 2021-08-20 10:37:29 +01:00
Oliver Gutierrez
4d43cbffea
Added fedora gating 2021-08-18 12:41:51 +01:00