Skip to content

Commit a6aec27

Browse files
committed
auth: Use pre-existing private key in test
Generating a KeyPair is very expensive when running with TSAN, because TSAN keeps the JVM in interpreted mode. This speeds up the test running on my desktop from .368s to .151s; faster, but nobody cares. With TSAN, the speedup is from 150-500s to 4-6s. Within Google the test was timing out because it was taking so long. While we can increase the timeout, it seems better to speed up the test in this easy way.
1 parent 2db4852 commit a6aec27

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

auth/src/test/java/io/grpc/auth/GoogleAuthLibraryCallCredentialsTest.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,12 @@
5050
import io.grpc.Status;
5151
import io.grpc.internal.JsonParser;
5252
import io.grpc.testing.TestMethodDescriptors;
53+
import io.grpc.testing.TlsTesting;
54+
import io.grpc.util.CertificateUtils;
5355
import java.io.IOException;
56+
import java.io.InputStream;
5457
import java.net.URI;
55-
import java.security.KeyPair;
56-
import java.security.KeyPairGenerator;
58+
import java.security.PrivateKey;
5759
import java.util.ArrayList;
5860
import java.util.Date;
5961
import java.util.List;
@@ -342,15 +344,18 @@ public void serviceUri() throws Exception {
342344

343345
@Test
344346
public void serviceAccountToJwt() throws Exception {
345-
KeyPair pair = KeyPairGenerator.getInstance("RSA").generateKeyPair();
347+
PrivateKey privateKey;
348+
try (InputStream server1Key = TlsTesting.loadCert("server1.key")) {
349+
privateKey = CertificateUtils.getPrivateKey(server1Key);
350+
}
346351

347352
HttpTransportFactory factory = Mockito.mock(HttpTransportFactory.class);
348353
Mockito.when(factory.create()).thenThrow(new AssertionError());
349354

350355
ServiceAccountCredentials credentials =
351356
ServiceAccountCredentials.newBuilder()
352357
.setClientEmail("[email protected]")
353-
.setPrivateKey(pair.getPrivate())
358+
.setPrivateKey(privateKey)
354359
.setPrivateKeyId("test-private-key-id")
355360
.setHttpTransportFactory(factory)
356361
.build();
@@ -390,13 +395,16 @@ public void oauthClassesNotInClassPath() throws Exception {
390395

391396
@Test
392397
public void jwtAccessCredentialsInRequestMetadata() throws Exception {
393-
KeyPair pair = KeyPairGenerator.getInstance("RSA").generateKeyPair();
398+
PrivateKey privateKey;
399+
try (InputStream server1Key = TlsTesting.loadCert("server1.key")) {
400+
privateKey = CertificateUtils.getPrivateKey(server1Key);
401+
}
394402

395403
ServiceAccountCredentials credentials =
396404
ServiceAccountCredentials.newBuilder()
397405
.setClientId("test-client")
398406
.setClientEmail("[email protected]")
399-
.setPrivateKey(pair.getPrivate())
407+
.setPrivateKey(privateKey)
400408
.setPrivateKeyId("test-private-key-id")
401409
.setQuotaProjectId("test-quota-project-id")
402410
.build();

0 commit comments

Comments
 (0)