bug 337243 - run SDK junit tests
diff --git a/org.eclipse.e4.builder/builder/general/customTargets.xml b/org.eclipse.e4.builder/builder/general/customTargets.xml
index 7a8ca0b..e6b1480 100644
--- a/org.eclipse.e4.builder/builder/general/customTargets.xml
+++ b/org.eclipse.e4.builder/builder/general/customTargets.xml
@@ -84,16 +84,27 @@
 	</target>
 
 	<target name="initLocations" >
-	<!-- figure out what the most recent eclipse IBuild is -->
-		<get src="${eclipseRepoURL}/compositeContent.jar" dest="${buildDirectory}/temp.jar" />
-		<unzip src="${buildDirectory}/temp.jar" dest="${buildDirectory}/latest" />
-		<delete file="${buildDirectory}/temp.jar" />
-		<replaceregexp 	byline="false" file="${buildDirectory}/latest/compositeContent.xml"
-						flags="s"
-						match=".*location\s*=\s*'(.+)'.*" 
-						replace="eclipseBuildId=\1" />
-		<property file="${buildDirectory}/latest/compositeContent.xml" />
+		<available property="repoURLFile" file="${buildDirectory}/eclipseRepoURL.properties" />
+		<antcall target="loadRepoURLFile"/>
+		<antcall target="initRepoURLFile" />
+	</target>
+	
+	<target name="loadRepoURLFile" if="repoURLFile" >
+		<properties file="${repoURLFile}"/>
+	</target>
+	
+	<target name="initRepoURLFile" unless="eclipseRepoURL-latest" >
+		<!-- figure out what the most recent eclipse IBuild is -->
+		<get src="${eclipseRepoURL}/compositeContent.jar" dest="${buildDirectory}/eclipseRepo.jar" />
+		<loadproperties>
+			<zipentry zipfile="${buildDirectory}/eclipseRepo.jar" name="compositeContent.xml" />
+			<filterchain>
+				<replaceregex pattern=".*location\s*=\s*'(.+)'.*" replace="eclipseBuildId=\1" flags="s" />
+			</filterchain>
+		</loadproperties>
 		<property name="eclipseRepoURL-latest" value="${eclipseRepoURL}/${eclipseBuildId}" />
+		<!-- store it for others -->
+		<echo message="eclipseRepoURL-latest=${eclipseRepoURL-latest}${line.separator}" file="${buildDirectory}/eclipseRepoURL.properties" />
 	</target>
 	
 	<!-- ===================================================================== -->
@@ -256,7 +267,7 @@
 	<!-- ===================================================================== -->
 	<!-- Steps to do after the build is done. -->
 	<!-- ===================================================================== -->
-	<target name="postBuild">
+	<target name="postBuild" depends="initLocations">
 		<antcall target="gatherLogs" />
 		<eclipse.convert input="${buildDirectory}/${buildLabel}/compilelogs" />
 		<available file="${p2.repo}/content.jar" property="contentJar" />
@@ -324,17 +335,7 @@
 			<param name="list.iu" value="org.eclipse.e4.workbench.sdk,org.eclipse.emf,org.eclipse.gef,org.eclipse.sdk,org.eclipse.wst.jsdt.ui,org.eclipse.xsd,org.eclipse.wst.xml_ui.feature.feature.group" />
 		</antcall>
 		<property file="${buildDirectory}/version.properties" />
-
-		<!-- figure out what the most recent eclipse IBuild is -->
-		<get src="${eclipseRepoURL}/compositeContent.jar" dest="${buildDirectory}/temp.jar" />
-		<unzip src="${buildDirectory}/temp.jar" dest="${buildDirectory}/latest" />
-		<delete file="${buildDirectory}/temp.jar" />
-		<replaceregexp 	byline="false" file="${buildDirectory}/latest/compositeContent.xml"
-						flags="s"
-						match=".*location\s*=\s*'(.+)'.*" 
-						replace="eclipseBuildId=\1\n" />
-		<property file="${buildDirectory}/latest/compositeContent.xml" />
-			
+		
 		<!-- generate the build index, guess the component version numbers -->
 		<filter token="repbuildid" value="${buildLabel}" />
 		<filter token="repmaindate" value="${repmaindate}" />
@@ -347,7 +348,7 @@
 		<filter token="eclipseIbuild" value="${org.eclipse.sdk}" />
 		<filter token="emfBuildId" value="${org.eclipse.emf}" />
 		<filter token="gefBuildId" value="${org.eclipse.gef}" />
-		<filter token="eclipseBuildURL" value="${eclipseBuildURL}${eclipseBuildId}" />
+		<filter token="eclipseBuildURL" value="${eclipseRepoURL-latest}" />
 		<filter token="emfBuildURL" value="${emfBuildURL}" />
 		<filter token="gefBuildURL" value="${gefBuildURL}" />
 		<filter token="wtpBuildURL" value="${wtpBuildURL}" />
diff --git a/org.eclipse.e4.builder/builder/general/tests/test.xml b/org.eclipse.e4.builder/builder/general/tests/test.xml
index aa8fc6a..ab3c785 100644
--- a/org.eclipse.e4.builder/builder/general/tests/test.xml
+++ b/org.eclipse.e4.builder/builder/general/tests/test.xml
@@ -97,6 +97,8 @@
 		<mkdir dir="${results}/html" />
 		<mkdir dir="${junit-report-output}" />
 
+		<properties file="${sdkResults}/../eclipseRepoURL.properties"/>
+		
 		<mkdir dir="${repoLocation}"/>
 		<p2.composite.repository destination="file:${repoLocation}" >
 			<add location="file:${sdkResults}/repository" />
@@ -104,6 +106,7 @@
 			<add location="file:${e4.targetDir}/emf" />
 			<add location="file:${e4.targetDir}/gef" />
 			<add location="file:${e4.targetDir}/wtp" />
+			<add location="${eclipseRepoURL-latest}"/>
 		</p2.composite.repository>
 		
 		<!--Unlock files on the Mac before starting tests.
@@ -234,6 +237,10 @@
 		<runTests testPlugin="org.eclipse.ant.tests.ui" />
 	</target>
 
+	<target name="debug">
+		<runTests testPlugin="org.eclipse.debug.tests" />
+	</target>
+		
 	<target name="compare">
 		<runTests testPlugin="org.eclipse.compare.tests" />
 	</target>
@@ -603,19 +610,31 @@
 		<antcall target="semanticUi" />
 		<antcall target="coreTests" />
 	</target>
+	
 	<target name="e4less">
-		<antcall target="cssSwt" />
-		<antcall target="cssCore" />
 		<antcall target="e4xwt" />
-		<!-- bug 331225 <antcall target="e4xwtEmf" />-->
-		<antcall target="coreServices" />
-		<antcall target="e4ui" />
 		<antcall target="e4tm" />
 		<antcall target="e4tmJavascript" />
 		<antcall target="e4Commands" />
 		<antcall target="e4bindings" />
 		<antcall target="semanticResources" />
 		<antcall target="semanticUi" />
+	</target>
+	
+	<target name="sdk">
+		<antcall target="ant" />
+		<antcall target="antui" />
+		<antcall target="debug" />
+		<antcall target="jdttext" />
+		<antcall target="jdtcompilerapt" />
+		<antcall target="jdtui" />
+		<antcall target="jface" />
+		<antcall target="pdeui" />
+		<antcall target="text" />
+		<antcall target="cssSwt" />
+		<antcall target="cssCore" />
+		<antcall target="e4ui" />
+		<antcall target="coreServices" />
 		<antcall target="coreTests" />
 	</target>
 </project>
diff --git a/org.eclipse.e4.builder/scripts/masterBuild.sh b/org.eclipse.e4.builder/scripts/masterBuild.sh
index 13ec908..ce5bef3 100755
--- a/org.eclipse.e4.builder/scripts/masterBuild.sh
+++ b/org.eclipse.e4.builder/scripts/masterBuild.sh
@@ -64,7 +64,10 @@
     buildDirectory=$buildDir/I$buildTimestamp
     testDir=$buildDirectory/tests
     buildResults=$buildDirectory/I$buildTimestamp
+    
     sdkResults=$buildDir/40builds/I$buildTimestamp/I$buildTimestamp
+    sdkBuildDirectory=$buildDir/40builds/I$buildTimestamp
+		
     relengBaseBuilderDir=$supportDir/org.eclipse.releng.basebuilder
     buildDirEclipse="$buildDir/eclipse"
     WORKSPACE="$buildDir/workspace"
@@ -183,7 +186,28 @@
 	/bin/bash ${builderDir}/scripts/publish.sh
 }
 
+runSDKTests() {
+    mkdir -p $sdkBuildDirectory/eclipse-testing
+    cd $sdkBuildDirectory/eclipse-testing
 
+	echo "Copying eclipse SDK archive to tests." 
+    cp $sdkResults/eclipse-SDK-*-linux-gtk${archProp}.tar.gz  .
+
+    cat $sdkBuildDirectory/test.properties >> test.properties
+    cat $sdkBuildDirectory/label.properties >> label.properties
+
+	echo "sdkResults=$sdkResults" >> label.properties
+
+	echo "Copying test framework."
+    cp -r ${builderDir}/builder/general/tests/* .
+
+    ./runtests -os linux -ws gtk -arch ${arch} sdk
+
+    mkdir -p $sdkResults/results
+    cp -r results/* $sdkResults/results
+
+    cp ${builderDir}/templates/build.testResults.html $sdkResults/testResults.html
+}
 
 copyCompileLogs () {
     pushd $buildResults
@@ -376,6 +400,7 @@
 #generateSwtZip
 
 # try some tests
+runSDKTests
 runTheTests e4less
 
 cp /shared/eclipse/e4/logs/current.log \
diff --git a/org.eclipse.e4.sdk/builder/customTargets.xml b/org.eclipse.e4.sdk/builder/customTargets.xml
index d3b6639..690a0fc 100644
--- a/org.eclipse.e4.sdk/builder/customTargets.xml
+++ b/org.eclipse.e4.sdk/builder/customTargets.xml
@@ -59,26 +59,30 @@
 	<target name="preSetup">
 	</target>
 
-	<target name="downloadComposite" unless="latestComposite" >
-		<get src="${eclipseRepoURL}/compositeContent.jar" dest="${buildDirectory}/temp.jar" />
-		<unzip src="${buildDirectory}/temp.jar" dest="${buildDirectory}/latest" />
-		<delete file="${buildDirectory}/temp.jar" />
-		<replaceregexp 	byline="false" file="${buildDirectory}/latest/compositeContent.xml"
-						flags="s"
-						match=".*location\s*=\s*'(.+)'.*" 
-						replace="eclipseBuildId=\1" />
-	</target>
-		
 	<target name="initLocations" >
-		<available file="${buildDirectory}/latest/compositeContent.xml" property="latestComposite" />
-		<antcall target="downloadComposite" />
-		
-		<!-- figure out what the most recent eclipse IBuild is -->
-		<property file="${buildDirectory}/latest/compositeContent.xml" />
-		<property name="eclipseRepoURL-latest" value="${eclipseRepoURL}/${eclipseBuildId}" />
-		<echo message="${eclipseRepoURL-latest}" />
+		<available property="repoURLFile" file="${buildDirectory}/eclipseRepoURL.properties" />
+		<antcall target="loadRepoURLFile"/>
+		<antcall target="initRepoURLFile" />
 	</target>
 	
+	<target name="loadRepoURLFile" if="repoURLFile" >
+		<properties file="${repoURLFile}"/>
+	</target>
+	
+	<target name="initRepoURLFile" unless="eclipseRepoURL-latest" >
+		<!-- figure out what the most recent eclipse IBuild is -->
+		<get src="${eclipseRepoURL}/compositeContent.jar" dest="${buildDirectory}/eclipseRepo.jar" />
+		<loadproperties>
+			<zipentry zipfile="${buildDirectory}/eclipseRepo.jar" name="compositeContent.xml" />
+			<filterchain>
+				<replaceregex pattern=".*location\s*=\s*'(.+)'.*" replace="eclipseBuildId=\1" flags="s" />
+			</filterchain>
+		</loadproperties>
+		<property name="eclipseRepoURL-latest" value="${eclipseRepoURL}/${eclipseBuildId}" />
+		<!-- store it for others -->
+		<echo message="eclipseRepoURL-latest=${eclipseRepoURL-latest}${line.separator}" file="${buildDirectory}/eclipseRepoURL.properties" />
+	</target>
+		
 	<!-- ===================================================================== -->
 	<!-- Steps to do after setup but before starting the build proper -->
 	<!-- ===================================================================== -->