| 1081 | } |
| 1082 | |
| 1083 | bool Test2() |
| 1084 | { |
| 1085 | RET_ON_MAX_PORT |
| 1086 | |
| 1087 | bool fail = false; |
| 1088 | COutStream out; |
| 1089 | int r; |
| 1090 | |
| 1091 | asIScriptEngine *engine = asCreateScriptEngine(ANGELSCRIPT_VERSION); |
| 1092 | engine->SetMessageCallback(asMETHOD(COutStream, Callback), &out, asCALL_THISCALL); |
| 1093 | |
| 1094 | RegisterScriptString(engine); |
| 1095 | engine->RegisterGlobalFunction("void assert(bool)", asFUNCTION(Assert), asCALL_GENERIC); |
| 1096 | |
| 1097 | engine->RegisterGlobalFunction("void debugCall()", asFUNCTION(DebugCall), asCALL_CDECL); |
| 1098 | |
| 1099 | asIScriptModule *mod = engine->GetModule(0, asGM_ALWAYS_CREATE); |
| 1100 | |
| 1101 | const char *script = |
| 1102 | "void func(string@ &out output) \n" |
| 1103 | "{ \n" |
| 1104 | " debugCall(); \n" |
| 1105 | " assert( output == 'test' ); \n" |
| 1106 | "} \n"; |
| 1107 | |
| 1108 | mod->AddScriptSection("script", script); |
| 1109 | r = mod->Build(); |
| 1110 | if( r < 0 ) |
| 1111 | TEST_FAILED; |
| 1112 | |
| 1113 | r = ExecuteString(engine, "string @o; func(o); assert( o == 'test' );", mod); |
| 1114 | if( r != asEXECUTION_FINISHED ) |
| 1115 | TEST_FAILED; |
| 1116 | |
| 1117 | engine->Release(); |
| 1118 | |
| 1119 | return fail; |
| 1120 | } |
| 1121 | |
| 1122 | } // namespace |
| 1123 |
no test coverage detected