Skip to content

Commit

Permalink
Add Assertion to the SharedTimerTest (#2381)
Browse files Browse the repository at this point in the history
  • Loading branch information
Codegass authored May 13, 2024
1 parent 561bb4f commit ae64fed
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
20 changes: 17 additions & 3 deletions src/test/java/com/microsoft/sqlserver/jdbc/SharedTimerTest.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
package com.microsoft.sqlserver.jdbc;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;

import java.util.ArrayList;
import java.util.concurrent.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

import org.junit.jupiter.api.Test;


class SharedTimerTest {

@Test
void getTimer() throws InterruptedException, ExecutionException, TimeoutException {
final int iterations = 500;

ExecutorService executor = Executors.newFixedThreadPool(2);

try {
ArrayList<CompletableFuture<?>> futures = new ArrayList<>(iterations);
for (int i = 0; i < iterations; i++) {
Expand All @@ -22,6 +29,13 @@ void getTimer() throws InterruptedException, ExecutionException, TimeoutExceptio
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).get(2, TimeUnit.MINUTES);
} finally {
executor.shutdown();
// 5000ms wait time for the AzureDB connection to close, need full test in the
// test lab for the exact time
if (!executor.awaitTermination(5000, TimeUnit.MILLISECONDS)) {
executor.shutdownNow();
}
}

assertFalse(SharedTimer.isRunning(), TestResource.getResource("R_sharedTimerStopOnNoRef"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ protected Object[][] getContents() {
{"R_objectNullOrEmpty", "The {0} is null or empty."},
{"R_cekDecryptionFailed", "Failed to decrypt a column encryption key using key store provider: {0}."},
{"R_connectTimedOut", "connect timed out"},
{"R_sharedTimerStopOnNoRef", "SharedTimer should be stopped after all references are removed."},
{"R_sessionKilled", "Cannot continue the execution because the session is in the kill state"},
{"R_failedFedauth", "Failed to acquire fedauth token: "},
{"R_noLoginModulesConfiguredForJdbcDriver",
Expand Down

0 comments on commit ae64fed

Please sign in to comment.