summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2024-06-23 16:24:11 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2024-06-23 16:24:11 +0200
commit47df8be6dc1e0927a7b3d690100445865dfa8675 (patch)
tree06587663e86e296156872d331e7aa1be69624884 /core/src
parentb69b3017699b960ff5133b8ec34bff786bec0f77 (diff)
test: Add benchmarks.
The benchmarks can be run using 'mvn verify -Pbenchmark'. Change-Id: I13058f52bea77aa3cb4f1967126c28e1e98d1838
Diffstat (limited to 'core/src')
-rw-r--r--core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterBenchmark.java34
-rw-r--r--core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java34
2 files changed, 55 insertions, 13 deletions
diff --git a/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterBenchmark.java b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterBenchmark.java
new file mode 100644
index 0000000..1a1c17c
--- /dev/null
+++ b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterBenchmark.java
@@ -0,0 +1,34 @@
+package eu.mulk.quarkus.googlecloud.jsonlogging;
+
+import java.util.List;
+import org.jboss.logmanager.ExtLogRecord;
+import org.openjdk.jmh.annotations.*;
+import org.openjdk.jmh.infra.Blackhole;
+
+@Warmup(iterations = 5, time = 1)
+@Measurement(iterations = 10, time = 1)
+@Fork(value = 1)
+@State(org.openjdk.jmh.annotations.Scope.Benchmark)
+public class FormatterBenchmark {
+
+ private ExtLogRecord simpleLogRecord;
+ private ExtLogRecord structuredLogRecord;
+ private Formatter formatter;
+
+ @Setup
+ public void setup() {
+ simpleLogRecord = FormatterTest.makeSimpleRecord();
+ structuredLogRecord = FormatterTest.makeStructuredRecord();
+ formatter = new Formatter(List.of(), List.of());
+ }
+
+ @Benchmark
+ public void simpleLogRecord(Blackhole blackhole) {
+ blackhole.consume(formatter.format(simpleLogRecord));
+ }
+
+ @Benchmark
+ public void structuredLogRecord(Blackhole blackhole) {
+ blackhole.consume(formatter.format(structuredLogRecord));
+ }
+}
diff --git a/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java
index 49cda39..91cc8e4 100644
--- a/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java
+++ b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java
@@ -1,20 +1,19 @@
package eu.mulk.quarkus.googlecloud.jsonlogging;
+import static org.junit.jupiter.api.Assertions.assertLinesMatch;
+
import jakarta.json.Json;
+import java.util.Collection;
+import java.util.List;
import org.jboss.logmanager.ExtLogRecord;
import org.jboss.logmanager.Level;
import org.junit.jupiter.api.Test;
-import java.util.Collection;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertLinesMatch;
-
class FormatterTest {
@Test
void simpleRecord() {
- var logRecord = new ExtLogRecord(Level.INFO, "Hello, world!", FormatterTest.class.getName());
+ var logRecord = makeSimpleRecord();
var formatter = new Formatter(List.of(), List.of());
var formattingResult = formatter.format(logRecord);
@@ -34,6 +33,10 @@ class FormatterTest {
List.of(formattingResult));
}
+ static ExtLogRecord makeSimpleRecord() {
+ return new ExtLogRecord(Level.INFO, "Hello, world!", FormatterTest.class.getName());
+ }
+
@Test
void structuredRecord() {
var parameterProvider =
@@ -55,13 +58,7 @@ class FormatterTest {
}
};
- var logRecord = new ExtLogRecord(Level.INFO, "Hello, world!", FormatterTest.class.getName());
- logRecord.setParameters(
- new Object[] {
- (StructuredParameter)
- () -> Json.createObjectBuilder().add("one", 1).add("two", 2.0).add("yes", true),
- Label.of("a", "b")
- });
+ var logRecord = makeStructuredRecord();
var formatter = new Formatter(List.of(parameterProvider), List.of(labelProvider));
var formattingResult = formatter.format(logRecord);
@@ -85,4 +82,15 @@ class FormatterTest {
+ "\\}\n"),
List.of(formattingResult));
}
+
+ static ExtLogRecord makeStructuredRecord() {
+ var logRecord = makeSimpleRecord();
+ logRecord.setParameters(
+ new Object[] {
+ (StructuredParameter)
+ () -> Json.createObjectBuilder().add("one", 1).add("two", 2.0).add("yes", true),
+ Label.of("a", "b")
+ });
+ return logRecord;
+ }
}