From 347f59aaaf5a903e7086de3b1b7645aae9622505 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Mon, 30 Mar 2020 13:52:24 -0400 Subject: [PATCH 1/2] chore(test): make it easier to debug failures in SettingsTest --- .../com/google/api/gax/grpc/SettingsTest.java | 122 ++++++++++++++---- 1 file changed, 94 insertions(+), 28 deletions(-) diff --git a/gax-grpc/src/test/java/com/google/api/gax/grpc/SettingsTest.java b/gax-grpc/src/test/java/com/google/api/gax/grpc/SettingsTest.java index eb3bb1169..fe6189cb8 100644 --- a/gax-grpc/src/test/java/com/google/api/gax/grpc/SettingsTest.java +++ b/gax-grpc/src/test/java/com/google/api/gax/grpc/SettingsTest.java @@ -506,8 +506,8 @@ public void callSettingsBuildFromTimeoutNoRetries() throws IOException { .build()); UnaryCallSettings settingsB = builderB.build(); - assertIsReflectionEqual(builderA, builderB); - assertIsReflectionEqual(settingsA, settingsB); + assertIsReflectionEqual("UnaryCallSettings.Builder", builderA, builderB); + assertIsReflectionEqual("UnaryCallSettings", settingsA, settingsB); } // Reflection Helper Methods @@ -519,23 +519,35 @@ public void callSettingsBuildFromTimeoutNoRetries() throws IOException { * call to assertIsReflectionEqual. */ - private static void assertIsReflectionEqual(Object objA, Object objB, String[] excludes) { - Truth.assertThat(EqualsBuilder.reflectionEquals(objA, objB, excludes)).isTrue(); + private static void assertIsReflectionEqual( + String path, Object objA, Object objB, String[] excludes) { + Truth.assertWithMessage(path + " should be equal") + .that(EqualsBuilder.reflectionEquals(objA, objB, excludes)) + .isTrue(); } - private static void assertIsReflectionEqual(Object objA, Object objB) { - assertIsReflectionEqual(objA, objB, null); + private static void assertIsReflectionEqual(String path, Object objA, Object objB) { + assertIsReflectionEqual(path, objA, objB, null); } private static void assertIsReflectionEqual(FakeSettings settingsA, FakeSettings settingsB) { assertIsReflectionEqual( + "FakeSettings", settingsA, settingsB, new String[] {"fakeMethodSimple", "fakePagedMethod", "fakeMethodBatching", "stubSettings"}); - assertIsReflectionEqual(settingsA.fakeMethodSimple(), settingsB.fakeMethodSimple()); - assertIsReflectionEqual(settingsA.fakePagedMethod(), settingsB.fakePagedMethod()); - assertIsReflectionEqual(settingsA.fakeMethodBatching(), settingsB.fakeMethodBatching()); assertIsReflectionEqual( + "FakeSettings.fakeMethodSimple", + settingsA.fakeMethodSimple(), + settingsB.fakeMethodSimple()); + assertIsReflectionEqual( + "FakeSettings.fakePagedMethod", settingsA.fakePagedMethod(), settingsB.fakePagedMethod()); + assertIsReflectionEqual( + "FakeSettings.fakeMethodBatching", + settingsA.fakeMethodBatching(), + settingsB.fakeMethodBatching()); + assertIsReflectionEqual( + "FakeSettings.getStubSettings", settingsA.getStubSettings(), settingsB.getStubSettings(), new String[] { @@ -549,21 +561,36 @@ private static void assertIsReflectionEqual(FakeSettings settingsA, FakeSettings "transportChannelProvider", "streamWatchdogProvider" }); - assertIsReflectionEqual(settingsA.getExecutorProvider(), settingsB.getExecutorProvider()); - assertIsReflectionEqual(settingsA.getCredentialsProvider(), settingsB.getCredentialsProvider()); assertIsReflectionEqual( - settingsA.getTransportChannelProvider(), settingsB.getTransportChannelProvider()); - assertIsReflectionEqual(settingsA.getHeaderProvider(), settingsB.getHeaderProvider()); + "FakeSettings.getExecutorProvider", + settingsA.getExecutorProvider(), + settingsB.getExecutorProvider()); + assertIsReflectionEqual( + "FakeSettings.getCredentialsProvider", + settingsA.getCredentialsProvider(), + settingsB.getCredentialsProvider()); assertIsReflectionEqual( + "FakeSettings.getTransportChannelProvider", + settingsA.getTransportChannelProvider(), + settingsB.getTransportChannelProvider()); + assertIsReflectionEqual( + "FakeSettings.getHeaderProvider", + settingsA.getHeaderProvider(), + settingsB.getHeaderProvider()); + assertIsReflectionEqual( + "FakeSettings.getStubSettings.getExecutorProvider", settingsA.getStubSettings().getExecutorProvider(), settingsB.getStubSettings().getExecutorProvider()); assertIsReflectionEqual( + "FakeSettings.getStubSettings.getCredentialsProvider", settingsA.getStubSettings().getCredentialsProvider(), settingsB.getStubSettings().getCredentialsProvider()); assertIsReflectionEqual( + "FakeSettings.getStubSettings.getTransportChannelProvider", settingsA.getStubSettings().getTransportChannelProvider(), settingsB.getStubSettings().getTransportChannelProvider()); assertIsReflectionEqual( + "FakeSettings.getStubSettings.getHeaderProvider", settingsA.getStubSettings().getHeaderProvider(), settingsB.getStubSettings().getHeaderProvider()); } @@ -571,45 +598,84 @@ private static void assertIsReflectionEqual(FakeSettings settingsA, FakeSettings private static void assertIsReflectionEqual( FakeSettings.Builder builderA, FakeSettings.Builder builderB) { assertIsReflectionEqual( + "FakeSettings.Builder", builderA, builderB, new String[] {"fakeMethodSimple", "fakePagedMethod", "fakeMethodBatching", "stubSettings"}); - assertIsReflectionEqual(builderA.fakeMethodSimple(), builderB.fakeMethodSimple()); - assertIsReflectionEqual(builderA.fakePagedMethod(), builderB.fakePagedMethod()); - assertIsReflectionEqual(builderA.fakeMethodBatching(), builderB.fakeMethodBatching()); - assertIsReflectionEqual(builderA.getExecutorProvider(), builderB.getExecutorProvider()); - assertIsReflectionEqual(builderA.getCredentialsProvider(), builderB.getCredentialsProvider()); assertIsReflectionEqual( - builderA.getTransportChannelProvider(), builderB.getTransportChannelProvider()); + "FakeSettings.Builder.fakeMethodSimple", + builderA.fakeMethodSimple(), + builderB.fakeMethodSimple()); + assertIsReflectionEqual( + "FakeSettings.Builder.fakePagedMethod", + builderA.fakePagedMethod(), + builderB.fakePagedMethod()); + assertIsReflectionEqual( + "FakeSettings.Builder.fakeMethodBatching", + builderA.fakeMethodBatching(), + builderB.fakeMethodBatching()); + assertIsReflectionEqual( + "FakeSettings.Builder.getExecutorProvider", + builderA.getExecutorProvider(), + builderB.getExecutorProvider()); + assertIsReflectionEqual( + "FakeSettings.Builder.getCredentialsProvider", + builderA.getCredentialsProvider(), + builderB.getCredentialsProvider()); + assertIsReflectionEqual( + "FakeSettings.Builder.getTransportChannelProvider", + builderA.getTransportChannelProvider(), + builderB.getTransportChannelProvider()); } private static void assertIsReflectionEqual( - UnaryCallSettings.Builder builderA, UnaryCallSettings.Builder builderB) { - assertIsReflectionEqual(builderA, builderB, new String[] {"retrySettings"}); - assertIsReflectionEqual(builderA.getRetrySettings(), builderB.getRetrySettings()); + String path, + UnaryCallSettings.Builder builderA, + UnaryCallSettings.Builder builderB) { + assertIsReflectionEqual(path, builderA, builderB, new String[] {"retrySettingsBuilder"}); + assertIsReflectionEqual( + path + ".getRetrySettings", builderA.getRetrySettings(), builderB.getRetrySettings()); } private static void assertIsReflectionEqual( + String path, BatchingCallSettings settingsA, BatchingCallSettings settingsB) { assertIsReflectionEqual( + path, settingsA, settingsB, - new String[] {"retrySettings", "batchingDescriptor", "batchingSettings", "flowController"}); - assertIsReflectionEqual(settingsA.getRetrySettings(), settingsA.getRetrySettings()); - assertIsReflectionEqual(settingsB.getBatchingSettings(), settingsB.getBatchingSettings()); + new String[] { + "retrySettings", "batchingDescriptor", "batchingSettings", "flowController" + }); + + assertIsReflectionEqual( + path + ".getRetrySettings", settingsA.getRetrySettings(), settingsA.getRetrySettings()); + assertIsReflectionEqual( + path + ".getBatchingSettings", + settingsB.getBatchingSettings(), + settingsB.getBatchingSettings()); // TODO compare other batching things (batchingDescriptor, flowController) } private static void assertIsReflectionEqual( + String path, BatchingCallSettings.Builder builderA, BatchingCallSettings.Builder builderB) { assertIsReflectionEqual( + path, builderA, builderB, - new String[] {"retrySettings", "batchingDescriptor", "batchingSettings", "flowController"}); - assertIsReflectionEqual(builderA.getRetrySettings(), builderB.getRetrySettings()); - assertIsReflectionEqual(builderA.getBatchingSettings(), builderB.getBatchingSettings()); + new String[] { + "retrySettings", "batchingDescriptor", "batchingSettings", "flowController" + }); + + assertIsReflectionEqual( + path + ".getRetrySettings", builderA.getRetrySettings(), builderB.getRetrySettings()); + assertIsReflectionEqual( + path + ".getBatchingSettings", + builderA.getBatchingSettings(), + builderB.getBatchingSettings()); // TODO compare other batching things (batchingDescriptor, flowController) } } From d4a2cb7700b9d1891eebcfcbd1eccbbc2f54334a Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Tue, 31 Mar 2020 15:07:53 -0400 Subject: [PATCH 2/2] format --- .../test/java/com/google/api/gax/grpc/SettingsTest.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gax-grpc/src/test/java/com/google/api/gax/grpc/SettingsTest.java b/gax-grpc/src/test/java/com/google/api/gax/grpc/SettingsTest.java index fe6189cb8..778e4c908 100644 --- a/gax-grpc/src/test/java/com/google/api/gax/grpc/SettingsTest.java +++ b/gax-grpc/src/test/java/com/google/api/gax/grpc/SettingsTest.java @@ -645,9 +645,7 @@ private static void assertIsReflectionEqual( path, settingsA, settingsB, - new String[] { - "retrySettings", "batchingDescriptor", "batchingSettings", "flowController" - }); + new String[] {"retrySettings", "batchingDescriptor", "batchingSettings", "flowController"}); assertIsReflectionEqual( path + ".getRetrySettings", settingsA.getRetrySettings(), settingsA.getRetrySettings()); @@ -666,9 +664,7 @@ private static void assertIsReflectionEqual( path, builderA, builderB, - new String[] { - "retrySettings", "batchingDescriptor", "batchingSettings", "flowController" - }); + new String[] {"retrySettings", "batchingDescriptor", "batchingSettings", "flowController"}); assertIsReflectionEqual( path + ".getRetrySettings", builderA.getRetrySettings(), builderB.getRetrySettings());