aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/util/SimpleLogHandlerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/util/SimpleLogHandlerTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/util/SimpleLogHandlerTest.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/util/SimpleLogHandlerTest.java b/src/test/java/com/google/devtools/build/lib/util/SimpleLogHandlerTest.java
index a8f95727f7..4b889508af 100644
--- a/src/test/java/com/google/devtools/build/lib/util/SimpleLogHandlerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/util/SimpleLogHandlerTest.java
@@ -15,10 +15,12 @@
package com.google.devtools.build.lib.util;
import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth8.assertThat;
import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows;
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.base.Strings;
+import com.google.devtools.build.lib.util.SimpleLogHandler.HandlerQuerier;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@@ -39,9 +41,11 @@ import java.util.Arrays;
import java.util.Date;
import java.util.Optional;
import java.util.TimeZone;
+import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
+import java.util.logging.Logger;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
@@ -386,4 +390,53 @@ public final class SimpleLogHandlerTest {
assertThat(Files.exists(kept)).isTrue();
assertThat(Files.exists(currentLogPath)).isTrue();
}
+
+ @Test
+ public void getLoggerFilePath_onSimpleLogHandler_withFile_returnsPath() throws Exception {
+ HandlerQuerier handlerQuerier = new HandlerQuerier();
+ SimpleLogHandler handler =
+ SimpleLogHandler.builder().setPrefix(tmp.getRoot() + File.separator + "hello").build();
+ Logger logger = Logger.getAnonymousLogger();
+ logger.addHandler(handler);
+ handler.publish(new LogRecord(Level.SEVERE, "Hello world")); // Ensure log file is opened.
+
+ Optional<Path> retrievedLogPath = handlerQuerier.getLoggerFilePath(logger);
+
+ assertThat(retrievedLogPath).isPresent();
+ assertThat(retrievedLogPath.get().toString())
+ .startsWith(tmp.getRoot() + File.separator + "hello");
+
+ handler.close();
+ }
+
+ @Test
+ public void getLoggerFilePath_onSimpleLogHandler_withoutFile_returnsEmpty() throws Exception {
+ HandlerQuerier handlerQuerier = new HandlerQuerier();
+ SimpleLogHandler handler =
+ SimpleLogHandler.builder().setPrefix(tmp.getRoot() + File.separator + "hello").build();
+ Logger logger = Logger.getAnonymousLogger();
+ logger.addHandler(handler);
+
+ assertThat(handlerQuerier.getLoggerFilePath(logger)).isEmpty();
+ }
+
+ @Test
+ public void getLoggerFilePath_onUnsupportedLogHandler_fails() throws Exception {
+ HandlerQuerier handlerQuerier = new HandlerQuerier();
+ FileHandler unsupportedHandler = new FileHandler(tmp.getRoot() + File.separator + "hello");
+ Logger logger = Logger.getAnonymousLogger();
+ logger.addHandler(unsupportedHandler);
+
+ assertThrows(IllegalArgumentException.class, () -> handlerQuerier.getLoggerFilePath(logger));
+
+ unsupportedHandler.close();
+ }
+
+ @Test
+ public void getLoggerFilePath_onMissingLogHandler_fails() throws Exception {
+ HandlerQuerier handlerQuerier = new HandlerQuerier();
+ Logger logger = Logger.getAnonymousLogger();
+
+ assertThrows(IllegalArgumentException.class, () -> handlerQuerier.getLoggerFilePath(logger));
+ }
}