diff --git testutils/ptest2/src/main/java/org/apache/hive/ptest/execution/PTest.java testutils/ptest2/src/main/java/org/apache/hive/ptest/execution/PTest.java index 1cdfdb309acd8282e593abd7ed10c87721926c60..cdc0c93f64cb90d572ec035b484b310e35e37410 100644 --- testutils/ptest2/src/main/java/org/apache/hive/ptest/execution/PTest.java +++ testutils/ptest2/src/main/java/org/apache/hive/ptest/execution/PTest.java @@ -273,9 +273,11 @@ public PTest build(TestConfiguration configuration, ExecutionContext executionCo private static final String ANT_TEST_TARGET = TestConfiguration.ANT_TEST_TARGET; /** * All args override properties file settings except - * for this one which is additive. + * for these ones which is additive. */ private static final String ANT_ARG = "D"; + private static final String MAVEN_TEST_ARGS = "mavenTestArg"; + private static final String MAVEN_BUILD_ARGS = "mavenBuildArg"; public static void main(String[] args) throws Exception { LOG.info("Args " + Arrays.toString(args)); @@ -291,6 +293,8 @@ public static void main(String[] args) throws Exception { options.addOption(null, JAVA_HOME_TEST, true, "Java Home for running tests (optional)"); options.addOption(null, ANT_TEST_ARGS, true, "Arguments to ant test on slave nodes only"); options.addOption(null, ANT_ENV_OPTS, true, "ANT_OPTS environment variable setting"); + options.addOption(null, MAVEN_BUILD_ARGS, true, "Java system property to set during maven build"); + options.addOption(null, MAVEN_TEST_ARGS, true, "Java system property to set during maven test execution"); CommandLine commandLine = parser.parse(options, args); if(!commandLine.hasOption(PROPERTIES)) { throw new IllegalArgumentException(Joiner.on(" "). @@ -353,6 +357,18 @@ public static void main(String[] args) throws Exception { antArgs += "-" + ANT_ARG + Joiner.on(" -" + ANT_ARG).join(supplementalAntArgs); conf.setAntArgs(antArgs); } + String[] mavenBuildArgs = commandLine.getOptionValues(MAVEN_BUILD_ARGS); + if(mavenBuildArgs != null && mavenBuildArgs.length > 0) { + for (String mavenBuildArg : mavenBuildArgs) { + conf.addMavenBuildArgs(mavenBuildArg); + } + } + String[] mavenTestArgs = commandLine.getOptionValues(MAVEN_TEST_ARGS); + if(mavenTestArgs != null && mavenTestArgs.length > 0) { + for (String mavenTestArg : mavenTestArgs) { + conf.addMavenTestArgs(mavenTestArg); + } + } ExecutionContextProvider executionContextProvider = null; ExecutionContext executionContext = null; int exitCode = 0; diff --git testutils/ptest2/src/main/java/org/apache/hive/ptest/execution/conf/TestConfiguration.java testutils/ptest2/src/main/java/org/apache/hive/ptest/execution/conf/TestConfiguration.java index e584f9c105fa134e3e267d6c6817d441b4c6b249..96a170d4ca4e0443ee53d0203a39bdbe3a8a6195 100644 --- testutils/ptest2/src/main/java/org/apache/hive/ptest/execution/conf/TestConfiguration.java +++ testutils/ptest2/src/main/java/org/apache/hive/ptest/execution/conf/TestConfiguration.java @@ -24,6 +24,7 @@ import java.io.InputStream; import java.util.Properties; +import com.google.common.base.Joiner; import org.slf4j.Logger; import com.google.common.annotations.VisibleForTesting; @@ -288,6 +289,15 @@ public void setMavenEnvOpts(String mavenEnvOpts) { this.mavenEnvOpts = Strings.nullToEmpty(mavenEnvOpts); } public void setAdditionalProfiles(String additionalProfiles) { this.additionalProfiles = additionalProfiles; } + public void addMavenBuildArgs(String newArgs) { + this.mavenBuildArgs = + Strings.nullToEmpty(Joiner.on(" ").skipNulls().join(this.mavenBuildArgs, "-D" + newArgs)); + } + + public void addMavenTestArgs(String newArgs) { + this.mavenTestArgs = + Strings.nullToEmpty(Joiner.on(" ").skipNulls().join(this.mavenTestArgs, "-D" + newArgs)); + } @Override public String toString() { return "TestConfiguration [antArgs=" + antArgs + ", antTestArgs="