From 1d5e108cd4cf51d617831f650e35be1f75e95745 Mon Sep 17 00:00:00 2001 From: Jameson Williams Date: Wed, 24 Jan 2024 23:20:38 -0600 Subject: [PATCH] QA target can pass on ARM MacBook The Conscrypt library does not have a native library suitable for running on the ARM MacBooks. As a result, unit tests that rely on Conscrypt also don't work on this hardware. Fortunately, though, the tests will pass without Conscrypt anyway. As a workaround, we can avoid using Conscrypt only when running the unit test suite on these machines. See also: https://github.com/google/conscrypt/issues/1034 Resolves #13382. --- .../signalservice/api/crypto/AttachmentCipherTest.java | 5 ++++- .../signalservice/api/crypto/ProfileCipherTest.java | 5 ++++- .../signalservice/api/crypto/SigningCertificateTest.java | 5 ++++- .../signalservice/api/crypto/UnidentifiedAccessTest.java | 6 +++++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherTest.java b/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherTest.java index b4263ae349..72a05ea7d0 100644 --- a/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherTest.java +++ b/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/AttachmentCipherTest.java @@ -29,7 +29,10 @@ import static org.whispersystems.signalservice.testutil.LibSignalLibraryUtil.ass public final class AttachmentCipherTest { static { - Security.insertProviderAt(Conscrypt.newProvider(), 1); + // https://github.com/google/conscrypt/issues/1034 + if (!System.getProperty("os.arch").equals("aarch64")) { + Security.insertProviderAt(Conscrypt.newProvider(), 1); + } } @Test diff --git a/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/ProfileCipherTest.java b/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/ProfileCipherTest.java index 6c823ac8a3..2970216d53 100644 --- a/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/ProfileCipherTest.java +++ b/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/ProfileCipherTest.java @@ -30,7 +30,10 @@ public class ProfileCipherTest { } static { - Security.insertProviderAt(Conscrypt.newProvider(), 1); + // https://github.com/google/conscrypt/issues/1034 + if (!System.getProperty("os.arch").equals("aarch64")) { + Security.insertProviderAt(Conscrypt.newProvider(), 1); + } } @Test diff --git a/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/SigningCertificateTest.java b/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/SigningCertificateTest.java index de5cf5bdda..e7eae7e297 100644 --- a/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/SigningCertificateTest.java +++ b/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/SigningCertificateTest.java @@ -19,7 +19,10 @@ import java.security.cert.CertificateException; public class SigningCertificateTest extends TestCase { static { - Security.insertProviderAt(Conscrypt.newProvider(), 1); + // https://github.com/google/conscrypt/issues/1034 + if (!System.getProperty("os.arch").equals("aarch64")) { + Security.insertProviderAt(Conscrypt.newProvider(), 1); + } } public void testGoodSignature() throws CertificateException, NoSuchAlgorithmException, IOException, KeyStoreException, CertPathValidatorException, SignatureException { diff --git a/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccessTest.java b/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccessTest.java index 12fb4837ef..205f24edf7 100644 --- a/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccessTest.java +++ b/libsignal-service/src/test/java/org/whispersystems/signalservice/api/crypto/UnidentifiedAccessTest.java @@ -2,6 +2,7 @@ package org.whispersystems.signalservice.api.crypto; import junit.framework.TestCase; +import org.conscrypt.Conscrypt; import org.conscrypt.OpenSSLProvider; import org.signal.libsignal.zkgroup.InvalidInputException; import org.signal.libsignal.zkgroup.profiles.ProfileKey; @@ -12,7 +13,10 @@ import java.util.Arrays; public class UnidentifiedAccessTest extends TestCase { static { - Security.insertProviderAt(new OpenSSLProvider(), 1); + // https://github.com/google/conscrypt/issues/1034 + if (!System.getProperty("os.arch").equals("aarch64")) { + Security.insertProviderAt(new OpenSSLProvider(), 1); + } } private final byte[] EXPECTED_RESULT = {(byte)0x5a, (byte)0x72, (byte)0x3a, (byte)0xce, (byte)0xe5, (byte)0x2c, (byte)0x5e, (byte)0xa0, (byte)0x2b, (byte)0x92, (byte)0xa3, (byte)0xa3, (byte)0x60, (byte)0xc0, (byte)0x95, (byte)0x95};