This is an automated email from the ASF dual-hosted git repository.
technoboy pushed a commit to branch branch-2.11
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-2.11 by this push:
new 7c0a7f91546 [improve][test] Avoid hacky modify static final field
(#17005)
7c0a7f91546 is described below
commit 7c0a7f915463e331ec292bfe9fd33ca1eadeb426
Author: tison <[email protected]>
AuthorDate: Tue Aug 9 19:49:18 2022 +0800
[improve][test] Avoid hacky modify static final field (#17005)
---
.../runtime/thread/ThreadRuntimeFactoryTest.java | 42 ++++++++--------------
1 file changed, 15 insertions(+), 27 deletions(-)
diff --git
a/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/thread/ThreadRuntimeFactoryTest.java
b/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/thread/ThreadRuntimeFactoryTest.java
index d4b0e899b5b..e41c440dc85 100644
---
a/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/thread/ThreadRuntimeFactoryTest.java
+++
b/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/thread/ThreadRuntimeFactoryTest.java
@@ -32,7 +32,6 @@ import org.apache.pulsar.functions.worker.FunctionsManager;
import org.apache.pulsar.functions.worker.WorkerConfig;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
-import org.powermock.reflect.Whitebox;
import org.testng.annotations.Test;
import java.util.Map;
import java.util.Optional;
@@ -46,20 +45,18 @@ import static org.mockito.Mockito.mockStatic;
@Slf4j
public class ThreadRuntimeFactoryTest {
+ private static final long JVM_MAX_DIRECT_MEMORY =
DirectMemoryUtils.jvmMaxDirectMemory();
+
@Test
public void testMemoryLimitPercent() throws Exception {
-
ClientBuilder clientBuilder = testMemoryLimit(null, 50.0);
-
- Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq((long) (1024 * 0.5)),
Mockito.eq(SizeUnit.BYTES));
+ Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(JVM_MAX_DIRECT_MEMORY / 2),
Mockito.eq(SizeUnit.BYTES));
}
@Test
public void testMemoryLimitAbsolute() throws Exception {
-
- ClientBuilder clientBuilder = testMemoryLimit(512L, null);
-
- Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(512L), Mockito.eq(SizeUnit.BYTES));
+ ClientBuilder clientBuilder = testMemoryLimit(JVM_MAX_DIRECT_MEMORY /
2, null);
+ Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(JVM_MAX_DIRECT_MEMORY / 2),
Mockito.eq(SizeUnit.BYTES));
}
@Test(expectedExceptions = IllegalArgumentException.class)
@@ -79,39 +76,30 @@ public class ThreadRuntimeFactoryTest {
@Test
public void testMemoryLimitNotSet() throws Exception {
-
ClientBuilder clientBuilder = testMemoryLimit(null, null);
-
Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(0L), Mockito.eq(SizeUnit.BYTES));
}
@Test
public void testMemoryLimitBothSet() throws Exception {
+ ClientBuilder clientBuilder = testMemoryLimit(JVM_MAX_DIRECT_MEMORY /
2, 100.0);
+ Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(JVM_MAX_DIRECT_MEMORY / 2),
Mockito.eq(SizeUnit.BYTES));
- ClientBuilder clientBuilder = testMemoryLimit(512L, 100.0);
+ clientBuilder = testMemoryLimit(JVM_MAX_DIRECT_MEMORY * 2, 100.0);
+ Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(JVM_MAX_DIRECT_MEMORY),
Mockito.eq(SizeUnit.BYTES));
- Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(512L), Mockito.eq(SizeUnit.BYTES));
+ clientBuilder = testMemoryLimit(JVM_MAX_DIRECT_MEMORY / 2, 25.0);
+ Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(JVM_MAX_DIRECT_MEMORY / 4),
Mockito.eq(SizeUnit.BYTES));
- clientBuilder = testMemoryLimit(2048L, 100.0);
-
- Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(1024L), Mockito.eq(SizeUnit.BYTES));
-
- clientBuilder = testMemoryLimit(512L, 25.0);
-
- Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(256L), Mockito.eq(SizeUnit.BYTES));
-
- clientBuilder = testMemoryLimit(512L, 75.0);
-
- Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(512L), Mockito.eq(SizeUnit.BYTES));
+ clientBuilder = testMemoryLimit(JVM_MAX_DIRECT_MEMORY / 2, 75.0);
+ Mockito.verify(clientBuilder,
Mockito.times(1)).memoryLimit(Mockito.eq(JVM_MAX_DIRECT_MEMORY / 2),
Mockito.eq(SizeUnit.BYTES));
}
private ClientBuilder testMemoryLimit(Long absolute, Double percent)
throws Exception {
- try (MockedStatic<PulsarClient> mockedPulsarClient =
mockStatic(PulsarClient.class);) {
- Whitebox.setInternalState(DirectMemoryUtils.class,
"JVM_MAX_DIRECT_MEMORY", 1024L);
-
+ try (MockedStatic<PulsarClient> mockedPulsarClient =
mockStatic(PulsarClient.class)) {
ClientBuilder clientBuilder = Mockito.mock(ClientBuilder.class);
- mockedPulsarClient.when(() -> PulsarClient.builder()).thenAnswer(i
-> clientBuilder);
+ mockedPulsarClient.when(PulsarClient::builder).thenAnswer(i ->
clientBuilder);
doReturn(clientBuilder).when(clientBuilder).serviceUrl(anyString());
doReturn(clientBuilder).when(clientBuilder).memoryLimit(anyLong(),
any());