#!/usr/bin/env bash # Utility to test the runTests2.xml file. It's intended to allow rapid confirmation # that the runTests2.xml file computes correct values, for various versions platforms # and various versions of java and ant, etc. # In particular, ant can be invoked with one version of java, but another version # of java used to actually run the tests. # In addition to the console output. which should be captured, with something like # ./testTextXMLScript.sh | tee testoutput.txt # some data or set-up files will be created as they normally would if running the real tests. # The can be checked to be sure they are correct, and in correct (relative) locations. # unset some common variables which we don't want (or, set ourselves) unset JAVA_HOME unset JAVA_ROOT unset JAVA_JRE unset CLASSPATH unset JAVA_BINDIR unset JRE_HOME function clean() { echo -e "\n Cleaning previous results, as requested." # remember, do not want to rm "out.txt" since we may be currently piping to it via 'tee'. rm -fr ${WORKSPACE}/eclipse.platform.releng.aggregator/ eclipse.platform.releng.aggregator-master.zip getEBuilder.xml runTests2.xml tempEBuilder/ rm -fr ${WORKSPACE}/production.properties propertiesAllFromRunTest2.properties sdk.tests streamSpecific-build.properties workarea } source localBuildProperties.shsource 2>/dev/null # Different versions of Ant are specified here in test script, just to confirm # nothing is specific to any recent version of ant. (Though, some of the machines # have ant 1.6 set as 'default'!) #export ANT_HOME=/shared/common/apache-ant-1.7.1 #export ANT_HOME=/shared/common/apache-ant-1.8.4/ export ANT_HOME=/shared/common/apache-ant-1.9.6 # JAVA_HOME is, at least, what runs the ant instance. If no 'jvm' option is specified, # it also becomes the instance that runs the tests. #export JAVA_HOME=/shared/common/jdk1.5.0-latest #export JAVA_HOME=/shared/common/jdk1.6.0-latest #export JAVA_HOME=/shared/common/jdk1.7.0-latest JAVA_8_HOME=/shared/common/jdk1.8.0_x64-latest export JAVA_HOME=${JAVA_HOME:-${JAVA_8_HOME}} # added /opt/local/bin for 'port' version of wget, on Mac export PATH=${JAVA_HOME}/bin:${ANT_HOME}/bin:/usr/local/bin:/usr/bin:/bin:${HOME}/bin:/opt/local/bin # Be sure to set to a "fresh" non-cluttered area, so can be easily cleaned up. export WORKSPACE=${HOME}/tempworkarea # This variable signals parts of the script that we are testing the test scripts, # and should not actually start the tests. export TESTING_TEST_XML=true #export ANT_OPTS=-Xms1024m -Xmx1024m -Djava.io.tmpdir=${WORKSPACE}/tmp export ANT_OPTS=-Djava.io.tmpdir=${WORKSPACE}/tmp mkdir -p ${WORKSPACE}/tmp if [[ "$1" == "-c" ]] then clean fi if [[ -z "${GIT_HOST}" ]] then GIT_HOST=git.eclipse.org fi # print basic diagnostics and properties ant -diagnostics java -XshowSettings -version # Note: currently this file always comes from master, no matter what branch is being built/tested. wget -O ${WORKSPACE}/getEBuilder.xml --no-verbose http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/production/testScripts/hudsonBootstrap/getEBuilder.xml 2>&1 # or test the local version, checked-out version from tree location, # not necessarily checked in, yet, though many other # files are still checked out. # cp -v hudsonBootstrap/getEBuilder.xml ${WORKSPACE}/ # Can only test the "downloadURL form" if there is a current, accurate build. # During development, should use git/master version. (Not sure what this downloads, then?) ANTFILE=getEBuilder.xml buildId=I20150320-0800 eclipseStream=4.10.0 EBUILDER_HASH=master #EBUILDER_HASH=4295494c43e464a0c4ee39b7e0c847fbc3263f2a # Record where we are executing from. echo "PWD: $PWD" # ? There are a number of test- methods in test xml which, by convention, mean # to simply test the test script itself. The test-all target runs all of those tests. # MUST change the arch values here, then testing on other platforms! ant -f "${WORKSPACE}/${ANTFILE}" -Dbasebuilderlocal=/shared/eclipse/buildtests -DbuildId=$buildId -DeclipseStream=$eclipseStream -Dosgi.os=linux -Dosgi.ws=gtk -Dosgi.arch=x86_64 -DEBUILDER_HASH=${EBUILDER_HASH} -DdownloadURL=http://download.eclipse.org/eclipse/downloads/drops4/${buildId} -Dtest.target=performance -DskipDerby=true #ant -f "${WORKSPACE}/${ANTFILE}" -Dbasebuilderlocal=/shared/eclipse/buildtests -DbuildId=$buildId -DeclipseStream=$eclipseStream -Dosgi.os=macosx -Dosgi.ws=cocoa -Dosgi.arch=x86_64 -DEBUILDER_HASH=${EBUILDER_HASH} -DdownloadURL=http://download.eclipse.org/eclipse/downloads/drops4/${buildId} -Dtest.target=performance -DskipDerby=true rc=$? if [[ $rc == 0 ]] then echo "Ant returned non-zero return code: $rc." else echo "Ant returned normally. (Check log for BUILD FAILED/SUCCESS)" fi echo "check output in ${WORKSPACE}, especially ${WORKSPACE}/workarea"