You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2022/07/14 10:16:35 UTC

[brooklyn-server] 04/05: when we wrap mgmt in a mock, register and tear down the real one to prevent leaks

This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 9039ea97a36ad75873524e50f345df145acc7d30
Author: Alex Heneveld <al...@cloudsoft.io>
AuthorDate: Thu Jul 14 10:00:21 2022 +0100

    when we wrap mgmt in a mock, register and tear down the real one to prevent leaks
---
 .../util/core/logbook/file/FileLogStoreTest.java        | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/core/src/test/java/org/apache/brooklyn/util/core/logbook/file/FileLogStoreTest.java b/core/src/test/java/org/apache/brooklyn/util/core/logbook/file/FileLogStoreTest.java
index 6d6efd1fea..52229ab56a 100644
--- a/core/src/test/java/org/apache/brooklyn/util/core/logbook/file/FileLogStoreTest.java
+++ b/core/src/test/java/org/apache/brooklyn/util/core/logbook/file/FileLogStoreTest.java
@@ -28,7 +28,11 @@ import com.google.common.base.Predicates;
 import com.google.common.collect.ImmutableList;
 import com.google.common.util.concurrent.Callables;
 
+import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.test.Asserts;
+import org.apache.brooklyn.util.collections.MutableList;
 import org.mockito.Mockito;
+import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
@@ -67,6 +71,8 @@ public class FileLogStoreTest extends BrooklynMgmtUnitTestSupport {
 
     private final AtomicInteger lineCount = new AtomicInteger();
 
+    protected List<ManagementContext> extraMgmts = MutableList.of();
+
     @Override
     @BeforeMethod(alwaysRun=true)
     public void setUp() throws Exception {
@@ -79,6 +85,14 @@ public class FileLogStoreTest extends BrooklynMgmtUnitTestSupport {
         lineCount.set(0);
     }
 
+    @AfterMethod(alwaysRun = true, timeOut = Asserts.THIRTY_SECONDS_TIMEOUT_MS)
+    @Override
+    public void tearDown() throws Exception {
+        extraMgmts.forEach(this::destroyManagementContextSafely);
+        extraMgmts.clear();
+        super.tearDown();
+    }
+
     @Test
     public void testParseLogJavaLine() {
         FileLogStore cut = new FileLogStore();
@@ -452,7 +466,6 @@ public class FileLogStoreTest extends BrooklynMgmtUnitTestSupport {
         assertEquals(1, brooklynLogEntries.size());
         assertTrue(brooklynLogEntries.stream().allMatch(e -> e.getLevel().equals("INFO")));
         assertFalse(brooklynLogEntries.stream().anyMatch(Predicates.not(e -> e.getTaskId().equals(logBookQueryParams.getTaskId()))));
-
     }
 
     /* one INFO log entry, as for #testQueryLogSampleWithoutRecursion */
@@ -494,6 +507,8 @@ public class FileLogStoreTest extends BrooklynMgmtUnitTestSupport {
     }
 
     private ManagementContextInternal newMock(ManagementContextInternal mgmt) {
+        extraMgmts.add(mgmt);
+
         File file = new File(Objects.requireNonNull(getClass().getClassLoader().getResource(JAVA_LOG_SAMPLE_PATH)).getFile());
         mgmt.getBrooklynProperties().put(LOGBOOK_LOG_STORE_PATH.getName(), file.getAbsolutePath());