From 49279d21df938a65f9cfc1b136f0e952c9803de6 Mon Sep 17 00:00:00 2001 From: Chua Chee Seng Date: Thu, 8 Jun 2023 21:37:33 +0800 Subject: [PATCH] Added -S argument support for generator seed. --- .../tools/maven/AbstractScalaTestMojo.java | 22 +++++++++++++++++++ .../scalatest/tools/maven/PluginTest.scala | 7 ++++++ 2 files changed, 29 insertions(+) diff --git a/src/main/java/org/scalatest/tools/maven/AbstractScalaTestMojo.java b/src/main/java/org/scalatest/tools/maven/AbstractScalaTestMojo.java index a94e7fd..d9a4703 100644 --- a/src/main/java/org/scalatest/tools/maven/AbstractScalaTestMojo.java +++ b/src/main/java/org/scalatest/tools/maven/AbstractScalaTestMojo.java @@ -159,6 +159,12 @@ abstract class AbstractScalaTestMojo extends AbstractMojo { */ String jUnitClasses; + /** + * Set the seed used by generators of property-driven tests. + * @parameter property="seed" + */ + String seed; + /** * Option to specify the forking mode. Can be "never" or "once". "always", which would * fork for each test-class, may be supported later. @@ -467,6 +473,7 @@ List sharedConfiguration() { addAll(testsFiles()); addAll(junitClasses()); addAll(spanScaleFactor()); + addAll(seed()); }}); } @@ -667,4 +674,19 @@ private List testsFiles() { private List junitClasses() { return suiteArg("-j", jUnitClasses); } + + private List seed() { + List list = new ArrayList(); + if (seed != null) { + try { + Long.parseLong(seed); + list.add("-S"); + list.add(seed); + } + catch (NumberFormatException e) { + throw new RuntimeException("Invalid seed value: " + seed); + } + } + return unmodifiableList(list); + } } diff --git a/src/test/scala/org/scalatest/tools/maven/PluginTest.scala b/src/test/scala/org/scalatest/tools/maven/PluginTest.scala index d06ebce..100429e 100644 --- a/src/test/scala/org/scalatest/tools/maven/PluginTest.scala +++ b/src/test/scala/org/scalatest/tools/maven/PluginTest.scala @@ -235,6 +235,12 @@ final class PluginTest configure(_.memoryFiles = comma("a", "b", "c")) should containSuiteArgs("-M", "a", "b", "c") } + def testSeed { + configure { m => + m.seed = "1234567890" + } should containSlice("-S", "1234567890") + } + def testTestsFiles { configure(_.testsFiles = comma("nonesuch", "pom.xml", "src")) should containSuiteArgs("-A", "pom.xml", "src") } @@ -266,4 +272,5 @@ final class PluginTest MojoUtils.stripNewLines("-XmsXg\r\n-XmxYg -XX:MaxPermSize=Zm") should be("-XmsXg -XmxYg -XX:MaxPermSize=Zm") MojoUtils.stripNewLines("-XmsXg\r\n-XmxYg") should be("-XmsXg -XmxYg") } + }