diff --git a/hack/bats b/hack/bats index 35fc15f726..e416f82d15 100755 --- a/hack/bats +++ b/hack/bats @@ -24,7 +24,7 @@ $0 is a wrapper for invoking podman system tests. match that string. --tag=TAG Passed on to bats as '--filter-tags TAG' - As of 2023-07-26 the only tag used is 'distro-integration' + As of 2025-09-01 the only tag used is 'ci:parallel' -t, --tap Passed on to bats, which will format output in TAP format diff --git a/test/system/001-basic.bats b/test/system/001-basic.bats index ce5b470f24..33a8155dfd 100644 --- a/test/system/001-basic.bats +++ b/test/system/001-basic.bats @@ -14,7 +14,6 @@ function setup() { #### DO NOT ADD ANY TESTS HERE! ADD NEW TESTS AT BOTTOM! -# bats test_tags=distro-integration @test "podman version emits reasonable output" { run_podman version @@ -37,7 +36,6 @@ function setup() { is "$output" "podman.*version \+" "'Version line' in output" } -# bats test_tags=distro-integration @test "podman info" { # These will be displayed on the test output stream, offering an # at-a-glance overview of important system configuration details @@ -72,7 +70,6 @@ function setup() { "--context=swarm should fail" } -# bats test_tags=distro-integration @test "podman can pull an image" { run_podman rmi -a -f diff --git a/test/system/030-run.bats b/test/system/030-run.bats index 4f2d74183c..35389284ee 100644 --- a/test/system/030-run.bats +++ b/test/system/030-run.bats @@ -4,7 +4,7 @@ load helpers load helpers.network load helpers.registry -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman run - basic tests" { rand=$(random_string 30) @@ -352,7 +352,7 @@ echo $rand | 0 | $rand } # #6829 : add username to /etc/passwd inside container if --userns=keep-id -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman run : add username to /etc/passwd if --userns=keep-id" { skip_if_not_rootless "--userns=keep-id only works in rootless mode" # Default: always run as root @@ -829,7 +829,6 @@ json-file | f # podman exec may truncate stdout/stderr; actually a bug in conmon: # https://github.com/containers/conmon/issues/236 # CANNOT BE PARALLELIZED due to "-l" -# bats test_tags=distro-integration @test "podman run - does not truncate or hang with big output" { # Size, in bytes, to dd and to expect in return char_count=700000 @@ -1147,7 +1146,7 @@ EOF run_podman rm $output } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman run --device-read-bps" { skip_if_rootless "cannot use this flag in rootless mode" diff --git a/test/system/032-sig-proxy.bats b/test/system/032-sig-proxy.bats index d34645c7a2..285703c97e 100644 --- a/test/system/032-sig-proxy.bats +++ b/test/system/032-sig-proxy.bats @@ -4,8 +4,6 @@ load helpers load helpers.sig-proxy # Each of the tests below does some setup, then invokes the helper from helpers.sig-proxy.bash. - -# bats test_tags=distro-integration @test "podman sigproxy test: run" { # We're forced to use $PODMAN because run_podman cannot be backgrounded $PODMAN run -i --name c_run $IMAGE sh -c "$SLEEPLOOP" & diff --git a/test/system/035-logs.bats b/test/system/035-logs.bats index 39de0ef782..4aedd4242d 100644 --- a/test/system/035-logs.bats +++ b/test/system/035-logs.bats @@ -354,7 +354,7 @@ timeout: sending signal TERM to command.*" "logs --since -f on running container _log_test_follow_since k8s-file } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman logs - --since --follow journald" { # We can't use journald on RHEL as rootless: rhbz#1895105 skip_if_journald_unavailable @@ -398,7 +398,7 @@ $content--2.*" "logs --until -f on running container works" _log_test_follow_until k8s-file } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman logs - --until --follow journald" { # We can't use journald on RHEL as rootless: rhbz#1895105 skip_if_journald_unavailable diff --git a/test/system/060-mount.bats b/test/system/060-mount.bats index 3d5c09cd02..bdde9b459c 100644 --- a/test/system/060-mount.bats +++ b/test/system/060-mount.bats @@ -362,7 +362,7 @@ EOF is "$output" "bar1.*bar2.*bar3" "Should match multiple source files on single destination directory" } -# bats test_tags=distro-integration,ci:parallel +# bats test_tags=ci:parallel @test "podman mount noswap memory mounts" { # tmpfs+noswap new in kernel 6.x, mid-2023; likely not in RHEL for a while if ! is_rootless; then diff --git a/test/system/070-build.bats b/test/system/070-build.bats index 9d603864e7..7fcf5c87f3 100644 --- a/test/system/070-build.bats +++ b/test/system/070-build.bats @@ -5,8 +5,8 @@ # load helpers +load helpers.network -# bats test_tags=distro-integration @test "podman build - basic test" { rand_filename=$(random_string 20) rand_content=$(random_string 50) @@ -279,24 +279,44 @@ EOF tmpdir=$PODMAN_TMPDIR/build-test mkdir -p $tmpdir + # Create a test file with random content + INDEX=$PODMAN_TMPDIR/index.txt + local content="test-$(random_string)" + echo "$content" > $INDEX + echo READY > $PODMAN_TMPDIR/ready + + # Setup local webserver + local host_port=$(random_free_port) + local server=http://127.0.0.1:$host_port + serverctr="c1-$(safename)" + run_podman run -d --name $serverctr -p "$host_port:80" \ + -v $INDEX:/var/www/index.txt:Z \ + -v $PODMAN_TMPDIR/ready:/var/www/ready:Z \ + -w /var/www \ + $IMAGE /bin/busybox-extras httpd -f -p 80 + + wait_for_command_output "curl -s -S $server/ready" "READY" + cat >$tmpdir/Dockerfile < $fname } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman kube play - exit-code propagation" { fname=$PODMAN_TMPDIR/$(random_string).yaml diff --git a/test/system/280-update.bats b/test/system/280-update.bats index 0c87332900..1d137562be 100644 --- a/test/system/280-update.bats +++ b/test/system/280-update.bats @@ -16,7 +16,6 @@ function teardown() { } -# bats test_tags=distro-integration @test "podman update - test all options" { local cgv=1 if is_cgroupsv2; then diff --git a/test/system/410-selinux.bats b/test/system/410-selinux.bats index a7a87054d4..f360e91446 100644 --- a/test/system/410-selinux.bats +++ b/test/system/410-selinux.bats @@ -47,42 +47,42 @@ function check_label() { } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: confined container" { check_label "" "container_t" } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: container with label=disable" { check_label "--security-opt label=disable" "spc_t" } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: privileged container" { check_label "--privileged" "spc_t" } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: privileged --userns=host container" { check_label "--privileged --userns=host" "spc_t" } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: --ipc=host container" { check_label "--ipc=host" "spc_t" } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: init container" { check_label "--systemd=always" "container_init_t" } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: init container with --security-opt type" { check_label "--systemd=always --security-opt=label=type:spc_t" "spc_t" } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: init container with --security-opt level&type" { check_label "--systemd=always --security-opt=label=level:s0:c1,c2 --security-opt=label=type:spc_t" "spc_t" "s0:c1,c2" } @@ -92,7 +92,7 @@ function check_label() { check_label "--systemd=always --security-opt=label=level:s0:c1,c2" "container_init_t" "s0:c1,c2" } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: pid=host" { # FIXME this test fails when run rootless with runc: # Error: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: readonly path /proc/asound: operation not permitted: OCI permission denied @@ -193,7 +193,7 @@ function check_label() { } # pr #7902 - containers in pods should all run under same context -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman selinux: containers in pods share full context" { skip_if_no_selinux @@ -269,7 +269,6 @@ function check_label() { is "$output" "Error.*: $expect" "podman emits useful diagnostic on failure" } -# bats test_tags=distro-integration @test "podman selinux: check relabel" { skip_if_no_selinux diff --git a/test/system/420-cgroups.bats b/test/system/420-cgroups.bats index 94ad19ebef..d0bfd36b66 100644 --- a/test/system/420-cgroups.bats +++ b/test/system/420-cgroups.bats @@ -38,7 +38,7 @@ load helpers run_podman rm myc } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman run --cgroups=disabled keeps the current cgroup" { skip_if_remote "podman-remote does not support --cgroups=disabled" skip_if_rootless_cgroupsv1 diff --git a/test/system/500-networking.bats b/test/system/500-networking.bats index 27887b619b..7fc58713ea 100644 --- a/test/system/500-networking.bats +++ b/test/system/500-networking.bats @@ -322,7 +322,6 @@ load helpers.network } # CANNOT BE PARALLELIZED due to iptables/nft commands -# bats test_tags=distro-integration @test "podman network reload" { skip_if_remote "podman network reload does not have remote support" @@ -504,7 +503,7 @@ load helpers.network } # Test for https://github.com/containers/podman/issues/10052 -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman network connect/disconnect with port forwarding" { random_1=$(random_string 30) HOST_PORT=$(random_free_port) @@ -778,7 +777,7 @@ nameserver 8.8.8.8" "nameserver order is correct" run_podman network rm -f $netname } -# bats test_tags=distro-integration, ci:parallel +# bats test_tags=ci:parallel @test "podman run port forward range" { # we run a long loop of tests lets run all combinations before bailing out defer-assertion-failures