Detect M1 mac in test and substitute container image (#75)

Fixes #57
This commit is contained in:
Alexander Preuß
2022-08-29 21:02:25 +02:00
committed by GitHub
parent 67cb57c800
commit dfa1e36bc2
2 changed files with 36 additions and 6 deletions

View File

@@ -16,16 +16,17 @@
package org.springframework.pulsar.autoconfigure;
import java.util.Locale;
import org.testcontainers.containers.PulsarContainer;
import org.testcontainers.utility.DockerImageName;
abstract class AbstractContainerBaseTests {
static final DockerImageName PULSAR_IMAGE = DockerImageName.parse("apachepulsar/pulsar:2.10.1");
static PulsarContainer PULSAR_CONTAINER;
static final PulsarContainer PULSAR_CONTAINER;
static {
final DockerImageName PULSAR_IMAGE = isRunningOnMacM1() ? getMacM1PulsarImage() : getStandardPulsarImage();
PULSAR_CONTAINER = new PulsarContainer(PULSAR_IMAGE);
PULSAR_CONTAINER.start();
}
@@ -38,4 +39,18 @@ abstract class AbstractContainerBaseTests {
return PULSAR_CONTAINER.getHttpServiceUrl();
}
private static boolean isRunningOnMacM1() {
String osName = System.getProperty("os.name").toLowerCase(Locale.ENGLISH);
String osArchitecture = System.getProperty("os.arch").toLowerCase(Locale.ENGLISH);
return osName.contains("mac") && osArchitecture.equals("aarch64");
}
private static DockerImageName getStandardPulsarImage() {
return DockerImageName.parse("apachepulsar/pulsar:2.10.1");
}
private static DockerImageName getMacM1PulsarImage() {
return DockerImageName.parse("kezhenxu94/pulsar").asCompatibleSubstituteFor("apachepulsar/pulsar");
}
}

View File

@@ -16,16 +16,17 @@
package org.springframework.pulsar.core;
import java.util.Locale;
import org.testcontainers.containers.PulsarContainer;
import org.testcontainers.utility.DockerImageName;
public abstract class AbstractContainerBaseTests {
static final DockerImageName PULSAR_IMAGE = DockerImageName.parse("apachepulsar/pulsar:2.10.1");
static PulsarContainer PULSAR_CONTAINER;
static final PulsarContainer PULSAR_CONTAINER;
static {
final DockerImageName PULSAR_IMAGE = isRunningOnMacM1() ? getMacM1PulsarImage() : getStandardPulsarImage();
PULSAR_CONTAINER = new PulsarContainer(PULSAR_IMAGE);
PULSAR_CONTAINER.start();
}
@@ -38,4 +39,18 @@ public abstract class AbstractContainerBaseTests {
return PULSAR_CONTAINER.getHttpServiceUrl();
}
private static boolean isRunningOnMacM1() {
String osName = System.getProperty("os.name").toLowerCase(Locale.ENGLISH);
String osArchitecture = System.getProperty("os.arch").toLowerCase(Locale.ENGLISH);
return osName.contains("mac") && osArchitecture.equals("aarch64");
}
private static DockerImageName getStandardPulsarImage() {
return DockerImageName.parse("apachepulsar/pulsar:2.10.1");
}
private static DockerImageName getMacM1PulsarImage() {
return DockerImageName.parse("kezhenxu94/pulsar").asCompatibleSubstituteFor("apachepulsar/pulsar");
}
}