aboutsummaryrefslogtreecommitdiff
path: root/tests/browser_main.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-09-06 18:34:38 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-09-06 18:34:38 -0700
commit38890204ed1f5f8dd34cced7c42fc9cf42dccab5 (patch)
tree0b6d76adc047a0c81c9e0caf0dbbae93c5461948 /tests/browser_main.cpp
parentb5b49215d4a40566380a769f47a9c1cce74a28b0 (diff)
parentfce749a7066e51d57967889fab0600c285885b4b (diff)
Merge branch 'incoming'
Diffstat (limited to 'tests/browser_main.cpp')
-rw-r--r--tests/browser_main.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/browser_main.cpp b/tests/browser_main.cpp
new file mode 100644
index 00000000..efdce1be
--- /dev/null
+++ b/tests/browser_main.cpp
@@ -0,0 +1,42 @@
+#include <assert.h>
+#include <stdio.h>
+#include <dlfcn.h>
+#include <emscripten.h>
+
+typedef void (*voidfunc)();
+typedef int (*intfunc)();
+
+void *lib_handle;
+voidfunc onefunc;
+intfunc twofunc;
+
+void next(const char *x) {
+ lib_handle = dlopen("themodule.js", RTLD_NOW);
+ assert(lib_handle != NULL);
+
+ onefunc = (voidfunc)dlsym(lib_handle, "one");
+ twofunc = (intfunc)dlsym(lib_handle, "two");
+ assert(onefunc && twofunc);
+
+ assert(twofunc() == 0);
+ onefunc();
+ assert(twofunc() == 1);
+ onefunc();
+ onefunc();
+ assert(twofunc() == 3);
+ onefunc();
+ onefunc();
+ onefunc();
+ onefunc();
+ assert(twofunc() == 7);
+ onefunc();
+ int result = twofunc();
+ REPORT_RESULT();
+}
+
+int main() {
+ emscripten_async_wget("module.js", "themodule.js", next, NULL);
+
+ return 0;
+}
+