RFR: 8227642: [TESTBUG] Make docker tests podman compatible

mikhailo.seledtsov at oracle.com mikhailo.seledtsov at oracle.com
Tue Jul 16 20:23:32 UTC 2019


Hi Igor,

    In both cases the environment variable is set for the Docker/Podman 
container process, not the host system. This will not affect the host 
system in any way. The docker process has its own namespace for 
environment variables. Does this alleviate your concerns?


Thank you,

Misha

On 7/16/19 11:49 AM, Igor Ignatyev wrote:
> Hi Severin,
>
> I don't think that tests (or test libraries for that matter) should be responsible for setting correct PATH value, it should be a part of host configuration procedure (tests can/should check that all required bins are available though). in other words, I'd prefer if you remove 'env.put("PATH", ...)' lines from both DockerTestUtils and TestJFREvents. the rest looks good to me.
>
> Thanks,
> -- Igor
>
>> On Jul 16, 2019, at 5:36 AM, Severin Gehwolf <sgehwolf at redhat.com> wrote:
>>
>> Hi,
>>
>> I believe I still need a *R*eviewer for this. Any takers?
>>
>> Thanks,
>> Severin
>>
>> On Fri, 2019-07-12 at 15:19 -0700, mikhailo.seledtsov at oracle.com wrote:
>>> Hi Severin,
>>>
>>>    The change looks good to me. Thank you for adding support for Podman
>>> container technology.
>>>
>>> Testing: I ran both HotSpot and JDK container tests with your patch;
>>> tests executed on Oracle Linux 7.6 using default container engine (Docker):
>>>
>>>      test/hotspot/jtreg/containers/   AND
>>> test/jdk/jdk/internal/platform/docker/
>>>
>>> All PASS
>>>
>>>
>>> Thanks,
>>>
>>> Misha
>>>
>>>
>>> On 7/12/19 11:08 AM, Severin Gehwolf wrote:
>>>> Hi,
>>>>
>>>> There is an alternative container engine which is being used by Fedora
>>>> and RHEL 8, called podman[1]. It's mostly compatible with docker. It
>>>> looks like OpenJDK docker tests can be made podman compatible with a
>>>> few little tweaks. One "interesting" one is to not assert "Successfully
>>>> built" in the build output but only rely on the exit code, which seems
>>>> to be OK for my testing. Interestingly the test would be skipped in
>>>> that case.
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8227642
>>>> webrev: http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8227642/01/webrev/
>>>>
>>>> Adjustments I've done:
>>>>   * Don't assert "Successfully built" in image build output[2].
>>>>   * Add /usr/sbin to PATH as the podman binary relies on iptables for it
>>>>     to work which is in /usr/sbin on Fedora
>>>>   * Allow for Metrics.getCpuSystemUsage() and Metrics.getCpuUserUsage()
>>>>     to be equal to the previous value. I've found those counters to be
>>>>     slowly increasing, which made the tests unreliable.
>>>>
>>>> Testing:
>>>>
>>>> Running docker tests with docker as engine. Did the same with podman as
>>>> engine via -Djdk.test.docker.command=podman on Linux x86_64. Both
>>>> passed (non-trivially).
>>>>
>>>> Thoughts?
>>>>
>>>> Thanks,
>>>> Severin
>>>>
>>>> [1] https://podman.io/
>>>> [2] Image builds with podman look
>>>>      like ("COMMIT" over "Successfully built"):
>>>> STEP 1: FROM fedora:29
>>>> STEP 2: RUN dnf install -y java-11-openjdk-devel &&     dnf clean all
>>>> --> Using cache 96f8b1a0dfe7dba581a64fc67a27002ddf52e032af55f9ddc765182a690afd9d
>>>> STEP 3: COPY TestMetrics.class  TestMetrics.java /opt/
>>>> 269042160f7a4e6a06789cd19640ea658a8f941bc53de0fd40a574dc3bdb49a8
>>>> STEP 4: CMD /usr/lib/jvm/java-11-openjdk/bin/java -cp /opt --add-modules java.base --add-exports java.base/jdk.internal.platform=ALL-UNNAMED TestMetrics
>>>> STEP 5: COMMIT fedora-metrics-11
>>>> d749088d6ce4510f212820ad4eca55a9b05e5c5c245f2372b6cfe91926e8cd7e
>>>>


More information about the hotspot-dev mailing list