1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# !/bin/sh 2402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 3402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# by default, use the java executable on the path 4402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollvm=java 5402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 6402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll#set the DISPLAY for running tests on Linux 7402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollDISPLAY=`$HOST`:0.0;export DISPLAY 8402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 9402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll#this value must be set when using rsh to execute this script, otherwise the script will execute from the user's home directory 10402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molldir=. 11402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 12402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# operating system, windowing system and architecture variables 13402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollos= 14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollws= 15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollarch= 16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# list of tests (targets) to execute in test.xml 18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molltests= 19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# default value to determine if eclipse should be reinstalled between running of tests 21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollinstallmode="clean" 22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# name of a property file to pass to Ant 24402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollproperties= 25402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 26402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# message printed to console 27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollusage="usage: $0 -os <osType> -ws <windowingSystemType> -arch <architecture> [-noclean] [<test target>][-properties <path>]" 28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 29402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# proces command line arguments 31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollwhile [ $# -gt 0 ] 32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molldo 33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll case "$1" in 34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll -dir) dir="$2"; shift;; 35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll -os) os="$2"; shift;; 36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll -ws) ws="$2"; shift;; 37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll -arch) arch="$2"; shift;; 38402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll -noclean) installmode="noclean";; 39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll -properties) properties="-propertyfile $2";shift;; 40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll -vm) vm="$2";shift;; 41402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *) tests=$tests\ $1;; 42402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll esac 43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll shift 44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molldone 45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 46402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# for *nix systems, os, ws and arch values must be specified 47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ "x$os" = "x" ] 48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollthen 49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo >&2 "$usage" 50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll exit 1 51402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 52402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ "x$ws" = "x" ] 54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollthen 55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo >&2 "$usage" 56402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll exit 1 57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ "x$arch" = "x" ] 60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollthen 61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo >&2 "$usage" 62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll exit 1 63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll#necessary when invoking this script through rsh 66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollcd $dir 67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 68402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# verify os, ws and arch values passed in are valid before running tests 69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ "$os-$ws-$arch" = "linux-motif-x86" ] || [ "$os-$ws-$arch" = "linux-gtk-x86" ] || [ "$os-$ws-$arch" = "solaris-motif-sparc" ] || [ "$os-$ws-$arch" = "solaris-gtk-sparc" ] || [ "$os-$ws-$arch" = "aix-motif-sparc" ] || [ "$os-$ws-$arch" = "hpux-motif-PA_RISC" ] || [ "$os-$ws-$arch" = "qnx-photon-x86" ] 70402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollthen 71402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # Replace the boot eclipse (The eclipse used to run the main test.xml, this will start another eclipse later) 72402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll rm -r eclipse 73402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll rm -r workspace 74402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll tar -xzf eclipse-SDK-*.tar.gz 75402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll unzip -qq -o -C VE-junit-tests-*.zip */plugins/org.eclipse.test* 76402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 77402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ "$installmode" = "noclean" ] 78402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll then 79402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # if tests are to run without reinstalling eclipse, only install the test eclipse if it does not exist 80402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll # If the test-eclipse directory is in a partially installed state, it should be deleted manually 81402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 82402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll if [ ! -r test-eclipse/eclipse ] 83402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll then 84402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll $vm -cp eclipse/startup.jar org.eclipse.core.launcher.Main -noupdate -ws $ws -os $os -arch $arch -application org.eclipse.ant.core.antRunner -file test.xml setup -Dws=$ws -Dos=$os -Darch=$arch -Dclean=true -logger org.apache.tools.ant.DefaultLogger 85402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 86402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll fi 87402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 88402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# run tests 89402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll$vm -cp eclipse/startup.jar -Dosgi.ws=$ws -Dosgi.os=$os -Dosgi.arch=$arch org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -file test.xml $tests -Dws=$ws -Dos=$os -Darch=$arch -D$installmode=true $properties -logger org.apache.tools.ant.DefaultLogger 90402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 91402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# display message to user if os, ws and arch are invalid 92402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollelse 93402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo "The os, ws and arch values are either invalid or are an invalid combination" 94402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 95402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollexit 1 96402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi