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

Function TestCDecl_ClassC

sdk/tests/test_feature/source/testcdecl_class_c.cpp:79–188  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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