summaryrefslogtreecommitdiffstats
path: root/test cases/wasm
diff options
context:
space:
mode:
Diffstat (limited to 'test cases/wasm')
-rw-r--r--test cases/wasm/1 basic/hello.c6
-rw-r--r--test cases/wasm/1 basic/hello.cpp6
-rw-r--r--test cases/wasm/1 basic/hello.html8
-rw-r--r--test cases/wasm/1 basic/meson.build4
-rw-r--r--test cases/wasm/2 threads/meson.build10
-rw-r--r--test cases/wasm/2 threads/threads.c21
-rw-r--r--test cases/wasm/2 threads/threads.cpp13
-rw-r--r--test cases/wasm/3 jslib/meson.build8
-rw-r--r--test cases/wasm/3 jslib/prog.c10
-rw-r--r--test cases/wasm/3 jslib/somefuncs.js6
10 files changed, 92 insertions, 0 deletions
diff --git a/test cases/wasm/1 basic/hello.c b/test cases/wasm/1 basic/hello.c
new file mode 100644
index 0000000..2328803
--- /dev/null
+++ b/test cases/wasm/1 basic/hello.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main() {
+ printf("Hello World\n");
+ return 0;
+}
diff --git a/test cases/wasm/1 basic/hello.cpp b/test cases/wasm/1 basic/hello.cpp
new file mode 100644
index 0000000..44b14ac
--- /dev/null
+++ b/test cases/wasm/1 basic/hello.cpp
@@ -0,0 +1,6 @@
+#include<iostream>
+
+int main(void) {
+ std::cout << "Hello World" << std::endl;
+ return 0;
+}
diff --git a/test cases/wasm/1 basic/hello.html b/test cases/wasm/1 basic/hello.html
new file mode 100644
index 0000000..637bc20
--- /dev/null
+++ b/test cases/wasm/1 basic/hello.html
@@ -0,0 +1,8 @@
+<html>
+ <head>
+ <meta charset="utf-8">
+ </head>
+ <body>
+ <script src="hello.js"></script>
+ </body>
+</html>
diff --git a/test cases/wasm/1 basic/meson.build b/test cases/wasm/1 basic/meson.build
new file mode 100644
index 0000000..1092a9b
--- /dev/null
+++ b/test cases/wasm/1 basic/meson.build
@@ -0,0 +1,4 @@
+project('emcctest', 'c', 'cpp')
+
+executable('hello-c', 'hello.c')
+executable('hello', 'hello.cpp')
diff --git a/test cases/wasm/2 threads/meson.build b/test cases/wasm/2 threads/meson.build
new file mode 100644
index 0000000..cb682b8
--- /dev/null
+++ b/test cases/wasm/2 threads/meson.build
@@ -0,0 +1,10 @@
+project(
+ 'threads',
+ 'c', 'cpp',
+ default_options : ['cpp_std=c++11'],
+)
+
+dep_threads = dependency('threads')
+
+executable('threads-c', 'threads.c', dependencies : dep_threads)
+executable('threads-c++', 'threads.cpp', dependencies : dep_threads)
diff --git a/test cases/wasm/2 threads/threads.c b/test cases/wasm/2 threads/threads.c
new file mode 100644
index 0000000..7b1a46e
--- /dev/null
+++ b/test cases/wasm/2 threads/threads.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <unistd.h>
+#include <pthread.h>
+
+void inthread(void * args) {
+ sleep(1);
+ printf("In thread\n");
+}
+
+int main() {
+#ifdef __EMSCRIPTEN_PTHREADS__
+ pthread_t thread_id;
+ printf("Before Thread\n");
+ pthread_create(&thread_id, NULL, (void *)*inthread, NULL);
+ pthread_join(thread_id, NULL);
+ printf("After Thread\n");
+ return 0;
+#else
+# error "threads not enabled\n"
+#endif
+}
diff --git a/test cases/wasm/2 threads/threads.cpp b/test cases/wasm/2 threads/threads.cpp
new file mode 100644
index 0000000..1caa73d
--- /dev/null
+++ b/test cases/wasm/2 threads/threads.cpp
@@ -0,0 +1,13 @@
+#include <unistd.h>
+#include <iostream>
+#include <thread>
+
+int main(void) {
+ std::cout << "Before thread" << std::endl;
+ std::thread t([]() {
+ sleep(1);
+ std::cout << "In a thread." << std::endl;
+ });
+ t.join();
+ std::cout << "After thread" << std::endl;
+}
diff --git a/test cases/wasm/3 jslib/meson.build b/test cases/wasm/3 jslib/meson.build
new file mode 100644
index 0000000..3cc1740
--- /dev/null
+++ b/test cases/wasm/3 jslib/meson.build
@@ -0,0 +1,8 @@
+project('jslib', 'c')
+
+cc = meson.get_compiler('c')
+
+sf_dep = cc.find_library('somefuncs.js', dirs: meson.current_source_dir())
+
+executable('libcallc', 'prog.c',
+ dependencies: sf_dep) \ No newline at end of file
diff --git a/test cases/wasm/3 jslib/prog.c b/test cases/wasm/3 jslib/prog.c
new file mode 100644
index 0000000..780da7c
--- /dev/null
+++ b/test cases/wasm/3 jslib/prog.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+#include <emscripten.h>
+
+extern void sample_function();
+
+int main() {
+ printf("Hello World\n");
+ // sampleFunction(); ????
+ return 0;
+}
diff --git a/test cases/wasm/3 jslib/somefuncs.js b/test cases/wasm/3 jslib/somefuncs.js
new file mode 100644
index 0000000..1c00336
--- /dev/null
+++ b/test cases/wasm/3 jslib/somefuncs.js
@@ -0,0 +1,6 @@
+mergeInto(LibraryManager.library, {
+ sample_function__sig: 'v',
+ sample_function: function() {
+ alert("Something happened!");
+ },
+});