New autoload and math test cases. Currently autoload does not work because

the GETGLOBAL instruction does not handle the case where a metatable method
is invoked.
This commit is contained in:
Ian Farmer
2007-07-21 04:44:22 +00:00
parent b4ac032fd7
commit e1d6ddf99c
6 changed files with 30 additions and 0 deletions

View File

@@ -26,6 +26,10 @@ public class GlobalState {
private static LTable _G; private static LTable _G;
static { static {
resetGlobals();
}
static void resetGlobals() {
_G = new LTable(); _G = new LTable();
_G .put( "_G", _G ); _G .put( "_G", _G );
Builtin.addBuiltins( _G ); Builtin.addBuiltins( _G );

View File

@@ -43,6 +43,10 @@ public class LuaJTest extends TestCase {
runTest( "test7" ); runTest( "test7" );
} }
public void testAutoload() throws IOException, InterruptedException {
runTest( "autoload" );
}
public void testBoolean() throws IOException, InterruptedException { public void testBoolean() throws IOException, InterruptedException {
runTest( "boolean" ); runTest( "boolean" );
} }
@@ -68,6 +72,10 @@ public class LuaJTest extends TestCase {
} }
private void runTest( String testName ) throws IOException, InterruptedException { private void runTest( String testName ) throws IOException, InterruptedException {
// Reset the _G table just in case some test mucks with it
GlobalState.resetGlobals();
// add LuaJava bindings // add LuaJava bindings
LuaJava.install(); LuaJava.install();

11
src/test/res/autoload.lua Normal file
View File

@@ -0,0 +1,11 @@
local function autoload(table, key)
local chunk = loadfile("/"..key..".luac")
table[key] = chunk()
end
autoload_mt = { __index = autoload }
setmetatable(_G, autoload_mt)
print("square root of 9.0 is ", math.sqrt(9.0))
print("math.pi=", math.pi);

BIN
src/test/res/autoload.luac Normal file

Binary file not shown.

7
src/test/res/math.lua Normal file
View File

@@ -0,0 +1,7 @@
local mathClass = luajava.bindClass("java.lang.Math")
local function sqrt(x)
return mathClass:sqrt(x)
end
return { sqrt = sqrt; pi = mathClass.PI }

BIN
src/test/res/math.luac Normal file

Binary file not shown.