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