diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-09-06 18:34:38 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-09-06 18:34:38 -0700 |
commit | 38890204ed1f5f8dd34cced7c42fc9cf42dccab5 (patch) | |
tree | 0b6d76adc047a0c81c9e0caf0dbbae93c5461948 /tests/browser_main.cpp | |
parent | b5b49215d4a40566380a769f47a9c1cce74a28b0 (diff) | |
parent | fce749a7066e51d57967889fab0600c285885b4b (diff) |
Merge branch 'incoming'
Diffstat (limited to 'tests/browser_main.cpp')
-rw-r--r-- | tests/browser_main.cpp | 42 |
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; +} + |