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

Function TestCDecl_ClassA

sdk/tests/test_feature/source/testcdecl_class_a.cpp:72–181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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