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

Function TestCDecl_ClassK

sdk/tests/test_feature/source/testcdecl_class_k.cpp:80–196  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

allTestsFunction · 0.85

Calls 5

ExecuteStringFunction · 0.85
SetMessageCallbackMethod · 0.80
ReleaseMethod · 0.45

Tested by

no test coverage detected