First stab at test code to run a thane bureau - not yet runnable
* New directory tests/src/as with port of java test client * New build target "abclib" to create a library of the test classes specified in etc/asc_files.txt * New target to compile TestClientMain.as against testslib.abc and another to run it. (This proposes the naming convention of *Main.as for "main" thane code and main-*.abc for the compiled code) git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5058 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -99,6 +99,34 @@
|
|||||||
</javac>
|
</javac>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<!-- builds our Flash (abc) library -->
|
||||||
|
<target name="abclib">
|
||||||
|
<loadfile property="ascfiles" srcFile="etc/asc-files.txt">
|
||||||
|
<filterchain>
|
||||||
|
<prefixlines prefix="src/as/"/>
|
||||||
|
<tokenfilter delimOutput=" "/>
|
||||||
|
</filterchain>
|
||||||
|
</loadfile>
|
||||||
|
<java classname="macromedia.asc.embedding.ScriptCompiler" fork="true" failonerror="true">
|
||||||
|
<classpath>
|
||||||
|
<fileset dir="../lib" includes="asc.jar"/>
|
||||||
|
</classpath>
|
||||||
|
<arg value="-AS3"/>
|
||||||
|
<arg value="-strict"/>
|
||||||
|
<arg value="-import"/>
|
||||||
|
<arg value="../lib/builtin.abc"/>
|
||||||
|
<arg value="-import"/>
|
||||||
|
<arg value="../lib/thane.abc"/>
|
||||||
|
<arg value="-import"/>
|
||||||
|
<arg value="../dist/naryalib.abc"/>
|
||||||
|
<arg value="-outdir"/>
|
||||||
|
<arg value="${deploy.dir}"/>
|
||||||
|
<arg value="-out"/>
|
||||||
|
<arg value="testslib"/>
|
||||||
|
<arg line="${ascfiles}"/>
|
||||||
|
</java>
|
||||||
|
</target>
|
||||||
|
|
||||||
<!-- test the component metadata bundling process -->
|
<!-- test the component metadata bundling process -->
|
||||||
<target name="cbundles" description="Build component bundles.">
|
<target name="cbundles" description="Build component bundles.">
|
||||||
<!-- define our tasks -->
|
<!-- define our tasks -->
|
||||||
@@ -180,6 +208,38 @@
|
|||||||
</junit>
|
</junit>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<!-- builds the bureau thane test client -->
|
||||||
|
<target name="bureau-compile-thane-client" depends="abclib"
|
||||||
|
description="Compiles the thane client for testing the bureau library">
|
||||||
|
<java classname="macromedia.asc.embedding.ScriptCompiler" fork="true" failonerror="true">
|
||||||
|
<classpath>
|
||||||
|
<fileset dir="../lib" includes="asc.jar"/>
|
||||||
|
</classpath>
|
||||||
|
<arg value="-AS3"/>
|
||||||
|
<arg value="-strict"/>
|
||||||
|
<arg value="-import"/>
|
||||||
|
<arg value="../lib/builtin.abc"/>
|
||||||
|
<arg value="-import"/>
|
||||||
|
<arg value="../lib/thane.abc"/>
|
||||||
|
<arg value="-import"/>
|
||||||
|
<arg value="../dist/naryalib.abc"/>
|
||||||
|
<arg value="-import"/>
|
||||||
|
<arg value="dist/testslib.abc"/>
|
||||||
|
<arg value="-outdir"/>
|
||||||
|
<arg value="${deploy.dir}/thane/"/>
|
||||||
|
<arg value="-out"/>
|
||||||
|
<arg value="main-bureau-client"/>
|
||||||
|
<arg value="src/as/com/threerings/bureau/client/TestClientMain.as"/>
|
||||||
|
</java>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<!-- runs the thane test client -->
|
||||||
|
<target name="bureau-run-thane-client" depends="bureau-compile-thane-client"
|
||||||
|
description="Runs the thane client for testing the bureau library">
|
||||||
|
<!-- TODO: use a ${thane.path} property to launch the thane shell with
|
||||||
|
-- dist/main-bureau-client.abc as input -->
|
||||||
|
</target>
|
||||||
|
|
||||||
<target name="bureau-runserver" depends="compile"
|
<target name="bureau-runserver" depends="compile"
|
||||||
description="Run the bureau test server.">
|
description="Run the bureau test server.">
|
||||||
<java fork="true" classname="com.threerings.bureau.server.TestServer">
|
<java fork="true" classname="com.threerings.bureau.server.TestServer">
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
com/threerings/bureau/client/TestClient.as
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package com.threerings.bureau.client {
|
||||||
|
|
||||||
|
public class TestClient extends BureauClient
|
||||||
|
{
|
||||||
|
public function TestClient (token :String, bureauId :String)
|
||||||
|
{
|
||||||
|
super(token, bureauId);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override function createDirector () :BureauDirector
|
||||||
|
{
|
||||||
|
return new TestDirector(_ctx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
import com.threerings.bureau.client.Agent;
|
||||||
|
import com.threerings.bureau.client.BureauDirector;
|
||||||
|
import com.threerings.bureau.Log;
|
||||||
|
import com.threerings.bureau.data.AgentObject;
|
||||||
|
import com.threerings.bureau.util.BureauContext;
|
||||||
|
|
||||||
|
class TestAgent extends Agent
|
||||||
|
{
|
||||||
|
public override function start () :void
|
||||||
|
{
|
||||||
|
Log.info("Starting agent " + _agentObj.getOid());
|
||||||
|
}
|
||||||
|
|
||||||
|
public override function stop () :void
|
||||||
|
{
|
||||||
|
Log.info("Stopping agent " + _agentObj.getOid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestDirector extends BureauDirector
|
||||||
|
{
|
||||||
|
public function TestDirector (ctx :BureauContext)
|
||||||
|
{
|
||||||
|
super(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
// just use our test agent exclusively - in the real world, the agent created would depend
|
||||||
|
// on the object's type and/or properties
|
||||||
|
protected override function createAgent (agentObj :AgentObject) :Agent
|
||||||
|
{
|
||||||
|
return new TestAgent();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
/**
|
||||||
|
* The main entry point for the bureau test client to be run in thane. Arguments:
|
||||||
|
* 0: the token to use to log back into the server
|
||||||
|
* 1: the bureau id of this instance
|
||||||
|
* 2: the name of the server to log into
|
||||||
|
* 3: the port to connect to on the server
|
||||||
|
*/
|
||||||
|
|
||||||
|
import avmplus.System;
|
||||||
|
|
||||||
|
for (var i :int = 0; i < System.argv.length; ++i) {
|
||||||
|
print("Argv[" + i + "] = " + System.argv[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
// create the client and log on
|
||||||
|
var client :TestClient = new TestClient(
|
||||||
|
System.getProperty("token"),
|
||||||
|
System.getProperty("bureauId"));
|
||||||
|
client.setServer(
|
||||||
|
System.getProperty("serverName"),
|
||||||
|
new int[] {Integer.parseInt(System.getProperty("serverPort"))});
|
||||||
|
client.logon();
|
||||||
|
|
||||||
|
// run it
|
||||||
|
client.run();
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user