extend vm test
This commit is contained in:
@@ -22,4 +22,41 @@ public class LuaStateTest extends TestCase {
|
||||
assertEquals( LNil.NIL, vm.topointer(1) );
|
||||
assertEquals( LNil.NIL, vm.topointer(-1) );
|
||||
}
|
||||
|
||||
public void testFuncCall() throws IOException {
|
||||
vm.pushstring("bogus");
|
||||
vm.pushjavafunction(new SomeFunc( "arg" ));
|
||||
vm.pushstring("arg");
|
||||
vm.call(1, 1);
|
||||
assertEquals( 2, vm.gettop() );
|
||||
assertEquals( "bogus", vm.tostring(1) );
|
||||
assertEquals( LNil.NIL, vm.topointer(2) );
|
||||
assertEquals( LNil.NIL, vm.topointer(-1) );
|
||||
}
|
||||
|
||||
public void testFuncCall2() throws IOException {
|
||||
vm.pushstring("bogus");
|
||||
vm.pushjavafunction(new SomeFunc( "nil" ));
|
||||
vm.call(0, 1);
|
||||
assertEquals( 2, vm.gettop() );
|
||||
assertEquals( "bogus", vm.tostring(1) );
|
||||
assertEquals( LNil.NIL, vm.topointer(2) );
|
||||
assertEquals( LNil.NIL, vm.topointer(-1) );
|
||||
}
|
||||
|
||||
private static final class SomeFunc extends LFunction {
|
||||
private String expected;
|
||||
public SomeFunc(String expected) {
|
||||
this.expected = expected;
|
||||
}
|
||||
public boolean luaStackCall(LuaState vm) {
|
||||
String arg = vm.tostring(2);
|
||||
assertEquals(expected, arg);
|
||||
vm.pushnil();
|
||||
vm.replace(1);
|
||||
vm.settop(1);
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user