From 7933e45cda7e3eaeabd3b3fa81492ade8e1cc2dc Mon Sep 17 00:00:00 2001
From: Matthias Baesken <mbaesken@openjdk.org>
Date: Tue, 20 Aug 2024 10:43:16 +0000
Subject: [PATCH] 8338550: Do libubsan1 installation in test container only if
 requested

Reviewed-by: sgehwolf
---
 .../jdk/test/lib/containers/docker/DockerTestUtils.java  | 9 +++++----
 .../jdk/test/lib/containers/docker/DockerfileConfig.java | 5 +++++
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/test/lib/jdk/test/lib/containers/docker/DockerTestUtils.java b/test/lib/jdk/test/lib/containers/docker/DockerTestUtils.java
index c87796da47e..4a8915d4631 100644
--- a/test/lib/jdk/test/lib/containers/docker/DockerTestUtils.java
+++ b/test/lib/jdk/test/lib/containers/docker/DockerTestUtils.java
@@ -321,10 +321,11 @@ public class DockerTestUtils {
 
     private static void generateDockerFile(Path dockerfile, String baseImage,
                                            String baseImageVersion) throws Exception {
-        String template =
-            "FROM %s:%s\n" +
-            "RUN apt-get install libubsan1\n" +
-            "COPY /jdk /jdk\n" +
+        String template = "FROM %s:%s\n";
+        if (baseImage.contains("ubuntu") && DockerfileConfig.isUbsan()) {
+            template += "RUN apt-get update && apt-get install -y libubsan1\n";
+        }
+        template = template + "COPY /jdk /jdk\n" +
             "ENV JAVA_HOME=/jdk\n" +
             "CMD [\"/bin/bash\"]\n";
         String dockerFileStr = String.format(template, baseImage, baseImageVersion);
diff --git a/test/lib/jdk/test/lib/containers/docker/DockerfileConfig.java b/test/lib/jdk/test/lib/containers/docker/DockerfileConfig.java
index 9d73ad185f1..caa4a5a76cc 100644
--- a/test/lib/jdk/test/lib/containers/docker/DockerfileConfig.java
+++ b/test/lib/jdk/test/lib/containers/docker/DockerfileConfig.java
@@ -37,6 +37,11 @@ import jdk.test.lib.Platform;
 // Note: base image version should not be an empty string. Use "latest" to get the latest version.
 
 public class DockerfileConfig {
+
+    public static boolean isUbsan() {
+        return Boolean.getBoolean("jdk.test.docker.image.isUbsan");
+    }
+
     public static String getBaseImageName() {
         String name = System.getProperty("jdk.test.docker.image.name");
         if (name != null) {