Revision: 1907 http://svn.sourceforge.net/vexi/?rev=1907&view=rev Author: mkpg2 Date: 2007-07-02 10:31:04 -0700 (Mon, 02 Jul 2007)
Log Message: ----------- Adding JS exception type, remote. Refactoring xmlrpc tests. Modified Paths: -------------- core/branches/vexi2/org.ibex.js/src/org/ibex/js/Constants.java core/branches/vexi2/org.ibex.js/src/org/ibex/js/Interpreter.jpp core/branches/vexi2/org.ibex.js/src/org/ibex/js/XMLRPC.jpp core/branches/vexi2/org.ibex.js/src_dev/org/ibex/js/DevUtil.java core/branches/vexi2/org.ibex.js/src_dev/org/ibex/js/RunJS.java core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/TestXmlRpc.java core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/emptyline.js core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/lib.js core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_object.js core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_vector.js core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_vector2.js core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/simple.js Added Paths: ----------- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/ioException.js core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/serverException.js core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/serverException2.js Removed Paths: ------------- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/no_handler.js Modified: core/branches/vexi2/org.ibex.js/src/org/ibex/js/Constants.java =================================================================== --- core/branches/vexi2/org.ibex.js/src/org/ibex/js/Constants.java 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src/org/ibex/js/Constants.java 2007-07-02 17:31:04 UTC (rev 1907) @@ -22,6 +22,7 @@ static final JS SC_next = JSU.S("next",true); static final JS SC_number = JSU.S("number",true); static final JS SC_object = JSU.S("object",true); + static final JS SC_remote = JSU.S("remote",true); static final JS SC_Progress = JSU.S("Progress",true); static final JS SC_some = JSU.S("some",true); static final JS SC_string = JSU.S("string",true); Modified: core/branches/vexi2/org.ibex.js/src/org/ibex/js/Interpreter.jpp =================================================================== --- core/branches/vexi2/org.ibex.js/src/org/ibex/js/Interpreter.jpp 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src/org/ibex/js/Interpreter.jpp 2007-07-02 17:31:04 UTC (rev 1907) @@ -238,8 +238,12 @@ } else { didTrapPut = true; if(!tm.pauseOnCascade) tm.t.target().put(tm.t.key(), tm.val); + else Thread.cascadedTo = tm.trapargs.trapname; } - } else retval = CASCADE_PREVENTED; + }else{ + Thread.cascadedTo = null; + retval = CASCADE_PREVENTED; + } } } CallMarker cm = (CallMarker) o; Modified: core/branches/vexi2/org.ibex.js/src/org/ibex/js/XMLRPC.jpp =================================================================== --- core/branches/vexi2/org.ibex.js/src/org/ibex/js/XMLRPC.jpp 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src/org/ibex/js/XMLRPC.jpp 2007-07-02 17:31:04 UTC (rev 1907) @@ -356,7 +356,7 @@ try { new Helper().parse(br); if (fault) - return new JSExn(((JS)objects.get(0)).get(SC_faultString),SC_xmlrpc); + return new JSExn(((JS)objects.get(0)).get(SC_faultString),SC_remote); final JS result = (objects.size() == 0 ? (JS)null : ((JS)objects.get(0))); return result; Modified: core/branches/vexi2/org.ibex.js/src_dev/org/ibex/js/DevUtil.java =================================================================== --- core/branches/vexi2/org.ibex.js/src_dev/org/ibex/js/DevUtil.java 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_dev/org/ibex/js/DevUtil.java 2007-07-02 17:31:04 UTC (rev 1907) @@ -8,6 +8,7 @@ import org.ibex.js.Interpreter.CallMarker; import org.ibex.js.Interpreter.JSArgs; import org.ibex.js.Parser.ScopeInfo; +import org.ibex.util.Log; /** * @@ -30,6 +31,15 @@ static public String dump(JS f){ return ((JSFunction)f).dump(); } + + public static void logJSExn(String message){ + try{ + throw new JSExn(message); + }catch(JSExn e){ + Log.warn("!", e); + } + } + // Stuff in Interpreter not visible (wait for bc optimisation before not // using private /* static public void printStack(Interpreter I, int n) throws JSExn{ Modified: core/branches/vexi2/org.ibex.js/src_dev/org/ibex/js/RunJS.java =================================================================== --- core/branches/vexi2/org.ibex.js/src_dev/org/ibex/js/RunJS.java 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_dev/org/ibex/js/RunJS.java 2007-07-02 17:31:04 UTC (rev 1907) @@ -295,6 +295,7 @@ if("math".equals(key)) return vexiMath; if("string".equals(key)) return vexiString; if("proxy".equals(key)) return new JSProxy(); + if("xmlrpc".equals(key)) return METHOD; /* if("bgget".equals(key)) { action = "bgget"; @@ -367,7 +368,9 @@ JSU.schedule(callback, null); }}.start(); } - + if( "xmlrpc".equals(methName)){ + return new XMLRPC(JSU.toString(args[0]), ""); + } return null; } } Modified: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/TestXmlRpc.java =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/TestXmlRpc.java 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/TestXmlRpc.java 2007-07-02 17:31:04 UTC (rev 1907) @@ -40,7 +40,7 @@ Object r = xmlrpc.execute("testServer.stringWithEmptyline", params); System.out.println(r);*/ - RunJS.runJSFile(new String[]{resourceDir}, "emptyline.js", new String[]{"testXmlrpc"}, new JS[]{new TestXmlRpcJSInterface()}); + RunJS.runJSFile(new String[]{resourceDir}, "serverException.js"); }finally{ testwebserver.shutdown(); } @@ -57,6 +57,7 @@ // Use the same webserver for all the tests testwebserver = new WebServer(8091); testwebserver.start(); + testServer.start(); super.run(result); testwebserver.shutdown(); } @@ -75,60 +76,17 @@ } protected void runTest() throws Throwable { try{ - RunJS.runJSFile(resourceDirs, main,new String[]{"testXmlrpc"}, new JS[]{new TestXmlRpcJSInterface()} ); + RunJS.runJSFile(resourceDirs, main); }catch(JSExn e){ fail(e.getMessage()); } } } + TestServer testServer = new TestServer(); - - //////////////////////////////////////////////////////////// - // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - // - // Interface exposed in js, for controlling the testserver - // and for creating the xmlrpc object! - // - //////////////////////////////////////////////////////////// - - // Object used in js tests to control the test server (start stop it) - static class TestXmlRpcJSInterface extends JS.Immutable{ - - TestServer testServer; - TestXmlRpcJSInterface(){ - this.testServer = new TestServer(); - } - - public JS get(JS jsKey) throws JSExn { - String key = JSU.toString(jsKey); - if( "startTestServer".equals(key) - || "stopTestServer".equals(key) - || "xmlrpc".equals(key)){ - return METHOD; - } - return super.get(jsKey); - } - - public JS call(JS method, JS[] args) throws JSExn { - String key = JSU.toString(method); - if( "startTestServer".equals(key)){ - testServer.start(); - return null; - } - if( "stopTestServer".equals(key)){ - testServer.stop(); - return null; - } - if( "xmlrpc".equals(key)){ - return new XMLRPC(JSU.toString(args[0]), ""); - } - return super.call(method, args); - } - - } - + //////////////////////////////////////////////////////////// @@ -183,6 +141,10 @@ return "blah\n\nblah"; } + public String throwsException() throws Exception{ + throw new Exception("argh!"); + } + // factored out here for tests so we don't have to start/stop the // webserver for each test (which is slow) void start(){ Modified: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/emptyline.js =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/emptyline.js 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/emptyline.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -1,8 +1,6 @@ sys.import("lib"); - -sys.testXmlrpc.startTestServer(); var xmlrpc = getServer(); var r = xmlrpc.stringWithEmptyline(); assert(r=="blah\n\nblah"); Added: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/ioException.js =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/ioException.js (rev 0) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/ioException.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -0,0 +1,14 @@ +sys.import("lib"); + +try{ + // no server on this port + var xmlrpc = sys.xmlrpc("http://localhost:31173/").testServer; + var r = xmlrpc.thowsException(); + assert(false); +} +catch(e){ + sys.print(e.type); + assert(e.type=="xmlrpc"); + sys.print(e.message); +} + Modified: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/lib.js =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/lib.js 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/lib.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -1,4 +1,4 @@ export.getServer = function(){ - return sys.testXmlrpc.xmlrpc("http://localhost:8091/").testServer; + return sys.xmlrpc("http://localhost:8091/").testServer; }; \ No newline at end of file Modified: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_object.js =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_object.js 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_object.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -1,6 +1,5 @@ sys.import("lib"); -sys.testXmlrpc.startTestServer(); var xmlrpc = getServer(); var r = xmlrpc.nestedObject(); assert(r.A == "A"); Modified: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_vector.js =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_vector.js 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_vector.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -1,6 +1,5 @@ sys.import("lib"); -sys.testXmlrpc.startTestServer(); var xmlrpc = getServer(); var r = xmlrpc.nestedVector(); assert(r.x[0] == "melon"); \ No newline at end of file Modified: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_vector2.js =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_vector2.js 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/nested_vector2.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -1,6 +1,5 @@ sys.import("lib"); -sys.testXmlrpc.startTestServer(); var xmlrpc = getServer(); var r = xmlrpc.nestedVector2(); sys.print(r.vars[0] +","+r.vars[1] +","+r.vars[2]); Deleted: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/no_handler.js =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/no_handler.js 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/no_handler.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -1,13 +0,0 @@ -sys.import("lib"); - -sys.testXmlrpc.stopTestServer(); -try{ - var xmlrpc = getServer(); - var r = xmlrpc.addOne(2); - assert(false); -} -catch(e){ - sys.print(e.type); - assert(e.type=="xmlrpc"); - sys.print(e.message); -} Added: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/serverException.js =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/serverException.js (rev 0) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/serverException.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -0,0 +1,13 @@ +sys.import("lib"); + +try{ + var xmlrpc = getServer(); + var r = xmlrpc.thowsException(); + assert(false); +} +catch(e){ + sys.print(e.type); + assert(e.type=="remote"); + sys.print(e.message); +} + Copied: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/serverException2.js (from rev 1903, core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/no_handler.js) =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/serverException2.js (rev 0) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/serverException2.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -0,0 +1,12 @@ +sys.import("lib"); + +try{ + var xmlrpc = sys.xmlrpc("http://localhost:8091/").notAHandler; + var r = xmlrpc.addOne(2); + assert(false); +} +catch(e){ + sys.print(e.type); + assert(e.type=="remote"); + sys.print(e.message); +} Modified: core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/simple.js =================================================================== --- core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/simple.js 2007-07-02 16:45:59 UTC (rev 1906) +++ core/branches/vexi2/org.ibex.js/src_junit/test/js/rpc/xmlrpc/simple.js 2007-07-02 17:31:04 UTC (rev 1907) @@ -1,8 +1,6 @@ sys.import("lib"); - -sys.testXmlrpc.startTestServer(); var xmlrpc = getServer(); var r = xmlrpc.addOne(2); assert(r==3); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Vexi-svn mailing list Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn