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>
|
||||
</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 -->
|
||||
<target name="cbundles" description="Build component bundles.">
|
||||
<!-- define our tasks -->
|
||||
@@ -180,6 +208,38 @@
|
||||
</junit>
|
||||
</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"
|
||||
description="Run the bureau test server.">
|
||||
<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