Merge branch 'main' into snyk-upgrade-a750eb432b0b4fa59ec0aa108a15792d

This commit is contained in:
Jonathan Shook 2024-10-02 15:28:40 -05:00 committed by GitHub
commit 05e45b5579
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 0 deletions

View File

@ -16,8 +16,10 @@
package io.nosqlbench.engine.core.lifecycle.session;
import io.nosqlbench.adapter.diag.DriverAdapterLoader;
import io.nosqlbench.engine.cmdstream.Cmd;
import io.nosqlbench.engine.cmdstream.CmdArg;
import io.nosqlbench.nb.annotations.ServiceSelector;
import io.nosqlbench.nb.api.errors.BasicError;
import java.util.*;
@ -75,6 +77,14 @@ public class CmdParser {
if (params.containsKey(param.name())) {
throw new BasicError("Duplicate occurrence of option: " + param.name());
}
if (Objects.equals(param.name(), "driver")) {
String driverName = param.value();
Optional<? extends DriverAdapterLoader> driverAdapter =
ServiceSelector.of(driverName, ServiceLoader.load(DriverAdapterLoader.class)).get();
if (driverAdapter.isEmpty()) {
throw new BasicError("Unable to load default driver adapter '" + driverName + '\'');
}
}
params.put(param.name(),CmdArg.of(cmd.name(),param.name(),param.op(),param.value()));
}
cmds.add(new Cmd(cmd.name(),params));

View File

@ -106,4 +106,11 @@ class CmdParserTest {
.withMessageContaining("Duplicate occurrence of option: threads");
}
@Test
public void testNonExistentDriverThrowsError() {
assertThatExceptionOfType(BasicError.class)
.isThrownBy(() -> CmdParser.parseArgvCommands(new LinkedList<>(List.of("run", "driver=nonexistant"))))
.withMessageContaining("Unable to load default driver adapter 'nonexistant'");
}
}