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

Function Test

sdk/tests/test_feature/source/test_addon_scriptfile.cpp:14–164  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12{
13
14bool Test()
15{
16 bool fail = false;
17 COutStream out;
18 CBufferedOutStream bout;
19 int r;
20 asIScriptEngine *engine = 0;
21
22 // Test file and directory manipulation
23 {
24 engine = asCreateScriptEngine(ANGELSCRIPT_VERSION);
25 engine->SetMessageCallback(asMETHOD(COutStream, Callback), &out, asCALL_THISCALL);
26 RegisterStdString(engine);
27 RegisterScriptArray(engine, false);
28 RegisterScriptDateTime(engine);
29 RegisterScriptFile(engine);
30 RegisterScriptFileSystem(engine);
31 engine->RegisterGlobalFunction("void assert(bool)", asFUNCTION(Assert), asCALL_GENERIC);
32
33 asIScriptModule *mod = engine->GetModule(0, asGM_ALWAYS_CREATE);
34 mod->AddScriptSection("test",
35 "void main() { \n"
36 " filesystem fs; \n"
37 " assert( fs.changeCurrentPath('scripts') ); \n"
38 " assert( fs.makeDir('backup') == 0 ); \n"
39 " assert( fs.copyFile('TestExecuteScript.as', 'backup/TestExecuteScript.as') == 0 ); \n"
40 " assert( fs.move('backup/TestExecuteScript.as', 'backup/Test.as') == 0 ); \n"
41 " assert( fs.getSize('TestExecuteScript.as') == fs.getSize('backup/Test.as') ); \n"
42 " assert( fs.deleteFile('backup/Test.as') == 0 ); \n"
43 " assert( fs.removeDir('backup') == 0 ); \n"
44 "} \n");
45 r = mod->Build();
46 if (r < 0)
47 TEST_FAILED;
48
49 asIScriptContext *ctx = engine->CreateContext();
50 r = ExecuteString(engine, "main()", mod, ctx);
51 if (r != asEXECUTION_FINISHED)
52 {
53 if (r == asEXECUTION_EXCEPTION && ctx->GetExceptionLineNumber() == 3)
54 {
55 char buffer[1000];
56 PRINTF("Failed to find the sub directory 'scripts'. Are you running the test from the correct folder? cwd: %s\n",
57#if defined(_WIN32)
58 _getcwd(buffer, 1000)
59#else
60 getcwd(buffer, 1000)
61#endif
62 );
63 assert(buffer[0] != 0);
64 }
65 else
66 TEST_FAILED;
67 }
68 ctx->Release();
69
70 if (bout.buffer != "")
71 {

Callers

nothing calls this directly

Calls 14

RegisterStdStringFunction · 0.85
RegisterScriptArrayFunction · 0.85
RegisterScriptDateTimeFunction · 0.85
RegisterScriptFileFunction · 0.85
RegisterScriptFileSystemFunction · 0.85
ExecuteStringFunction · 0.85
SetMessageCallbackMethod · 0.80
AddScriptSectionMethod · 0.80
CreateContextMethod · 0.80
GetModuleMethod · 0.45

Tested by

no test coverage detected