diff --git testutils/ptest2/src/main/resources/source-prep.vm testutils/ptest2/src/main/resources/source-prep.vm index babc245..97fb69c 100644 --- testutils/ptest2/src/main/resources/source-prep.vm +++ testutils/ptest2/src/main/resources/source-prep.vm @@ -85,6 +85,17 @@ cd $workingDir/ if [[ "${buildTool}" == "maven" ]] then rm -rf $workingDir/maven/org/apache/hive + #if($additionalProfiles) + echo "Compile check on additional Profiles: $additionalProfiles" + export ADDITIONAL_PROFILES=$additionalProfiles + for i in $(echo $ADDITIONAL_PROFILES | tr "," "\n") + do + mvn clean install -DskipTests -P$i; + cd itests + mvn clean install -DskipTests -P$i; + cd .. + done + #end mvn -B clean install -DskipTests -Dmaven.repo.local=$workingDir/maven $mavenArgs $mavenBuildArgs mvn -B test -Dmaven.repo.local=$workingDir/maven -Dtest=TestDummy $mavenArgs $mavenTestArgs cd itests diff --git testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.java testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.java index 3e543a7..b55e979 100644 --- testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.java +++ testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.java @@ -151,6 +151,29 @@ public void testPrepGit() throws Throwable { String actual = getTemplateResult(template, templateVariables); Approvals.verify(actual); } + + @Test + public void testPrepHadoop1() throws Throwable { + Map templateVariables = Maps.newHashMap(); + templateVariables.put("repository", "https://svn.apache.org/repos/asf/hive/trunk"); + templateVariables.put("repositoryName", "apache"); + templateVariables.put("branch", ""); + templateVariables.put("localDir", "/some/local/dir"); + templateVariables.put("workingDir", "/some/working/dir"); + templateVariables.put("buildTool", "maven"); + templateVariables.put("antArgs", "-Dant=arg1"); + templateVariables.put("buildTag", "build-1"); + templateVariables.put("logDir", "/some/log/dir"); + templateVariables.put("testArguments", "-Dtest=arg1"); + templateVariables.put("clearLibraryCache", "true"); + templateVariables.put("javaHome", "/usr/java/jdk1.7"); + templateVariables.put("antEnvOpts", "-Dhttp.proxyHost=somehost -Dhttp.proxyPort=3128"); + templateVariables.put("repositoryType", "svn"); + templateVariables.put("additionalProfiles", "hadoop-1"); + String template = readResource("source-prep.vm"); + String actual = getTemplateResult(template, templateVariables); + Approvals.verify(actual); + } @Test public void testPrepSvn() throws Throwable { Map templateVariables = Maps.newHashMap(); diff --git testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepGit.approved.txt testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepGit.approved.txt index 8dce26f..673614b 100644 --- testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepGit.approved.txt +++ testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepGit.approved.txt @@ -84,7 +84,7 @@ cd /some/working/dir/ if [[ "${buildTool}" == "maven" ]] then rm -rf /some/working/dir/maven/org/apache/hive - mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven -X -Phadoop-2 + mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven -X -Phadoop-2 mvn -B test -Dmaven.repo.local=/some/working/dir/maven -Dtest=TestDummy -X -Phadoop-1 cd itests mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven -X -Phadoop-2 diff --git testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepHadoop1.approved.txt testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepHadoop1.approved.txt new file mode 100644 index 0000000..dbb6a6d --- /dev/null +++ testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepHadoop1.approved.txt @@ -0,0 +1,111 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e +set -x +if [[ -n "/usr/java/jdk1.7" ]] +then + export JAVA_HOME=/usr/java/jdk1.7 + export PATH=$JAVA_HOME/bin/:$PATH +fi +export ANT_OPTS="-Xmx1g -XX:MaxPermSize=256m -Dhttp.proxyHost=somehost -Dhttp.proxyPort=3128" +export M2_OPTS="-Xmx1g -XX:MaxPermSize=256m ${mavenEnvOpts}" +cd /some/working/dir/ +( + if [[ "true" == "true" ]] + then + rm -rf ivy maven + fi + mkdir -p maven ivy + if [[ "svn" = "svn" ]] + then + if [[ -n "" ]] + then + echo "Illegal argument for svn: branch ''." + exit 1 + fi + if [[ -d apache-source ]] && [[ ! -d apache-source/.svn ]] + then + rm -rf apache-source + fi + if [[ ! -d apache-source ]] + then + svn co https://svn.apache.org/repos/asf/hive/trunk apache-source + fi + cd apache-source + svn revert -R . + rm -rf $(svn status --no-ignore | egrep -v '^X|^Performing status on external' | awk '{print $2}') + svn update + elif [[ "svn" = "git" ]] + then + if [[ -z "" ]] + then + echo "Illegal argument for git: branch name is required." + exit 1 + fi + if [[ -d apache-source ]] && [[ ! -d apache-source/.git ]] + then + rm -rf apache-source + fi + if [[ ! -d apache-source ]] + then + git clone https://svn.apache.org/repos/asf/hive/trunk apache-source + fi + cd apache-source + git fetch origin + git reset --hard HEAD && git clean -f -d + git checkout || git checkout -b origin/ + git reset --hard origin/ + git merge --ff-only origin/ + git gc + else + echo "Unknown repository type 'svn'" + exit 1 + fi + patchCommandPath=/some/working/dir/scratch/smart-apply-patch.sh + patchFilePath=/some/working/dir/scratch/build.patch + if [[ -f $patchFilePath ]] + then + chmod +x $patchCommandPath + $patchCommandPath $patchFilePath + fi + if [[ "maven" == "maven" ]] + then + rm -rf /some/working/dir/maven/org/apache/hive + echo "Compile check on additional Profiles: hadoop-1" + export ADDITIONAL_PROFILES=hadoop-1 + for i in $(echo $ADDITIONAL_PROFILES | tr "," "\n") + do + mvn clean install -DskipTests -P$i; + cd itests + mvn clean install -DskipTests -P$i; + cd .. + done + mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven $mavenArgs $mavenBuildArgs + mvn -B test -Dmaven.repo.local=/some/working/dir/maven -Dtest=TestDummy $mavenArgs $mavenTestArgs + cd itests + mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven $mavenArgs $mavenBuildArgs + mvn -B test -Dmaven.repo.local=/some/working/dir/maven -Dtest=TestDummy $mavenArgs $mavenTestArgs + elif [[ "maven" == "ant" ]] + then + ant -Dant=arg1 -Divy.default.ivy.user.dir=/some/working/dir/ivy \ + -Dmvn.local.repo=/some/working/dir/maven clean package test \ + -Dtestcase=nothing + else + echo "Unknown build tool maven" + exit 127 + fi +) 2>&1 | tee /some/log/dir/source-prep.txt +exit ${PIPESTATUS[0]} diff --git testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepNone.approved.txt testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepNone.approved.txt index 98afe93..c05dae9 100644 --- testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepNone.approved.txt +++ testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepNone.approved.txt @@ -84,7 +84,7 @@ cd /some/working/dir/ if [[ "ant" == "maven" ]] then rm -rf /some/working/dir/maven/org/apache/hive - mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven $mavenArgs $mavenBuildArgs + mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven $mavenArgs $mavenBuildArgs mvn -B test -Dmaven.repo.local=/some/working/dir/maven -Dtest=TestDummy $mavenArgs $mavenTestArgs cd itests mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven $mavenArgs $mavenBuildArgs diff --git testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepSvn.approved.txt testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepSvn.approved.txt index d267c5f..c8a4b6e 100644 --- testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepSvn.approved.txt +++ testutils/ptest2/src/test/java/org/apache/hive/ptest/execution/TestScripts.testPrepSvn.approved.txt @@ -84,7 +84,7 @@ cd /some/working/dir/ if [[ "maven" == "maven" ]] then rm -rf /some/working/dir/maven/org/apache/hive - mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven $mavenArgs $mavenBuildArgs + mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven $mavenArgs $mavenBuildArgs mvn -B test -Dmaven.repo.local=/some/working/dir/maven -Dtest=TestDummy $mavenArgs $mavenTestArgs cd itests mvn -B clean install -DskipTests -Dmaven.repo.local=/some/working/dir/maven $mavenArgs $mavenBuildArgs