MCPcopy Create free account
hub / github.com/anjo76/angelscript / TestCDecl_ClassD

Function TestCDecl_ClassD

sdk/tests/test_feature/source/testcdecl_class_d.cpp:77–194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

75}
76
77bool TestCDecl_ClassD()
78{
79 RET_ON_MAX_PORT
80
81 bool fail = false;
82
83 asIScriptEngine *engine = asCreateScriptEngine(ANGELSCRIPT_VERSION);
84
85 engine->RegisterObjectType("class1", sizeof(ClassD1), asOBJ_VALUE | asOBJ_POD | asOBJ_APP_CLASS_D);
86 engine->RegisterObjectType("class2", sizeof(ClassD2), asOBJ_VALUE | asOBJ_POD | asOBJ_APP_CLASS_D);
87 engine->RegisterObjectType("class3", sizeof(ClassD3), asOBJ_VALUE | asOBJ_POD | asOBJ_APP_CLASS_D);
88
89 engine->RegisterGlobalProperty("class1 c1", &c1);
90 engine->RegisterGlobalProperty("class2 c2", &c2);
91 engine->RegisterGlobalProperty("class3 c3", &c3);
92
93 engine->RegisterGlobalFunction("class1 _class1()", asFUNCTION(classD1), asCALL_CDECL);
94 engine->RegisterGlobalFunction("class2 _class2()", asFUNCTION(classD2), asCALL_CDECL);
95 engine->RegisterGlobalFunction("class3 _class3()", asFUNCTION(classD3), asCALL_CDECL);
96
97
98 COutStream out;
99 engine->SetMessageCallback(asMETHOD(COutStream,Callback), &out, asCALL_THISCALL);
100
101 c1.a = 0;
102
103 int r = ExecuteString(engine, "c1 = _class1();");
104 if( r < 0 )
105 {
106 PRINTF("%s: ExecuteString() failed %d\n", TESTNAME, r);
107 TEST_FAILED;
108 }
109
110 if( c1.a != 0xDEADC0DE )
111 {
112 PRINTF("%s: Failed to assign object returned from function. c1.a = %X\n", TESTNAME, (unsigned int)c1.a);
113 TEST_FAILED;
114 }
115
116
117 c2.a = 0;
118 c2.b = 0;
119
120 r = ExecuteString(engine, "c2 = _class2();");
121 if( r < 0 )
122 {
123 PRINTF("%s: ExecuteString() failed %d\n", TESTNAME, r);
124 TEST_FAILED;
125 }
126
127 if( c2.a != 0xDEADC0DE )
128 {
129 PRINTF("%s: Failed to assign object returned from function. c2.a = %X\n", TESTNAME, (unsigned int)c2.a);
130 TEST_FAILED;
131 }
132
133 if( c2.b != 0x01234567 )
134 {

Callers 1

allTestsFunction · 0.85

Calls 5

ExecuteStringFunction · 0.85
SetMessageCallbackMethod · 0.80
ReleaseMethod · 0.45

Tested by

no test coverage detected