New JMH benchmarking framework:

Added 9 new benchmark classes in nb-engine-core/.../sysperf/engineflow/ for measuring engine flow performance
  (stride context, op flow, space mapping, motor operations, etc.)
JMH documentation: Added devdocs/devguide/jmh_engineflow.md
Testing tags:
 POM updates: Added test profiles
 CONVENTIONS.md updates around test tags
 Test annotations: Added 2-3 lines to ~280 test files
 Split tests classes to allow one tag set per class (no mixed methods)
This commit is contained in:
Jonathan Shook committed 2026-01-20 17:23:18 +00:00
1 parent c9dbd5b612
commit d308cddf21
385 files changed
+2421 -66

No files matched your search

+7 -1
View File
@@ -103,6 +103,13 @@ apply to all files, directories, modules, or sub-projects contained within this
the purpose of doing this is to ensure that other code paths are used during tests which would
otherwise be missed. When doing this, the special code paths need to be very well documented.
* Use the latest junit jupiter API and assertions for unit tests.
* Use JUnit Jupiter `@Tag` to classify tests that fall into the kind/aspect scheme: kinds include
`accuracy`, `performance`, `microbench`; aspects include `engine`, `variates`, `metrics`,
`statistics`, `unit`, and similar areas. Use `statistics` for numerical accuracy tests and
`unit` for tests without a kind tag.
When a kind tag is used, also include one aspect tag.
* By default, only `unit` tests run. Use Maven profiles `accuracy`, `performance`, `microbench`,
or `alltests`, or set `-Dnb.junit.tags="accuracy & variates"` to filter by tag expression.
* Implement test for every requirement. Strive for good coverage in unit test.
* Favor building native test fixtures in the code base rather than pulling in Mockito for tests.
Only use mockito for things which are challenging to test because fixtures require remote system
@@ -114,4 +121,3 @@ apply to all files, directories, modules, or sub-projects contained within this
src/test/resource path of the respective module. Any tests associated with it should presume that
as the logical root of tests. Access to these files should be granted via the system class loader
as a resource stream during tests.
+72
View File
@@ -0,0 +1,72 @@
# Engine-flow JMH microbenchmarks
There is a JMH suite intended to quantify the steady-state overhead of the new stride/flow context plumbing:
- `OpFlowContext` access + reset
- `OpFlowState` slot selection + begin/reset
- `FlowContextAwareOp` data flow between ops via `CapturingOp` and a simple consumer
- space mapping behavior via `ConcurrentIndexCacheWrapperWithName`
- stride batching via `StrideAction.runStride(...)` and `StrideContext` lifecycle
- a minimal end-to-end `StrideMotor` “single segment” run (with stub `Input`/`StrideAction`)
## Benchmark classes
- `nb-engine/nb-engine-core/src/main/java/io/nosqlbench/engine/api/activityapi/sysperf/engineflow/OpFlowContextBench.java`
- `nb-engine/nb-engine-core/src/main/java/io/nosqlbench/engine/api/activityapi/sysperf/engineflow/OpFlowStateBench.java`
- `nb-engine/nb-engine-core/src/main/java/io/nosqlbench/engine/api/activityapi/sysperf/engineflow/CapturingOpFlowPipelineBench.java`
- `nb-engine/nb-engine-core/src/main/java/io/nosqlbench/engine/api/activityapi/sysperf/engineflow/SpaceMappingBench.java`
- `nb-engine/nb-engine-core/src/main/java/io/nosqlbench/engine/api/activityapi/sysperf/engineflow/StrideActionRunStrideBench.java`
- `nb-engine/nb-engine-core/src/main/java/io/nosqlbench/engine/api/activityapi/sysperf/engineflow/StrideMotorSingleSegmentBench.java`
- `nb-engine/nb-engine-core/src/main/java/io/nosqlbench/engine/api/activityimpl/uniform/actions/StrideContextJmhBench.java`
## Running
The simplest way is to run the runner from your IDE after building the module:
- Runner: `io.nosqlbench.engine.api.activityapi.sysperf.engineflow.EngineFlowPerfBaseliner`
- Optional arg0: a JMH include regex (defaults to `.*(engineflow\\..*Bench|StrideContextJmhBench).*`)
- Optional arg1: a JMH results file (does not suppress console output)
Offline build (no downloads) to compile the benchmarks:
```bash
mvn -o -pl nb-engine/nb-engine-core -am test -DskipTests
```
### Maven `exec:java` examples
In a multi-module reactor, `exec:java` runs once per module; use a build step + a single-module exec step (chained with `&&`) so the exec only happens for `nb-engine-core`:
```bash
mvn -pl nb-engine/nb-engine-core -am -DskipTests test-compile \
&& mvn -pl nb-engine/nb-engine-core -DskipTests exec:java \
-Dexec.mainClass=io.nosqlbench.engine.api.activityapi.sysperf.engineflow.EngineFlowPerfBaseliner
```
Run the baseliner with an explicit include regex and a JMH results file:
```bash
mvn -pl nb-engine/nb-engine-core -am -DskipTests test-compile \
&& mvn -pl nb-engine/nb-engine-core -DskipTests exec:java \
-Dexec.mainClass=io.nosqlbench.engine.api.activityapi.sysperf.engineflow.EngineFlowPerfBaseliner \
-Dexec.args='\".*engineflow\\\\..*Bench.*\" /tmp/jmh_engineflow.json'
```
List available benchmarks (JMH `-l`):
```bash
mvn -pl nb-engine/nb-engine-core -am -DskipTests test-compile \
&& mvn -pl nb-engine/nb-engine-core -DskipTests exec:java \
-Dexec.mainClass=org.openjdk.jmh.Main -Dexec.args='-l'
```
Run only the engine-flow benchmarks (JMH include regex):
```bash
mvn -pl nb-engine/nb-engine-core -am -DskipTests test-compile \
&& mvn -pl nb-engine/nb-engine-core -DskipTests exec:java \
-Dexec.mainClass=org.openjdk.jmh.Main \
-Dexec.args='-wi 2 -i 3 -f 1 \".*(engineflow\\\\..*Bench|StrideContextJmhBench).*\"'
```
Offline variants: add `-o` to both Maven invocations (requires the needed plugin/deps to already be present in your local repo).
+44
View File
@@ -31,6 +31,8 @@
<project.testlevel>INFO</project.testlevel>
<!-- Set this level to override the logging level for tests logging configuration during build -->
<project.test_logstatuslevel>ERROR</project.test_logstatuslevel>
<!-- JUnit tag expression for selective runs -->
<nb.junit.tags>unit</nb.junit.tags>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<javadoc.name>nosqlbench ${revision}</javadoc.name>
@@ -567,7 +569,9 @@
</Log4jContextSelector>
</systemPropertyVariables>
<parallel>methods</parallel>
<groups>${nb.junit.tags}</groups>
<excludes>
<exclude>**/jmh_generated/**</exclude>
<exclude>**/*Integrated*Test*.java</exclude>
<exclude>**/*IntegrationTest.java</exclude>
<exclude>**/*IntegrationTests.java</exclude>
@@ -1006,5 +1010,45 @@
</build>
</profile>
<profile>
<id>accuracy</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<nb.junit.tags>accuracy</nb.junit.tags>
</properties>
</profile>
<profile>
<id>performance</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<nb.junit.tags>performance</nb.junit.tags>
</properties>
</profile>
<profile>
<id>microbench</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<nb.junit.tags>microbench</nb.junit.tags>
</properties>
</profile>
<profile>
<id>alltests</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<nb.junit.tags>unit | accuracy | performance | microbench</nb.junit.tags>
</properties>
</profile>
</profiles>
</project>
@@ -20,6 +20,7 @@ import io.nosqlbench.cqlgen.core.CGWorkloadExporter;
import io.nosqlbench.cqlgen.parser.CqlModelParser;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.io.File;
import java.io.IOException;
@@ -27,6 +28,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Objects;
@Tag("unit")
public class CqlParserHarnessTest {
private final static String ksddl = """
@@ -20,6 +20,7 @@ import io.nosqlbench.nb.api.labels.NBLabeledElement;
import io.nosqlbench.nb.api.labels.NBLabels;
import io.nosqlbench.cqlgen.core.CGElementNamer;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
@@ -27,6 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@Tag("unit")
public class CGElementNamerTest {
@Test
@@ -18,9 +18,11 @@ package io.nosqlbench.converters.cql.exporters;
import io.nosqlbench.cqlgen.core.CGColumnRebinder;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class CGWorkloadExporterTest {
@Test
@@ -18,11 +18,13 @@ package io.nosqlbench.converters.cql.exporters;
import io.nosqlbench.cqlgen.binders.NamingFolio;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class NamingFolioTest {
@Test
@@ -17,12 +17,14 @@
package io.nosqlbench.cqlgen.exporter.transformers;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class CGRegexReplacerTest {
@Test
@@ -20,12 +20,14 @@ import com.datastax.oss.driver.api.core.data.CqlDuration;
import io.nosqlbench.datamappers.functions.long_to_cqlduration.CqlDurationFunctions;
import io.nosqlbench.datamappers.functions.long_to_cqlduration.ToCqlDurationNanos;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.function.LongToIntFunction;
import java.util.function.LongUnaryOperator;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class CqlDurationTests {
@Test
@@ -19,12 +19,14 @@ package io.nosqlbench.datamappers.functions.geometry;
import com.datastax.oss.driver.api.core.data.CqlVector;
import org.assertj.core.data.Offset;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.ArrayList;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class NormalizeCqlVectorTest {
@Test
@@ -18,6 +18,7 @@ package io.nosqlbench.datamappers.functions.long_localdate;
import org.joda.time.DateTime;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.time.Instant;
import java.time.LocalDate;
@@ -25,6 +26,7 @@ import java.time.ZoneId;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class EpochMillisToJavaLocalDateTest {
@Test
@@ -19,9 +19,11 @@ package io.nosqlbench.datamappers.functions.to_cqlvector;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_collection.ListSizedStepped;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_float.HashRange;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class CqlVectorTest {
@Test
@@ -19,11 +19,13 @@ package io.nosqlbench.datamappers.functions.to_cqlvector;
import com.datastax.oss.driver.api.core.data.CqlVector;
import io.nosqlbench.datamappers.functions.to_cqlvector.from_number_list.ToCqlVector;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class ToCqlVectorTest {
@@ -17,6 +17,7 @@
package io.nosqlbench.datamappers.functions.to_daterange;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.function.Function;
import java.util.function.LongFunction;
@@ -24,6 +25,7 @@ import java.util.function.LongUnaryOperator;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class DateRangeFuncTest {
@Test
@@ -22,11 +22,13 @@ import io.nosqlbench.nb.api.labels.NBLabeledElement;
import io.nosqlbench.nb.api.components.core.NBComponent;
import org.assertj.core.data.Offset;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class DiagTask_gaugeTest {
private NBComponent parent = new TestComponent("DiagTask_gaugeTest","DiagTask_gauge");
@@ -31,12 +31,14 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class HttpOpMapperTest {
private static final Logger logger = LogManager.getLogger(HttpOpMapperTest.class);
@@ -18,11 +18,13 @@ package io.nosqlbench.adapter.http.cmds;
import io.nosqlbench.adapter.http.core.HttpFormatParser;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class HttpFormatParserTest {
@Test
@@ -19,9 +19,11 @@ package io.nosqlbench.adapter.http.statuscodes;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class HttpStatusCodesTest {
private final static Logger logger = LogManager.getLogger(HttpStatusCodesTest.class);
@@ -17,12 +17,14 @@
package io.nosqlbench.adapter.milvus;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
@Tag("unit")
class MilvusAdapterUtilsTest {
@Test
@@ -23,10 +23,12 @@ import io.nosqlbench.nb.api.components.core.NBBaseComponent;
import io.pinecone.proto.QueryResponse;
import io.pinecone.proto.ScoredVector;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.HashMap;
import java.util.Map;
@Tag("unit")
public class PineconeScriptingUtilsTest {
@@ -17,11 +17,13 @@
package io.nosqlbench.adapter.stdout;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class TemplateFormatTest {
@Test
@@ -17,12 +17,14 @@
package io.nosqlbench.adapters.api.activityconfig;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.HashMap;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class MultiMapLookupTest {
@Test
@@ -21,6 +21,7 @@ import io.nosqlbench.adapters.api.activityconfig.yaml.OpTemplateFormat;
import io.nosqlbench.adapters.api.activityconfig.yaml.OpsDoc;
import io.nosqlbench.adapters.api.activityconfig.yaml.OpsDocList;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.HashMap;
import java.util.List;
@@ -28,6 +29,7 @@ import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class OpsLoaderTest {
@Test
@@ -21,9 +21,11 @@ import io.nosqlbench.virtdata.core.bindings.VirtData;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class BindingEscapingTest {
private final static Logger logger = LogManager.getLogger(BindingEscapingTest.class);
@@ -25,12 +25,14 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class OpDefTest {
private final static Logger logger = LogManager.getLogger(OpDefTest.class);
@@ -25,12 +25,14 @@ import org.junit.jupiter.api.BeforeAll;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class OpEscapingTest {
private final static Logger logger = LogManager.getLogger(OpEscapingTest.class);
@@ -19,11 +19,13 @@ package io.nosqlbench.adapters.api.activityconfig.rawyaml;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class OpVariationTests {
private final static Logger logger = LogManager.getLogger(OpVariationTests.class);
@@ -20,12 +20,14 @@ import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class RawYamlTemplateLoaderTest {
private final static Logger logger = LogManager.getLogger(RawYamlTemplateLoaderTest.class);
@@ -21,9 +21,11 @@ import io.nosqlbench.nb.spectest.core.SpecTest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static io.nosqlbench.nb.spectest.traversal.STPredicateVerbs.*;
@Tag("unit")
public class UniformWorkloadSpecificationTest {
private final static Logger logger = LogManager.getLogger(UniformWorkloadSpecificationTest.class);
@@ -20,12 +20,14 @@ import io.nosqlbench.adapters.api.activityconfig.OpsLoader;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class OpDetailOverrideTest {
private static final Logger logger = LogManager.getLogger(OpDetailOverrideTest.class);
@@ -24,6 +24,7 @@ import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.LinkedHashMap;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class OpsDocListTest {
private static final Logger logger = LogManager.getLogger(OpsDocListTest.class);
@@ -22,11 +22,13 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class ParsedWorkloadTemplateTest {
private static final Logger logger = LogManager.getLogger(ParsedWorkloadTemplateTest.class);
private static OpsDocList doclist;
@@ -19,6 +19,7 @@ package io.nosqlbench.adapters.api.activityimpl.uniform;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Arrays;
import java.util.Iterator;
@@ -31,6 +32,7 @@ import java.util.stream.StreamSupport;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@Tag("unit")
public class ConcurrentIndexCacheTest {
@Test
@@ -19,12 +19,14 @@ package io.nosqlbench.adapters.api.evalcontext;
import io.nosqlbench.adapters.api.evalctx.CompoundCycleFunction;
import io.nosqlbench.adapters.api.evalctx.GroovyCycleFunction;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class CompoundCycleFunctionTest {
private final GroovyCycleFunction<Boolean> truthy = new GroovyCycleFunction<>("truthy", "true;", Map.of(), List.of(), List.of(),null);
@@ -21,6 +21,7 @@ import io.nosqlbench.adapters.api.evalctx.GroovyBooleanCycleFunction;
import io.nosqlbench.adapters.api.evalctx.GroovyCycleFunction;
import io.nosqlbench.virtdata.core.templates.ParsedTemplateString;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
@@ -28,6 +29,7 @@ import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@Tag("unit")
public class GroovyBooleanCycleFunctionTest {
@Test
@@ -18,6 +18,7 @@ package io.nosqlbench.adapters.api.metrics;
import io.nosqlbench.adapters.api.metrics.EndToEndMetricsAdapterUtil.MSG_SEQ_ERROR_SIMU_TYPE;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Arrays;
import java.util.Collections;
@@ -27,6 +28,7 @@ import java.util.Set;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
@Tag("unit")
class MessageSequenceNumberSendingHandlerTest {
MessageSequenceNumberSendingHandler sequenceNumberSendingHandler = new MessageSequenceNumberSendingHandler();
@@ -18,11 +18,13 @@ package io.nosqlbench.adapters.api.metrics;
import com.codahale.metrics.Counter;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
@Tag("unit")
class ReceivedMessageSequenceTrackerTest {
Counter msgErrOutOfSeqCounter = new Counter();
Counter msgErrDuplicateCounter = new Counter();
@@ -19,11 +19,13 @@ package io.nosqlbench.adapters.api.scheduling;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.time.Duration;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class TimeoutPredicateTest {
private final static Logger logger = LogManager.getLogger(TimeoutPredicateTest.class);
@@ -27,6 +27,7 @@ import io.nosqlbench.nb.api.config.standard.NBConfiguration;
import io.nosqlbench.nb.api.config.standard.Param;
import io.nosqlbench.nb.api.components.core.NBComponent;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
@@ -34,6 +35,7 @@ import java.util.function.LongFunction;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class ParsedOpTest {
private NBComponent getParent() {
@@ -21,6 +21,7 @@ import groovy.lang.Binding;
import groovy.lang.GroovyShell;
import org.codehaus.groovy.control.CompilerConfiguration;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
@@ -29,6 +30,7 @@ import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests for annotated library functions in Groovy scripts.
*/
@Tag("unit")
public class AnnotatedLibraryTest {
@Test
@@ -19,6 +19,7 @@ package io.nosqlbench.nb.api.expr;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
@@ -28,6 +29,7 @@ import static org.junit.jupiter.api.Assertions.*;
* Tests for bundled Groovy libraries in src/main/resources/lib/groovy/.
* These libraries should be automatically loaded and available in expressions.
*/
@Tag("unit")
class BundledLibrariesTest {
private GroovyExpressionProcessor processor;
@@ -20,6 +20,7 @@ package io.nosqlbench.nb.api.expr;
import groovy.lang.Binding;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.net.URI;
import java.util.List;
@@ -30,6 +31,7 @@ import static org.junit.jupiter.api.Assertions.*;
/**
* Tests for ContextFormatter functionality.
*/
@Tag("unit")
class ContextFormatterTest {
private static final int MAX_LINES_BEFORE_ABBREVIATION = 10;
@@ -19,6 +19,7 @@ package io.nosqlbench.nb.api.expr;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.net.URI;
import java.util.Map;
@@ -29,6 +30,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
* Tests verifying that variables can be accessed directly in Groovy expressions
* without requiring special prefixes or reference syntax.
*/
@Tag("unit")
class DirectVariableAccessTest {
private final GroovyExpressionProcessor processor = new GroovyExpressionProcessor();
@@ -21,6 +21,7 @@ package io.nosqlbench.nb.api.expr;
import io.nosqlbench.nb.annotations.Service;
import io.nosqlbench.nb.api.expr.annotations.ExprFunctionSpec;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.net.URI;
import java.util.List;
@@ -32,6 +33,7 @@ import static org.junit.jupiter.api.Assertions.*;
* Test function shadowing behavior and provider ordering.
* When multiple providers define the same function, the last one wins (with a warning).
*/
@Tag("unit")
class DuplicateFunctionDetectionTest {
/**
@@ -19,6 +19,7 @@ package io.nosqlbench.nb.api.expr;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.net.URI;
import java.util.Map;
@@ -32,6 +33,7 @@ import static org.junit.jupiter.api.Assertions.*;
* - The line within the Groovy script that caused the error
* - Visual indicators pointing to the error location
*/
@Tag("unit")
class EnhancedErrorReportingTest {
private final GroovyExpressionProcessor processor = new GroovyExpressionProcessor();
@@ -19,6 +19,7 @@ package io.nosqlbench.nb.api.expr;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
@@ -28,6 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Tests demonstrating execution of Groovy block statements within expression syntax.
*/
@Tag("unit")
class GroovyBlockStatementsTest {
private final GroovyExpressionProcessor processor = new GroovyExpressionProcessor();
@@ -23,6 +23,7 @@ import io.nosqlbench.nb.api.expr.annotations.ExprFunctionSpec;
import io.nosqlbench.nb.api.expr.ExprFunctionParamsAware;
import org.codehaus.groovy.control.CompilerConfiguration;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.net.URI;
import java.util.List;
@@ -33,6 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
@Tag("unit")
class GroovyExpressionProcessorTest {
private final GroovyExpressionProcessor processor = new GroovyExpressionProcessor();
@@ -19,6 +19,7 @@ package io.nosqlbench.nb.api.expr;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.api.Tag;
import java.io.File;
import java.io.IOException;
@@ -35,6 +36,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
* Verifies that Groovy scripts marked with @Library are automatically loaded
* and their functions become available in expressions.
*/
@Tag("unit")
class GroovyLibraryAutoLoaderTest {
@Test
@@ -19,6 +19,7 @@ package io.nosqlbench.nb.api.expr;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.io.IOException;
import java.net.URI;
@@ -36,6 +37,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
* This ensures that variables, functions, and state set in one expression are accessible in
* subsequent expressions within the same workload processing session.
*/
@Tag("unit")
class SharedContextWorkloadTest {
private final GroovyExpressionProcessor processor = new GroovyExpressionProcessor();
@@ -21,6 +21,7 @@ import groovy.lang.Binding;
import org.codehaus.groovy.control.CompilerConfiguration;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.api.Tag;
import java.io.IOException;
import java.nio.file.Files;
@@ -32,6 +33,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
/**
* Simple unit tests for Groovy library loading functionality.
*/
@Tag("unit")
class SimpleLibraryLoadingTest {
@Test
@@ -17,6 +17,7 @@
package io.nosqlbench.nb.api.expr;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -24,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Unit tests for {@link TemplateRewriter}, verifying TEMPLATE syntax rewriting to expr function calls.
*/
@Tag("unit")
class TemplateRewriterTest {
// ==================== TEMPLATE Function Syntax Tests ====================
@@ -18,6 +18,7 @@
package io.nosqlbench.nb.api.expr;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import org.snakeyaml.engine.v2.api.Load;
import org.snakeyaml.engine.v2.api.LoadSettings;
@@ -34,6 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
* string formats (pipe literal, quoted strings, folded scalar) without breaking
* YAML parsing.
*/
@Tag("unit")
class YamlSafeExpressionsTest {
private final GroovyExpressionProcessor processor = new GroovyExpressionProcessor();
@@ -24,6 +24,7 @@ import io.nosqlbench.nb.api.expr.ExprFunctionAnnotations;
import io.nosqlbench.nb.api.expr.TestExprRuntimeContext;
import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.net.URI;
import java.time.Instant;
@@ -38,6 +39,7 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
@Tag("unit")
class CoreExprFunctionsProviderTest {
@Test
@@ -20,6 +20,7 @@ package io.nosqlbench.nb.api.expr.providers;
import io.nosqlbench.nb.api.expr.ExprFunctionProvider;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.HashSet;
import java.util.ServiceLoader;
@@ -27,6 +28,7 @@ import java.util.Set;
import static org.junit.jupiter.api.Assertions.assertTrue;
@Tag("unit")
class ExprFunctionProviderServiceLoadingTest {
@Test
@@ -24,6 +24,7 @@ import io.nosqlbench.nb.api.expr.ExprFunctionMetadata;
import io.nosqlbench.nb.api.expr.TestExprRuntimeContext;
import io.nosqlbench.nb.api.expr.TemplateContext;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.net.URI;
import java.util.HashMap;
@@ -36,6 +37,7 @@ import static org.junit.jupiter.api.Assertions.*;
* Comprehensive test suite for UnifiedParameterProvider that validates all canonical
* test requirements from both ParameterExprFunctionsProvider and TemplateExprFunctionsProvider.
*/
@Tag("unit")
class UnifiedParameterProviderTest {
// ============================================================
@@ -18,12 +18,14 @@ package io.nosqlbench.engine.api.activityimpl.motor;
import io.nosqlbench.nb.api.config.params.ParamsParser;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
@Tag("unit")
public class ParamsParserTest {
@Test
@@ -22,6 +22,7 @@ import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.PutObjectResult;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.io.BufferedReader;
import java.io.InputStream;
@@ -30,6 +31,7 @@ import java.net.URL;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class S3UrlStreamHandlerTest {
public static String bucketName = "nb-extension-test";
@@ -20,9 +20,11 @@ import com.amazonaws.services.s3.transfer.MultipleFileUpload;
import io.nosqlbench.nb.addins.s3.s3urlhandler.S3UrlStreamHandlerTest;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.nio.file.Path;
@Tag("unit")
public class S3UploaderTest {
@Disabled
@@ -18,12 +18,14 @@ package io.nosqlbench.nb.api;
import io.nosqlbench.nb.api.system.NBEnvironment;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class NBEnvironmentTest {
@Test
@@ -20,9 +20,11 @@ import io.nosqlbench.nb.api.metadata.SystemId;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class SystemIdTest {
private static final Logger logger = LogManager.getLogger(SystemIdTest.class);
@@ -18,9 +18,11 @@ package io.nosqlbench.nb.api.annotations;
import io.nosqlbench.nb.api.labels.NBLabeledElement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class AnnotationBuilderTest {
private static final long time = 1600000000000L;
@@ -24,7 +24,9 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
@Tag("unit")
class AttachedMetricsSummaryReporterTest {
private final Logger logger = LogManager.getLogger(AttachedMetricsSummaryReporterTest.class);
@@ -21,9 +21,11 @@ package io.nosqlbench.nb.api.components.core;
import io.nosqlbench.nb.api.advisor.NBAdvisorPoint;
import io.nosqlbench.nb.api.advisor.conditions.Conditions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class NBAdvisorPointTest {
@Test
@@ -22,11 +22,13 @@ import io.nosqlbench.nb.api.engine.metrics.instruments.NBBaseMetric;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetric;
import io.nosqlbench.nb.api.labels.NBLabels;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
class NBBaseComponentMetricsTest {
@Test
@@ -22,6 +22,8 @@ import io.nosqlbench.nb.api.components.core.NBComponent;
import io.nosqlbench.nb.api.components.core.NBComponentFormats;
import io.nosqlbench.nb.api.config.standard.TestComponent;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
@Tag("unit")
public class NBComponentFormatsTest {
@Test
@@ -20,7 +20,9 @@ import io.nosqlbench.nb.api.config.standard.TestComponent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
@Tag("unit")
class NBComponentLifecycleTest {
private final static Logger logger = LogManager.getLogger(NBComponentLifecycleTest.class);
@@ -20,7 +20,9 @@ import io.nosqlbench.nb.api.config.standard.TestComponent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
@Tag("unit")
class NBComponentScaffoldingTest {
private final static Logger logger = LogManager.getLogger(NBComponentScaffoldingTest.class);
@@ -22,6 +22,7 @@ import io.nosqlbench.nb.api.engine.metrics.instruments.NBFunctionGauge;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetric;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricTimer;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -29,6 +30,7 @@ import java.util.function.Predicate;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
class NBComponentServicesTest {
@Test
@@ -20,12 +20,14 @@ import io.nosqlbench.nb.api.components.core.NBComponent;
import io.nosqlbench.nb.api.components.core.NBComponentTraversal;
import io.nosqlbench.nb.api.config.standard.TestComponent;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.ArrayList;
import java.util.Iterator;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class NBComponentTraversalTest {
/**
@@ -22,12 +22,14 @@ import io.nosqlbench.nb.api.engine.metrics.instruments.NBBaseMetric;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetric;
import io.nosqlbench.nb.api.labels.NBLabels;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@Tag("unit")
class NBMetricsQueryTest {
private final static TestComponent root = new TestComponent("root","root","type","rootelement");
private final static TestComponent root_c2 = new TestComponent(root,"c2","c2");
@@ -18,6 +18,7 @@ package io.nosqlbench.nb.api.config;
import io.nosqlbench.nb.api.config.standard.ConfigLoader;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
@@ -25,6 +26,7 @@ import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class ConfigLoaderTest {
@Test
@@ -21,12 +21,14 @@ import io.nosqlbench.nb.api.config.standard.NBConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
import io.nosqlbench.nb.api.config.standard.Param;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class ConfigModelTest {
@Test
@@ -18,6 +18,7 @@ package io.nosqlbench.nb.api.config.params;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Date;
import java.util.List;
@@ -25,6 +26,7 @@ import java.util.Map;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
@Tag("unit")
public class NBParamsTest {
@Test
@@ -17,9 +17,11 @@
package io.nosqlbench.nb.api.config.standard;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class ConfigElementTest {
@Test
@@ -17,11 +17,13 @@
package io.nosqlbench.nb.api.config.standard;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class NBConfigSplitterTest {
@Test
@@ -20,11 +20,13 @@ import org.apache.commons.lang3.ClassUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.math.BigDecimal;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class NBTypeConverterTest {
public final static Logger logger = LogManager.getLogger(NBTypeConverterTest.class);
@@ -18,9 +18,11 @@ package io.nosqlbench.nb.api.config.standard;
import io.nosqlbench.nb.api.components.core.NBComponent;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
class TestComponentViewTest {
@Test
@@ -17,10 +17,12 @@
package io.nosqlbench.nb.api.engine.activityimpl;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;
@Tag("unit")
public class CyclesSpecTest {
@Test
@@ -30,6 +30,7 @@ import io.nosqlbench.nb.api.engine.metrics.reporters.PromExpositionFormat;
import io.nosqlbench.nb.api.engine.metrics.reporters.SqliteSnapshotReporter;
import io.nosqlbench.nb.api.engine.metrics.view.MetricsView;
import io.nosqlbench.nb.api.labels.NBLabels;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -52,6 +53,8 @@ import java.util.regex.Pattern;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("accuracy")
@Tag("metrics")
public class MetricsReporterIntegrationTest {
static {
@@ -29,6 +29,7 @@ import io.nosqlbench.nb.api.labels.NBLabels;
import org.HdrHistogram.EncodableHistogram;
import org.HdrHistogram.Histogram;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
@@ -37,6 +38,8 @@ import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@Tag("accuracy")
@Tag("metrics")
public class MetricsSnapshotSchedulerTest {
private final NBComponent root = new NBBaseComponent(null);
@@ -25,6 +25,7 @@ import io.nosqlbench.nb.api.engine.metrics.instruments.MetricCategory;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricHistogram;
import io.nosqlbench.nb.api.engine.metrics.view.MetricsView;
import io.nosqlbench.nb.api.labels.NBLabels;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -35,6 +36,8 @@ import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
@Tag("accuracy")
@Tag("metrics")
public class CsvReporterHistogramFormattingTest {
@Test
@@ -21,10 +21,13 @@ package io.nosqlbench.nb.api.engine.metrics.reporters;
import io.nosqlbench.nb.api.engine.metrics.instruments.MetricCategory;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricCounter;
import io.nosqlbench.nb.api.labels.NBLabels;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("accuracy")
@Tag("metrics")
class MetricInstanceFilterTest {
private NBMetricCounter counterWith(String name, String activity) {
@@ -21,6 +21,7 @@ import io.nosqlbench.nb.api.engine.metrics.instruments.*;
import io.nosqlbench.nb.api.engine.metrics.reporters.PromExpositionFormat;
import io.nosqlbench.nb.api.labels.NBLabels;
import io.nosqlbench.nb.api.engine.metrics.DeltaHdrHistogramReservoir;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import java.time.Clock;
@@ -31,6 +32,8 @@ import java.util.concurrent.TimeUnit;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("accuracy")
@Tag("metrics")
public class PromExpositionFormatTest {
private final Clock nowclock = Clock.fixed(Instant.now(), ZoneId.systemDefault());
@@ -19,6 +19,7 @@ package io.nosqlbench.nb.api.engine.metrics.reporters;
import io.nosqlbench.nb.api.labels.NBLabels;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -37,6 +38,8 @@ import static org.junit.jupiter.api.Assertions.*;
* Tests for session metadata storage in SqliteSnapshotReporter.
* Verifies that metadata can be stored and retrieved correctly from the label_metadata table.
*/
@Tag("accuracy")
@Tag("metrics")
class SessionMetadataTest {
@TempDir
@@ -26,6 +26,7 @@ import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricHistogram;
import io.nosqlbench.nb.api.labels.NBLabels;
import org.HdrHistogram.EncodableHistogram;
import org.HdrHistogram.Histogram;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import java.time.Instant;
@@ -33,6 +34,8 @@ import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("accuracy")
@Tag("statistics")
public class MetricsViewTest {
private NBLabels labels(String name) {
@@ -19,9 +19,11 @@ package io.nosqlbench.nb.api.filtering;
import io.nosqlbench.nb.api.filtering.FilteringSieve;
import io.nosqlbench.nb.api.filtering.TristateFilter;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
class FilteringSieveTest {
@Test
public void testStringFilteringSieve() {
@@ -18,12 +18,14 @@ package io.nosqlbench.nb.api.labels;
import io.nosqlbench.nb.api.labels.MapLabels;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@Tag("unit")
public class MapLabelsTest {
@Test
@@ -18,9 +18,11 @@ package io.nosqlbench.nb.api.labels;
import io.nosqlbench.nb.api.labels.NBLabels;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class NBLabeledElementTest {
@Test
@@ -19,9 +19,11 @@ package io.nosqlbench.nb.api.labels;
import io.nosqlbench.nb.api.labels.NBLabels;
import io.nosqlbench.nb.api.labels.NBLabelsFilter;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
class NBLabelsFilterTest {
@Test
@@ -18,9 +18,11 @@ package io.nosqlbench.nb.api.labels;
import io.nosqlbench.nb.api.labels.NBLabels;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
class NBLabelsRenderingTest {
@Test
@@ -19,10 +19,12 @@ package io.nosqlbench.nb.api.labels;
import io.nosqlbench.nb.api.labels.NBLabels;
import io.nosqlbench.nb.api.labels.NBLabelsValidator;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
@Tag("unit")
class NBLabelsValidatorTest {
@Test
@@ -20,6 +20,7 @@ import io.nosqlbench.nb.api.nbio.PathContent;
import io.nosqlbench.nb.api.markdown.types.MarkdownInfo;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.net.URL;
import java.nio.file.*;
@@ -29,6 +30,7 @@ import java.util.stream.Stream;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class MarkdownDocsTest {
@Test
@@ -19,6 +19,7 @@ package io.nosqlbench.nb.api.nbio;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.io.File;
import java.io.IOException;
@@ -33,6 +34,7 @@ import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class NBIOTest {
private final static Logger logger = LogManager.getLogger(NBIOTest.class);
@@ -21,6 +21,7 @@ import io.nosqlbench.nb.api.nbio.ResolverForClasspath;
import io.nosqlbench.nb.api.nbio.ResolverForFilesystem;
import io.nosqlbench.nb.api.nbio.ResolverForURL;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.net.URL;
import java.nio.file.Path;
@@ -28,6 +29,7 @@ import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class ResolverForURLTest {
@Test
@@ -18,9 +18,11 @@ package io.nosqlbench.nb.api.stats;
import org.assertj.core.data.Offset;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
class StatBucketTest {
@Test
public void testStreamingMean() {
@@ -20,12 +20,14 @@ import io.nosqlbench.nb.api.engine.util.Tagged;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.util.HashMap;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class TagFilterTest {
private final static Logger logger = LogManager.getLogger(TagFilterTest.class);
@@ -17,9 +17,11 @@
package io.nosqlbench.nb.api.testutils;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class BoundsTest {
@Test
@@ -19,9 +19,11 @@ package io.nosqlbench.nb.api.testutils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("unit")
public class PerfTest {
private final static Logger logger = LogManager.getLogger(PerfTest.class);
@@ -33,6 +33,7 @@ import static org.junit.jupiter.api.Assertions.*;
*/
@ExtendWith(ThreadLeakDetectorExtension.class)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@Tag("unit")
public class ThreadLeakDetectorExtensionTest {
/**
@@ -32,6 +32,7 @@ import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
@Tag("mql")
@Tag("unit")
class AggregateCommandTest {
@Test
Loaded 100 of 385 files, more files were not shown because too many files have changed in this diff. Show more