You are viewing a plain text version of this content. The canonical link for it is here.
Posted to kato-commits@incubator.apache.org by sp...@apache.org on 2009/11/12 10:39:56 UTC

svn commit: r835324 - in /incubator/kato/trunk/org.apache.kato/kato.anttasks/src: main/java/org/apache/kato/anttasks/tck/TCKSetupTask.java test/ant/testtags.xml

Author: spoole
Date: Thu Nov 12 10:39:56 2009
New Revision: 835324

URL: http://svn.apache.org/viewvc?rev=835324&view=rev
Log:
added support to specify config dir on tck setup task

Modified:
    incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/tck/TCKSetupTask.java
    incubator/kato/trunk/org.apache.kato/kato.anttasks/src/test/ant/testtags.xml

Modified: incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/tck/TCKSetupTask.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/tck/TCKSetupTask.java?rev=835324&r1=835323&r2=835324&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/tck/TCKSetupTask.java (original)
+++ incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/tck/TCKSetupTask.java Thu Nov 12 10:39:56 2009
@@ -14,9 +14,15 @@
 
 package org.apache.kato.anttasks.tck;
 
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Properties;
 
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.taskdefs.Java;
@@ -33,6 +39,9 @@
 public class TCKSetupTask extends Java {
 
 	private boolean validateOnly=false;
+	private static File home=new File(System.getProperty("user.home"));
+	
+	private File configdir=null;
 	
 	private List envvars=new LinkedList();
 	private List scenerios=new LinkedList();
@@ -41,30 +50,122 @@
 		super.setFork(true);
 		super.setFailonerror(true);
 		super.setClassname("org.apache.kato.tck.harness.scenario.ScenarioLauncher");
+	
 	}
 
+	@Override
 	public void setFork(boolean s) {
 		throw new BuildException("cannot set fork on setup task");
 	}
 
+	
 	public void setFailonerror(boolean s) {
 		throw new BuildException("cannot set fail on error on setup task");
 	}
-
+	
 	public void execute() throws BuildException {
-		
-		configureScenerios();
-		
+	
+
 		
 		if(validateOnly) {
 			validate();
 			return;
 		}
-		// get env details etc
+		
+		// config for what we want to execute
+		
+		configureScenerios();
+		
+		// set home dir given
+		if(configdir!=null) {
+			
+			Argument arg=createArg();
+			arg.setValue("-configdir");
+			arg=createArg();
+			arg.setFile(configdir);
+		}
+		else {
+			configdir=new File(home,".tck");
+			
+		}
+		// add a parameter to ask for the env setup etc
+		Argument arg=createArg();
+		arg.setValue("-mode");
+		arg=createArg();
+		arg.setValue("config");
+		super.execute();
+		
+		// load in required files..
+		try {
+			applyEnvVarSettings();
+			applyJVMArgSettings();
+		} catch (IOException e) {
+			throw new BuildException(e);
+		}
+		
+		
+		// change param to run 
+		arg.setValue("run");
 		super.execute();
+	
 	}
 
 	/**
+	 * @throws IOException 
+	 * 
+	 */
+	private void applyEnvVarSettings() throws IOException {
+		File envfile=new File(configdir,"tck.envfile.txt");
+		if(envfile.exists()==false) return;
+		
+		FileInputStream fis=new FileInputStream(envfile);
+		Properties p=new Properties();
+		p.load(fis);
+		fis.close();
+		
+		Enumeration e=p.elements();
+		
+		while(e.hasMoreElements()) {
+			Object key=e.nextElement();
+			Object value=p.get(key);
+			 
+			Variable envvar=new Variable();
+			envvar.setKey(key.toString());
+			if(value!=null) {
+				envvar.setValue(value.toString());
+			}
+			else {
+				envvar.setValue("");
+			}
+			addEnv(envvar);
+		}
+		
+	}
+
+	/**
+	 * @throws IOException 
+	 * 
+	 */
+	private void applyJVMArgSettings() throws IOException {
+		File vmfile=new File(configdir,"tck.jvmfile.txt");
+		if(vmfile.exists()==false) return;
+		FileInputStream fis=new FileInputStream(vmfile);
+		DataInputStream dis=new DataInputStream(fis);
+		
+		while(true) {
+			String line=dis.readLine();
+			if(line==null) break;
+			Argument a=createJvmarg();
+			a.setValue(line);
+		}
+		
+		dis.close();
+		
+	}
+
+	/**
+	
+	/**
 	 * 
 	 */
 	private void configureScenerios() {
@@ -98,6 +199,7 @@
 			}
 		}
 		
+	
 		
 	}
 
@@ -119,6 +221,7 @@
 	}
 
 	
+	
 	public void setClassname(String s) throws BuildException {
 		throw new BuildException("cannot set classname on setup task");
 		
@@ -135,6 +238,7 @@
 		return validateOnly;
 	}
 
+	
 	public void addEnv(Variable var) {
 		
 		super.addEnv(var);
@@ -145,4 +249,7 @@
 		scenerios.add(s);
 	}
 
+	public void setConfigdir(File dir) {
+		configdir=dir;
+	}
 }

Modified: incubator/kato/trunk/org.apache.kato/kato.anttasks/src/test/ant/testtags.xml
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.anttasks/src/test/ant/testtags.xml?rev=835324&r1=835323&r2=835324&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.anttasks/src/test/ant/testtags.xml (original)
+++ incubator/kato/trunk/org.apache.kato/kato.anttasks/src/test/ant/testtags.xml Thu Nov 12 10:39:56 2009
@@ -15,6 +15,7 @@
 		<antcall target="tcksetup4" />
 		<antcall target="tcksetup5" />
 		<antcall target="tcksetup6" />
+		<antcall target="tcksetup7" />
 	</target>
 
 
@@ -68,5 +69,13 @@
 			</tcksetup>
 
 		</target>
+	<target name="tcksetup7">
+
+			<tcksetup validateonly="true" configdir="${user.home}">
+				<classpath path="${tests}" />
+				<scenario class="org.wibble.foo" />
+			</tcksetup>
+
+		</target>
 
 </project>
\ No newline at end of file