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 696b790..7217ef9 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 @@ -33,6 +33,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import com.google.common.annotations.VisibleForTesting; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.GnuParser; @@ -80,6 +81,7 @@ private final String mBuildTag; private final SSHCommandExecutor mSshCommandExecutor; private final RSyncCommandExecutor mRsyncCommandExecutor; + private final ImmutableMap templateDefaults; public PTest(final TestConfiguration configuration, final ExecutionContext executionContext, final String buildTag, final File logDir, final LocalCommandFactory localCommandFactory, @@ -124,7 +126,10 @@ public PTest(final TestConfiguration configuration, final ExecutionContext execu put("mavenArgs", configuration.getMavenArgs()). put("mavenBuildArgs", configuration.getMavenBuildArgs()). put("mavenTestArgs", configuration.getMavenTestArgs()); - final ImmutableMap templateDefaults = templateDefaultsBuilder.build(); + if (!Strings.isNullOrEmpty(configuration.getAdditionalProfiles())) { + templateDefaultsBuilder.put("additionalProfiles", configuration.getAdditionalProfiles()); + } + templateDefaults = templateDefaultsBuilder.build(); TestParser testParser = new TestParser(configuration.getContext(), configuration.getTestCasePropertyName(), new File(mExecutionContext.getLocalWorkingDirectory(), configuration.getRepositoryName() + "-source"), logger); @@ -360,4 +365,9 @@ public static void main(String[] args) throws Exception { } System.exit(exitCode); } + + @VisibleForTesting + public Map getTemplateDefaults() { + return templateDefaults; + } } 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 71c513d..ac4bafb 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 @@ -50,6 +50,7 @@ private static final String MAVEN_ARGS = "mavenArgs"; private static final String MAVEN_BUILD_ARGS = "mavenBuildArgs"; private static final String MAVEN_TEST_ARGS = "mavenTestArgs"; + private static final String ADDITIONAL_PROFILES = "additionalProfiles"; private static final String ANT_ARGS = "antArgs"; private static final String JIRA_URL = "jiraUrl"; private static final String JIRA_USER = "jiraUser"; @@ -69,6 +70,7 @@ private String mavenBuildArgs; private String mavenTestArgs; private String mavenEnvOpts; + private String additionalProfiles; private String repositoryType; private String repository; private String repositoryName; @@ -114,6 +116,7 @@ public TestConfiguration(Context context, Logger logger) mavenBuildArgs = context.getString(MAVEN_BUILD_ARGS, "").trim(); mavenTestArgs = context.getString(MAVEN_TEST_ARGS, "").trim(); mavenEnvOpts = context.getString(MAVEN_ENV_OPTS, "").trim(); + additionalProfiles = context.getString(ADDITIONAL_PROFILES, "").trim(); javaHome = context.getString(JAVA_HOME, "").trim(); javaHomeForTests = context.getString(JAVA_HOME_TEST, "").trim(); patch = Strings.nullToEmpty(null); @@ -125,6 +128,7 @@ public TestConfiguration(Context context, Logger logger) logsURL = context.getString(LOGS_URL, "").trim(); testCasePropertyName = context.getString(TEST_CASE_PROPERTY_NAME, "testcase").trim(); sshOpts = context.getString(SSH_OPTS, "").trim(); + } public Context getContext() { return context; @@ -192,12 +196,11 @@ public String getMavenArgs() { public String getMavenBuildArgs() { return mavenBuildArgs; } - public String getMavenTestArgs() { - return mavenTestArgs; - } + public String getMavenTestArgs() { return mavenTestArgs; } public String getMavenEnvOpts() { return mavenEnvOpts; } + public String getAdditionalProfiles() { return additionalProfiles; } public String getJavaHome() { return javaHome; } @@ -249,6 +252,7 @@ public void setMavenTestArgs(String mavenTestArgs) { public void setMavenEnvOpts(String mavenEnvOpts) { this.mavenEnvOpts = Strings.nullToEmpty(mavenEnvOpts); } + public void setAdditionalProfiles(String additionalProfiles) { this.additionalProfiles = additionalProfiles; } @Override public String toString() { return "TestConfiguration [antArgs=" + antArgs + ", antTestArgs=" @@ -262,7 +266,7 @@ public String toString() { + jiraUrl + ", jiraUser=" + jiraUser + ", jiraPassword=" + jiraPassword + ", testCasePropertyName=" + testCasePropertyName + ", buildTool=" + buildTool + ", jiraName=" + jiraName + ", clearLibraryCache=" - + clearLibraryCache + "]"; + + clearLibraryCache + ", additionalProfiles=" + additionalProfiles + "]"; } public static TestConfiguration fromInputStream(InputStream inputStream, Logger logger) throws IOException { diff --git testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/conf/TestTestConfiguration.java testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/conf/TestTestConfiguration.java index 1e0efa0..144ae38 100644 --- testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/conf/TestTestConfiguration.java +++ testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/conf/TestTestConfiguration.java @@ -18,13 +18,24 @@ */ package org.apache.hive.ptest.execution.conf; +import java.io.File; +import java.util.HashSet; +import java.util.Map; import java.util.Properties; import java.util.Set; import junit.framework.Assert; +import org.apache.hive.ptest.execution.LocalCommandFactory; +import org.apache.hive.ptest.execution.PTest; +import org.apache.hive.ptest.execution.context.CloudExecutionContextProvider; import org.apache.hive.ptest.execution.context.ExecutionContext; +import org.apache.hive.ptest.execution.context.ExecutionContextProvider; +import org.apache.hive.ptest.execution.context.FixedExecutionContextProvider; +import org.apache.hive.ptest.execution.ssh.RSyncCommandExecutor; +import org.apache.hive.ptest.execution.ssh.SSHCommandExecutor; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,6 +45,7 @@ public class TestTestConfiguration { + public TemporaryFolder baseDir = new TemporaryFolder(); private static final Logger LOG = LoggerFactory .getLogger(TestTestConfiguration.class); @@ -55,6 +67,7 @@ public void testGettersSetters() throws Exception { Assert.assertEquals("trunk", conf.getBranch()); Assert.assertEquals("/tmp/hive-ptest-units/working/dir/working", executionContext.getLocalWorkingDirectory()); Assert.assertEquals("-Dtest.continue.on.failure=true -Dtest.silent=false", conf.getAntArgs()); + Assert.assertEquals("hadoop-1,hadoop-2", conf.getAdditionalProfiles()); Assert.assertNotNull(conf.toString()); Assert.assertEquals("", conf.getPatch()); @@ -72,7 +85,6 @@ public void testGettersSetters() throws Exception { conf.setAntArgs("AntArgs"); Assert.assertEquals("AntArgs", conf.getAntArgs()); - } @Test public void testContext() throws Exception { @@ -82,4 +94,25 @@ public void testContext() throws Exception { Assert.assertEquals(context.getParameters(), (new TestConfiguration(context, LOG)).getContext().getParameters()); } + + @Test + public void testPTest() throws Exception { + Host testHost = new Host("test", "test", new String[1], 1); + Set testHosts = new HashSet(); + testHosts.add(testHost); + + TestConfiguration conf = TestConfiguration.fromInputStream( + Resources.getResource("test-configuration.properties").openStream(), LOG); + ExecutionContext execContext = new ExecutionContext(null, testHosts, "test", null); + PTest.Builder mPTestBuilder = new PTest.Builder(); + PTest ptest = mPTestBuilder.build(conf, execContext, "1234", baseDir.newFolder(), null, null, null, null); + Map templateDefaults = ptest.getTemplateDefaults(); + Assert.assertEquals("git://github.com/apache/hive.git", templateDefaults.get("repository")); + Assert.assertEquals("apache-github", templateDefaults.get("repositoryName")); + Assert.assertEquals("trunk", templateDefaults.get("branch")); + Assert.assertEquals("-Dtest.continue.on.failure=true -Dtest.silent=false", templateDefaults.get("antArgs")); + Assert.assertEquals("hadoop-1,hadoop-2", templateDefaults.get("additionalProfiles")); + + + } } diff --git testutils/ptest2/src/test/resources/test-configuration.properties testutils/ptest2/src/test/resources/test-configuration.properties index 8a83bf2..caba9ea 100644 --- testutils/ptest2/src/test/resources/test-configuration.properties +++ testutils/ptest2/src/test/resources/test-configuration.properties @@ -17,6 +17,8 @@ branch = trunk antArgs = -Dtest.continue.on.failure=true -Dtest.silent=false +additionalProfiles = hadoop-1,hadoop-2 + qFileTests = clientNegative qFileTest.clientNegative.driver = TestNegativeCliDriver qFileTest.clientNegative.directory = ql/src/test/queries/clientnegative