mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2026-07-30 08:07:55 -05:00
fully port template var fixes from 4.17 branch
This commit is contained in:
+45
@@ -0,0 +1,45 @@
|
||||
package io.nosqlbench.engine.cli;
|
||||
|
||||
import io.nosqlbench.engine.api.activityconfig.StatementsLoader;
|
||||
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
|
||||
import io.nosqlbench.engine.api.activityconfig.yaml.StmtsDocList;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class NBCLIScenarioParserTemplateVarTest {
|
||||
|
||||
@Test
|
||||
public void testMultipleOccurencesOfSameTemplateVar() {
|
||||
NBCLIOptions opts = new NBCLIOptions(new String[]{ "local/example-scenarios-templatevars" });
|
||||
List<Cmd> cmds = opts.getCommands();
|
||||
cmds.forEach(System.out::println);
|
||||
|
||||
StmtsDocList workload1 = StatementsLoader.loadPath(null, cmds.get(0).getArg("workload"),cmds.get(0).getParams());
|
||||
OpTemplate optpl1 = workload1.getStmts().get(0);
|
||||
System.out.println("op from cmd1:"+optpl1);
|
||||
assertThat(optpl1.getStmt()).contains("cycle {cycle} replaced replaced\n");
|
||||
|
||||
StmtsDocList workload2 = StatementsLoader.loadPath(null, cmds.get(1).getArg("workload"),cmds.get(1).getParams());
|
||||
OpTemplate optpl2 = workload2.getStmts().get(0);
|
||||
System.out.println("op from cmd2:"+optpl2);
|
||||
assertThat(optpl2.getStmt()).contains("cycle {cycle} def1 def1\n");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testThatCLIOverridesWorkForTemplateVars() {
|
||||
NBCLIOptions opts = new NBCLIOptions(new String[]{ "local/example-scenarios-templatevars", "tvar1=overridden" });
|
||||
List<Cmd> cmds = opts.getCommands();
|
||||
cmds.forEach(System.out::println);
|
||||
|
||||
StmtsDocList workload1 = StatementsLoader.loadPath(null, cmds.get(0).getArg("workload"),cmds.get(0).getParams());
|
||||
OpTemplate optpl1 = workload1.getStmts().get(0);
|
||||
System.out.println("op from cmd1:"+optpl1);
|
||||
assertThat(optpl1.getStmt()).contains("cycle {cycle} overridden overridden\n");
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -55,13 +55,13 @@ public class NBCLIScenarioParserTest {
|
||||
@Test
|
||||
public void testThatVerboseFinalParameterThrowsError() {
|
||||
assertThatExceptionOfType(BasicError.class)
|
||||
.isThrownBy(() -> new NBCLIOptions(new String[]{ "scenario-test", "yaml=canttouchthis"}));
|
||||
.isThrownBy(() -> new NBCLIOptions(new String[]{ "scenario-test", "yaml=canttouchthis"}));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testThatMissingScenarioNameThrowsError() {
|
||||
assertThatExceptionOfType(BasicError.class)
|
||||
.isThrownBy(() -> new NBCLIOptions(new String[]{ "scenario-test", "missing-scenario"}));
|
||||
.isThrownBy(() -> new NBCLIOptions(new String[]{ "scenario-test", "missing-scenario"}));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -82,14 +82,17 @@ public class NBCLIScenarioParserTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testThatTemplateParamsAreExpandedAndRemovedOverride() {
|
||||
public void testThatTemplateParamsAreExpandedAndNotRemovedOverride() {
|
||||
NBCLIOptions opts = new NBCLIOptions(new String[]{ "scenario-test", "template-test", "cycles-test=20"});
|
||||
List<Cmd> cmds = opts.getCommands();
|
||||
assertThat(cmds.size()).isEqualTo(1);
|
||||
assertThat(cmds.get(0).getArg("driver")).isEqualTo("stdout");
|
||||
assertThat(cmds.get(0).getArg("cycles")).isEqualTo("20");
|
||||
assertThat(cmds.get(0).getArg("cycles-test")).isNull();
|
||||
assertThat(cmds.get(0).getArg("workload")).isEqualTo("scenario-test");
|
||||
assertThat(cmds.get(0).getParams()).isEqualTo(Map.of(
|
||||
"alias","scenariotest_templatetest_withtemplate",
|
||||
"cycles","20",
|
||||
"cycles-test","20",
|
||||
"driver","stdout",
|
||||
"workload","scenario-test"
|
||||
));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -99,6 +102,7 @@ public class NBCLIScenarioParserTest {
|
||||
assertThat(cmds.size()).isEqualTo(1);
|
||||
assertThat(cmds.get(0).getParams()).isEqualTo(Map.of(
|
||||
"alias","scenariotest_schemaonly_000",
|
||||
"cycles-test","20",
|
||||
"driver","stdout",
|
||||
"tags","phase:schema",
|
||||
"workload","scenario-test"
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# example-scenarios.yaml
|
||||
scenarios:
|
||||
default:
|
||||
- run cycles=3 alias=A driver=stdout tvar1=replaced
|
||||
- run cycles=5 alias=B driver=stdout
|
||||
bindings:
|
||||
cycle: Identity()
|
||||
name: NumberNameToCycle()
|
||||
statements:
|
||||
- cycle: "cycle {cycle} TEMPLATE(tvar1,def1) TEMPLATE(tvar1)\n"
|
||||
Reference in New Issue
Block a user