diff options
| author | Alon Zakai <alonzakai@gmail.com> | 2013-09-01 12:32:11 -0700 | 
|---|---|---|
| committer | Alon Zakai <alonzakai@gmail.com> | 2013-09-03 14:41:31 -0700 | 
| commit | 35386a61513fe7c9f49eefb7075f0c4dc7953e81 (patch) | |
| tree | 90da3d69a9275afc181878ea311f6f2d0a631ebd /tests/browser_main.cpp | |
| parent | 822f067c66055cb1c7406a2f08e1f377ff30cf31 (diff) | |
add browser module test
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; +} +  | 
