168 lines
4.5 KiB
Haxe
168 lines
4.5 KiB
Haxe
class ClientOne implements pack.HostInterface
|
|
{
|
|
public function new() { }
|
|
public function getOne() : Int return 1;
|
|
public function getOneString() : String return "1";
|
|
}
|
|
|
|
class Client
|
|
{
|
|
public static var clientBool0 = true;
|
|
public static var clientBool1 = false;
|
|
public static var clientBool2 = true;
|
|
public static var clientBool3 = false;
|
|
|
|
public static function main()
|
|
{
|
|
Common.status = "running";
|
|
|
|
// See if it compiles
|
|
if (sys.thread.Thread.current()==null)
|
|
{
|
|
Common.status = "Cppia Thread.current not working.";
|
|
return;
|
|
}
|
|
|
|
if (Common.hostImplementation.getOne()!=1)
|
|
{
|
|
Common.status = "Bad call to getOne";
|
|
return;
|
|
}
|
|
if (Common.hostImplementation.getOneString()!="1")
|
|
{
|
|
Common.status = "Bad call to getOneString";
|
|
return;
|
|
}
|
|
|
|
var c = new ClientExtends();
|
|
if (!c.ok())
|
|
{
|
|
Common.status = "Bad client extension";
|
|
return;
|
|
}
|
|
if (c.whoStartedYou()!="HostBase")
|
|
{
|
|
Common.status = "Bad class fallthrough - got " + c.whoStartedYou();
|
|
return;
|
|
}
|
|
if (c.whoOverridesYou()!="ClientExtends")
|
|
{
|
|
Common.status = "Bad class override - got " + c.whoOverridesYou();
|
|
return;
|
|
}
|
|
if (!c.testPointers())
|
|
{
|
|
Common.status = "Could not move native pointers";
|
|
return;
|
|
}
|
|
|
|
var hostInterface:IHostInterface = c;
|
|
if (hostInterface.whoStartedYou()!="HostBase")
|
|
{
|
|
Common.status = "Bad interface fallthrough";
|
|
return;
|
|
}
|
|
if (hostInterface.whoOverridesYou()!="ClientExtends")
|
|
{
|
|
Common.status = "Bad interface override";
|
|
return;
|
|
}
|
|
if (hostInterface.hostImplOnly(1,"two",3)!="1two3")
|
|
{
|
|
Common.status = "Bad hostImplOnly implementation";
|
|
return;
|
|
}
|
|
|
|
if (!c.testOne())
|
|
{
|
|
Common.status = "Bad ClientExtends getOne";
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
var clientInterface:IClientInterface = c;
|
|
if (clientInterface.whoStartedYou()!="HostBase")
|
|
{
|
|
Common.status = "Bad client interface fallthrough";
|
|
return;
|
|
}
|
|
if (clientInterface.uniqueClientFunc()!="uniqueClientFunc")
|
|
{
|
|
Common.status = "Bad new client interface call";
|
|
return;
|
|
}
|
|
|
|
if (clientInterface.whoOverridesYou()!="ClientExtends")
|
|
{
|
|
Common.status = "Bad client interface override";
|
|
return;
|
|
}
|
|
|
|
var clientHostInterface:IClientHostInterface = c;
|
|
if (clientHostInterface.whoStartedYou()!="HostBase")
|
|
{
|
|
Common.status = "Bad client interface fallthrough";
|
|
return;
|
|
}
|
|
if (clientHostInterface.whoOverridesYou()!="ClientExtends")
|
|
{
|
|
Common.status = "Bad client interface override";
|
|
return;
|
|
}
|
|
if (clientHostInterface.whoAreYou()!="ClientExtends")
|
|
{
|
|
Common.status = "Bad client/host interface";
|
|
return;
|
|
}
|
|
|
|
var c:ClientIHostImpl = new ClientIHostImpl();
|
|
if (c.hostImplOnly(0,null,0)!="client" || c.whoStartedYou()!="client" || c.whoOverridesYou()!="client")
|
|
{
|
|
Common.status = "Trouble implementing host interface";
|
|
return;
|
|
}
|
|
|
|
var c:ClientExtends = new ClientExtends2();
|
|
if (c.getGeneration()!=2)
|
|
{
|
|
Common.status = "Error calling cppia super function";
|
|
return;
|
|
}
|
|
|
|
var c = new ClientExtends2();
|
|
if (c.testOne())
|
|
{
|
|
Common.status = "ClientExtends2 getOne should fail";
|
|
return;
|
|
}
|
|
|
|
if (!c.testOneExtended())
|
|
{
|
|
Common.status = "ClientExtends2 testOneExtended failed";
|
|
return;
|
|
}
|
|
|
|
if (!c.testFour())
|
|
{
|
|
Common.status = "ClientExtends2 testFour error";
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
var hostBools = HostBase.hostBool0 + "/" + HostBase.hostBool1+ "/" + HostBase.hostBool2+ "/" + HostBase.hostBool3;
|
|
var clientBools = clientBool0 + "/" + clientBool1+ "/" + clientBool2+ "/" + clientBool3;
|
|
if (hostBools!=clientBools)
|
|
{
|
|
Common.status = "Error in bool representation:" + hostBools + "!=" + clientBools;
|
|
return;
|
|
}
|
|
|
|
Common.clientImplementation = new ClientOne();
|
|
Common.status = "ok";
|
|
|
|
Common.callback = () -> Common.callbackSet = 2;
|
|
}
|
|
}
|