summaryrefslogtreecommitdiffstats
path: root/libacc/tests/runtimeTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libacc/tests/runtimeTest.cpp')
-rw-r--r--libacc/tests/runtimeTest.cpp118
1 files changed, 0 insertions, 118 deletions
diff --git a/libacc/tests/runtimeTest.cpp b/libacc/tests/runtimeTest.cpp
deleted file mode 100644
index 55bf877..0000000
--- a/libacc/tests/runtimeTest.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * RuntimeTest for ACC compiler.
- *
- */
-
-#include <ctype.h>
-#include <dlfcn.h>
-#include <stdarg.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#if defined(__arm__)
-#include <unistd.h>
-#endif
-
-#include <acc/acc.h>
-
-
-typedef void (*ScriptPtr)();
-
-// This is a separate function so it can easily be set by breakpoint in gdb.
-void run(ScriptPtr scriptFn) {
- scriptFn();
-}
-
-// Private API for development:
-
-extern "C"
-void accDisassemble(ACCscript* script);
-
-int globalVar;
-
-void op_int(int a) {
- printf("op_int(%d)\n", a);
-}
-
-void op_float12(float a, float b, float c, float d,
- float e, float f, float g, float h,
- float i, float j, float k, float l) {
- printf("op_float12(%g, %g, %g, %g, %g, %g, %g, %g, %g, %g, %g, %g)\n",
- a, b, c, d, e, f, g, h, i, j, k, l);
-}
-
-const char* text = "void op_int(int a);\n"
- "void op_float12(float a, float b, float c, float d,\n"
- " float e, float f, float g, float h,\n"
- " float i, float j, float k, float l);\n"
- "void script() {\n"
- " globalVar += 3;\n"
- " op_int(123);\n"
- " op_float12(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0);\n"
- "}\n";
-
-ACCvoid* symbolLookup(ACCvoid* pContext, const ACCchar* name) {
- if (strcmp("op_int", name) == 0) {
- return (ACCvoid*) op_int;
- }
- if (strcmp("op_float12", name) == 0) {
- return (ACCvoid*) op_float12;
- }
- if (strcmp("globalVar", name) == 0) {
- return (ACCvoid*) &globalVar;
- }
- return (ACCvoid*) dlsym(RTLD_DEFAULT, name);
-}
-
-int main(int argc, char** argv) {
- ACCscript* script = accCreateScript();
-
- accRegisterSymbolCallback(script, symbolLookup, NULL);
-
- const ACCchar* scriptSource[] = {text};
- accScriptSource(script, 1, scriptSource, NULL);
-
- accCompileScript(script);
- int result = accGetError(script);
- ScriptPtr scriptPointer = 0;
- if (result != 0) {
- char buf[1024];
- accGetScriptInfoLog(script, sizeof(buf), NULL, buf);
- fprintf(stderr, "%s", buf);
- goto exit;
- }
-
- {
- ACCsizei numPragmaStrings;
- accGetPragmas(script, &numPragmaStrings, 0, NULL);
- if (numPragmaStrings) {
- char** strings = new char*[numPragmaStrings];
- accGetPragmas(script, NULL, numPragmaStrings, strings);
- for(ACCsizei i = 0; i < numPragmaStrings; i += 2) {
- fprintf(stderr, "#pragma %s(%s)\n", strings[i], strings[i+1]);
- }
- delete[] strings;
- }
- }
-
- accGetScriptLabel(script, "script", (ACCvoid**) & scriptPointer);
-
- result = accGetError(script);
- if (result != ACC_NO_ERROR) {
- fprintf(stderr, "Could not find script: %d\n", result);
- } else {
- fprintf(stderr, "Executing script:\n");
- globalVar = 17;
- run(scriptPointer);
- fprintf(stderr, "After script globalVar = %d\n", globalVar);
- }
-
-
-exit:
-
- accDeleteScript(script);
-
- return result;
-}