Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-19956

Make Docker/podman a requirement to run the test suite instead of skipping tests

      We are silently skipping tests that require Docker/podman resulting in a pass, however, podman/Docker is truly a dependency of running the test suite completely (just like Maven or JDK is).

      The problem is with using concepts like @DockerRequired, which just skips when docker/podman fails to respond. That happens frequently, when the containerization software is broken or simply not started (especially on macOS/Windows).

      If podman/Docker is somehow unsupportable in a given environment, there should be an explicit "opt out" flag, rather than container-based tests being "opt in" by default.

            [WFLY-19956] Make Docker/podman a requirement to run the test suite instead of skipping tests

            rhn-engineering-rhusar Please handle the docs separately. The part of this that's a Blocker is done, so I want to clear the blocker before heading off for the year.

            Brian Stansberry added a comment - rhn-engineering-rhusar Please handle the docs separately. The part of this that's a Blocker is done, so I want to clear the blocker before heading off for the year.

            The last remaining piece is updating the documentation (lets try tomorrow) and then we can close it off.

            Radoslav Husar added a comment - The last remaining piece is updating the documentation (lets try tomorrow) and then we can close it off.

            rhn-engineering-rhusar Can this be resolved?

            Brian Stansberry added a comment - rhn-engineering-rhusar Can this be resolved?

            Radoslav Husar added a comment - Upstream issue https://github.com/arquillian/arquillian-testcontainers/issues/41

            Reading some notes I understand this a bit more that we want a dynamic way to fail if docker/podman is now found. I'll do some thinking on this, but we could always introduce a system property in the arquillian-testcontainers to throw a different exception if found. Something like org.jboss.arquillian.testcontainers.required.exception=java.lang.AssertionError or we could just do boolean check as instead.

            James Perkins added a comment - Reading some notes I understand this a bit more that we want a dynamic way to fail if docker/podman is now found. I'll do some thinking on this, but we could always introduce a system property in the arquillian-testcontainers to throw a different exception if found. Something like org.jboss.arquillian.testcontainers.required.exception=java.lang.AssertionError or we could just do boolean check as instead.

            The @DockerRequired annotation will by default throw a java.lang.AssertionError which would cause tests to fail. However, we explicitly tell it to throw an org.junit.AssumptionViolatedException. The main reasons for these check is that the Windows runners on CI do not have Docker or podman installed.

            James Perkins added a comment - The @DockerRequired annotation will by default throw a java.lang.AssertionError which would cause tests to fail. However, we explicitly tell it to throw an org.junit.AssumptionViolatedException . The main reasons for these check is that the Windows runners on CI do not have Docker or podman installed.

              rhn-engineering-rhusar Radoslav Husar
              rhn-engineering-rhusar Radoslav Husar
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: