#!/bin/sh function usage { cat << _EOF_ usage: $0 [] Use PDE Build to build Eclipse features Optional arguments: -h Show this help message -e Eclipse SDK location -g Don't run the tests headless -d Allow remote connection to test runs' JVM _EOF_ } debugTests=0 headless=1 while getopts “hgdbe:” OPTION do case $OPTION in d) debugTests=1 ;; e) eclipseHome=$OPTARG ;; g) headless=0 ;; h) usage exit ;; ?) usage exit ;; esac done testSuite=org.eclipse.cdt.testing if [ -z $eclipseHome ]; then eclipseHome=$(rpm --eval "%{_libdir}")/eclipse fi cdtTestPluginVersion=$(ls $eclipseHome/dropins/cdt-tests/plugins | \ grep ${testSuite}_ | sed "s/${testSuite}_//") testDriver=$eclipseHome/dropins/cdt-tests/plugins/${testSuite}_${cdtTestPluginVersion}/test.xml properties=$(pwd)/cdt-tests.properties libraryXml=$eclipseHome/dropins/sdk/plugins/org.eclipse.test/library.xml results=$(pwd)/results-`date "+%Y%m%d%H%M%S"` workspace=$(pwd)/workspace datadir=$(pwd)/testDataDir homedir=$(pwd)/home testhome=$(pwd)/testhome tmpresults=$(pwd)/tmpresults os=linux ws=gtk if uname -m > /dev/null 2>&1; then arch=`uname -m` else arch=`uname -p` fi # Massage arch for Eclipse-uname differences case $arch in i[0-9]*86) arch=x86 ;; ia64) arch=ia64 ;; ppc) arch=ppc ;; x86_64) arch=x86_64 ;; *) echo "Unrecognized architecture: $arch" 1>&2 exit 1 ;; esac echo >&2 "Architecture not specified. Assuming host architecture: $arch" setXvnc() { echo localhost > Xvnc.cfg # Pick a high display number. port=`expr '(' $RANDOM '*' 9 / 32767 ')' + 58` $xvnc :$port -screen 1 1024x768x32 -auth Xvnc.cfg -localhost & Xvncpid=$! DISPLAY=`$HOST`:$port } rm $properties rm -rf $workspace $datadir $homedir $tmpresults $testhome mkdir -p $workspace $results $datadir $homedir $tmpresults $testhome echo "data-dir=$datadir" >> $properties echo "useEclipseExe=true" >> $properties echo "junit-report-output=$results" >> $properties echo "results=$results" >> $properties echo "tmpresults=$tmpresults" >> $properties echo "testhome=$testhome" >> $properties echo "cdt-folder=$(pwd)/cdt_folder" >> $properties echo "cdt-core-loc=$(pwd)/cdt_core_folder" >> $properties echo "cdt-ui-loc=$(pwd)/cdt_ui_folder" >> $properties echo "cdt-debug-ui-loc=$(pwd)/cdt_debug_ui_folder" >> $properties echo "cdt-mbs-core-loc=$(pwd)/cdt_mbs_core_folder" >> $properties echo "cdt-mbs-ui-loc=$(pwd)/cdt_mbs_ui_folder" >> $properties if [ $debugTests -eq 1 ]; then echo "extraVMargs=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=40000" >> $properties fi if [ $headless -eq 1 ]; then # Try to find Xvnc xvnc= if [ -a /usr/bin/Xvnc ] then xvnc=/usr/bin/Xvnc setXvnc else if [ -a /usr/X11/bin/Xvnc ] then xvnc=/usr/X11/bin/Xvnc setXvnc else DISPLAY=`$HOST`:0.0 fi fi export DISPLAY fi $eclipseHome/eclipse \ -Duser.home=$homedir \ -data $workspace \ -application org.eclipse.ant.core.antRunner \ -file $testDriver \ -Declipse-home=$eclipseHome \ -Dlibrary-file=$libraryXml \ -Darch=$arch \ -Dos=$os \ -Dws=$ws \ -propertyfile $properties \ -logger org.apache.tools.ant.DefaultLogger \ -vmargs \ -Duser.home=$homedir # Clean up if we used Xvnc if [ -e Xvnc.cfg ] then kill $Xvncpid rm Xvnc.cfg fi