Skip to content
This repository was archived by the owner on Jun 20, 2025. It is now read-only.

Commit b7ca6e4

Browse files
authored
Merge pull request #63 from scalecube/bug/issue-61/alias-pattern
Added alias validation according to pattern
2 parents 806bb58 + 21cea6f commit b7ca6e4

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

benchmarks-api/src/main/java/io/scalecube/benchmarks/BenchmarksSettings.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import java.util.HashMap;
1313
import java.util.Map;
1414
import java.util.concurrent.TimeUnit;
15+
import java.util.function.Predicate;
16+
import java.util.regex.Pattern;
1517

1618
public class BenchmarksSettings {
1719

@@ -25,6 +27,8 @@ public class BenchmarksSettings {
2527
private static final Duration RAMP_UP_DURATION = Duration.ofSeconds(10);
2628
private static final Duration RAMP_UP_INTERVAL = Duration.ofSeconds(1);
2729
private static final boolean CONSOLE_REPORTER_ENABLED = true;
30+
private static final String ALIAS_PATTERN = "^[.a-zA-Z_0-9]+$";
31+
private static final Predicate<String> ALIAS_PREDICATE = Pattern.compile(ALIAS_PATTERN).asPredicate();
2832

2933
private final int nThreads;
3034
private final Duration executionTaskDuration;
@@ -68,7 +72,13 @@ private BenchmarksSettings(Builder builder) {
6872

6973
String time = LocalDateTime.ofInstant(Instant.now(), ZoneOffset.UTC)
7074
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss"));
71-
this.csvReporterDirectory = Paths.get("reports", "benchmarks", find("alias", taskName), time).toFile();
75+
76+
String alias = find("alias", taskName);
77+
if (!ALIAS_PREDICATE.test(alias)) {
78+
throw new IllegalArgumentException("alias '" + alias + "' must match pattern " + ALIAS_PATTERN);
79+
}
80+
81+
this.csvReporterDirectory = Paths.get("reports", "benchmarks", alias, time).toFile();
7282
// noinspection ResultOfMethodCallIgnored
7383
this.csvReporterDirectory.mkdirs();
7484
}

0 commit comments

Comments
 (0)