|
55 | 55 | import java.util.concurrent.TimeUnit; |
56 | 56 | import java.util.concurrent.atomic.AtomicInteger; |
57 | 57 | import org.junit.AfterClass; |
| 58 | +import org.junit.Before; |
58 | 59 | import org.junit.BeforeClass; |
59 | 60 | import org.junit.Test; |
60 | 61 | import org.junit.runner.RunWith; |
@@ -82,27 +83,40 @@ public class LocationAwareSharedBackendReplicaHarnessTest { |
82 | 83 | .build()) |
83 | 84 | .build()) |
84 | 85 | .build(); |
| 86 | + private static SharedBackendReplicaHarness harness; |
85 | 87 |
|
86 | 88 | @BeforeClass |
87 | | - public static void enableLocationAwareRouting() { |
| 89 | + public static void enableLocationAwareRouting() throws Exception { |
88 | 90 | SpannerOptions.useEnvironment( |
89 | 91 | new SpannerOptions.SpannerEnvironment() { |
90 | 92 | @Override |
91 | 93 | public boolean isEnableLocationApi() { |
92 | 94 | return true; |
93 | 95 | } |
94 | 96 | }); |
| 97 | + harness = SharedBackendReplicaHarness.create(2); |
| 98 | + } |
| 99 | + |
| 100 | + @Before |
| 101 | + public void resetHarness() { |
| 102 | + harness.reset(); |
95 | 103 | } |
96 | 104 |
|
97 | 105 | @AfterClass |
98 | | - public static void restoreEnvironment() { |
99 | | - SpannerOptions.useDefaultEnvironment(); |
| 106 | + public static void restoreEnvironment() throws Exception { |
| 107 | + try { |
| 108 | + if (harness != null) { |
| 109 | + harness.close(); |
| 110 | + } |
| 111 | + } finally { |
| 112 | + harness = null; |
| 113 | + SpannerOptions.useDefaultEnvironment(); |
| 114 | + } |
100 | 115 | } |
101 | 116 |
|
102 | 117 | @Test |
103 | 118 | public void singleUseReadReroutesOnResourceExhaustedForBypassTraffic() throws Exception { |
104 | | - try (SharedBackendReplicaHarness harness = SharedBackendReplicaHarness.create(2); |
105 | | - Spanner spanner = createSpanner(harness)) { |
| 119 | + try (Spanner spanner = createSpanner(harness)) { |
106 | 120 | configureBackend(harness, singleRowReadResultSet("b")); |
107 | 121 | DatabaseClient client = spanner.getDatabaseClient(DatabaseId.of(PROJECT, INSTANCE, DATABASE)); |
108 | 122 |
|
@@ -173,8 +187,7 @@ public void singleUseReadReroutesOnResourceExhaustedForBypassTraffic() throws Ex |
173 | 187 |
|
174 | 188 | @Test |
175 | 189 | public void singleUseReadCooldownSkipsReplicaOnNextRequestForBypassTraffic() throws Exception { |
176 | | - try (SharedBackendReplicaHarness harness = SharedBackendReplicaHarness.create(2); |
177 | | - Spanner spanner = createSpanner(harness)) { |
| 190 | + try (Spanner spanner = createSpanner(harness)) { |
178 | 191 | configureBackend(harness, singleRowReadResultSet("b")); |
179 | 192 | DatabaseClient client = spanner.getDatabaseClient(DatabaseId.of(PROJECT, INSTANCE, DATABASE)); |
180 | 193 |
|
@@ -260,8 +273,7 @@ public void singleUseReadCooldownSkipsReplicaOnNextRequestForBypassTraffic() thr |
260 | 273 |
|
261 | 274 | @Test |
262 | 275 | public void singleUseReadReroutesOnUnavailableForBypassTraffic() throws Exception { |
263 | | - try (SharedBackendReplicaHarness harness = SharedBackendReplicaHarness.create(2); |
264 | | - Spanner spanner = createSpanner(harness)) { |
| 276 | + try (Spanner spanner = createSpanner(harness)) { |
265 | 277 | configureBackend(harness, singleRowReadResultSet("b")); |
266 | 278 | DatabaseClient client = spanner.getDatabaseClient(DatabaseId.of(PROJECT, INSTANCE, DATABASE)); |
267 | 279 |
|
@@ -332,8 +344,7 @@ public void singleUseReadReroutesOnUnavailableForBypassTraffic() throws Exceptio |
332 | 344 | @Test |
333 | 345 | public void singleUseReadCooldownSkipsUnavailableReplicaOnNextRequestForBypassTraffic() |
334 | 346 | throws Exception { |
335 | | - try (SharedBackendReplicaHarness harness = SharedBackendReplicaHarness.create(2); |
336 | | - Spanner spanner = createSpanner(harness)) { |
| 347 | + try (Spanner spanner = createSpanner(harness)) { |
337 | 348 | configureBackend(harness, singleRowReadResultSet("b")); |
338 | 349 | DatabaseClient client = spanner.getDatabaseClient(DatabaseId.of(PROJECT, INSTANCE, DATABASE)); |
339 | 350 |
|
@@ -419,8 +430,7 @@ public void singleUseReadCooldownSkipsUnavailableReplicaOnNextRequestForBypassTr |
419 | 430 | @Test |
420 | 431 | public void singleUseReadMidStreamRecvFailureWithoutRetryInfoRetriesForBypassTraffic() |
421 | 432 | throws Exception { |
422 | | - try (SharedBackendReplicaHarness harness = SharedBackendReplicaHarness.create(2); |
423 | | - Spanner spanner = createSpanner(harness)) { |
| 433 | + try (Spanner spanner = createSpanner(harness)) { |
424 | 434 | configureBackend(harness, multiRowReadResultSet("b", "c", "d")); |
425 | 435 | DatabaseClient client = spanner.getDatabaseClient(DatabaseId.of(PROJECT, INSTANCE, DATABASE)); |
426 | 436 |
|
@@ -501,8 +511,7 @@ public void singleUseReadMidStreamRecvFailureWithoutRetryInfoRetriesForBypassTra |
501 | 511 | @Test |
502 | 512 | public void readWriteTransactionAbortedCommitUsesReadAffinityReplicaForBypassTraffic() |
503 | 513 | throws Exception { |
504 | | - try (SharedBackendReplicaHarness harness = SharedBackendReplicaHarness.create(2); |
505 | | - Spanner spanner = createSpanner(harness)) { |
| 514 | + try (Spanner spanner = createSpanner(harness)) { |
506 | 515 | configureBackend(harness, singleRowReadResultSet("b"), /* leaderReplicaIndex= */ 1); |
507 | 516 | DatabaseClient client = spanner.getDatabaseClient(DatabaseId.of(PROJECT, INSTANCE, DATABASE)); |
508 | 517 |
|
|
0 commit comments