#include #include #include // Test emscripten_wasm_worker_post_function_*() API volatile int success = 0; void v() { emscripten_out("v"); ++success; } void vi(int i) { emscripten_out("vi"); assert(i == 1); ++success; } void vii(int i, int j) { emscripten_out("vii"); assert(i == 2); assert(j == 3); ++success; } void viii(int i, int j, int k) { emscripten_out("viii"); assert(i == 4); assert(j == 5); assert(k == 6); ++success; } void vd(double i) { emscripten_out("vd"); assert(i == 1.5); ++success; } void vdd(double i, double j) { emscripten_out("vdd"); assert(i == 2.5); assert(j == 3.5); ++success; } void vddd(double i, double j, double k) { emscripten_out("vddd"); assert(i == 4.5); assert(j == 5.5); assert(k == 6.5); ++success; } void viiiiiidddddd(int a, int b, int c, int d, int e, int f, double g, double h, double i, double j, double k, double l) { emscripten_out("viiiiiidddddd"); assert(a == 10); assert(b == 11); assert(c == 12); assert(d == 13); assert(e == 14); assert(f == 15); assert(g == 16.5); assert(h == 17.5); assert(i == 18.5); assert(j == 19.5); assert(k == 20.5); assert(l == 21.5); ++success; } void test_finished() { #ifdef REPORT_RESULT REPORT_RESULT(success); #endif } char stack[1024]; int main() { assert(!emscripten_current_thread_is_wasm_worker()); emscripten_wasm_worker_t worker = emscripten_create_wasm_worker(stack, sizeof(stack)); emscripten_wasm_worker_post_function_v(worker, v); emscripten_wasm_worker_post_function_vi(worker, vi, 1); emscripten_wasm_worker_post_function_vii(worker, vii, 2, 3); emscripten_wasm_worker_post_function_viii(worker, viii, 4, 5, 6); emscripten_wasm_worker_post_function_vd(worker, vd, 1.5); emscripten_wasm_worker_post_function_vdd(worker, vdd, 2.5, 3.5); emscripten_wasm_worker_post_function_vddd(worker, vddd, 4.5, 5.5, 6.5); emscripten_wasm_worker_post_function_sig(worker, viiiiiidddddd, "iiiiiidddddd", 10, 11, 12, 13, 14, 15, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5); emscripten_wasm_worker_post_function_v(worker, test_finished); }